@splinetool/loader 1.10.90 → 1.10.92

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,5 +1,5 @@
1
1
  "use strict";var DS=Object.create;var el=Object.defineProperty;var _S=Object.getOwnPropertyDescriptor;var RS=Object.getOwnPropertyNames;var LS=Object.getPrototypeOf,BS=Object.prototype.hasOwnProperty;var VS=(i,t,e)=>t in i?el(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e;var tl=(i,t)=>()=>(t||i((t={exports:{}}).exports,t),t.exports),cm=(i,t)=>{for(var e in t)el(i,e,{get:t[e],enumerable:!0})},um=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of RS(t))!BS.call(i,o)&&o!==e&&el(i,o,{get:()=>t[o],enumerable:!(r=_S(t,o))||r.enumerable});return i};var rl=(i,t,e)=>(e=i!=null?DS(LS(i)):{},um(t||!i||!i.__esModule?el(e,"default",{value:i,enumerable:!0}):e,i)),zS=i=>um(el({},"__esModule",{value:!0}),i);var gn=(i,t,e)=>(VS(i,typeof t!="symbol"?t+"":t,e),e);var Z0=tl((df,Q0)=>{(function(i,t){typeof df=="object"?Q0.exports=t():typeof define=="function"&&define.amd?define(t):i.Alea=t()})(df,function(){"use strict";return i.importState=function(e){var r=new i;return r.importState(e),r},i;function i(){return function(e){var r=0,o=0,n=0,a=1;e.length==0&&(e=[+new Date]);var s=t();r=s(" "),o=s(" "),n=s(" ");for(var l=0;l<e.length;l++)r-=s(e[l]),r<0&&(r+=1),o-=s(e[l]),o<0&&(o+=1),n-=s(e[l]),n<0&&(n+=1);s=null;var c=function(){var u=2091639*r+a*23283064365386963e-26;return r=o,o=n,n=u-(a=u|0)};return c.next=c,c.uint32=function(){return c()*4294967296},c.fract53=function(){return c()+(c()*2097152|0)*11102230246251565e-32},c.version="Alea 0.9",c.args=e,c.exportState=function(){return[r,o,n,a]},c.importState=function(u){r=+u[0]||0,o=+u[1]||0,n=+u[2]||0,a=+u[3]||0},c}(Array.prototype.slice.call(arguments))}function t(){var e=4022871197,r=function(o){o=o.toString();for(var n=0;n<o.length;n++){e+=o.charCodeAt(n);var a=.02519603282416938*e;e=a>>>0,a-=e,a*=e,e=a>>>0,a-=e,e+=a*4294967296}return(e>>>0)*23283064365386963e-26};return r.version="Mash 0.9",r}})});var nx=tl((Vu,ix)=>{(function(i,t){typeof Vu=="object"&&typeof ix<"u"?t(Vu):typeof define=="function"&&define.amd?define(["exports"],t):t((i=typeof globalThis<"u"?globalThis:i||self).SVDJS={})})(Vu,function(i){"use strict";i.SVD=function(t,e,r,o,n){if(e=e===void 0||e,r=r===void 0||r,n=1e-64/(o=o||Math.pow(2,-52)),!t)throw new TypeError("Matrix a is not defined");var a,s,l,c,u,d,p,f,h,m,y,x,v=t[0].length,w=t.length;if(w<v)throw new TypeError("Invalid matrix: m < n");for(var O=[],S=[],T=[],M=e==="f"?w:v,g=m=p=0;g<w;g++)S[g]=new Array(M).fill(0);for(g=0;g<v;g++)T[g]=new Array(v).fill(0);var D,E=new Array(v).fill(0);for(g=0;g<w;g++)for(a=0;a<v;a++)S[g][a]=t[g][a];for(g=0;g<v;g++){for(O[g]=p,h=0,l=g+1,a=g;a<w;a++)h+=Math.pow(S[a][g],2);if(h<n)p=0;else for(f=(d=S[g][g])*(p=d<0?Math.sqrt(h):-Math.sqrt(h))-h,S[g][g]=d-p,a=l;a<v;a++){for(h=0,s=g;s<w;s++)h+=S[s][g]*S[s][a];for(d=h/f,s=g;s<w;s++)S[s][a]=S[s][a]+d*S[s][g]}for(E[g]=p,h=0,a=l;a<v;a++)h+=Math.pow(S[g][a],2);if(h<n)p=0;else{for(f=(d=S[g][g+1])*(p=d<0?Math.sqrt(h):-Math.sqrt(h))-h,S[g][g+1]=d-p,a=l;a<v;a++)O[a]=S[g][a]/f;for(a=l;a<w;a++){for(h=0,s=l;s<v;s++)h+=S[a][s]*S[g][s];for(s=l;s<v;s++)S[a][s]=S[a][s]+h*O[s]}}m<(y=Math.abs(E[g])+Math.abs(O[g]))&&(m=y)}if(r)for(g=v-1;0<=g;g--){if(p!==0){for(f=S[g][g+1]*p,a=l;a<v;a++)T[a][g]=S[g][a]/f;for(a=l;a<v;a++){for(h=0,s=l;s<v;s++)h+=S[g][s]*T[s][a];for(s=l;s<v;s++)T[s][a]=T[s][a]+h*T[s][g]}}for(a=l;a<v;a++)T[g][a]=0,T[a][g]=0;T[g][g]=1,p=O[g],l=g}if(e){if(e==="f")for(g=v;g<w;g++){for(a=v;a<w;a++)S[g][a]=0;S[g][g]=1}for(g=v-1;0<=g;g--){for(l=g+1,p=E[g],a=l;a<M;a++)S[g][a]=0;if(p!==0){for(f=S[g][g]*p,a=l;a<M;a++){for(h=0,s=l;s<w;s++)h+=S[s][g]*S[s][a];for(d=h/f,s=g;s<w;s++)S[s][a]=S[s][a]+d*S[s][g]}for(a=g;a<w;a++)S[a][g]=S[a][g]/p}else for(a=g;a<w;a++)S[a][g]=0;S[g][g]=S[g][g]+1}}for(o*=m,s=v-1;0<=s;s--)for(var I=0;I<50;I++){for(D=!1,l=s;0<=l;l--){if(Math.abs(O[l])<=o){D=!0;break}if(Math.abs(E[l-1])<=o)break}if(!D){for(u=0,c=l-(h=1),g=l;g<s+1&&(d=h*O[g],O[g]=u*O[g],!(Math.abs(d)<=o));g++)if(p=E[g],E[g]=Math.sqrt(d*d+p*p),u=p/(f=E[g]),h=-d/f,e)for(a=0;a<w;a++)y=S[a][c],x=S[a][g],S[a][c]=y*u+x*h,S[a][g]=-y*h+x*u}if(x=E[s],l===s){if(x<0&&(E[s]=-x,r))for(a=0;a<v;a++)T[a][s]=-T[a][s];break}for(m=E[l],d=(((y=E[s-1])-x)*(y+x)+((p=O[s-1])-(f=O[s]))*(p+f))/(2*f*y),p=Math.sqrt(d*d+1),d=((m-x)*(m+x)+f*(y/(d<0?d-p:d+p)-f))/m,g=l+(h=u=1);g<s+1;g++){if(p=O[g],y=E[g],f=h*p,p*=u,x=Math.sqrt(d*d+f*f),d=m*(u=d/(O[g-1]=x))+p*(h=f/x),p=-m*h+p*u,f=y*h,y*=u,r)for(a=0;a<v;a++)m=T[a][g-1],x=T[a][g],T[a][g-1]=m*u+x*h,T[a][g]=-m*h+x*u;if(x=Math.sqrt(d*d+f*f),d=(u=d/(E[g-1]=x))*p+(h=f/x)*y,m=-h*p+u*y,e)for(a=0;a<w;a++)y=S[a][g-1],x=S[a][g],S[a][g-1]=y*u+x*h,S[a][g]=-y*h+x*u}O[l]=0,O[s]=d,E[s]=m}for(g=0;g<v;g++)E[g]<o&&(E[g]=0);return{u:S,q:E,v:T}},i.VERSION="1.1.1",Object.defineProperty(i,"__esModule",{value:!0})})});var t1=tl((zre,e1)=>{"use strict";function K3(i,t){function e(){this.constructor=i}e.prototype=t.prototype,i.prototype=new e}function kn(i,t,e,r){this.message=i,this.expected=t,this.found=e,this.location=r,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,kn)}K3(kn,Error);kn.buildMessage=function(i,t){var e={literal:function(c){return'"'+o(c.text)+'"'},class:function(c){var u="",d;for(d=0;d<c.parts.length;d++)u+=c.parts[d]instanceof Array?n(c.parts[d][0])+"-"+n(c.parts[d][1]):n(c.parts[d]);return"["+(c.inverted?"^":"")+u+"]"},any:function(c){return"any character"},end:function(c){return"end of input"},other:function(c){return c.description}};function r(c){return c.charCodeAt(0).toString(16).toUpperCase()}function o(c){return c.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+r(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+r(u)})}function n(c){return c.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+r(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+r(u)})}function a(c){return e[c.type](c)}function s(c){var u=new Array(c.length),d,p;for(d=0;d<c.length;d++)u[d]=a(c[d]);if(u.sort(),u.length>0){for(d=1,p=1;d<u.length;d++)u[d-1]!==u[d]&&(u[p]=u[d],p++);u.length=p}switch(u.length){case 1:return u[0];case 2:return u[0]+" or "+u[1];default:return u.slice(0,-1).join(", ")+", or "+u[u.length-1]}}function l(c){return c?'"'+o(c)+'"':"end of input"}return"Expected "+s(i)+" but "+l(t)+" found."};function Q3(i,t){t=t!==void 0?t:{};var e={},r={svg_path:Js},o=Js,n=function(b){if(!b)return[];for(var P=[],L=0;L<b.length;L++)P=P.concat.apply(P,b[L]);var A=P[0];return A&&A.code=="m"&&(delete A.relative,A.code="M"),P},a=function(b,P){return NS(b,P)},s=/^[Mm]/,l=at(["M","m"],!1,!1),c=function(b,P,L){var A=Yn(b,[P]);return L&&(A=A.concat(Yn(b=="M"?"L":"l",L[1]))),A},u=/^[Zz]/,d=at(["Z","z"],!1,!1),p=function(){return Yn("Z")},f=/^[Ll]/,h=at(["L","l"],!1,!1),m=function(b,P){return Yn(b,P)},y=/^[Hh]/,x=at(["H","h"],!1,!1),v=function(b,P){return Yn(b,P.map(function(L){return{x:L}}))},w=/^[Vv]/,O=at(["V","v"],!1,!1),S=function(b,P){return Yn(b,P.map(function(L){return{y:L}}))},T=/^[Cc]/,M=at(["C","c"],!1,!1),g=function(b,P,L){return{x1:b.x,y1:b.y,x2:P.x,y2:P.y,x:L.x,y:L.y}},D=/^[Ss]/,E=at(["S","s"],!1,!1),I=function(b,P){return{x2:b.x,y2:b.y,x:P.x,y:P.y}},N=/^[Qq]/,_=at(["Q","q"],!1,!1),R=function(b,P){return{x1:b.x,y1:b.y,x:P.x,y:P.y}},V=/^[Tt]/,U=at(["T","t"],!1,!1),B=/^[Aa]/,q=at(["A","a"],!1,!1),j=function(b,P,L,A,z,oe){return{rx:b,ry:P,xAxisRotation:L,largeArc:A,sweep:z,x:oe.x,y:oe.y}},F=function(b,P){return{x:b,y:P}},H=function(b){return b*1},W=function(b){return b.join("")*1},ee=/^[01]/,te=at(["0","1"],!1,!1),Y=function(b){return b=="1"},re=function(){return""},K=",",Z=xt(",",!1),Q=function(b){return b.join("")},$=".",pe=xt(".",!1),le=/^[eE]/,ie=at(["e","E"],!1,!1),ue=/^[+\-]/,ae=at(["+","-"],!1,!1),ge=/^[0-9]/,me=at([["0","9"]],!1,!1),ye=function(b){return b.join("")},ve=/^[ \t\n\r]/,xe=at([" "," ",`
2
- `,"\r"],!1,!1),C=0,ne=0,Ve=[{line:1,column:1}],ke=0,Ge=[],Ce=0,zt;if("startRule"in t){if(!(t.startRule in r))throw new Error(`Can't start parsing from rule "`+t.startRule+'".');o=r[t.startRule]}function _e(){return i.substring(ne,C)}function Bt(){return hn(ne,C)}function Gt(b,P){throw P=P!==void 0?P:hn(ne,C),Gr([dp(b)],i.substring(ne,C),P)}function fn(b,P){throw P=P!==void 0?P:hn(ne,C),pp(b,P)}function xt(b,P){return{type:"literal",text:b,ignoreCase:P}}function at(b,P,L){return{type:"class",parts:b,inverted:P,ignoreCase:L}}function ro(){return{type:"any"}}function up(){return{type:"end"}}function dp(b){return{type:"other",description:b}}function mc(b){var P=Ve[b],L;if(P)return P;for(L=b-1;!Ve[L];)L--;for(P=Ve[L],P={line:P.line,column:P.column};L<b;)i.charCodeAt(L)===10?(P.line++,P.column=1):P.column++,L++;return Ve[b]=P,P}function hn(b,P){var L=mc(b),A=mc(P);return{start:{offset:b,line:L.line,column:L.column},end:{offset:P,line:A.line,column:A.column}}}function Ot(b){C<ke||(C>ke&&(ke=C,Ge=[]),Ge.push(b))}function pp(b,P){return new kn(b,null,null,P)}function Gr(b,P,L){return new kn(kn.buildMessage(b,P),b,P,L)}function Js(){var b,P,L,A,z;for(b=C,P=[],L=He();L!==e;)P.push(L),L=He();if(P!==e)if(L=ur(),L===e&&(L=null),L!==e){for(A=[],z=He();z!==e;)A.push(z),z=He();A!==e?(ne=b,P=n(L),b=P):(C=b,b=e)}else C=b,b=e;else C=b,b=e;return b}function ur(){var b,P,L,A,z,oe;if(b=C,P=mn(),P!==e){for(L=[],A=C,z=[],oe=He();oe!==e;)z.push(oe),oe=He();for(z!==e?(oe=mn(),oe!==e?(z=[z,oe],A=z):(C=A,A=e)):(C=A,A=e);A!==e;){for(L.push(A),A=C,z=[],oe=He();oe!==e;)z.push(oe),oe=He();z!==e?(oe=mn(),oe!==e?(z=[z,oe],A=z):(C=A,A=e)):(C=A,A=e)}L!==e?(ne=b,P=a(P,L),b=P):(C=b,b=e)}else C=b,b=e;return b}function mn(){var b,P,L,A,z,oe;if(b=C,P=$n(),P!==e){for(L=[],A=C,z=[],oe=He();oe!==e;)z.push(oe),oe=He();for(z!==e?(oe=yc(),oe!==e?(z=[z,oe],A=z):(C=A,A=e)):(C=A,A=e);A!==e;){for(L.push(A),A=C,z=[],oe=He();oe!==e;)z.push(oe),oe=He();z!==e?(oe=yc(),oe!==e?(z=[z,oe],A=z):(C=A,A=e)):(C=A,A=e)}L!==e?(ne=b,P=a(P,L),b=P):(C=b,b=e)}else C=b,b=e;return b}function yc(){var b;return b=yS(),b===e&&(b=gS(),b===e&&(b=xS(),b===e&&(b=bS(),b===e&&(b=vS(),b===e&&(b=wS(),b===e&&(b=OS(),b===e&&(b=CS(),b===e&&(b=MS())))))))),b}function $n(){var b,P,L,A,z,oe,Kn;if(b=C,s.test(i.charAt(C))?(P=i.charAt(C),C++):(P=e,Ce===0&&Ot(l)),P!==e){for(L=[],A=He();A!==e;)L.push(A),A=He();L!==e?(A=fr(),A!==e?(z=C,oe=ht(),oe===e&&(oe=null),oe!==e?(Kn=tm(),Kn!==e?(oe=[oe,Kn],z=oe):(C=z,z=e)):(C=z,z=e),z===e&&(z=null),z!==e?(ne=b,P=c(P,A,z),b=P):(C=b,b=e)):(C=b,b=e)):(C=b,b=e)}else C=b,b=e;return b}function yS(){var b,P;return b=C,u.test(i.charAt(C))?(P=i.charAt(C),C++):(P=e,Ce===0&&Ot(d)),P!==e&&(ne=b,P=p()),b=P,b}function gS(){var b,P,L,A;if(b=C,f.test(i.charAt(C))?(P=i.charAt(C),C++):(P=e,Ce===0&&Ot(h)),P!==e){for(L=[],A=He();A!==e;)L.push(A),A=He();L!==e?(A=tm(),A!==e?(ne=b,P=m(P,A),b=P):(C=b,b=e)):(C=b,b=e)}else C=b,b=e;return b}function tm(){var b,P,L,A,z,oe;if(b=C,P=fr(),P!==e){for(L=[],A=C,z=ht(),z===e&&(z=null),z!==e?(oe=fr(),oe!==e?(z=[z,oe],A=z):(C=A,A=e)):(C=A,A=e);A!==e;)L.push(A),A=C,z=ht(),z===e&&(z=null),z!==e?(oe=fr(),oe!==e?(z=[z,oe],A=z):(C=A,A=e)):(C=A,A=e);L!==e?(ne=b,P=a(P,L),b=P):(C=b,b=e)}else C=b,b=e;return b}function xS(){var b,P,L,A;if(b=C,y.test(i.charAt(C))?(P=i.charAt(C),C++):(P=e,Ce===0&&Ot(x)),P!==e){for(L=[],A=He();A!==e;)L.push(A),A=He();L!==e?(A=rm(),A!==e?(ne=b,P=v(P,A),b=P):(C=b,b=e)):(C=b,b=e)}else C=b,b=e;return b}function rm(){var b,P,L,A,z,oe;if(b=C,P=Xn(),P!==e){for(L=[],A=C,z=ht(),z===e&&(z=null),z!==e?(oe=Xn(),oe!==e?(z=[z,oe],A=z):(C=A,A=e)):(C=A,A=e);A!==e;)L.push(A),A=C,z=ht(),z===e&&(z=null),z!==e?(oe=Xn(),oe!==e?(z=[z,oe],A=z):(C=A,A=e)):(C=A,A=e);L!==e?(ne=b,P=a(P,L),b=P):(C=b,b=e)}else C=b,b=e;return b}function bS(){var b,P,L,A;if(b=C,w.test(i.charAt(C))?(P=i.charAt(C),C++):(P=e,Ce===0&&Ot(O)),P!==e){for(L=[],A=He();A!==e;)L.push(A),A=He();L!==e?(A=rm(),A!==e?(ne=b,P=S(P,A),b=P):(C=b,b=e)):(C=b,b=e)}else C=b,b=e;return b}function vS(){var b,P,L,A;if(b=C,T.test(i.charAt(C))?(P=i.charAt(C),C++):(P=e,Ce===0&&Ot(M)),P!==e){for(L=[],A=He();A!==e;)L.push(A),A=He();L!==e?(A=SS(),A!==e?(ne=b,P=m(P,A),b=P):(C=b,b=e)):(C=b,b=e)}else C=b,b=e;return b}function SS(){var b,P,L,A,z,oe;if(b=C,P=fp(),P!==e){for(L=[],A=C,z=ht(),z===e&&(z=null),z!==e?(oe=fp(),oe!==e?(z=[z,oe],A=z):(C=A,A=e)):(C=A,A=e);A!==e;)L.push(A),A=C,z=ht(),z===e&&(z=null),z!==e?(oe=fp(),oe!==e?(z=[z,oe],A=z):(C=A,A=e)):(C=A,A=e);L!==e?(ne=b,P=a(P,L),b=P):(C=b,b=e)}else C=b,b=e;return b}function fp(){var b,P,L,A,z,oe;return b=C,P=fr(),P!==e?(L=ht(),L===e&&(L=null),L!==e?(A=fr(),A!==e?(z=ht(),z===e&&(z=null),z!==e?(oe=fr(),oe!==e?(ne=b,P=g(P,A,oe),b=P):(C=b,b=e)):(C=b,b=e)):(C=b,b=e)):(C=b,b=e)):(C=b,b=e),b}function wS(){var b,P,L,A;if(b=C,D.test(i.charAt(C))?(P=i.charAt(C),C++):(P=e,Ce===0&&Ot(E)),P!==e){for(L=[],A=He();A!==e;)L.push(A),A=He();L!==e?(A=PS(),A!==e?(ne=b,P=m(P,A),b=P):(C=b,b=e)):(C=b,b=e)}else C=b,b=e;return b}function PS(){var b,P,L,A,z,oe;if(b=C,P=hp(),P!==e){for(L=[],A=C,z=ht(),z===e&&(z=null),z!==e?(oe=hp(),oe!==e?(z=[z,oe],A=z):(C=A,A=e)):(C=A,A=e);A!==e;)L.push(A),A=C,z=ht(),z===e&&(z=null),z!==e?(oe=hp(),oe!==e?(z=[z,oe],A=z):(C=A,A=e)):(C=A,A=e);L!==e?(ne=b,P=a(P,L),b=P):(C=b,b=e)}else C=b,b=e;return b}function hp(){var b,P,L,A;return b=C,P=fr(),P!==e?(L=ht(),L===e&&(L=null),L!==e?(A=fr(),A!==e?(ne=b,P=I(P,A),b=P):(C=b,b=e)):(C=b,b=e)):(C=b,b=e),b}function OS(){var b,P,L,A;if(b=C,N.test(i.charAt(C))?(P=i.charAt(C),C++):(P=e,Ce===0&&Ot(_)),P!==e){for(L=[],A=He();A!==e;)L.push(A),A=He();L!==e?(A=TS(),A!==e?(ne=b,P=m(P,A),b=P):(C=b,b=e)):(C=b,b=e)}else C=b,b=e;return b}function TS(){var b,P,L,A,z,oe;if(b=C,P=mp(),P!==e){for(L=[],A=C,z=ht(),z===e&&(z=null),z!==e?(oe=mp(),oe!==e?(z=[z,oe],A=z):(C=A,A=e)):(C=A,A=e);A!==e;)L.push(A),A=C,z=ht(),z===e&&(z=null),z!==e?(oe=mp(),oe!==e?(z=[z,oe],A=z):(C=A,A=e)):(C=A,A=e);L!==e?(ne=b,P=a(P,L),b=P):(C=b,b=e)}else C=b,b=e;return b}function mp(){var b,P,L,A;return b=C,P=fr(),P!==e?(L=ht(),L===e&&(L=null),L!==e?(A=fr(),A!==e?(ne=b,P=R(P,A),b=P):(C=b,b=e)):(C=b,b=e)):(C=b,b=e),b}function CS(){var b,P,L,A;if(b=C,V.test(i.charAt(C))?(P=i.charAt(C),C++):(P=e,Ce===0&&Ot(U)),P!==e){for(L=[],A=He();A!==e;)L.push(A),A=He();L!==e?(A=AS(),A!==e?(ne=b,P=m(P,A),b=P):(C=b,b=e)):(C=b,b=e)}else C=b,b=e;return b}function AS(){var b,P,L,A,z,oe;if(b=C,P=fr(),P!==e){for(L=[],A=C,z=ht(),z===e&&(z=null),z!==e?(oe=fr(),oe!==e?(z=[z,oe],A=z):(C=A,A=e)):(C=A,A=e);A!==e;)L.push(A),A=C,z=ht(),z===e&&(z=null),z!==e?(oe=fr(),oe!==e?(z=[z,oe],A=z):(C=A,A=e)):(C=A,A=e);L!==e?(ne=b,P=a(P,L),b=P):(C=b,b=e)}else C=b,b=e;return b}function MS(){var b,P,L,A;if(b=C,B.test(i.charAt(C))?(P=i.charAt(C),C++):(P=e,Ce===0&&Ot(q)),P!==e){for(L=[],A=He();A!==e;)L.push(A),A=He();L!==e?(A=IS(),A!==e?(ne=b,P=m(P,A),b=P):(C=b,b=e)):(C=b,b=e)}else C=b,b=e;return b}function IS(){var b,P,L,A,z,oe;if(b=C,P=yp(),P!==e){for(L=[],A=C,z=ht(),z===e&&(z=null),z!==e?(oe=yp(),oe!==e?(z=[z,oe],A=z):(C=A,A=e)):(C=A,A=e);A!==e;)L.push(A),A=C,z=ht(),z===e&&(z=null),z!==e?(oe=yp(),oe!==e?(z=[z,oe],A=z):(C=A,A=e)):(C=A,A=e);L!==e?(ne=b,P=a(P,L),b=P):(C=b,b=e)}else C=b,b=e;return b}function yp(){var b,P,L,A,z,oe,Kn,xp,xc,bp,bc,vp;return b=C,P=om(),P!==e?(L=ht(),L===e&&(L=null),L!==e?(A=om(),A!==e?(z=ht(),z===e&&(z=null),z!==e?(oe=Xn(),oe!==e?(Kn=ht(),Kn!==e?(xp=im(),xp!==e?(xc=ht(),xc===e&&(xc=null),xc!==e?(bp=im(),bp!==e?(bc=ht(),bc===e&&(bc=null),bc!==e?(vp=fr(),vp!==e?(ne=b,P=j(P,A,oe,xp,bp,vp),b=P):(C=b,b=e)):(C=b,b=e)):(C=b,b=e)):(C=b,b=e)):(C=b,b=e)):(C=b,b=e)):(C=b,b=e)):(C=b,b=e)):(C=b,b=e)):(C=b,b=e)):(C=b,b=e),b}function fr(){var b,P,L,A;return b=C,P=Xn(),P!==e?(L=ht(),L===e&&(L=null),L!==e?(A=Xn(),A!==e?(ne=b,P=F(P,A),b=P):(C=b,b=e)):(C=b,b=e)):(C=b,b=e),b}function om(){var b,P;return b=C,P=am(),P===e&&(P=yn()),P!==e&&(ne=b,P=H(P)),b=P,b}function Xn(){var b,P,L,A;return b=C,P=C,L=gp(),L===e&&(L=null),L!==e?(A=am(),A!==e?(L=[L,A],P=L):(C=P,P=e)):(C=P,P=e),P===e&&(P=C,L=gp(),L===e&&(L=null),L!==e?(A=yn(),A!==e?(L=[L,A],P=L):(C=P,P=e)):(C=P,P=e)),P!==e&&(ne=b,P=W(P)),b=P,b}function im(){var b,P;return b=C,ee.test(i.charAt(C))?(P=i.charAt(C),C++):(P=e,Ce===0&&Ot(te)),P!==e&&(ne=b,P=Y(P)),b=P,b}function ht(){var b,P,L,A,z;if(b=C,P=[],L=He(),L!==e)for(;L!==e;)P.push(L),L=He();else P=e;if(P!==e)if(L=nm(),L===e&&(L=null),L!==e){for(A=[],z=He();z!==e;)A.push(z),z=He();A!==e?(P=[P,L,A],b=P):(C=b,b=e)}else C=b,b=e;else C=b,b=e;if(b===e){if(b=C,P=C,L=nm(),L!==e){for(A=[],z=He();z!==e;)A.push(z),z=He();A!==e?(L=[L,A],P=L):(C=P,P=e)}else C=P,P=e;P!==e&&(ne=b,P=re()),b=P}return b}function nm(){var b;return i.charCodeAt(C)===44?(b=K,C++):(b=e,Ce===0&&Ot(Z)),b}function am(){var b,P,L,A;return b=C,P=C,L=ES(),L!==e?(A=sm(),A===e&&(A=null),A!==e?(L=[L,A],P=L):(C=P,P=e)):(C=P,P=e),P===e&&(P=C,L=yn(),L!==e?(A=sm(),A!==e?(L=[L,A],P=L):(C=P,P=e)):(C=P,P=e)),P!==e&&(ne=b,P=Q(P)),b=P,b}function ES(){var b,P,L,A,z;return b=C,P=C,L=yn(),L===e&&(L=null),L!==e?(i.charCodeAt(C)===46?(A=$,C++):(A=e,Ce===0&&Ot(pe)),A!==e?(z=yn(),z!==e?(L=[L,A,z],P=L):(C=P,P=e)):(C=P,P=e)):(C=P,P=e),P===e&&(P=C,L=yn(),L!==e?(i.charCodeAt(C)===46?(A=$,C++):(A=e,Ce===0&&Ot(pe)),A!==e?(L=[L,A],P=L):(C=P,P=e)):(C=P,P=e)),P!==e&&(ne=b,P=Q(P)),b=P,b}function sm(){var b,P,L,A,z;return b=C,P=C,le.test(i.charAt(C))?(L=i.charAt(C),C++):(L=e,Ce===0&&Ot(ie)),L!==e?(A=gp(),A===e&&(A=null),A!==e?(z=yn(),z!==e?(L=[L,A,z],P=L):(C=P,P=e)):(C=P,P=e)):(C=P,P=e),P!==e&&(ne=b,P=Q(P)),b=P,b}function gp(){var b;return ue.test(i.charAt(C))?(b=i.charAt(C),C++):(b=e,Ce===0&&Ot(ae)),b}function yn(){var b,P,L;if(b=C,P=[],ge.test(i.charAt(C))?(L=i.charAt(C),C++):(L=e,Ce===0&&Ot(me)),L!==e)for(;L!==e;)P.push(L),ge.test(i.charAt(C))?(L=i.charAt(C),C++):(L=e,Ce===0&&Ot(me));else P=e;return P!==e&&(ne=b,P=ye(P)),b=P,b}function He(){var b,P;return b=C,ve.test(i.charAt(C))?(P=i.charAt(C),C++):(P=e,Ce===0&&Ot(xe)),P!==e&&(ne=b,P=re()),b=P,b}function NS(b,P){if(!P)return[b];for(var L=[b],A=0,z=P.length;A<z;A++)L[A+1]=P[A][1];return L}var gc={m:"moveto",l:"lineto",h:"horizontal lineto",v:"vertical lineto",c:"curveto",s:"smooth curveto",q:"quadratic curveto",t:"smooth quadratic curveto",a:"elliptical arc",z:"closepath"};for(var lm in gc)gc[lm.toUpperCase()]=gc[lm];function Yn(b,P){P||(P=[{}]);for(var L=P.length;L--;){var A={code:b,command:gc[b]};b==b.toLowerCase()&&(A.relative=!0);for(var z in P[L])A[z]=P[L][z];P[L]=A}return P}if(zt=o(),zt!==e&&C===i.length)return zt;throw zt!==e&&C<i.length&&Ot(up()),Gr(Ge,ke<i.length?i.charAt(ke):null,ke<i.length?hn(ke,ke+1):hn(ke,ke))}e1.exports={SyntaxError:kn,parse:Q3}});var Gh=tl((Gre,r1)=>{var Hd=t1().parse;Hd.parseSVG=Hd;Hd.makeAbsolute=Z3;r1.exports=Hd;function Z3(i){var t,e={x:0,y:0},r={x:"x0",y:"y0",x1:"x0",y1:"y0",x2:"x0",y2:"y0"};return i.forEach(function(o){o.command==="moveto"&&(t=o),o.x0=e.x,o.y0=e.y;for(var n in r)n in o&&(o[n]+=o.relative?o[r[n]]:0);"x"in o||(o.x=e.x),"y"in o||(o.y=e.y),o.relative=!1,o.code=o.code.toUpperCase(),o.command=="closepath"&&(o.x=t.x,o.y=t.y),e=o}),i}});var fS=tl((Ice,pS)=>{pS.exports=function(t,e){for(var r=t.split("."),o=e.split("."),n=0;n<3;n++){var a=Number(r[n]),s=Number(o[n]);if(a>s)return 1;if(s>a)return-1;if(!isNaN(a)&&isNaN(s))return 1;if(isNaN(a)&&!isNaN(s))return-1}return 0}});var NE={};cm(NE,{default:()=>lp});module.exports=zS(NE);var cp=require("three");function vc(i){for(let t of Object.keys(i))i[t]===void 0&&delete i[t];return i}function Ft(i,t){return Object.setPrototypeOf(i,t),i}function Sc(i){return Array.isArray(i)?i:[i]}function wc(i,t){let e=0;for(;e<i.length&&e<t.length;){if(i[e]<t[e])return-1;if(i[e]>t[e])return 1;e+=1}return e!==t.length?-1:e!==i.length?1:0}var GS=typeof global=="object"&&global&&global.Object===Object&&global,Pc=GS;var FS=typeof self=="object"&&self&&self.Object===Object&&self,jS=Pc||FS||Function("return this")(),Tt=jS;var US=Tt.Symbol,Yt=US;var dm=Object.prototype,kS=dm.hasOwnProperty,HS=dm.toString,ol=Yt?Yt.toStringTag:void 0;function WS(i){var t=kS.call(i,ol),e=i[ol];try{i[ol]=void 0;var r=!0}catch{}var o=HS.call(i);return r&&(t?i[ol]=e:delete i[ol]),o}var pm=WS;var qS=Object.prototype,$S=qS.toString;function XS(i){return $S.call(i)}var fm=XS;var YS="[object Null]",KS="[object Undefined]",hm=Yt?Yt.toStringTag:void 0;function QS(i){return i==null?i===void 0?KS:YS:hm&&hm in Object(i)?pm(i):fm(i)}var Dr=QS;function ZS(i){return i!=null&&typeof i=="object"}var or=ZS;var JS="[object Symbol]";function ew(i){return typeof i=="symbol"||or(i)&&Dr(i)==JS}var wi=ew;function tw(i,t){for(var e=-1,r=i==null?0:i.length,o=Array(r);++e<r;)o[e]=t(i[e],e,i);return o}var Oc=tw;var rw=Array.isArray,Ct=rw;var ow=1/0,mm=Yt?Yt.prototype:void 0,ym=mm?mm.toString:void 0;function gm(i){if(typeof i=="string")return i;if(Ct(i))return Oc(i,gm)+"";if(wi(i))return ym?ym.call(i):"";var t=i+"";return t=="0"&&1/i==-ow?"-0":t}var xm=gm;var iw=/\s/;function nw(i){for(var t=i.length;t--&&iw.test(i.charAt(t)););return t}var bm=nw;var aw=/^\s+/;function sw(i){return i&&i.slice(0,bm(i)+1).replace(aw,"")}var vm=sw;function lw(i){var t=typeof i;return i!=null&&(t=="object"||t=="function")}var At=lw;var Sm=0/0,cw=/^[-+]0x[0-9a-f]+$/i,uw=/^0b[01]+$/i,dw=/^0o[0-7]+$/i,pw=parseInt;function fw(i){if(typeof i=="number")return i;if(wi(i))return Sm;if(At(i)){var t=typeof i.valueOf=="function"?i.valueOf():i;i=At(t)?t+"":t}if(typeof i!="string")return i===0?i:+i;i=vm(i);var e=uw.test(i);return e||dw.test(i)?pw(i.slice(2),e?2:8):cw.test(i)?Sm:+i}var Sp=fw;function hw(i){return i}var wm=hw;var mw="[object AsyncFunction]",yw="[object Function]",gw="[object GeneratorFunction]",xw="[object Proxy]";function bw(i){if(!At(i))return!1;var t=Dr(i);return t==yw||t==gw||t==mw||t==xw}var Tc=bw;var vw=Tt["__core-js_shared__"],Cc=vw;var Pm=function(){var i=/[^.]+$/.exec(Cc&&Cc.keys&&Cc.keys.IE_PROTO||"");return i?"Symbol(src)_1."+i:""}();function Sw(i){return!!Pm&&Pm in i}var Om=Sw;var ww=Function.prototype,Pw=ww.toString;function Ow(i){if(i!=null){try{return Pw.call(i)}catch{}try{return i+""}catch{}}return""}var Yo=Ow;var Tw=/[\\^$.*+?()[\]{}|]/g,Cw=/^\[object .+?Constructor\]$/,Aw=Function.prototype,Mw=Object.prototype,Iw=Aw.toString,Ew=Mw.hasOwnProperty,Nw=RegExp("^"+Iw.call(Ew).replace(Tw,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Dw(i){if(!At(i)||Om(i))return!1;var t=Tc(i)?Nw:Cw;return t.test(Yo(i))}var Tm=Dw;function _w(i,t){return i?.[t]}var Cm=_w;function Rw(i,t){var e=Cm(i,t);return Tm(e)?e:void 0}var vr=Rw;var Lw=vr(Tt,"WeakMap"),Ac=Lw;var Am=Object.create,Bw=function(){function i(){}return function(t){if(!At(t))return{};if(Am)return Am(t);i.prototype=t;var e=new i;return i.prototype=void 0,e}}(),Mm=Bw;function Vw(i,t,e){switch(e.length){case 0:return i.call(t);case 1:return i.call(t,e[0]);case 2:return i.call(t,e[0],e[1]);case 3:return i.call(t,e[0],e[1],e[2])}return i.apply(t,e)}var Im=Vw;function zw(i,t){var e=-1,r=i.length;for(t||(t=Array(r));++e<r;)t[e]=i[e];return t}var Em=zw;var Gw=800,Fw=16,jw=Date.now;function Uw(i){var t=0,e=0;return function(){var r=jw(),o=Fw-(r-e);if(e=r,o>0){if(++t>=Gw)return arguments[0]}else t=0;return i.apply(void 0,arguments)}}var Nm=Uw;function kw(i){return function(){return i}}var Dm=kw;var Hw=function(){try{var i=vr(Object,"defineProperty");return i({},"",{}),i}catch{}}(),Qn=Hw;var Ww=Qn?function(i,t){return Qn(i,"toString",{configurable:!0,enumerable:!1,value:Dm(t),writable:!0})}:wm,_m=Ww;var qw=Nm(_m),Rm=qw;function $w(i,t){for(var e=-1,r=i==null?0:i.length;++e<r&&t(i[e],e,i)!==!1;);return i}var Lm=$w;var Xw=9007199254740991,Yw=/^(?:0|[1-9]\d*)$/;function Kw(i,t){var e=typeof i;return t=t??Xw,!!t&&(e=="number"||e!="symbol"&&Yw.test(i))&&i>-1&&i%1==0&&i<t}var Zn=Kw;function Qw(i,t,e){t=="__proto__"&&Qn?Qn(i,t,{configurable:!0,enumerable:!0,value:e,writable:!0}):i[t]=e}var Mc=Qw;function Zw(i,t){return i===t||i!==i&&t!==t}var Jn=Zw;var Jw=Object.prototype,e2=Jw.hasOwnProperty;function t2(i,t,e){var r=i[t];(!(e2.call(i,t)&&Jn(r,e))||e===void 0&&!(t in i))&&Mc(i,t,e)}var ea=t2;function r2(i,t,e,r){var o=!e;e||(e={});for(var n=-1,a=t.length;++n<a;){var s=t[n],l=r?r(e[s],i[s],s,e,i):void 0;l===void 0&&(l=i[s]),o?Mc(e,s,l):ea(e,s,l)}return e}var wo=r2;var Bm=Math.max;function o2(i,t,e){return t=Bm(t===void 0?i.length-1:t,0),function(){for(var r=arguments,o=-1,n=Bm(r.length-t,0),a=Array(n);++o<n;)a[o]=r[t+o];o=-1;for(var s=Array(t+1);++o<t;)s[o]=r[o];return s[t]=e(a),Im(i,this,s)}}var Vm=o2;var i2=9007199254740991;function n2(i){return typeof i=="number"&&i>-1&&i%1==0&&i<=i2}var ta=n2;function a2(i){return i!=null&&ta(i.length)&&!Tc(i)}var Ic=a2;var s2=Object.prototype;function l2(i){var t=i&&i.constructor,e=typeof t=="function"&&t.prototype||s2;return i===e}var ra=l2;function c2(i,t){for(var e=-1,r=Array(i);++e<i;)r[e]=t(e);return r}var zm=c2;var u2="[object Arguments]";function d2(i){return or(i)&&Dr(i)==u2}var wp=d2;var Gm=Object.prototype,p2=Gm.hasOwnProperty,f2=Gm.propertyIsEnumerable,h2=wp(function(){return arguments}())?wp:function(i){return or(i)&&p2.call(i,"callee")&&!f2.call(i,"callee")},oa=h2;function m2(){return!1}var Fm=m2;var km=typeof exports=="object"&&exports&&!exports.nodeType&&exports,jm=km&&typeof module=="object"&&module&&!module.nodeType&&module,y2=jm&&jm.exports===km,Um=y2?Tt.Buffer:void 0,g2=Um?Um.isBuffer:void 0,x2=g2||Fm,xn=x2;var b2="[object Arguments]",v2="[object Array]",S2="[object Boolean]",w2="[object Date]",P2="[object Error]",O2="[object Function]",T2="[object Map]",C2="[object Number]",A2="[object Object]",M2="[object RegExp]",I2="[object Set]",E2="[object String]",N2="[object WeakMap]",D2="[object ArrayBuffer]",_2="[object DataView]",R2="[object Float32Array]",L2="[object Float64Array]",B2="[object Int8Array]",V2="[object Int16Array]",z2="[object Int32Array]",G2="[object Uint8Array]",F2="[object Uint8ClampedArray]",j2="[object Uint16Array]",U2="[object Uint32Array]",mt={};mt[R2]=mt[L2]=mt[B2]=mt[V2]=mt[z2]=mt[G2]=mt[F2]=mt[j2]=mt[U2]=!0;mt[b2]=mt[v2]=mt[D2]=mt[S2]=mt[_2]=mt[w2]=mt[P2]=mt[O2]=mt[T2]=mt[C2]=mt[A2]=mt[M2]=mt[I2]=mt[E2]=mt[N2]=!1;function k2(i){return or(i)&&ta(i.length)&&!!mt[Dr(i)]}var Hm=k2;function H2(i){return function(t){return i(t)}}var ia=H2;var Wm=typeof exports=="object"&&exports&&!exports.nodeType&&exports,il=Wm&&typeof module=="object"&&module&&!module.nodeType&&module,W2=il&&il.exports===Wm,Pp=W2&&Pc.process,q2=function(){try{var i=il&&il.require&&il.require("util").types;return i||Pp&&Pp.binding&&Pp.binding("util")}catch{}}(),Ko=q2;var qm=Ko&&Ko.isTypedArray,$2=qm?ia(qm):Hm,Ec=$2;var X2=Object.prototype,Y2=X2.hasOwnProperty;function K2(i,t){var e=Ct(i),r=!e&&oa(i),o=!e&&!r&&xn(i),n=!e&&!r&&!o&&Ec(i),a=e||r||o||n,s=a?zm(i.length,String):[],l=s.length;for(var c in i)(t||Y2.call(i,c))&&!(a&&(c=="length"||o&&(c=="offset"||c=="parent")||n&&(c=="buffer"||c=="byteLength"||c=="byteOffset")||Zn(c,l)))&&s.push(c);return s}var Nc=K2;function Q2(i,t){return function(e){return i(t(e))}}var Dc=Q2;var Z2=Dc(Object.keys,Object),$m=Z2;var J2=Object.prototype,eP=J2.hasOwnProperty;function tP(i){if(!ra(i))return $m(i);var t=[];for(var e in Object(i))eP.call(i,e)&&e!="constructor"&&t.push(e);return t}var Xm=tP;function rP(i){return Ic(i)?Nc(i):Xm(i)}var na=rP;function oP(i){var t=[];if(i!=null)for(var e in Object(i))t.push(e);return t}var Ym=oP;var iP=Object.prototype,nP=iP.hasOwnProperty;function aP(i){if(!At(i))return Ym(i);var t=ra(i),e=[];for(var r in i)r=="constructor"&&(t||!nP.call(i,r))||e.push(r);return e}var Km=aP;function sP(i){return Ic(i)?Nc(i,!0):Km(i)}var aa=sP;var lP=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,cP=/^\w*$/;function uP(i,t){if(Ct(i))return!1;var e=typeof i;return e=="number"||e=="symbol"||e=="boolean"||i==null||wi(i)?!0:cP.test(i)||!lP.test(i)||t!=null&&i in Object(t)}var Qm=uP;var dP=vr(Object,"create"),Qo=dP;function pP(){this.__data__=Qo?Qo(null):{},this.size=0}var Zm=pP;function fP(i){var t=this.has(i)&&delete this.__data__[i];return this.size-=t?1:0,t}var Jm=fP;var hP="__lodash_hash_undefined__",mP=Object.prototype,yP=mP.hasOwnProperty;function gP(i){var t=this.__data__;if(Qo){var e=t[i];return e===hP?void 0:e}return yP.call(t,i)?t[i]:void 0}var ey=gP;var xP=Object.prototype,bP=xP.hasOwnProperty;function vP(i){var t=this.__data__;return Qo?t[i]!==void 0:bP.call(t,i)}var ty=vP;var SP="__lodash_hash_undefined__";function wP(i,t){var e=this.__data__;return this.size+=this.has(i)?0:1,e[i]=Qo&&t===void 0?SP:t,this}var ry=wP;function sa(i){var t=-1,e=i==null?0:i.length;for(this.clear();++t<e;){var r=i[t];this.set(r[0],r[1])}}sa.prototype.clear=Zm;sa.prototype.delete=Jm;sa.prototype.get=ey;sa.prototype.has=ty;sa.prototype.set=ry;var Op=sa;function PP(){this.__data__=[],this.size=0}var oy=PP;function OP(i,t){for(var e=i.length;e--;)if(Jn(i[e][0],t))return e;return-1}var Pi=OP;var TP=Array.prototype,CP=TP.splice;function AP(i){var t=this.__data__,e=Pi(t,i);if(e<0)return!1;var r=t.length-1;return e==r?t.pop():CP.call(t,e,1),--this.size,!0}var iy=AP;function MP(i){var t=this.__data__,e=Pi(t,i);return e<0?void 0:t[e][1]}var ny=MP;function IP(i){return Pi(this.__data__,i)>-1}var ay=IP;function EP(i,t){var e=this.__data__,r=Pi(e,i);return r<0?(++this.size,e.push([i,t])):e[r][1]=t,this}var sy=EP;function la(i){var t=-1,e=i==null?0:i.length;for(this.clear();++t<e;){var r=i[t];this.set(r[0],r[1])}}la.prototype.clear=oy;la.prototype.delete=iy;la.prototype.get=ny;la.prototype.has=ay;la.prototype.set=sy;var Oi=la;var NP=vr(Tt,"Map"),Ti=NP;function DP(){this.size=0,this.__data__={hash:new Op,map:new(Ti||Oi),string:new Op}}var ly=DP;function _P(i){var t=typeof i;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?i!=="__proto__":i===null}var cy=_P;function RP(i,t){var e=i.__data__;return cy(t)?e[typeof t=="string"?"string":"hash"]:e.map}var Ci=RP;function LP(i){var t=Ci(this,i).delete(i);return this.size-=t?1:0,t}var uy=LP;function BP(i){return Ci(this,i).get(i)}var dy=BP;function VP(i){return Ci(this,i).has(i)}var py=VP;function zP(i,t){var e=Ci(this,i),r=e.size;return e.set(i,t),this.size+=e.size==r?0:1,this}var fy=zP;function ca(i){var t=-1,e=i==null?0:i.length;for(this.clear();++t<e;){var r=i[t];this.set(r[0],r[1])}}ca.prototype.clear=ly;ca.prototype.delete=uy;ca.prototype.get=dy;ca.prototype.has=py;ca.prototype.set=fy;var bn=ca;var GP="Expected a function";function Tp(i,t){if(typeof i!="function"||t!=null&&typeof t!="function")throw new TypeError(GP);var e=function(){var r=arguments,o=t?t.apply(this,r):r[0],n=e.cache;if(n.has(o))return n.get(o);var a=i.apply(this,r);return e.cache=n.set(o,a)||n,a};return e.cache=new(Tp.Cache||bn),e}Tp.Cache=bn;var hy=Tp;var FP=500;function jP(i){var t=hy(i,function(r){return e.size===FP&&e.clear(),r}),e=t.cache;return t}var my=jP;var UP=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,kP=/\\(\\)?/g,HP=my(function(i){var t=[];return i.charCodeAt(0)===46&&t.push(""),i.replace(UP,function(e,r,o,n){t.push(o?n.replace(kP,"$1"):r||e)}),t}),yy=HP;function WP(i){return i==null?"":xm(i)}var gy=WP;function qP(i,t){return Ct(i)?i:Qm(i,t)?[i]:yy(gy(i))}var Fr=qP;var $P=1/0;function XP(i){if(typeof i=="string"||wi(i))return i;var t=i+"";return t=="0"&&1/i==-$P?"-0":t}var Ai=XP;function YP(i,t){t=Fr(t,i);for(var e=0,r=t.length;i!=null&&e<r;)i=i[Ai(t[e++])];return e&&e==r?i:void 0}var _c=YP;function KP(i,t){for(var e=-1,r=t.length,o=i.length;++e<r;)i[o+e]=t[e];return i}var ua=KP;var xy=Yt?Yt.isConcatSpreadable:void 0;function QP(i){return Ct(i)||oa(i)||!!(xy&&i&&i[xy])}var by=QP;function vy(i,t,e,r,o){var n=-1,a=i.length;for(e||(e=by),o||(o=[]);++n<a;){var s=i[n];t>0&&e(s)?t>1?vy(s,t-1,e,r,o):ua(o,s):r||(o[o.length]=s)}return o}var Sy=vy;function ZP(i){var t=i==null?0:i.length;return t?Sy(i,1):[]}var wy=ZP;function JP(i){return Rm(Vm(i,void 0,wy),i+"")}var Rc=JP;var eO=Dc(Object.getPrototypeOf,Object),da=eO;var tO="[object Object]",rO=Function.prototype,oO=Object.prototype,Py=rO.toString,iO=oO.hasOwnProperty,nO=Py.call(Object);function aO(i){if(!or(i)||Dr(i)!=tO)return!1;var t=da(i);if(t===null)return!0;var e=iO.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Py.call(e)==nO}var Oy=aO;function sO(i,t,e){var r=-1,o=i.length;t<0&&(t=-t>o?0:o+t),e=e>o?o:e,e<0&&(e+=o),o=t>e?0:e-t>>>0,t>>>=0;for(var n=Array(o);++r<o;)n[r]=i[r+t];return n}var Ty=sO;function lO(){this.__data__=new Oi,this.size=0}var Cy=lO;function cO(i){var t=this.__data__,e=t.delete(i);return this.size=t.size,e}var Ay=cO;function uO(i){return this.__data__.get(i)}var My=uO;function dO(i){return this.__data__.has(i)}var Iy=dO;var pO=200;function fO(i,t){var e=this.__data__;if(e instanceof Oi){var r=e.__data__;if(!Ti||r.length<pO-1)return r.push([i,t]),this.size=++e.size,this;e=this.__data__=new bn(r)}return e.set(i,t),this.size=e.size,this}var Ey=fO;function pa(i){var t=this.__data__=new Oi(i);this.size=t.size}pa.prototype.clear=Cy;pa.prototype.delete=Ay;pa.prototype.get=My;pa.prototype.has=Iy;pa.prototype.set=Ey;var fa=pa;function hO(i,t){return i&&wo(t,na(t),i)}var Ny=hO;function mO(i,t){return i&&wo(t,aa(t),i)}var Dy=mO;var By=typeof exports=="object"&&exports&&!exports.nodeType&&exports,_y=By&&typeof module=="object"&&module&&!module.nodeType&&module,yO=_y&&_y.exports===By,Ry=yO?Tt.Buffer:void 0,Ly=Ry?Ry.allocUnsafe:void 0;function gO(i,t){if(t)return i.slice();var e=i.length,r=Ly?Ly(e):new i.constructor(e);return i.copy(r),r}var Vy=gO;function xO(i,t){for(var e=-1,r=i==null?0:i.length,o=0,n=[];++e<r;){var a=i[e];t(a,e,i)&&(n[o++]=a)}return n}var zy=xO;function bO(){return[]}var Lc=bO;var vO=Object.prototype,SO=vO.propertyIsEnumerable,Gy=Object.getOwnPropertySymbols,wO=Gy?function(i){return i==null?[]:(i=Object(i),zy(Gy(i),function(t){return SO.call(i,t)}))}:Lc,ha=wO;function PO(i,t){return wo(i,ha(i),t)}var Fy=PO;var OO=Object.getOwnPropertySymbols,TO=OO?function(i){for(var t=[];i;)ua(t,ha(i)),i=da(i);return t}:Lc,Bc=TO;function CO(i,t){return wo(i,Bc(i),t)}var jy=CO;function AO(i,t,e){var r=t(i);return Ct(i)?r:ua(r,e(i))}var Vc=AO;function MO(i){return Vc(i,na,ha)}var nl=MO;function IO(i){return Vc(i,aa,Bc)}var zc=IO;var EO=vr(Tt,"DataView"),Gc=EO;var NO=vr(Tt,"Promise"),Fc=NO;var DO=vr(Tt,"Set"),jc=DO;var Uy="[object Map]",_O="[object Object]",ky="[object Promise]",Hy="[object Set]",Wy="[object WeakMap]",qy="[object DataView]",RO=Yo(Gc),LO=Yo(Ti),BO=Yo(Fc),VO=Yo(jc),zO=Yo(Ac),vn=Dr;(Gc&&vn(new Gc(new ArrayBuffer(1)))!=qy||Ti&&vn(new Ti)!=Uy||Fc&&vn(Fc.resolve())!=ky||jc&&vn(new jc)!=Hy||Ac&&vn(new Ac)!=Wy)&&(vn=function(i){var t=Dr(i),e=t==_O?i.constructor:void 0,r=e?Yo(e):"";if(r)switch(r){case RO:return qy;case LO:return Uy;case BO:return ky;case VO:return Hy;case zO:return Wy}return t});var Zo=vn;var GO=Object.prototype,FO=GO.hasOwnProperty;function jO(i){var t=i.length,e=new i.constructor(t);return t&&typeof i[0]=="string"&&FO.call(i,"index")&&(e.index=i.index,e.input=i.input),e}var $y=jO;var UO=Tt.Uint8Array,ma=UO;function kO(i){var t=new i.constructor(i.byteLength);return new ma(t).set(new ma(i)),t}var ya=kO;function HO(i,t){var e=t?ya(i.buffer):i.buffer;return new i.constructor(e,i.byteOffset,i.byteLength)}var Xy=HO;var WO=/\w*$/;function qO(i){var t=new i.constructor(i.source,WO.exec(i));return t.lastIndex=i.lastIndex,t}var Yy=qO;var Ky=Yt?Yt.prototype:void 0,Qy=Ky?Ky.valueOf:void 0;function $O(i){return Qy?Object(Qy.call(i)):{}}var Zy=$O;function XO(i,t){var e=t?ya(i.buffer):i.buffer;return new i.constructor(e,i.byteOffset,i.length)}var Jy=XO;var YO="[object Boolean]",KO="[object Date]",QO="[object Map]",ZO="[object Number]",JO="[object RegExp]",eT="[object Set]",tT="[object String]",rT="[object Symbol]",oT="[object ArrayBuffer]",iT="[object DataView]",nT="[object Float32Array]",aT="[object Float64Array]",sT="[object Int8Array]",lT="[object Int16Array]",cT="[object Int32Array]",uT="[object Uint8Array]",dT="[object Uint8ClampedArray]",pT="[object Uint16Array]",fT="[object Uint32Array]";function hT(i,t,e){var r=i.constructor;switch(t){case oT:return ya(i);case YO:case KO:return new r(+i);case iT:return Xy(i,e);case nT:case aT:case sT:case lT:case cT:case uT:case dT:case pT:case fT:return Jy(i,e);case QO:return new r;case ZO:case tT:return new r(i);case JO:return Yy(i);case eT:return new r;case rT:return Zy(i)}}var eg=hT;function mT(i){return typeof i.constructor=="function"&&!ra(i)?Mm(da(i)):{}}var tg=mT;var yT="[object Map]";function gT(i){return or(i)&&Zo(i)==yT}var rg=gT;var og=Ko&&Ko.isMap,xT=og?ia(og):rg,ig=xT;var bT="[object Set]";function vT(i){return or(i)&&Zo(i)==bT}var ng=vT;var ag=Ko&&Ko.isSet,ST=ag?ia(ag):ng,sg=ST;var wT=1,PT=2,OT=4,lg="[object Arguments]",TT="[object Array]",CT="[object Boolean]",AT="[object Date]",MT="[object Error]",cg="[object Function]",IT="[object GeneratorFunction]",ET="[object Map]",NT="[object Number]",ug="[object Object]",DT="[object RegExp]",_T="[object Set]",RT="[object String]",LT="[object Symbol]",BT="[object WeakMap]",VT="[object ArrayBuffer]",zT="[object DataView]",GT="[object Float32Array]",FT="[object Float64Array]",jT="[object Int8Array]",UT="[object Int16Array]",kT="[object Int32Array]",HT="[object Uint8Array]",WT="[object Uint8ClampedArray]",qT="[object Uint16Array]",$T="[object Uint32Array]",dt={};dt[lg]=dt[TT]=dt[VT]=dt[zT]=dt[CT]=dt[AT]=dt[GT]=dt[FT]=dt[jT]=dt[UT]=dt[kT]=dt[ET]=dt[NT]=dt[ug]=dt[DT]=dt[_T]=dt[RT]=dt[LT]=dt[HT]=dt[WT]=dt[qT]=dt[$T]=!0;dt[MT]=dt[cg]=dt[BT]=!1;function Uc(i,t,e,r,o,n){var a,s=t&wT,l=t&PT,c=t&OT;if(e&&(a=o?e(i,r,o,n):e(i)),a!==void 0)return a;if(!At(i))return i;var u=Ct(i);if(u){if(a=$y(i),!s)return Em(i,a)}else{var d=Zo(i),p=d==cg||d==IT;if(xn(i))return Vy(i,s);if(d==ug||d==lg||p&&!o){if(a=l||p?{}:tg(i),!s)return l?jy(i,Dy(a,i)):Fy(i,Ny(a,i))}else{if(!dt[d])return o?i:{};a=eg(i,d,s)}}n||(n=new fa);var f=n.get(i);if(f)return f;n.set(i,a),sg(i)?i.forEach(function(y){a.add(Uc(y,t,e,y,i,n))}):ig(i)&&i.forEach(function(y,x){a.set(x,Uc(y,t,e,x,i,n))});var h=c?l?zc:nl:l?aa:na,m=u?void 0:h(i);return Lm(m||i,function(y,x){m&&(x=y,y=i[x]),ea(a,x,Uc(y,t,e,x,i,n))}),a}var kc=Uc;var XT=1,YT=4;function KT(i){return kc(i,XT|YT)}var Jo=KT;var QT="__lodash_hash_undefined__";function ZT(i){return this.__data__.set(i,QT),this}var dg=ZT;function JT(i){return this.__data__.has(i)}var pg=JT;function Hc(i){var t=-1,e=i==null?0:i.length;for(this.__data__=new bn;++t<e;)this.add(i[t])}Hc.prototype.add=Hc.prototype.push=dg;Hc.prototype.has=pg;var fg=Hc;function eC(i,t){for(var e=-1,r=i==null?0:i.length;++e<r;)if(t(i[e],e,i))return!0;return!1}var hg=eC;function tC(i,t){return i.has(t)}var mg=tC;var rC=1,oC=2;function iC(i,t,e,r,o,n){var a=e&rC,s=i.length,l=t.length;if(s!=l&&!(a&&l>s))return!1;var c=n.get(i),u=n.get(t);if(c&&u)return c==t&&u==i;var d=-1,p=!0,f=e&oC?new fg:void 0;for(n.set(i,t),n.set(t,i);++d<s;){var h=i[d],m=t[d];if(r)var y=a?r(m,h,d,t,i,n):r(h,m,d,i,t,n);if(y!==void 0){if(y)continue;p=!1;break}if(f){if(!hg(t,function(x,v){if(!mg(f,v)&&(h===x||o(h,x,e,r,n)))return f.push(v)})){p=!1;break}}else if(!(h===m||o(h,m,e,r,n))){p=!1;break}}return n.delete(i),n.delete(t),p}var Wc=iC;function nC(i){var t=-1,e=Array(i.size);return i.forEach(function(r,o){e[++t]=[o,r]}),e}var yg=nC;function aC(i){var t=-1,e=Array(i.size);return i.forEach(function(r){e[++t]=r}),e}var gg=aC;var sC=1,lC=2,cC="[object Boolean]",uC="[object Date]",dC="[object Error]",pC="[object Map]",fC="[object Number]",hC="[object RegExp]",mC="[object Set]",yC="[object String]",gC="[object Symbol]",xC="[object ArrayBuffer]",bC="[object DataView]",xg=Yt?Yt.prototype:void 0,Cp=xg?xg.valueOf:void 0;function vC(i,t,e,r,o,n,a){switch(e){case bC:if(i.byteLength!=t.byteLength||i.byteOffset!=t.byteOffset)return!1;i=i.buffer,t=t.buffer;case xC:return!(i.byteLength!=t.byteLength||!n(new ma(i),new ma(t)));case cC:case uC:case fC:return Jn(+i,+t);case dC:return i.name==t.name&&i.message==t.message;case hC:case yC:return i==t+"";case pC:var s=yg;case mC:var l=r&sC;if(s||(s=gg),i.size!=t.size&&!l)return!1;var c=a.get(i);if(c)return c==t;r|=lC,a.set(i,t);var u=Wc(s(i),s(t),r,o,n,a);return a.delete(i),u;case gC:if(Cp)return Cp.call(i)==Cp.call(t)}return!1}var bg=vC;var SC=1,wC=Object.prototype,PC=wC.hasOwnProperty;function OC(i,t,e,r,o,n){var a=e&SC,s=nl(i),l=s.length,c=nl(t),u=c.length;if(l!=u&&!a)return!1;for(var d=l;d--;){var p=s[d];if(!(a?p in t:PC.call(t,p)))return!1}var f=n.get(i),h=n.get(t);if(f&&h)return f==t&&h==i;var m=!0;n.set(i,t),n.set(t,i);for(var y=a;++d<l;){p=s[d];var x=i[p],v=t[p];if(r)var w=a?r(v,x,p,t,i,n):r(x,v,p,i,t,n);if(!(w===void 0?x===v||o(x,v,e,r,n):w)){m=!1;break}y||(y=p=="constructor")}if(m&&!y){var O=i.constructor,S=t.constructor;O!=S&&"constructor"in i&&"constructor"in t&&!(typeof O=="function"&&O instanceof O&&typeof S=="function"&&S instanceof S)&&(m=!1)}return n.delete(i),n.delete(t),m}var vg=OC;var TC=1,Sg="[object Arguments]",wg="[object Array]",qc="[object Object]",CC=Object.prototype,Pg=CC.hasOwnProperty;function AC(i,t,e,r,o,n){var a=Ct(i),s=Ct(t),l=a?wg:Zo(i),c=s?wg:Zo(t);l=l==Sg?qc:l,c=c==Sg?qc:c;var u=l==qc,d=c==qc,p=l==c;if(p&&xn(i)){if(!xn(t))return!1;a=!0,u=!1}if(p&&!u)return n||(n=new fa),a||Ec(i)?Wc(i,t,e,r,o,n):bg(i,t,l,e,r,o,n);if(!(e&TC)){var f=u&&Pg.call(i,"__wrapped__"),h=d&&Pg.call(t,"__wrapped__");if(f||h){var m=f?i.value():i,y=h?t.value():t;return n||(n=new fa),o(m,y,e,r,n)}}return p?(n||(n=new fa),vg(i,t,e,r,o,n)):!1}var Og=AC;function Tg(i,t,e,r,o){return i===t?!0:i==null||t==null||!or(i)&&!or(t)?i!==i&&t!==t:Og(i,t,e,r,Tg,o)}var Cg=Tg;function MC(i,t){return i!=null&&t in Object(i)}var Ag=MC;function IC(i,t,e){t=Fr(t,i);for(var r=-1,o=t.length,n=!1;++r<o;){var a=Ai(t[r]);if(!(n=i!=null&&e(i,a)))break;i=i[a]}return n||++r!=o?n:(o=i==null?0:i.length,!!o&&ta(o)&&Zn(a,o)&&(Ct(i)||oa(i)))}var Mg=IC;function EC(i,t){return i!=null&&Mg(i,t,Ag)}var Ig=EC;var NC=function(){return Tt.Date.now()},$c=NC;var DC="Expected a function",_C=Math.max,RC=Math.min;function LC(i,t,e){var r,o,n,a,s,l,c=0,u=!1,d=!1,p=!0;if(typeof i!="function")throw new TypeError(DC);t=Sp(t)||0,At(e)&&(u=!!e.leading,d="maxWait"in e,n=d?_C(Sp(e.maxWait)||0,t):n,p="trailing"in e?!!e.trailing:p);function f(T){var M=r,g=o;return r=o=void 0,c=T,a=i.apply(g,M),a}function h(T){return c=T,s=setTimeout(x,t),u?f(T):a}function m(T){var M=T-l,g=T-c,D=t-M;return d?RC(D,n-g):D}function y(T){var M=T-l,g=T-c;return l===void 0||M>=t||M<0||d&&g>=n}function x(){var T=$c();if(y(T))return v(T);s=setTimeout(x,m(T))}function v(T){return s=void 0,p&&r?f(T):(r=o=void 0,a)}function w(){s!==void 0&&clearTimeout(s),c=0,r=l=o=s=void 0}function O(){return s===void 0?a:v($c())}function S(){var T=$c(),M=y(T);if(r=arguments,o=this,l=T,M){if(s===void 0)return h(l);if(d)return clearTimeout(s),s=setTimeout(x,t),f(l)}return s===void 0&&(s=setTimeout(x,t)),a}return S.cancel=w,S.flush=O,S}var Xc=LC;function BC(i){var t=i==null?0:i.length;return t?i[t-1]:void 0}var Eg=BC;function VC(i,t){return t.length<2?i:_c(i,Ty(t,0,-1))}var Ng=VC;function zC(i,t){return Cg(i,t)}var Ap=zC;function GC(i,t){return t=Fr(t,i),i=Ng(i,t),i==null||delete i[Ai(Eg(t))]}var Dg=GC;function FC(i){return Oy(i)?void 0:i}var _g=FC;var jC=1,UC=2,kC=4,HC=Rc(function(i,t){var e={};if(i==null)return e;var r=!1;t=Oc(t,function(n){return n=Fr(n,i),r||(r=n.length>1),n}),wo(i,zc(i),e),r&&(e=kc(e,jC|UC|kC,_g));for(var o=t.length;o--;)Dg(e,t[o]);return e}),ga=HC;function WC(i,t,e,r){if(!At(i))return i;t=Fr(t,i);for(var o=-1,n=t.length,a=n-1,s=i;s!=null&&++o<n;){var l=Ai(t[o]),c=e;if(l==="__proto__"||l==="constructor"||l==="prototype")return i;if(o!=a){var u=s[l];c=r?r(u,l,s):void 0,c===void 0&&(c=At(u)?u:Zn(t[o+1])?[]:{})}ea(s,l,c),s=s[l]}return i}var Rg=WC;function qC(i,t,e){for(var r=-1,o=t.length,n={};++r<o;){var a=t[r],s=_c(i,a);e(s,a)&&Rg(n,Fr(a,i),s)}return n}var Lg=qC;function $C(i,t){return Lg(i,t,function(e,r){return Ig(i,r)})}var Bg=$C;var XC=Rc(function(i,t){return i==null?{}:Bg(i,t)}),oo=XC;var de=class{modifyById(t,e){let r=this;if(r[t]===void 0)throw new Error("not expected");{let n={...r,[t]:e};return Object.setPrototypeOf(n,de.prototype),n}}add(t,e){return this.runOp({type:1,id:t,data:e})?.data??this}runOp(t){let e=this;if(t.type===1){let r=e[t.id],o;r===void 0?o={type:2,id:t.id}:o={type:1,id:t.id,data:r};let{id:n,data:a}=t,s={...e,[n]:a};return Object.setPrototypeOf(s,de.prototype),{data:s,actual:t,reverse:o}}else if(t.type===2){let{id:r}=t,o=e[r];if(o===void 0)return null;{let n={...e};return Object.setPrototypeOf(n,de.prototype),delete n[r],{data:n,actual:t,reverse:{type:1,id:r,data:o}}}}return null}};function al(i){if(i.deepFreeze!==void 0){i.deepFreeze(i);return}let t=Object.getOwnPropertyNames(i);for(let e of t){let r=i[e];r&&typeof r=="object"&&al(r)}return Object.freeze(i)}function Vg(i,t){let e=0;for(;e<i.length&&e<t.length;){if(i[e]<t[e])return-1;if(i[e]>t[e])return 1;e+=1}return e!==t.length?-1:e!==i.length?1:0}var xa=class extends Error{};function Yc(i){let t={...i};return Object.setPrototypeOf(t,Object.getPrototypeOf(i)),t}function Po(i,t,e){if(i===void 0?t===void 0?(i=0,t=10):i=t-10:t===void 0&&(t=i+10),i>t){let n=i;i=t,t=n}let r=[],o=1/(e+1);for(let n=0;n<e;n++){let a=i+(t-i)*(n+.75+Math.random()*.5)*o;r.push(a)}return r}function ba(i){return i instanceof Uint8Array||i instanceof Uint16Array||i instanceof Uint32Array||i instanceof Int8Array||i instanceof Int16Array||i instanceof Int32Array||i instanceof Float32Array||i instanceof Float64Array}function zg(){return typeof process<"u"}function Gg(i,t){for(let e of i)t(e.id,e.data)!==!0&&Gg(e.children,t)}function Fg(i,t){if(t(i.id,i.data)!==!0)for(let e of i.children)Fg(e,t)}var ct=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,ct.prototype)}deepFreeze(){let e=0;for(;e<this.length;)al(this[e]),e++}fillCaches0(e,r){this.objCaches.set(e.id,e),this.parentCaches.set(e.id,r);for(let o of e.children)this.fillCaches0(o,e.id)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,this.parentCaches=new Map;for(let e of this)this.fillCaches0(e,null)}}randomId(){this.fillCaches();let e=Array.from(this.objCaches.keys());if(e.length!==0)return e[Math.max(0,Math.floor(Math.random()*e.length)-1)]}nonExistOrDescendantOf(e,r){if(!this.has(e))return!0;for(;e;){let o=this.parent(e);if(o===r)return!0;e=o}return!1}rootAcestor(e){for(;e;){let r=this.parent(e);if(r)e=r;else return e}return e}isDescendantOf(e,r){for(;e;){let o=this.parent(e);if(o===r)return!0;e=o}return!1}data(e){return this.get(e)?.data}has(e){return this.childrenOf(e)!==void 0}get(e){return this.fillCaches(),this.objCaches.get(e)}childrenOf(e){return e===null?this:this.get(e)?.children}traverseFrom(e,r){if(e===null)this.traverse(r);else{let o=this.get(e);o&&Fg(o,r)}}traverse(e){Gg(this,e)}totalSize(){return this.fillCaches(),this.objCaches.size}parent(e){return this.fillCaches(),this.parentCaches.get(e)}childrenArray(e){return e===null?this:this.get(e).children}modifyById(e,r){if(this.get(e)===void 0)throw new Error("not expected");{let n=this.parent(e),a=this.childrenArray(n),s=a.findIndex(u=>u.id===e);if(s<0)throw new Error("not expected");let l=a[s];return a=[...a],a[s]={...l,data:r},this.modifyArrayBy(n,a)}}modifyArrayBy(e,r){let o=e,n=r;for(;o!==null;){let s=n,l=o;if(o=this.parent(o),o===void 0)throw new Error;n=this.childrenArray(o);let c=n.findIndex(u=>u.id===l);if(c<0)throw new Error;n=[...n],n[c]={...n[c],children:s}}Object.setPrototypeOf(n,ct.prototype);let a=n;return a.fillCaches(),a}runOp(e){switch(e.type){case 7:return this.addOp(e);case 8:return this.deleteOp(e);case 9:return this.moveOp(e)}return null}checkDuplicatedIdRec({id:e,children:r}){if(this.get(e)!==void 0)return!0;for(let o of r)if(this.checkDuplicatedIdRec(o))return!0;return!1}addOp(e){let{parent:r,fi:o,id:n,data:a,children:s}=e;if(r!==null&&this.get(r)===void 0)return null;if(this.checkDuplicatedIdRec(e))return null;{let l=r,c=this.childrenArray(l),u={fi:o,id:n,data:a,children:s};return c=[...c,u],c.sort((p,f)=>p.fi-f.fi),e.localIndex=c.indexOf(u),{data:this.modifyArrayBy(l,c),actual:e,reverse:{type:8,id:n}}}}deleteOp(e){let{id:r}=e;if(this.get(r)===null)return null;{let o=this.parent(r);if(o===void 0)return null;let n=this.childrenArray(o),a=n.findIndex(c=>c.id===r);e.localIndex=a,n=[...n];let s=n.splice(a,1)[0];return{data:this.modifyArrayBy(o,n),actual:e,reverse:{type:7,...s,parent:o}}}}moveOp(e){let{parent:r,fi:o,id:n}=e;if(r!==null&&this.get(r)===void 0)return this.deleteOp({type:8,id:n});if(r!==null){let f=r;for(;f!==null;){if(f===void 0)throw new Error;if(f===n)throw new xa("cyclic tree");f=this.parent(f)}}let a=this.parent(n);if(a===void 0)return null;let s=a,l=this.childrenArray(a),c=l.findIndex(f=>f.id===n);l=[...l];let u=l.splice(c,1)[0],d=this.modifyArrayBy(a,l);a=r,l=d.childrenArray(a);let p=u.fi;return u={...u,fi:o},l=[...l,u],l.sort((f,h)=>f.fi-h.fi),e.localIndex=l.indexOf(u),d=d.modifyArrayBy(a,l),{data:d,actual:e,reverse:{type:9,parent:s,fi:p,id:n}}}previous(e,r){if(r===null){let n=this.childrenArray(e);return n.length===0?null:n[n.length-1].id}let o=null;for(let n of this.childrenArray(e)){if(n.id===r)return o;o=n.id}return null}traverseSortNext(e){let r=this.parent(e);if(r!==void 0){let o=this.childrenArray(r),n=o.findIndex(a=>a.id===e)+1;if(n<o.length)return o[n].id;if(r)return this.traverseSortNext(r)}}sortNext(e){let r=this.childrenArray(e);return r.length>0?r[0].id:this.traverseSortNext(e)}traverseSortPrevious(e){let r=this.childrenArray(e);return r.length>0?this.traverseSortPrevious(r[r.length-1].id):e}sortPrevious(e){let r=this.parent(e);if(r!==void 0){let o=this.childrenArray(r),n=o.findIndex(a=>a.id===e)-1;return n>=0?this.traverseSortPrevious(o[n].id):r}}getAllSorted(e){let r=[];for(let o of e){let n=this.getWithSortKey(o.id);n!==void 0&&r.push({...o,...n})}r.sort((o,n)=>Vg(o.sortKey,n.sortKey));for(let o of r)delete o.sortKey;return r}getWithSortKey(e){var r=e;let o=[],n=this.get(r),a=n;if(n!==void 0){for(;r;)o.splice(0,0,n.fi),r=this.parent(r),r!==null&&(n=this.get(r));return{...a,sortKey:o}}}insertBeforeHelper(e,r,o){return this.insertAfterHelper(e,this.previous(e,r),o)}insertAfterHelper(e,r,o){let n=this.childrenArray(e);if(r===null){if(n.length===0)return Po(0,o,o);{let a=n[0].fi;return Po(a-o,a,o)}}else{let a=this.get(r);if(a===void 0||this.parent(r)!==e)throw new Error("illegal args");let s=n.find(l=>l.fi>a.fi);if(s===void 0){let l=n[n.length-1].fi;return Po(l,l+o,o)}else return Po(a.fi,s.fi,o)}}};var va;(t=>{function i(e,r){if(r.type!==0)return null;if(Array.isArray(e)){let o=r.props,n={},a=[...e],s=!1;if(o)for(let l of Object.keys(o)){let c=parseInt(l);if(isNaN(c))throw new Error("wrong index");n[l]=a[c],a[c]=o[l],s=!0}return s?{data:a,actual:r,reverse:{type:0,props:n}}:null}else{let o=r.props,n={},a={...e},s=!1;if(o)for(let l of Object.keys(o)){n[l]=a[l];let c=o[l];c===void 0?delete a[l]:a[l]=c,s=!0}return s?{data:a,actual:r,reverse:{type:0,props:n}}:null}}t.runOp=i})(va||(va={}));var Se=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,Se.prototype)}deepFreeze(){let e=0;for(;e<this.length;)al(this[e]),e++}fillCaches0(e){this.objCaches.set(e.id,e)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,Object.getOwnPropertyDescriptor(this,"objCaches").enumerable=!1;for(let e of this)this.fillCaches0(e)}}randomId(){this.fillCaches();let e=Array.from(this.objCaches.keys());if(e.length!==0)return e[Math.max(0,Math.floor(Math.random()*e.length)-1)]}data(e){return this.get(e)?.data}get(e){return this.fillCaches(),this.objCaches.get(e)}modifyById(e,r){if(this.get(e)===void 0)throw new Error("not expected");{let n=this,a=n.findIndex(c=>c.id===e);if(a<0)throw new Error("not expected");let s=n[a];return n=[...n],n[a]={...s,data:r},this.modifyArrayBy(n)}}modifyArrayBy(e){Object.setPrototypeOf(e,Se.prototype);let r=e;return zg()||r.fillCaches(),r}runOp(e){switch(e.type){case 4:return this.addOp(e);case 5:return this.deleteOp(e);case 6:return this.moveOp(e)}return null}addOp(e){let{fi:r,id:o,data:n}=e,a=this,s={fi:r,id:o,data:n};return a=[...a,s],a.sort((c,u)=>c.fi-u.fi),e.localIndex=a.indexOf(s),{data:this.modifyArrayBy(a),actual:e,reverse:{type:5,id:o}}}deleteOp(e){let{id:r}=e,o=this,n=o.findIndex(l=>l.id===r);if(n===-1)return null;e.localIndex=n,o=[...o];let a=o.splice(n,1)[0];return{data:this.modifyArrayBy(o),actual:e,reverse:{type:4,...a}}}moveOp(e){let{fi:r,id:o}=e,n=this;n=[...n];let a=n.findIndex(u=>u.id===o);if(a===-1)return null;let s=n[a].fi,l={...n[a],fi:r};return n[a]=l,n.sort((u,d)=>u.fi-d.fi),e.localIndex=n.indexOf(l),{data:this.modifyArrayBy(n),actual:e,reverse:{type:6,fi:s,id:o}}}previous(e){if(e===null)return this.length===0?null:this[this.length-1].id;let r=null;for(let o of this){if(o.id===e)return r;r=o.id}return null}insertBeforeHelper(e,r){return this.insertAfterHelper(this.previous(e),r)}insertAfterHelper(e,r){let o=this;if(e===null){if(o.length===0)return Po(0,r,r);{let n=o[0].fi;return Po(n-r,n,r)}}else{let n=this.get(e);if(n===void 0)throw new Error("illegal args");let a=o.find(s=>s.fi>n.fi);if(a===void 0){let s=o[o.length-1].fi;return Po(s,s+r,r)}else return Po(n.fi,a.fi,r)}}};function Sa(i){return i&&typeof i=="object"&&i instanceof Je}var Je=class{unusedFunOverridesTable(t){}runOp(t){let e=[],r=this,o=0,n={};for(;o<t.path.length;){if(e.push(r),r=r===void 0?void 0:r[t.path[o]],r!==void 0&&!Sa(r))return null;o+=1}r=r?Yc(r):new Je;for(let[l,c]of Object.entries(t.props)){let u=r[l];n[l]=u,c===void 0?delete r[l]:r[l]=c}for(;o>0;){if(Object.keys(r).length===0){let l=e[o-1];l&&(r=Yc(l),delete r[t.path[o-1]])}else{let l=e[o-1];if(l){let c=Yc(l);c[t.path[o-1]]=r,r=c}else{let c=new Je;c[t.path[o-1]]=r,r=c}}o-=1}let a=Object.setPrototypeOf(r,Je.prototype),s={...t,props:n};return{data:a,actual:t,reverse:s}}},Oo;(r=>{function i(o,n){return sl(o,n)??o}r.apply=i;function t(o,n){return Ip(o,n)}r.merge=t;function e(o,n){let a=0,s=n.path,l=o;for(;a<s.length&&l!==void 0;){if(l=ut.zoomOnce(l,s[a]),l===void 0)return n;if(!Sa(l))return;a+=1}if(l===void 0)return n;if(!!Sa(l))if(n.type===0){let c={...n.props};for(let u of Object.keys(l))delete c[u];return{...n,props:c}}else if(n.type===1||n.type===4||n.type===7){let c=Mp([n],l);return c?c[0]:n}else return n}r.filterOp=e})(Oo||(Oo={}));function Mp(i,t){if(t===void 0)return;let e=!1,r=i.map(o=>{let n=o.id,a=sl(o.data,t[n]);if(e=e||a!==void 0,a===void 0&&(a=o.data),o.children){let s=Mp(o.children,t);return s!==void 0?e=!0:s=o.children,{...o,id:n,data:a,children:s}}else return{...o,id:n,data:a}});if(e)return r}function YC(i,t){if(t===void 0)return;let e=!1,r=i.map(o=>{let n=o.id,a=sl(o.data,t[n]);return e=e||a!==void 0,a===void 0&&(a=o.data),{...o,id:n,data:a}});if(e)return Object.setPrototypeOf(r,Object.getPrototypeOf(i)),r}function sl(i,t){if(!Sa(t))return t;if(i instanceof ct){let e=Mp(i,t);return e!==void 0&&Object.setPrototypeOf(e,Object.getPrototypeOf(i)),e}else{if(i instanceof Se)return YC(i,t);if(Array.isArray(i)){let e=!1,r=i.map((o,n)=>{let a=sl(o,t[n]);return e=e||a!==void 0,a===void 0&&(a=o),a});return e?(Object.setPrototypeOf(r,Object.getPrototypeOf(i)),r):void 0}else{if(i instanceof Je)return Ip(i,t);if(i&&typeof i=="object"){let e={},r=!1;for(let[o,n]of Object.entries(i)){let a=sl(n,t[o]);r=r||a!==void 0,a===void 0&&(a=n),e[o]=a}return r?(Object.setPrototypeOf(e,Object.getPrototypeOf(i)),e):void 0}}}}function Ip(i,t){if(i===void 0)return t;if(t===void 0)return i;if(!Sa(t))return t;if(!Sa(i))return Oo.apply(i,t);let e=new Set;for(let o of Object.keys(i))e.add(o);for(let o of Object.keys(t))e.add(o);let r=new Je;for(let o of e){let n=Ip(i===void 0?void 0:i[o],t===void 0?void 0:t[o]);r[o]=n}return r}function jg(i,t){let e={cur:[],result:[],len:0};return i=ll(i,t,e)??i,[i,e.result]}function Kc(i,t){return i===null?null:(i.cur[i.len]=t,i.len+=1,i)}function Qc(i){i&&(i.len-=1)}function KC(i){if(i===null)return null;i.result.push(i.cur.slice(0,i.len))}function Ug(i,t,e){let r=!1,o=i.map(n=>{let a=n.id,s=t[a];if(s!==void 0&&typeof s=="string"&&(r=!0,a=s,e!==null))throw new Error("not supported");let l=ll(n.data,t,Kc(e,a));Qc(e),r=r||l!==void 0,l===void 0&&(l=n.data);let c=Ug(n.children,t,e);return c!==void 0?r=!0:c=n.children,{...n,id:a,data:l,children:c}});if(r)return o}function QC(i,t,e){let r=!1,o=i.map(n=>{let a=n.id,s=t[a];if(s!==void 0&&typeof s=="string"&&(r=!0,a=s,e!==null))throw new Error("not supported");let l=ll(n.data,t,Kc(e,a));return Qc(e),r=r||l!==void 0,l===void 0&&(l=n.data),{...n,id:a,data:l}});if(r)return Object.setPrototypeOf(o,Object.getPrototypeOf(i)),o}function ll(i,t,e){if(i instanceof ct){let r=Ug(i,t,e);return r!==void 0&&Object.setPrototypeOf(r,Object.getPrototypeOf(i)),r}else{if(i instanceof Se)return QC(i,t,e);if(Array.isArray(i)){let r=!1,o=i.map((n,a)=>{let s=ll(n,t,Kc(e,a));return Qc(e),r=r||s!==void 0,s===void 0&&(s=n),s});return r?(Object.setPrototypeOf(o,Object.getPrototypeOf(i)),o):void 0}else if(i&&typeof i=="object"&&!ba(i)){let r={},o=!1;for(let[n,a]of Object.entries(i))if(n!=="name"&&n!=="variableId"){let s=t[n];if(typeof s=="string"){if(e!==null)throw new Error("not supported");o=!0,n=s}let l=ll(a,t,Kc(e,n));Qc(e),o=o||l!==void 0,l===void 0&&(l=a),r[n]=l}else r[n]=a;return o?(Object.setPrototypeOf(r,Object.getPrototypeOf(i)),r):void 0}else if(typeof i=="string"){let r=t[i];return r!==void 0&&KC(e),r}else return}}var wa;(t=>{function i(e,r){let o=ut.zoom(r,e.path);if(typeof o=="object"){let n={};for(let a of Object.keys(e.props))n[a]=o[a];return{...e,props:n}}else return{...e,props:{}}}t.replaceProps=i})(wa||(wa={}));var bt;(s=>{function i(l,c){return{...l,path:l.path.slice(c)}}s.drop=i;function t(l,c){return e(l,c)?.data??l}s.applySimple=t;function e(l,c){let u=c.path;for(var d=[];;){let p;if(l instanceof Je&&c.type===0&&(p=l.runOp({...c,path:u.slice(d.length)}),p===null&&(p=void 0)),p===void 0&&d.length===u.length&&(l instanceof ct||l instanceof Se||l instanceof de?p=l.runOp(c):p=va.runOp(l,c)),p!==void 0)if(p!==null){let m=p.data;for(let y=d.length-1;y>=0;y--){let x=u[y],v=d[y];if(v instanceof ct){if(typeof x=="number")throw new Error("illegal arg");m=v.modifyById(x,m)}else if(v instanceof Se){if(typeof x=="number")throw new Error("illegal arg");m=v.modifyById(x,m)}else if(v instanceof de){if(typeof x=="number")throw new Error("illegal arg");m=v.modifyById(x,m)}else if(v instanceof Je){let w={...v,[x]:m};m=Object.setPrototypeOf(w,Je.prototype)}else if(typeof v=="object")if(Array.isArray(v)){if(typeof x=="string"&&(x=parseInt(x),isNaN(x)))throw new Error("Invalid path");let w=m;m=[...v],m[x]=w}else m={...v,[x]:m};else return null}return{data:m,actual:{...p.actual,path:u},reverse:{...p.reverse,path:u}}}else return null;let f=u[d.length],h;if(l instanceof ct){if(typeof f=="number")throw new Error("");h=l.get(f)?.data}else if(l instanceof Se){if(typeof f=="number")throw new Error("");h=l.get(f)?.data}else l!==null&&(h=l[f]);if(h!==void 0)d.push(l),l=h;else return null}}s.apply=e;function r(l,c){for(let u=0;u<l.length&&u<c.length;u++)if(l[u]!==c[u])return!0;return!1}s.pathDisjoint=r;function o(l,c){if(l.length!==c.length)return!1;for(let u=0;u<l.length;u++)if(l[u]!==c[u])return!1;return!0}s.pathEq=o;function n(l,c){return r(l.path,c.path)}s.commutative=n;function a(l,c){return l.type===0&&c.type===0&&o(l.path,c.path)?Object.keys(l.props).every(u=>c.props[u]!==void 0):!1}s.subsumed=a})(bt||(bt={}));var cl;(l=>{function i(){return[]}l.empty=i;function t(c,u){let d=[];for(let p of c){let[f,...h]=p.path;f===u&&d.push({...p,path:h})}return d}l.removePrefix=t;function e(c,u){return c.map(d=>({...d,path:[u,...d.path]}))}l.addPrefix=e;function r(c,u){return[...c,...u]}l.concat=r;function o(c,u){return[...c.filter(p=>!u.some(f=>bt.subsumed(p,f))),...u]}l.compress=o;function n(c,u){return c.every(d=>u.every(p=>bt.commutative(d,p)))}l.commutative=n;function a(c,u){for(let d of u){let p=s(c,d);p!==null&&(c=p.data)}return c}l.applyAll=a;function s(c,u){var d=c;let p=[],f=[];for(let h of u)try{if(h.type===3||h.type===5&&h.path[h.path.length-1]==="variables"){let m,y,x;if(h.type===3?(m=ut.zoom(d,[...h.path,h.id]),x=bt.apply(d,{...h,type:2})):(m=ut.zoom(d,[...h.path,h.id,"value"]),x=bt.apply(d,h)),x!==null){d=x.data;let[v,w]=jg(d,{[h.id]:m});d=v;for(let O=0;O<w.length;O++){let S=w[O],T=S.pop();if(typeof T=="number"){let M=[T];for(let D=O+1;D<w.length;D++){let E=w[D],I=E[E.length-1];if(typeof I=="number"&&ut.equal(S,E.slice(0,E.length-1)))M.push(I),w.splice(D,1);else break}let g=ut.zoom(d,S);y=g.map((D,E)=>M.includes(E)?h.id:D),m=g,T=S.pop()}else{if(T==="alphaOverride"||T==="alpha"){m/=100;let M=m,g=ut.zoom(d,S.slice(0,S.length-2)),D=g.layers.map(E=>E.id===S[S.length-1]?{...E,data:{...E.data,[T]:M}}:E);Object.setPrototypeOf(D,Object.getPrototypeOf(g.layers)),g.layers=D}y=h.id}p.push({type:0,path:S,props:{[T]:m}}),f.push({type:0,path:S,props:{[T]:y}})}f.push(x.reverse),p.push(x.actual)}}else{let m=bt.apply(d,h);m!==null&&(p.push(m.actual),d=m.data,f.push(m.reverse))}}catch(m){if(m instanceof xa)return null;throw m}return{data:d,actual:p,reverse:f.reverse()}}l.apply=s})(cl||(cl={}));var kg=Symbol(),ZC=Symbol(),Jc=Symbol(),Sn=class{reportOp(t,e,r=[]){let o=this;if(e===null)return;o._current=e.data;let n=r;for(;!(o instanceof Zc);){let a=o._path,s=o._current;if(a!==""&&n.splice(0,0,a),o=o._parent,o===null)return;o.update(a,s)}o.push(n,t,e.actual,e.reverse)}deleteChildren(t){if(this._children){let e=this._children[t];if(e){let r=e[Jc];r&&r(),delete this._children[t]}}}},Np=class extends Sn{constructor(t,e,r){super(),this._parent=t,this._path=e,this._current=r}update(t,e){if(Array.isArray(this._current)){if(typeof t=="string"&&(t=parseInt(t),isNaN(t)))throw new Error("Invalid path");this._current=[...this._current],this._current[t]=e}else if(this._current instanceof Je){let r={...this._current,[t]:e};this._current=Object.setPrototypeOf(r,Je.prototype)}else this._current={...this._current,[t]:e}}runOp(t){this.reportOp(t,va.runOp(this._current,t),t.path)}},Dp=class extends Sn{constructor(t,e,r){super(),this._parent=t,this._path=e,this._current=r}update(t,e){this._current={...this._current,[t]:e},Object.setPrototypeOf(this._current,de.prototype)}runOp(t){this.reportOp(t,this._current.runOp(t))}},Hg={get(i,t){if(t===Jc)return()=>{i._parent=null};if(t===kg)return i._current;if(t===ZC)return i;let{_current:e,_children:r}=i;if(t==="push"&&Array.isArray(e))throw new Error("not supported to expand array");let o=r===void 0?void 0:r[t];if(o!==void 0)return o;let n=e[t],a=eu(i,t,n);return a!==n?(r===void 0&&(r={},i._children=r),r[t]=a,a):n},has(i,t){return t in i._current},ownKeys(i){return Reflect.ownKeys(i._current)},defineProperty(){throw Error("not supported")},getPrototypeOf(i){return Object.getPrototypeOf(i._current)},setPrototypeOf(){throw Error("not supported")},getOwnPropertyDescriptor(i,t){let e=i._current,r=Reflect.getOwnPropertyDescriptor(e,t);return r&&{writable:!0,configurable:!0,enumerable:r.enumerable,value:e[t]}}},JC={...Hg,set(i,t,e){let r={type:0,props:{[t]:vt(e)??e}};return i.deleteChildren(t),i.runOp(r),!0},deleteProperty(i,t){let e={type:0,props:{[t]:void 0}};return i.deleteChildren(t),i.runOp(e),!0}},eA={...Hg,set(i,t,e){return e===void 0?this.deleteProperty(i,t):(i.deleteChildren(t),i.runOp({type:1,id:t,data:e})),!0},deleteProperty(i,t){return i.runOp({type:2,id:t}),!0}},Pa=class extends Sn{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[Jc]=()=>{this._parent=null}}unproxy(){return this._current}update(t,e){this._current=this._current.modifyById(t,e)}runOp(t){this.reportOp(t,this._current.runOp(t))}randomId(){return this._current.randomId()}isDescendantOf(t,e){return this._current.isDescendantOf(t,e)}childrenOf(t){return this._current.childrenOf(t)}traverse(t){return this._current.traverse(t)}get(t){return this._current.get(t)}parent(t){return this._current.parent(t)}traverse(t){this._current.traverse((e,r)=>{t(e,this.data(e))})}data(t){let{_current:e,_children:r}=this,o=r===void 0?void 0:r[t];if(o!==void 0)return o;let n=e.get(t)?.data,a=eu(this,t,n);return a!==n?(r===void 0&&(r={},this._children=r),r[t]=a,a):n}add(t,e,r,o,n){this.runOp({type:7,parent:t,fi:e,id:r,data:o,children:n})}move(t,e,r){this.runOp({type:9,parent:t,fi:e,id:r})}insertAfter(t,e,r){let o=this._current.insertAfterHelper(t,e,r.length);for(let n=0;n<r.length;n++){let a=r[n];this.add(t,o[n],a.id,a.data,a.children)}}insertBefore(t,e,r){let o=this._current.insertBeforeHelper(t,e,r.length);for(let n=0;n<r.length;n++){let a=r[n];this.add(t,o[n],a.id,a.data,a.children)}}moveAfter(t,e,r){let o=this._current.insertAfterHelper(t,e,r.length);for(let n=0;n<r.length;n++){let a=r[n];this.move(t,o[n],a)}}moveBefore(t,e,r){let o=this._current.insertBeforeHelper(t,e,r.length);for(let n=0;n<r.length;n++){let a=r[n];this.move(t,o[n],a)}}delete(t){this.deleteChildren(t),this.runOp({type:8,id:t})}sortNext(t){return this._current.sortNext(t)}sortPrevious(t){return this._current.sortPrevious(t)}getAllSorted(t){return this._current.getAllSorted(t)}},Oa=class extends Sn{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[Jc]=()=>{this._parent=null}}unproxy(){return this._current}get length(){return this._current.length}forEach(t){let e=this.length;for(let r=0;r<e;r++){let o=this._current[r].id,n=this._current[r].fi;t(this.data(this._current[r].id),o,n)}}find(t){let e=this.length;for(let r=0;r<e;r++){let o=this._current[r].id;if(t(this.data(o),o))return this.get(o)}}update(t,e){this._current=this._current.modifyById(t,e)}randomId(){return this._current.randomId()}get(t){return{...this._current.get(t),data:this.data(t)}}data(t){let{_current:e,_children:r}=this,o=r===void 0?void 0:r[t];if(o!==void 0)return o;let n=e.get(t)?.data,a=eu(this,t,n);return a!==n?(r===void 0&&(r={},this._children=r),r[t]=a,a):n}runOp(t){this.reportOp(t,this._current.runOp(t))}add(t,e,r){this.runOp({type:4,fi:t,id:e,data:r})}move(t,e){this.runOp({type:6,fi:t,id:e})}insertAfter(t,e){let r=this._current.insertAfterHelper(t,e.length);for(let o=0;o<e.length;o++){let n=e[o];this.add(r[o],n.id,n.data)}}insertBefore(t,e){let r=this._current.insertBeforeHelper(t,e.length);for(let o=0;o<e.length;o++){let n=e[o];this.add(r[o],n.id,n.data)}}moveAfter(t,e){let r=this._current.insertAfterHelper(t,e.length);for(let o=0;o<e.length;o++){let n=e[o];this.move(r[o],n)}}moveBefore(t,e){let r=this._current.insertBeforeHelper(t,e.length);for(let o=0;o<e.length;o++){let n=e[o];this.move(r[o],n)}}delete(t){this.deleteChildren(t),this.runOp({type:5,id:t})}};function Ep(i,t,e){if(i.length>0){let r=i[i.length-1];if(r.type===0&&t.type===0&&ut.equal(r.path,e)){Object.assign(r.props,t.props);return}}i.push({...t,path:e})}var Zc=class extends Sn{constructor(t){super(),this.ts=[],this.actual=[],this.reverse=[],this._current=t}update(t,e){if(t!=="")throw new Error("");this._current=e}push(t,e,r,o){Ep(this.ts,e,t),Ep(this.actual,r,t),Ep(this.reverse,o,t)}result(){return{data:this._current,ts:this.ts,actual:this.actual,reverse:this.reverse.reverse()}}};function eu(i,t,e){return e instanceof ct?new Pa(i,t,e):e instanceof Se?new Oa(i,t,e):e instanceof de?new Proxy(new Dp(i,t,e),eA):e!==null&&typeof e=="object"?ba(e)?e:new Proxy(new Np(i,t,e),JC):e}function _p(i){let t=new Zc(i);return[eu(t,"",i),t]}function Mi(i,t){let[e,r]=_p(i);return t(e),r.result()}function vt(i){return i instanceof Pa||i instanceof Oa?i._current:i!==null&&typeof i=="object"?i[kg]:i}var ut;(o=>{function i(n,a){if(a.length===n.length)for(var s=0;s<n.length;){if(n[s]!==a[s])return!1;s+=1}else return!1;return!0}o.equal=i;function t(n,a,s){let l=r(s,n);if(l!==void 0&&typeof l=="object"&&l!==null){let c={...a};return Object.keys(l).forEach(u=>{delete c[u]}),c}else return a}o.removeOverridden=t;function e(n,a){if((n instanceof ct||n instanceof Pa)&&typeof a=="string")return n.data(a);if((n instanceof Se||n instanceof Oa)&&typeof a=="string")return n.data(a);if(typeof a=="number"&&Array.isArray(n))return n[a];if(typeof a=="string"&&typeof n=="object"&&n!==null)return n[a]}o.zoomOnce=e;function r(n,a,s=0){for(;s<a.length&&n!==void 0;)n=e(n,a[s]),s+=1;return n}o.zoom=r})(ut||(ut={}));function Wg(i,t){let e=[];if(t.length===i.length)for(var r=0;r<i.length;){if(t[r]==="*")e.push(i[r]);else if(i[r]!==t[r])return null;r+=1}else return null;return e}function je(i,t){let e=[];if(t.length<=i.length)for(var r=0;r<t.length;){if(t[r]==="*")e.push(i[r]);else if(i[r]!==t[r])return null;r+=1}else return null;return e}var tu=class{},ul=class extends tu{constructor(e){super();this.id=e}},dl=class extends tu{constructor(e){super();this.data=e}};var Lp;try{Lp=new TextDecoder}catch{}var fe,Ei,G=0;var Jg=[],Bp=Jg,Vp=0,Sr={},Qe,Ii,jr=0,To=0,_r,ei,hr=[],rt,qg={useRecords:!1,mapsAsObjects:!0},pl=class{},Gp=new pl;Gp.name="MessagePack 0xC1";var Ta=!1,Co=class{constructor(t){t&&(t.useRecords===!1&&t.mapsAsObjects===void 0&&(t.mapsAsObjects=!0),t.structures?t.structures.sharedLength=t.structures.length:t.getStructures&&((t.structures=[]).uninitialized=!0,t.structures.sharedLength=0)),Object.assign(this,t)}unpack(t,e){if(fe)return i0(()=>(ou(),this?this.unpack(t,e):Co.prototype.unpack.call(qg,t,e)));Ei=e>-1?e:t.length,G=0,Vp=0,To=0,Ii=null,Bp=Jg,_r=null,fe=t;try{rt=t.dataView||(t.dataView=new DataView(t.buffer,t.byteOffset,t.byteLength))}catch(r){throw fe=null,t instanceof Uint8Array?r:new Error("Source must be a Uint8Array or Buffer but was a "+(t&&typeof t=="object"?t.constructor.name:typeof t))}if(this instanceof Co){if(Sr=this,this.structures)return Qe=this.structures,ru();(!Qe||Qe.length>0)&&(Qe=[])}else Sr=qg,(!Qe||Qe.length>0)&&(Qe=[]);return ru()}unpackMultiple(t,e){let r,o=0;try{Ta=!0;let n=t.length,a=this?this.unpack(t,n):au.unpack(t,n);if(e){for(e(a);G<n;)if(o=G,e(ru())===!1)return}else{for(r=[a];G<n;)o=G,r.push(ru());return r}}catch(n){throw n.lastPosition=o,n.values=r,n}finally{Ta=!1,ou()}}_mergeStructures(t,e){t=t||[];for(let r=0,o=t.length;r<o;r++){let n=t[r];n&&(n.isShared=!0,r>=32&&(n.highByte=r-32>>5))}t.sharedLength=t.length;for(let r in e||[])if(r>=0){let o=t[r],n=e[r];n&&(o&&((t.restoreStructures||(t.restoreStructures=[]))[r]=o),t[r]=n)}return this.structures=t}decode(t,e){return this.unpack(t,e)}};function ru(){try{if(!Sr.trusted&&!Ta){let t=Qe.sharedLength||0;t<Qe.length&&(Qe.length=t)}let i=Mt();if(G==Ei)Qe.restoreStructures&&$g(),Qe=null,fe=null,ei&&(ei=null);else if(G>Ei){let t=new Error("Unexpected end of MessagePack data");throw t.incomplete=!0,t}else if(!Ta)throw new Error("Data read, but end of buffer not reached");return i}catch(i){throw Qe.restoreStructures&&$g(),ou(),(i instanceof RangeError||i.message.startsWith("Unexpected end of buffer"))&&(i.incomplete=!0),i}}function $g(){for(let i in Qe.restoreStructures)Qe[i]=Qe.restoreStructures[i];Qe.restoreStructures=null}function Mt(){let i=fe[G++];if(i<160)if(i<128){if(i<64)return i;{let t=Qe[i&63]||Sr.getStructures&&e0()[i&63];return t?(t.read||(t.read=Fp(t,i&63)),t.read()):i}}else if(i<144)if(i-=128,Sr.mapsAsObjects){let t={};for(let e=0;e<i;e++)t[r0()]=Mt();return t}else{let t=new Map;for(let e=0;e<i;e++)t.set(Mt(),Mt());return t}else{i-=144;let t=new Array(i);for(let e=0;e<i;e++)t[e]=Mt();return t}else if(i<192){let t=i-160;if(To>=G)return Ii.slice(G-jr,(G+=t)-jr);if(To==0&&Ei<140){let e=t<16?jp(t):t0(t);if(e!=null)return e}return zp(t)}else{let t;switch(i){case 192:return null;case 193:return _r?(t=Mt(),t>0?_r[1].slice(_r.position1,_r.position1+=t):_r[0].slice(_r.position0,_r.position0-=t)):Gp;case 194:return!1;case 195:return!0;case 196:return Rp(fe[G++]);case 197:return t=rt.getUint16(G),G+=2,Rp(t);case 198:return t=rt.getUint32(G),G+=4,Rp(t);case 199:return wn(fe[G++]);case 200:return t=rt.getUint16(G),G+=2,wn(t);case 201:return t=rt.getUint32(G),G+=4,wn(t);case 202:if(t=rt.getFloat32(G),Sr.useFloat32>2){let e=nu[(fe[G]&127)<<1|fe[G+1]>>7];return G+=4,(e*t+(t>0?.5:-.5)>>0)/e}return G+=4,t;case 203:return t=rt.getFloat64(G),G+=8,t;case 204:return fe[G++];case 205:return t=rt.getUint16(G),G+=2,t;case 206:return t=rt.getUint32(G),G+=4,t;case 207:return Sr.int64AsNumber?(t=rt.getUint32(G)*4294967296,t+=rt.getUint32(G+4)):t=rt.getBigUint64(G),G+=8,t;case 208:return rt.getInt8(G++);case 209:return t=rt.getInt16(G),G+=2,t;case 210:return t=rt.getInt32(G),G+=4,t;case 211:return Sr.int64AsNumber?(t=rt.getInt32(G)*4294967296,t+=rt.getUint32(G+4)):t=rt.getBigInt64(G),G+=8,t;case 212:if(t=fe[G++],t==114)return Zg(fe[G++]&63);{let e=hr[t];if(e)return e.read?(G++,e.read(Mt())):e.noBuffer?(G++,e()):e(fe.subarray(G,++G));throw new Error("Unknown extension "+t)}case 213:return t=fe[G],t==114?(G++,Zg(fe[G++]&63,fe[G++])):wn(2);case 214:return wn(4);case 215:return wn(8);case 216:return wn(16);case 217:return t=fe[G++],To>=G?Ii.slice(G-jr,(G+=t)-jr):rA(t);case 218:return t=rt.getUint16(G),G+=2,To>=G?Ii.slice(G-jr,(G+=t)-jr):oA(t);case 219:return t=rt.getUint32(G),G+=4,To>=G?Ii.slice(G-jr,(G+=t)-jr):iA(t);case 220:return t=rt.getUint16(G),G+=2,Yg(t);case 221:return t=rt.getUint32(G),G+=4,Yg(t);case 222:return t=rt.getUint16(G),G+=2,Kg(t);case 223:return t=rt.getUint32(G),G+=4,Kg(t);default:if(i>=224)return i-256;if(i===void 0){let e=new Error("Unexpected end of MessagePack data");throw e.incomplete=!0,e}throw new Error("Unknown MessagePack token "+i)}}}var tA=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function Fp(i,t){function e(){if(e.count++>2){let o=i.read=new Function("r","return function(){return {"+i.map(n=>tA.test(n)?n+":r()":"["+JSON.stringify(n)+"]:r()").join(",")+"}}")(Mt);return i.highByte===0&&(i.read=Xg(t,i.read)),o()}let r={};for(let o=0,n=i.length;o<n;o++){let a=i[o];r[a]=Mt()}return r}return e.count=0,i.highByte===0?Xg(t,e):e}var Xg=(i,t)=>function(){let e=fe[G++];if(e===0)return t();let r=i<32?-(i+(e<<5)):i+(e<<5),o=Qe[r]||e0()[r];if(!o)throw new Error("Record id is not defined for "+r);return o.read||(o.read=Fp(o,i)),o.read()};function e0(){let i=i0(()=>(fe=null,Sr.getStructures()));return Qe=Sr._mergeStructures(i,Qe)}var zp=iu,rA=iu,oA=iu,iA=iu;function iu(i){let t;if(i<16&&(t=jp(i)))return t;if(i>64&&Lp)return Lp.decode(fe.subarray(G,G+=i));let e=G+i,r=[];for(t="";G<e;){let o=fe[G++];if((o&128)===0)r.push(o);else if((o&224)===192){let n=fe[G++]&63;r.push((o&31)<<6|n)}else if((o&240)===224){let n=fe[G++]&63,a=fe[G++]&63;r.push((o&31)<<12|n<<6|a)}else if((o&248)===240){let n=fe[G++]&63,a=fe[G++]&63,s=fe[G++]&63,l=(o&7)<<18|n<<12|a<<6|s;l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|l&1023),r.push(l)}else r.push(o);r.length>=4096&&(t+=Kt.apply(String,r),r.length=0)}return r.length>0&&(t+=Kt.apply(String,r)),t}function Yg(i){let t=new Array(i);for(let e=0;e<i;e++)t[e]=Mt();return t}function Kg(i){if(Sr.mapsAsObjects){let t={};for(let e=0;e<i;e++)t[r0()]=Mt();return t}else{let t=new Map;for(let e=0;e<i;e++)t.set(Mt(),Mt());return t}}var Kt=String.fromCharCode;function t0(i){let t=G,e=new Array(i);for(let r=0;r<i;r++){let o=fe[G++];if((o&128)>0){G=t;return}e[r]=o}return Kt.apply(String,e)}function jp(i){if(i<4)if(i<2){if(i===0)return"";{let t=fe[G++];if((t&128)>1){G-=1;return}return Kt(t)}}else{let t=fe[G++],e=fe[G++];if((t&128)>0||(e&128)>0){G-=2;return}if(i<3)return Kt(t,e);let r=fe[G++];if((r&128)>0){G-=3;return}return Kt(t,e,r)}else{let t=fe[G++],e=fe[G++],r=fe[G++],o=fe[G++];if((t&128)>0||(e&128)>0||(r&128)>0||(o&128)>0){G-=4;return}if(i<6){if(i===4)return Kt(t,e,r,o);{let n=fe[G++];if((n&128)>0){G-=5;return}return Kt(t,e,r,o,n)}}else if(i<8){let n=fe[G++],a=fe[G++];if((n&128)>0||(a&128)>0){G-=6;return}if(i<7)return Kt(t,e,r,o,n,a);let s=fe[G++];if((s&128)>0){G-=7;return}return Kt(t,e,r,o,n,a,s)}else{let n=fe[G++],a=fe[G++],s=fe[G++],l=fe[G++];if((n&128)>0||(a&128)>0||(s&128)>0||(l&128)>0){G-=8;return}if(i<10){if(i===8)return Kt(t,e,r,o,n,a,s,l);{let c=fe[G++];if((c&128)>0){G-=9;return}return Kt(t,e,r,o,n,a,s,l,c)}}else if(i<12){let c=fe[G++],u=fe[G++];if((c&128)>0||(u&128)>0){G-=10;return}if(i<11)return Kt(t,e,r,o,n,a,s,l,c,u);let d=fe[G++];if((d&128)>0){G-=11;return}return Kt(t,e,r,o,n,a,s,l,c,u,d)}else{let c=fe[G++],u=fe[G++],d=fe[G++],p=fe[G++];if((c&128)>0||(u&128)>0||(d&128)>0||(p&128)>0){G-=12;return}if(i<14){if(i===12)return Kt(t,e,r,o,n,a,s,l,c,u,d,p);{let f=fe[G++];if((f&128)>0){G-=13;return}return Kt(t,e,r,o,n,a,s,l,c,u,d,p,f)}}else{let f=fe[G++],h=fe[G++];if((f&128)>0||(h&128)>0){G-=14;return}if(i<15)return Kt(t,e,r,o,n,a,s,l,c,u,d,p,f,h);let m=fe[G++];if((m&128)>0){G-=15;return}return Kt(t,e,r,o,n,a,s,l,c,u,d,p,f,h,m)}}}}}function Rp(i){return Sr.copyBuffers?Uint8Array.prototype.slice.call(fe,G,G+=i):fe.subarray(G,G+=i)}function wn(i){let t=fe[G++];if(hr[t])return hr[t](fe.subarray(G,G+=i));throw new Error("Unknown extension type "+t)}var Qg=new Array(4096);function r0(){let i=fe[G++];if(i>=160&&i<192){if(i=i-160,To>=G)return Ii.slice(G-jr,(G+=i)-jr);if(!(To==0&&Ei<180))return zp(i)}else return G--,Mt();let t=(i<<5^(i>1?rt.getUint16(G):i>0?fe[G]:0))&4095,e=Qg[t],r=G,o=G+i-3,n,a=0;if(e&&e.bytes==i){for(;r<o;){if(n=rt.getUint32(r),n!=e[a++]){r=1879048192;break}r+=4}for(o+=3;r<o;)if(n=fe[r++],n!=e[a++]){r=1879048192;break}if(r===o)return G=r,e.string;o-=3,r=G}for(e=[],Qg[t]=e,e.bytes=i;r<o;)n=rt.getUint32(r),e.push(n),r+=4;for(o+=3;r<o;)n=fe[r++],e.push(n);let s=i<16?jp(i):t0(i);return s!=null?e.string=s:e.string=zp(i)}var Zg=(i,t)=>{var e=Mt();let r=i;t!==void 0&&(i=i<32?-((t<<5)+i):(t<<5)+i,e.highByte=t);let o=Qe[i];return o&&o.isShared&&((Qe.restoreStructures||(Qe.restoreStructures=[]))[i]=o),Qe[i]=e,e.read=Fp(e,r),e.read()},o0=typeof self=="object"?self:global;hr[0]=()=>{};hr[0].noBuffer=!0;hr[101]=()=>{let i=Mt();return(o0[i[0]]||Error)(i[1])};hr[105]=i=>{let t=rt.getUint32(G-4);ei||(ei=new Map);let e=fe[G],r;e>=144&&e<160||e==220||e==221?r=[]:r={};let o={target:r};ei.set(t,o);let n=Mt();return o.used?Object.assign(r,n):(o.target=n,n)};hr[112]=i=>{let t=rt.getUint32(G-4),e=ei.get(t);return e.used=!0,e.target};hr[115]=()=>new Set(Mt());var Up=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(i=>i+"Array");hr[116]=i=>{let t=i[0],e=Up[t];if(!e)throw new Error("Could not find typed array for code "+t);return new o0[e](Uint8Array.prototype.slice.call(i,1).buffer)};hr[120]=()=>{let i=Mt();return new RegExp(i[0],i[1])};hr[98]=i=>{let t=(i[0]<<24)+(i[1]<<16)+(i[2]<<8)+i[3],e=G;G+=t-4,_r=[Mt(),Mt()],_r.position0=0,_r.position1=0;let r=G;G=e;try{return Mt()}finally{G=r}};hr[255]=i=>i.length==4?new Date((i[0]*16777216+(i[1]<<16)+(i[2]<<8)+i[3])*1e3):i.length==8?new Date(((i[0]<<22)+(i[1]<<14)+(i[2]<<6)+(i[3]>>2))/1e6+((i[3]&3)*4294967296+i[4]*16777216+(i[5]<<16)+(i[6]<<8)+i[7])*1e3):i.length==12?new Date(((i[0]<<24)+(i[1]<<16)+(i[2]<<8)+i[3])/1e6+((i[4]&128?-281474976710656:0)+i[6]*1099511627776+i[7]*4294967296+i[8]*16777216+(i[9]<<16)+(i[10]<<8)+i[11])*1e3):new Date("invalid");function i0(i){let t=Ei,e=G,r=Vp,o=jr,n=To,a=Ii,s=Bp,l=ei,c=_r,u=new Uint8Array(fe.slice(0,Ei)),d=Qe,p=Qe.slice(0,Qe.length),f=Sr,h=Ta,m=i();return Ei=t,G=e,Vp=r,jr=o,To=n,Ii=a,Bp=s,ei=l,_r=c,fe=u,Ta=h,Qe=d,Qe.splice(0,Qe.length,...p),Sr=f,rt=new DataView(fe.buffer,fe.byteOffset,fe.byteLength),m}function ou(){fe=null,ei=null,Qe=null}function n0(i){i.unpack?hr[i.type]=i.unpack:hr[i.type]=i}var nu=new Array(147);for(let i=0;i<256;i++)nu[i]=+("1e"+Math.floor(45.15-i*.30103));var au=new Co({useRecords:!1}),nA=au.unpack,aA=au.unpackMultiple,sA=au.unpack,su={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},lA=new Float32Array(1),pF=new Uint8Array(lA.buffer,0,4);var lu;try{lu=new TextEncoder}catch{}var cu,Hp,uu=typeof Buffer<"u",kp=uu?Buffer.allocUnsafeSlow:Uint8Array,c0=uu?Buffer:Uint8Array,a0=uu?4294967296:2144337920,X,Nt,k=0,Ao,Mo=null,cA=/[\u0080-\uFFFF]/,fl=Symbol("record-id"),Pn=class extends Co{constructor(t){super(t),this.offset=0;let e,r,o,n,a,s,l=0,c=c0.prototype.utf8Write?function(g,D,E){return X.utf8Write(g,D,E)}:lu&&lu.encodeInto?function(g,D){return lu.encodeInto(g,X.subarray(D)).written}:!1,u=this;t||(t={});let d=t&&t.sequential,p=t.structures||t.saveStructures,f=t.maxSharedStructures;if(f==null&&(f=p?32:0),f>8160)throw new Error("Maximum maxSharedStructure is 8160");let h=t.maxOwnStructures;h==null&&(h=p?32:64),d&&!t.saveStructures&&(this.structures=[]);let m=f>32||h+f>64,y=f+64,x=f+h+64;if(x>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let v=[],w=0,O=0;this.pack=this.encode=function(g,D){if(X||(X=new kp(8192),Nt=new DataView(X.buffer,0,8192),k=0),Ao=X.length-10,Ao-k<2048?(X=new kp(X.length),Nt=new DataView(X.buffer,0,X.length),Ao=X.length-10,k=0):k=k+7&2147483640,r=k,s=u.structuredClone?new Map:null,u.bundleStrings?(Mo=["",""],X[k++]=214,X[k++]=98,Mo.position=k-r,k+=4):Mo=null,o=u.structures,o){o.uninitialized&&(o=u._mergeStructures(u.getStructures()));let E=o.sharedLength||0;if(E>f)throw new Error("Shared structures is larger than maximum shared structures, try increasing maxSharedStructures to "+o.sharedLength);if(!o.transitions){o.transitions=Object.create(null);for(let I=0;I<E;I++){let N=o[I];if(!N)continue;let _,R=o.transitions;for(let V=0,U=N.length;V<U;V++){let B=N[V];_=R[B],_||(_=R[B]=Object.create(null)),R=_}R[fl]=I+64}l=E}d||(o.nextId=E+64)}n&&(n=!1),a=o||[];try{if(S(g),Mo){Nt.setUint32(Mo.position+r,k-Mo.position-r);let E=Mo;Mo=null,S(E[0]),S(E[1])}if(u.offset=k,s&&s.idsToInsert){k+=s.idsToInsert.length*6,k>Ao&&M(k),u.offset=k;let E=dA(X.subarray(r,k),s.idsToInsert);return s=null,E}return D&d0?(X.start=r,X.end=k,X):X.subarray(r,k)}finally{if(o){if(O<10&&O++,w>1e4)o.transitions=null,O=0,w=0,v.length>0&&(v=[]);else if(v.length>0&&!d){for(let E=0,I=v.length;E<I;E++)v[E][fl]=0;v=[]}if(n&&u.saveStructures){let E=o.sharedLength||f;o.length>E&&(o=o.slice(0,E));let I=X.subarray(r,k);return u.saveStructures(o,l)===!1?(u._mergeStructures(u.getStructures()),u.pack(g)):(l=E,I)}}D&xA&&(k=r)}};let S=g=>{k>Ao&&(X=M(k));var D=typeof g,E;if(D==="string"){let I=g.length;if(Mo&&I>=8&&I<4096){let R=cA.test(g);Mo[R?0:1]+=g,X[k++]=193,S(R?-I:I);return}let N;I<32?N=1:I<256?N=2:I<65536?N=3:N=5;let _=I*3;if(k+_>Ao&&(X=M(k+_)),I<64||!c){let R,V,U,B=k+N;for(R=0;R<I;R++)V=g.charCodeAt(R),V<128?X[B++]=V:V<2048?(X[B++]=V>>6|192,X[B++]=V&63|128):(V&64512)===55296&&((U=g.charCodeAt(R+1))&64512)===56320?(V=65536+((V&1023)<<10)+(U&1023),R++,X[B++]=V>>18|240,X[B++]=V>>12&63|128,X[B++]=V>>6&63|128,X[B++]=V&63|128):(X[B++]=V>>12|224,X[B++]=V>>6&63|128,X[B++]=V&63|128);E=B-k-N}else E=c(g,k+N,_);E<32?X[k++]=160|E:E<256?(N<2&&X.copyWithin(k+2,k+1,k+1+E),X[k++]=217,X[k++]=E):E<65536?(N<3&&X.copyWithin(k+3,k+2,k+2+E),X[k++]=218,X[k++]=E>>8,X[k++]=E&255):(N<5&&X.copyWithin(k+5,k+3,k+3+E),X[k++]=219,Nt.setUint32(k,E),k+=4),k+=E}else if(D==="number")if(g>>>0===g)g<64?X[k++]=g:g<256?(X[k++]=204,X[k++]=g):g<65536?(X[k++]=205,X[k++]=g>>8,X[k++]=g&255):(X[k++]=206,Nt.setUint32(k,g),k+=4);else if(g>>0===g)g>=-32?X[k++]=256+g:g>=-128?(X[k++]=208,X[k++]=g+256):g>=-32768?(X[k++]=209,Nt.setInt16(k,g),k+=2):(X[k++]=210,Nt.setInt32(k,g),k+=4);else{let I;if((I=this.useFloat32)>0&&g<4294967296&&g>=-2147483648){X[k++]=202,Nt.setFloat32(k,g);let N;if(I<4||(N=g*nu[(X[k]&127)<<1|X[k+1]>>7])>>0===N){k+=4;return}else k--}X[k++]=203,Nt.setFloat64(k,g),k+=8}else if(D==="object")if(!g)X[k++]=192;else{if(s){let N=s.get(g);if(N){if(!N.id){let _=s.idsToInsert||(s.idsToInsert=[]);N.id=_.push(N)}X[k++]=214,X[k++]=112,Nt.setUint32(k,N.id),k+=4;return}else s.set(g,{offset:k-r})}let I=g.constructor;if(I===Object)T(g,!0);else if(I===Array){E=g.length,E<16?X[k++]=144|E:E<65536?(X[k++]=220,X[k++]=E>>8,X[k++]=E&255):(X[k++]=221,Nt.setUint32(k,E),k+=4);for(let N=0;N<E;N++)S(g[N])}else if(I===Map){E=g.size,E<16?X[k++]=128|E:E<65536?(X[k++]=222,X[k++]=E>>8,X[k++]=E&255):(X[k++]=223,Nt.setUint32(k,E),k+=4);for(let[N,_]of g)S(N),S(_)}else{for(let N=0,_=cu.length;N<_;N++){let R=Hp[N];if(g instanceof R){let V=cu[N];if(V.write){V.type&&(X[k++]=212,X[k++]=V.type,X[k++]=0),S(V.write.call(this,g));return}let U=X,B=Nt,q=k;X=null;let j;try{j=V.pack.call(this,g,F=>(X=U,U=null,k+=F,k>Ao&&M(k),{target:X,targetView:Nt,position:k-F}),S)}finally{U&&(X=U,Nt=B,k=q,Ao=X.length-10)}j&&(j.length+k>Ao&&M(j.length+k),k=uA(j,X,k,V.type));return}}T(g,!g.hasOwnProperty)}}else if(D==="boolean")X[k++]=g?195:194;else if(D==="bigint"){if(g<BigInt(1)<<BigInt(63)&&g>=-(BigInt(1)<<BigInt(63)))X[k++]=211,Nt.setBigInt64(k,g);else if(g<BigInt(1)<<BigInt(64)&&g>0)X[k++]=207,Nt.setBigUint64(k,g);else if(this.largeBigIntToFloat)X[k++]=203,Nt.setFloat64(k,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");k+=8}else if(D==="undefined")this.encodeUndefinedAsNil?X[k++]=192:(X[k++]=212,X[k++]=0,X[k++]=0);else if(D==="function")S(this.writeFunction&&this.writeFunction());else throw new Error("Unknown type: "+D)},T=this.useRecords===!1?this.variableMapSize?g=>{let D=Object.keys(g),E=D.length;E<16?X[k++]=128|E:E<65536?(X[k++]=222,X[k++]=E>>8,X[k++]=E&255):(X[k++]=223,Nt.setUint32(k,E),k+=4);let I;for(let N=0;N<E;N++)S(I=D[N]),S(g[I])}:(g,D)=>{X[k++]=222;let E=k-r;k+=2;let I=0;for(let N in g)(D||g.hasOwnProperty(N))&&(S(N),S(g[N]),I++);X[E+++r]=I>>8,X[E+r]=I&255}:g=>{let D=Object.keys(g),E,I=a.transitions||(a.transitions=Object.create(null)),N=0;for(let R=0,V=D.length;R<V;R++){let U=D[R];E=I[U],E||(E=I[U]=Object.create(null),N++),I=E}let _=I[fl];if(_)_>=96&&m?(X[k++]=((_-=96)&31)+96,X[k++]=_>>5):X[k++]=_;else{_=a.nextId,_||(_=64),_<y&&this.shouldShareStructure&&!this.shouldShareStructure(D)?(_=a.nextOwnId,_<x||(_=y),a.nextOwnId=_+1):(_>=x&&(_=y),a.nextId=_+1);let R=D.highByte=_>=96&&m?_-96>>5:-1;I[fl]=_,a[_-64]=D,_<y?(D.isShared=!0,a.sharedLength=_-63,n=!0,R>=0?(X[k++]=(_&31)+96,X[k++]=R):X[k++]=_):(R>=0?(X[k++]=213,X[k++]=114,X[k++]=(_&31)+96,X[k++]=R):(X[k++]=212,X[k++]=114,X[k++]=_),N&&(w+=O*N),v.length>=h&&(v.shift()[fl]=0),v.push(I),S(D))}for(let R=0,V=D.length;R<V;R++)S(g[D[R]])},M=g=>{let D;if(g>16777216){if(g-r>a0)throw new Error("Packed buffer would be larger than maximum buffer size");D=Math.min(a0,Math.round(Math.max((g-r)*(g>67108864?1.25:2),4194304)/4096)*4096)}else D=(Math.max(g-r<<2,X.length-1)>>12)+1<<12;let E=new kp(D);return Nt=new DataView(E.buffer,0,D),X.copy?X.copy(E,0,r,g):E.set(X.slice(r,g)),k-=r,r=0,Ao=E.length-10,X=E}}useBuffer(t){X=t,Nt=new DataView(X.buffer,X.byteOffset,X.byteLength),k=0}};Hp=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,pl];cu=[{pack(i,t,e){let r=i.getTime()/1e3;if((this.useTimestamp32||i.getMilliseconds()===0)&&r>=0&&r<4294967296){let{target:o,targetView:n,position:a}=t(6);o[a++]=214,o[a++]=255,n.setUint32(a,r)}else if(r>0&&r<17179869184){let{target:o,targetView:n,position:a}=t(10);o[a++]=215,o[a++]=255,n.setUint32(a,i.getMilliseconds()*4e6+(r/1e3/4294967296>>0)),n.setUint32(a+4,r)}else if(isNaN(r)){if(this.onInvalidDate)return t(0),e(this.onInvalidDate());let{target:o,targetView:n,position:a}=t(3);o[a++]=212,o[a++]=255,o[a++]=255}else{let{target:o,targetView:n,position:a}=t(15);o[a++]=199,o[a++]=12,o[a++]=255,n.setUint32(a,i.getMilliseconds()*1e6),n.setBigInt64(a+4,BigInt(Math.floor(r)))}}},{pack(i,t,e){let r=Array.from(i),{target:o,position:n}=t(this.structuredClone?3:0);this.structuredClone&&(o[n++]=212,o[n++]=115,o[n++]=0),e(r)}},{pack(i,t,e){let{target:r,position:o}=t(this.structuredClone?3:0);this.structuredClone&&(r[o++]=212,r[o++]=101,r[o++]=0),e([i.name,i.message])}},{pack(i,t,e){let{target:r,position:o}=t(this.structuredClone?3:0);this.structuredClone&&(r[o++]=212,r[o++]=120,r[o++]=0),e([i.source,i.flags])}},{pack(i,t){this.structuredClone?s0(i,16,t):l0(uu?Buffer.from(i):new Uint8Array(i),t)}},{pack(i,t){let e=i.constructor;e!==c0&&this.structuredClone?s0(i,Up.indexOf(e.name),t):l0(i,t)}},{pack(i,t){let{target:e,position:r}=t(1);e[r]=193}}];function s0(i,t,e,r){let o=i.byteLength;if(o+1<256){var{target:n,position:a}=e(4+o);n[a++]=199,n[a++]=o+1}else if(o+1<65536){var{target:n,position:a}=e(5+o);n[a++]=200,n[a++]=o+1>>8,n[a++]=o+1&255}else{var{target:n,position:a,targetView:s}=e(7+o);n[a++]=201,s.setUint32(a,o+1),a+=4}n[a++]=116,n[a++]=t,n.set(new Uint8Array(i.buffer,i.byteOffset,i.byteLength),a)}function l0(i,t){let e=i.byteLength;var r,o;if(e<256){var{target:r,position:o}=t(e+2);r[o++]=196,r[o++]=e}else if(e<65536){var{target:r,position:o}=t(e+3);r[o++]=197,r[o++]=e>>8,r[o++]=e&255}else{var{target:r,position:o,targetView:n}=t(e+5);r[o++]=198,n.setUint32(o,e),o+=4}r.set(i,o)}function uA(i,t,e,r){let o=i.length;switch(o){case 1:t[e++]=212;break;case 2:t[e++]=213;break;case 4:t[e++]=214;break;case 8:t[e++]=215;break;case 16:t[e++]=216;break;default:o<256?(t[e++]=199,t[e++]=o):o<65536?(t[e++]=200,t[e++]=o>>8,t[e++]=o&255):(t[e++]=201,t[e++]=o>>24,t[e++]=o>>16&255,t[e++]=o>>8&255,t[e++]=o&255)}return t[e++]=r,t.set(i,e),e+=o,e}function dA(i,t){let e,r=t.length*6,o=i.length-r;for(t.sort((n,a)=>n.offset>a.offset?1:-1);e=t.pop();){let n=e.offset,a=e.id;i.copyWithin(n+r,n,o),r-=6;let s=n+r;i[s++]=214,i[s++]=105,i[s++]=a>>24,i[s++]=a>>16&255,i[s++]=a>>8&255,i[s++]=a&255,o=n}return i}function Ni(i){if(i.Class){if(!i.pack&&!i.write)throw new Error("Extension has no pack or write function");if(i.pack&&!i.type)throw new Error("Extension has no type (numeric code to identify the extension)");Hp.unshift(i.Class),cu.unshift(i)}n0(i)}var u0=new Pn({useRecords:!1}),pA=u0.pack,fA=u0.pack;var{NEVER:hA,ALWAYS:mA,DECIMAL_ROUND:yA,DECIMAL_FIT:gA}=su,d0=512,xA=1024;var p0=new Pn({structuredClone:!0});Ni({Class:de.prototype.constructor,type:1,write(i){return{...i}},read(i){return Object.setPrototypeOf(i,de.prototype),i}});Ni({Class:Se.prototype.constructor,type:2,write(i){return[...i]},read(i){return Object.setPrototypeOf(i,Se.prototype),i}});Ni({Class:ct.prototype.constructor,type:3,write(i){return[...i]},read(i){return Object.setPrototypeOf(i,ct.prototype),i}});Ni({Class:ul.prototype.constructor,type:4,write(i){return i.id},read(i){return new ul(i)}});Ni({Class:dl.prototype.constructor,type:5,write(i){return i.data},read(i){return new dl(i)}});Ni({Class:Je.prototype.constructor,type:6,write(i){return{...i}},read(i){return Object.setPrototypeOf(i,Je.prototype),i}});function bA(i){var t=0;if(i.length===0)return t;for(let e=0;e<i.length;e++){let r=i[e];t=(t<<5)-t+r,t=t&t}return t}function Wp(i){if(ba(i))return i;if(Array.isArray(i))return i.map(Wp);if(typeof i=="object"&&i!==null){let t={};for(let e of Object.keys(i).sort())t[e]=Wp(i[e]);return Object.setPrototypeOf(t,Object.getPrototypeOf(i)),t}else return i}var du;(r=>{function i(o){return p0.pack(o)}r.serialize=i;function t(o){return p0.unpack(o)}r.deserialize=t;function e(o){return bA(i(Wp(o))).toString()}r.checksum=e})(du||(du={}));var Ri="personal camera",Li="a218fcc3-276b-49b9-b485-49037fd14f5f",x0=2960946,Dt=5526619;var Ca;(f=>{function i(h,m){return h[0]===m[0]&&h[1]===m[1]}f.isEqual=i;function t(h,m,y){return[h[0]+(m[0]-h[0])*y,h[1]+(m[1]-h[1])*y]}f.lerp=t;function e(h,m){return[h[0]+m[0],h[1]+m[1]]}f.add=e;function r(h,m){return[h[0]-m[0],h[1]-m[1]]}f.sub=r;function o(h,m){return[h[0]*m[0],h[1]*m[1]]}f.multiply=o;function n(h,m){return[h[0]/m[0],h[1]/m[1]]}f.divide=n;function a(h,m){return Math.pow(m[0]-h[0],2)+Math.pow(m[1]-h[1],2)}f.distanceSquared=a;function s(h,m){return Math.sqrt(a(h,m))}f.distance=s;function l(h,m){return h[0]*m[0]+h[1]*m[1]}f.dot=l;function c(h,m){return[h[0]*m,h[1]*m]}f.scalarMultiply=c;function u(h,m,y){let x=f.sub(m,h),v=f.sub(y,h),w=f.dot(x,v)/f.dot(x,x),O=f.scalarMultiply(x,w);return f.add(h,O)}f.projectionOnto=u;function d(h,m,y){return s(h,u(h,m,y))}f.projectionOntoDistance=d;function p(h,m){return[(h[0]+m[0])*.5,(h[1]+m[1])*.5]}f.center=p})(Ca||(Ca={}));var Di;(s=>{function i(l,c){return l[0]===c[0]&&l[1]===c[1]&&l[2]===c[2]}s.isEqual=i;function t(l,c){return[l[0]+c[0],l[1]+c[1],l[2]+c[2]]}s.add=t;function e(l,c){return[l[0]-c[0],l[1]-c[1],l[2]-c[2]]}s.sub=e;function r(l,c){return[l[0]/c[0],l[1]/c[1],l[2]/c[2]]}s.div=r;function o(l,c){return[l[0]*c[0],l[1]*c[1],l[2]*c[2]]}s.mul=o;function n(l,c){return Math.hypot(l[0]-c[0],l[1]-c[1],l[2]-c[2])}s.dist=n;function a(l,c,u){return[l[0]+(c[0]-l[0])*u,l[1]+(c[1]-l[1])*u,l[2]+(c[2]-l[2])*u]}s.lerp=a})(Di||(Di={}));var f0;(e=>{function i(r,o){return r[0]===o[0]&&r[1]===o[1]&&r[2]===o[2]&&r[3]===o[3]}e.isEqual=i;function t(r,o,n){return[r[0]+(o[0]-r[0])*n,r[1]+(o[1]-r[1])*n,r[2]+(o[2]-r[2])*n,r[3]+(o[3]-r[3])*n]}e.lerp=t})(f0||(f0={}));var h0;(a=>{let i=180/Math.PI,t=Math.PI/180;function e(s){return typeof s=="number"?s*i:s}function r(s){return typeof s=="number"?s*t:s}function o(s){return[e(s[0]),e(s[1]),e(s[2])]}a.radToDeg=o;function n(s){return[r(s[0]),r(s[1]),r(s[2])]}a.degToRad=n})(h0||(h0={}));var _i;(o=>{o.identity=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function t(n,a){for(let s=0;s<16;s++)if(n[s]!==a[s])return!1;return!0}o.isEqual=t;function e(n){return n??o.identity}o.simplify=e;function r(n,a){let s=a.slice(0);for(var l=0,c=a.length;l<c;l+=3){let u=n[3]*a[l]+n[7]*a[l+1]+n[11]*a[l+2]+n[15];s[l]=(n[0]*a[l]+n[4]*a[l+1]+n[8]*a[l+2]+n[12])/u,s[l+1]=(n[1]*a[l]+n[5]*a[l+1]+n[9]*a[l+2]+n[13])/u,s[l+2]=(n[2]*a[l]+n[6]*a[l+1]+n[10]*a[l+2]+n[14])/u}return s}o.applyMatrix4=r})(_i||(_i={}));var jt;(p=>{function i(f){return typeof f=="object"&&typeof f.r=="number"&&typeof f.g=="number"&&typeof f.b=="number"}p.isRGB=i,p.white={r:1,g:1,b:1},p.red={r:1,g:0,b:0},p.black={r:0,g:0,b:0};function o(f){return{r:Math.round(f.r*255),g:Math.round(f.g*255),b:Math.round(f.b*255),a:1}}p.toRgb255a1=o;function n(f){return{r:f.r,g:f.g,b:f.b}}p.clone=n;function a(f){return f=Math.floor(f),{r:(f>>16&255)/255,g:(f>>8&255)/255,b:(f&255)/255}}p.fromHex=a;function s(f){return Math.round(f.r*255)*65536+Math.round(f.g*255)*256+Math.round(f.b*255)}p.toHex=s;function l(f,h){return f.r===h.r&&f.g===h.g&&f.b===h.b}p.equals=l;function c(f,h){return f.r.toFixed(2)===h.r.toFixed(2)&&f.g.toFixed(2)===h.g.toFixed(2)&&f.b.toFixed(2)===h.b.toFixed(2)}p.equalsFixed=c;function u(f,h,m){return{r:f.r+(h.r-f.r)*m,g:f.g+(h.g-f.g)*m,b:f.b+(h.b-f.b)*m}}p.lerp=u;function d(f){return At(f)?"r"in f&&"g"in f&&"b"in f&&!("a"in f):!1}p.is=d})(jt||(jt={}));var Re;(u=>{u.white={...jt.white,a:1};function t(d){return At(d)?"r"in d&&"g"in d&&"b"in d&&"a"in d:!1}u.is=t,u.transparent={...jt.white,a:0};function r(d){return{r:d[0],g:d[1],b:d[2],a:d[3]}}u.from0to1=r;function o(d,p){return{...jt.fromHex(d),a:p}}u.fromHexAndA=o;function n(d){return{r:Math.round(d.r*255),g:Math.round(d.g*255),b:Math.round(d.b*255),a:d.a}}u.toRgb255a1=n;function a(d,p){return jt.equals(d,p)&&d.a===p.a}u.equals=a;function s(d,p){return jt.equalsFixed(d,p)&&d.a.toFixed(2)===p.a.toFixed(2)}u.equalsFixed=s;function l(d,p,f){return{r:d.r+(p.r-d.r)*f,g:d.g+(p.g-d.g)*f,b:d.b+(p.b-d.b)*f,a:d.a+(p.a-d.a)*f}}u.lerp=l;function c({r:d,g:p,b:f,a:h}=u.white){return`rgba(${d*255}, ${p*255}, ${f*255}, ${h})`}u.toStyle=c})(Re||(Re={}));var pu;(t=>t.identity={position:[0,0,0],rotation:[0,0,0],scale:[1,1,1]})(pu||(pu={}));var m0;(t=>t.defaultData={mass:1,stiffness:80,damping:10,velocity:0})(m0||(m0={}));var y0;(t=>t.defaultData={control1:[.5,0],control2:[.5,1]})(y0||(y0={}));var g0;(n=>(n.linear=[0,0,1,1],n.ease=[.25,.1,.25,1],n.easeIn=[.42,0,1,1],n.easeOut=[0,0,.58,1],n.easeInOut=[.42,0,.58,1]))(g0||(g0={}));function qp(i){return typeof i=="string"&&i.length===36?/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(i):!1}var io;(e=>{e.all=["PerspectiveCamera","OrthographicCamera"];function t(r){return e.all.includes(r)}e.is=t})(io||(io={}));var Bi;(o=>{o.DefaultUp=[0,1,0],o.DefaultTargetOffset=1e3,o.defaultData={far:1e5,type:"OrthographicCamera",perspective:{near:70,fov:45,zoom:1},orthographic:{near:-1e5,zoom:1},up:o.DefaultUp,isUpVectorFlipped:!1,targetOffset:o.DefaultTargetOffset};function r(n){return n.type==="PerspectiveCamera"?n.perspective?.zoom??1:n.orthographic?.zoom??1}o.getZoom=r})(Bi||(Bi={}));var Io;(r=>{function i(o,n=.1){return{disabled:!1,type:"linear",hideBase:!1,count:3,radial:{radius:Math.max(o[0],o[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:[o[0]+o[0]*n,0,0]},grid:{count:[2,2,2],size:o.map(a=>a*(1+n)),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"}}}r.defaultData=i;function t(o,n){let a={...o};if(vA.forEach(s=>{Object.assign(a,{[s]:n[s]??o[s]})}),a.radial={...o.radial},n.radial){let s=o.radial,l=n.radial;SA.forEach(c=>{Object.assign(a.radial,{[c]:l[c]??s[c]})})}if(a.linear={...o.linear},n.linear){let s=o.linear,l=n.linear;wA.forEach(c=>{Object.assign(a.linear,{[c]:l[c]??s[c]})})}if(a.grid={...o.grid},n.grid){let s=o.grid,l=n.grid;PA.forEach(c=>{Object.assign(a.grid,{[c]:l[c]??s[c]})})}if(a.toObject={...o.toObject},n.toObject){let s=o.toObject,l=n.toObject;OA.forEach(c=>{Object.assign(a.toObject,{[c]:l[c]??s[c]})})}if(a.randomnessObject={...o.randomnessObject},n.randomnessObject){let s=o.randomnessObject,l=n.randomnessObject;TA.forEach(c=>{Object.assign(a.randomnessObject,{[c]:l[c]??s[c]})})}return a}r.merge=t;function e(o){return!!(o.randomnessObject||o.toObject)}r.isPartial=e})(Io||(Io={}));var fu;(r=>{r.defaultData={radial:{},linear:{},grid:{},toObject:{},randomnessObject:{}};let t=["radial","linear","grid","toObject","randomnessObject"];function e(o,n){let a=[];o.count!==void 0&&a.push({type:0,path:n,props:{count:o.count}});for(let s of t){let l=o[s];l&&Object.keys(l).length>0&&a.push({type:0,path:[...n,s],props:l})}return a}r.toOps=e})(fu||(fu={}));var vA=["count"],SA=["radius","start","end","position","scale","rotation"],wA=["position","scale","rotation"],PA=["count","size"],OA=["count","position","scale","rotation"],TA=["strength","scale","rotation","position","movement","seed","freqScale"];var hu;(e=>{e.all=["PointLight","SpotLight","DirectionalLight","HemisphereLight"];function t(r){return e.all.includes(r)}e.is=t})(hu||(hu={}));var mu;(e=>{function i(r){return t(r)}e.defaultData=i;function t(r){if(r==="PointLight")return{type:r,color:Re.white,intensity:1,distance:2e3,decay:1,shadows:!0,shadowResolution:1024,shadowRadius:1,penumbraSize:.5,depth:1e5};if(r==="SpotLight")return{type:r,color:Re.white,intensity:1,distance:2e3,decay:1,shadows:!0,penumbra:0,angle:30/180*Math.PI,depth:1e5,penumbraSize:.5,shadowResolution:1024,shadowRadius:1};if(r==="DirectionalLight")return{type:r,color:Re.white,intensity:1,shadows:!0,size:2e3,depth:1e5,penumbraSize:.5,shadowResolution:1024,shadowRadius:1};throw new Error("not implemented")}})(mu||(mu={}));var Aa;(r=>(r.defaultShapeData={type:"PlaneEmitterShape",size:[100,100,100]},r.defaultCollisionData={colliderEntityId:null,collisionBounce:.75},r.defaultData={renderMaterial:{type:"particleMaterial",color:{r:1,g:.2,b:.545,a:1},color2:{r:.945,g:.714,b:.184,a:1},coloring:"gradient",ease:"linearFadeOut",easeSize:"linearFadeOut",transparent:!0,size:[40,40],texture:"pt_default_particle",spriteRotation:[0,0]},birthRatePerSec:50,gravity:1,noiseStrength:0,noiseScale:0,noiseSeed:1,noiseType:"curl",randomRotation:0,randomScale:.2,randomMass:.5,rootObjectType:"instancedMesh",life:1,direction:[0,0,0],directionMode:"axis",speed:10,shape:r.defaultShapeData,autoPlay:!0,emitTimeDelay:0,emitTimeCycle:"infinity",emitTimeDuration:1,...r.defaultCollisionData}))(Aa||(Aa={}));var Vi;(t=>t.defaultData={enabled:"visibility",fusedBody:!0,rigidBody:"positioned",density:1,pointMass:0,gravityScale:1,friction:.5,damping:0,restitution:.2,colliderType:"convex",enabledRotation:[!0,!0,!0],enabledTranslation:[!0,!0,!0]})(Vi||(Vi={}));var $p;(e=>{e.defaultData={castShadow:!0,receiveShadow:!0};function t(r,o){return r.castShadow===o.castShadow&&r.receiveShadow===o.receiveShadow}e.equals=t})($p||($p={}));var Xp;(e=>{e.defaultData={flatShading:!1,wireframe:!1,side:0};function t(r,o){return r.flatShading===o.flatShading&&r.side===o.side&&r.wireframe===o.wireframe}e.equals=t})(Xp||(Xp={}));var yu;(t=>t.defaultData={...Xp.defaultData,...$p.defaultData})(yu||(yu={}));var b0;(t=>{function i(e,r){let o=[];if("material"in e){let n=typeof e.material=="string"?r.materials[e.material]??r.lib.materials[e.material]?.asset:e.material;n&&o.push(n)}else if("materials"in e)for(let n of e.materials){let a=typeof n=="string"?r.materials[n]??r.lib.materials[n]?.asset:n;a&&o.push(a)}return o}t.getMaterialData=i})(b0||(b0={}));var Ma;(e=>(e.defaultVideo={data:"",thumb:"/_assets/_videos/catThumb.png",type:"video",name:"Cat video"},e.maxSize=3e7))(Ma||(Ma={}));var v0;(t=>{function i(e){return e==="texture"||e==="video"||e==="color"||e==="depth"||e==="normal"||e==="gradient"||e==="noise"||e==="fresnel"||e==="rainbow"||e==="toon"||e==="outline"||e==="particle"||e==="transmission"||e==="matcap"||e==="displace"||e==="pattern"||e==="light"}t.is=i})(v0||(v0={}));function w0(i){return i.type!=="displace"}var S0;(t=>{function i(e){return e==="phong"||e==="toon"||e==="lambert"||e==="physical"}t.is=i})(S0||(S0={}));var P0=["mode","gradientType","noiseType","displacementType","projection","cnormal","crop","axis","side"],O0=["wrapping","image","video","name","minFilter","magFilter"],Vt;(o=>{function i(n,a){let{texture:s,...l}=a;if(Object.assign(n,l),s){let c=n.texture;c&&Object.assign(c,s)}}o.patch=i;function t(n,a){return n==="light"&&a?e(a):r(n)}o.defaultData=t;function e(n){let a={mode:0,isMask:!1,visible:!0,bumpMap:void 0,bumpMapIntensity:5,roughnessMap:void 0,alphaOverride:1};switch(n){case"phong":return{...a,category:"phong",specular:{r:.2,g:.2,b:.2},shininess:5,type:"light",visible:!0,mode:0,occlusion:!0,alpha:.6};case"toon":return{...a,category:"toon",specular:{r:.2,g:.2,b:.2},shininess:10,type:"light",alpha:1};case"lambert":return{...a,category:"lambert",emissive:{r:0,g:0,b:0},type:"light",alpha:1,visible:!0,mode:0,occlusion:!0};case"physical":return{...a,category:"physical",roughness:.2,metalness:.2,reflectivity:.2,type:"light",alpha:1,visible:!0,mode:0,occlusion:!0}}}function r(n){let a={alpha:1,mode:0,isMask:!1,visible:!0};switch(n){case"texture":return{...a,type:"texture",size:[128,128],blending:0,axis:"x",side:2,projection:0,texture:{image:"image_0",wrapping:1e3,repeat:[1,1],offset:[0,0],rotation:0,minFilter:1008,magFilter:1006},crop:!1};case"video":return{...a,type:"video",size:[128,128],blending:0,axis:"x",side:2,projection:0,texture:{video:Ma.defaultVideo,wrapping:1001,repeat:[1,1],offset:[0,0],rotation:0,minFilter:1008,magFilter:1006},crop:!1};case"color":return{...a,type:"color",color:jt.fromHex(Dt)};case"depth":return{...a,type:"depth",gradientType:1,smooth:!1,isVector:!0,isWorldSpace:!1,origin:[0,0,0],direction:[1,0,0],colors:[[1,1,1,1],[0,0,0,1]],steps:[0,1],near:50,far:200};case"normal":return{...a,type:"normal",cnormal:[1,1,1]};case"gradient":return{...a,type:"gradient",gradientType:0,smooth:!1,colors:[[0,0,0,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]],steps:[0,1,1,1,1,1,1,1,1,1],num:2,angle:0,offset:[0,0],morph:[0,0]};case"noise":return{...a,type:"noise",size:[100,100,100],noiseType:0,scale:1,move:1,colorA:{...jt.fromHex(6710886),a:1},colorB:{...jt.fromHex(6710886),a:1},colorC:{...jt.fromHex(16777215),a:1},colorD:{...jt.fromHex(16777215),a:1},distortion:[1,1],fA:[1.7,9.2],fB:[8.3,2.8],voronoiStyle:0,highCut:1,lowCut:0,smoothness:.3,seed:0,quality:1};case"fresnel":return{...a,type:"fresnel",color:Re.fromHexAndA(16777215,1),bias:.1,scale:1,intensity:2,factor:1};case"rainbow":return{...a,type:"rainbow",filmThickness:30,movement:0,wavelengths:[0,0,0],noiseStrength:0,noiseScale:1,offset:[0,0,0]};case"toon":return{...a,type:"toon",positioning:2,colors:[[0,0,0,1],[.5,.5,.5,1],[.5,.5,.5,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]],steps:[0,.475,.525,1,1,1,1,1,1,1],num:4,source:[0,1e3,0],isWorldSpace:!0,noiseStrength:0,noiseScale:1,shadowColor:Re.fromHexAndA(0,0),offset:[0,0,0]};case"outline":return{...a,type:"outline",outlineColor:Re.fromHexAndA(0,1),contourColor:Re.fromHexAndA(0,1),outlineWidth:2,contourWidth:5,outlineThreshold:.4,contourThreshold:0,outlineSmoothing:0,contourFrequency:10,contourDirection:[0,1,0],positionalLines:!1,compensation:!0};case"matcap":return{...a,type:"matcap",texture:{image:"matcap_0",wrapping:1001,repeat:[1,1],offset:[0,0],rotation:0,minFilter:1008,magFilter:1006}};case"transmission":return{...a,type:"transmission",thickness:10,ior:1.5,roughness:1};case"displace":return{visible:!0,type:"displace",displacementType:"noise",noiseType:0,scale:10,movement:1,offset:[0,0,0],intensity:8,voronoiStyle:0,smoothness:.3,seed:0,highCut:1,lowCut:0,quality:1};case"pattern":return{...a,type:"pattern",style:0,projection:0,axis:"y",blending:0,offset:[0,0],colorA:{...jt.fromHex(0),a:1},colorB:{...jt.fromHex(16777215),a:1},frequency:[10,10],size:.5,variation:0,smoothness:.5,zigzag:0,rotation:0,vertical:[0,1],horizontal:[0,1],sides:6}}}})(Vt||(Vt={}));var Ut;(c=>{function i(u){return!u.layers.some(p=>p.data.type==="texture"&&p.data.projection!==0||p.data.type==="depth"&&!p.data.isWorldSpace||p.data.type==="noise"||p.data.type==="displace")}c.isMergable=i;function t(u){let d="";return u.layers.forEach(p=>{Object.entries(p.data).forEach(([f,h])=>{d+=`${f}${h}`,Array.isArray(h)?h.forEach(m=>d+=`${m}`):typeof h=="object"?Object.values(h).forEach(m=>{typeof m=="number"?d+=`${m.toFixed(4)}`:d+=`${m}`}):d+=`${h}`})}),d}c.getHash=t;function e(){return{layers:new Se}}c.defaultEmptyData=e;function r(u="layer1",d="layer2"){return n("phong",u,d)}c.defaultData=r;function o(u,d){return{...u,name:d}}c.withName=o;function n(u,d="layer1",p="layer2"){let f=new Se;return f.push({fi:0,data:Vt.defaultData("light",u),id:d}),f.push({fi:1,data:Vt.defaultData("color"),id:p}),{layers:f}}c.defaultTwoLayerData=n;function a(u){let d=Vt.defaultData("texture");u&&Object.assign(d.texture,{image:u});let p=new Se;return p.push({fi:0,data:d,id:"layer1"}),p.push({fi:1,data:{...Vt.defaultData("transmission"),alpha:1},id:"layer2"}),p.push({fi:2,data:{...Vt.defaultData("light","lambert"),alpha:0},id:"layer3"}),{layers:p}}c.defaultUIObjectMaterial=a;function s(u,d="phong",p="layer1",f="layer2"){let h=Vt.defaultData("texture");Object.assign(h.texture,{image:u});let m=new Se;return m.push({fi:0,data:h,id:p}),m.push({fi:1,data:Vt.defaultData("light",d),id:f}),{layers:m}}c.defaultTwoLayerTextureData=s;function l(u,d="phong",p="layer1",f="layer2"){let h=Vt.defaultData("video");Object.assign(h.texture,{video:u});let m=new Se;return m.push({fi:0,data:h,id:p}),m.push({fi:1,data:Vt.defaultData("light",d),id:f}),{layers:m}}c.defaultTwoLayerVideoTextureData=l})(Ut||(Ut={}));var Ia;(t=>{function i(){return{points:new Se,roundness:0,shapeHoles:[],isClosed:!1}}t.defaultData=i})(Ia||(Ia={}));var Ea;(t=>{function i(){return{points:new Se,lastInsertionPlane:null,subdivisions:12,isClosed:!1}}t.defaultData=i})(Ea||(Ea={}));var Yp={type:"Ellipse",width:50,height:50,spikes:16,angle:360,innerRadius:0};var gu;(t=>{function i(e,r){let o={...e};return CA.forEach(n=>{Object.assign(o,{[n]:r[n]??e[n]})}),o}t.merge=i})(gu||(gu={}));var xu={shape:Yp,depth:1,offset:0,bevel:50,bevelSides:6,angle:0,twist:0,startScale:1,endScale:1,capType:"flat"},CA=["depth","offset","angle","twist","startScale","endScale"];var hl;(r=>{function i(o){return o==="PolygonGeometry"||o==="RectangleGeometry"||o==="StarGeometry"||o==="TriangleGeometry"||o==="EllipseGeometry"||o==="UIGeometry"}r.is2DParametricMesh=i;function t(o){return o==="PolygonGeometry"||o==="RectangleGeometry"||o==="StarGeometry"||o==="TriangleGeometry"||o==="EllipseGeometry"||o==="PathGeometry"||o==="VectorGeometry"||o==="ConeGeometry"||o==="CubeGeometry"||o==="CylinderGeometry"||o==="DodecahedronGeometry"||o==="HelixGeometry"||o==="IcosahedronGeometry"||o==="LatheGeometry"||o==="PyramidGeometry"||o==="SphereGeometry"||o==="PlaneGeometry"||o==="BackdropGeometry"||o==="TorusGeometry"||o==="TorusKnotGeometry"||o==="BooleanGeometry"||o==="TextGeometry"||o==="InputGeometry"}r.isParametricMesh=t;function e(o){return o==="PolygonGeometry"||o==="RectangleGeometry"||o==="StarGeometry"||o==="TriangleGeometry"||o==="EllipseGeometry"||o==="PathGeometry"||o==="VectorGeometry"||o==="ConeGeometry"||o==="CubeGeometry"||o==="CylinderGeometry"||o==="DodecahedronGeometry"||o==="HelixGeometry"||o==="IcosahedronGeometry"||o==="LatheGeometry"||o==="PyramidGeometry"||o==="SphereGeometry"||o==="PlaneGeometry"||o==="BackdropGeometry"||o==="TorusGeometry"||o==="TorusKnotGeometry"||o==="TextGeometry"||o==="SubdivGeometry"||o==="NonParametricGeometry"}r.isSwappableGeometry=e})(hl||(hl={}));var bu;(t=>{function i(e,r){let o={...e};return Object.assign(o,r),o.type==="PathGeometry"&&"extrusion"in r&&r.extrusion&&(o.extrusion={...e.extrusion},Object.assign(o.extrusion,gu.merge(o.extrusion,r.extrusion))),o}t.merge=i})(bu||(bu={}));var Eo;(t=>{function i(e){if(e==="RectangleGeometry")return{width:320,height:320,type:e,cornerRadius:[0,0,0,0],cornerType:0,depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(e==="UIGeometry")return{type:e,frame:"",cornerRadius:[0,0,0,0],cornerType:0,width:1,height:1};if(e==="PathGeometry")return{type:e,width:1,height:1,depth:1,path:Ea.defaultData(),extrusion:xu};if(e==="VectorGeometry")return{width:1,height:1,type:e,subdivisions:12,shape:Ia.defaultData(),depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(e==="BooleanGeometry")return{type:e,operation:2,width:0,height:0,depth:0,phongAngle:35};if(e==="ShapeBlendGeometry")return{type:e,width:0,height:0,depth:0,resolutionLevel:6,blendRange:100,useChildrenColors:!1};if(e==="TextGeometry")return{type:e,width:100,height:100,depth:0,horizontalAlign:1,verticalAlign:1,fontSize:16,lineHeight:1.2,letterSpacing:0,text:{textValue:""},textTransform:1,font:"Roboto_regular",editable:!1,extrudeBevelSize:0,extrudeBevelSegments:1};if(e==="InputGeometry")return{...t.defaultData("TextGeometry"),type:e,editable:!0};if(e==="SphereGeometry")return{type:"SphereGeometry",width:100,height:100,depth:100,widthSegments:64,heightSegments:64,phiStart:0,phiLength:2*Math.PI,thetaStart:0,thetaLength:180};throw new Error("not implemented")}t.defaultData=i})(Eo||(Eo={}));var vu;(t=>t.defaultData={enabled:!1,useBackgroundColor:!1,color:jt.white,near:.1,far:2e3})(vu||(vu={}));var Su;(e=>{let i={opacity:1,blendFunction:13,enabled:!1};e.defaultData={enabled:!1,pixelation:{...i,blendFunction:16,granularity:15},bloom:{...i,blendFunction:16,intensity:1,blurScale:1,luminanceThreshold:.25,luminanceSmoothing:.025,kernelSize:3},chromaticAberration:{...i,offset:[2,2]},vignette:{...i,darkness:1,offset:0},hueSaturation:{...i,hue:3,saturation:0},brightnessContrast:{...i,brightness:.25,contrast:0},depthOfField:{...i,focusDistance:100,focalLength:20,bokehScale:5},noise:{...i,blendFunction:16}}})(Su||(Su={}));var Kp;(t=>t.defaultData={softShadowQuality:"low"})(Kp||(Kp={}));var Qp;(t=>t.defaultData={enabled:!0,color:{r:.8274509803921568,g:.8274509803921568,b:.8274509803921568},intensity:.75})(Qp||(Qp={}));var Zp;(t=>t.defaultData={occlusion:!1,aoFullRes:!1,radius:256,bias:.5,aoColor:{r:.19607843137254902,g:.19607843137254902,b:.19607843137254902}})(Zp||(Zp={}));var ml;(t=>t.defaultData={usePhysics:!1,gravity:-10})(ml||(ml={}));var Jp;(t=>t.defaultData={playCamera:Ri,gameControlObject:null})(Jp||(Jp={}));var wu;(t=>t.defaultData={backgroundColor:Re.fromHexAndA(x0,1),postprocessing:Su.defaultData,fog:vu.defaultData,globalPhysics:ml.defaultData,ambient:Qp.defaultData,ao:Zp.defaultData,shadow:Kp.defaultData,publish:Jp.defaultData})(wu||(wu={}));var Pu;(t=>t.defaultData={colliderType:"box",size:[100,100,100],colliderHelperVisible:!0,forceType:"collider",forceRange:"global",forceIntensity:.5,forceDambing:.95})(Pu||(Pu={}));var T0;(e=>{function i(r){return r==="Component"||r==="Instance"}e.isComponentRelated=i;function t(r){return r==="Empty"||r==="Instance"}e.isEmptyOrComponent=t})(T0||(T0={}));var Na;(o=>{o.identity={...pu.identity,hiddenMatrix:_i.identity};function t(n){return{position:n.position,rotation:n.rotation,scale:n.scale,hiddenMatrix:n.hiddenMatrix}}o.fromObject=t;function e(n,a){return{position:a?.position||n.position,rotation:a?.rotation||n.rotation,scale:a?.scale||n.scale,hiddenMatrix:a?.hiddenMatrix||n.hiddenMatrix}}o.merge=e;function r(n,a){return vc({position:Di.isEqual(n.position,a.position)?void 0:a.position,rotation:Di.isEqual(n.rotation,a.rotation)?void 0:a.rotation,scale:Di.isEqual(n.scale,a.scale)?null:a.scale,hiddenMatrix:_i.isEqual(n.hiddenMatrix,a.hiddenMatrix)?void 0:a.hiddenMatrix})}o.diff=r})(Na||(Na={}));var _t;(t=>t.defaultData={states:new Se,events:new Se,timelineAnimations:new de,visible:!0,raycastLock:!1,physics:Vi.defaultData,pathSnapping:{pathId:null,slide:0,offset:0,orientation:"tangential"},...Na.identity,cloner:null})(_t||(_t={}));var Ou;(t=>t.defaultData={type:"Empty",..._t.defaultData})(Ou||(Ou={}));var C0;(t=>t.defaultData={type:"ParticleCollider",...Pu.defaultData,..._t.defaultData})(C0||(C0={}));var A0;(t=>t.defaultData={type:"Component",..._t.defaultData})(A0||(A0={}));var M0;(t=>t.defaultData={type:"Particle",..._t.defaultData,...Aa.defaultData})(M0||(M0={}));var ti;(t=>t.defaultData={type:"Mesh",..._t.defaultData,...yu.defaultData})(ti||(ti={}));var On;(t=>t.defaultData={..._t.defaultData,...Na.identity,position:[0,0,Bi.DefaultTargetOffset],...Bi.defaultData})(On||(On={}));var Tu;(e=>{function i(r){return{..._t.defaultData,...mu.defaultData(r)}}e.defaultData=i,e.defaultDirectionalLightData={...e.defaultData("DirectionalLight"),position:[200,300,300],name:"Directional Light",intensity:.7}})(Tu||(Tu={}));var Da;(e=>{function i(r,o,n=0){for(;n<o.length;){let a=r?r[o[n]]:void 0;if(o.length===n+1)return a;if(a)r=a.descendants,n+=1;else return}}e.resolveWithDes=i;function t(r,o,n=0){let a=i(r,o,n);if(a){let s=Object.keys(a);if(s.length===1&&s[0]==="descendants")return}return a}e.resolve=t})(Da||(Da={}));var No;(n=>{n.rootOverrideProps=["physics","events"],n.compositeNonOptionalOverrideProps=["geometry"],n.compositeEntireOverrideOverrideProps=["material"];function r(a,s){return{..._t.defaultData,...s,component:a,overrides:new Je,physics:void 0,events:void 0,type:"Instance"}}n.ofComponent=r;function o(a){let s=Na.fromObject(a.data);return r(a.id,s)}n.fromComponentData=o})(No||(No={}));var ri;(e=>{e.defaultData={type:"Page",..._t.defaultData,physics:{...Vi.defaultData,fusedBody:!1},...wu.defaultData,camera:On.defaultData};function t(r){return r.uiScene!==void 0}e.isUIPage=t})(ri||(ri={}));var Cu;(s=>(s.defaultCamera={position:[0,0,1e3],scale:[1,1,1],rotation:[0,0,0],hiddenMatrix:_i.identity,name:"Play Camera",visible:!0,raycastLock:!1,physics:Vi.defaultData,states:new Se,events:new Se,timelineAnimations:new de,cloner:null,pathSnapping:{pathId:null,orientation:"tangential",slide:0,offset:0},...Bi.defaultData},s.KeysByResetCategory={States:["states"],Events:["events"],Material:["material","materials"],Geometry:["geometry"],Position:["position"],Rotation:["rotation"],Scale:["scale"],Transform:["position","scale","rotation","hiddenMatrix"],Name:["name"],Visibility:["visible","raycastLock","flatShading","wireframe","side"],Shadows:["castShadow","receiveShadow"],Cloner:["cloner"],Physics:["physics"]},s.defaultMeshObject={name:"Rectangle",..._t.defaultData,...ti.defaultData,geometry:Eo.defaultData("RectangleGeometry"),material:Ut.defaultTwoLayerData("phong","layer1","layer2")},s.defaultBooleanObject={name:"Boolean",..._t.defaultData,...ti.defaultData,geometry:Eo.defaultData("BooleanGeometry"),material:Ut.defaultTwoLayerData("phong","layer1","layer2")},s.defaultShapeBlendObject={name:"Shape Blend",..._t.defaultData,...ti.defaultData,geometry:Eo.defaultData("ShapeBlendGeometry"),material:Ut.defaultTwoLayerData("phong","layer1","layer2")},s.defaultTextObject={name:"Text",..._t.defaultData,...ti.defaultData,geometry:Eo.defaultData("TextGeometry"),material:Ut.defaultTwoLayerData("phong","layer1","layer2")},s.defaultInputObject={name:"Input",..._t.defaultData,...ti.defaultData,geometry:Eo.defaultData("InputGeometry"),material:Ut.defaultTwoLayerData("phong","layer1","layer2")}))(Cu||(Cu={}));var Tn;(o=>{function i(n,a){let s={name:a};return n.type==="Mesh"?(s.geometry={},"material"in n&&(s.material={layers:new Je}),"materials"in n&&(s.materials=n.materials.map(l=>({layers:new Je})))):io.is(n.type)&&(s.perspective={},s.orthographic={}),s}o.newEmpty=i;function t(n,a){if(a===void 0)return n;let s={...n};return"material"in s&&"material"in a&&a.material&&(s.material=Mi(s.material,l=>{if(typeof l!="string")for(let[c,u]of Object.entries(a.material.layers)){let d=l.layers.data(c);d&&Vt.patch(d,u)}}).data),s.materials&&a.materials&&(s.materials=Mi(s.materials,l=>{for(let c=0;c<s.materials.length;c++){let u=a.materials[c];if(typeof u!="string")for(let[d,p]of Object.entries(u.layers)){let f=l[c]?.layers?.data(d);f&&Vt.patch(f,p)}}}).data),s}function e(n,a){let s,l=[],c={orthographic:0,perspective:0,geometry:0};function u(d,p){for(let[f,h]of Object.entries(p.layers)){let{texture:m,...y}=h;if(m!==void 0&&Object.keys(m).length>0){let x={path:[...d,"layers",f,"texture"],props:m,type:0};l.push(x)}if(Object.keys(y).length>0){let x={path:[...d,"layers",f],props:y,type:0};l.push(x)}}}for(let[d,p]of Object.entries(a))if(d!=="name")if(d==="cloner")l.push(...fu.toOps(p,["cloner"]));else if(d==="pathSnapping")l.push({path:[d],props:{slide:p.slide,offset:p.offset},type:0});else if(d==="material")u(["material"],p);else if(d==="materials")for(let[f,h]of Object.entries(p))u(["materials",f],h);else if(c[d]===0){if(d==="geometry"&&p.extrusion!==void 0){let f={path:[d,"extrusion"],props:p.extrusion,type:0};l.push(f),p={...p},delete p.extrusion}if(Object.keys(p).length>0){let f={path:[d],props:p,type:0};l.push(f)}}else s===void 0&&(s={path:[],props:{},type:0},l.push(s)),s.props[d]=p;return l}o.toOps=e;function r(n,a){if(a===void 0)return n;let s={...n};if(Object.assign(s,Na.merge(s,a)),Object.assign(s,{pathSnapping:Object.assign({},s.pathSnapping,{slide:a.pathSnapping?.slide??s.pathSnapping?.slide??0,offset:a.pathSnapping?.offset??s.pathSnapping?.offset??0})}),io.is(n.type)){s.orthographic={...s.orthographic},s.perspective={...s.perspective};let l=a;l.orthographic?.zoom!==void 0&&(s.orthographic.zoom=l.orthographic.zoom),l.perspective?.zoom!==void 0&&(s.perspective.zoom=l.perspective.zoom),l.isUpVectorFlipped!==void 0&&(s.isUpVectorFlipped=l.isUpVectorFlipped),l.targetOffset!==void 0&&(s.targetOffset=l.targetOffset)}else if(n.type==="Mesh")"geometry"in a&&Object.assign(s,{geometry:bu.merge(s.geometry,a.geometry)}),(a.material||a.materials)&&(s=t(s,a)),s.cloner&&"cloner"in a&&Object.assign(s,{cloner:Io.merge(s.cloner,a.cloner)});else if(n.type==="Empty")s.cloner&&"cloner"in a&&Object.assign(s,{cloner:Io.merge(s.cloner,a.cloner)});else if(hu.is(n.type)){let l=a;l.intensity!==void 0&&(s.intensity=l.intensity),l.color!==void 0&&(typeof l.color=="string"?s.color=l.color:s.color=jt.clone(l.color))}return s}o.patch=r})(Tn||(Tn={}));var _a;(t=>t.defaultData={enablePan:!0,enableZoom:!0,enableRotate:!0,enableDamping:!0,rotationLimitsMode:0,rotationVerticalOffset:{min:Math.PI/4,max:Math.PI/4},rotationHorizontalOffset:{min:Math.PI/4,max:Math.PI/4},rotationSoftLimit:2,panLimitsMode:0,panVerticalOffset:{min:250,max:250},panHorizontalOffset:{min:250,max:250},panSoftLimit:2,zoomLimitsEnabled:!1,zoomLimits:{min:.1,max:2},autoRotate:!1,autoRotateSpeed:2,autoRotateClockwise:!0,hoverRotatePanMode:0,hoverRotatePanStrength:20,hoverRotateDamping:.125,isTouchZoom:!0,orbitTouches:2,panTouches:3,resetHoverEffectOnPointerLeave:!0})(_a||(_a={}));var kr;(t=>t.defaultData={orbitControls:_a.defaultData,playPage:Li,withBackground:!0,preventScroll:!1,preventTouchScroll:!1,hideCursor:!1,mouseEventTarget:"canvas",joystickSizeAndXYOffset:Array(12).fill(0).map((e,r)=>{let o=0,n=0;return r<5?n=-30:r<10&&(n=30),r===0||r===10||r===5?o=30:(r===4||r===11||r===9)&&(o=-30),[120,[o,n],"show"]}),settings:{image:{format:"jpg",ratio:1},videoStatic:{fps:60,mbps:150,ratio:1,duration:1e3,activeTimeline:null},video:{format:"mp4",imageFormat:"jpg",fps:30,mbps:80,ratio:Math.max(1,typeof window<"u"?Math.floor(window.devicePixelRatio):1),stopMode:"manual",duration:5e3},web:{logo:!0,compress:!0,preset:1,preload:!0,hint:!1,imageQuality:70,pixelRatioMobile:0,pixelRatioDesktop:0}},stopRaycast:!0,hdTransmission:!1})(kr||(kr={}));var ef;(t=>t.defaultData={id:"basic",label:"Basic",style:"None",prompt:""})(ef||(ef={}));var tf;(t=>t.defaultData={weather:0,shadows:0,lightOrigin:0,temperature:0,sun:0,camera:0,environment:0,particles:0,nature:0,floor:0})(tf||(tf={}));var oi;(e=>(e.defaultData=()=>({mode:"line-art-both",prompt:"",negativePrompt:"",style:{...ef.defaultData},isRandomSeed:!0,seed:e.generateSeed(),guessMode:!1,advanced:!1,steps:20,guidanceScale:7.5,controlNetScale:1,modifiers:tf.defaultData}),e.generateSeed=()=>Math.round(Math.random()*1e5)))(oi||(oi={}));var I0;(e=>{function i(r){return r.find(o=>o.data.type==="Page"&&o.data.globalPhysics.usePhysics)!==void 0}e.physicsEnabled=i;function t(r,o,n){r.scene.objects.traverseFrom(o,(a,s)=>{if(s.type==="Instance"){let l=Ra.getComponentData(r,s.component)?.data;l&&n(a,s,l.events)}else n(a,s,s.events)})}e.traverseModuleInstances=t})(I0||(I0={}));var ii;(c=>{c.TRASH_CAN_ID="830a2708-8ed9-49cf-a68e-085299892222",c.defaultLight={fi:-1,data:Tu.defaultDirectionalLightData,id:"830a2708-8ed9-49cf-a68e-085299899103",children:[]};function e(u=!0,d=[]){let p=[],f=Cu.defaultMeshObject;u&&(p.push({...c.defaultLight}),p.push({fi:1,id:"7ba78968-2a55-48f2-b14c-5191da3e075e",data:f,children:[]})),p.push(...d);let h=new ct;return h.push({fi:1,id:Li,data:{...ri.defaultData,name:"Scene 1"},children:p}),h}c.createDefaultObjectTreeWithPage=e,c.defaultData={objects:e(),publish:kr.defaultData,styles:oi.defaultData()},c.emptyDataWithoutPage=function(){return{objects:new ct,publish:kr.defaultData,styles:oi.defaultData()}},c.emptyDataWithPage=function(u=!0){return{objects:e(u),publish:kr.defaultData,styles:oi.defaultData()}},c.emptyData=function(){return{objects:new ct,publish:{...kr.defaultData},styles:oi.defaultData()}};function s(u){return{...c.defaultData,objects:Ft(u,ct.prototype)}}c.withObjs=s;function l(u,d){return s([{id:u,data:d,children:[],fi:0}])}c.withObj=l})(ii||(ii={}));var La;(t=>t.defaultData={preset:"fullscreen",allowResponsive:!1,size:[512,512],coords:[0,0],sceneScale:1,color:{r:0,g:0,b:0,a:.5}})(La||(La={}));var Au;(e=>(e.defaultData=r=>({url:r,name:"New Webhook",parametersSchemas:new Se}),e.defaultParameterValueByType=r=>r==="number"?0:r==="boolean"?!1:""))(Au||(Au={}));var E0;(t=>t.defaultData=(e,r="GET")=>({url:e,method:r,name:"New API",headers:new Se,queries:new Se,autoStart:!0}))(E0||(E0={}));var zi;(n=>{function i(a){return a.textValue!==void 0}n.isTextValue=i;function t(a){return typeof a=="number"}n.isNumber=t;function e(a){return typeof a=="boolean"}n.isBoolean=e;function r(a){return i(a)?"string":e(a)?"boolean":"number"}n.typeOfVariable=r;function o(a){return n.isTextValue(a)?Array.isArray(a.textValue)?a.textValue.map(s=>s.toString().padStart(a.padding??2,"0")).join(a.deliminator??":")+(a.suffix!==void 0?" "+a.suffix:""):a.textValue.toString():n.isBoolean(a)?a?"True":"False":n.isNumber(a)?parseFloat(a.toFixed(3)).toString():a.toString()}n.getDisplayedValue=o})(zi||(zi={}));var rf;(t=>t.all=["images","videos","colors","audios","particles","fonts","materials","variables"])(rf||(rf={}));var N0;(t=>t.all=[...rf.all,"components"])(N0||(N0={}));var D0;(t=>{function i(){return{images:new de,videos:new de,colors:new de,audios:new de,particles:new de,fonts:new de,materials:new de,components:new de,variables:new de,userAPIs:new de,userWebhooks:new de,timelineAnimations:new de}}t.defaultData=i})(D0||(D0={}));var no;(t=>{function i(){return{images:new de,videos:new de,colors:new de,audios:new de,particles:new de,fonts:new de,materials:new de,components:new de,variables:new de,userAPIs:new de,userWebhooks:new de,timelineAnimations:new de}}t.defaultData=i})(no||(no={}));var Hr;(n=>{function i(){let a={};return a["89b10010-844c-11ec-a8a3-0242ac120002"]={r:.5,g:.5,b:.5,a:1,name:"Default Color"},Ft(a,de.prototype)}n.defaultColors=i;function t(){return Ft({},de.prototype)}n.defaultImages=t;function e(){return{catelogs:new de,materials:new de,images:new de,videos:new de,colors:new de,timelineAnimations:new de,audios:new de,particles:new de,fonts:new de,variables:new Se,userAPIs:new de,userWebhooks:new de,lib:no.defaultData()}}n.emptyData=e;function r(a){switch(a){case"number":return{value:0,name:"Number"};case"boolean":return{value:!1,name:"Boolean"};case"string":return{value:{textValue:"String value"},name:"String"};case"time":let s=[0,0,0];return{name:"Time",value:{textValue:s,deliminator:":",padding:2,suffix:"AM"},dynamicVariableType:"time",format:"HH:mm:ss",format12h24h:"12ampm",timeZone:null,hasEnd:!1,endValue:{textValue:s,deliminator:":",padding:2,suffix:"AM"},autoStart:!0,repeat:!1};case"counter":return{name:"Counter",value:0,dynamicVariableType:"counter",updateInterval:1e3,increment:1,autoStart:!0,hasEnd:!0,endValue:60,repeat:!0,randomStart:!1,range:[0,100],decimals:0};case"random":return{name:"Random",value:0,dynamicVariableType:"random",updateInterval:1e3,increment:1,autoStart:!0,isStatic:!1,hasEnd:!0,endValue:60,repeat:!0,min:0,max:100,decimals:0};default:console.error("Unknown variable type",a)}}n.defaultVariables=r;function o(a,s){if(s.format==="HH:mm:ss"){let l=Math.floor(a/3600),c=Math.floor((a-l*3600)/60),u=Math.round(a-l*3600-c*60);return{textValue:[l,c,u]}}else if(s.format==="mm:ss"){let l=Math.floor(a/60),c=Math.round(a-l*60);return{textValue:[l,c]}}else return s.format==="number"?a=Math.round(a):a=Math.round(a*1e3)/1e3,a}n.getFormattedTimerTime=o})(Hr||(Hr={}));var yl=require("three");var Mu;(t=>t.list=["idle","move","jump","run"])(Mu||(Mu={}));var Iu;(e=>(e.defaultColliderData={type:"capsule",height:200,radius:50,position:[0,0,0],rotation:[0,0,0]},e.defaultDataThirdPerson={moveMode:"walk",forwardDirection:"+z",speedTranslate:1e3,speedRotate:100,runMultiplier:2,rotationMode:"normal",rotBy:"keys",rotByTouch:"drag",delayPos:[.3,.3],delayRot:[.3,.3],keyAssignments:[["moveNegZ","W"],["moveNegX","A"],["movePosZ","S"],["movePosX","D"],["rotPosX","\u25B2"],["rotPosY","\u25C0"],["rotNegX","\u25BC"],["rotNegY","\u25B6"],["jump","Space"],["run","\u21E7"],["none","Ctrl"]],touchControl:!0,joystickPosLoc:5,joystickRotLoc:11,jumpTouchButtonLoc:9,collider:e.defaultColliderData,colliderHelperVisible:!0,collisionEnabled:!0,jumpPower:100,resetYPosition:3e3,alignToGround:!1,autoOrientMove:!0,orientWith:"camera",orientMode:"radial",delayPosCamera:.3,delayRotCamera:.3,camera:"",cameraXAxis:"Limit",cameraYAxis:"Free",cameraRotXLimits:[0,Math.PI/2],cameraRotYLimits:[-Math.PI/2,Math.PI/2],gameActions:{idle:new Se,move:new Se,jump:new Se,run:new Se},navmesh:{enabled:!1,ch:6,cs:6,walkableClimb:5,walkableHeight:1,walkableRadius:0,zones:"all",objects:[],helperVisible:!0,destinationHelperRadius:0,destinationHelperColor:Re.fromHexAndA(3728051,1)}}))(Iu||(Iu={}));function _0(i){i.layers.forEach(t=>{if(t.type==="depth"&&t.colorA!==void 0){let e=t.colorA,r=t.colorB,o=[[e.r,e.g,e.b,e.a],[r.r,r.g,r.b,r.a]],n=[0,1];for(let s=2;s<10;s++)o.push(o[1]),n.push(1);let a={...oo(vt(t),"type","visible","isVector","isWorldSpace","origin","alpha","mode"),near:Math.max(0,t.near),far:Math.max(0,t.far),colors:o,steps:n,num:2,direction:[1,0,0],smooth:!1,gradientType:1};Object.assign(t,a)}else if(t.type==="depth"&&t.gradientType===1&&(t.near<0||t.far<0)){let e={...vt(t),near:Math.max(t.near,0),far:Math.max(t.far,0)};Object.assign(t,e)}})}function ni(i,t){Object.values(i.shared.materials).forEach(e=>t(e))}function ai(i,t){i.scene.objects.traverse((e,r)=>{"materials"in r?r.materials.forEach((o,n)=>{o===void 0&&(r.materials[n]=Ut.defaultData(),o=r.materials[n]),typeof o!="string"&&t(o)}):"material"in r?typeof r.material!="string"&&(r.material===void 0&&(r.material=Ut.defaultData()),t(r.material)):r.type==="Mesh"&&(r.material===void 0&&(r.material=Ut.defaultData()),t(r.material)),"overrides"in r&&Object.values(r.overrides).forEach(o=>{o.material&&typeof o.material!="string"&&Object.getPrototypeOf(o.material)!==Je.prototype&&t(o.material)})})}function AA(i){Object.assign(i.scene.publish,{orbitControls:{..._a.defaultData,...vt(i.scene.publish.orbitControls)}})}function MA(i){Object.assign(i.scene.publish.settings,{video:{...kr.defaultData.settings.video,...vt(i.scene.publish.settings.video)}})}function IA(i){function t(e){if(e.layers){for(let r of Object.values(e.layers))if(r){for(let[o,n]of Object.entries(r))if((P0.includes(o)||typeof n=="boolean")&&delete r[o],o==="texture")for(let[a,s]of Object.entries(n))(O0.includes(a)||typeof s=="boolean")&&delete n[a]}}}i.scene.objects.traverse((e,r)=>{r.states.forEach(o=>{let n=o;n.material?t(n.material):n.materials&&n.materials.forEach(a=>{t(a)})})})}function EA(i){i.scene.publish.withBackground=!0}function NA(i){i.scene.publish.settings.web={compress:!0,preload:!0,preset:1,logo:!0,hint:!1}}function DA(i){i.scene.objects.traverse((t,e)=>{let r=e.cloner;r&&(r.radial.scale=r.radial.scale.map(o=>o+1),r.linear.scale=r.linear.scale.map(o=>o+1))})}function _A(i){i.scene.objects.traverse((t,e)=>{let r=e.geometry;r&&(r.type==="DodecahedronGeometry"||r.type==="IcosahedronGeometry")&&(r.detail=Math.round(r.detail))})}function RA(i){i.scene.objects.traverse((t,e)=>{let r=i.scene.objects.unproxy().parent(t);if(r){let o=vt(i.scene.objects.data(r));o&&o.type==="Mesh"&&o.geometry.type==="BooleanGeometry"&&e.type==="Mesh"&&(e.visible=vt(e).booleanExclude!==!0)}})}function LA(i){i.scene.objects.traverse((t,e)=>{if(e.type==="Mesh"){let r=e;e.geometry.type==="NonParametricGeometry"?r.material!==void 0&&delete r.material:r.materials!==void 0&&delete r.materials}})}function BA(i){function t(r){Object.setPrototypeOf(r,Je.prototype),r.texture&&Object.setPrototypeOf(r.texture,Je.prototype)}function e(r){Object.setPrototypeOf(r,Je.prototype);for(let o in r)t(r[o])}i.scene.objects.traverse((r,o)=>{o.states.forEach(n=>{let a=n;if(a.material){let s=vt(a.material).layers;e(s),a.material.layers=s}if(a.materials)for(let s=0;s<a.materials.length;s++){let l=a.materials[s],c=vt(l).layers;e(c),l.layers=c}})})}function R0(i){i.layers===void 0&&Object.assign(i,Ut.defaultTwoLayerData("lambert"))}function of(i){!i.layers||i.layers.forEach(t=>{if(t.type==="depth"&&t.colors.length===10){let e=[...t.colors];e.push(t.colors[9]);let r=[...t.steps];r.push(t.steps[9]);let o={...vt(t),colors:e,steps:r};Object.assign(t,o)}})}function VA(i){i.scene.objects.traverse((t,e)=>{e.type==="Mesh"&&(e.geometry.type==="BooleanGeometry"||e.geometry.type==="SubdivGeometry")&&(e.geometry.phongAngle=35)})}function L0(i){i.scene.objects.traverse((t,e)=>{"materials"in e?e.materials.forEach(r=>{typeof r!="string"&&of(r)}):"material"in e&&typeof e.material!="string"&&of(e.material)}),Object.values(i.shared.materials).forEach(t=>of(t))}function zA(i){i.scene.environment.ambientLight.softShadows=!1,i.scene.environment.ambientLight.softShadowQuality="low",i.scene.objects.traverse((t,e)=>{(e.type==="DirectionalLight"||e.type==="SpotLight")&&(e.shadowResolution=1024,e.shadowRadius=1,e.depth=1e5)}),i.shared.penumbraSize=new Array(5).fill(.5)}function GA(i){i.shared.audios=Ft({},de.prototype)}function FA(i){i.shared.videos=Ft({},de.prototype)}function jA(i){let t=i.shared.materials;Object.entries(t).forEach(([e,r])=>{if(!r.layers){let o={name:"Untitled Material",layers:[{fi:0,data:{type:"light",category:"phong",alpha:.6,visible:!0,mode:0,specular:{r:.2,g:.2,b:.2},shininess:5},id:"layer1"},{fi:1,data:{type:"color",alpha:1,visible:!0,mode:0,color:{r:.2823529411764706,g:.2823529411764706,b:.30196078431372547}},id:"layer2"}]};Object.assign(t,{[e]:o})}})}function UA(i){Object.entries(vt(i.shared.images)).filter(r=>r[1].asset===!1).map(r=>r[0]).forEach(r=>{delete i.shared.images[r]}),Object.entries(vt(i.shared.audios)).filter(r=>r[1].asset===!1).map(r=>r[0]).forEach(r=>{delete i.shared.audios[r]})}function kA(i){i.scene.publish.settings.web.preload=!1}function B0(i){i.layers&&i.layers.forEach(t=>{t.type==="depth"&&t.num!==void 0&&(t.colors=t.colors.slice(0,t.num),t.steps=t.steps.slice(0,t.num),delete t.num)})}function V0(i){i.layers&&i.layers.forEach(t=>{w0(t)&&t.isMask===void 0&&(t.isMask=!1),(t.type==="texture"||t.type==="video")&&t.blending===void 0&&(t.blending=0),(t.type==="noise"||t.type==="displace"&&t.displacementType==="noise")&&(t.voronoiStyle===void 0&&(t.voronoiStyle=0),t.highCut===void 0&&(t.highCut=1),t.lowCut===void 0&&(t.lowCut=0),t.smoothness===void 0&&(t.smoothness=.3),t.seed===void 0&&(t.seed=0),t.quality===void 0&&(t.quality=1))})}function HA(i){i.shared.fonts=Ft({},de.prototype)}function WA(i){return i.replace(".typeface","").replace(/optimer/gi,"open sans").replace("space_mono","space mono").replace(/alma_mono/gi,"varela round").replace(/droid_sans_mono/gi,"noto sans mono").replace(/droid_sans|gentilis|gnomon_(simple|foreground)|helvetiker/gi,"roboto").replace(/droid_serif/gi,"roboto slab").replace("_sans"," sans").replace("crimson_text","crimson text").replace("medium_medium","medium").replace("fatface_fatface","fatface").replace("100hairline","thin").replace("200thin","extralight").replace("300light","light").replace("500medium","medium").replace("600semi","semibold").replace("800heavy","extrabold").replace("900black","black").replace(/bodoni_(11|16|24|36|48|72|96)([^_])/gi,"bodoni_$1_$2").replace(/bodoni_(11|16|24|36|48|72|96)/gi,"bodoni moda").replace(/(thin|hairline)(_regular)?/gi,"100").replace(/(extra|ultra)light(_regular)?/gi,"200").replace(/light(_regular)?/gi,"300").replace(/_book|_normal|_roman/gi,"_regular").replace(/medium(_regular)?/gi,"500").replace(/(semi|demi)bold(_regular)?/gi,"600").replace(/(extra|ultra)bold(_regular)?/gi,"800").replace(/bold(_regular)?/gi,"700").replace(/(black|heavy|fatface)(_regular)?/gi,"900").replace(/([1-9]00)_italic/gi,"$1italic").replace(/regularitalic/gi,"italic").replace(/regularitalic/gi,"italic").split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ")}function qA(i){let t=[];i.scene.objects.traverse((e,r)=>{let o=r;if(o.type==="TextFrame"){let n=Ut.defaultTwoLayerData("phong"),a=typeof o.color=="string"?i.shared.colors[o.color]:o.color;n.layers[1].data.color={r:a.r,g:a.g,b:a.b},n.layers[1].data.alpha=o.alpha;let s=WA(o.font);i.shared.fonts[s]===void 0&&(i.shared.fonts[s]={name:s});let l={name:o.name,..._t.defaultData,...ti.defaultData,flatShading:!1,wireframe:!1,geometry:{...Eo.defaultData("TextGeometry"),width:o.width,height:o.height,font:s,depth:0,horizontalAlign:o.horizontalAlign,verticalAlign:o.verticalAlign,fontSize:o.fontSize*1.40625,lineHeight:o.lineHeight/1.40625,letterSpacing:o.letterSpacing-1,text:o.text,textTransform:o.textTransform,extrudeBevelSize:0,extrudeBevelSegments:1},material:n,states:vt(o.states),events:vt(o.events),visible:o.visible,raycastLock:o.raycastLock,position:o.position,rotation:o.rotation,scale:o.scale,hiddenMatrix:o.hiddenMatrix},c=vt(i.scene.objects).parent(e);i.scene.objects.insertAfter(c??null,e,[{id:e+"new",data:l,children:[]}]),t.push(e)}}),t.forEach(e=>{i.scene.objects.delete(e)})}function $A(i){let t={0:"MouseDown",1:"MouseUp",2:"MouseHover",5:"KeyDown",6:"KeyUp",7:"Start",9:"LookAt",10:"Follow",11:"Scroll",12:"Audio",13:"GameControl"};i.scene.objects.traverse((e,r)=>{r.events.forEach(o=>{if(!!t[Number(o.type)])if(Object.assign(o,{type:t[Number(o.type)]}),o.type==="Audio"&&"audioEvent"in o&&(Object.assign(o,{playAudio:o.audioEvent}),delete o.audioEvent),o.type==="GameControl")Object.assign(o,{gameActions:{idle:new Se,move:new Se,jump:new Se}});else{let n=new Se;Object.assign(o,{actions:n}),(o.type==="MouseDown"||o.type==="MouseUp"||o.type==="KeyDown"||o.type==="KeyUp")&&"url"in o&&n.push({fi:0,id:yl.MathUtils.generateUUID(),data:{type:"Link",url:o.url,delay:0}}),"targets"in o&&(o.targets.forEach((a,s,l)=>{let c={state:void 0,repeat:0,delay:0,delayDirection:void 0,direction:"normal",duration:0,easing:4},u={easing:a.easing,duration:a.duration};a.easing===6?Object.assign(u,oo(a,"mass","stiffness","damping","velocity")):a.easing===5&&Object.assign(u,{control1:{...a.control1},control2:{...a.control2}});let d={repeat:a.repeat?-1:0,delay:a.delay,delayDirection:a.delayDirection,direction:a.cycle&&a.rewind?"pingpong-rewind":a.cycle?"pingpong":"normal"},p={state:a.state,...d,...u},f={allowSlerp:!0,type:"Transition",object:a.object,repeat:0,delay:0,delayDirection:void 0,direction:"normal",tweens:new Se({fi:0,id:yl.MathUtils.generateUUID(),data:c},{fi:1,id:yl.MathUtils.generateUUID(),data:p})};n.push({fi:l,id:s,data:f})}),delete o.targets)}})})}function XA(i){i.scene.objects.traverse((t,e)=>{function r(o,n){let a=new Se,s=[];if(e.events.forEach((l,c,u)=>{if(l.type==="Audio"&&l.trigger===n){let d;s.push(c),l.interaction==="play"?d={...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")&&(d={...oo(l,"interaction","delay","object","playAudio"),type:"Audio"}),d&&a.push({fi:u,id:c,data:d})}}),s.forEach(l=>e.events.delete(l)),a.length){let l=e.events.find(c=>c.type===o)?.data;l?"actions"in l&&l.actions.insertBefore(null,a):e.events.insertBefore(null,[{id:yl.MathUtils.generateUUID(),data:{type:o,actions:a}}])}}r("Start","start"),r("MouseDown","mouseDown"),r("MouseUp","mouseUp"),r("KeyDown","keyDown"),r("KeyUp","keyUp")})}function z0(i){let t=i.layers.find(e=>e.type==="light")?.data;if(t?.category==="basic"){let e=Vt.defaultData("light","phong"),r=t;Object.assign(r,e),r.visible=!1}}function G0(i){ni(i,z0),ai(i,z0)}function YA(i){i.scene.objects.traverse((t,e)=>{e.type==="Mesh"&&e.geometry.type==="SubdivGeometry"&&(e.geometry.scaleBaked||(e.geometry.scaleBaked=[1,1,1]))})}function KA(i){i.scene.objects.traverse((t,e)=>{(e.type==="Empty"||e.type==="Mesh")&&e.cloner&&!e.cloner.randomnessObject&&!e.cloner.toObject&&!e.cloner.randomness&&(e.cloner={...e.cloner,toObject:{object:"",spreadType:"random",scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],axis:"x",seed:0,count:99,align:"normal"},randomness:!1,randomnessObject:{strength:100,scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],movement:1,seed:0,freqScale:10,noiseType:"perlin"}})})}function QA(i){i.scene.objects.traverse((t,e)=>{e.type==="Mesh"&&e.geometry.type==="NonParametricGeometry"&&!("material"in e)&&!("materials"in e)&&(e.material=Ut.defaultTwoLayerData("phong"))})}function ZA(i){i.scene.publish.orbitControls.autoZoom===void 0&&(i.scene.publish.orbitControls.autoZoom=!1),i.scene.objects.traverse((t,e)=>{(e.type==="OrthographicCamera"||e.type==="PerspectiveCamera")&&(e.orthographic.autoZoom===void 0&&(e.orthographic.autoZoom=!1),e.orthographic.autoZoomFrustumSize===void 0&&(e.orthographic.autoZoomFrustumSize=790))})}function JA(i){i.scene.objects.traverse((t,e)=>{e.pathSnapping===void 0&&(e.pathSnapping={pathId:null,slide:0,offset:0,orientation:"tangential"}),e.pathSnapping.offset===void 0&&(e.pathSnapping.offset=0)})}function eM(i){i.scene.publish.mouseEventTarget===void 0&&(i.scene.publish.mouseEventTarget="canvas"),i.scene.publish.settings.web.hint===void 0&&(i.scene.publish.settings.web.hint=!1)}function tM(i){let{video:t}=i.scene.publish.settings;t.format==="gif"&&t.fps>48&&(t.fps=15)}function rM(i){i.scene.objects.traverse((t,e)=>{e.events.forEach(r=>{r.type==="GameControl"&&(r.resetYPosition=Math.abs(r.resetYPosition-e.position[1]))})})}function oM(i){let t=i.scene.environment.usePhysics;i.scene.objects.traverse((e,r)=>{t&&r.physics===null?r.collision=!1:r.collision="visibility"})}function iM(i){i.scene.objects.traverse((t,e)=>{e.events.forEach(r=>{r.type==="GameControl"&&(r.navmesh=Iu.defaultDataThirdPerson.navmesh)})})}function nM(i){i.scene.styles||(i.scene.styles=oi.defaultData())}function F0(i){i.layers.forEach(t=>{t.type==="light"&&t.category!=="toon"&&t.occlusion===void 0&&(t.occlusion=!0)})}function aM(i){i.scene.environment.ambientLight.occlusion===void 0&&(i.scene.environment.ambientLight.occlusion=!1),i.scene.environment.ambientLight.aoFullRes===void 0&&(i.scene.environment.ambientLight.aoFullRes=!1),i.scene.environment.ambientLight.radius===void 0&&(i.scene.environment.ambientLight.radius=256),i.scene.environment.ambientLight.bias===void 0&&(i.scene.environment.ambientLight.bias=.5),i.scene.environment.ambientLight.aoColor===void 0&&(i.scene.environment.ambientLight.aoColor={r:.19607843137254902,g:.19607843137254902,b:.19607843137254902}),ai(i,F0),ni(i,F0)}function sM(i){i.scene.objects.traverse((t,e)=>{e.events.forEach(r=>{r.type==="GameControl"&&Object.assign(r.gameActions,{run:new Se})})})}function lM(i){i.scene.objects.traverse((t,e)=>{e.events.forEach(r=>{r.type==="GameControl"&&(r.keyAssignments=[...r.keyAssignments,["run","\u21E7"],["none","Ctrl"]])})})}function j0(i){i.layers&&i.layers.forEach(t=>{t.type==="light"&&t.bumpMapIntensity===void 0&&(t.bumpMapIntensity=5)})}function U0(i,t){if(t<1&&(ai(i,_0),ni(i,_0),i.schema=1),t<2&&(AA(i),i.schema=2),t<3&&(IA(i),i.schema=3),t<4&&(EA(i),i.schema=4),t<5&&(NA(i),i.schema=5),t<6&&(DA(i),i.schema=6),t<7&&(_A(i),i.schema=7),t<8&&(i.schema=8),t<9&&(L0(i),i.schema=9),t<10&&(VA(i),i.schema=10),t<11&&(zA(i),i.schema=11),t<12&&(L0(i),i.schema=12),t<13&&(GA(i),i.schema=13),t<14&&(jA(i),i.schema=14),t<15&&(UA(i),i.schema=15),t<16&&(kA(i),i.schema=16),t<17&&(ai(i,B0),ni(i,B0),i.schema=17),t<18&&(ai(i,R0),ni(i,R0),i.schema=18),t<19&&(MA(i),i.schema=19),t<20&&(HA(i),qA(i),i.schema=20),t<21&&($A(i),XA(i),i.schema=21),t<22&&(G0(i),i.schema=22),t<23&&(YA(i),i.schema=23),t<24&&(KA(i),i.schema=24),(t<25||i.shared.videos===void 0)&&(FA(i),t<25&&(i.schema=25)),t<26&&(RA(i),i.schema=26),t<27&&(LA(i),i.schema=27),t<28&&(G0(i),i.schema=28),t<29&&(BA(i),i.schema=29),t<30&&(QA(i),i.schema=30),t<31&&(ZA(i),i.schema=31),t<33&&(JA(i),i.schema=33),t<34&&(eM(i),i.schema=34),t<35&&(tM(i),i.schema=35),t<36&&(rM(i),i.schema=36),t<37&&(oM(i),i.schema=37),t<38&&(ai(i,V0),ni(i,V0),i.schema=38),t<39&&(iM(i),i.schema=39),t<40&&(nM(i),i.schema=40),t<41&&(aM(i),i.schema=41),t<42&&(sM(i),i.schema=42),t<43&&(lM(i),i.schema=43),t<99){ai(i,j0),ni(i,j0),i.scene.publish.playCamera===null&&(i.scene.publish.playCamera=Ri);let e=vt(i.scene.objects),r=i.scene.objects;i.scene.publish.playPage=Li,r.insertBefore(null,null,[{id:Li,data:{...ri.defaultData,backgroundColor:i.scene.backgroundColor,fog:i.scene.fog,postprocessing:i.scene.postprocessing,ao:oo(i.scene.environment.ambientLight,"occlusion","aoFullRes","radius","bias","aoColor"),publish:{playCamera:i.scene.publish.playCamera,gameControlObject:i.scene.publish.gameControlObject},shadow:oo(i.scene.environment.ambientLight,"softShadowQuality"),globalPhysics:{...ml.defaultData,...oo(i.scene.environment,"usePhysics","gravity")},camera:vt(i.scene.ownerCamera)??ri.defaultData.camera,name:"Scene"},children:[]}]);for(let a of e)a.id!==ii.TRASH_CAN_ID&&r.move(Li,a.fi,a.id);let o=0,n=0;i.shared.penumbraSize&&i.scene.objects.traverse((a,s)=>{s.type==="DirectionalLight"?(s.penumbraSize=i.shared.penumbraSize[Math.min(o,2)],o+=1):s.type==="SpotLight"&&(s.penumbraSize=i.shared.penumbraSize[3+Math.min(n,1)],n+=1),(s.physics===void 0||s.physics===null)&&s.type!=="Instance"&&(s.physics={},Object.assign(s.physics,Vi.defaultData)),s.physics!==void 0&&s.physics!==null&&(s.physics.enabled=s.collision??"visibility",delete s.collision)}),i.schema=99}}function k0(i){i.layers&&i.layers.forEach(t=>{t.type==="light"&&t.alphaOverride===void 0&&(t.alphaOverride=1)})}function cM(i){i.scene.objects.traverse((t,e)=>{let r=e.geometry;r&&r.type==="PathGeometry"&&(r.extrusion.capType="flat",r.extrusion.bevel=50,r.extrusion.bevelSides=6,r.extrusion.shape.type==="Custom"&&(r.extrusion.shape.shapeQuality="low"))})}function uM(i){Array.isArray(vt(i.events))&&i.events?.forEach(t=>{"disabled"in t||(t.disabled=!1),(t.type==="MouseDown"||t.type==="MouseUp"||t.type==="MousePress")&&(t.mode=t.mode||"Object")})}var Ba=180/Math.PI;function H0(i){i.rotation=i.rotation.slice(0,3).map(t=>t*Ba)}function W0(i){H0(i),i.type==="Page"&&H0(i.camera),i.states?.forEach(e=>{e.rotation===void 0||e.rotation===null||(e.rotation=e.rotation.slice(0,3).map(r=>r*Ba))});let t=i.geometry;t&&t.type==="SphereGeometry"&&(t.thetaLength=(t.thetaLength??180)*Ba),t&&t.type==="TorusGeometry"&&(t.arc=t.arc*Ba),t&&t.type==="PathGeometry"&&(t.extrusion.angle*=Ba,t.extrusion.twist*=Ba),i.type==="Mesh"&&i.geometry.type==="TextGeometry"&&(i.geometry.text={textValue:i.geometry.text}),Array.isArray(vt(i.events))&&i.events?.forEach(e=>{(e.type==="MouseDown"||e.type==="MouseUp"||e.type==="MousePress"||e.type==="KeyDown"||e.type==="KeyUp"||e.type==="KeyPress"||e.type==="Collision"||e.type==="Trigger")&&(e.runMode=e.toggle?"Toggle":"Repeat")})}function dM(i){i.shared.variables=Ft({},de.prototype)}function pM(i){let t=vt(i.shared.variables);i.shared.variables=Ft(Object.entries(t??{}).map(([e,r],o)=>({fi:o,id:e,data:r})),Se.prototype)}var Do=118;function nf(i,t){t(i.data);for(let e of i.children)nf(e,t)}function fM(i){let t=i.schema??104;t!==Do&&(t<105&&(nf(i.asset,W0),i.schema=105),t<118&&(nf(i.asset,q0),i.schema=118))}function hM(i){i.shared.particles=Ft({},de.prototype),i.shared.lib&&(i.shared.lib.particles=no.defaultData().particles)}function mM(i){i.scene.objects.traverse((t,e)=>{e.type==="Particle"&&typeof e.renderMaterial.size=="number"&&Object.assign(e.renderMaterial,{size:[e.renderMaterial.size,e.renderMaterial.size]})})}function yM(i){i.scene.objects.traverse((t,e)=>{e.type==="Page"&&(e.postprocessing.depthOfField.focusDistance=100,e.postprocessing.depthOfField.focalLength=20,e.postprocessing.depthOfField.bokehScale=5)})}function gM(i){i.scene.objects.traverse((t,e)=>{Array.isArray(vt(e.events))!==!1&&e.events?.forEach(r=>{let o=r.runMode;r.type==="MouseDown"||r.type==="MouseUp"||r.type==="KeyDown"||r.type==="KeyUp"||r.type==="Collision"||r.type==="Trigger"?r.actions?.forEach(n=>{n.type==="Transition"&&(n.runMode=o??"Repeat"),(n.type==="Animation"||n.type==="SwitchCamera")&&(n.runMode=o==="Toggle"?"Toggle":"Normal")}):r.type==="MouseHover"||r.type==="MousePress"||r.type==="KeyPress"?r.actions?.forEach(n=>{(n.type==="Transition"||n.type==="Animation"||n.type==="SwitchCamera")&&(n.runMode="Toggle")}):r.type==="GameControl"?(delete r.actions,Object.keys(r.gameActions).forEach(a=>{r.gameActions[a]?.forEach(s=>{s.type==="Transition"&&(s.runMode="Repeat"),s.type==="Animation"&&(s.runMode="Normal")})})):r.type==="DragDrop"?(delete r.actions,r.dragDropActions?.drag?.forEach(n=>{(n.type==="Transition"||n.type==="Animation"||n.type==="SwitchCamera")&&(n.runMode="Toggle")}),r.dragDropActions?.drop?.forEach(n=>{(n.type==="Transition"||n.type==="Animation"||n.type==="SwitchCamera")&&(n.runMode="Toggle")})):r.type==="Resize"?(delete r.actions,r.breakpoints?.forEach(n=>{n.actions?.forEach(a=>{(a.type==="Transition"||a.type==="Animation"||a.type==="SwitchCamera")&&(a.runMode="Toggle")})})):r.type==="Start"?r.actions?.forEach(n=>{n.type==="Transition"&&(n.runMode="Once"),(n.type==="Animation"||n.type==="SwitchCamera")&&(n.runMode="Normal")}):r.type==="VariableChange"||r.type==="Scroll"?r.actions?.forEach(n=>{n.type==="Transition"&&(n.runMode="Repeat"),(n.type==="Animation"||n.type==="SwitchCamera")&&(n.runMode="Normal")}):r.type==="Conditional"&&(delete r.actions,r.inActions?.forEach(n=>{n.type==="Transition"&&(n.runMode="Repeat"),(n.type==="Animation"||n.type==="SwitchCamera")&&(n.runMode="Normal")}),r.outActions?.forEach(n=>{n.type==="Transition"&&(n.runMode="Repeat"),(n.type==="Animation"||n.type==="SwitchCamera")&&(n.runMode="Normal")}))})})}function xM(i){i.shared.userAPIs=Ft({},de.prototype),i.shared.userWebhooks=Ft({},de.prototype),i.shared.lib&&(i.shared.lib.userAPIs=no.defaultData().userAPIs,i.shared.lib.userWebhooks=no.defaultData().userWebhooks)}function bM(i){i.scene.publish.settings.videoStatic===void 0&&(i.scene.publish.settings.videoStatic=kr.defaultData.settings.videoStatic)}function q0(i){i.timelineAnimations=Ft({},de.prototype)}function Eu(i){let t=i.schema??0;if(t!==Do){console.warn("updating from ",t,"to ",Do),U0(i,t),t<100&&(i.scene.publish.joystickSizeAndXYOffset===void 0&&(i.scene.publish.joystickSizeAndXYOffset=kr.defaultData.joystickSizeAndXYOffset),i.schema=100),t<101&&(ai(i,k0),ni(i,k0),i.schema=101),t<102&&(cM(i),i.schema=102),t<104&&(i.shared.catelogs=new de,i.shared.lib=no.defaultData(),i.schema=104),t<105&&(dM(i),i.scene.objects.traverse((e,r)=>{W0(r)}),i.schema=105);for(let e of Object.values(i.shared.lib.components))fM(e);t<106&&(pM(i),i.schema=106),t<107&&(i.shared.lib.variables=no.defaultData().variables,i.schema=107),t<109&&(hM(i),i.schema=109),t<110&&(mM(i),i.schema=110),t<111&&(i.scene.objects.traverse((e,r)=>{uM(r)}),i.schema=111),t<112&&(yM(i),i.schema=112),t<113&&(gM(i),i.schema=113),t<114&&(i.scene.publish.settings.web.imageQuality===void 0&&(i.scene.publish.settings.web.imageQuality=70),i.schema=114),t<115&&(xM(i),i.schema=115),t<116&&(bM(i),i.schema=116),t<117&&(i.scene.publish.settings.web.pixelRatioMobile===void 0&&(i.scene.publish.settings.web.pixelRatioMobile=0),i.scene.publish.settings.web.pixelRatioDesktop===void 0&&(i.scene.publish.settings.web.pixelRatioDesktop=0),i.schema=117),t<118&&(i.shared.timelineAnimations=Ft({},de.prototype),i.scene.objects.traverse((e,r)=>{q0(r)}),i.schema=118)}}var Ra;(c=>{c.defaultData={schema:Do,scene:ii.defaultData,frames:new de().add("72fc2993-2da3-4b6b-96ac-2879db3a28bd",La.defaultData),shared:{...Hr.emptyData(),colors:Hr.defaultColors()}},c.emptyDataForImports=function(){let u=ii.emptyDataWithPage();return{schema:Do,scene:u,frames:new de().add("72fc2993-2da3-4b6b-96ac-2879db3a28bd",La.defaultData),shared:{...Hr.emptyData(),colors:Hr.defaultColors(),images:Hr.defaultImages()}}},c.emptyData=function(){return{schema:Do,scene:ii.emptyDataWithPage(),frames:new de().add("72fc2993-2da3-4b6b-96ac-2879db3a28bd",La.defaultData),shared:Hr.emptyData()}},c.clipboard2dData=function(){return{schema:Do,scene:ii.emptyData(),frames:new de,shared:Hr.emptyData()}},c.collabHelper={...cl,updateSchema(u){return(u.schema??0)<Do?Mi(u,Eu):(u.schema??0)-Do}};function n(u){let d=c.collabHelper.updateSchema(u);return typeof d=="number"?d===0?u:null:d.data}c.updateSchemaDirectly=n;function a(u){return{...u,shared:{...u.shared,lib:no.defaultData()}}}c.withoutLib=a;function s(u,d){let p=u.scene.objects.get(d);if(p&&p.data.type==="Component")return p;{let f=u.shared.lib.components[d];if(f)return f.asset}}c.getComponentData=s;function l(u){let d=Object.values(u.shared.userAPIs);for(let p of d){let f=p.headers;for(let h of f)if(h.data.key.toLowerCase()==="authorization"&&h.data.value!=="")return!0}return!1}c.hasSensitiveData=l})(Ra||(Ra={}));var Nu;(t=>t.emptyImage={data:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII=",name:"empty"})(Nu||(Nu={}));var $0;(t=>{function i(e){return!0}t.is=i})($0||($0={}));var Du;(r=>{r.defaultData={position:[0,0],scale:[1,1],rotation:0,shear:[0,0]};function t(o,n){return{position:n?.position??o.position,rotation:n?.rotation??o.rotation,scale:n?.scale??o.scale,shear:n?.shear??o.shear}}r.merge=t;function e(o,n){return vc({position:Ca.isEqual(o.position,n.position)?void 0:n.position,rotation:o.rotation===n.rotation?void 0:n.rotation,scale:Ca.isEqual(o.scale,n.scale)?void 0:n.scale,shear:o.shear&&n.shear&&Ca.isEqual(o.shear,n.shear)?void 0:n.shear})}r.diff=e})(Du||(Du={}));var af;(t=>t.defaultData={horizontalConstraint:0,verticalConstraint:0})(af||(af={}));var X0;(t=>t.defaultData={direction:"row",wrap:"unwrap",align:"top-left",gap:10,rowGap:10,autoGap:!1,autoRowGap:!1,leftPadding:8,rightPadding:8,topPadding:8,bottomPadding:8})(X0||(X0={}));var _u;(t=>t.defaultData={opacity:1,fill:{color:Re.fromHexAndA(Dt,1),enabled:!0},stroke:{color:Re.from0to1([0,0,0,1]),thickness:1,enabled:!1,mode:"inside"},layerBlur:{radius:2,enabled:!1},backgroundBlur:{radius:2,enabled:!1},dropShadow:{offset:[10,10],blurRadius:10,color:Re.from0to1([0,0,0,1]),enabled:!1,spread:0},innerShadow:{offset:[10,10],blurRadius:10,color:Re.from0to1([0,0,0,1]),enabled:!1,spread:0}})(_u||(_u={}));var Cn;(n=>{function i(a,s){return{name:s}}n.newEmpty=i;function t(a,s){if(s===void 0)return a;let l={...a},c=["width","height","cornerRadius"];for(let u of c)u in l&&u in s&&s[u]!==void 0&&Object.assign(l,{[u]:s[u]});return l}function e(a,s){if(s===void 0)return a;let l={...a};return"fill"in l&&"fill"in s&&s.fill!==void 0&&Object.assign(l,{fill:{...l.fill,...s.fill}}),"stroke"in l&&"stroke"in s&&s.stroke!==void 0&&Object.assign(l,{stroke:{...l.stroke,...s.stroke}}),"layerBlur"in l&&"layerBlur"in s&&s.layerBlur!==void 0&&Object.assign(l,{layerBlur:{...l.layerBlur,...s.layerBlur}}),"backgroundBlur"in l&&"backgroundBlur"in s&&s.backgroundBlur!==void 0&&Object.assign(l,{backgroundBlur:{...l.backgroundBlur,...s.backgroundBlur}}),"dropShadow"in l&&"dropShadow"in s&&s.dropShadow!==void 0&&Object.assign(l,{dropShadow:{...l.dropShadow,...s.dropShadow}}),"innerShadow"in l&&"innerShadow"in s&&s.innerShadow!==void 0&&Object.assign(l,{innerShadow:{...l.innerShadow,...s.innerShadow}}),l}function r(a,s){if(s===void 0)return a;let l={...a};return Object.assign(l,Du.merge(l,s)),l=t(l,s),l=e(l,s),l}n.patch=r;function o(a,s){let l,c=[];for(let[u,d]of Object.entries(s))u!=="name"&&(l===void 0&&(l={path:[],props:{},type:0},c.push(l)),l.props[u]=d);return c}n.toOps=o})(Cn||(Cn={}));var gl;(t=>t.defaultData={...Du.defaultData,...af.defaultData,states:new Se,events:new Se,visible:!0,raycastLock:!1})(gl||(gl={}));var Va;(t=>t.defaultData={...gl.defaultData,..._u.defaultData})(Va||(Va={}));var Ru;(t=>t.defaultData={cornerRadius:[0,0,0,0]})(Ru||(Ru={}));var sf;(t=>t.defaultData={...Va.defaultData,type:"ellipse2d",width:100,height:100,name:"Ellipse"})(sf||(sf={}));var za;(t=>t.defaultData={...Va.defaultData,...Ru.defaultData,type:"rectangle2d",width:100,height:100,name:"Rectangle"})(za||(za={}));var lf;(t=>t.defaultData={...Va.defaultData,type:"text2d",width:100,height:100,fontSize:12,lineHeight:1.2,letterSpacing:0,text:{textValue:"Hello world"},horizontalAlign:1,verticalAlign:1,textTransform:1,font:"Roboto_regular",name:"Text"})(lf||(lf={}));var cf;(t=>t.defaultData={...Va.defaultData,type:"path2d",path:"",name:"Path"})(cf||(cf={}));var Y0;(t=>{function i(e){return e.type==="ellipse2d"||e.type==="rectangle2d"||e.type==="text2d"||e.type==="vector2d"||e.type==="path2d"}t.is=i})(Y0||(Y0={}));var xl;(t=>t.defaultData={...gl.defaultData,name:"Group",type:"group2d"})(xl||(xl={}));var uf;(t=>t.defaultData=()=>({...gl.defaultData,...Ru.defaultData,..._u.defaultData,name:"Frame",type:"frame2d",clipped:!0,width:200,height:200,fill:{color:Re.fromHexAndA(4737101,1),enabled:!0},stroke:{color:Re.fromHexAndA(0,1),thickness:1,enabled:!1,mode:"inside"},backgroundBlur:{radius:2,enabled:!1},layerBlur:{radius:2,enabled:!1}}))(uf||(uf={}));var si;(n=>{function i(a){switch(a){case"rectangle2d":return{...za.defaultData};case"ellipse2d":return{...sf.defaultData};case"text2d":return{...lf.defaultData};case"vector2d":return{...za.defaultData};case"path2d":return{...cf.defaultData};case"frame2d":return{...uf.defaultData()};case"group2d":return{...xl.defaultData}}}n.defaultData=i;function t(a){return"width"in a&&"height"in a?[typeof a.width=="number"?a.width*.5:0,typeof a.height=="number"?a.height*.5:0]:[0,0]}n.getPivot=t;function e(a){return a.type==="rectangle2d"||a.type==="ellipse2d"||a.type==="text2d"||a.type==="frame2d"}n.isResizeable=e;function r(a){return a.type==="frame2d"&&a.autoLayout!==void 0}n.isAutoLayoutable=r;function o(a){return a.type==="rectangle2d"||a.type==="frame2d"}n.hasCorners=o})(si||(si={}));var Lu;(e=>(e.defaultData={name:"UI",type:"scene2d",objects:new ct},e.emptyData=function(){return{type:"scene2d",objects:new ct}}))(Lu||(Lu={}));var K0=require("three"),kt=class extends K0.Color{constructor(e,r,o,n){super(e,r,o);this.isColorA=!0;this.a=n}setRGBA(e,r,o,n){super.setRGB(e,r,o),this.a=n}copy(e){return super.copy(e),this.a="a"in e?e.a:1,this}clone(){return new this.constructor(this.r,this.g,this.b,this.a)}equals(e){return super.equals(e)&&this.a===e.a}setStyle(e,r="srgb"){let o;if(e==="transparent")return this.setRGBA(0,0,0,0),this;if(o=/^((?:rgb|hsl)a?)\(([^)]*)\)/.exec(e)){let n,a=o[1],s=o[2];switch(a){case"rgb":case"rgba":if(n=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(s))return this.a=a==="rgba"?parseFloat(n[4]):1,super.setStyle(e,r);break;case"hsl":case"hsla":if(n=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)%\s*,\s*(\d*\.?\d+)%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(s))return this.a=a==="hsla"?parseFloat(n[4]):1,super.setStyle(e,r);break}}return super.setStyle(e,r)}get x(){return this.r}get y(){return this.g}get z(){return this.b}get w(){return this.a}set x(e){this.r=e}set y(e){this.g=e}set z(e){this.b=e}set w(e){this.a=e}};var tt=require("three"),Ed=rl(Z0());var vM=.5*(Math.sqrt(3)-1),bl=(3-Math.sqrt(3))/6,SM=1/3,_o=1/6,i4=(Math.sqrt(5)-1)/4,n4=(5-Math.sqrt(5))/20,vl=i=>Math.floor(i)|0,J0=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]),pf=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 ex(i=Math.random){let t=rx(i),e=new Float64Array(t).map(o=>J0[o%12*2]),r=new Float64Array(t).map(o=>J0[o%12*2+1]);return function(n,a){let s=0,l=0,c=0,u=(n+a)*vM,d=vl(n+u),p=vl(a+u),f=(d+p)*bl,h=d-f,m=p-f,y=n-h,x=a-m,v,w;y>x?(v=1,w=0):(v=0,w=1);let O=y-v+bl,S=x-w+bl,T=y-1+2*bl,M=x-1+2*bl,g=d&255,D=p&255,E=.5-y*y-x*x;if(E>=0){let _=g+t[D],R=e[_],V=r[_];E*=E,s=E*E*(R*y+V*x)}let I=.5-O*O-S*S;if(I>=0){let _=g+v+t[D+w],R=e[_],V=r[_];I*=I,l=I*I*(R*O+V*S)}let N=.5-T*T-M*M;if(N>=0){let _=g+1+t[D+1],R=e[_],V=r[_];N*=N,c=N*N*(R*T+V*M)}return 70*(s+l+c)}}function tx(i=Math.random){let t=rx(i),e=new Float64Array(t).map(n=>pf[n%12*3]),r=new Float64Array(t).map(n=>pf[n%12*3+1]),o=new Float64Array(t).map(n=>pf[n%12*3+2]);return function(a,s,l){let c,u,d,p,f=(a+s+l)*SM,h=vl(a+f),m=vl(s+f),y=vl(l+f),x=(h+m+y)*_o,v=h-x,w=m-x,O=y-x,S=a-v,T=s-w,M=l-O,g,D,E,I,N,_;S>=T?T>=M?(g=1,D=0,E=0,I=1,N=1,_=0):S>=M?(g=1,D=0,E=0,I=1,N=0,_=1):(g=0,D=0,E=1,I=1,N=0,_=1):T<M?(g=0,D=0,E=1,I=0,N=1,_=1):S<M?(g=0,D=1,E=0,I=0,N=1,_=1):(g=0,D=1,E=0,I=1,N=1,_=0);let R=S-g+_o,V=T-D+_o,U=M-E+_o,B=S-I+2*_o,q=T-N+2*_o,j=M-_+2*_o,F=S-1+3*_o,H=T-1+3*_o,W=M-1+3*_o,ee=h&255,te=m&255,Y=y&255,re=.6-S*S-T*T-M*M;if(re<0)c=0;else{let $=ee+t[te+t[Y]];re*=re,c=re*re*(e[$]*S+r[$]*T+o[$]*M)}let K=.6-R*R-V*V-U*U;if(K<0)u=0;else{let $=ee+g+t[te+D+t[Y+E]];K*=K,u=K*K*(e[$]*R+r[$]*V+o[$]*U)}let Z=.6-B*B-q*q-j*j;if(Z<0)d=0;else{let $=ee+I+t[te+N+t[Y+_]];Z*=Z,d=Z*Z*(e[$]*B+r[$]*q+o[$]*j)}let Q=.6-F*F-H*H-W*W;if(Q<0)p=0;else{let $=ee+1+t[te+1+t[Y+1]];Q*=Q,p=Q*Q*(e[$]*F+r[$]*H+o[$]*W)}return 32*(c+u+d+p)}}function rx(i){let e=new Uint8Array(512);for(let r=0;r<512/2;r++)e[r]=r;for(let r=0;r<512/2-1;r++){let o=r+~~(i()*(256-r)),n=e[r];e[r]=e[o],e[o]=n}for(let r=256;r<512;r++)e[r]=e[r-256];return e}var ox=require("three"),ao=new ox.Triangle,Bu=class{constructor(t){this.weightAttribute=null;let e=t.geometry;if(!e.isBufferGeometry||e.attributes.position.itemSize!==3)throw new Error("THREE.MeshSurfaceSampler: Requires BufferGeometry triangle mesh.");e.index&&(e=e.toNonIndexed()),this.geometry=e,this.randomFunction=Math.random,this.positionAttribute=this.geometry.getAttribute("position"),this.distribution=null}build(){let t=this.positionAttribute,e=new Float32Array(t.count/3);for(let o=0;o<t.count;o+=3){let n=1;ao.a.fromBufferAttribute(t,o),ao.b.fromBufferAttribute(t,o+1),ao.c.fromBufferAttribute(t,o+2),n*=ao.getArea(),e[o/3]=n}this.distribution=new Float32Array(t.count/3);let r=0;for(let o=0;o<e.length;o++)r+=e[o],this.distribution[o]=r;return this}setRandomGenerator(t){return this.randomFunction=t,this}sample(t,e){if(this.distribution){let r=this.distribution[this.distribution.length-1],o=this.binarySearch(this.randomFunction()*r);return this.sampleFace(o,t,e)}}binarySearch(t){if(!this.distribution)return 0;let e=this.distribution,r=0,o=e.length-1,n=-1;for(;r<=o;){let a=Math.ceil((r+o)/2);if(a===0||e[a-1]<=t&&e[a]>t){n=a;break}else t<e[a]?o=a-1:r=a+1}return n}sampleFace(t,e,r){let o=this.randomFunction(),n=this.randomFunction();return o+n>1&&(o=1-o,n=1-n),ao.a.fromBufferAttribute(this.positionAttribute,t*3),ao.b.fromBufferAttribute(this.positionAttribute,t*3+1),ao.c.fromBufferAttribute(this.positionAttribute,t*3+2),e.set(0,0,0).addScaledVector(ao.a,o).addScaledVector(ao.b,n).addScaledVector(ao.c,1-(o+n)),ao.getNormal(r),this}};var sx=require("three");var Rr=require("three"),ax=rl(nx()),wM=new Rr.Matrix4,PM=new Rr.Matrix4,OM=new Rr.Matrix4,li;(t=>{function i(e){return e&&e.__isSPEObject}t.is=i})(li||(li={}));var Ga=i=>class extends i{constructor(){super(...arguments);this.previousModelViewMatrix=new Rr.Matrix4;this.copyPreviousMatrix=!0;this.hiddenMatrix=new Rr.Matrix4;this.matrixWorldRigid=new Rr.Matrix4;this.shearScale=new Rr.Matrix4;this.shearScaleInv=new Rr.Matrix4}get __isSPEObject(){return!0}isDescendantOf(r){r instanceof Rr.Object3D&&(r=r.uuid);let o=this;for(;o.parent;){if(o.parent.uuid===r)return!0;o=o.parent}return!1}updateMatrixWorld(r){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||r)&&(this.parent===null?this.matrixWorld.multiplyMatrices(this.hiddenMatrix,this.matrix):(this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.hiddenMatrix),this.matrixWorld.multiplyMatrices(this.matrixWorld,this.matrix)),this.matrixWorldNeedsUpdate=!1,r=!0);for(let o of this.children)o.updateMatrixWorld(r)}updateWorldMatrix(r,o){let n=this.parent;if(r&&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)),o)for(let a of this.children)a.updateWorldMatrix(!1,!0)}traverseChildren(r,o=0){for(let n of this.children)li.is(n)&&n.traverseObject(r,o+1)}traverseObject(r,o=0){if(r(this,o)!==!0)for(let a of this.children)li.is(a)&&a.traverseObject(r,o+1)}updateMatrixWorldSVD(){let r=this.matrixWorld.elements,o=[[r[0],r[4],r[8]],[r[1],r[5],r[9]],[r[2],r[6],r[10]]],{u:n,v:a,q:s}=(0,ax.SVD)(o),l=wM.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),c=PM.set(a[0][0],a[0][1],a[0][2],0,a[1][0],a[1][1],a[1][2],0,a[2][0],a[2][1],a[2][2],0,0,0,0,1),u=OM.copy(c).transpose();this.shearScale.makeScale(s[0],s[1],s[2]).multiply(u).premultiply(c),this.shearScaleInv.copy(this.shearScale).invert(),this.matrixWorldRigid.multiplyMatrices(l,u).copyPosition(this.matrixWorld),s.every(d=>Math.abs(s[0]-d)<.01)?this.hasNonUniformScale=!1:this.hasNonUniformScale=!0}attach(r,o){this.updateWorldMatrix(!0,!1);let n=new Rr.Matrix4().copy(this.matrixWorld).invert();return r.parent!==null&&(r.parent.updateWorldMatrix(!0,!1),n.multiply(r.parent.matrixWorld)),"hiddenMatrix"in r&&r.hiddenMatrix instanceof Rr.Matrix4?r.hiddenMatrix.premultiply(n):r.applyMatrix4(n),r.updateWorldMatrix(!1,!1),this.add(r),o!==void 0&&(this.children.pop(),this.children.splice(o,0,r)),this}copy(r,o=!1){return super.copy(r,o),this.hasNonUniformScale=r.hasNonUniformScale,this}onAfterRender(r,o,n,a,s,l){this.copyPreviousMatrix&&this.previousModelViewMatrix.copy(this.modelViewMatrix)}};var ff=class extends Ga(sx.Object3D){},TM=i=>i.type==="Mesh",so=class extends ff{constructor(e){super();this.object=e;this.matrixAutoUpdate=!1,this.hasNonUniformScale=e.hasNonUniformScale}raycast(e,r){}expand(){let e=0,r=this.object.entityChildren(e);for(;r;){let o=this.children[e];o?.object!==r&&(o&&this.remove(o),o=new so(r),this.add(o),this.children.splice(e,0,this.children.pop()),o.matrixWorldNeedsUpdate=!0,o.matrixAutoUpdate=!1,o.matrix=r.matrix,o.hiddenMatrix=r.hiddenMatrix),o.expand(),e+=1,r=this.object.entityChildren(e)}for(;this.children.length>e;)this.remove(this.children[e])}get visible(){return this.playModeVisible!==void 0?this.playModeVisible:this.object.visible||this.object.dataPatched.visible&&this.object.dataPatched.cloner?.hideBase===!0}set visible(e){}get castShadow(){return this.object.castShadow}set castShadow(e){}get receiveShadow(){return this.object.receiveShadow}set receiveShadow(e){}get isMesh(){return TM(this.object)}get isLight(){return this.object.isLight}get layers(){return this.object.layers}set layers(e){}get isCamera(){return!1}get geometry(){if(this.object.geometry)return this.object.geometry}get material(){if(this.object.material)return this.object.material}get morphTargetInfluences(){if(this.object.morphTargetInfluences)return this.object.morphTargetInfluences}set morphTargetInfluences(e){}};var ns=require("three");var od=require("three");var dr=require("three");var It=require("three"),An=new It.Vector3,Mn=new It.Vector3,Fa=new It.Matrix4,cx=[new It.Vector3(-1,1,1),new It.Vector3(-1,-1,1),new It.Vector3(1,-1,1),new It.Vector3(1,1,1),new It.Vector3(-1,1,-1),new It.Vector3(-1,-1,-1),new It.Vector3(1,-1,-1),new It.Vector3(1,1,-1)],CM=[[0,3],[1,2],[5,6],[4,7],[0,1],[3,2],[7,6],[4,5],[0,4],[1,5],[2,6],[3,7]],AM=[[0,2],[7,5],[4,1],[3,6],[4,3],[1,6]],lx=(i,t,e)=>{i.updateEntityBoxSize(An,Mn),Fa.copy(t).multiply(i.matrixWorld),Mn.x===0&&Mn.y===0&&Mn.z===0?e.push(new It.Vector3(An.x,An.y,An.z).applyMatrix4(Fa)):cx.forEach(r=>{e.push(r.clone().multiply(Mn).add(An).applyMatrix4(Fa))})},Sl=class extends It.Box3{constructor(){super(...arguments);this.matrix=new It.Matrix4;this.vertices=[];this.faces=[];this.edges=[];this.centerEdges=[]}copy(e){return super.copy(e),this.matrix.copy(e.matrix),this.vertices=e.vertices.map(r=>r.clone()),this.faces=e.faces.map(r=>r.clone()),this.edges=e.edges.map(r=>r.clone()),this.centerEdges=e.centerEdges.map(r=>r.clone()),this}setFromObjectSize(e,r=!1){e.updateWorldMatrix(!1,r),this.makeEmpty(),this.matrix.copy(e.matrixWorld);let o=new It.Matrix4().copy(e.matrixWorld).invert();return this.expandByObjectSize(e,o,r)}expandByObjectSize(e,r,o=!1){let n=[];return o===!0?e.traverseEntity(a=>{if(a.visible||a.cloner&&a.data.visible){if(!("geometry"in a)){n.push(new It.Vector3);return}lx(a,r,n)}}):lx(e,r,n),this.setFromPoints(n)}getCenter(e){return e=super.getCenter(e),e.applyMatrix4(this.matrix),e}getPositionToCenter(e){return e=super.getCenter(e),e.applyMatrix4(Fa.copy(this.matrix).setPosition(0,0,0)),e}computeVertices(){this.getSize(Mn).multiplyScalar(.5),this.getCenter(An),Fa.copy(this.matrix).setPosition(An),this.vertices=cx.map(e=>e.clone().multiply(Mn).applyMatrix4(Fa))}computeEdges(){this.vertices.length>0&&this.computeVertices(),this.edges=CM.map(([e,r])=>new It.Line3(this.vertices[e],this.vertices[r])),this.centerEdges=this.edges.map(e=>e.getCenter(new It.Vector3))}computeFaces(){this.vertices.length>0&&this.computeVertices(),this.faces=AM.map(([e,r])=>this.vertices[e].clone().add(this.vertices[r]).multiplyScalar(.5))}};var lo={Cloner:()=>{},changeEntityProptotype:()=>{},createEntity:()=>{}};var Qt=require("three"),mf=class extends Qt.CurvePath{constructor(){super()}getPoints(t=12){let e=[],r,o=this.getCurveLengths(),a=o[o.length-1]/o.length;for(let s=0,l=this.curves;s<l.length;s++){let c=l[s],u=s===0?o[s]:o[s]-o[s-1],d=Math.ceil(t*u/a),p=c.getPoints(d);for(let f=0;f<p.length;f++){let h=p[f];r&&r.equals(h)||(e.push(h),r=h)}}return this.autoClose&&e.length>1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}};var yf=.001;function gf(i,t,e){return t.clone().sub(i).cross(t.clone().sub(e)).length()<=yf}function hf(i,t){let e=new Qt.Vector3(...i.position),r=new Qt.Vector3(...i.controlNext.position),o=new Qt.Vector3(...t.controlPrevious.position),n=new Qt.Vector3(...t.position);return gf(e,r,n)&&gf(e,o,n)}function zu(i){let t=i.points.map(u=>new Qt.Vector3(...u.data.position)),e=[i.points[0]],r=new Qt.Vector3(...e[0].data.position);for(let u=0;u<i.points.length-1;u++)gf(r,t[u],t[u+1])||(e.push(i.points[u]),r=t[u]);e.push(i.points[i.points.length-1]);let o=i.isClosed,n=e.length-(o?0:1),a=e.length,s=[];for(let u=0;u<a;u++){let d=e[u].data,p=new Qt.Vector3(...d.position),f=new Qt.Vector3(...d.controlPrevious.position),h=new Qt.Vector3(...d.controlNext.position),m={position:p,baseRoundness:d.roundness,controlPrevious:f,controlNext:h};if(d.roundness===0||!i.isClosed&&(u===0||u===a-1)){s[u]={...m,removedLength:0};continue}let y=o&&u==0?a-1:u-1,x=o&&u==a-1?0:u+1,v=e[y].data,w=e[x].data,O=new Qt.Vector3(...v.position),S=new Qt.Vector3(...w.position),T=O.clone().sub(p).normalize(),M=S.clone().sub(p).normalize();Object.assign(m,{prevDir:T,nextDir:M});let g=hf(v,d),D=hf(d,w);if(!g||!D)s[u]={...m,removedLength:0};else{let E=T.clone().add(M).normalize(),I=E.clone().cross(T).length()/T.dot(E);s[u]={...m,tan:I,removedLength:d.roundness/I}}}for(let u=0;u<n;u++){let d=u,p=o&&u===a-1?0:u+1,f=s[d],h=s[p];if(f.removedLength!==0||h.removedLength!==0){let m=f.position.distanceTo(h.position);f.removedLength=Math.min(f.removedLength,m/2),h.removedLength=Math.min(h.removedLength,m/2)}}let l=[];for(let u=0;u<n;u++){let d=u,p=o&&u===a-1?0:u+1,f=s[d],h=s[p],m=null;if(!hf(e[d].data,e[p].data))f.position.distanceTo(h.position)>yf&&(m=new Qt.CubicBezierCurve3(f.position,f.controlNext,h.controlPrevious,h.position));else{let y=f.position.clone(),x=h.position.clone();(f.removedLength!==0||h.removedLength!==0)&&(f.nextDir&&y.add(f.nextDir.clone().setLength(f.removedLength)),h.prevDir&&x.add(h.prevDir.clone().setLength(h.removedLength))),y.distanceTo(x)>yf&&(m=new Qt.CubicBezierCurve3(y,y.clone().lerp(x,.3),x.clone().lerp(y,.3),x))}l[2*u+1]=m}for(let u=0;u<a;u++){let d=s[u];if(d.removedLength===0){l[2*u]=null;continue}let p=d.position,f=d.prevDir.clone().multiplyScalar(d.removedLength).add(p),h=d.nextDir.clone().multiplyScalar(d.removedLength).add(p),m=d.tan*d.removedLength,y=d.prevDir.clone().add(d.nextDir).normalize(),x=f.clone().lerp(h,.5),v=f.distanceTo(h)/2,w=y.clone().multiplyScalar(Math.sqrt(Math.pow(m,2)-Math.pow(v,2))).add(x),O=y.clone().multiplyScalar(-m).add(w),S=p.distanceTo(O)/p.distanceTo(x),T=d.prevDir.clone().multiplyScalar(S*p.distanceTo(f)).add(p),M=T.clone().lerp(O,2),g=f.clone().lerp(T,4/3),D=h.clone().lerp(M,4/3);l[2*u]=new Qt.CubicBezierCurve3(f,g,D,h)}let c=new mf;return l.forEach(u=>{u&&c.add(u)}),c}var ze;(t=>{function i(e){return e&&e.__isEntity}t.is=i})(ze||(ze={}));var ja=i=>ze.is(i),MM={type:"completeState",isfromEntity:!0},IM=["x","y","z"],xf=new dr.Vector3,EM=new dr.Vector3().set(0,1,0),Ua=i=>class extends Ga(i){constructor(){super(...arguments);this.raycastLock=!1;this.scaleLock=!1;this.disposed=!1;this.stateSelection=null;this.destroyedInAction=!1;this.instances=[];this.prevState=null;this.currentState=null;this.currentAnimationAction=null;this.reversibleToState=null;this.currentTransitionEvent=null;this.previousAction=null;this._singleBBox=new Sl;this._recursiveBBox=new Sl;this.singleBBoxNeedsUpdate=!0;this.recursiveBBoxNeedsUpdate=!0;this._needApplyPathSnapping=!0;this.attachedPaths=new Set}get __isEntity(){return!0}entityChildren(r){let o=this.children[r];if(ze.is(o))return o}entityChildrenCount(){let r=this.children.length;for(;r--;)if(ze.is(this.children[r]))return r+1;return 0}get isConcreteEntity(){return typeof this.identity=="string"}get isVirtualEntity(){return typeof this.identity!="string"}get isInstanceRoot(){return this.isConcreteEntity&&this.data.type==="Instance"}nearestInstanceSelfOrParent(){let r=this;for(;r.data.type!=="Instance";){let o=r.parent;if(ze.is(o))r=o;else return}return r}forInstancesRec(r){this.instances.forEach(o=>{o.disposed||r(o),o.forInstancesRec(r)})}super_Entity(r,o){typeof r=="string"&&(this.uuid=r),this.identity=r,this.data=o,this.matrixAutoUpdate=!1,this.dataPatched=this.data}changeSelectedState(r,o,n=!1){if(!(this.data.states.length===0&&!n)){for(let a of this.data.states)Tn.toOps(this.data,a.data).forEach(l=>{let c=wa.replaceProps(l,this.data);this.dataPatched=this.data,this.updateByPatchedOp(c,this.data,o)});if(r!==null){let a=this.data.states.data(r);a&&(this.dataPatched=Tn.patch(this.data,a),Tn.toOps(this.data,a).forEach(l=>{this.updateByPatchedOp(l,this.dataPatched,o)}))}n&&this.updateTransformState(this.dataPatched,o),this.stateSelection=r,this.updatePathSnapping(this.dataPatched.pathSnapping)}}get singleBBox(){return this.singleBBoxNeedsUpdate&&(this.singleBBoxNeedsUpdate=!1,this._singleBBox.setFromObjectSize(this,!1),this._singleBBox.computeVertices(),this._singleBBox.computeEdges(),this._singleBBox.computeFaces()),this._singleBBox}get recursiveBBox(){return this.recursiveBBoxNeedsUpdate&&(this.recursiveBBoxNeedsUpdate=!1,this._recursiveBBox.setFromObjectSize(this,!0),this._recursiveBBox.computeVertices(),this._recursiveBBox.computeEdges(),this._recursiveBBox.computeFaces()),this._recursiveBBox}updateEntityBoxSize(r,o){r.setScalar(0),o.setScalar(0)}resetBBoxNeedsUpdateSelf(){this.singleBBoxNeedsUpdate=!0,this.recursiveBBoxNeedsUpdate=!0}resetBBoxNeedsUpdate(){this.resetBBoxNeedsUpdateSelf(),this.traverseAncestors(r=>{ja(r)&&r.resetBBoxNeedsUpdateSelf()}),this.traverseEntity(r=>{r.resetBBoxNeedsUpdateSelf()})}find(r){let o;return this.traverseEntity(n=>{n.uuid===r&&(o=n)}),o}traverseSortNextHelper(){let r=this.parent;if(r){let o=r.children,n=o.indexOf(this)+1;if(ze.is(o[n]))return o[n];if(ze.is(r))return r.traverseSortNextHelper()}}sortNext(){let r=this.children;return this.children.length>0&&ze.is(this.children[0])?r[0]:this.traverseSortNextHelper()}goUp(r){let o=this;for(;r>0&&o!==null;)o=o.parent,r-=1;return o}hasAnccestorOrSelf(r){return this===r||this.hasAnccestor(r)}hasAnccestor(r){let o=this.parent;for(;o;){if(r===o)return!0;o=o.parent}return!1}countToAccestor(r){let o=0,n=this;for(;n!==r;){if(n===null)return-1;n=n.parent,o+=1}return o}forEachEntity(r){for(let o of this.children)ja(o)&&r(o)}traverseEntityAncestors(r){this.traverseAncestors(o=>{ze.is(o)&&r(o)})}traverseConcreteEntity(r,o=0){if(r(this,o)!==!0)for(let a of this.children)ja(a)&&a.isConcreteEntity&&a.traverseEntity(r,o+1)}traverseEntity(r,o=0){if(r(this,o)!==!0)for(let a of this.children)ja(a)&&a.traverseEntity(r,o+1)}traverseVisibleEntity(r){r(this);for(let o of this.children)ja(o)&&o.visible&&o.traverseVisibleEntity(r)}updateMatrix(){super.updateMatrix(),this.cloner&&this.cloner.onObjUpdateMatrix(),this.dispatchEvent({type:"updateMatrix"})}updateMatrixWorld(r){super.updateMatrixWorld(r),this.dispatchEvent({type:"updateMatrixWorld"})}copy(r,o=!1){return super.copy(r,o),this.dataPatched=r.dataPatched,this.raycastLock=r.raycastLock,this.scaleLock=r.scaleLock,this.hiddenMatrix.copy(r.hiddenMatrix),this}hasEntityChild(){return this.children.some(r=>ja(r))}isAncestorOf(r){if(this.uuid===r)return!1;let o=!1;return this.traverseEntity(n=>{n.uuid===r&&(o=!0)}),o}toObjectTransformState(r=[]){this.updateWorldMatrix(!0,!1);let o={position:this.position.toArray(),rotation:[this.rotation.x*dr.MathUtils.RAD2DEG,this.rotation.y*dr.MathUtils.RAD2DEG,this.rotation.z*dr.MathUtils.RAD2DEG],scale:this.scale.toArray(),hiddenMatrix:this.hiddenMatrix.toArray()};return ga(o,r)}getTransformValues(r,o,n){return o[r].map((a,s)=>n?.shared.getVariable(a,[this.uuid,r,IM[s]])??a)}updateTransformState(r,o){let n=!1;return r.position&&(this.position.fromArray(this.getTransformValues("position",r,o)),n=!0),r.rotation&&(xf.fromArray(this.getTransformValues("rotation",r,o)).multiplyScalar(dr.MathUtils.DEG2RAD),this.rotation.setFromVector3(xf),n=!0),r.scale&&(this.scale.fromArray(this.getTransformValues("scale",r,o)),n=!0),r.hiddenMatrix!==void 0&&(n=!0,this.hiddenMatrix.fromArray(r.hiddenMatrix??_i.identity)),n&&(this.updateMatrix(),this.resetBBoxNeedsUpdate(),this.invalidateClonerTransform(this),this.traverseEntityAncestors(a=>{a.invalidateClonerTransform(this)})),r.position&&r.rotation&&r.scale&&r.hiddenMatrix!==void 0&&this.updateWorldMatrix(!1,!0),n}onVariableUpdate(r=!1){if(r){this.resetBBoxNeedsUpdate();return}this.updateMatrix(),this.resetBBoxNeedsUpdate(),this.invalidateClonerTransform(this),this.traverseEntityAncestors(o=>{o.invalidateClonerTransform(this)})}dispose(){this.disposed=!0,this.cloner&&(this.cloner.removeFromParent(),this.cloner=void 0)}disposeChildrenRecursively(){for(let r of this.children)ze.is(r)&&r.disposeRecursively()}disposeRecursively(){this.dispose(),this.children.forEach(r=>{ze.is(r)&&r.disposeRecursively()})}toState(r=[]){let o={name:this.name,visible:this.visible,raycastLock:this.raycastLock,...this.toObjectTransformState(r)};return ga(o,r)}updateByObjUpdateOp(r,o){r!==void 0&&this.updateByOp({type:0,props:r,path:[]},{...this.data,...r},o,!1)}updateByOp(r,o,n,a){let s=this.data;this.data=o;let l=r,c=je(r.path,["states","*"]);if(c!==null){if(r.type===0){let[u]=c;if(this?.stateSelection===u){let d={...r.props};if(delete d.name,Object.values(r.props).some(p=>p===void 0)){let p=this.data;if(p!==void 0){let f=ut.zoom(p,r.path.slice(2));if(f)for(let h in r.props)r.props[h]===void 0&&h in f&&(d[h]=f[h])}}l={...r,props:d,path:r.path.slice(2)}}}}else if(r.type===0){let u=this.stateSelection?this.data.states.data(this.stateSelection):void 0;if(u!==void 0){if(r.props.name!==void 0&&u.name){let{name:p,...f}=u;u=f}if(r.props.material!==void 0&&"material"in u){let{material:p,...f}=u;u=f}let d=ut.removeOverridden(r.path,r.props,u);l={...r,props:d}}}if(this.updateByPatchedOpBase(l,Tn.patch(this.data,this.stateSelection?this.data.states.data(this.stateSelection):void 0),n),je(r.path,["overrides"])){let u=[],d=[...r.path];for(u.push(d[1]),d.splice(0,2);d.length>0&&d[0]==="descendants";)u.push(d[1]),d.splice(0,2);if(u[u.length-1]===void 0){if(r.type===0)for(let p of Object.keys(r.props)){u[u.length-1]=p;let f=n.scene.findInstance([this.uuid,...u]);f&&(f.overrideData=r.props[p],f.updateState(Oo.apply(f.component.data,f.overrideData),n))}}else{let p=n.scene.findInstance([this.uuid,...u]);if(p){let f=ut.zoom(p.component.data,d);if(r={...r,path:d},r.type===0){let h=r.props;if(f)for(let[m,y]of Object.entries(r.props))y===void 0&&(h===r.props&&(h={...r.props}),h[m]=f[m]);r={...r,props:h}}p.overrideData=Da.resolve(o.overrides,u),p.updateByOp(r,bt.applySimple(p.data,r),n,!1)}}}else if(this.instances.length>0){let u;if(r.path.length===0&&r.type===0){let d;for(let p of No.rootOverrideProps)p in r.props&&(d===void 0&&(d={}),d[p]=r.props[p]);d&&(u={...r,props:d})}else for(let d of No.rootOverrideProps)if(je(r.path,[d])){u=r;break}u!==void 0&&this.instances.forEach(d=>{if(d.isInstanceRoot){let p=Oo.filterOp(d.overrideData,u);p&&d.updateByOp(p,bt.applySimple(d.data,p),n,!0)}}),this.instances.forEach(d=>{if(!d.isInstanceRoot){let p=Oo.filterOp(d.overrideData,r);if(p){let f;s===d.data&&r===p?f=o:f=bt.applySimple(d.data,p),d.updateByOp(p,f,n,!0)}}})}}updateByPatchedOpBase(r,o,n){if(this.dataPatched=o,r.path.length===0&&r.type===0)r.props.type!==void 0&&!io.is(r.props.type)&&lo.changeEntityProptotype(this,o,n);else if(r.path.length===1&&r.path[0]==="geometry"&&r.type===0&&"type"in r.props){lo.changeEntityProptotype(this,o,n);for(let a of this.children)ze.is(a)&&a.updateVisible(n.scene)}this.updateByPatchedOp(r,o,n)}updateByPatchedOp(r,o,n){if(r.path.length===0&&r.type===0?this.updateState(r.props,n):r.type===0&&("resolutionLevel"in r.props||"useChildrenColors"in r.props)&&this.updateState(o,n),r.path[0]==="morphTargetInfluences"&&r.type===0){let s=o.morphTargetInfluences.get(r.path[1])?.data.name;s&&this.updateMorphInfluences(s,n.shared.getVariable(r.props.value,[this.uuid,"morphTargetInfluences",s]))}if(je(r.path,["pathSnapping"])!==null&&this.updatePathSnapping(o.pathSnapping),je(r.path,["cloner"])!==null){let a=bt.drop(r,1);a.path.length===0&&a.type===0&&a.props.disabled===!0?this.setFromClonerState(null,n):this.cloner?this.cloner.updateState(o.cloner,n.scene):(this.setFromClonerState(o.cloner,n),this.expandCloner(n.scene)),this.updateVisible(n.scene)}}updatePathSnapping(r=this.dataPatched.pathSnapping){this._updatedPathSnapping=r,this._needApplyPathSnapping=!0}get updatedPathSnapping(){return this._updatedPathSnapping}applyPathSnapping(r){let o=this._updatedPathSnapping?.pathId??this.dataPatched.pathSnapping.pathId,n=this._updatedPathSnapping?.slide??this.dataPatched.pathSnapping.slide??0,a=this._updatedPathSnapping?.offset??this.dataPatched.pathSnapping.offset??0,s=this._updatedPathSnapping?.orientation??this.dataPatched.pathSnapping.orientation;if(o===null)return;let l=r.find(o);if(!l||this._needApplyPathSnapping===!1)return;this._needApplyPathSnapping=!1;let c=l.data;if(c.geometry.path.points.length<=1)return;let u=zu(c.geometry.path),d=(n+a)%1;n+a===1&&d===0&&(d=1);let p=null;try{p=u.curves.length?u.getPointAt(d):null}catch(y){!1&&(console.warn(`The aligned path on ${this.name} is invalid. (${l.name})`),console.error(y))}if(p===null)return;let f=this.parent?this.parent?.matrixWorld:new dr.Matrix4;l.updateMatrixWorld();let h=new dr.Matrix4().multiplyMatrices(f.clone().invert(),l.matrixWorld);p.applyMatrix4(h);let m={position:p.toArray(),rotation:c.rotation};if(s==="tangential"){let y=new dr.Matrix4().extractRotation(l.matrixWorld),x=u.getTangentAt(d).applyMatrix4(y).add(p),v=new dr.Matrix4().lookAt(p,x,EM),w=xf.setFromEuler(new dr.Euler().setFromRotationMatrix(v)).multiplyScalar(dr.MathUtils.RAD2DEG);m={...m,rotation:w.toArray()}}this.updateTransformState(m),this.traverseEntity(y=>{y._cameraType&&y.dispatchEvent(MM)})}updateVisible(r){if(this.visible=this.dataPatched.visible&&(!this.dataPatched.cloner||(this.dataPatched.cloner.disabled??!1)||this.dataPatched.cloner?.hideBase!==!0),!r)return;let o=!1;this.traverseEntity(n=>{if(n.data.type==="Splat")return o=!0,!0}),o&&r.reloadSplats()}updateState_Entity(r,o){r.name!==void 0&&(this.name=r.name),r.raycastLock!==void 0&&(this.raycastLock=r.raycastLock),r.visible!==void 0&&(this.updateVisible(o?.scene),this.resetBBoxNeedsUpdate()),o&&"cloner"in r&&r.cloner!==void 0&&(this.setFromClonerState(r.cloner,o),this.updateVisible(o.scene)),this.updateTransformState(r,o)}get attachedSurfaceCloners(){return this.children.filter(r=>r instanceof lo.Cloner&&r.parameters.type==="toObject")}setFromClonerState(r,o){this.disposed||(r===null||r.disabled?(this.cloner&&this.cloner.removeFromParent(),this.cloner=void 0):this.cloner===void 0?(this.cloner=new lo.Cloner(this,r),o.scene.addPendingExpandCloner(this)):this.cloner.updateState(r,o.scene))}expandCloner(r){!this.disposed&&this.cloner&&this.cloner.expandClones(r)}invalidateClonerTransform(r){this.cloner&&this.cloner.invalidateTransform(r)}requestRender(){this.dispatchEvent({type:"requestRender"})}};var Fi=require("three");var st=require("three"),dx=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=i.parameters?.radiusTop,r=i.parameters?.radiusBottom,o=Object.assign({},t?.parameters??{width:100,radialSegments:64,heightSegments:1,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadius:8,cornerSegments:8,hollow:0},i.parameters);o.thetaLength=st.MathUtils.clamp(o.thetaLength,0,360);let n=o.width/2,a=o.radiusTop??n,s=o.radiusBottom??n;if(a===s?(a=n,s=n):a>s?(a=n,s=s*n/a):(a=a*n/s,s=n),o.shapeBlendNode){a=e??n,s=r??n;let l=Math.max(a,s)*2;o.width=l,o.depth=l}return{parameters:Object.assign(o,{width:Math.abs(o.width),height:Math.abs(o.height??o.width),depth:Math.abs(o.depth??o.width),radiusTop:a,radiusBottom:s})}}static build(i){let{width:t,depth:e,height:r,radialSegments:o,heightSegments:n,openEnded:a,thetaStart:s,thetaLength:l,radiusTop:c,radiusBottom:u,cornerRadius:d,cornerSegments:p,hollow:f}=i.parameters,h;return l===0?(h=new st.BufferGeometry,h.setAttribute("position",new st.Float32BufferAttribute([],3))):d||f?h=new wl(c,u,r,o,n,a,s,l*Math.PI/180,d,d,p,f):h=new st.CylinderGeometry(c,u,r,o,n,a,s,l*Math.PI/180),h.scale(1,1,e/t),Object.assign(h,{userData:{...i,type:"CylinderGeometry"}})}};function Gi(i,t,e){e.x=i.x*t.x,e.y=i.y,e.z=i.x*t.y}function ux(i){return new st.Vector2(i.y,-i.x)}var wl=class extends st.BufferGeometry{constructor(t,e,r,o,n,a,s,l,c,u,d,p,f=!1){super(),this.type="RoundedCylinderBufferGeometry",t=t!==void 0?t:1,e=e!==void 0?e:1,r=r||1,o=Math.floor(o)||8,n=Math.floor(n)||1,a=a!==void 0?a:!1,s=s!==void 0?s:0,l=l!==void 0?l:Math.PI*2,a&&(c=0,u=0);let h=[],m=[],y=[],x=[],v=0,w=r/2,O=new st.Vector3,S=new st.Vector3;f&&t==0&&(t=c),f&&e==0&&(e=u);let T=new st.Vector2(t,w),M=new st.Vector2(e,-w),g=null,D=null,E=null,I=null,N=T.clone().sub(M),_=0,R=0,V=0;p>0&&(_=Math.min(t,e)*(1-p),R=t-_,V=e-_);let U=T.clone();U.x-=_;let B=Math.PI-N.angle(),q=N.angle(),j=Math.tan(q/2),F=Math.tan(B/2),H=j+F,W=p?H:F,ee=p?H:j;if(c=Math.min(c,(t-R)/W,N.length()/H),u=Math.min(u,(e-V)/ee,N.length()/H),c>0){let Q=c/j;g=T.clone().sub(new st.Vector2(Q,c)),p&&(E=g.clone(),E.x-=_-H*c),T.sub(N.clone().setLength(Q))}if(u>0){let Q=u/F;D=M.clone().sub(new st.Vector2(Q,-u)),M.add(N.clone().setLength(Q)),p&&(I=D.clone(),I.x-=_-H*u,U.sub(N.clone().setLength(Q)))}N=T.clone().sub(M);let te=N.length()<.5,Y=[];for(let Q=0;Q<=o;Q++){let $=[],pe=Q/o,le=pe*l+s,ie=new st.Vector2(Math.sin(le),Math.cos(le));I&&D?(re($,pe,ie,B,u,I,-1,!0),re($,pe,ie,q,u,D,-1,!1)):D?(K($,ie,D.x,0,-1),re($,pe,ie,q,u,D,-1,!1)):a||K($,ie,e,V,-1);let ue=ux(N).normalize();if(Gi(ue,ie,O),!te)for(let ae=0;ae<=n;ae++){let ge=ae/n,me=N.clone().multiplyScalar(ge).add(M);Gi(me,ie,S),m.push(S.x,S.y,S.z),y.push(O.x,O.y,O.z),x.push(pe,.5+S.y/r),$.push(v++)}if(E&&g?(re($,pe,ie,B,c,g,1,!1),re($,pe,ie,q,c,E,1,!0)):g?(re($,pe,ie,B,c,g,1,!1),K($,ie,g.x,0,1)):a||K($,ie,t,R,1),p&&!te){let ae=ux(N).multiplyScalar(-1).normalize();Gi(ae,ie,O);for(let ge=0;ge<=n;ge++){let me=ge/n,ye=N.clone().multiplyScalar(-me).add(U);Gi(ye,ie,S),m.push(S.x,S.y,S.z),y.push(O.x,O.y,O.z),x.push(pe,.5+S.y/r),$.push(v++)}}p&&!a&&$.push($[0]),Y.push($)}for(let Q=0;Q<Y.length-1;Q++)for(let $=0;$<Y[0].length-1;$++){if(a&&p&&$==n)continue;let pe=Y[Q][$],le=Y[Q+1][$],ie=Y[Q+1][$+1],ue=Y[Q][$+1],ae=m[ie*3+0],ge=m[ie*3+2];h.push(pe,le,ue),(ae!=0||ge!=0)&&h.push(le,ie,ue)}l<Math.PI*2&&(Z(-1,Y[0],s),Z(1,Y[Y.length-1],s+l)),this.setIndex(h),this.setAttribute("position",new st.Float32BufferAttribute(m,3)),this.setAttribute("normal",new st.Float32BufferAttribute(y,3)),this.setAttribute("uv",new st.Float32BufferAttribute(x,2));function re(Q,$,pe,le,ie,ue,ae,ge){for(let me=0;me<d+1;me++){let ye=me/d,ve=ae<0?ye:1-ye;ge&&(ve-=1),ve*=le;let xe=new st.Vector2(Math.sin(ve),Math.cos(ve)*ae),C=xe.clone().multiplyScalar(ie).add(ue);Gi(C,pe,S),m.push(S.x,S.y,S.z),Gi(xe,pe,O),y.push(O.x,O.y,O.z),x.push($,.5+S.y/r),Q.push(v++)}}function K(Q,$,pe,le,ie){let ue=new st.Vector3,ae=new st.Vector2,ge=[pe,le];ie<0&&ge.reverse();for(let me of ge)ae.set(me,w*ie),Gi(ae,$,ue),m.push(ue.x,ue.y,ue.z),y.push(0,ie,0),x.push(.5,.5),Q.push(v++)}function Z(Q,$,pe){let le=new st.Vector2(Math.sin(pe),Math.cos(pe)),ie=new st.Vector2(-Math.cos(pe),Math.sin(pe)),ue=new st.Vector3,ae=Q<0?(ye,ve,xe)=>h.push(ye,ve,xe):(ye,ve,xe)=>h.push(ye,xe,ve),ge=new st.Vector2((t+e+R+V)/4,0);Gi(ge,le,ue),m.push(ue.x,ue.y,ue.z),y.push(ie.x,0,ie.y),x.push(.5,.5);let me=v++;for(let ye of $){let ve=m.slice(ye*3,ye*3+3);m.push(...ve),y.push(ie.x,0,ie.y);let xe=x.slice(ye*2,ye*2+2);x.push(...xe),v++}for(let ye=me+1;ye<v-1;ye++)ae(me,ye,ye+1);ae(me,v-1,me+1)}}};var px=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:32,heightSegments:8,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadiusTop:8,cornerRadiusBottom:8,cornerSegments:8},i.parameters);return e.thetaLength=Fi.MathUtils.clamp(e.thetaLength,0,360),{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(i){let{width:t,depth:e,height:r,radialSegments:o,heightSegments:n,openEnded:a,thetaStart:s,thetaLength:l,cornerRadiusTop:c,cornerRadiusBottom:u,cornerSegments:d}=i.parameters,p;return l===0?(p=new Fi.BufferGeometry,p.setAttribute("position",new Fi.Float32BufferAttribute([],3))):c>0||u>0||l<360?p=new wl(0,t/2,r,o,n,a,s,l*Math.PI/180,c,u,d,0,!0):p=new Fi.ConeGeometry(t/2,r,o,n,a),p.scale(1,1,e/t),Object.assign(p,{userData:{...i,type:"ConeGeometry"}})}};var wr=require("three"),fx=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,widthSegments:1,heightSegments:1,depthSegments:1,cornerRadius:8,cornerSegments:8},i.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(i){let{width:t,height:e,depth:r,widthSegments:o,heightSegments:n,depthSegments:a,cornerRadius:s,cornerSegments:l}=i.parameters,c;return s===0?c=new wr.BoxGeometry(t,e,r,o,n,a):c=new vf(t,e,r,o,n,a,s,l),Object.assign(c,{userData:{...i,type:"CubeGeometry"}})}},bf=Math.PI/2,vf=class extends wr.BufferGeometry{constructor(t=1,e=1,r=1,o=1,n=1,a=1,s=0,l=4){super(),this.type="BoxGeometry",o=Math.floor(o),n=Math.floor(n),a=Math.floor(a),l=Math.floor(l),s=Math.min(s,t/2,e/2,r/2);let c=[],u=[],d=[],p=[],f=0;h("z","y","x",-1,-1,r,e,t,a,n),h("z","y","x",1,-1,r,e,-t,a,n),h("x","z","y",1,1,t,r,e,o,a),h("x","z","y",1,-1,t,r,-e,o,a),h("x","y","z",1,-1,t,e,r,o,n),h("x","y","z",-1,-1,t,e,-r,o,n),s>0&&(m("z","y","x",-1,-1,1,r,e,t,a),m("z","y","x",1,-1,-1,r,e,t,a),m("z","y","x",-1,1,-1,r,e,t,a),m("z","y","x",1,1,1,r,e,t,a),m("x","y","z",-1,-1,-1,t,e,r,o),m("x","y","z",1,-1,1,t,e,r,o),m("x","y","z",-1,1,1,t,e,r,o),m("x","y","z",1,1,-1,t,e,r,o),m("y","x","z",-1,-1,1,e,t,r,n),m("y","x","z",1,-1,-1,e,t,r,n),m("y","x","z",1,1,1,e,t,r,n),m("y","x","z",-1,1,-1,e,t,r,n),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(c),this.setAttribute("position",new wr.Float32BufferAttribute(u,3)),this.setAttribute("normal",new wr.Float32BufferAttribute(d,3)),this.setAttribute("uv",new wr.Float32BufferAttribute(p,2));function h(x,v,w,O,S,T,M,g,D,E){let I=(T-2*s)/D,N=(M-2*s)/E,_=T/2-s,R=M/2-s,V=g/2,U=D+1,B=E+1,q=0,j=new wr.Vector3;for(let F=0;F<B;F++){let H=F*N-R;for(let W=0;W<U;W++){let ee=W*I-_;j[x]=ee*O,j[v]=H*S,j[w]=V,u.push(j.x,j.y,j.z),j[x]=0,j[v]=0,j[w]=g>0?1:-1,d.push(j.x,j.y,j.z),p.push(W/D),p.push(1-F/E),q+=1}}for(let F=0;F<E;F++)for(let H=0;H<D;H++){let W=f+H+U*F,ee=f+H+U*(F+1),te=f+(H+1)+U*(F+1),Y=f+(H+1)+U*F;c.push(W,ee,Y),c.push(ee,te,Y)}f+=q}function m(x,v,w,O,S,T,M,g,D,E){let I=(M-2*s)/E,N=M/2-s,_=g/2-s,R=D/2,V=E+1,U=0,B=new wr.Vector3,q=new wr.Vector3;for(let j=0;j<l+1;j++){let F=j/l*bf,H=Math.sin(F)*s,W=(1-Math.cos(F))*s,ee=Math.sin(F),te=Math.cos(F);B[v]=(_+H)*S,B[w]=(R-W)*T,q[x]=0,q[v]=ee*Math.sign(B[v]),q[w]=te*Math.sign(B[w]);for(let Y=0;Y<V;Y++){let re=Y*I-N;B[x]=re*O,u.push(B.x,B.y,B.z),d.push(q.x,q.y,q.z),p.push(Y/E),p.push(0),U+=1}}for(let j=0;j<l;j++)for(let F=0;F<E;F++){let H=f+F+V*j,W=f+F+V*(j+1),ee=f+(F+1)+V*(j+1),te=f+(F+1)+V*j;c.push(H,W,te),c.push(W,ee,te)}f+=U}function y(x,v,w){let O=new wr.Vector3,S=new wr.Vector3(t/2,e/2,r/2);S.subScalar(s);let T=[],M=x*v*w>0?(D,E,I)=>c.push(D,E,I):(D,E,I)=>c.push(D,I,E);for(let D=0;D<=l;D++){let E=[],I=bf*(1-D/l),N=Math.cos(I),_=Math.sin(I),R=0;for(let V=0;V<=D;V++){let U=Math.cos(R),B=Math.sin(R);O.x=N*U,O.y=_,O.z=N*B;let q=S.clone().addScaledVector(O,s);u.push(x*q.x,v*q.y,w*q.z),d.push(x*O.x,v*O.y,w*O.z),p.push(0,0),E.push(f++),R+=bf/D}T.push(E)}let g=T.length-1;for(let D=0;D<g;D++){let E=T[D],I=T[D+1],N=E.length-1;M(E[0],I[1],I[0]);for(let _=1;_<=N;_++)M(E[_-1],E[_],I[_]),M(E[_],I[_+1],I[_])}}}};var Et=require("three"),ji=class extends Et.BufferGeometry{constructor(t=[],e=[],r="",o=1,n=.2,a=4){super(),this.type="PolyhedronGeometryRound";let s=[],l=[],c=[];u(),d(),this.setAttribute("position",new Et.Float32BufferAttribute(s,3)),this.setAttribute("normal",new Et.Float32BufferAttribute(c,3)),this.setAttribute("uv",new Et.Float32BufferAttribute(l,2));return;function u(){n=Math.min(1-1e-5,n),n==0&&(a=0);let f={IcosahedronGeometry:5,DodecahedronGeometry:3,HexahedronGeometry:3,OctahedronGeometry:4,TetrahedronGeometry:3}[r],h=new Et.Vector3,m=h.clone(),y=new Et.Triangle,x=n*o,v=o-x,w=a+1,O=new Et.Vector3,S=(j,F)=>O.subVectors(j,F).normalize(),T=(j,F)=>Array(j).fill(void 0).map(F),M=T(t.length/3,(j,F)=>new Et.Vector3().fromArray(t,F*3).setLength(o)),g=[],D=1e6;for(let j=0;j<M.length;j++){let F=M[j],H=[],W,ee,te,Y=1e10,re=-1;for(;(re=e.indexOf(j,re+1))!=-1;){let $=re-re%3;W=e[$+(re+1)%3],ee=e[$+(re+2)%3],te=F.distanceToSquared(M[W]),Y=Math.min(Y,te),H.push([W,ee,te])}Y+=1e-6;let K=[],Z=0,Q=H.length;for(let $=0;$<Q;$++){[W,ee,te]=H[Z];let pe=g[W]?.includes(j)==!0;te<=Y&&K.push(W+ +pe*D),Z=H.findIndex(le=>le[0]==ee)}g.push(K)}let E=[];{let j=0,F=0,H,W,ee=f==3;for(let te=0;te<=a;te++){H=te*(te+1)/2,W=(te+1)*(te+2)/2;for(let Y=0;Y<a-te;Y++)[j,F]=[H+Y+te+2,W+Y+te+3],E.push(H,W,...ee?[F,H]:[j,W],F,j),[H,W]=[j,F];E.push(H,W,H+a+2)}}let I=h.clone(),N=h.clone(),_=h.clone(),R=h.clone(),V=h.clone(),U=[],B=T(M.length,()=>T(f,()=>h.clone()));for(let j=0;j<M.length;j++){h.copy(M[j]).normalize(),I.copy(h).multiplyScalar(v);let F=g[j];for(let K=0;K<F.length;K++){let Z=F[K],Q=F[(K+1)%f];y.setFromPointsAndIndices(M,j,Z%D,Q%D),y.b.sub(y.a).setLength(1e10).add(y.a),y.c.sub(y.a).setLength(1e10).add(y.a),y.closestPointToPoint(I,B[j][K])}let H=[],W=[],ee=[],te=new Et.Vector3;a==0&&[...B[j]].reduce((K,Z)=>K.add(Z),te).multiplyScalar(1/f);for(let K=0;K<f;K++){let Z=[],Q=(K-1+f)%f,$=B[j][Q],pe=B[j][K];h.copy($).sub(I),m.copy(pe).sub(I);let le=I.angleTo(h),ie=h.angleTo(m),ue=Math.cos(le)*x;a==0?N.copy(te):N.copy(I).setLength(v+ue),W.push(ue);let ae=[N,$,pe];for(let ge=0;ge<2;ge++){let me=ae[ge],ye=ae[ge+1];R.subVectors(me,I),V.subVectors(ye,I),_.crossVectors(R,V).normalize();for(let ve=0;ve<w;ve++){let xe=[le,ie][ge]*ve/w;h.copy(R).applyAxisAngle(_,xe).add(I),H.push(h.clone()),ge&&(S(h,I),Z.push([ve==0?me:h.clone(),O.clone()]))}ge&&(S(ye,I),Z.push([ye,O.clone()]))}ee.push(Z)}U.push(ee);let Y=2*w,re=2;for(let K=0;K<f;K++){let Z=Y*K,Q=Y*((K+1)%f),$=[H[Z]];for(let le=1;le<w;le++){R=H[Z+le],V=H[Q+le],$.push(R);for(let ie=1,ue=le-re+1;ie<=ue;ie++)h.lerpVectors(R,V,ie/(ue+1)),h.sub(I).setLength(W[K]).add(I),$.push(h.clone());$.push(V)}for(let le=0;le<w;le++)$.push(H[le+w+Z]);$.push(H[Q+w]);let pe=E.map(le=>$[le]);s.push(...pe.map(le=>[le.x,le.y,le.z]).flat()),c.push(...pe.map(le=>(S(le,I),[O.x,O.y,O.z])).flat())}}let q=[];for(let j=0;j<g.length;j++)for(let F=0;F<f;F++){let H=g[j][F];if(H<D){let W=g[H].findIndex(Y=>Y%D==j),ee=U[j][F],te=U[H][W];for(let Y=0;Y<w;Y++){let re=ee[Y],K=te[w-Y],Z=ee[Y+1],Q=te[w-(Y+1)];[re,K,Z,Z,K,Q].forEach($=>{s.push($[0].x,$[0].y,$[0].z),c.push($[1].x,$[1].y,$[1].z)})}q.push(ee[0][0],te[w][0],ee[w][0],te[0][0])}}for(;q.length;){let j,F,H,W;[j,F]=q.splice(0,2);let ee=[j];for(;j!=F;)ee.push(F),H=q.indexOf(F),W=H%2,F=q.splice(H-W,2)[1-W];O.subVectors(ee[0],ee[1]).cross(h.subVectors(ee[0],ee[2])).normalize();let te=O.dot(ee[0])<0;te&&O.negate();for(let Y=1;Y<=ee.length-2;Y++)[ee[Y+ +te],ee[Y+1-+te],ee[0]].forEach(re=>{s.push(re.x,re.y,re.z),c.push(O.x,O.y,O.z)})}}function d(){let p=new Et.Vector3;for(let M=0;M<s.length;M+=3){p.x=s[M+0],p.y=s[M+1],p.z=s[M+2];let g=S(p)/2/Math.PI+.5,D=T(p)/Math.PI+.5;l.push(g,1-D)}let f=new Et.Vector3,h=new Et.Vector3,m=new Et.Vector3,y=new Et.Vector3,x=new Et.Vector2,v=new Et.Vector2,w=new Et.Vector2,O=(M,g,D,E)=>{E<0&&M.x===1&&(l[g]=M.x-1),D.x===0&&D.z===0&&(l[g]=E/2/Math.PI+.5)};for(let M=0,g=0;M<s.length;M+=9,g+=6){f.set(s[M+0],s[M+1],s[M+2]),h.set(s[M+3],s[M+4],s[M+5]),m.set(s[M+6],s[M+7],s[M+8]),x.set(l[g+0],l[g+1]),v.set(l[g+2],l[g+3]),w.set(l[g+4],l[g+5]),y.copy(f).add(h).add(m).divideScalar(3);let D=S(y);O(x,g+0,f,D),O(v,g+2,h,D),O(w,g+4,m,D)}for(let M=0;M<l.length;M+=6){let g=l[M+0],D=l[M+2],E=l[M+4],I=Math.max(g,D,E),N=Math.min(g,D,E);I>.9&&N<.1&&(g<.2&&(l[M+0]+=1),D<.2&&(l[M+2]+=1),E<.2&&(l[M+4]+=1))}function S(M){return Math.atan2(M.z,-M.x)}function T(M){return Math.atan2(-M.y,Math.sqrt(M.x*M.x+M.z*M.z))}}}static fromJSON(t){return new ji(t.vertices,t.indices,t.radius,t.corner,t.cornerSides)}};var hx=require("three"),mx=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,detail:0,corner:0,cornerSides:4},i.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(i){let{width:t,height:e,depth:r,detail:o,corner:n,cornerSides:a}=i.parameters,s=o===0&&n!==0?new Pl(t*.5,n,a):new hx.DodecahedronGeometry(t*.5,o);return s.scale(1,e/t,r/t),Object.assign(s,{userData:{...i,type:"DodecahedronGeometry"}})}},Pl=class extends ji{constructor(t=1,e=.2,r=4){let o=(1+Math.sqrt(5))/2,n=1/o,a=[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-n,-o,0,-n,o,0,n,-o,0,n,o,-n,-o,0,-n,o,0,n,-o,0,n,o,0,-o,0,-n,o,0,-n,-o,0,n,o,0,n],s=[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],l="DodecahedronGeometry";super(a,s,l,t,e,r),this.type=l}static fromJSON(t){return new Pl(t.radius,t.corner,t.cornerSides)}};var Ye=require("three");var Ne=require("three"),Ol=1e-12,ka=class{constructor(t){this.position=new Ne.Vector2;this.startPosition=new Ne.Vector2;this.uuid=Ne.MathUtils.generateUUID();this.position=t.clone()}start(){this.reset()}reset(){this.startPosition.copy(this.position)}applyOffset(t){this.position.copy(this.startPosition).add(t)}copy(t){return this.position.copy(t.position),this.startPosition.copy(t.startPosition),this}clone(){return new ka(this.position).copy(this)}toJSON(){return[this.position.x,this.position.y]}},Ha=class extends ka{constructor(e){super(e.position);this.parent=e}copy(e){return super.copy(e),this}clone(){return new Ha(this.parent).copy(this)}},co=class extends ka{constructor(e,r){super(r);this.controls=[];this.roundness=0;this.areControlsDirectionsMirrored=!0;this.uuid=e,this.controls.push(new Ha(this),new Ha(this))}static create(e,r){let o=new co(e,new Ne.Vector2(...r.position));return o.controls[0].position.set(...r.controlPrevious.position),o.controls[1].position.set(...r.controlNext.position),o.roundness=r.roundness,o.areControlsDirectionsMirrored=r.areControlsDirectionsMirrored,o}getOppositeControl(e){let r=this.controls.indexOf(e);return r===0?this.controls[1]:r===1?this.controls[0]:null}applyOffsetToControls(e,r=1){for(let o=0,n=this.controls.length;o<n;o++){let a=this.controls[o];this.position.distanceTo(a.position)<=r?a.position.copy(this.position):a.applyOffset(e)}}controlsMoved(){return!(this.position.equals(this.controls[0].position)&&this.position.equals(this.controls[1].position))}copy(e){return super.copy(e),this.controls[0].copy(e.controls[0]),this.controls[1].copy(e.controls[1]),this.roundness=e.roundness,this.uuid=e.uuid,this}clone(){return new co(this.uuid,this.position).copy(this)}toJSON(){return super.toJSON().concat(this.controls[0].toJSON(),this.controls[1].toJSON(),[this.roundness])}computeTangents(){let e=this.curveBefore?.getTangentAt(1),r=this.curveAfter?.getTangentAt(0);return[e,r]}computeNormals(e=new Ne.Vector2,r=new Ne.Vector2){let[o,n]=this.computeTangents();return o&&n&&(yx(o,e),yx(n,r)),[e,r]}computeTangent(e=new Ne.Vector2){let[r,o]=this.computeTangents();return r&&o&&e.copy(r).add(o).normalize(),e}computeNormal(e=new Ne.Vector2){let[r,o]=this.computeNormals();return e.copy(r).add(o).normalize(),e}};function yx(i,t=new Ne.Vector2){let e=i.length();return t.set(-i.y/e,i.x/e)}var wf=i=>i,Wa=new Ne.Vector2,Gu=new Ne.Vector2,NM=new Ne.Vector2,DM=new Ne.Vector2,_M=new Ne.Vector2,RM=new Ne.Vector2,xx=new Ne.Vector3,bx=new Ne.Vector3;function vx(i){let t=new Ne.Vector2;t.addVectors(i.v0,Wa.subVectors(i.v1,i.v0).multiplyScalar(2/3));let e=new Ne.Vector2;return e.addVectors(i.v2,Gu.subVectors(i.v1,i.v2).multiplyScalar(2/3)),new Ne.CubicBezierCurve(i.v0,t,e,i.v2)}function Tl(i,t,e=Number.EPSILON){return Math.abs(i-t)<e}function LM(i,t,e=Number.EPSILON){return i.distanceTo(t)<e}function BM(i,t,e=Number.EPSILON){return i.distanceTo(t)<e}function Pf(i,t,e){let r=Math.sqrt(Math.pow(t.x-i.x,2)+Math.pow(t.y-i.y,2)),o=Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)),n=Math.sqrt(Math.pow(e.x-i.x,2)+Math.pow(e.y-i.y,2));return Math.acos((o*o+r*r-n*n)/(2*o*r))}function Sx(i,t,e){return gx(i,t)&&gx(t,e)&&Sf(i.position,t.position,e.position)}function Sf(i,t,e){return Wa.copy(t).sub(i).cross(Gu.copy(e).sub(i))===0}function wx(i,t,e,r,o){let n=Math.sqrt(Math.pow(t.x-i.x,2)+Math.pow(t.y-i.y,2)),a=(i.y+t.y)/2,s=(i.x+t.x)/2,l=Math.sqrt(Math.pow(e,2)-Math.pow(n/2,2))*(i.y-t.y)/n,c=Math.sqrt(Math.pow(e,2)-Math.pow(n/2,2))*(t.x-i.x)/n;return r.set(s+l,a+c),o.set(s-l,a-c),[r,o]}function Px(i,t,e){let r=i.distanceTo(e),o=t.distanceTo(e);return r<o?t:i}function Ox(i,t,e,r,o,n){let a=t.x-i.x,s=t.y-i.y,l=e.x-i.x,c=e.y-i.y,u=Math.sqrt((a+l)*(a+l)+(s+c)*(s+c)),d;return Pf(t,i,e)>Math.PI&&(u*=-1),Tl(c,s)?d=(s+c)*(r/u-.5)*8/3/(a-l):d=(a+l)*(r/u-.5)*8/3/(c-s),o.set(t.x-d*s,t.y+d*a),n.set(e.x+d*c,e.y-d*l),[o,n]}function Of(i,t){return i.position.equals(i.controls[1].position)&&t.position.equals(t.controls[0].position)}function gx(i,t){return Sf(i.position,i.controls[1].position,t.position)&&Sf(i.position,t.controls[0].position,t.position)}function Tx(i,t,e,r,o=.5){let n=Wa.subVectors(t,i).multiplyScalar(o).add(i),a=Gu.subVectors(e,t).multiplyScalar(o).add(t),s=NM.subVectors(r,e).multiplyScalar(o).add(e),l=n,c=DM.subVectors(a,n).multiplyScalar(o).add(n),u=_M.subVectors(s,a).multiplyScalar(o).add(a),d=s,p=RM.subVectors(u,c).multiplyScalar(o).add(c);return[i.x,i.y,l.x,l.y,c.x,c.y,p.x,p.y,u.x,u.y,d.x,d.y,r.x,r.y]}function Cx(i,t,e=12,r=!0){let o=bx.set(0,0,0),n,a=0,s=[];for(let l=0;l<t.length;l++){let c=wf(t[l]),u=Wa,d=Ui(c,e);s.push(d);for(let p=0;p<=d;p++)if(c instanceof Ne.CubicBezierCurve||c instanceof Ne.QuadraticBezierCurve||c instanceof Ne.LineCurve){if(c.getPoint(p/d,u),o.set(u.x,u.y,0),n!==void 0&&BM(n,o))continue;n===void 0&&(n=xx),n.copy(o),i.setXYZ(a,o.x,o.y,o.z),a++}}return r&&a>1&&!(i.getX(a-1)===i.getX(0)&&i.getY(a-1)===i.getY(0)&&i.getZ(a-1)===i.getZ(0))&&(i.setXYZ(a,i.getX(0),i.getY(0),i.getZ(0)),a++),i}function Ax(i,t,e,r=12,o=!0){let n=bx.set(0,0,0),a=0,s=[];for(let l=0;l<t.length;l++){if(e[l]===!1)continue;let c,u=wf(t[l]),d=Wa,p=Ui(u,r);s.push(p);for(let f=0;f<=p;f++)if(u instanceof Ne.CubicBezierCurve||u instanceof Ne.QuadraticBezierCurve||u instanceof Ne.LineCurve){if(u.getPoint(f/p,d),n.set(d.x,d.y,0),c?.equals(n))continue;c===void 0?c=xx:(i.setXYZ(a,c.x,c.y,c.z),a++,i.setXYZ(a,n.x,n.y,n.z),a++),c.copy(n)}}return o&&a>1&&!(i.getX(a-1)===i.getX(0)&&i.getY(a-1)===i.getY(0)&&i.getZ(a-1)===i.getZ(0))&&(i.setXYZ(a,i.getX(0),i.getY(0),i.getZ(0)),a++),s}function Tf(i,t=12,e=!1){let r=[];for(let o=0,n=i.length;o<n;o++){let a=i[o],s=0;if(e&&a.roundedCurveCorner!==void 0){let l=Ui(a.roundedCurveCorner,t)*.5;o>0&&(r[o-1]+=l),s+=l}a.curveAfter!==void 0&&(s+=Ui(a.curveAfter,t)),r.push(s)}return i.length>0&&e&&i[0].roundedCurveCorner!==void 0&&(r[i.length-1]+=Ui(i[0].roundedCurveCorner,t)*.5),r}function Ui(i,t=12){return i&&i instanceof Ne.EllipseCurve?t*2:i&&(i instanceof Ne.LineCurve||i instanceof Ne.LineCurve3)?1:i&&i instanceof Ne.SplineCurve?t*i.points.length:t}function Mx(i,t,e=12,r=!0){let o,n=0;for(let a=0;a<t.length;a++){let s=wf(t[a]),l=Ui(s,e),c=Wa;for(let u=0;u<=l;u++)if(s instanceof Ne.CubicBezierCurve||s instanceof Ne.QuadraticBezierCurve||s instanceof Ne.LineCurve){if(s.getPoint(u/l,c),o!==void 0&&LM(o,c,Ol))continue;o===void 0&&(o=Gu),o.copy(c),i.push(c.x,c.y),n++}}return Tl(i[0],i[i.length-2],Ol)&&Tl(i[1],i[i.length-1],Ol)&&(i.pop(),i.pop()),r&&n>1&&!(Tl(i[n-1],i[1],Ol)&&Tl(i[n-2],i[0],Ol))&&(i.push(i[0],i[1]),n++),i}var Cf=new Ye.Vector2,VM=new Ye.Vector2,zM=new Ye.Vector2,GM=new Ye.Vector2,FM=new Ye.Vector2,jM=new Ye.Vector2,Xe=class extends Ye.Shape{constructor(e=100,r=100){super();this.points=[];this.shapeHoles=[];this.plane=new Ye.Plane(new Ye.Vector3(0,0,-1));this.subdivision=0;this.controlSnapDistance=4;this.pointIDs=0;this.isMesh2D=!1;this.isText=!1;this._roundness=0;this.isClosed=!1;this.useCubicForRoundedCorners=!0;this.uuid=Ye.MathUtils.generateUUID();this.needsUpdate=!1;this.roundedCurves=[];this._width=e,this._height=r}static createFromState(e,r,o){let n=new Xe;return n.isClosed=e.isClosed,n.points=e.points.map(a=>co.create(a.id,a.data)),typeof e.roundness=="number"&&(n.roundness=e.roundness),n.shapeHoles=e.shapeHoles.map(a=>Xe.createFromState(a)),r!==void 0&&o!==void 0&&n.applySize(r,o),n.update(),n}get width(){return this._width}get height(){return this._height}get roundness(){return this._roundness}set roundness(e){if(this._roundness!==e){this._roundness=e;for(let r=0,o=this.points.length;r<o;r++)this.points[r].roundness=e;this.needsUpdate=!0}}getPointsIndexesByIds(e){return e.map(r=>this.getPointIndexById(r)).filter(r=>r>=0)}getPointIndexById(e){let r=this.points.length,o=this.points.findIndex(n=>n.uuid===e);if(o<0){let n=r;for(let a=0,s=this.shapeHoles.length;a<s;a++){let l=this.shapeHoles[a],c=l.points.length,u=l.getPointIndexById(e);if(u<0)n+=c;else return u+n}}return o}getLineIndexById(e){return this.getPointIndexById(e)}getBezierPoint(e){if(e<=this.points.length-1)return this.points[e];if(this.shapeHoles.length>0){let r=this.points.length;for(let o=0,n=this.shapeHoles.length;o<n;o++){let a=this.shapeHoles[o],s=e-r;if(s<=a.points.length-1)return a.points[s];r+=a.points.length}}throw new Error("This shape does not have a point for this index: "+e)}getBezierPointIndex(e){let r=this.points.indexOf(e);if(r>=0)return r;if(r=this.points.length,this.shapeHoles.length>0)for(let o=0,n=this.shapeHoles.length;o<n;o++){let a=this.shapeHoles[o],s=a.points.indexOf(e);if(s>=0)return r+s;r+=a.points.length}return-1}getAllPoints(){let e=[].concat(...this.shapeHoles.map(r=>r.points));return[...this.points,...e]}applySize(e,r){e===0&&(e=.001),r===0&&(r=.001),this._width=e,this._height=r}applyScale(e,r){let o=Cf.set(e,r);for(let n=0,a=this.points.length;n<a;n++){let s=this.points[n];s.position.multiply(o),s.controls[0].position.multiply(o),s.controls[1].position.multiply(o)}for(let n=0,a=this.shapeHoles.length;n<a;n++)this.shapeHoles[n].applyScale(e,r);this._update()}createPoint(e,r=0,o=Ye.MathUtils.generateUUID()){let n;e instanceof Ye.Vector2?n=e:n=new Ye.Vector2(e,r);let a=new co(o,n);return a.roundness=this.roundness,a}addPoint(e){this.points.push(e),this.needsUpdate=!0}addPointAt(e,r){this.points.splice(r,0,e),this.needsUpdate=!0}getPointByUuid(e){for(let r=0,o=this.points.length;r<o;r++){let n=this.points[r];if(n.uuid===e)return n}for(let r=0,o=this.shapeHoles.length;r<o;r++){let a=this.shapeHoles[r].getPointByUuid(e);if(a)return a}}getFirstPoint(){return this.points[0]}getLastPoint(){return this.points[this.points.length-1]}removePoint(e){let r=this.points.indexOf(e);r>=0&&this.points.splice(r,1),this.needsUpdate=!0}removePointById(e){let r=this.points.find(o=>o.uuid===e);r&&this.removePoint(r)}update(){for(let e=0,r=this.shapeHoles.length;e<r;e++)this.shapeHoles[e].update();this._update()}extractShapePointsToBuffer(e,r=12,o=!1){this.subdivision=r,this.curveDivisions===void 0&&this.computeCurveDivisions(r);let n=o?this.roundedCurveDivisions:this.curveDivisions;return Cx(e,o?this.roundedCurves:this.curves,r,this.autoClose),n.reduce((a,s)=>a+s,0)+1}computeCurveDivisions(e=12){return this.curveDivisions=Tf(this.points,e,!1),this.roundedCurveDivisions=Tf(this.points,e,!0),this.curveDivisions}extractFilteredShapePointsToBuffer(e,r,o=12){return Ax(e,this.curves,r,o,this.autoClose).reduce((a,s)=>a+s,0)*2}extractShapePointsToFlatArray(e,r=12){return this.subdivision=r,this.curveDivisions===void 0&&this.computeCurveDivisions(r),Mx(e,this.roundedCurves,r,this.autoClose)}getCurveIndexFromVertexId(e,r=!1){let o=0;this.curveDivisions===void 0&&this.computeCurveDivisions(this.subdivision);let n=r?this.roundedCurveDivisions:this.curveDivisions,a=0;r&&this.points[0].roundedCurveCorner!==void 0&&(a=Ui(this.points[0].roundedCurveCorner,this.subdivision)*.5);let s=e-a;s<0&&(s+=n.reduce((l,c)=>l+c,0));for(let l=0,c=n.length;l<c;l++){let u=n[l];if(s<o+u)return[l,(s-o+1)/u];o+=u}return[0,1]}getCurveT(e,r,o){let n=this.points[e],a=this.points[e>=this.points.length-1?0:e+1],s=this.curveDivisions,l=s[e];if(Of(n,a)){let d=n.position.distanceTo(a.position);return n.position.distanceTo(Cf.set(o.x,o.y))/d}let c=0;for(let d=0;d<e;d++)c+=s[d];return(r-c)/l}dispose(){}_applyCurveForPoint(e,r){Of(r,e)?this.lineTo(e.position.x,e.position.y):this.bezierCurveTo(r.controls[1].position.x,r.controls[1].position.y,e.controls[0].position.x,e.controls[0].position.y,e.position.x,e.position.y);let o=this.curves[this.curves.length-1];e.curveBefore=o,r.curveAfter=o;let n=o.clone();e.roundedCurveBefore=n,r.roundedCurveAfter=n,e.roundedCurveCorner=void 0,this.roundedCurves.push(n)}_update(){if(this.curves=[],this.roundedCurves=[],!this.points.length)return;for(let r=0,o=this.points.length;r<o;r++){let n=this.points[r];if(r===0)this.moveTo(n.position.x,n.position.y);else{let a=this.points[r-1];this._applyCurveForPoint(n,a)}}let e=this.getLastPoint();if(e?.curveAfter&&(e.curveAfter=void 0),this.isClosed){let r=this.points[0],o=this.points[this.points.length-1];this._applyCurveForPoint(r,o)}if(this.points.length>2){let r=0;for(let o=0,n=this.points.length;o<n;o++){let a=this.points[o],s=this.points[o-1]??this.points[this.points.length-1],l=this.points[o+1]??this.points[0],c=a.roundness,u=s&&l&&Sx(s,a,l);if(!a.controlsMoved()&&c>0&&!u){let d=a.curveBefore,p=a.curveAfter;if(d===void 0||p===void 0)continue;let f=a.roundedCurveBefore,h=a.roundedCurveAfter,m=d.getLength(),y=p.getLength(),x=Math.min(c,m*.499),v=Math.min(c,y*.499),w=Math.min(x,v),O=1-w/m,S=w/y,T=d.getPointAt(O,Cf),M=p.getPointAt(S,VM);this._subSplitCurve(d,f,O,T,void 0),this._subSplitCurve(p,h,S,void 0,M);let g;if(this.useCubicForRoundedCorners){let D=Pf(T,a.position,M)/2,E=Math.tan(D)*T.distanceTo(a.position),[I,N]=wx(T,M,E,zM,GM),_=Px(I,N,a.position),[R,V]=Ox(_,T,M,E,FM,jM);g=new Ye.CubicBezierCurve(T.clone(),R.clone(),V.clone(),M.clone())}else g=new Ye.QuadraticBezierCurve(T.clone(),a.position.clone(),M.clone());a.roundedCurveCorner=g,this.roundedCurves.splice(o+r,0,g),r++}}}}_subSplitCurve(e,r,o,n,a){if(e instanceof Ye.LineCurve)n!==void 0&&r.v2.copy(n),a!==void 0&&r.v1.copy(a);else{let s=e,l=r,c=s.getUtoTmapping(o,0),u=Tx(s.v0,s.v1,s.v2,s.v3,c);return n!==void 0&&(l.v0.set(u[0],u[1]),l.v1.set(u[2],u[3]),l.v2.set(u[4],u[5]),l.v3.set(u[6],u[7])),a!==void 0&&(l.v0.set(u[6],u[7]),l.v1.set(u[8],u[9]),l.v2.set(u[10],u[11]),l.v3.set(u[12],u[13])),l}return r}clone(){let e=new Xe(this._width,this._height);return e.points=this.points.map(r=>r.clone()),e.isClosed=this.isClosed,e.roundness=this.roundness,e.isMesh2D=this.isMesh2D,e.shapeHoles=this.shapeHoles.map(r=>r.clone()),e}toJSON(){return{points:this.points.reduce((e,r)=>e.concat(r.toJSON()),[]),shapeHoles:this.shapeHoles.map(e=>e.toJSON()),isClosed:this.isClosed,roundness:this.roundness}}fromJSON(e){this.points=[],this.pointIDs=0;let r=e.points.length/7;for(let o=0;o<r;o++){let n=o*7,a=e.points[n+0],s=e.points[n+1],l=e.points[n+2],c=e.points[n+3],u=e.points[n+4],d=e.points[n+5],p=e.points[n+6],f=new co(Ye.MathUtils.generateUUID(),new Ye.Vector2(a,s));f.controls[0].position.set(l,c),f.controls[1].position.set(u,d),f.roundness=p,this.points.push(f)}return this.shapeHoles=e.shapeHoles?.length?e.shapeHoles.map(o=>{let n=new Xe;return n.fromJSON(o),n}):[],this.isClosed=e.isClosed,this._roundness=e.roundness,this._update(),this}fromShape(e,r=!1){this.isText=r;let o=(a,s)=>{s instanceof Ye.CubicBezierCurve&&s.v3.equals(a.position)&&a.controls[0].position.copy(s.v2)},n=a=>{let s=[],l,c;for(l=0,c=a.length;l<c;l++)a[l]instanceof Ye.QuadraticBezierCurve&&(a[l]=vx(a[l]));for(l=0,c=a.length;l<c;l++){let p=a[l],f=l>0?a[l-1]:null,h;p instanceof Ye.CubicBezierCurve?(h=this.createPoint(p.v0),h.controls[1].position.copy(p.v1)):p instanceof Ye.LineCurve&&(h=this.createPoint(p.v1)),h!==void 0&&(f!==null&&o(h,f),s.push(h))}let u=a[a.length-1],d=!1;return u instanceof Ye.CubicBezierCurve?u.v3.equals(s[0].position)&&(s[0].controls[0].position.copy(u.v2),d=!0):u instanceof Ye.LineCurve&&u.v2.equals(s[0].position)&&(d=!0),this.isClosed=d,s};return this.points=n(e.curves),e instanceof Ye.Shape&&(this.shapeHoles=e.holes.map(a=>{let s=new Xe;return s.fromShape(a),s})),this.update(),this}updatePoint(e,r){let o=this.getPointByUuid(e);o&&(r.position!==void 0&&o.position.fromArray(r.position),r.roundness!==void 0&&(o.roundness=r.roundness),r.areControlsDirectionsMirrored!==void 0&&(o.areControlsDirectionsMirrored=r.areControlsDirectionsMirrored),this.needsUpdate=!0)}updatePreviousControl(e,r){let n=this.getPointByUuid(e)?.controls[0];n&&(r.position&&n.position.fromArray(r.position),this.needsUpdate=!0)}updateNextControl(e,r){let n=this.getPointByUuid(e)?.controls[1];n&&(r.position&&n.position.fromArray(r.position),this.needsUpdate=!0)}};var Mf=Math.PI*2;function Af({x:i,y:t},e,r,o,n){return{x:i*e+o,y:t*r+n}}function UM(i,t){let e=t===1.5707963267948966?.551915024494:t===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(t/4),r=Math.cos(i),o=Math.sin(i),n=Math.cos(i+t),a=Math.sin(i+t);return[{x:r-o*e,y:o+r*e},{x:n+a*e,y:a-n*e},{x:n,y:a}]}function Ix(i,t,e,r){let o=i*r-t*e<0?-1:1,n=Math.min(1,Math.max(-1,i*e+t*r));return o*Math.acos(n)}function kM(i,t,e,r,o,n,a,s,l,c){let u=Math.pow(o,2),d=Math.pow(n,2),p=Math.pow(a,2),f=Math.pow(s,2),h=u*d-u*f-d*p;h<0&&(h=0),h/=u*f+d*p,h=Math.sqrt(h)*(l===c?-1:1);let m=h*o/n*s,y=h*-n/o*a,x=m+(i+e)/2,v=y+(t+r)/2,w=(a-m)/o,O=(s-y)/n,S=(-a-m)/o,T=(-s-y)/n,M=Ix(1,0,w,O),g=Ix(w,O,S,T);return!c&&g>0&&(g-=Mf),c&&g<0&&(g+=Mf),{centerx:x,centery:v,ang1:M,ang2:g}}function Ex({px:i,py:t,cx:e,cy:r,rx:o,ry:n,largeArcFlag:a,sweepFlag:s}){let l=[];if(o===0||n===0)return[];let c=(i-e)/2,u=(t-r)/2;if(c===0&&u===0)return[];o=Math.abs(o),n=Math.abs(n);let d=Math.pow(c,2)/Math.pow(o,2)+Math.pow(u,2)/Math.pow(n,2);d>1&&(o*=Math.sqrt(d),n*=Math.sqrt(d));let p=kM(i,t,e,r,o,n,c,u,a,s),{ang1:f,ang2:h}=p,{centerx:m,centery:y}=p,x=Math.abs(h)/(Mf/4);Math.abs(1-x)<1e-7&&(x=1);let v=Math.max(Math.ceil(x),1);h/=v;for(let w=0;w<v;w++)l.push(UM(f,h)),f+=h;return l.map(w=>{let{x:O,y:S}=Af(w[0],o,n,m,y),{x:T,y:M}=Af(w[1],o,n,m,y),{x:g,y:D}=Af(w[2],o,n,m,y);return{x1:O,y1:S,x2:T,y2:M,x:g,y:D}})}var In=require("three");var $e;(function(i){i[i.ODD=0]="ODD",i[i.NONZERO=1]="NONZERO",i[i.POSITIVE=2]="POSITIVE",i[i.NEGATIVE=3]="NEGATIVE",i[i.ABS_GEQ_TWO=4]="ABS_GEQ_TWO"})($e||($e={}));var St;(function(i){i[i.POLYGONS=0]="POLYGONS",i[i.CONNECTED_POLYGONS=1]="CONNECTED_POLYGONS",i[i.BOUNDARY_CONTOURS=2]="BOUNDARY_CONTOURS"})(St||(St={}));function Oe(i,t){if(!i)throw t||"Assertion Failed!"}var we=function(){function i(){}return i.vertEq=function(t,e){return t.s===e.s&&t.t===e.t},i.vertLeq=function(t,e){return t.s<e.s||t.s===e.s&&t.t<=e.t},i.transLeq=function(t,e){return t.t<e.t||t.t===e.t&&t.s<=e.s},i.edgeGoesLeft=function(t){return i.vertLeq(t.Dst,t.Org)},i.edgeGoesRight=function(t){return i.vertLeq(t.Org,t.Dst)},i.vertL1dist=function(t,e){return Math.abs(t.s-e.s)+Math.abs(t.t-e.t)},i.edgeEval=function(t,e,r){Oe(i.vertLeq(t,e)&&i.vertLeq(e,r));var o=e.s-t.s,n=r.s-e.s;return o+n>0?o<n?e.t-t.t+(t.t-r.t)*(o/(o+n)):e.t-r.t+(r.t-t.t)*(n/(o+n)):0},i.edgeSign=function(t,e,r){Oe(i.vertLeq(t,e)&&i.vertLeq(e,r));var o=e.s-t.s,n=r.s-e.s;return o+n>0?(e.t-r.t)*o+(e.t-t.t)*n:0},i.transEval=function(t,e,r){Oe(i.transLeq(t,e)&&i.transLeq(e,r));var o=e.t-t.t,n=r.t-e.t;return o+n>0?o<n?e.s-t.s+(t.s-r.s)*(o/(o+n)):e.s-r.s+(r.s-t.s)*(n/(o+n)):0},i.transSign=function(t,e,r){Oe(i.transLeq(t,e)&&i.transLeq(e,r));var o=e.t-t.t,n=r.t-e.t;return o+n>0?(e.s-r.s)*o+(e.s-t.s)*n:0},i.vertCCW=function(t,e,r){return t.s*(e.t-r.t)+e.s*(r.t-t.t)+r.s*(t.t-e.t)>=0},i.interpolate=function(t,e,r,o){return t=t<0?0:t,r=r<0?0:r,t<=r?r===0?(e+o)/2:e+(o-e)*(t/(t+r)):o+(e-o)*(r/(t+r))},i.intersect=function(t,e,r,o,n){var a,s,l;i.vertLeq(t,e)||(l=t,t=e,e=l),i.vertLeq(r,o)||(l=r,r=o,o=l),i.vertLeq(t,r)||(l=t,t=r,r=l,l=e,e=o,o=l),i.vertLeq(r,e)?i.vertLeq(e,o)?(a=i.edgeEval(t,r,e),s=i.edgeEval(r,e,o),a+s<0&&(a=-a,s=-s),n.s=i.interpolate(a,r.s,s,e.s)):(a=i.edgeSign(t,r,e),s=-i.edgeSign(t,o,e),a+s<0&&(a=-a,s=-s),n.s=i.interpolate(a,r.s,s,o.s)):n.s=(r.s+e.s)/2,i.transLeq(t,e)||(l=t,t=e,e=l),i.transLeq(r,o)||(l=r,r=o,o=l),i.transLeq(t,r)||(l=t,t=r,r=l,l=e,e=o,o=l),i.transLeq(r,e)?i.transLeq(e,o)?(a=i.transEval(t,r,e),s=i.transEval(r,e,o),a+s<0&&(a=-a,s=-s),n.t=i.interpolate(a,r.t,s,e.t)):(a=i.transSign(t,r,e),s=-i.transSign(t,o,e),a+s<0&&(a=-a,s=-s),n.t=i.interpolate(a,r.t,s,o.t)):n.t=(r.t+e.t)/2},i}(),Cl=function(){function i(){this.next=null,this.prev=null,this.anEdge=null,this.trail=null,this.n=0,this.marked=!1,this.inside=!1}return i}(),Fu=function(){function i(t){this.side=t,this.next=null,this.Org=null,this.Sym=null,this.Onext=null,this.Lnext=null,this.Lface=null,this.activeRegion=null,this.winding=0}return Object.defineProperty(i.prototype,"Rface",{get:function(){return this.Sym.Lface},set:function(t){this.Sym.Lface=t},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Dst",{get:function(){return this.Sym.Org},set:function(t){this.Sym.Org=t},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Oprev",{get:function(){return this.Sym.Lnext},set:function(t){this.Sym.Lnext=t},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Lprev",{get:function(){return this.Onext.Sym},set:function(t){this.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Dprev",{get:function(){return this.Lnext.Sym},set:function(t){this.Lnext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Rprev",{get:function(){return this.Sym.Onext},set:function(t){this.Sym.Onext=t},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Dnext",{get:function(){return this.Sym.Onext.Sym},set:function(t){this.Sym.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Rnext",{get:function(){return this.Sym.Lnext.Sym},set:function(t){this.Sym.Lnext.Sym=t},enumerable:!0,configurable:!0}),i}(),qa=function(){function i(){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 i}(),Nx=function(){function i(){var t=new qa,e=new Cl,r=new Fu(0),o=new Fu(1);t.next=t.prev=t,t.anEdge=null,e.next=e.prev=e,r.next=r,r.Sym=o,o.next=o,o.Sym=r,this.vHead=t,this.fHead=e,this.eHead=r,this.eHeadSym=o}return i.prototype.makeEdge_=function(t){var e=new Fu(0),r=new Fu(1);t.Sym.side<t.side&&(t=t.Sym);var o=t.Sym.next;return r.next=o,o.Sym.next=e,e.next=t,t.Sym.next=r,e.Sym=r,e.Onext=e,e.Lnext=r,e.Org=null,e.Lface=null,e.winding=0,e.activeRegion=null,r.Sym=e,r.Onext=r,r.Lnext=e,r.Org=null,r.Lface=null,r.winding=0,r.activeRegion=null,e},i.prototype.splice_=function(t,e){var r=t.Onext,o=e.Onext;r.Sym.Lnext=e,o.Sym.Lnext=t,t.Onext=o,e.Onext=r},i.prototype.makeVertex_=function(t,e,r){var o=t;Oe(o,"Vertex can't be null!");var n=r.prev;o.prev=n,n.next=o,o.next=r,r.prev=o,o.anEdge=e;var a=e;do a.Org=o,a=a.Onext;while(a!==e)},i.prototype.makeFace_=function(t,e,r){var o=t;Oe(o,"Face can't be null");var n=r.prev;o.prev=n,n.next=o,o.next=r,r.prev=o,o.anEdge=e,o.trail=null,o.marked=!1,o.inside=r.inside;var a=e;do a.Lface=o,a=a.Lnext;while(a!==e)},i.prototype.killEdge_=function(t){t.Sym.side<t.side&&(t=t.Sym);var e=t.next,r=t.Sym.next;e.Sym.next=r,r.Sym.next=e},i.prototype.killVertex_=function(t,e){var r=t.anEdge,o=r;do o.Org=e,o=o.Onext;while(o!==r);var n=t.prev,a=t.next;a.prev=n,n.next=a},i.prototype.killFace_=function(t,e){var r=t.anEdge,o=r;do o.Lface=e,o=o.Lnext;while(o!==r);var n=t.prev,a=t.next;a.prev=n,n.next=a},i.prototype.makeEdge=function(){var t=new qa,e=new qa,r=new Cl,o=this.makeEdge_(this.eHead);return this.makeVertex_(t,o,this.vHead),this.makeVertex_(e,o.Sym,this.vHead),this.makeFace_(r,o,this.fHead),o},i.prototype.splice=function(t,e){var r=!1,o=!1;if(t!==e){if(e.Org!==t.Org&&(o=!0,this.killVertex_(e.Org,t.Org)),e.Lface!==t.Lface&&(r=!0,this.killFace_(e.Lface,t.Lface)),this.splice_(e,t),!o){var n=new qa;this.makeVertex_(n,e,t.Org),t.Org.anEdge=t}if(!r){var a=new Cl;this.makeFace_(a,e,t.Lface),t.Lface.anEdge=t}}},i.prototype.delete=function(t){var e=t.Sym,r=!1;if(t.Lface!==t.Rface&&(r=!0,this.killFace_(t.Lface,t.Rface)),t.Onext===t)this.killVertex_(t.Org,null);else if(t.Rface.anEdge=t.Oprev,t.Org.anEdge=t.Onext,this.splice_(t,t.Oprev),!r){var o=new Cl;this.makeFace_(o,t,t.Lface)}e.Onext===e?(this.killVertex_(e.Org,null),this.killFace_(e.Lface,null)):(t.Lface.anEdge=e.Oprev,e.Org.anEdge=e.Onext,this.splice_(e,e.Oprev)),this.killEdge_(t)},i.prototype.addEdgeVertex=function(t){var e=this.makeEdge_(t),r=e.Sym;this.splice_(e,t.Lnext),e.Org=t.Dst;var o=new qa;return this.makeVertex_(o,r,e.Org),e.Lface=r.Lface=t.Lface,e},i.prototype.splitEdge=function(t){var e=this.addEdgeVertex(t),r=e.Sym;return this.splice_(t.Sym,t.Sym.Oprev),this.splice_(t.Sym,r),t.Dst=r.Org,r.Dst.anEdge=r.Sym,r.Rface=t.Rface,r.winding=t.winding,r.Sym.winding=t.Sym.winding,r.idx=t.idx,r.Sym.idx=t.Sym.idx,r},i.prototype.connect=function(t,e){var r=!1,o=this.makeEdge_(t),n=o.Sym;if(e.Lface!==t.Lface&&(r=!0,this.killFace_(e.Lface,t.Lface)),this.splice_(o,t.Lnext),this.splice_(n,e),o.Org=t.Dst,n.Org=e.Org,o.Lface=n.Lface=t.Lface,t.Lface.anEdge=n,!r){var a=new Cl;this.makeFace_(a,o,t.Lface)}return o},i.prototype.zapFace=function(t){var e=t.anEdge,r,o,n,a,s;o=e.Lnext;do r=o,o=r.Lnext,r.Lface=null,r.Rface===null&&(r.Onext===r?this.killVertex_(r.Org,null):(r.Org.anEdge=r.Onext,this.splice_(r,r.Oprev)),n=r.Sym,n.Onext===n?this.killVertex_(n.Org,null):(n.Org.anEdge=n.Onext,this.splice_(n,n.Oprev)),this.killEdge_(r));while(r!=e);a=t.prev,s=t.next,s.prev=a,a.next=s},i.prototype.countFaceVerts_=function(t){var e=t.anEdge,r=0;do r++,e=e.Lnext;while(e!==t.anEdge);return r},i.prototype.mergeConvexFaces=function(t){var e,r,o,n,a,s,l;for(e=this.fHead.next;e!==this.fHead;e=e.next)if(!!e.inside)for(r=e.anEdge,a=r.Org;o=r.Lnext,n=r.Sym,n&&n.Lface&&n.Lface.inside&&(s=this.countFaceVerts_(e),l=this.countFaceVerts_(n.Lface),s+l-2<=t&&we.vertCCW(r.Lprev.Org,r.Org,n.Lnext.Lnext.Org)&&we.vertCCW(n.Lprev.Org,n.Org,r.Lnext.Lnext.Org)&&(o=n.Lnext,this.delete(n),r=null,n=null)),!(r&&r.Lnext.Org===a);)r=o;return!0},i.prototype.check=function(){var t=this.fHead,e=this.vHead,r=this.eHead,o,n,a,s,l,c;for(n=t,n=t;(o=n.next)!==t;n=o){Oe(o.prev===n),l=o.anEdge;do Oe(l.Sym!==l),Oe(l.Sym.Sym===l),Oe(l.Lnext.Onext.Sym===l),Oe(l.Onext.Sym.Lnext===l),Oe(l.Lface===o),l=l.Lnext;while(l!==o.anEdge)}for(Oe(o.prev===n&&o.anEdge===null),s=e,s=e;(a=s.next)!==e;s=a){Oe(a.prev===s),l=a.anEdge;do Oe(l.Sym!==l),Oe(l.Sym.Sym===l),Oe(l.Lnext.Onext.Sym===l),Oe(l.Onext.Sym.Lnext===l),Oe(l.Org===a),l=l.Onext;while(l!==a.anEdge)}for(Oe(a.prev===s&&a.anEdge===null),c=r,c=r;(l=c.next)!==r;c=l)Oe(l.Sym.next===c.Sym),Oe(l.Sym!==l),Oe(l.Sym.Sym===l),Oe(l.Org!==null),Oe(l.Dst!==null),Oe(l.Lnext.Onext.Sym===l),Oe(l.Onext.Sym.Lnext===l);Oe(l.Sym.next===c.Sym&&l.Sym===this.eHeadSym&&l.Sym.Sym===l&&l.Org===null&&l.Dst===null&&l.Lface===null&&l.Rface===null)},i}(),Dx=function(){function i(){this.handle=null}return i}(),_x=function(){function i(){this.key=null,this.node=0}return i}(),HM=function(){function i(t,e){this.leq=e,this.max=0,this.nodes=[],this.handles=[],this.initialized=!1,this.freeList=0,this.size=0,this.max=t,this.nodes=[],this.handles=[];for(var r=0;r<t+1;r++)this.nodes[r]=new Dx,this.handles[r]=new _x;this.initialized=!1,this.nodes[1].handle=1,this.handles[1].key=null}return i.prototype.floatDown_=function(t){var e=this.nodes,r=this.handles,o,n,a;for(o=e[t].handle;;){if(a=t<<1,a<this.size&&this.leq(r[e[a+1].handle].key,r[e[a].handle].key)&&++a,Oe(a<=this.max),n=e[a].handle,a>this.size||this.leq(r[o].key,r[n].key)){e[t].handle=o,r[o].node=t;break}e[t].handle=n,r[n].node=t,t=a}},i.prototype.floatUp_=function(t){var e=this.nodes,r=this.handles,o,n,a;for(o=e[t].handle;;){if(a=t>>1,n=e[a].handle,a===0||this.leq(r[n].key,r[o].key)){e[t].handle=o,r[o].node=t;break}e[t].handle=n,r[n].node=t,t=a}},i.prototype.init=function(){for(var t=this.size;t>=1;--t)this.floatDown_(t);this.initialized=!0},i.prototype.min=function(){return this.handles[this.nodes[1].handle].key},i.prototype.insert=function(t){var e,r;if(e=++this.size,e*2>this.max){this.max*=2;var o,n;for(n=this.nodes.length,this.nodes.length=this.max+1,o=n;o<this.nodes.length;o++)this.nodes[o]=new Dx;for(n=this.handles.length,this.handles.length=this.max+1,o=n;o<this.handles.length;o++)this.handles[o]=new _x}return this.freeList===0?r=e:(r=this.freeList,this.freeList=this.handles[r].node),this.nodes[e].handle=r,this.handles[r].node=e,this.handles[r].key=t,this.initialized&&this.floatUp_(e),r},i.prototype.extractMin=function(){var t=this.nodes,e=this.handles,r=t[1].handle,o=e[r].key;return this.size>0&&(t[1].handle=t[this.size].handle,e[t[1].handle].node=1,e[r].key=null,e[r].node=this.freeList,this.freeList=r,--this.size,this.size>0&&this.floatDown_(1)),o},i.prototype.delete=function(t){var e=this.nodes,r=this.handles,o;Oe(t>=1&&t<=this.max&&r[t].key!==null),o=r[t].node,e[o].handle=e[this.size].handle,r[e[o].handle].node=o,--this.size,o<=this.size&&(o<=1||this.leq(r[e[o>>1].handle].key,r[e[o].handle].key)?this.floatDown_(o):this.floatUp_(o)),r[t].key=null,r[t].node=this.freeList,this.freeList=t},i}(),If=function(){function i(){this.eUp=null,this.nodeUp=null,this.windingNumber=0,this.inside=!1,this.sentinel=!1,this.dirty=!1,this.fixUpperEdge=!1}return i}(),Rx=function(){function i(){this.key=null,this.next=null,this.prev=null}return i}(),WM=function(){function i(t,e){this.frame=t,this.leq=e,this.head=new Rx,this.head.next=this.head,this.head.prev=this.head}return i.prototype.min=function(){return this.head.next},i.prototype.max=function(){return this.head.prev},i.prototype.insert=function(t){return this.insertBefore(this.head,t)},i.prototype.search=function(t){var e=this.head;do e=e.next;while(e.key!==null&&!this.leq(this.frame,t,e.key));return e},i.prototype.insertBefore=function(t,e){do t=t.prev;while(t.key!==null&&!this.leq(this.frame,t.key,e));var r=new Rx;return r.key=e,r.next=t.next,t.next.prev=r,r.prev=t,t.next=r,r},i.prototype.delete=function(t){t.next.prev=t.prev,t.prev.next=t.next},i}(),qM=function(){function i(){}return i.regionBelow=function(t){return t.nodeUp.prev.key},i.regionAbove=function(t){return t.nodeUp.next.key},i.debugEvent=function(t){},i.addWinding=function(t,e){t.winding+=e.winding,t.Sym.winding+=e.Sym.winding},i.edgeLeq=function(t,e,r){var o=t.event,n=e.eUp,a=r.eUp;if(n.Dst===o)return a.Dst===o?we.vertLeq(n.Org,a.Org)?we.edgeSign(a.Dst,n.Org,a.Org)<=0:we.edgeSign(n.Dst,a.Org,n.Org)>=0:we.edgeSign(a.Dst,o,a.Org)<=0;if(a.Dst===o)return we.edgeSign(n.Dst,o,n.Org)>=0;var s=we.edgeEval(n.Dst,o,n.Org),l=we.edgeEval(a.Dst,o,a.Org);return s>=l},i.deleteRegion=function(t,e){e.fixUpperEdge&&Oe(e.eUp.winding===0),e.eUp.activeRegion=null,t.dict.delete(e.nodeUp)},i.fixUpperEdge=function(t,e,r){Oe(e.fixUpperEdge),t.mesh.delete(e.eUp),e.fixUpperEdge=!1,e.eUp=r,r.activeRegion=e},i.topLeftRegion=function(t,e){var r=e.eUp.Org,o;do e=i.regionAbove(e);while(e.eUp.Org===r);if(e.fixUpperEdge){if(o=t.mesh.connect(i.regionBelow(e).eUp.Sym,e.eUp.Lnext),o===null)return null;i.fixUpperEdge(t,e,o),e=i.regionAbove(e)}return e},i.topRightRegion=function(t){var e=t.eUp.Dst;do t=i.regionAbove(t);while(t.eUp.Dst===e);return t},i.addRegionBelow=function(t,e,r){var o=new If;return o.eUp=r,o.nodeUp=t.dict.insertBefore(e.nodeUp,o),o.fixUpperEdge=!1,o.sentinel=!1,o.dirty=!1,r.activeRegion=o,o},i.isWindingInside=function(t,e){switch(t.windingRule){case $e.ODD:return(e&1)!==0;case $e.NONZERO:return e!==0;case $e.POSITIVE:return e>0;case $e.NEGATIVE:return e<0;case $e.ABS_GEQ_TWO:return e>=2||e<=-2}throw new Error("Invalid winding rulle")},i.computeWinding=function(t,e){e.windingNumber=i.regionAbove(e).windingNumber+e.eUp.winding,e.inside=i.isWindingInside(t,e.windingNumber)},i.finishRegion=function(t,e){var r=e.eUp,o=r.Lface;o.inside=e.inside,o.anEdge=r,i.deleteRegion(t,e)},i.finishLeftRegions=function(t,e,r){for(var o,n=null,a=e,s=e.eUp;a!==r;){if(a.fixUpperEdge=!1,n=i.regionBelow(a),o=n.eUp,o.Org!=s.Org){if(!n.fixUpperEdge){i.finishRegion(t,a);break}o=t.mesh.connect(s.Lprev,o.Sym),i.fixUpperEdge(t,n,o)}s.Onext!==o&&(t.mesh.splice(o.Oprev,o),t.mesh.splice(s,o)),i.finishRegion(t,a),s=n.eUp,a=n}return s},i.addRightEdges=function(t,e,r,o,n,a){var s,l,c,u,d=!0;c=r;do Oe(we.vertLeq(c.Org,c.Dst)),i.addRegionBelow(t,e,c.Sym),c=c.Onext;while(c!==o);for(n===null&&(n=i.regionBelow(e).eUp.Rprev),l=e,u=n;s=i.regionBelow(l),c=s.eUp.Sym,c.Org===u.Org;)c.Onext!==u&&(t.mesh.splice(c.Oprev,c),t.mesh.splice(u.Oprev,c)),s.windingNumber=l.windingNumber-c.winding,s.inside=i.isWindingInside(t,s.windingNumber),l.dirty=!0,!d&&i.checkForRightSplice(t,l)&&(i.addWinding(c,u),i.deleteRegion(t,l),t.mesh.delete(u)),d=!1,l=s,u=c;l.dirty=!0,Oe(l.windingNumber-c.winding===s.windingNumber),a&&i.walkDirtyRegions(t,l)},i.spliceMergeVertices=function(t,e,r){t.mesh.splice(e,r)},i.vertexWeights=function(t,e,r){var o=we.vertL1dist(e,t),n=we.vertL1dist(r,t),a=.5*n/(o+n),s=.5*o/(o+n);t.coords[0]+=a*e.coords[0]+s*r.coords[0],t.coords[1]+=a*e.coords[1]+s*r.coords[1],t.coords[2]+=a*e.coords[2]+s*r.coords[2]},i.getIntersectData=function(t,e,r,o,n,a){e.coords[0]=e.coords[1]=e.coords[2]=0,e.idx=-1,i.vertexWeights(e,r,o),i.vertexWeights(e,n,a)},i.checkForRightSplice=function(t,e){var r=i.regionBelow(e),o=e.eUp,n=r.eUp;if(we.vertLeq(o.Org,n.Org)){if(we.edgeSign(n.Dst,o.Org,n.Org)>0)return!1;we.vertEq(o.Org,n.Org)?o.Org!==n.Org&&(t.pq.delete(o.Org.pqHandle),i.spliceMergeVertices(t,n.Oprev,o)):(t.mesh.splitEdge(n.Sym),t.mesh.splice(o,n.Oprev),e.dirty=r.dirty=!0)}else{if(we.edgeSign(o.Dst,n.Org,o.Org)<0)return!1;i.regionAbove(e).dirty=e.dirty=!0,t.mesh.splitEdge(o.Sym),t.mesh.splice(n.Oprev,o)}return!0},i.checkForLeftSplice=function(t,e){var r=i.regionBelow(e),o=e.eUp,n=r.eUp,a;if(Oe(!we.vertEq(o.Dst,n.Dst)),we.vertLeq(o.Dst,n.Dst)){if(we.edgeSign(o.Dst,n.Dst,o.Org)<0)return!1;i.regionAbove(e).dirty=e.dirty=!0,a=t.mesh.splitEdge(o),t.mesh.splice(n.Sym,a),a.Lface.inside=e.inside}else{if(we.edgeSign(n.Dst,o.Dst,n.Org)>0)return!1;e.dirty=r.dirty=!0,a=t.mesh.splitEdge(n),t.mesh.splice(o.Lnext,n.Sym),a.Rface.inside=e.inside}return!0},i.checkForIntersect=function(t,e){var r=i.regionBelow(e),o=e.eUp,n=r.eUp,a=o.Org,s=n.Org,l=o.Dst,c=n.Dst,u,d,p=new qa,f,h;if(Oe(!we.vertEq(c,l)),Oe(we.edgeSign(l,t.event,a)<=0),Oe(we.edgeSign(c,t.event,s)>=0),Oe(a!==t.event&&s!==t.event),Oe(!e.fixUpperEdge&&!r.fixUpperEdge),a===s||(u=Math.min(a.t,l.t),d=Math.max(s.t,c.t),u>d))return!1;if(we.vertLeq(a,s)){if(we.edgeSign(c,a,s)>0)return!1}else if(we.edgeSign(l,s,a)<0)return!1;return i.debugEvent(t),we.intersect(l,a,c,s,p),Oe(Math.min(a.t,l.t)<=p.t),Oe(p.t<=Math.max(s.t,c.t)),Oe(Math.min(c.s,l.s)<=p.s),Oe(p.s<=Math.max(s.s,a.s)),we.vertLeq(p,t.event)&&(p.s=t.event.s,p.t=t.event.t),f=we.vertLeq(a,s)?a:s,we.vertLeq(f,p)&&(p.s=f.s,p.t=f.t),we.vertEq(p,a)||we.vertEq(p,s)?(i.checkForRightSplice(t,e),!1):!we.vertEq(l,t.event)&&we.edgeSign(l,t.event,p)>=0||!we.vertEq(c,t.event)&&we.edgeSign(c,t.event,p)<=0?c===t.event?(t.mesh.splitEdge(o.Sym),t.mesh.splice(n.Sym,o),e=i.topLeftRegion(t,e),o=i.regionBelow(e).eUp,i.finishLeftRegions(t,i.regionBelow(e),r),i.addRightEdges(t,e,o.Oprev,o,o,!0),!0):l===t.event?(t.mesh.splitEdge(n.Sym),t.mesh.splice(o.Lnext,n.Oprev),r=e,e=i.topRightRegion(e),h=i.regionBelow(e).eUp.Rprev,r.eUp=n.Oprev,n=i.finishLeftRegions(t,r,null),i.addRightEdges(t,e,n.Onext,o.Rprev,h,!0),!0):(we.edgeSign(l,t.event,p)>=0&&(i.regionAbove(e).dirty=e.dirty=!0,t.mesh.splitEdge(o.Sym),o.Org.s=t.event.s,o.Org.t=t.event.t),we.edgeSign(c,t.event,p)<=0&&(e.dirty=r.dirty=!0,t.mesh.splitEdge(n.Sym),n.Org.s=t.event.s,n.Org.t=t.event.t),!1):(t.mesh.splitEdge(o.Sym),t.mesh.splitEdge(n.Sym),t.mesh.splice(n.Oprev,o),o.Org.s=p.s,o.Org.t=p.t,o.Org.pqHandle=t.pq.insert(o.Org),i.getIntersectData(t,o.Org,a,l,s,c),i.regionAbove(e).dirty=e.dirty=r.dirty=!0,!1)},i.walkDirtyRegions=function(t,e){for(var r=i.regionBelow(e),o,n;;){for(;r.dirty;)e=r,r=i.regionBelow(r);if(!e.dirty&&(r=e,e=i.regionAbove(e),e===null||!e.dirty))return;if(e.dirty=!1,o=e.eUp,n=r.eUp,o.Dst!==n.Dst&&i.checkForLeftSplice(t,e)&&(r.fixUpperEdge?(i.deleteRegion(t,r),t.mesh.delete(n),r=i.regionBelow(e),n=r.eUp):e.fixUpperEdge&&(i.deleteRegion(t,e),t.mesh.delete(o),e=i.regionAbove(r),o=e.eUp)),o.Org!==n.Org)if(o.Dst!==n.Dst&&!e.fixUpperEdge&&!r.fixUpperEdge&&(o.Dst===t.event||n.Dst===t.event)){if(i.checkForIntersect(t,e))return}else i.checkForRightSplice(t,e);o.Org===n.Org&&o.Dst===n.Dst&&(i.addWinding(n,o),i.deleteRegion(t,e),t.mesh.delete(o),e=i.regionAbove(r))}},i.connectRightVertex=function(t,e,r){var o,n=r.Onext,a=i.regionBelow(e),s=e.eUp,l=a.eUp,c=!1;if(s.Dst!==l.Dst&&i.checkForIntersect(t,e),we.vertEq(s.Org,t.event)&&(t.mesh.splice(n.Oprev,s),e=i.topLeftRegion(t,e),n=i.regionBelow(e).eUp,i.finishLeftRegions(t,i.regionBelow(e),a),c=!0),we.vertEq(l.Org,t.event)&&(t.mesh.splice(r,l.Oprev),r=i.finishLeftRegions(t,a,null),c=!0),c){i.addRightEdges(t,e,r.Onext,n,n,!0);return}we.vertLeq(l.Org,s.Org)?o=l.Oprev:o=s,o=t.mesh.connect(r.Lprev,o),i.addRightEdges(t,e,o,o.Onext,o.Onext,!1),o.Sym.activeRegion.fixUpperEdge=!0,i.walkDirtyRegions(t,e)},i.connectLeftDegenerate=function(t,e,r){var o,n,a,s,l;if(o=e.eUp,we.vertEq(o.Org,r)){Oe(!1),i.spliceMergeVertices(t,o,r.anEdge);return}if(!we.vertEq(o.Dst,r)){t.mesh.splitEdge(o.Sym),e.fixUpperEdge&&(t.mesh.delete(o.Onext),e.fixUpperEdge=!1),t.mesh.splice(r.anEdge,o),i.sweepEvent(t,r);return}Oe(!1),e=i.topRightRegion(e),l=i.regionBelow(e),a=l.eUp.Sym,n=s=a.Onext,l.fixUpperEdge&&(Oe(n!==a),i.deleteRegion(t,l),t.mesh.delete(a),a=n.Oprev),t.mesh.splice(r.anEdge,a),we.edgeGoesLeft(n)||(n=null),i.addRightEdges(t,e,a.Onext,s,n,!0)},i.connectLeftVertex=function(t,e){var r,o,n,a,s,l,c=new If;if(c.eUp=e.anEdge.Sym,r=t.dict.search(c).key,o=i.regionBelow(r),!!o){if(a=r.eUp,s=o.eUp,we.edgeSign(a.Dst,e,a.Org)===0){i.connectLeftDegenerate(t,r,e);return}if(n=we.vertLeq(s.Dst,a.Dst)?r:o,r.inside||n.fixUpperEdge){if(n===r)l=t.mesh.connect(e.anEdge.Sym,a.Lnext);else{var u=t.mesh.connect(s.Dnext,e.anEdge);l=u.Sym}n.fixUpperEdge?i.fixUpperEdge(t,n,l):i.computeWinding(t,i.addRegionBelow(t,r,l)),i.sweepEvent(t,e)}else i.addRightEdges(t,r,e.anEdge,e.anEdge,null,!0)}},i.sweepEvent=function(t,e){t.event=e,i.debugEvent(t);for(var r=e.anEdge;r.activeRegion===null;)if(r=r.Onext,r===e.anEdge){i.connectLeftVertex(t,e);return}var o=i.topLeftRegion(t,r.activeRegion);Oe(o!==null);var n=i.regionBelow(o),a=n.eUp,s=i.finishLeftRegions(t,n,null);s.Onext===a?i.connectRightVertex(t,o,s):i.addRightEdges(t,o,s.Onext,a,a,!0)},i.addSentinel=function(t,e,r,o){var n=new If,a=t.mesh.makeEdge();a.Org.s=r,a.Org.t=o,a.Dst.s=e,a.Dst.t=o,t.event=a.Dst,n.eUp=a,n.windingNumber=0,n.inside=!1,n.fixUpperEdge=!1,n.sentinel=!0,n.dirty=!1,n.nodeUp=t.dict.insert(n)},i.initEdgeDict=function(t){t.dict=new WM(t,i.edgeLeq);var e=t.bmax[0]-t.bmin[0],r=t.bmax[1]-t.bmin[1],o=t.bmin[0]-e,n=t.bmax[0]+e,a=t.bmin[1]-r,s=t.bmax[1]+r;i.addSentinel(t,o,n,a),i.addSentinel(t,o,n,s)},i.doneEdgeDict=function(t){for(var e,r=0;(e=t.dict.min().key)!==null;)e.sentinel||(Oe(e.fixUpperEdge),Oe(++r===1)),Oe(e.windingNumber===0),i.deleteRegion(t,e)},i.removeDegenerateEdges=function(t){var e,r,o,n=t.mesh.eHead;for(e=n.next;e!==n;e=r)r=e.next,o=e.Lnext,we.vertEq(e.Org,e.Dst)&&e.Lnext.Lnext!==e&&(i.spliceMergeVertices(t,o,e),t.mesh.delete(e),e=o,o=e.Lnext),o.Lnext===e&&(o!==e&&((o===r||o===r.Sym)&&(r=r.next),t.mesh.delete(o)),(e===r||e===r.Sym)&&(r=r.next),t.mesh.delete(e))},i.initPriorityQ=function(t){var e,r,o,n=0;for(o=t.mesh.vHead,r=o.next;r!==o;r=r.next)n++;for(n+=8,e=t.pq=new HM(n,we.vertLeq),o=t.mesh.vHead,r=o.next;r!==o;r=r.next)r.pqHandle=e.insert(r);return r!==o?!1:(e.init(),!0)},i.donePriorityQ=function(t){t.pq=null},i.removeDegenerateFaces=function(t,e){var r,o,n;for(r=e.fHead.next;r!==e.fHead;r=o)o=r.next,n=r.anEdge,Oe(n.Lnext!==n),n.Lnext.Lnext===n&&(i.addWinding(n.Onext,n),t.mesh.delete(n));return!0},i.computeInterior=function(t,e){e===void 0&&(e=!0);var r,o;if(i.removeDegenerateEdges(t),!i.initPriorityQ(t))return!1;for(i.initEdgeDict(t);(r=t.pq.extractMin())!==null;){for(;o=t.pq.min(),!(o===null||!we.vertEq(o,r));)o=t.pq.extractMin(),i.spliceMergeVertices(t,r.anEdge,o.anEdge);i.sweepEvent(t,r)}return t.event=t.dict.min().key.eUp.Org,i.debugEvent(t),i.doneEdgeDict(t),i.donePriorityQ(t),i.removeDegenerateFaces(t,t.mesh)?(e&&t.mesh.check(),!0):!1},i}(),$M=function(){function i(){this.mesh=new Nx,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=$e.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 i.prototype.dot_=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]},i.prototype.normalize_=function(t){var e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2];if(!e)throw"Zero-size vector!";e=Math.sqrt(e),t[0]/=e,t[1]/=e,t[2]/=e},i.prototype.longAxis_=function(t){var e=0;return Math.abs(t[1])>Math.abs(t[0])&&(e=1),Math.abs(t[2])>Math.abs(t[e])&&(e=2),e},i.prototype.computeNormal_=function(t){var e,r,o,n,a,s,l=[0,0,0],c=[0,0,0],u=[0,0,0],d=[0,0,0],p=[0,0,0],f=[null,null,null],h=[null,null,null],m=this.mesh.vHead;e=m.next;for(var y=0;y<3;++y)n=e.coords[y],c[y]=n,h[y]=e,l[y]=n,f[y]=e;for(e=m.next;e!==m;e=e.next)for(var x=0;x<3;++x)n=e.coords[x],n<c[x]&&(c[x]=n,h[x]=e),n>l[x]&&(l[x]=n,f[x]=e);var v=0;if(l[1]-c[1]>l[0]-c[0]&&(v=1),l[2]-c[2]>l[v]-c[v]&&(v=2),c[v]>=l[v]){t[0]=0,t[1]=0,t[2]=1;return}for(s=0,r=h[v],o=f[v],u[0]=r.coords[0]-o.coords[0],u[1]=r.coords[1]-o.coords[1],u[2]=r.coords[2]-o.coords[2],e=m.next;e!==m;e=e.next)d[0]=e.coords[0]-o.coords[0],d[1]=e.coords[1]-o.coords[1],d[2]=e.coords[2]-o.coords[2],p[0]=u[1]*d[2]-u[2]*d[1],p[1]=u[2]*d[0]-u[0]*d[2],p[2]=u[0]*d[1]-u[1]*d[0],a=p[0]*p[0]+p[1]*p[1]+p[2]*p[2],a>s&&(s=a,t[0]=p[0],t[1]=p[1],t[2]=p[2]);s<=0&&(t[0]=t[1]=t[2]=0,t[this.longAxis_(u)]=1)},i.prototype.checkOrientation_=function(){for(var t=this.mesh.fHead,e,r=this.mesh.vHead,o,n=0,a=t.next;a!==t;a=a.next)if(o=a.anEdge,!(o.winding<=0))do n+=(o.Org.s-o.Dst.s)*(o.Org.t+o.Dst.t),o=o.Lnext;while(o!==a.anEdge);if(n<0){for(e=r.next;e!==r;e=e.next)e.t=-e.t;this.tUnit[0]=-this.tUnit[0],this.tUnit[1]=-this.tUnit[1],this.tUnit[2]=-this.tUnit[2]}},i.prototype.projectPolygon_=function(){var t=this.mesh.vHead,e=[0,0,0],r,o,n=!1;e[0]=this.normal[0],e[1]=this.normal[1],e[2]=this.normal[2],!e[0]&&!e[1]&&!e[2]&&(this.computeNormal_(e),n=!0),r=this.sUnit,o=this.tUnit;var a=this.longAxis_(e);r[a]=0,r[(a+1)%3]=1,r[(a+2)%3]=0,o[a]=0,o[(a+1)%3]=0,o[(a+2)%3]=e[a]>0?1:-1;for(var s=t.next;s!==t;s=s.next)s.s=this.dot_(s.coords,r),s.t=this.dot_(s.coords,o);n&&this.checkOrientation_();for(var l=!0,c=t.next;c!==t;c=c.next)l?(this.bmin[0]=this.bmax[0]=c.s,this.bmin[1]=this.bmax[1]=c.t,l=!1):(c.s<this.bmin[0]&&(this.bmin[0]=c.s),c.s>this.bmax[0]&&(this.bmax[0]=c.s),c.t<this.bmin[1]&&(this.bmin[1]=c.t),c.t>this.bmax[1]&&(this.bmax[1]=c.t))},i.prototype.addWinding_=function(t,e){t.winding+=e.winding,t.Sym.winding+=e.Sym.winding},i.prototype.tessellateMonoRegion_=function(t,e){var r,o;if(r=e.anEdge,!(r.Lnext!==r&&r.Lnext.Lnext!==r))throw"Mono region invalid";for(;we.vertLeq(r.Dst,r.Org);r=r.Lprev);for(;we.vertLeq(r.Org,r.Dst);r=r.Lnext);o=r.Lprev;for(var n=void 0;r.Lnext!==o;)if(we.vertLeq(r.Dst,o.Org)){for(;o.Lnext!==r&&(we.edgeGoesLeft(o.Lnext)||we.edgeSign(o.Org,o.Dst,o.Lnext.Dst)<=0);)n=t.connect(o.Lnext,o),o=n.Sym;o=o.Lprev}else{for(;o.Lnext!==r&&(we.edgeGoesRight(r.Lprev)||we.edgeSign(r.Dst,r.Org,r.Lprev.Org)>=0);)n=t.connect(r,r.Lprev),r=n.Sym;r=r.Lnext}if(o.Lnext===r)throw"Mono region invalid";for(;o.Lnext.Lnext!==r;)n=t.connect(o.Lnext,o),o=n.Sym;return!0},i.prototype.tessellateInterior_=function(t){for(var e,r=t.fHead.next;r!==t.fHead;r=e)if(e=r.next,r.inside&&!this.tessellateMonoRegion_(t,r))return!1;return!0},i.prototype.discardExterior_=function(t){for(var e,r=t.fHead.next;r!==t.fHead;r=e)e=r.next,r.inside||t.zapFace(r)},i.prototype.setWindingNumber_=function(t,e,r){for(var o,n=t.eHead.next;n!==t.eHead;n=o)o=n.next,n.Rface.inside!==n.Lface.inside?n.winding=n.Lface.inside?e:-e:r?t.delete(n):n.winding=0},i.prototype.getNeighbourFace_=function(t){return!t.Rface||!t.Rface.inside?-1:t.Rface.n},i.prototype.outputPolymesh_=function(t,e,r,o){var n,a=0,s=0,l;r>3&&t.mergeConvexFaces(r);for(var c=t.vHead.next;c!==t.vHead;c=c.next)c.n=-1;for(var u=t.fHead.next;u!==t.fHead;u=u.next)if(u.n=-1,!!u.inside){n=u.anEdge,l=0;do{var c=n.Org;c.n===-1&&(c.n=s,s++),l++,n=n.Lnext}while(n!==u.anEdge);if(l>r)throw"Face vertex greater that support polygon";u.n=a,++a}this.elementCount=a,e===St.CONNECTED_POLYGONS&&(a*=2),this.elements=[],this.elements.length=a*r,this.vertexCount=s,this.vertices=[],this.vertices.length=s*o,this.vertexIndices=[],this.vertexIndices.length=s;for(var c=t.vHead.next;c!==t.vHead;c=c.next)if(c.n!==-1){var d=c.n*o;this.vertices[d+0]=c.coords[0],this.vertices[d+1]=c.coords[1],o>2&&(this.vertices[d+2]=c.coords[2]),this.vertexIndices[c.n]=c.idx}for(var p=0,u=t.fHead.next;u!==t.fHead;u=u.next)if(!!u.inside){n=u.anEdge,l=0;do{var c=n.Org;this.elements[p++]=c.n,l++,n=n.Lnext}while(n!==u.anEdge);for(var f=l;f<r;++f)this.elements[p++]=-1;if(e===St.CONNECTED_POLYGONS){n=u.anEdge;do this.elements[p++]=this.getNeighbourFace_(n),n=n.Lnext;while(n!==u.anEdge);for(var h=l;h<r;++h)this.elements[p++]=-1}}},i.prototype.outputContours_=function(t,e){var r,o,n=0,a=0;this.vertexCount=0,this.elementCount=0;for(var s=t.fHead.next;s!==t.fHead;s=s.next)if(!!s.inside){o=r=s.anEdge;do this.vertexCount++,r=r.Lnext;while(r!==o);this.elementCount++}this.elements=[],this.elements.length=this.elementCount*2,this.vertices=[],this.vertices.length=this.vertexCount*e,this.vertexIndices=[],this.vertexIndices.length=this.vertexCount;var l=0,c=0,u=0;n=0;for(var s=t.fHead.next;s!==t.fHead;s=s.next)if(!!s.inside){a=0,o=r=s.anEdge;do this.vertices[l++]=r.Org.coords[0],this.vertices[l++]=r.Org.coords[1],e>2&&(this.vertices[l++]=r.Org.coords[2]),this.vertexIndices[c++]=this.vertexIdCallback?this.vertexIdCallback(r):r.Org.idx,a++,r=r.Lnext;while(r!==o);this.elements[u++]=n,this.elements[u++]=a,n+=a}},i.prototype.addContour=function(t,e){this.mesh===null&&(this.mesh=new Nx),t<2&&(t=2),t>3&&(t=3);for(var r=null,o=0;o<e.length;o+=t)r===null?(r=this.mesh.makeEdge(),this.mesh.splice(r,r.Sym)):(this.mesh.splitEdge(r),r=r.Lnext),r.Org.coords[0]=e[o+0],r.Org.coords[1]=e[o+1],t>2?r.Org.coords[2]=e[o+2]:r.Org.coords[2]=0,r.Org.idx=this.vertexIndexCounter++,this.edgeCreateCallback&&this.edgeCreateCallback(r),r.winding=1,r.Sym.winding=-1},i.prototype.tesselate=function(t,e,r,o,n,a){if(t===void 0&&(t=$e.ODD),e===void 0&&(e=St.POLYGONS),a===void 0&&(a=!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=t,o<2&&(o=2),o>3&&(o=3),!this.mesh)return!1;this.projectPolygon_(),qM.computeInterior(this,a);var s=this.mesh;return e===St.BOUNDARY_CONTOURS?this.setWindingNumber_(s,1,!0):this.tessellateInterior_(s),a&&s.check(),e===St.BOUNDARY_CONTOURS?this.outputContours_(s,o):this.outputPolymesh_(s,e,r,o),!0},i}();function uo(i){var t=i.windingRule,e=t===void 0?$e.ODD:t,r=i.elementType,o=r===void 0?St.POLYGONS:r,n=i.polySize,a=n===void 0?3:n,s=i.vertexSize,l=s===void 0?2:s,c=i.normal,u=c===void 0?[0,0,1]:c,d=i.contours,p=d===void 0?[]:d,f=i.strict,h=f===void 0?!0:f,m=i.debug,y=m===void 0?!1:m;if(!p&&h)throw new Error("Contours can't be empty");if(!!p){var x=new $M;i.edgeCreateCallback&&(x.edgeCreateCallback=i.edgeCreateCallback),i.vertexIdCallback&&(x.vertexIdCallback=i.vertexIdCallback);for(var v=0;v<p.length;v++)x.addContour(l||2,p[v]);return x.tesselate(e,o,a,l,u,h),{vertices:x.vertices,vertexIndices:x.vertexIndices,vertexCount:x.vertexCount,elements:x.elements,elementCount:x.elementCount,mesh:y?x.mesh:void 0}}}var w5=$e.ODD,P5=$e.NONZERO,O5=$e.POSITIVE,T5=$e.NEGATIVE,C5=$e.ABS_GEQ_TWO,A5=St.POLYGONS,M5=St.CONNECTED_POLYGONS,I5=St.BOUNDARY_CONTOURS;var po=require("three");var ju=class{constructor(t=256,e=!1){this.capacity=t,this.size=0,this.debug=e,this.debug&&console.log(`allocating with cap ${t}`);let r=t*ju.eSize;this.buffer=new ArrayBuffer(r);let o=Float32Array.BYTES_PER_ELEMENT,n=0;this.positions=new Float32Array(this.buffer,n*o,3*t),n+=3*t,this.normals=new Float32Array(this.buffer,n*o,3*t),n+=3*t,this.uvs=new Float32Array(this.buffer,n*o,2*t)}realloc(t,e=!1){if(t<this.size)throw Error("cannot shrink buffer");if(t<=this.capacity&&!e)return;this.debug&&console.log(`resizing from ${this.capacity} \u2192 ${t}`);let r=t*ju.eSize,o=new ArrayBuffer(r),n=Float32Array.BYTES_PER_ELEMENT,a=0,s=new Float32Array(o,a*n,3*t);a+=3*t;let l=new Float32Array(o,a*n,3*t);a+=3*t;let c=new Float32Array(o,a*n,2*t);e?(s.set(this.positions.subarray(0,this.size*3)),l.set(this.normals.subarray(0,this.size*3)),c.set(this.uvs.subarray(0,this.size*2))):(s.set(this.positions),l.set(this.normals),c.set(this.uvs)),this.buffer=o,this.positions=s,this.normals=l,this.uvs=c,this.capacity=t}get(t=1){let e=this.size+t;if(e>this.capacity){let o=this.capacity;for(;e>o;)o*=2;this.realloc(o)}let r=this.size;return this.size=e,r}reserve(t){let e=this.size+t;e>this.capacity&&this.realloc(e)}shrink(){this.debug&&console.log(`shrinking ${this.capacity} \u2192 ${this.size}`),this.realloc(this.size,!0)}},Al=ju;Al.eSize=(3+3+2)*Float32Array.BYTES_PER_ELEMENT;var Ml=class{constructor(t=[],e=(r,o)=>r<o?-1:r>o?1:0){if(this.data=t,this.length=this.data.length,this.compare=e,this.length>0)for(let r=(this.length>>1)-1;r>=0;r--)this._down(r)}push(t){this.data.push(t),this._up(this.length++)}pop(){if(this.length===0)return;let t=this.data[0],e=this.data.pop();return--this.length>0&&(this.data[0]=e,this._down(0)),t}peek(){return this.data[0]}_up(t){let{data:e,compare:r}=this,o=e[t];for(;t>0;){let n=t-1>>1,a=e[n];if(r(o,a)>=0)break;e[t]=a,t=n}e[t]=o}_down(t){let{data:e,compare:r}=this,o=this.length>>1,n=e[t];for(;t<o;){let a=(t<<1)+1,s=a+1;if(s<this.length&&r(e[s],e[a])<0&&(a=s),r(e[a],n)>=0)break;e[t]=e[a],t=a}e[t]=n}};function Ef(i,t,e=1,r=!1){let o=1/0,n=1/0,a=-1/0,s=-1/0;for(let[v,w]of i[0])v<o&&(o=v),w<n&&(n=w),v>a&&(a=v),w>s&&(s=w);let l=a-o,c=s-n,u=Math.max(e,Math.min(l,c));if(u===e){let v=[o,n];return v.distance=0,v.distance}let d=new Ml([],(v,w)=>w.max-v.max),p=YM(i),f=new Uu(o+l/2,n+c/2,0,i);f.d>p.d&&(p=f);let h=2;function m(v,w,O){let S=new Uu(v,w,O,i);if(h++,S.max>p.d+e&&d.push(S),S.d>p.d&&(p=S,r&&console.log(`found best ${Math.round(1e4*S.d)/1e4} after ${h} probes`),p.d>t))return t}let y=u/2;for(let v=o;v<a;v+=u)for(let w=n;w<s;w+=u)m(v+y,w+y,y);for(;d.length;){let{max:v,x:w,y:O,h:S}=d.pop();if(v-p.d<=e)break;y=S/2,m(w-y,O-y,y),m(w+y,O-y,y),m(w-y,O+y,y),m(w+y,O+y,y)}r&&console.log(`num probes: ${h}
2
+ `,"\r"],!1,!1),C=0,ne=0,Ve=[{line:1,column:1}],ke=0,Ge=[],Ce=0,zt;if("startRule"in t){if(!(t.startRule in r))throw new Error(`Can't start parsing from rule "`+t.startRule+'".');o=r[t.startRule]}function _e(){return i.substring(ne,C)}function Bt(){return hn(ne,C)}function Gt(b,P){throw P=P!==void 0?P:hn(ne,C),Gr([dp(b)],i.substring(ne,C),P)}function fn(b,P){throw P=P!==void 0?P:hn(ne,C),pp(b,P)}function xt(b,P){return{type:"literal",text:b,ignoreCase:P}}function at(b,P,L){return{type:"class",parts:b,inverted:P,ignoreCase:L}}function ro(){return{type:"any"}}function up(){return{type:"end"}}function dp(b){return{type:"other",description:b}}function mc(b){var P=Ve[b],L;if(P)return P;for(L=b-1;!Ve[L];)L--;for(P=Ve[L],P={line:P.line,column:P.column};L<b;)i.charCodeAt(L)===10?(P.line++,P.column=1):P.column++,L++;return Ve[b]=P,P}function hn(b,P){var L=mc(b),A=mc(P);return{start:{offset:b,line:L.line,column:L.column},end:{offset:P,line:A.line,column:A.column}}}function Ot(b){C<ke||(C>ke&&(ke=C,Ge=[]),Ge.push(b))}function pp(b,P){return new kn(b,null,null,P)}function Gr(b,P,L){return new kn(kn.buildMessage(b,P),b,P,L)}function Js(){var b,P,L,A,z;for(b=C,P=[],L=He();L!==e;)P.push(L),L=He();if(P!==e)if(L=ur(),L===e&&(L=null),L!==e){for(A=[],z=He();z!==e;)A.push(z),z=He();A!==e?(ne=b,P=n(L),b=P):(C=b,b=e)}else C=b,b=e;else C=b,b=e;return b}function ur(){var b,P,L,A,z,oe;if(b=C,P=mn(),P!==e){for(L=[],A=C,z=[],oe=He();oe!==e;)z.push(oe),oe=He();for(z!==e?(oe=mn(),oe!==e?(z=[z,oe],A=z):(C=A,A=e)):(C=A,A=e);A!==e;){for(L.push(A),A=C,z=[],oe=He();oe!==e;)z.push(oe),oe=He();z!==e?(oe=mn(),oe!==e?(z=[z,oe],A=z):(C=A,A=e)):(C=A,A=e)}L!==e?(ne=b,P=a(P,L),b=P):(C=b,b=e)}else C=b,b=e;return b}function mn(){var b,P,L,A,z,oe;if(b=C,P=$n(),P!==e){for(L=[],A=C,z=[],oe=He();oe!==e;)z.push(oe),oe=He();for(z!==e?(oe=yc(),oe!==e?(z=[z,oe],A=z):(C=A,A=e)):(C=A,A=e);A!==e;){for(L.push(A),A=C,z=[],oe=He();oe!==e;)z.push(oe),oe=He();z!==e?(oe=yc(),oe!==e?(z=[z,oe],A=z):(C=A,A=e)):(C=A,A=e)}L!==e?(ne=b,P=a(P,L),b=P):(C=b,b=e)}else C=b,b=e;return b}function yc(){var b;return b=yS(),b===e&&(b=gS(),b===e&&(b=xS(),b===e&&(b=bS(),b===e&&(b=vS(),b===e&&(b=wS(),b===e&&(b=OS(),b===e&&(b=CS(),b===e&&(b=MS())))))))),b}function $n(){var b,P,L,A,z,oe,Kn;if(b=C,s.test(i.charAt(C))?(P=i.charAt(C),C++):(P=e,Ce===0&&Ot(l)),P!==e){for(L=[],A=He();A!==e;)L.push(A),A=He();L!==e?(A=fr(),A!==e?(z=C,oe=ht(),oe===e&&(oe=null),oe!==e?(Kn=tm(),Kn!==e?(oe=[oe,Kn],z=oe):(C=z,z=e)):(C=z,z=e),z===e&&(z=null),z!==e?(ne=b,P=c(P,A,z),b=P):(C=b,b=e)):(C=b,b=e)):(C=b,b=e)}else C=b,b=e;return b}function yS(){var b,P;return b=C,u.test(i.charAt(C))?(P=i.charAt(C),C++):(P=e,Ce===0&&Ot(d)),P!==e&&(ne=b,P=p()),b=P,b}function gS(){var b,P,L,A;if(b=C,f.test(i.charAt(C))?(P=i.charAt(C),C++):(P=e,Ce===0&&Ot(h)),P!==e){for(L=[],A=He();A!==e;)L.push(A),A=He();L!==e?(A=tm(),A!==e?(ne=b,P=m(P,A),b=P):(C=b,b=e)):(C=b,b=e)}else C=b,b=e;return b}function tm(){var b,P,L,A,z,oe;if(b=C,P=fr(),P!==e){for(L=[],A=C,z=ht(),z===e&&(z=null),z!==e?(oe=fr(),oe!==e?(z=[z,oe],A=z):(C=A,A=e)):(C=A,A=e);A!==e;)L.push(A),A=C,z=ht(),z===e&&(z=null),z!==e?(oe=fr(),oe!==e?(z=[z,oe],A=z):(C=A,A=e)):(C=A,A=e);L!==e?(ne=b,P=a(P,L),b=P):(C=b,b=e)}else C=b,b=e;return b}function xS(){var b,P,L,A;if(b=C,y.test(i.charAt(C))?(P=i.charAt(C),C++):(P=e,Ce===0&&Ot(x)),P!==e){for(L=[],A=He();A!==e;)L.push(A),A=He();L!==e?(A=rm(),A!==e?(ne=b,P=v(P,A),b=P):(C=b,b=e)):(C=b,b=e)}else C=b,b=e;return b}function rm(){var b,P,L,A,z,oe;if(b=C,P=Xn(),P!==e){for(L=[],A=C,z=ht(),z===e&&(z=null),z!==e?(oe=Xn(),oe!==e?(z=[z,oe],A=z):(C=A,A=e)):(C=A,A=e);A!==e;)L.push(A),A=C,z=ht(),z===e&&(z=null),z!==e?(oe=Xn(),oe!==e?(z=[z,oe],A=z):(C=A,A=e)):(C=A,A=e);L!==e?(ne=b,P=a(P,L),b=P):(C=b,b=e)}else C=b,b=e;return b}function bS(){var b,P,L,A;if(b=C,w.test(i.charAt(C))?(P=i.charAt(C),C++):(P=e,Ce===0&&Ot(O)),P!==e){for(L=[],A=He();A!==e;)L.push(A),A=He();L!==e?(A=rm(),A!==e?(ne=b,P=S(P,A),b=P):(C=b,b=e)):(C=b,b=e)}else C=b,b=e;return b}function vS(){var b,P,L,A;if(b=C,T.test(i.charAt(C))?(P=i.charAt(C),C++):(P=e,Ce===0&&Ot(M)),P!==e){for(L=[],A=He();A!==e;)L.push(A),A=He();L!==e?(A=SS(),A!==e?(ne=b,P=m(P,A),b=P):(C=b,b=e)):(C=b,b=e)}else C=b,b=e;return b}function SS(){var b,P,L,A,z,oe;if(b=C,P=fp(),P!==e){for(L=[],A=C,z=ht(),z===e&&(z=null),z!==e?(oe=fp(),oe!==e?(z=[z,oe],A=z):(C=A,A=e)):(C=A,A=e);A!==e;)L.push(A),A=C,z=ht(),z===e&&(z=null),z!==e?(oe=fp(),oe!==e?(z=[z,oe],A=z):(C=A,A=e)):(C=A,A=e);L!==e?(ne=b,P=a(P,L),b=P):(C=b,b=e)}else C=b,b=e;return b}function fp(){var b,P,L,A,z,oe;return b=C,P=fr(),P!==e?(L=ht(),L===e&&(L=null),L!==e?(A=fr(),A!==e?(z=ht(),z===e&&(z=null),z!==e?(oe=fr(),oe!==e?(ne=b,P=g(P,A,oe),b=P):(C=b,b=e)):(C=b,b=e)):(C=b,b=e)):(C=b,b=e)):(C=b,b=e),b}function wS(){var b,P,L,A;if(b=C,D.test(i.charAt(C))?(P=i.charAt(C),C++):(P=e,Ce===0&&Ot(E)),P!==e){for(L=[],A=He();A!==e;)L.push(A),A=He();L!==e?(A=PS(),A!==e?(ne=b,P=m(P,A),b=P):(C=b,b=e)):(C=b,b=e)}else C=b,b=e;return b}function PS(){var b,P,L,A,z,oe;if(b=C,P=hp(),P!==e){for(L=[],A=C,z=ht(),z===e&&(z=null),z!==e?(oe=hp(),oe!==e?(z=[z,oe],A=z):(C=A,A=e)):(C=A,A=e);A!==e;)L.push(A),A=C,z=ht(),z===e&&(z=null),z!==e?(oe=hp(),oe!==e?(z=[z,oe],A=z):(C=A,A=e)):(C=A,A=e);L!==e?(ne=b,P=a(P,L),b=P):(C=b,b=e)}else C=b,b=e;return b}function hp(){var b,P,L,A;return b=C,P=fr(),P!==e?(L=ht(),L===e&&(L=null),L!==e?(A=fr(),A!==e?(ne=b,P=I(P,A),b=P):(C=b,b=e)):(C=b,b=e)):(C=b,b=e),b}function OS(){var b,P,L,A;if(b=C,N.test(i.charAt(C))?(P=i.charAt(C),C++):(P=e,Ce===0&&Ot(_)),P!==e){for(L=[],A=He();A!==e;)L.push(A),A=He();L!==e?(A=TS(),A!==e?(ne=b,P=m(P,A),b=P):(C=b,b=e)):(C=b,b=e)}else C=b,b=e;return b}function TS(){var b,P,L,A,z,oe;if(b=C,P=mp(),P!==e){for(L=[],A=C,z=ht(),z===e&&(z=null),z!==e?(oe=mp(),oe!==e?(z=[z,oe],A=z):(C=A,A=e)):(C=A,A=e);A!==e;)L.push(A),A=C,z=ht(),z===e&&(z=null),z!==e?(oe=mp(),oe!==e?(z=[z,oe],A=z):(C=A,A=e)):(C=A,A=e);L!==e?(ne=b,P=a(P,L),b=P):(C=b,b=e)}else C=b,b=e;return b}function mp(){var b,P,L,A;return b=C,P=fr(),P!==e?(L=ht(),L===e&&(L=null),L!==e?(A=fr(),A!==e?(ne=b,P=R(P,A),b=P):(C=b,b=e)):(C=b,b=e)):(C=b,b=e),b}function CS(){var b,P,L,A;if(b=C,V.test(i.charAt(C))?(P=i.charAt(C),C++):(P=e,Ce===0&&Ot(U)),P!==e){for(L=[],A=He();A!==e;)L.push(A),A=He();L!==e?(A=AS(),A!==e?(ne=b,P=m(P,A),b=P):(C=b,b=e)):(C=b,b=e)}else C=b,b=e;return b}function AS(){var b,P,L,A,z,oe;if(b=C,P=fr(),P!==e){for(L=[],A=C,z=ht(),z===e&&(z=null),z!==e?(oe=fr(),oe!==e?(z=[z,oe],A=z):(C=A,A=e)):(C=A,A=e);A!==e;)L.push(A),A=C,z=ht(),z===e&&(z=null),z!==e?(oe=fr(),oe!==e?(z=[z,oe],A=z):(C=A,A=e)):(C=A,A=e);L!==e?(ne=b,P=a(P,L),b=P):(C=b,b=e)}else C=b,b=e;return b}function MS(){var b,P,L,A;if(b=C,B.test(i.charAt(C))?(P=i.charAt(C),C++):(P=e,Ce===0&&Ot(q)),P!==e){for(L=[],A=He();A!==e;)L.push(A),A=He();L!==e?(A=IS(),A!==e?(ne=b,P=m(P,A),b=P):(C=b,b=e)):(C=b,b=e)}else C=b,b=e;return b}function IS(){var b,P,L,A,z,oe;if(b=C,P=yp(),P!==e){for(L=[],A=C,z=ht(),z===e&&(z=null),z!==e?(oe=yp(),oe!==e?(z=[z,oe],A=z):(C=A,A=e)):(C=A,A=e);A!==e;)L.push(A),A=C,z=ht(),z===e&&(z=null),z!==e?(oe=yp(),oe!==e?(z=[z,oe],A=z):(C=A,A=e)):(C=A,A=e);L!==e?(ne=b,P=a(P,L),b=P):(C=b,b=e)}else C=b,b=e;return b}function yp(){var b,P,L,A,z,oe,Kn,xp,xc,bp,bc,vp;return b=C,P=om(),P!==e?(L=ht(),L===e&&(L=null),L!==e?(A=om(),A!==e?(z=ht(),z===e&&(z=null),z!==e?(oe=Xn(),oe!==e?(Kn=ht(),Kn!==e?(xp=im(),xp!==e?(xc=ht(),xc===e&&(xc=null),xc!==e?(bp=im(),bp!==e?(bc=ht(),bc===e&&(bc=null),bc!==e?(vp=fr(),vp!==e?(ne=b,P=j(P,A,oe,xp,bp,vp),b=P):(C=b,b=e)):(C=b,b=e)):(C=b,b=e)):(C=b,b=e)):(C=b,b=e)):(C=b,b=e)):(C=b,b=e)):(C=b,b=e)):(C=b,b=e)):(C=b,b=e)):(C=b,b=e),b}function fr(){var b,P,L,A;return b=C,P=Xn(),P!==e?(L=ht(),L===e&&(L=null),L!==e?(A=Xn(),A!==e?(ne=b,P=F(P,A),b=P):(C=b,b=e)):(C=b,b=e)):(C=b,b=e),b}function om(){var b,P;return b=C,P=am(),P===e&&(P=yn()),P!==e&&(ne=b,P=H(P)),b=P,b}function Xn(){var b,P,L,A;return b=C,P=C,L=gp(),L===e&&(L=null),L!==e?(A=am(),A!==e?(L=[L,A],P=L):(C=P,P=e)):(C=P,P=e),P===e&&(P=C,L=gp(),L===e&&(L=null),L!==e?(A=yn(),A!==e?(L=[L,A],P=L):(C=P,P=e)):(C=P,P=e)),P!==e&&(ne=b,P=W(P)),b=P,b}function im(){var b,P;return b=C,ee.test(i.charAt(C))?(P=i.charAt(C),C++):(P=e,Ce===0&&Ot(te)),P!==e&&(ne=b,P=Y(P)),b=P,b}function ht(){var b,P,L,A,z;if(b=C,P=[],L=He(),L!==e)for(;L!==e;)P.push(L),L=He();else P=e;if(P!==e)if(L=nm(),L===e&&(L=null),L!==e){for(A=[],z=He();z!==e;)A.push(z),z=He();A!==e?(P=[P,L,A],b=P):(C=b,b=e)}else C=b,b=e;else C=b,b=e;if(b===e){if(b=C,P=C,L=nm(),L!==e){for(A=[],z=He();z!==e;)A.push(z),z=He();A!==e?(L=[L,A],P=L):(C=P,P=e)}else C=P,P=e;P!==e&&(ne=b,P=re()),b=P}return b}function nm(){var b;return i.charCodeAt(C)===44?(b=K,C++):(b=e,Ce===0&&Ot(Z)),b}function am(){var b,P,L,A;return b=C,P=C,L=ES(),L!==e?(A=sm(),A===e&&(A=null),A!==e?(L=[L,A],P=L):(C=P,P=e)):(C=P,P=e),P===e&&(P=C,L=yn(),L!==e?(A=sm(),A!==e?(L=[L,A],P=L):(C=P,P=e)):(C=P,P=e)),P!==e&&(ne=b,P=Q(P)),b=P,b}function ES(){var b,P,L,A,z;return b=C,P=C,L=yn(),L===e&&(L=null),L!==e?(i.charCodeAt(C)===46?(A=$,C++):(A=e,Ce===0&&Ot(pe)),A!==e?(z=yn(),z!==e?(L=[L,A,z],P=L):(C=P,P=e)):(C=P,P=e)):(C=P,P=e),P===e&&(P=C,L=yn(),L!==e?(i.charCodeAt(C)===46?(A=$,C++):(A=e,Ce===0&&Ot(pe)),A!==e?(L=[L,A],P=L):(C=P,P=e)):(C=P,P=e)),P!==e&&(ne=b,P=Q(P)),b=P,b}function sm(){var b,P,L,A,z;return b=C,P=C,le.test(i.charAt(C))?(L=i.charAt(C),C++):(L=e,Ce===0&&Ot(ie)),L!==e?(A=gp(),A===e&&(A=null),A!==e?(z=yn(),z!==e?(L=[L,A,z],P=L):(C=P,P=e)):(C=P,P=e)):(C=P,P=e),P!==e&&(ne=b,P=Q(P)),b=P,b}function gp(){var b;return ue.test(i.charAt(C))?(b=i.charAt(C),C++):(b=e,Ce===0&&Ot(ae)),b}function yn(){var b,P,L;if(b=C,P=[],ge.test(i.charAt(C))?(L=i.charAt(C),C++):(L=e,Ce===0&&Ot(me)),L!==e)for(;L!==e;)P.push(L),ge.test(i.charAt(C))?(L=i.charAt(C),C++):(L=e,Ce===0&&Ot(me));else P=e;return P!==e&&(ne=b,P=ye(P)),b=P,b}function He(){var b,P;return b=C,ve.test(i.charAt(C))?(P=i.charAt(C),C++):(P=e,Ce===0&&Ot(xe)),P!==e&&(ne=b,P=re()),b=P,b}function NS(b,P){if(!P)return[b];for(var L=[b],A=0,z=P.length;A<z;A++)L[A+1]=P[A][1];return L}var gc={m:"moveto",l:"lineto",h:"horizontal lineto",v:"vertical lineto",c:"curveto",s:"smooth curveto",q:"quadratic curveto",t:"smooth quadratic curveto",a:"elliptical arc",z:"closepath"};for(var lm in gc)gc[lm.toUpperCase()]=gc[lm];function Yn(b,P){P||(P=[{}]);for(var L=P.length;L--;){var A={code:b,command:gc[b]};b==b.toLowerCase()&&(A.relative=!0);for(var z in P[L])A[z]=P[L][z];P[L]=A}return P}if(zt=o(),zt!==e&&C===i.length)return zt;throw zt!==e&&C<i.length&&Ot(up()),Gr(Ge,ke<i.length?i.charAt(ke):null,ke<i.length?hn(ke,ke+1):hn(ke,ke))}e1.exports={SyntaxError:kn,parse:Q3}});var Gh=tl((Gre,r1)=>{var Hd=t1().parse;Hd.parseSVG=Hd;Hd.makeAbsolute=Z3;r1.exports=Hd;function Z3(i){var t,e={x:0,y:0},r={x:"x0",y:"y0",x1:"x0",y1:"y0",x2:"x0",y2:"y0"};return i.forEach(function(o){o.command==="moveto"&&(t=o),o.x0=e.x,o.y0=e.y;for(var n in r)n in o&&(o[n]+=o.relative?o[r[n]]:0);"x"in o||(o.x=e.x),"y"in o||(o.y=e.y),o.relative=!1,o.code=o.code.toUpperCase(),o.command=="closepath"&&(o.x=t.x,o.y=t.y),e=o}),i}});var fS=tl((Ice,pS)=>{pS.exports=function(t,e){for(var r=t.split("."),o=e.split("."),n=0;n<3;n++){var a=Number(r[n]),s=Number(o[n]);if(a>s)return 1;if(s>a)return-1;if(!isNaN(a)&&isNaN(s))return 1;if(isNaN(a)&&!isNaN(s))return-1}return 0}});var NE={};cm(NE,{default:()=>lp});module.exports=zS(NE);var cp=require("three");function vc(i){for(let t of Object.keys(i))i[t]===void 0&&delete i[t];return i}function Ft(i,t){return Object.setPrototypeOf(i,t),i}function Sc(i){return Array.isArray(i)?i:[i]}function wc(i,t){let e=0;for(;e<i.length&&e<t.length;){if(i[e]<t[e])return-1;if(i[e]>t[e])return 1;e+=1}return e!==t.length?-1:e!==i.length?1:0}var GS=typeof global=="object"&&global&&global.Object===Object&&global,Pc=GS;var FS=typeof self=="object"&&self&&self.Object===Object&&self,jS=Pc||FS||Function("return this")(),Tt=jS;var US=Tt.Symbol,Yt=US;var dm=Object.prototype,kS=dm.hasOwnProperty,HS=dm.toString,ol=Yt?Yt.toStringTag:void 0;function WS(i){var t=kS.call(i,ol),e=i[ol];try{i[ol]=void 0;var r=!0}catch{}var o=HS.call(i);return r&&(t?i[ol]=e:delete i[ol]),o}var pm=WS;var qS=Object.prototype,$S=qS.toString;function XS(i){return $S.call(i)}var fm=XS;var YS="[object Null]",KS="[object Undefined]",hm=Yt?Yt.toStringTag:void 0;function QS(i){return i==null?i===void 0?KS:YS:hm&&hm in Object(i)?pm(i):fm(i)}var Dr=QS;function ZS(i){return i!=null&&typeof i=="object"}var or=ZS;var JS="[object Symbol]";function ew(i){return typeof i=="symbol"||or(i)&&Dr(i)==JS}var wi=ew;function tw(i,t){for(var e=-1,r=i==null?0:i.length,o=Array(r);++e<r;)o[e]=t(i[e],e,i);return o}var Oc=tw;var rw=Array.isArray,Ct=rw;var ow=1/0,mm=Yt?Yt.prototype:void 0,ym=mm?mm.toString:void 0;function gm(i){if(typeof i=="string")return i;if(Ct(i))return Oc(i,gm)+"";if(wi(i))return ym?ym.call(i):"";var t=i+"";return t=="0"&&1/i==-ow?"-0":t}var xm=gm;var iw=/\s/;function nw(i){for(var t=i.length;t--&&iw.test(i.charAt(t)););return t}var bm=nw;var aw=/^\s+/;function sw(i){return i&&i.slice(0,bm(i)+1).replace(aw,"")}var vm=sw;function lw(i){var t=typeof i;return i!=null&&(t=="object"||t=="function")}var At=lw;var Sm=0/0,cw=/^[-+]0x[0-9a-f]+$/i,uw=/^0b[01]+$/i,dw=/^0o[0-7]+$/i,pw=parseInt;function fw(i){if(typeof i=="number")return i;if(wi(i))return Sm;if(At(i)){var t=typeof i.valueOf=="function"?i.valueOf():i;i=At(t)?t+"":t}if(typeof i!="string")return i===0?i:+i;i=vm(i);var e=uw.test(i);return e||dw.test(i)?pw(i.slice(2),e?2:8):cw.test(i)?Sm:+i}var Sp=fw;function hw(i){return i}var wm=hw;var mw="[object AsyncFunction]",yw="[object Function]",gw="[object GeneratorFunction]",xw="[object Proxy]";function bw(i){if(!At(i))return!1;var t=Dr(i);return t==yw||t==gw||t==mw||t==xw}var Tc=bw;var vw=Tt["__core-js_shared__"],Cc=vw;var Pm=function(){var i=/[^.]+$/.exec(Cc&&Cc.keys&&Cc.keys.IE_PROTO||"");return i?"Symbol(src)_1."+i:""}();function Sw(i){return!!Pm&&Pm in i}var Om=Sw;var ww=Function.prototype,Pw=ww.toString;function Ow(i){if(i!=null){try{return Pw.call(i)}catch{}try{return i+""}catch{}}return""}var Yo=Ow;var Tw=/[\\^$.*+?()[\]{}|]/g,Cw=/^\[object .+?Constructor\]$/,Aw=Function.prototype,Mw=Object.prototype,Iw=Aw.toString,Ew=Mw.hasOwnProperty,Nw=RegExp("^"+Iw.call(Ew).replace(Tw,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Dw(i){if(!At(i)||Om(i))return!1;var t=Tc(i)?Nw:Cw;return t.test(Yo(i))}var Tm=Dw;function _w(i,t){return i?.[t]}var Cm=_w;function Rw(i,t){var e=Cm(i,t);return Tm(e)?e:void 0}var vr=Rw;var Lw=vr(Tt,"WeakMap"),Ac=Lw;var Am=Object.create,Bw=function(){function i(){}return function(t){if(!At(t))return{};if(Am)return Am(t);i.prototype=t;var e=new i;return i.prototype=void 0,e}}(),Mm=Bw;function Vw(i,t,e){switch(e.length){case 0:return i.call(t);case 1:return i.call(t,e[0]);case 2:return i.call(t,e[0],e[1]);case 3:return i.call(t,e[0],e[1],e[2])}return i.apply(t,e)}var Im=Vw;function zw(i,t){var e=-1,r=i.length;for(t||(t=Array(r));++e<r;)t[e]=i[e];return t}var Em=zw;var Gw=800,Fw=16,jw=Date.now;function Uw(i){var t=0,e=0;return function(){var r=jw(),o=Fw-(r-e);if(e=r,o>0){if(++t>=Gw)return arguments[0]}else t=0;return i.apply(void 0,arguments)}}var Nm=Uw;function kw(i){return function(){return i}}var Dm=kw;var Hw=function(){try{var i=vr(Object,"defineProperty");return i({},"",{}),i}catch{}}(),Qn=Hw;var Ww=Qn?function(i,t){return Qn(i,"toString",{configurable:!0,enumerable:!1,value:Dm(t),writable:!0})}:wm,_m=Ww;var qw=Nm(_m),Rm=qw;function $w(i,t){for(var e=-1,r=i==null?0:i.length;++e<r&&t(i[e],e,i)!==!1;);return i}var Lm=$w;var Xw=9007199254740991,Yw=/^(?:0|[1-9]\d*)$/;function Kw(i,t){var e=typeof i;return t=t??Xw,!!t&&(e=="number"||e!="symbol"&&Yw.test(i))&&i>-1&&i%1==0&&i<t}var Zn=Kw;function Qw(i,t,e){t=="__proto__"&&Qn?Qn(i,t,{configurable:!0,enumerable:!0,value:e,writable:!0}):i[t]=e}var Mc=Qw;function Zw(i,t){return i===t||i!==i&&t!==t}var Jn=Zw;var Jw=Object.prototype,e2=Jw.hasOwnProperty;function t2(i,t,e){var r=i[t];(!(e2.call(i,t)&&Jn(r,e))||e===void 0&&!(t in i))&&Mc(i,t,e)}var ea=t2;function r2(i,t,e,r){var o=!e;e||(e={});for(var n=-1,a=t.length;++n<a;){var s=t[n],l=r?r(e[s],i[s],s,e,i):void 0;l===void 0&&(l=i[s]),o?Mc(e,s,l):ea(e,s,l)}return e}var wo=r2;var Bm=Math.max;function o2(i,t,e){return t=Bm(t===void 0?i.length-1:t,0),function(){for(var r=arguments,o=-1,n=Bm(r.length-t,0),a=Array(n);++o<n;)a[o]=r[t+o];o=-1;for(var s=Array(t+1);++o<t;)s[o]=r[o];return s[t]=e(a),Im(i,this,s)}}var Vm=o2;var i2=9007199254740991;function n2(i){return typeof i=="number"&&i>-1&&i%1==0&&i<=i2}var ta=n2;function a2(i){return i!=null&&ta(i.length)&&!Tc(i)}var Ic=a2;var s2=Object.prototype;function l2(i){var t=i&&i.constructor,e=typeof t=="function"&&t.prototype||s2;return i===e}var ra=l2;function c2(i,t){for(var e=-1,r=Array(i);++e<i;)r[e]=t(e);return r}var zm=c2;var u2="[object Arguments]";function d2(i){return or(i)&&Dr(i)==u2}var wp=d2;var Gm=Object.prototype,p2=Gm.hasOwnProperty,f2=Gm.propertyIsEnumerable,h2=wp(function(){return arguments}())?wp:function(i){return or(i)&&p2.call(i,"callee")&&!f2.call(i,"callee")},oa=h2;function m2(){return!1}var Fm=m2;var km=typeof exports=="object"&&exports&&!exports.nodeType&&exports,jm=km&&typeof module=="object"&&module&&!module.nodeType&&module,y2=jm&&jm.exports===km,Um=y2?Tt.Buffer:void 0,g2=Um?Um.isBuffer:void 0,x2=g2||Fm,xn=x2;var b2="[object Arguments]",v2="[object Array]",S2="[object Boolean]",w2="[object Date]",P2="[object Error]",O2="[object Function]",T2="[object Map]",C2="[object Number]",A2="[object Object]",M2="[object RegExp]",I2="[object Set]",E2="[object String]",N2="[object WeakMap]",D2="[object ArrayBuffer]",_2="[object DataView]",R2="[object Float32Array]",L2="[object Float64Array]",B2="[object Int8Array]",V2="[object Int16Array]",z2="[object Int32Array]",G2="[object Uint8Array]",F2="[object Uint8ClampedArray]",j2="[object Uint16Array]",U2="[object Uint32Array]",mt={};mt[R2]=mt[L2]=mt[B2]=mt[V2]=mt[z2]=mt[G2]=mt[F2]=mt[j2]=mt[U2]=!0;mt[b2]=mt[v2]=mt[D2]=mt[S2]=mt[_2]=mt[w2]=mt[P2]=mt[O2]=mt[T2]=mt[C2]=mt[A2]=mt[M2]=mt[I2]=mt[E2]=mt[N2]=!1;function k2(i){return or(i)&&ta(i.length)&&!!mt[Dr(i)]}var Hm=k2;function H2(i){return function(t){return i(t)}}var ia=H2;var Wm=typeof exports=="object"&&exports&&!exports.nodeType&&exports,il=Wm&&typeof module=="object"&&module&&!module.nodeType&&module,W2=il&&il.exports===Wm,Pp=W2&&Pc.process,q2=function(){try{var i=il&&il.require&&il.require("util").types;return i||Pp&&Pp.binding&&Pp.binding("util")}catch{}}(),Ko=q2;var qm=Ko&&Ko.isTypedArray,$2=qm?ia(qm):Hm,Ec=$2;var X2=Object.prototype,Y2=X2.hasOwnProperty;function K2(i,t){var e=Ct(i),r=!e&&oa(i),o=!e&&!r&&xn(i),n=!e&&!r&&!o&&Ec(i),a=e||r||o||n,s=a?zm(i.length,String):[],l=s.length;for(var c in i)(t||Y2.call(i,c))&&!(a&&(c=="length"||o&&(c=="offset"||c=="parent")||n&&(c=="buffer"||c=="byteLength"||c=="byteOffset")||Zn(c,l)))&&s.push(c);return s}var Nc=K2;function Q2(i,t){return function(e){return i(t(e))}}var Dc=Q2;var Z2=Dc(Object.keys,Object),$m=Z2;var J2=Object.prototype,eP=J2.hasOwnProperty;function tP(i){if(!ra(i))return $m(i);var t=[];for(var e in Object(i))eP.call(i,e)&&e!="constructor"&&t.push(e);return t}var Xm=tP;function rP(i){return Ic(i)?Nc(i):Xm(i)}var na=rP;function oP(i){var t=[];if(i!=null)for(var e in Object(i))t.push(e);return t}var Ym=oP;var iP=Object.prototype,nP=iP.hasOwnProperty;function aP(i){if(!At(i))return Ym(i);var t=ra(i),e=[];for(var r in i)r=="constructor"&&(t||!nP.call(i,r))||e.push(r);return e}var Km=aP;function sP(i){return Ic(i)?Nc(i,!0):Km(i)}var aa=sP;var lP=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,cP=/^\w*$/;function uP(i,t){if(Ct(i))return!1;var e=typeof i;return e=="number"||e=="symbol"||e=="boolean"||i==null||wi(i)?!0:cP.test(i)||!lP.test(i)||t!=null&&i in Object(t)}var Qm=uP;var dP=vr(Object,"create"),Qo=dP;function pP(){this.__data__=Qo?Qo(null):{},this.size=0}var Zm=pP;function fP(i){var t=this.has(i)&&delete this.__data__[i];return this.size-=t?1:0,t}var Jm=fP;var hP="__lodash_hash_undefined__",mP=Object.prototype,yP=mP.hasOwnProperty;function gP(i){var t=this.__data__;if(Qo){var e=t[i];return e===hP?void 0:e}return yP.call(t,i)?t[i]:void 0}var ey=gP;var xP=Object.prototype,bP=xP.hasOwnProperty;function vP(i){var t=this.__data__;return Qo?t[i]!==void 0:bP.call(t,i)}var ty=vP;var SP="__lodash_hash_undefined__";function wP(i,t){var e=this.__data__;return this.size+=this.has(i)?0:1,e[i]=Qo&&t===void 0?SP:t,this}var ry=wP;function sa(i){var t=-1,e=i==null?0:i.length;for(this.clear();++t<e;){var r=i[t];this.set(r[0],r[1])}}sa.prototype.clear=Zm;sa.prototype.delete=Jm;sa.prototype.get=ey;sa.prototype.has=ty;sa.prototype.set=ry;var Op=sa;function PP(){this.__data__=[],this.size=0}var oy=PP;function OP(i,t){for(var e=i.length;e--;)if(Jn(i[e][0],t))return e;return-1}var Pi=OP;var TP=Array.prototype,CP=TP.splice;function AP(i){var t=this.__data__,e=Pi(t,i);if(e<0)return!1;var r=t.length-1;return e==r?t.pop():CP.call(t,e,1),--this.size,!0}var iy=AP;function MP(i){var t=this.__data__,e=Pi(t,i);return e<0?void 0:t[e][1]}var ny=MP;function IP(i){return Pi(this.__data__,i)>-1}var ay=IP;function EP(i,t){var e=this.__data__,r=Pi(e,i);return r<0?(++this.size,e.push([i,t])):e[r][1]=t,this}var sy=EP;function la(i){var t=-1,e=i==null?0:i.length;for(this.clear();++t<e;){var r=i[t];this.set(r[0],r[1])}}la.prototype.clear=oy;la.prototype.delete=iy;la.prototype.get=ny;la.prototype.has=ay;la.prototype.set=sy;var Oi=la;var NP=vr(Tt,"Map"),Ti=NP;function DP(){this.size=0,this.__data__={hash:new Op,map:new(Ti||Oi),string:new Op}}var ly=DP;function _P(i){var t=typeof i;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?i!=="__proto__":i===null}var cy=_P;function RP(i,t){var e=i.__data__;return cy(t)?e[typeof t=="string"?"string":"hash"]:e.map}var Ci=RP;function LP(i){var t=Ci(this,i).delete(i);return this.size-=t?1:0,t}var uy=LP;function BP(i){return Ci(this,i).get(i)}var dy=BP;function VP(i){return Ci(this,i).has(i)}var py=VP;function zP(i,t){var e=Ci(this,i),r=e.size;return e.set(i,t),this.size+=e.size==r?0:1,this}var fy=zP;function ca(i){var t=-1,e=i==null?0:i.length;for(this.clear();++t<e;){var r=i[t];this.set(r[0],r[1])}}ca.prototype.clear=ly;ca.prototype.delete=uy;ca.prototype.get=dy;ca.prototype.has=py;ca.prototype.set=fy;var bn=ca;var GP="Expected a function";function Tp(i,t){if(typeof i!="function"||t!=null&&typeof t!="function")throw new TypeError(GP);var e=function(){var r=arguments,o=t?t.apply(this,r):r[0],n=e.cache;if(n.has(o))return n.get(o);var a=i.apply(this,r);return e.cache=n.set(o,a)||n,a};return e.cache=new(Tp.Cache||bn),e}Tp.Cache=bn;var hy=Tp;var FP=500;function jP(i){var t=hy(i,function(r){return e.size===FP&&e.clear(),r}),e=t.cache;return t}var my=jP;var UP=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,kP=/\\(\\)?/g,HP=my(function(i){var t=[];return i.charCodeAt(0)===46&&t.push(""),i.replace(UP,function(e,r,o,n){t.push(o?n.replace(kP,"$1"):r||e)}),t}),yy=HP;function WP(i){return i==null?"":xm(i)}var gy=WP;function qP(i,t){return Ct(i)?i:Qm(i,t)?[i]:yy(gy(i))}var Fr=qP;var $P=1/0;function XP(i){if(typeof i=="string"||wi(i))return i;var t=i+"";return t=="0"&&1/i==-$P?"-0":t}var Ai=XP;function YP(i,t){t=Fr(t,i);for(var e=0,r=t.length;i!=null&&e<r;)i=i[Ai(t[e++])];return e&&e==r?i:void 0}var _c=YP;function KP(i,t){for(var e=-1,r=t.length,o=i.length;++e<r;)i[o+e]=t[e];return i}var ua=KP;var xy=Yt?Yt.isConcatSpreadable:void 0;function QP(i){return Ct(i)||oa(i)||!!(xy&&i&&i[xy])}var by=QP;function vy(i,t,e,r,o){var n=-1,a=i.length;for(e||(e=by),o||(o=[]);++n<a;){var s=i[n];t>0&&e(s)?t>1?vy(s,t-1,e,r,o):ua(o,s):r||(o[o.length]=s)}return o}var Sy=vy;function ZP(i){var t=i==null?0:i.length;return t?Sy(i,1):[]}var wy=ZP;function JP(i){return Rm(Vm(i,void 0,wy),i+"")}var Rc=JP;var eO=Dc(Object.getPrototypeOf,Object),da=eO;var tO="[object Object]",rO=Function.prototype,oO=Object.prototype,Py=rO.toString,iO=oO.hasOwnProperty,nO=Py.call(Object);function aO(i){if(!or(i)||Dr(i)!=tO)return!1;var t=da(i);if(t===null)return!0;var e=iO.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Py.call(e)==nO}var Oy=aO;function sO(i,t,e){var r=-1,o=i.length;t<0&&(t=-t>o?0:o+t),e=e>o?o:e,e<0&&(e+=o),o=t>e?0:e-t>>>0,t>>>=0;for(var n=Array(o);++r<o;)n[r]=i[r+t];return n}var Ty=sO;function lO(){this.__data__=new Oi,this.size=0}var Cy=lO;function cO(i){var t=this.__data__,e=t.delete(i);return this.size=t.size,e}var Ay=cO;function uO(i){return this.__data__.get(i)}var My=uO;function dO(i){return this.__data__.has(i)}var Iy=dO;var pO=200;function fO(i,t){var e=this.__data__;if(e instanceof Oi){var r=e.__data__;if(!Ti||r.length<pO-1)return r.push([i,t]),this.size=++e.size,this;e=this.__data__=new bn(r)}return e.set(i,t),this.size=e.size,this}var Ey=fO;function pa(i){var t=this.__data__=new Oi(i);this.size=t.size}pa.prototype.clear=Cy;pa.prototype.delete=Ay;pa.prototype.get=My;pa.prototype.has=Iy;pa.prototype.set=Ey;var fa=pa;function hO(i,t){return i&&wo(t,na(t),i)}var Ny=hO;function mO(i,t){return i&&wo(t,aa(t),i)}var Dy=mO;var By=typeof exports=="object"&&exports&&!exports.nodeType&&exports,_y=By&&typeof module=="object"&&module&&!module.nodeType&&module,yO=_y&&_y.exports===By,Ry=yO?Tt.Buffer:void 0,Ly=Ry?Ry.allocUnsafe:void 0;function gO(i,t){if(t)return i.slice();var e=i.length,r=Ly?Ly(e):new i.constructor(e);return i.copy(r),r}var Vy=gO;function xO(i,t){for(var e=-1,r=i==null?0:i.length,o=0,n=[];++e<r;){var a=i[e];t(a,e,i)&&(n[o++]=a)}return n}var zy=xO;function bO(){return[]}var Lc=bO;var vO=Object.prototype,SO=vO.propertyIsEnumerable,Gy=Object.getOwnPropertySymbols,wO=Gy?function(i){return i==null?[]:(i=Object(i),zy(Gy(i),function(t){return SO.call(i,t)}))}:Lc,ha=wO;function PO(i,t){return wo(i,ha(i),t)}var Fy=PO;var OO=Object.getOwnPropertySymbols,TO=OO?function(i){for(var t=[];i;)ua(t,ha(i)),i=da(i);return t}:Lc,Bc=TO;function CO(i,t){return wo(i,Bc(i),t)}var jy=CO;function AO(i,t,e){var r=t(i);return Ct(i)?r:ua(r,e(i))}var Vc=AO;function MO(i){return Vc(i,na,ha)}var nl=MO;function IO(i){return Vc(i,aa,Bc)}var zc=IO;var EO=vr(Tt,"DataView"),Gc=EO;var NO=vr(Tt,"Promise"),Fc=NO;var DO=vr(Tt,"Set"),jc=DO;var Uy="[object Map]",_O="[object Object]",ky="[object Promise]",Hy="[object Set]",Wy="[object WeakMap]",qy="[object DataView]",RO=Yo(Gc),LO=Yo(Ti),BO=Yo(Fc),VO=Yo(jc),zO=Yo(Ac),vn=Dr;(Gc&&vn(new Gc(new ArrayBuffer(1)))!=qy||Ti&&vn(new Ti)!=Uy||Fc&&vn(Fc.resolve())!=ky||jc&&vn(new jc)!=Hy||Ac&&vn(new Ac)!=Wy)&&(vn=function(i){var t=Dr(i),e=t==_O?i.constructor:void 0,r=e?Yo(e):"";if(r)switch(r){case RO:return qy;case LO:return Uy;case BO:return ky;case VO:return Hy;case zO:return Wy}return t});var Zo=vn;var GO=Object.prototype,FO=GO.hasOwnProperty;function jO(i){var t=i.length,e=new i.constructor(t);return t&&typeof i[0]=="string"&&FO.call(i,"index")&&(e.index=i.index,e.input=i.input),e}var $y=jO;var UO=Tt.Uint8Array,ma=UO;function kO(i){var t=new i.constructor(i.byteLength);return new ma(t).set(new ma(i)),t}var ya=kO;function HO(i,t){var e=t?ya(i.buffer):i.buffer;return new i.constructor(e,i.byteOffset,i.byteLength)}var Xy=HO;var WO=/\w*$/;function qO(i){var t=new i.constructor(i.source,WO.exec(i));return t.lastIndex=i.lastIndex,t}var Yy=qO;var Ky=Yt?Yt.prototype:void 0,Qy=Ky?Ky.valueOf:void 0;function $O(i){return Qy?Object(Qy.call(i)):{}}var Zy=$O;function XO(i,t){var e=t?ya(i.buffer):i.buffer;return new i.constructor(e,i.byteOffset,i.length)}var Jy=XO;var YO="[object Boolean]",KO="[object Date]",QO="[object Map]",ZO="[object Number]",JO="[object RegExp]",eT="[object Set]",tT="[object String]",rT="[object Symbol]",oT="[object ArrayBuffer]",iT="[object DataView]",nT="[object Float32Array]",aT="[object Float64Array]",sT="[object Int8Array]",lT="[object Int16Array]",cT="[object Int32Array]",uT="[object Uint8Array]",dT="[object Uint8ClampedArray]",pT="[object Uint16Array]",fT="[object Uint32Array]";function hT(i,t,e){var r=i.constructor;switch(t){case oT:return ya(i);case YO:case KO:return new r(+i);case iT:return Xy(i,e);case nT:case aT:case sT:case lT:case cT:case uT:case dT:case pT:case fT:return Jy(i,e);case QO:return new r;case ZO:case tT:return new r(i);case JO:return Yy(i);case eT:return new r;case rT:return Zy(i)}}var eg=hT;function mT(i){return typeof i.constructor=="function"&&!ra(i)?Mm(da(i)):{}}var tg=mT;var yT="[object Map]";function gT(i){return or(i)&&Zo(i)==yT}var rg=gT;var og=Ko&&Ko.isMap,xT=og?ia(og):rg,ig=xT;var bT="[object Set]";function vT(i){return or(i)&&Zo(i)==bT}var ng=vT;var ag=Ko&&Ko.isSet,ST=ag?ia(ag):ng,sg=ST;var wT=1,PT=2,OT=4,lg="[object Arguments]",TT="[object Array]",CT="[object Boolean]",AT="[object Date]",MT="[object Error]",cg="[object Function]",IT="[object GeneratorFunction]",ET="[object Map]",NT="[object Number]",ug="[object Object]",DT="[object RegExp]",_T="[object Set]",RT="[object String]",LT="[object Symbol]",BT="[object WeakMap]",VT="[object ArrayBuffer]",zT="[object DataView]",GT="[object Float32Array]",FT="[object Float64Array]",jT="[object Int8Array]",UT="[object Int16Array]",kT="[object Int32Array]",HT="[object Uint8Array]",WT="[object Uint8ClampedArray]",qT="[object Uint16Array]",$T="[object Uint32Array]",dt={};dt[lg]=dt[TT]=dt[VT]=dt[zT]=dt[CT]=dt[AT]=dt[GT]=dt[FT]=dt[jT]=dt[UT]=dt[kT]=dt[ET]=dt[NT]=dt[ug]=dt[DT]=dt[_T]=dt[RT]=dt[LT]=dt[HT]=dt[WT]=dt[qT]=dt[$T]=!0;dt[MT]=dt[cg]=dt[BT]=!1;function Uc(i,t,e,r,o,n){var a,s=t&wT,l=t&PT,c=t&OT;if(e&&(a=o?e(i,r,o,n):e(i)),a!==void 0)return a;if(!At(i))return i;var u=Ct(i);if(u){if(a=$y(i),!s)return Em(i,a)}else{var d=Zo(i),p=d==cg||d==IT;if(xn(i))return Vy(i,s);if(d==ug||d==lg||p&&!o){if(a=l||p?{}:tg(i),!s)return l?jy(i,Dy(a,i)):Fy(i,Ny(a,i))}else{if(!dt[d])return o?i:{};a=eg(i,d,s)}}n||(n=new fa);var f=n.get(i);if(f)return f;n.set(i,a),sg(i)?i.forEach(function(y){a.add(Uc(y,t,e,y,i,n))}):ig(i)&&i.forEach(function(y,x){a.set(x,Uc(y,t,e,x,i,n))});var h=c?l?zc:nl:l?aa:na,m=u?void 0:h(i);return Lm(m||i,function(y,x){m&&(x=y,y=i[x]),ea(a,x,Uc(y,t,e,x,i,n))}),a}var kc=Uc;var XT=1,YT=4;function KT(i){return kc(i,XT|YT)}var Jo=KT;var QT="__lodash_hash_undefined__";function ZT(i){return this.__data__.set(i,QT),this}var dg=ZT;function JT(i){return this.__data__.has(i)}var pg=JT;function Hc(i){var t=-1,e=i==null?0:i.length;for(this.__data__=new bn;++t<e;)this.add(i[t])}Hc.prototype.add=Hc.prototype.push=dg;Hc.prototype.has=pg;var fg=Hc;function eC(i,t){for(var e=-1,r=i==null?0:i.length;++e<r;)if(t(i[e],e,i))return!0;return!1}var hg=eC;function tC(i,t){return i.has(t)}var mg=tC;var rC=1,oC=2;function iC(i,t,e,r,o,n){var a=e&rC,s=i.length,l=t.length;if(s!=l&&!(a&&l>s))return!1;var c=n.get(i),u=n.get(t);if(c&&u)return c==t&&u==i;var d=-1,p=!0,f=e&oC?new fg:void 0;for(n.set(i,t),n.set(t,i);++d<s;){var h=i[d],m=t[d];if(r)var y=a?r(m,h,d,t,i,n):r(h,m,d,i,t,n);if(y!==void 0){if(y)continue;p=!1;break}if(f){if(!hg(t,function(x,v){if(!mg(f,v)&&(h===x||o(h,x,e,r,n)))return f.push(v)})){p=!1;break}}else if(!(h===m||o(h,m,e,r,n))){p=!1;break}}return n.delete(i),n.delete(t),p}var Wc=iC;function nC(i){var t=-1,e=Array(i.size);return i.forEach(function(r,o){e[++t]=[o,r]}),e}var yg=nC;function aC(i){var t=-1,e=Array(i.size);return i.forEach(function(r){e[++t]=r}),e}var gg=aC;var sC=1,lC=2,cC="[object Boolean]",uC="[object Date]",dC="[object Error]",pC="[object Map]",fC="[object Number]",hC="[object RegExp]",mC="[object Set]",yC="[object String]",gC="[object Symbol]",xC="[object ArrayBuffer]",bC="[object DataView]",xg=Yt?Yt.prototype:void 0,Cp=xg?xg.valueOf:void 0;function vC(i,t,e,r,o,n,a){switch(e){case bC:if(i.byteLength!=t.byteLength||i.byteOffset!=t.byteOffset)return!1;i=i.buffer,t=t.buffer;case xC:return!(i.byteLength!=t.byteLength||!n(new ma(i),new ma(t)));case cC:case uC:case fC:return Jn(+i,+t);case dC:return i.name==t.name&&i.message==t.message;case hC:case yC:return i==t+"";case pC:var s=yg;case mC:var l=r&sC;if(s||(s=gg),i.size!=t.size&&!l)return!1;var c=a.get(i);if(c)return c==t;r|=lC,a.set(i,t);var u=Wc(s(i),s(t),r,o,n,a);return a.delete(i),u;case gC:if(Cp)return Cp.call(i)==Cp.call(t)}return!1}var bg=vC;var SC=1,wC=Object.prototype,PC=wC.hasOwnProperty;function OC(i,t,e,r,o,n){var a=e&SC,s=nl(i),l=s.length,c=nl(t),u=c.length;if(l!=u&&!a)return!1;for(var d=l;d--;){var p=s[d];if(!(a?p in t:PC.call(t,p)))return!1}var f=n.get(i),h=n.get(t);if(f&&h)return f==t&&h==i;var m=!0;n.set(i,t),n.set(t,i);for(var y=a;++d<l;){p=s[d];var x=i[p],v=t[p];if(r)var w=a?r(v,x,p,t,i,n):r(x,v,p,i,t,n);if(!(w===void 0?x===v||o(x,v,e,r,n):w)){m=!1;break}y||(y=p=="constructor")}if(m&&!y){var O=i.constructor,S=t.constructor;O!=S&&"constructor"in i&&"constructor"in t&&!(typeof O=="function"&&O instanceof O&&typeof S=="function"&&S instanceof S)&&(m=!1)}return n.delete(i),n.delete(t),m}var vg=OC;var TC=1,Sg="[object Arguments]",wg="[object Array]",qc="[object Object]",CC=Object.prototype,Pg=CC.hasOwnProperty;function AC(i,t,e,r,o,n){var a=Ct(i),s=Ct(t),l=a?wg:Zo(i),c=s?wg:Zo(t);l=l==Sg?qc:l,c=c==Sg?qc:c;var u=l==qc,d=c==qc,p=l==c;if(p&&xn(i)){if(!xn(t))return!1;a=!0,u=!1}if(p&&!u)return n||(n=new fa),a||Ec(i)?Wc(i,t,e,r,o,n):bg(i,t,l,e,r,o,n);if(!(e&TC)){var f=u&&Pg.call(i,"__wrapped__"),h=d&&Pg.call(t,"__wrapped__");if(f||h){var m=f?i.value():i,y=h?t.value():t;return n||(n=new fa),o(m,y,e,r,n)}}return p?(n||(n=new fa),vg(i,t,e,r,o,n)):!1}var Og=AC;function Tg(i,t,e,r,o){return i===t?!0:i==null||t==null||!or(i)&&!or(t)?i!==i&&t!==t:Og(i,t,e,r,Tg,o)}var Cg=Tg;function MC(i,t){return i!=null&&t in Object(i)}var Ag=MC;function IC(i,t,e){t=Fr(t,i);for(var r=-1,o=t.length,n=!1;++r<o;){var a=Ai(t[r]);if(!(n=i!=null&&e(i,a)))break;i=i[a]}return n||++r!=o?n:(o=i==null?0:i.length,!!o&&ta(o)&&Zn(a,o)&&(Ct(i)||oa(i)))}var Mg=IC;function EC(i,t){return i!=null&&Mg(i,t,Ag)}var Ig=EC;var NC=function(){return Tt.Date.now()},$c=NC;var DC="Expected a function",_C=Math.max,RC=Math.min;function LC(i,t,e){var r,o,n,a,s,l,c=0,u=!1,d=!1,p=!0;if(typeof i!="function")throw new TypeError(DC);t=Sp(t)||0,At(e)&&(u=!!e.leading,d="maxWait"in e,n=d?_C(Sp(e.maxWait)||0,t):n,p="trailing"in e?!!e.trailing:p);function f(T){var M=r,g=o;return r=o=void 0,c=T,a=i.apply(g,M),a}function h(T){return c=T,s=setTimeout(x,t),u?f(T):a}function m(T){var M=T-l,g=T-c,D=t-M;return d?RC(D,n-g):D}function y(T){var M=T-l,g=T-c;return l===void 0||M>=t||M<0||d&&g>=n}function x(){var T=$c();if(y(T))return v(T);s=setTimeout(x,m(T))}function v(T){return s=void 0,p&&r?f(T):(r=o=void 0,a)}function w(){s!==void 0&&clearTimeout(s),c=0,r=l=o=s=void 0}function O(){return s===void 0?a:v($c())}function S(){var T=$c(),M=y(T);if(r=arguments,o=this,l=T,M){if(s===void 0)return h(l);if(d)return clearTimeout(s),s=setTimeout(x,t),f(l)}return s===void 0&&(s=setTimeout(x,t)),a}return S.cancel=w,S.flush=O,S}var Xc=LC;function BC(i){var t=i==null?0:i.length;return t?i[t-1]:void 0}var Eg=BC;function VC(i,t){return t.length<2?i:_c(i,Ty(t,0,-1))}var Ng=VC;function zC(i,t){return Cg(i,t)}var Ap=zC;function GC(i,t){return t=Fr(t,i),i=Ng(i,t),i==null||delete i[Ai(Eg(t))]}var Dg=GC;function FC(i){return Oy(i)?void 0:i}var _g=FC;var jC=1,UC=2,kC=4,HC=Rc(function(i,t){var e={};if(i==null)return e;var r=!1;t=Oc(t,function(n){return n=Fr(n,i),r||(r=n.length>1),n}),wo(i,zc(i),e),r&&(e=kc(e,jC|UC|kC,_g));for(var o=t.length;o--;)Dg(e,t[o]);return e}),ga=HC;function WC(i,t,e,r){if(!At(i))return i;t=Fr(t,i);for(var o=-1,n=t.length,a=n-1,s=i;s!=null&&++o<n;){var l=Ai(t[o]),c=e;if(l==="__proto__"||l==="constructor"||l==="prototype")return i;if(o!=a){var u=s[l];c=r?r(u,l,s):void 0,c===void 0&&(c=At(u)?u:Zn(t[o+1])?[]:{})}ea(s,l,c),s=s[l]}return i}var Rg=WC;function qC(i,t,e){for(var r=-1,o=t.length,n={};++r<o;){var a=t[r],s=_c(i,a);e(s,a)&&Rg(n,Fr(a,i),s)}return n}var Lg=qC;function $C(i,t){return Lg(i,t,function(e,r){return Ig(i,r)})}var Bg=$C;var XC=Rc(function(i,t){return i==null?{}:Bg(i,t)}),oo=XC;var de=class{modifyById(t,e){let r=this;if(r[t]===void 0)throw new Error("not expected");{let n={...r,[t]:e};return Object.setPrototypeOf(n,de.prototype),n}}add(t,e){return this.runOp({type:1,id:t,data:e})?.data??this}runOp(t){let e=this;if(t.type===1){let r=e[t.id],o;r===void 0?o={type:2,id:t.id}:o={type:1,id:t.id,data:r};let{id:n,data:a}=t,s={...e,[n]:a};return Object.setPrototypeOf(s,de.prototype),{data:s,actual:t,reverse:o}}else if(t.type===2){let{id:r}=t,o=e[r];if(o===void 0)return null;{let n={...e};return Object.setPrototypeOf(n,de.prototype),delete n[r],{data:n,actual:t,reverse:{type:1,id:r,data:o}}}}return null}};function al(i){if(i.deepFreeze!==void 0){i.deepFreeze(i);return}let t=Object.getOwnPropertyNames(i);for(let e of t){let r=i[e];r&&typeof r=="object"&&al(r)}return Object.freeze(i)}function Vg(i,t){let e=0;for(;e<i.length&&e<t.length;){if(i[e]<t[e])return-1;if(i[e]>t[e])return 1;e+=1}return e!==t.length?-1:e!==i.length?1:0}var xa=class extends Error{};function Yc(i){let t={...i};return Object.setPrototypeOf(t,Object.getPrototypeOf(i)),t}function Po(i,t,e){if(i===void 0?t===void 0?(i=0,t=10):i=t-10:t===void 0&&(t=i+10),i>t){let n=i;i=t,t=n}let r=[],o=1/(e+1);for(let n=0;n<e;n++){let a=i+(t-i)*(n+.75+Math.random()*.5)*o;r.push(a)}return r}function ba(i){return i instanceof Uint8Array||i instanceof Uint16Array||i instanceof Uint32Array||i instanceof Int8Array||i instanceof Int16Array||i instanceof Int32Array||i instanceof Float32Array||i instanceof Float64Array}function zg(){return typeof process<"u"}function Gg(i,t){for(let e of i)t(e.id,e.data)!==!0&&Gg(e.children,t)}function Fg(i,t){if(t(i.id,i.data)!==!0)for(let e of i.children)Fg(e,t)}var ct=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,ct.prototype)}deepFreeze(){let e=0;for(;e<this.length;)al(this[e]),e++}fillCaches0(e,r){this.objCaches.set(e.id,e),this.parentCaches.set(e.id,r);for(let o of e.children)this.fillCaches0(o,e.id)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,this.parentCaches=new Map;for(let e of this)this.fillCaches0(e,null)}}randomId(){this.fillCaches();let e=Array.from(this.objCaches.keys());if(e.length!==0)return e[Math.max(0,Math.floor(Math.random()*e.length)-1)]}nonExistOrDescendantOf(e,r){if(!this.has(e))return!0;for(;e;){let o=this.parent(e);if(o===r)return!0;e=o}return!1}rootAcestor(e){for(;e;){let r=this.parent(e);if(r)e=r;else return e}return e}isDescendantOf(e,r){for(;e;){let o=this.parent(e);if(o===r)return!0;e=o}return!1}data(e){return this.get(e)?.data}has(e){return this.childrenOf(e)!==void 0}get(e){return this.fillCaches(),this.objCaches.get(e)}childrenOf(e){return e===null?this:this.get(e)?.children}traverseFrom(e,r){if(e===null)this.traverse(r);else{let o=this.get(e);o&&Fg(o,r)}}traverse(e){Gg(this,e)}totalSize(){return this.fillCaches(),this.objCaches.size}parent(e){return this.fillCaches(),this.parentCaches.get(e)}childrenArray(e){return e===null?this:this.get(e).children}modifyById(e,r){if(this.get(e)===void 0)throw new Error("not expected");{let n=this.parent(e),a=this.childrenArray(n),s=a.findIndex(u=>u.id===e);if(s<0)throw new Error("not expected");let l=a[s];return a=[...a],a[s]={...l,data:r},this.modifyArrayBy(n,a)}}modifyArrayBy(e,r){let o=e,n=r;for(;o!==null;){let s=n,l=o;if(o=this.parent(o),o===void 0)throw new Error;n=this.childrenArray(o);let c=n.findIndex(u=>u.id===l);if(c<0)throw new Error;n=[...n],n[c]={...n[c],children:s}}Object.setPrototypeOf(n,ct.prototype);let a=n;return a.fillCaches(),a}runOp(e){switch(e.type){case 7:return this.addOp(e);case 8:return this.deleteOp(e);case 9:return this.moveOp(e)}return null}checkDuplicatedIdRec({id:e,children:r}){if(this.get(e)!==void 0)return!0;for(let o of r)if(this.checkDuplicatedIdRec(o))return!0;return!1}addOp(e){let{parent:r,fi:o,id:n,data:a,children:s}=e;if(r!==null&&this.get(r)===void 0)return null;if(this.checkDuplicatedIdRec(e))return null;{let l=r,c=this.childrenArray(l),u={fi:o,id:n,data:a,children:s};return c=[...c,u],c.sort((p,f)=>p.fi-f.fi),e.localIndex=c.indexOf(u),{data:this.modifyArrayBy(l,c),actual:e,reverse:{type:8,id:n}}}}deleteOp(e){let{id:r}=e;if(this.get(r)===null)return null;{let o=this.parent(r);if(o===void 0)return null;let n=this.childrenArray(o),a=n.findIndex(c=>c.id===r);e.localIndex=a,n=[...n];let s=n.splice(a,1)[0];return{data:this.modifyArrayBy(o,n),actual:e,reverse:{type:7,...s,parent:o}}}}moveOp(e){let{parent:r,fi:o,id:n}=e;if(r!==null&&this.get(r)===void 0)return this.deleteOp({type:8,id:n});if(r!==null){let f=r;for(;f!==null;){if(f===void 0)throw new Error;if(f===n)throw new xa("cyclic tree");f=this.parent(f)}}let a=this.parent(n);if(a===void 0)return null;let s=a,l=this.childrenArray(a),c=l.findIndex(f=>f.id===n);l=[...l];let u=l.splice(c,1)[0],d=this.modifyArrayBy(a,l);a=r,l=d.childrenArray(a);let p=u.fi;return u={...u,fi:o},l=[...l,u],l.sort((f,h)=>f.fi-h.fi),e.localIndex=l.indexOf(u),d=d.modifyArrayBy(a,l),{data:d,actual:e,reverse:{type:9,parent:s,fi:p,id:n}}}previous(e,r){if(r===null){let n=this.childrenArray(e);return n.length===0?null:n[n.length-1].id}let o=null;for(let n of this.childrenArray(e)){if(n.id===r)return o;o=n.id}return null}traverseSortNext(e){let r=this.parent(e);if(r!==void 0){let o=this.childrenArray(r),n=o.findIndex(a=>a.id===e)+1;if(n<o.length)return o[n].id;if(r)return this.traverseSortNext(r)}}sortNext(e){let r=this.childrenArray(e);return r.length>0?r[0].id:this.traverseSortNext(e)}traverseSortPrevious(e){let r=this.childrenArray(e);return r.length>0?this.traverseSortPrevious(r[r.length-1].id):e}sortPrevious(e){let r=this.parent(e);if(r!==void 0){let o=this.childrenArray(r),n=o.findIndex(a=>a.id===e)-1;return n>=0?this.traverseSortPrevious(o[n].id):r}}getAllSorted(e){let r=[];for(let o of e){let n=this.getWithSortKey(o.id);n!==void 0&&r.push({...o,...n})}r.sort((o,n)=>Vg(o.sortKey,n.sortKey));for(let o of r)delete o.sortKey;return r}getWithSortKey(e){var r=e;let o=[],n=this.get(r),a=n;if(n!==void 0){for(;r;)o.splice(0,0,n.fi),r=this.parent(r),r!==null&&(n=this.get(r));return{...a,sortKey:o}}}insertBeforeHelper(e,r,o){return this.insertAfterHelper(e,this.previous(e,r),o)}insertAfterHelper(e,r,o){let n=this.childrenArray(e);if(r===null){if(n.length===0)return Po(0,o,o);{let a=n[0].fi;return Po(a-o,a,o)}}else{let a=this.get(r);if(a===void 0||this.parent(r)!==e)throw new Error("illegal args");let s=n.find(l=>l.fi>a.fi);if(s===void 0){let l=n[n.length-1].fi;return Po(l,l+o,o)}else return Po(a.fi,s.fi,o)}}};var va;(t=>{function i(e,r){if(r.type!==0)return null;if(Array.isArray(e)){let o=r.props,n={},a=[...e],s=!1;if(o)for(let l of Object.keys(o)){let c=parseInt(l);if(isNaN(c))throw new Error("wrong index");n[l]=a[c],a[c]=o[l],s=!0}return s?{data:a,actual:r,reverse:{type:0,props:n}}:null}else{let o=r.props,n={},a={...e},s=!1;if(o)for(let l of Object.keys(o)){n[l]=a[l];let c=o[l];c===void 0?delete a[l]:a[l]=c,s=!0}return s?{data:a,actual:r,reverse:{type:0,props:n}}:null}}t.runOp=i})(va||(va={}));var Se=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,Se.prototype)}deepFreeze(){let e=0;for(;e<this.length;)al(this[e]),e++}fillCaches0(e){this.objCaches.set(e.id,e)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,Object.getOwnPropertyDescriptor(this,"objCaches").enumerable=!1;for(let e of this)this.fillCaches0(e)}}randomId(){this.fillCaches();let e=Array.from(this.objCaches.keys());if(e.length!==0)return e[Math.max(0,Math.floor(Math.random()*e.length)-1)]}data(e){return this.get(e)?.data}get(e){return this.fillCaches(),this.objCaches.get(e)}modifyById(e,r){if(this.get(e)===void 0)throw new Error("not expected");{let n=this,a=n.findIndex(c=>c.id===e);if(a<0)throw new Error("not expected");let s=n[a];return n=[...n],n[a]={...s,data:r},this.modifyArrayBy(n)}}modifyArrayBy(e){Object.setPrototypeOf(e,Se.prototype);let r=e;return zg()||r.fillCaches(),r}runOp(e){switch(e.type){case 4:return this.addOp(e);case 5:return this.deleteOp(e);case 6:return this.moveOp(e)}return null}addOp(e){let{fi:r,id:o,data:n}=e,a=this,s={fi:r,id:o,data:n};return a=[...a,s],a.sort((c,u)=>c.fi-u.fi),e.localIndex=a.indexOf(s),{data:this.modifyArrayBy(a),actual:e,reverse:{type:5,id:o}}}deleteOp(e){let{id:r}=e,o=this,n=o.findIndex(l=>l.id===r);if(n===-1)return null;e.localIndex=n,o=[...o];let a=o.splice(n,1)[0];return{data:this.modifyArrayBy(o),actual:e,reverse:{type:4,...a}}}moveOp(e){let{fi:r,id:o}=e,n=this;n=[...n];let a=n.findIndex(u=>u.id===o);if(a===-1)return null;let s=n[a].fi,l={...n[a],fi:r};return n[a]=l,n.sort((u,d)=>u.fi-d.fi),e.localIndex=n.indexOf(l),{data:this.modifyArrayBy(n),actual:e,reverse:{type:6,fi:s,id:o}}}previous(e){if(e===null)return this.length===0?null:this[this.length-1].id;let r=null;for(let o of this){if(o.id===e)return r;r=o.id}return null}insertBeforeHelper(e,r){return this.insertAfterHelper(this.previous(e),r)}insertAfterHelper(e,r){let o=this;if(e===null){if(o.length===0)return Po(0,r,r);{let n=o[0].fi;return Po(n-r,n,r)}}else{let n=this.get(e);if(n===void 0)throw new Error("illegal args");let a=o.find(s=>s.fi>n.fi);if(a===void 0){let s=o[o.length-1].fi;return Po(s,s+r,r)}else return Po(n.fi,a.fi,r)}}};function Sa(i){return i&&typeof i=="object"&&i instanceof Je}var Je=class{unusedFunOverridesTable(t){}runOp(t){let e=[],r=this,o=0,n={};for(;o<t.path.length;){if(e.push(r),r=r===void 0?void 0:r[t.path[o]],r!==void 0&&!Sa(r))return null;o+=1}r=r?Yc(r):new Je;for(let[l,c]of Object.entries(t.props)){let u=r[l];n[l]=u,c===void 0?delete r[l]:r[l]=c}for(;o>0;){if(Object.keys(r).length===0){let l=e[o-1];l&&(r=Yc(l),delete r[t.path[o-1]])}else{let l=e[o-1];if(l){let c=Yc(l);c[t.path[o-1]]=r,r=c}else{let c=new Je;c[t.path[o-1]]=r,r=c}}o-=1}let a=Object.setPrototypeOf(r,Je.prototype),s={...t,props:n};return{data:a,actual:t,reverse:s}}},Oo;(r=>{function i(o,n){return sl(o,n)??o}r.apply=i;function t(o,n){return Ip(o,n)}r.merge=t;function e(o,n){let a=0,s=n.path,l=o;for(;a<s.length&&l!==void 0;){if(l=ut.zoomOnce(l,s[a]),l===void 0)return n;if(!Sa(l))return;a+=1}if(l===void 0)return n;if(!!Sa(l))if(n.type===0){let c={...n.props};for(let u of Object.keys(l))delete c[u];return{...n,props:c}}else if(n.type===1||n.type===4||n.type===7){let c=Mp([n],l);return c?c[0]:n}else return n}r.filterOp=e})(Oo||(Oo={}));function Mp(i,t){if(t===void 0)return;let e=!1,r=i.map(o=>{let n=o.id,a=sl(o.data,t[n]);if(e=e||a!==void 0,a===void 0&&(a=o.data),o.children){let s=Mp(o.children,t);return s!==void 0?e=!0:s=o.children,{...o,id:n,data:a,children:s}}else return{...o,id:n,data:a}});if(e)return r}function YC(i,t){if(t===void 0)return;let e=!1,r=i.map(o=>{let n=o.id,a=sl(o.data,t[n]);return e=e||a!==void 0,a===void 0&&(a=o.data),{...o,id:n,data:a}});if(e)return Object.setPrototypeOf(r,Object.getPrototypeOf(i)),r}function sl(i,t){if(!Sa(t))return t;if(i instanceof ct){let e=Mp(i,t);return e!==void 0&&Object.setPrototypeOf(e,Object.getPrototypeOf(i)),e}else{if(i instanceof Se)return YC(i,t);if(Array.isArray(i)){let e=!1,r=i.map((o,n)=>{let a=sl(o,t[n]);return e=e||a!==void 0,a===void 0&&(a=o),a});return e?(Object.setPrototypeOf(r,Object.getPrototypeOf(i)),r):void 0}else{if(i instanceof Je)return Ip(i,t);if(i&&typeof i=="object"){let e={},r=!1;for(let[o,n]of Object.entries(i)){let a=sl(n,t[o]);r=r||a!==void 0,a===void 0&&(a=n),e[o]=a}return r?(Object.setPrototypeOf(e,Object.getPrototypeOf(i)),e):void 0}}}}function Ip(i,t){if(i===void 0)return t;if(t===void 0)return i;if(!Sa(t))return t;if(!Sa(i))return Oo.apply(i,t);let e=new Set;for(let o of Object.keys(i))e.add(o);for(let o of Object.keys(t))e.add(o);let r=new Je;for(let o of e){let n=Ip(i===void 0?void 0:i[o],t===void 0?void 0:t[o]);r[o]=n}return r}function jg(i,t){let e={cur:[],result:[],len:0};return i=ll(i,t,e)??i,[i,e.result]}function Kc(i,t){return i===null?null:(i.cur[i.len]=t,i.len+=1,i)}function Qc(i){i&&(i.len-=1)}function KC(i){if(i===null)return null;i.result.push(i.cur.slice(0,i.len))}function Ug(i,t,e){let r=!1,o=i.map(n=>{let a=n.id,s=t[a];if(s!==void 0&&typeof s=="string"&&(r=!0,a=s,e!==null))throw new Error("not supported");let l=ll(n.data,t,Kc(e,a));Qc(e),r=r||l!==void 0,l===void 0&&(l=n.data);let c=Ug(n.children,t,e);return c!==void 0?r=!0:c=n.children,{...n,id:a,data:l,children:c}});if(r)return o}function QC(i,t,e){let r=!1,o=i.map(n=>{let a=n.id,s=t[a];if(s!==void 0&&typeof s=="string"&&(r=!0,a=s,e!==null))throw new Error("not supported");let l=ll(n.data,t,Kc(e,a));return Qc(e),r=r||l!==void 0,l===void 0&&(l=n.data),{...n,id:a,data:l}});if(r)return Object.setPrototypeOf(o,Object.getPrototypeOf(i)),o}function ll(i,t,e){if(i instanceof ct){let r=Ug(i,t,e);return r!==void 0&&Object.setPrototypeOf(r,Object.getPrototypeOf(i)),r}else{if(i instanceof Se)return QC(i,t,e);if(Array.isArray(i)){let r=!1,o=i.map((n,a)=>{let s=ll(n,t,Kc(e,a));return Qc(e),r=r||s!==void 0,s===void 0&&(s=n),s});return r?(Object.setPrototypeOf(o,Object.getPrototypeOf(i)),o):void 0}else if(i&&typeof i=="object"&&!ba(i)){let r={},o=!1;for(let[n,a]of Object.entries(i))if(n!=="name"&&n!=="variableId"){let s=t[n];if(typeof s=="string"){if(e!==null)throw new Error("not supported");o=!0,n=s}let l=ll(a,t,Kc(e,n));Qc(e),o=o||l!==void 0,l===void 0&&(l=a),r[n]=l}else r[n]=a;return o?(Object.setPrototypeOf(r,Object.getPrototypeOf(i)),r):void 0}else if(typeof i=="string"){let r=t[i];return r!==void 0&&KC(e),r}else return}}var wa;(t=>{function i(e,r){let o=ut.zoom(r,e.path);if(typeof o=="object"){let n={};for(let a of Object.keys(e.props))n[a]=o[a];return{...e,props:n}}else return{...e,props:{}}}t.replaceProps=i})(wa||(wa={}));var bt;(s=>{function i(l,c){return{...l,path:l.path.slice(c)}}s.drop=i;function t(l,c){return e(l,c)?.data??l}s.applySimple=t;function e(l,c){let u=c.path;for(var d=[];;){let p;if(l instanceof Je&&c.type===0&&(p=l.runOp({...c,path:u.slice(d.length)}),p===null&&(p=void 0)),p===void 0&&d.length===u.length&&(l instanceof ct||l instanceof Se||l instanceof de?p=l.runOp(c):p=va.runOp(l,c)),p!==void 0)if(p!==null){let m=p.data;for(let y=d.length-1;y>=0;y--){let x=u[y],v=d[y];if(v instanceof ct){if(typeof x=="number")throw new Error("illegal arg");m=v.modifyById(x,m)}else if(v instanceof Se){if(typeof x=="number")throw new Error("illegal arg");m=v.modifyById(x,m)}else if(v instanceof de){if(typeof x=="number")throw new Error("illegal arg");m=v.modifyById(x,m)}else if(v instanceof Je){let w={...v,[x]:m};m=Object.setPrototypeOf(w,Je.prototype)}else if(typeof v=="object")if(Array.isArray(v)){if(typeof x=="string"&&(x=parseInt(x),isNaN(x)))throw new Error("Invalid path");let w=m;m=[...v],m[x]=w}else m={...v,[x]:m};else return null}return{data:m,actual:{...p.actual,path:u},reverse:{...p.reverse,path:u}}}else return null;let f=u[d.length],h;if(l instanceof ct){if(typeof f=="number")throw new Error("");h=l.get(f)?.data}else if(l instanceof Se){if(typeof f=="number")throw new Error("");h=l.get(f)?.data}else l!==null&&(h=l[f]);if(h!==void 0)d.push(l),l=h;else return null}}s.apply=e;function r(l,c){for(let u=0;u<l.length&&u<c.length;u++)if(l[u]!==c[u])return!0;return!1}s.pathDisjoint=r;function o(l,c){if(l.length!==c.length)return!1;for(let u=0;u<l.length;u++)if(l[u]!==c[u])return!1;return!0}s.pathEq=o;function n(l,c){return r(l.path,c.path)}s.commutative=n;function a(l,c){return l.type===0&&c.type===0&&o(l.path,c.path)?Object.keys(l.props).every(u=>c.props[u]!==void 0):!1}s.subsumed=a})(bt||(bt={}));var cl;(l=>{function i(){return[]}l.empty=i;function t(c,u){let d=[];for(let p of c){let[f,...h]=p.path;f===u&&d.push({...p,path:h})}return d}l.removePrefix=t;function e(c,u){return c.map(d=>({...d,path:[u,...d.path]}))}l.addPrefix=e;function r(c,u){return[...c,...u]}l.concat=r;function o(c,u){return[...c.filter(p=>!u.some(f=>bt.subsumed(p,f))),...u]}l.compress=o;function n(c,u){return c.every(d=>u.every(p=>bt.commutative(d,p)))}l.commutative=n;function a(c,u){for(let d of u){let p=s(c,d);p!==null&&(c=p.data)}return c}l.applyAll=a;function s(c,u){var d=c;let p=[],f=[];for(let h of u)try{if(h.type===3||h.type===5&&h.path[h.path.length-1]==="variables"){let m,y,x;if(h.type===3?(m=ut.zoom(d,[...h.path,h.id]),x=bt.apply(d,{...h,type:2})):(m=ut.zoom(d,[...h.path,h.id,"value"]),x=bt.apply(d,h)),x!==null){d=x.data;let[v,w]=jg(d,{[h.id]:m});d=v;for(let O=0;O<w.length;O++){let S=w[O],T=S.pop();if(typeof T=="number"){let M=[T];for(let D=O+1;D<w.length;D++){let E=w[D],I=E[E.length-1];if(typeof I=="number"&&ut.equal(S,E.slice(0,E.length-1)))M.push(I),w.splice(D,1);else break}let g=ut.zoom(d,S);y=g.map((D,E)=>M.includes(E)?h.id:D),m=g,T=S.pop()}else{if(T==="alphaOverride"||T==="alpha"){m/=100;let M=m,g=ut.zoom(d,S.slice(0,S.length-2)),D=g.layers.map(E=>E.id===S[S.length-1]?{...E,data:{...E.data,[T]:M}}:E);Object.setPrototypeOf(D,Object.getPrototypeOf(g.layers)),g.layers=D}y=h.id}p.push({type:0,path:S,props:{[T]:m}}),f.push({type:0,path:S,props:{[T]:y}})}f.push(x.reverse),p.push(x.actual)}}else{let m=bt.apply(d,h);m!==null&&(p.push(m.actual),d=m.data,f.push(m.reverse))}}catch(m){if(m instanceof xa)return null;throw m}return{data:d,actual:p,reverse:f.reverse()}}l.apply=s})(cl||(cl={}));var kg=Symbol(),ZC=Symbol(),Jc=Symbol(),Sn=class{reportOp(t,e,r=[]){let o=this;if(e===null)return;o._current=e.data;let n=r;for(;!(o instanceof Zc);){let a=o._path,s=o._current;if(a!==""&&n.splice(0,0,a),o=o._parent,o===null)return;o.update(a,s)}o.push(n,t,e.actual,e.reverse)}deleteChildren(t){if(this._children){let e=this._children[t];if(e){let r=e[Jc];r&&r(),delete this._children[t]}}}},Np=class extends Sn{constructor(t,e,r){super(),this._parent=t,this._path=e,this._current=r}update(t,e){if(Array.isArray(this._current)){if(typeof t=="string"&&(t=parseInt(t),isNaN(t)))throw new Error("Invalid path");this._current=[...this._current],this._current[t]=e}else if(this._current instanceof Je){let r={...this._current,[t]:e};this._current=Object.setPrototypeOf(r,Je.prototype)}else this._current={...this._current,[t]:e}}runOp(t){this.reportOp(t,va.runOp(this._current,t),t.path)}},Dp=class extends Sn{constructor(t,e,r){super(),this._parent=t,this._path=e,this._current=r}update(t,e){this._current={...this._current,[t]:e},Object.setPrototypeOf(this._current,de.prototype)}runOp(t){this.reportOp(t,this._current.runOp(t))}},Hg={get(i,t){if(t===Jc)return()=>{i._parent=null};if(t===kg)return i._current;if(t===ZC)return i;let{_current:e,_children:r}=i;if(t==="push"&&Array.isArray(e))throw new Error("not supported to expand array");let o=r===void 0?void 0:r[t];if(o!==void 0)return o;let n=e[t],a=eu(i,t,n);return a!==n?(r===void 0&&(r={},i._children=r),r[t]=a,a):n},has(i,t){return t in i._current},ownKeys(i){return Reflect.ownKeys(i._current)},defineProperty(){throw Error("not supported")},getPrototypeOf(i){return Object.getPrototypeOf(i._current)},setPrototypeOf(){throw Error("not supported")},getOwnPropertyDescriptor(i,t){let e=i._current,r=Reflect.getOwnPropertyDescriptor(e,t);return r&&{writable:!0,configurable:!0,enumerable:r.enumerable,value:e[t]}}},JC={...Hg,set(i,t,e){let r={type:0,props:{[t]:vt(e)??e}};return i.deleteChildren(t),i.runOp(r),!0},deleteProperty(i,t){let e={type:0,props:{[t]:void 0}};return i.deleteChildren(t),i.runOp(e),!0}},eA={...Hg,set(i,t,e){return e===void 0?this.deleteProperty(i,t):(i.deleteChildren(t),i.runOp({type:1,id:t,data:e})),!0},deleteProperty(i,t){return i.runOp({type:2,id:t}),!0}},Pa=class extends Sn{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[Jc]=()=>{this._parent=null}}unproxy(){return this._current}update(t,e){this._current=this._current.modifyById(t,e)}runOp(t){this.reportOp(t,this._current.runOp(t))}randomId(){return this._current.randomId()}isDescendantOf(t,e){return this._current.isDescendantOf(t,e)}childrenOf(t){return this._current.childrenOf(t)}traverse(t){return this._current.traverse(t)}get(t){return this._current.get(t)}parent(t){return this._current.parent(t)}traverse(t){this._current.traverse((e,r)=>{t(e,this.data(e))})}data(t){let{_current:e,_children:r}=this,o=r===void 0?void 0:r[t];if(o!==void 0)return o;let n=e.get(t)?.data,a=eu(this,t,n);return a!==n?(r===void 0&&(r={},this._children=r),r[t]=a,a):n}add(t,e,r,o,n){this.runOp({type:7,parent:t,fi:e,id:r,data:o,children:n})}move(t,e,r){this.runOp({type:9,parent:t,fi:e,id:r})}insertAfter(t,e,r){let o=this._current.insertAfterHelper(t,e,r.length);for(let n=0;n<r.length;n++){let a=r[n];this.add(t,o[n],a.id,a.data,a.children)}}insertBefore(t,e,r){let o=this._current.insertBeforeHelper(t,e,r.length);for(let n=0;n<r.length;n++){let a=r[n];this.add(t,o[n],a.id,a.data,a.children)}}moveAfter(t,e,r){let o=this._current.insertAfterHelper(t,e,r.length);for(let n=0;n<r.length;n++){let a=r[n];this.move(t,o[n],a)}}moveBefore(t,e,r){let o=this._current.insertBeforeHelper(t,e,r.length);for(let n=0;n<r.length;n++){let a=r[n];this.move(t,o[n],a)}}delete(t){this.deleteChildren(t),this.runOp({type:8,id:t})}sortNext(t){return this._current.sortNext(t)}sortPrevious(t){return this._current.sortPrevious(t)}getAllSorted(t){return this._current.getAllSorted(t)}},Oa=class extends Sn{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[Jc]=()=>{this._parent=null}}unproxy(){return this._current}get length(){return this._current.length}forEach(t){let e=this.length;for(let r=0;r<e;r++){let o=this._current[r].id,n=this._current[r].fi;t(this.data(this._current[r].id),o,n)}}find(t){let e=this.length;for(let r=0;r<e;r++){let o=this._current[r].id;if(t(this.data(o),o))return this.get(o)}}update(t,e){this._current=this._current.modifyById(t,e)}randomId(){return this._current.randomId()}get(t){return{...this._current.get(t),data:this.data(t)}}data(t){let{_current:e,_children:r}=this,o=r===void 0?void 0:r[t];if(o!==void 0)return o;let n=e.get(t)?.data,a=eu(this,t,n);return a!==n?(r===void 0&&(r={},this._children=r),r[t]=a,a):n}runOp(t){this.reportOp(t,this._current.runOp(t))}add(t,e,r){this.runOp({type:4,fi:t,id:e,data:r})}move(t,e){this.runOp({type:6,fi:t,id:e})}insertAfter(t,e){let r=this._current.insertAfterHelper(t,e.length);for(let o=0;o<e.length;o++){let n=e[o];this.add(r[o],n.id,n.data)}}insertBefore(t,e){let r=this._current.insertBeforeHelper(t,e.length);for(let o=0;o<e.length;o++){let n=e[o];this.add(r[o],n.id,n.data)}}moveAfter(t,e){let r=this._current.insertAfterHelper(t,e.length);for(let o=0;o<e.length;o++){let n=e[o];this.move(r[o],n)}}moveBefore(t,e){let r=this._current.insertBeforeHelper(t,e.length);for(let o=0;o<e.length;o++){let n=e[o];this.move(r[o],n)}}delete(t){this.deleteChildren(t),this.runOp({type:5,id:t})}};function Ep(i,t,e){if(i.length>0){let r=i[i.length-1];if(r.type===0&&t.type===0&&ut.equal(r.path,e)){Object.assign(r.props,t.props);return}}i.push({...t,path:e})}var Zc=class extends Sn{constructor(t){super(),this.ts=[],this.actual=[],this.reverse=[],this._current=t}update(t,e){if(t!=="")throw new Error("");this._current=e}push(t,e,r,o){Ep(this.ts,e,t),Ep(this.actual,r,t),Ep(this.reverse,o,t)}result(){return{data:this._current,ts:this.ts,actual:this.actual,reverse:this.reverse.reverse()}}};function eu(i,t,e){return e instanceof ct?new Pa(i,t,e):e instanceof Se?new Oa(i,t,e):e instanceof de?new Proxy(new Dp(i,t,e),eA):e!==null&&typeof e=="object"?ba(e)?e:new Proxy(new Np(i,t,e),JC):e}function _p(i){let t=new Zc(i);return[eu(t,"",i),t]}function Mi(i,t){let[e,r]=_p(i);return t(e),r.result()}function vt(i){return i instanceof Pa||i instanceof Oa?i._current:i!==null&&typeof i=="object"?i[kg]:i}var ut;(o=>{function i(n,a){if(a.length===n.length)for(var s=0;s<n.length;){if(n[s]!==a[s])return!1;s+=1}else return!1;return!0}o.equal=i;function t(n,a,s){let l=r(s,n);if(l!==void 0&&typeof l=="object"&&l!==null){let c={...a};return Object.keys(l).forEach(u=>{delete c[u]}),c}else return a}o.removeOverridden=t;function e(n,a){if((n instanceof ct||n instanceof Pa)&&typeof a=="string")return n.data(a);if((n instanceof Se||n instanceof Oa)&&typeof a=="string")return n.data(a);if(typeof a=="number"&&Array.isArray(n))return n[a];if(typeof a=="string"&&typeof n=="object"&&n!==null)return n[a]}o.zoomOnce=e;function r(n,a,s=0){for(;s<a.length&&n!==void 0;)n=e(n,a[s]),s+=1;return n}o.zoom=r})(ut||(ut={}));function Wg(i,t){let e=[];if(t.length===i.length)for(var r=0;r<i.length;){if(t[r]==="*")e.push(i[r]);else if(i[r]!==t[r])return null;r+=1}else return null;return e}function je(i,t){let e=[];if(t.length<=i.length)for(var r=0;r<t.length;){if(t[r]==="*")e.push(i[r]);else if(i[r]!==t[r])return null;r+=1}else return null;return e}var tu=class{},ul=class extends tu{constructor(e){super();this.id=e}},dl=class extends tu{constructor(e){super();this.data=e}};var Lp;try{Lp=new TextDecoder}catch{}var fe,Ei,G=0;var Jg=[],Bp=Jg,Vp=0,Sr={},Qe,Ii,jr=0,To=0,_r,ei,hr=[],rt,qg={useRecords:!1,mapsAsObjects:!0},pl=class{},Gp=new pl;Gp.name="MessagePack 0xC1";var Ta=!1,Co=class{constructor(t){t&&(t.useRecords===!1&&t.mapsAsObjects===void 0&&(t.mapsAsObjects=!0),t.structures?t.structures.sharedLength=t.structures.length:t.getStructures&&((t.structures=[]).uninitialized=!0,t.structures.sharedLength=0)),Object.assign(this,t)}unpack(t,e){if(fe)return i0(()=>(ou(),this?this.unpack(t,e):Co.prototype.unpack.call(qg,t,e)));Ei=e>-1?e:t.length,G=0,Vp=0,To=0,Ii=null,Bp=Jg,_r=null,fe=t;try{rt=t.dataView||(t.dataView=new DataView(t.buffer,t.byteOffset,t.byteLength))}catch(r){throw fe=null,t instanceof Uint8Array?r:new Error("Source must be a Uint8Array or Buffer but was a "+(t&&typeof t=="object"?t.constructor.name:typeof t))}if(this instanceof Co){if(Sr=this,this.structures)return Qe=this.structures,ru();(!Qe||Qe.length>0)&&(Qe=[])}else Sr=qg,(!Qe||Qe.length>0)&&(Qe=[]);return ru()}unpackMultiple(t,e){let r,o=0;try{Ta=!0;let n=t.length,a=this?this.unpack(t,n):au.unpack(t,n);if(e){for(e(a);G<n;)if(o=G,e(ru())===!1)return}else{for(r=[a];G<n;)o=G,r.push(ru());return r}}catch(n){throw n.lastPosition=o,n.values=r,n}finally{Ta=!1,ou()}}_mergeStructures(t,e){t=t||[];for(let r=0,o=t.length;r<o;r++){let n=t[r];n&&(n.isShared=!0,r>=32&&(n.highByte=r-32>>5))}t.sharedLength=t.length;for(let r in e||[])if(r>=0){let o=t[r],n=e[r];n&&(o&&((t.restoreStructures||(t.restoreStructures=[]))[r]=o),t[r]=n)}return this.structures=t}decode(t,e){return this.unpack(t,e)}};function ru(){try{if(!Sr.trusted&&!Ta){let t=Qe.sharedLength||0;t<Qe.length&&(Qe.length=t)}let i=Mt();if(G==Ei)Qe.restoreStructures&&$g(),Qe=null,fe=null,ei&&(ei=null);else if(G>Ei){let t=new Error("Unexpected end of MessagePack data");throw t.incomplete=!0,t}else if(!Ta)throw new Error("Data read, but end of buffer not reached");return i}catch(i){throw Qe.restoreStructures&&$g(),ou(),(i instanceof RangeError||i.message.startsWith("Unexpected end of buffer"))&&(i.incomplete=!0),i}}function $g(){for(let i in Qe.restoreStructures)Qe[i]=Qe.restoreStructures[i];Qe.restoreStructures=null}function Mt(){let i=fe[G++];if(i<160)if(i<128){if(i<64)return i;{let t=Qe[i&63]||Sr.getStructures&&e0()[i&63];return t?(t.read||(t.read=Fp(t,i&63)),t.read()):i}}else if(i<144)if(i-=128,Sr.mapsAsObjects){let t={};for(let e=0;e<i;e++)t[r0()]=Mt();return t}else{let t=new Map;for(let e=0;e<i;e++)t.set(Mt(),Mt());return t}else{i-=144;let t=new Array(i);for(let e=0;e<i;e++)t[e]=Mt();return t}else if(i<192){let t=i-160;if(To>=G)return Ii.slice(G-jr,(G+=t)-jr);if(To==0&&Ei<140){let e=t<16?jp(t):t0(t);if(e!=null)return e}return zp(t)}else{let t;switch(i){case 192:return null;case 193:return _r?(t=Mt(),t>0?_r[1].slice(_r.position1,_r.position1+=t):_r[0].slice(_r.position0,_r.position0-=t)):Gp;case 194:return!1;case 195:return!0;case 196:return Rp(fe[G++]);case 197:return t=rt.getUint16(G),G+=2,Rp(t);case 198:return t=rt.getUint32(G),G+=4,Rp(t);case 199:return wn(fe[G++]);case 200:return t=rt.getUint16(G),G+=2,wn(t);case 201:return t=rt.getUint32(G),G+=4,wn(t);case 202:if(t=rt.getFloat32(G),Sr.useFloat32>2){let e=nu[(fe[G]&127)<<1|fe[G+1]>>7];return G+=4,(e*t+(t>0?.5:-.5)>>0)/e}return G+=4,t;case 203:return t=rt.getFloat64(G),G+=8,t;case 204:return fe[G++];case 205:return t=rt.getUint16(G),G+=2,t;case 206:return t=rt.getUint32(G),G+=4,t;case 207:return Sr.int64AsNumber?(t=rt.getUint32(G)*4294967296,t+=rt.getUint32(G+4)):t=rt.getBigUint64(G),G+=8,t;case 208:return rt.getInt8(G++);case 209:return t=rt.getInt16(G),G+=2,t;case 210:return t=rt.getInt32(G),G+=4,t;case 211:return Sr.int64AsNumber?(t=rt.getInt32(G)*4294967296,t+=rt.getUint32(G+4)):t=rt.getBigInt64(G),G+=8,t;case 212:if(t=fe[G++],t==114)return Zg(fe[G++]&63);{let e=hr[t];if(e)return e.read?(G++,e.read(Mt())):e.noBuffer?(G++,e()):e(fe.subarray(G,++G));throw new Error("Unknown extension "+t)}case 213:return t=fe[G],t==114?(G++,Zg(fe[G++]&63,fe[G++])):wn(2);case 214:return wn(4);case 215:return wn(8);case 216:return wn(16);case 217:return t=fe[G++],To>=G?Ii.slice(G-jr,(G+=t)-jr):rA(t);case 218:return t=rt.getUint16(G),G+=2,To>=G?Ii.slice(G-jr,(G+=t)-jr):oA(t);case 219:return t=rt.getUint32(G),G+=4,To>=G?Ii.slice(G-jr,(G+=t)-jr):iA(t);case 220:return t=rt.getUint16(G),G+=2,Yg(t);case 221:return t=rt.getUint32(G),G+=4,Yg(t);case 222:return t=rt.getUint16(G),G+=2,Kg(t);case 223:return t=rt.getUint32(G),G+=4,Kg(t);default:if(i>=224)return i-256;if(i===void 0){let e=new Error("Unexpected end of MessagePack data");throw e.incomplete=!0,e}throw new Error("Unknown MessagePack token "+i)}}}var tA=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function Fp(i,t){function e(){if(e.count++>2){let o=i.read=new Function("r","return function(){return {"+i.map(n=>tA.test(n)?n+":r()":"["+JSON.stringify(n)+"]:r()").join(",")+"}}")(Mt);return i.highByte===0&&(i.read=Xg(t,i.read)),o()}let r={};for(let o=0,n=i.length;o<n;o++){let a=i[o];r[a]=Mt()}return r}return e.count=0,i.highByte===0?Xg(t,e):e}var Xg=(i,t)=>function(){let e=fe[G++];if(e===0)return t();let r=i<32?-(i+(e<<5)):i+(e<<5),o=Qe[r]||e0()[r];if(!o)throw new Error("Record id is not defined for "+r);return o.read||(o.read=Fp(o,i)),o.read()};function e0(){let i=i0(()=>(fe=null,Sr.getStructures()));return Qe=Sr._mergeStructures(i,Qe)}var zp=iu,rA=iu,oA=iu,iA=iu;function iu(i){let t;if(i<16&&(t=jp(i)))return t;if(i>64&&Lp)return Lp.decode(fe.subarray(G,G+=i));let e=G+i,r=[];for(t="";G<e;){let o=fe[G++];if((o&128)===0)r.push(o);else if((o&224)===192){let n=fe[G++]&63;r.push((o&31)<<6|n)}else if((o&240)===224){let n=fe[G++]&63,a=fe[G++]&63;r.push((o&31)<<12|n<<6|a)}else if((o&248)===240){let n=fe[G++]&63,a=fe[G++]&63,s=fe[G++]&63,l=(o&7)<<18|n<<12|a<<6|s;l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|l&1023),r.push(l)}else r.push(o);r.length>=4096&&(t+=Kt.apply(String,r),r.length=0)}return r.length>0&&(t+=Kt.apply(String,r)),t}function Yg(i){let t=new Array(i);for(let e=0;e<i;e++)t[e]=Mt();return t}function Kg(i){if(Sr.mapsAsObjects){let t={};for(let e=0;e<i;e++)t[r0()]=Mt();return t}else{let t=new Map;for(let e=0;e<i;e++)t.set(Mt(),Mt());return t}}var Kt=String.fromCharCode;function t0(i){let t=G,e=new Array(i);for(let r=0;r<i;r++){let o=fe[G++];if((o&128)>0){G=t;return}e[r]=o}return Kt.apply(String,e)}function jp(i){if(i<4)if(i<2){if(i===0)return"";{let t=fe[G++];if((t&128)>1){G-=1;return}return Kt(t)}}else{let t=fe[G++],e=fe[G++];if((t&128)>0||(e&128)>0){G-=2;return}if(i<3)return Kt(t,e);let r=fe[G++];if((r&128)>0){G-=3;return}return Kt(t,e,r)}else{let t=fe[G++],e=fe[G++],r=fe[G++],o=fe[G++];if((t&128)>0||(e&128)>0||(r&128)>0||(o&128)>0){G-=4;return}if(i<6){if(i===4)return Kt(t,e,r,o);{let n=fe[G++];if((n&128)>0){G-=5;return}return Kt(t,e,r,o,n)}}else if(i<8){let n=fe[G++],a=fe[G++];if((n&128)>0||(a&128)>0){G-=6;return}if(i<7)return Kt(t,e,r,o,n,a);let s=fe[G++];if((s&128)>0){G-=7;return}return Kt(t,e,r,o,n,a,s)}else{let n=fe[G++],a=fe[G++],s=fe[G++],l=fe[G++];if((n&128)>0||(a&128)>0||(s&128)>0||(l&128)>0){G-=8;return}if(i<10){if(i===8)return Kt(t,e,r,o,n,a,s,l);{let c=fe[G++];if((c&128)>0){G-=9;return}return Kt(t,e,r,o,n,a,s,l,c)}}else if(i<12){let c=fe[G++],u=fe[G++];if((c&128)>0||(u&128)>0){G-=10;return}if(i<11)return Kt(t,e,r,o,n,a,s,l,c,u);let d=fe[G++];if((d&128)>0){G-=11;return}return Kt(t,e,r,o,n,a,s,l,c,u,d)}else{let c=fe[G++],u=fe[G++],d=fe[G++],p=fe[G++];if((c&128)>0||(u&128)>0||(d&128)>0||(p&128)>0){G-=12;return}if(i<14){if(i===12)return Kt(t,e,r,o,n,a,s,l,c,u,d,p);{let f=fe[G++];if((f&128)>0){G-=13;return}return Kt(t,e,r,o,n,a,s,l,c,u,d,p,f)}}else{let f=fe[G++],h=fe[G++];if((f&128)>0||(h&128)>0){G-=14;return}if(i<15)return Kt(t,e,r,o,n,a,s,l,c,u,d,p,f,h);let m=fe[G++];if((m&128)>0){G-=15;return}return Kt(t,e,r,o,n,a,s,l,c,u,d,p,f,h,m)}}}}}function Rp(i){return Sr.copyBuffers?Uint8Array.prototype.slice.call(fe,G,G+=i):fe.subarray(G,G+=i)}function wn(i){let t=fe[G++];if(hr[t])return hr[t](fe.subarray(G,G+=i));throw new Error("Unknown extension type "+t)}var Qg=new Array(4096);function r0(){let i=fe[G++];if(i>=160&&i<192){if(i=i-160,To>=G)return Ii.slice(G-jr,(G+=i)-jr);if(!(To==0&&Ei<180))return zp(i)}else return G--,Mt();let t=(i<<5^(i>1?rt.getUint16(G):i>0?fe[G]:0))&4095,e=Qg[t],r=G,o=G+i-3,n,a=0;if(e&&e.bytes==i){for(;r<o;){if(n=rt.getUint32(r),n!=e[a++]){r=1879048192;break}r+=4}for(o+=3;r<o;)if(n=fe[r++],n!=e[a++]){r=1879048192;break}if(r===o)return G=r,e.string;o-=3,r=G}for(e=[],Qg[t]=e,e.bytes=i;r<o;)n=rt.getUint32(r),e.push(n),r+=4;for(o+=3;r<o;)n=fe[r++],e.push(n);let s=i<16?jp(i):t0(i);return s!=null?e.string=s:e.string=zp(i)}var Zg=(i,t)=>{var e=Mt();let r=i;t!==void 0&&(i=i<32?-((t<<5)+i):(t<<5)+i,e.highByte=t);let o=Qe[i];return o&&o.isShared&&((Qe.restoreStructures||(Qe.restoreStructures=[]))[i]=o),Qe[i]=e,e.read=Fp(e,r),e.read()},o0=typeof self=="object"?self:global;hr[0]=()=>{};hr[0].noBuffer=!0;hr[101]=()=>{let i=Mt();return(o0[i[0]]||Error)(i[1])};hr[105]=i=>{let t=rt.getUint32(G-4);ei||(ei=new Map);let e=fe[G],r;e>=144&&e<160||e==220||e==221?r=[]:r={};let o={target:r};ei.set(t,o);let n=Mt();return o.used?Object.assign(r,n):(o.target=n,n)};hr[112]=i=>{let t=rt.getUint32(G-4),e=ei.get(t);return e.used=!0,e.target};hr[115]=()=>new Set(Mt());var Up=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(i=>i+"Array");hr[116]=i=>{let t=i[0],e=Up[t];if(!e)throw new Error("Could not find typed array for code "+t);return new o0[e](Uint8Array.prototype.slice.call(i,1).buffer)};hr[120]=()=>{let i=Mt();return new RegExp(i[0],i[1])};hr[98]=i=>{let t=(i[0]<<24)+(i[1]<<16)+(i[2]<<8)+i[3],e=G;G+=t-4,_r=[Mt(),Mt()],_r.position0=0,_r.position1=0;let r=G;G=e;try{return Mt()}finally{G=r}};hr[255]=i=>i.length==4?new Date((i[0]*16777216+(i[1]<<16)+(i[2]<<8)+i[3])*1e3):i.length==8?new Date(((i[0]<<22)+(i[1]<<14)+(i[2]<<6)+(i[3]>>2))/1e6+((i[3]&3)*4294967296+i[4]*16777216+(i[5]<<16)+(i[6]<<8)+i[7])*1e3):i.length==12?new Date(((i[0]<<24)+(i[1]<<16)+(i[2]<<8)+i[3])/1e6+((i[4]&128?-281474976710656:0)+i[6]*1099511627776+i[7]*4294967296+i[8]*16777216+(i[9]<<16)+(i[10]<<8)+i[11])*1e3):new Date("invalid");function i0(i){let t=Ei,e=G,r=Vp,o=jr,n=To,a=Ii,s=Bp,l=ei,c=_r,u=new Uint8Array(fe.slice(0,Ei)),d=Qe,p=Qe.slice(0,Qe.length),f=Sr,h=Ta,m=i();return Ei=t,G=e,Vp=r,jr=o,To=n,Ii=a,Bp=s,ei=l,_r=c,fe=u,Ta=h,Qe=d,Qe.splice(0,Qe.length,...p),Sr=f,rt=new DataView(fe.buffer,fe.byteOffset,fe.byteLength),m}function ou(){fe=null,ei=null,Qe=null}function n0(i){i.unpack?hr[i.type]=i.unpack:hr[i.type]=i}var nu=new Array(147);for(let i=0;i<256;i++)nu[i]=+("1e"+Math.floor(45.15-i*.30103));var au=new Co({useRecords:!1}),nA=au.unpack,aA=au.unpackMultiple,sA=au.unpack,su={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},lA=new Float32Array(1),pF=new Uint8Array(lA.buffer,0,4);var lu;try{lu=new TextEncoder}catch{}var cu,Hp,uu=typeof Buffer<"u",kp=uu?Buffer.allocUnsafeSlow:Uint8Array,c0=uu?Buffer:Uint8Array,a0=uu?4294967296:2144337920,X,Nt,k=0,Ao,Mo=null,cA=/[\u0080-\uFFFF]/,fl=Symbol("record-id"),Pn=class extends Co{constructor(t){super(t),this.offset=0;let e,r,o,n,a,s,l=0,c=c0.prototype.utf8Write?function(g,D,E){return X.utf8Write(g,D,E)}:lu&&lu.encodeInto?function(g,D){return lu.encodeInto(g,X.subarray(D)).written}:!1,u=this;t||(t={});let d=t&&t.sequential,p=t.structures||t.saveStructures,f=t.maxSharedStructures;if(f==null&&(f=p?32:0),f>8160)throw new Error("Maximum maxSharedStructure is 8160");let h=t.maxOwnStructures;h==null&&(h=p?32:64),d&&!t.saveStructures&&(this.structures=[]);let m=f>32||h+f>64,y=f+64,x=f+h+64;if(x>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let v=[],w=0,O=0;this.pack=this.encode=function(g,D){if(X||(X=new kp(8192),Nt=new DataView(X.buffer,0,8192),k=0),Ao=X.length-10,Ao-k<2048?(X=new kp(X.length),Nt=new DataView(X.buffer,0,X.length),Ao=X.length-10,k=0):k=k+7&2147483640,r=k,s=u.structuredClone?new Map:null,u.bundleStrings?(Mo=["",""],X[k++]=214,X[k++]=98,Mo.position=k-r,k+=4):Mo=null,o=u.structures,o){o.uninitialized&&(o=u._mergeStructures(u.getStructures()));let E=o.sharedLength||0;if(E>f)throw new Error("Shared structures is larger than maximum shared structures, try increasing maxSharedStructures to "+o.sharedLength);if(!o.transitions){o.transitions=Object.create(null);for(let I=0;I<E;I++){let N=o[I];if(!N)continue;let _,R=o.transitions;for(let V=0,U=N.length;V<U;V++){let B=N[V];_=R[B],_||(_=R[B]=Object.create(null)),R=_}R[fl]=I+64}l=E}d||(o.nextId=E+64)}n&&(n=!1),a=o||[];try{if(S(g),Mo){Nt.setUint32(Mo.position+r,k-Mo.position-r);let E=Mo;Mo=null,S(E[0]),S(E[1])}if(u.offset=k,s&&s.idsToInsert){k+=s.idsToInsert.length*6,k>Ao&&M(k),u.offset=k;let E=dA(X.subarray(r,k),s.idsToInsert);return s=null,E}return D&d0?(X.start=r,X.end=k,X):X.subarray(r,k)}finally{if(o){if(O<10&&O++,w>1e4)o.transitions=null,O=0,w=0,v.length>0&&(v=[]);else if(v.length>0&&!d){for(let E=0,I=v.length;E<I;E++)v[E][fl]=0;v=[]}if(n&&u.saveStructures){let E=o.sharedLength||f;o.length>E&&(o=o.slice(0,E));let I=X.subarray(r,k);return u.saveStructures(o,l)===!1?(u._mergeStructures(u.getStructures()),u.pack(g)):(l=E,I)}}D&xA&&(k=r)}};let S=g=>{k>Ao&&(X=M(k));var D=typeof g,E;if(D==="string"){let I=g.length;if(Mo&&I>=8&&I<4096){let R=cA.test(g);Mo[R?0:1]+=g,X[k++]=193,S(R?-I:I);return}let N;I<32?N=1:I<256?N=2:I<65536?N=3:N=5;let _=I*3;if(k+_>Ao&&(X=M(k+_)),I<64||!c){let R,V,U,B=k+N;for(R=0;R<I;R++)V=g.charCodeAt(R),V<128?X[B++]=V:V<2048?(X[B++]=V>>6|192,X[B++]=V&63|128):(V&64512)===55296&&((U=g.charCodeAt(R+1))&64512)===56320?(V=65536+((V&1023)<<10)+(U&1023),R++,X[B++]=V>>18|240,X[B++]=V>>12&63|128,X[B++]=V>>6&63|128,X[B++]=V&63|128):(X[B++]=V>>12|224,X[B++]=V>>6&63|128,X[B++]=V&63|128);E=B-k-N}else E=c(g,k+N,_);E<32?X[k++]=160|E:E<256?(N<2&&X.copyWithin(k+2,k+1,k+1+E),X[k++]=217,X[k++]=E):E<65536?(N<3&&X.copyWithin(k+3,k+2,k+2+E),X[k++]=218,X[k++]=E>>8,X[k++]=E&255):(N<5&&X.copyWithin(k+5,k+3,k+3+E),X[k++]=219,Nt.setUint32(k,E),k+=4),k+=E}else if(D==="number")if(g>>>0===g)g<64?X[k++]=g:g<256?(X[k++]=204,X[k++]=g):g<65536?(X[k++]=205,X[k++]=g>>8,X[k++]=g&255):(X[k++]=206,Nt.setUint32(k,g),k+=4);else if(g>>0===g)g>=-32?X[k++]=256+g:g>=-128?(X[k++]=208,X[k++]=g+256):g>=-32768?(X[k++]=209,Nt.setInt16(k,g),k+=2):(X[k++]=210,Nt.setInt32(k,g),k+=4);else{let I;if((I=this.useFloat32)>0&&g<4294967296&&g>=-2147483648){X[k++]=202,Nt.setFloat32(k,g);let N;if(I<4||(N=g*nu[(X[k]&127)<<1|X[k+1]>>7])>>0===N){k+=4;return}else k--}X[k++]=203,Nt.setFloat64(k,g),k+=8}else if(D==="object")if(!g)X[k++]=192;else{if(s){let N=s.get(g);if(N){if(!N.id){let _=s.idsToInsert||(s.idsToInsert=[]);N.id=_.push(N)}X[k++]=214,X[k++]=112,Nt.setUint32(k,N.id),k+=4;return}else s.set(g,{offset:k-r})}let I=g.constructor;if(I===Object)T(g,!0);else if(I===Array){E=g.length,E<16?X[k++]=144|E:E<65536?(X[k++]=220,X[k++]=E>>8,X[k++]=E&255):(X[k++]=221,Nt.setUint32(k,E),k+=4);for(let N=0;N<E;N++)S(g[N])}else if(I===Map){E=g.size,E<16?X[k++]=128|E:E<65536?(X[k++]=222,X[k++]=E>>8,X[k++]=E&255):(X[k++]=223,Nt.setUint32(k,E),k+=4);for(let[N,_]of g)S(N),S(_)}else{for(let N=0,_=cu.length;N<_;N++){let R=Hp[N];if(g instanceof R){let V=cu[N];if(V.write){V.type&&(X[k++]=212,X[k++]=V.type,X[k++]=0),S(V.write.call(this,g));return}let U=X,B=Nt,q=k;X=null;let j;try{j=V.pack.call(this,g,F=>(X=U,U=null,k+=F,k>Ao&&M(k),{target:X,targetView:Nt,position:k-F}),S)}finally{U&&(X=U,Nt=B,k=q,Ao=X.length-10)}j&&(j.length+k>Ao&&M(j.length+k),k=uA(j,X,k,V.type));return}}T(g,!g.hasOwnProperty)}}else if(D==="boolean")X[k++]=g?195:194;else if(D==="bigint"){if(g<BigInt(1)<<BigInt(63)&&g>=-(BigInt(1)<<BigInt(63)))X[k++]=211,Nt.setBigInt64(k,g);else if(g<BigInt(1)<<BigInt(64)&&g>0)X[k++]=207,Nt.setBigUint64(k,g);else if(this.largeBigIntToFloat)X[k++]=203,Nt.setFloat64(k,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");k+=8}else if(D==="undefined")this.encodeUndefinedAsNil?X[k++]=192:(X[k++]=212,X[k++]=0,X[k++]=0);else if(D==="function")S(this.writeFunction&&this.writeFunction());else throw new Error("Unknown type: "+D)},T=this.useRecords===!1?this.variableMapSize?g=>{let D=Object.keys(g),E=D.length;E<16?X[k++]=128|E:E<65536?(X[k++]=222,X[k++]=E>>8,X[k++]=E&255):(X[k++]=223,Nt.setUint32(k,E),k+=4);let I;for(let N=0;N<E;N++)S(I=D[N]),S(g[I])}:(g,D)=>{X[k++]=222;let E=k-r;k+=2;let I=0;for(let N in g)(D||g.hasOwnProperty(N))&&(S(N),S(g[N]),I++);X[E+++r]=I>>8,X[E+r]=I&255}:g=>{let D=Object.keys(g),E,I=a.transitions||(a.transitions=Object.create(null)),N=0;for(let R=0,V=D.length;R<V;R++){let U=D[R];E=I[U],E||(E=I[U]=Object.create(null),N++),I=E}let _=I[fl];if(_)_>=96&&m?(X[k++]=((_-=96)&31)+96,X[k++]=_>>5):X[k++]=_;else{_=a.nextId,_||(_=64),_<y&&this.shouldShareStructure&&!this.shouldShareStructure(D)?(_=a.nextOwnId,_<x||(_=y),a.nextOwnId=_+1):(_>=x&&(_=y),a.nextId=_+1);let R=D.highByte=_>=96&&m?_-96>>5:-1;I[fl]=_,a[_-64]=D,_<y?(D.isShared=!0,a.sharedLength=_-63,n=!0,R>=0?(X[k++]=(_&31)+96,X[k++]=R):X[k++]=_):(R>=0?(X[k++]=213,X[k++]=114,X[k++]=(_&31)+96,X[k++]=R):(X[k++]=212,X[k++]=114,X[k++]=_),N&&(w+=O*N),v.length>=h&&(v.shift()[fl]=0),v.push(I),S(D))}for(let R=0,V=D.length;R<V;R++)S(g[D[R]])},M=g=>{let D;if(g>16777216){if(g-r>a0)throw new Error("Packed buffer would be larger than maximum buffer size");D=Math.min(a0,Math.round(Math.max((g-r)*(g>67108864?1.25:2),4194304)/4096)*4096)}else D=(Math.max(g-r<<2,X.length-1)>>12)+1<<12;let E=new kp(D);return Nt=new DataView(E.buffer,0,D),X.copy?X.copy(E,0,r,g):E.set(X.slice(r,g)),k-=r,r=0,Ao=E.length-10,X=E}}useBuffer(t){X=t,Nt=new DataView(X.buffer,X.byteOffset,X.byteLength),k=0}};Hp=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,pl];cu=[{pack(i,t,e){let r=i.getTime()/1e3;if((this.useTimestamp32||i.getMilliseconds()===0)&&r>=0&&r<4294967296){let{target:o,targetView:n,position:a}=t(6);o[a++]=214,o[a++]=255,n.setUint32(a,r)}else if(r>0&&r<17179869184){let{target:o,targetView:n,position:a}=t(10);o[a++]=215,o[a++]=255,n.setUint32(a,i.getMilliseconds()*4e6+(r/1e3/4294967296>>0)),n.setUint32(a+4,r)}else if(isNaN(r)){if(this.onInvalidDate)return t(0),e(this.onInvalidDate());let{target:o,targetView:n,position:a}=t(3);o[a++]=212,o[a++]=255,o[a++]=255}else{let{target:o,targetView:n,position:a}=t(15);o[a++]=199,o[a++]=12,o[a++]=255,n.setUint32(a,i.getMilliseconds()*1e6),n.setBigInt64(a+4,BigInt(Math.floor(r)))}}},{pack(i,t,e){let r=Array.from(i),{target:o,position:n}=t(this.structuredClone?3:0);this.structuredClone&&(o[n++]=212,o[n++]=115,o[n++]=0),e(r)}},{pack(i,t,e){let{target:r,position:o}=t(this.structuredClone?3:0);this.structuredClone&&(r[o++]=212,r[o++]=101,r[o++]=0),e([i.name,i.message])}},{pack(i,t,e){let{target:r,position:o}=t(this.structuredClone?3:0);this.structuredClone&&(r[o++]=212,r[o++]=120,r[o++]=0),e([i.source,i.flags])}},{pack(i,t){this.structuredClone?s0(i,16,t):l0(uu?Buffer.from(i):new Uint8Array(i),t)}},{pack(i,t){let e=i.constructor;e!==c0&&this.structuredClone?s0(i,Up.indexOf(e.name),t):l0(i,t)}},{pack(i,t){let{target:e,position:r}=t(1);e[r]=193}}];function s0(i,t,e,r){let o=i.byteLength;if(o+1<256){var{target:n,position:a}=e(4+o);n[a++]=199,n[a++]=o+1}else if(o+1<65536){var{target:n,position:a}=e(5+o);n[a++]=200,n[a++]=o+1>>8,n[a++]=o+1&255}else{var{target:n,position:a,targetView:s}=e(7+o);n[a++]=201,s.setUint32(a,o+1),a+=4}n[a++]=116,n[a++]=t,n.set(new Uint8Array(i.buffer,i.byteOffset,i.byteLength),a)}function l0(i,t){let e=i.byteLength;var r,o;if(e<256){var{target:r,position:o}=t(e+2);r[o++]=196,r[o++]=e}else if(e<65536){var{target:r,position:o}=t(e+3);r[o++]=197,r[o++]=e>>8,r[o++]=e&255}else{var{target:r,position:o,targetView:n}=t(e+5);r[o++]=198,n.setUint32(o,e),o+=4}r.set(i,o)}function uA(i,t,e,r){let o=i.length;switch(o){case 1:t[e++]=212;break;case 2:t[e++]=213;break;case 4:t[e++]=214;break;case 8:t[e++]=215;break;case 16:t[e++]=216;break;default:o<256?(t[e++]=199,t[e++]=o):o<65536?(t[e++]=200,t[e++]=o>>8,t[e++]=o&255):(t[e++]=201,t[e++]=o>>24,t[e++]=o>>16&255,t[e++]=o>>8&255,t[e++]=o&255)}return t[e++]=r,t.set(i,e),e+=o,e}function dA(i,t){let e,r=t.length*6,o=i.length-r;for(t.sort((n,a)=>n.offset>a.offset?1:-1);e=t.pop();){let n=e.offset,a=e.id;i.copyWithin(n+r,n,o),r-=6;let s=n+r;i[s++]=214,i[s++]=105,i[s++]=a>>24,i[s++]=a>>16&255,i[s++]=a>>8&255,i[s++]=a&255,o=n}return i}function Ni(i){if(i.Class){if(!i.pack&&!i.write)throw new Error("Extension has no pack or write function");if(i.pack&&!i.type)throw new Error("Extension has no type (numeric code to identify the extension)");Hp.unshift(i.Class),cu.unshift(i)}n0(i)}var u0=new Pn({useRecords:!1}),pA=u0.pack,fA=u0.pack;var{NEVER:hA,ALWAYS:mA,DECIMAL_ROUND:yA,DECIMAL_FIT:gA}=su,d0=512,xA=1024;var p0=new Pn({structuredClone:!0});Ni({Class:de.prototype.constructor,type:1,write(i){return{...i}},read(i){return Object.setPrototypeOf(i,de.prototype),i}});Ni({Class:Se.prototype.constructor,type:2,write(i){return[...i]},read(i){return Object.setPrototypeOf(i,Se.prototype),i}});Ni({Class:ct.prototype.constructor,type:3,write(i){return[...i]},read(i){return Object.setPrototypeOf(i,ct.prototype),i}});Ni({Class:ul.prototype.constructor,type:4,write(i){return i.id},read(i){return new ul(i)}});Ni({Class:dl.prototype.constructor,type:5,write(i){return i.data},read(i){return new dl(i)}});Ni({Class:Je.prototype.constructor,type:6,write(i){return{...i}},read(i){return Object.setPrototypeOf(i,Je.prototype),i}});function bA(i){var t=0;if(i.length===0)return t;for(let e=0;e<i.length;e++){let r=i[e];t=(t<<5)-t+r,t=t&t}return t}function Wp(i){if(ba(i))return i;if(Array.isArray(i))return i.map(Wp);if(typeof i=="object"&&i!==null){let t={};for(let e of Object.keys(i).sort())t[e]=Wp(i[e]);return Object.setPrototypeOf(t,Object.getPrototypeOf(i)),t}else return i}var du;(r=>{function i(o){return p0.pack(o)}r.serialize=i;function t(o){return p0.unpack(o)}r.deserialize=t;function e(o){return bA(i(Wp(o))).toString()}r.checksum=e})(du||(du={}));var Ri="personal camera",Li="a218fcc3-276b-49b9-b485-49037fd14f5f",x0=2960946,Dt=5526619;var Ca;(f=>{function i(h,m){return h[0]===m[0]&&h[1]===m[1]}f.isEqual=i;function t(h,m,y){return[h[0]+(m[0]-h[0])*y,h[1]+(m[1]-h[1])*y]}f.lerp=t;function e(h,m){return[h[0]+m[0],h[1]+m[1]]}f.add=e;function r(h,m){return[h[0]-m[0],h[1]-m[1]]}f.sub=r;function o(h,m){return[h[0]*m[0],h[1]*m[1]]}f.multiply=o;function n(h,m){return[h[0]/m[0],h[1]/m[1]]}f.divide=n;function a(h,m){return Math.pow(m[0]-h[0],2)+Math.pow(m[1]-h[1],2)}f.distanceSquared=a;function s(h,m){return Math.sqrt(a(h,m))}f.distance=s;function l(h,m){return h[0]*m[0]+h[1]*m[1]}f.dot=l;function c(h,m){return[h[0]*m,h[1]*m]}f.scalarMultiply=c;function u(h,m,y){let x=f.sub(m,h),v=f.sub(y,h),w=f.dot(x,v)/f.dot(x,x),O=f.scalarMultiply(x,w);return f.add(h,O)}f.projectionOnto=u;function d(h,m,y){return s(h,u(h,m,y))}f.projectionOntoDistance=d;function p(h,m){return[(h[0]+m[0])*.5,(h[1]+m[1])*.5]}f.center=p})(Ca||(Ca={}));var Di;(s=>{function i(l,c){return l[0]===c[0]&&l[1]===c[1]&&l[2]===c[2]}s.isEqual=i;function t(l,c){return[l[0]+c[0],l[1]+c[1],l[2]+c[2]]}s.add=t;function e(l,c){return[l[0]-c[0],l[1]-c[1],l[2]-c[2]]}s.sub=e;function r(l,c){return[l[0]/c[0],l[1]/c[1],l[2]/c[2]]}s.div=r;function o(l,c){return[l[0]*c[0],l[1]*c[1],l[2]*c[2]]}s.mul=o;function n(l,c){return Math.hypot(l[0]-c[0],l[1]-c[1],l[2]-c[2])}s.dist=n;function a(l,c,u){return[l[0]+(c[0]-l[0])*u,l[1]+(c[1]-l[1])*u,l[2]+(c[2]-l[2])*u]}s.lerp=a})(Di||(Di={}));var f0;(e=>{function i(r,o){return r[0]===o[0]&&r[1]===o[1]&&r[2]===o[2]&&r[3]===o[3]}e.isEqual=i;function t(r,o,n){return[r[0]+(o[0]-r[0])*n,r[1]+(o[1]-r[1])*n,r[2]+(o[2]-r[2])*n,r[3]+(o[3]-r[3])*n]}e.lerp=t})(f0||(f0={}));var h0;(a=>{let i=180/Math.PI,t=Math.PI/180;function e(s){return typeof s=="number"?s*i:s}function r(s){return typeof s=="number"?s*t:s}function o(s){return[e(s[0]),e(s[1]),e(s[2])]}a.radToDeg=o;function n(s){return[r(s[0]),r(s[1]),r(s[2])]}a.degToRad=n})(h0||(h0={}));var _i;(o=>{o.identity=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function t(n,a){for(let s=0;s<16;s++)if(n[s]!==a[s])return!1;return!0}o.isEqual=t;function e(n){return n??o.identity}o.simplify=e;function r(n,a){let s=a.slice(0);for(var l=0,c=a.length;l<c;l+=3){let u=n[3]*a[l]+n[7]*a[l+1]+n[11]*a[l+2]+n[15];s[l]=(n[0]*a[l]+n[4]*a[l+1]+n[8]*a[l+2]+n[12])/u,s[l+1]=(n[1]*a[l]+n[5]*a[l+1]+n[9]*a[l+2]+n[13])/u,s[l+2]=(n[2]*a[l]+n[6]*a[l+1]+n[10]*a[l+2]+n[14])/u}return s}o.applyMatrix4=r})(_i||(_i={}));var jt;(p=>{function i(f){return typeof f=="object"&&typeof f.r=="number"&&typeof f.g=="number"&&typeof f.b=="number"}p.isRGB=i,p.white={r:1,g:1,b:1},p.red={r:1,g:0,b:0},p.black={r:0,g:0,b:0};function o(f){return{r:Math.round(f.r*255),g:Math.round(f.g*255),b:Math.round(f.b*255),a:1}}p.toRgb255a1=o;function n(f){return{r:f.r,g:f.g,b:f.b}}p.clone=n;function a(f){return f=Math.floor(f),{r:(f>>16&255)/255,g:(f>>8&255)/255,b:(f&255)/255}}p.fromHex=a;function s(f){return Math.round(f.r*255)*65536+Math.round(f.g*255)*256+Math.round(f.b*255)}p.toHex=s;function l(f,h){return f.r===h.r&&f.g===h.g&&f.b===h.b}p.equals=l;function c(f,h){return f.r.toFixed(2)===h.r.toFixed(2)&&f.g.toFixed(2)===h.g.toFixed(2)&&f.b.toFixed(2)===h.b.toFixed(2)}p.equalsFixed=c;function u(f,h,m){return{r:f.r+(h.r-f.r)*m,g:f.g+(h.g-f.g)*m,b:f.b+(h.b-f.b)*m}}p.lerp=u;function d(f){return At(f)?"r"in f&&"g"in f&&"b"in f&&!("a"in f):!1}p.is=d})(jt||(jt={}));var Re;(u=>{u.white={...jt.white,a:1};function t(d){return At(d)?"r"in d&&"g"in d&&"b"in d&&"a"in d:!1}u.is=t,u.transparent={...jt.white,a:0};function r(d){return{r:d[0],g:d[1],b:d[2],a:d[3]}}u.from0to1=r;function o(d,p){return{...jt.fromHex(d),a:p}}u.fromHexAndA=o;function n(d){return{r:Math.round(d.r*255),g:Math.round(d.g*255),b:Math.round(d.b*255),a:d.a}}u.toRgb255a1=n;function a(d,p){return jt.equals(d,p)&&d.a===p.a}u.equals=a;function s(d,p){return jt.equalsFixed(d,p)&&d.a.toFixed(2)===p.a.toFixed(2)}u.equalsFixed=s;function l(d,p,f){return{r:d.r+(p.r-d.r)*f,g:d.g+(p.g-d.g)*f,b:d.b+(p.b-d.b)*f,a:d.a+(p.a-d.a)*f}}u.lerp=l;function c({r:d,g:p,b:f,a:h}=u.white){return`rgba(${d*255}, ${p*255}, ${f*255}, ${h})`}u.toStyle=c})(Re||(Re={}));var pu;(t=>t.identity={position:[0,0,0],rotation:[0,0,0],scale:[1,1,1]})(pu||(pu={}));var m0;(t=>t.defaultData={mass:1,stiffness:80,damping:10,velocity:0})(m0||(m0={}));var y0;(t=>t.defaultData={control1:[.5,0],control2:[.5,1]})(y0||(y0={}));var g0;(n=>(n.linear=[0,0,1,1],n.ease=[.25,.1,.25,1],n.easeIn=[.42,0,1,1],n.easeOut=[0,0,.58,1],n.easeInOut=[.42,0,.58,1]))(g0||(g0={}));function qp(i){return typeof i=="string"&&i.length===36?/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(i):!1}var io;(e=>{e.all=["PerspectiveCamera","OrthographicCamera"];function t(r){return e.all.includes(r)}e.is=t})(io||(io={}));var Bi;(o=>{o.DefaultUp=[0,1,0],o.DefaultTargetOffset=1e3,o.defaultData={far:1e5,type:"OrthographicCamera",perspective:{near:70,fov:45,zoom:1},orthographic:{near:-1e5,zoom:1},up:o.DefaultUp,isUpVectorFlipped:!1,targetOffset:o.DefaultTargetOffset};function r(n){return n.type==="PerspectiveCamera"?n.perspective?.zoom??1:n.orthographic?.zoom??1}o.getZoom=r})(Bi||(Bi={}));var Io;(r=>{function i(o,n=.1){return{disabled:!1,type:"linear",hideBase:!1,count:3,radial:{radius:Math.max(o[0],o[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:[o[0]+o[0]*n,0,0]},grid:{count:[2,2,2],size:o.map(a=>a*(1+n)),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"}}}r.defaultData=i;function t(o,n){let a={...o};if(vA.forEach(s=>{Object.assign(a,{[s]:n[s]??o[s]})}),a.radial={...o.radial},n.radial){let s=o.radial,l=n.radial;SA.forEach(c=>{Object.assign(a.radial,{[c]:l[c]??s[c]})})}if(a.linear={...o.linear},n.linear){let s=o.linear,l=n.linear;wA.forEach(c=>{Object.assign(a.linear,{[c]:l[c]??s[c]})})}if(a.grid={...o.grid},n.grid){let s=o.grid,l=n.grid;PA.forEach(c=>{Object.assign(a.grid,{[c]:l[c]??s[c]})})}if(a.toObject={...o.toObject},n.toObject){let s=o.toObject,l=n.toObject;OA.forEach(c=>{Object.assign(a.toObject,{[c]:l[c]??s[c]})})}if(a.randomnessObject={...o.randomnessObject},n.randomnessObject){let s=o.randomnessObject,l=n.randomnessObject;TA.forEach(c=>{Object.assign(a.randomnessObject,{[c]:l[c]??s[c]})})}return a}r.merge=t;function e(o){return!!(o.randomnessObject||o.toObject)}r.isPartial=e})(Io||(Io={}));var fu;(r=>{r.defaultData={radial:{},linear:{},grid:{},toObject:{},randomnessObject:{}};let t=["radial","linear","grid","toObject","randomnessObject"];function e(o,n){let a=[];o.count!==void 0&&a.push({type:0,path:n,props:{count:o.count}});for(let s of t){let l=o[s];l&&Object.keys(l).length>0&&a.push({type:0,path:[...n,s],props:l})}return a}r.toOps=e})(fu||(fu={}));var vA=["count"],SA=["radius","start","end","position","scale","rotation"],wA=["position","scale","rotation"],PA=["count","size"],OA=["count","position","scale","rotation"],TA=["strength","scale","rotation","position","movement","seed","freqScale"];var hu;(e=>{e.all=["PointLight","SpotLight","DirectionalLight","HemisphereLight"];function t(r){return e.all.includes(r)}e.is=t})(hu||(hu={}));var mu;(e=>{function i(r){return t(r)}e.defaultData=i;function t(r){if(r==="PointLight")return{type:r,color:Re.white,intensity:1,distance:2e3,decay:1,shadows:!0,shadowResolution:1024,shadowRadius:1,penumbraSize:.5,depth:1e5};if(r==="SpotLight")return{type:r,color:Re.white,intensity:1,distance:2e3,decay:1,shadows:!0,penumbra:0,angle:30/180*Math.PI,depth:1e5,penumbraSize:.5,shadowResolution:1024,shadowRadius:1};if(r==="DirectionalLight")return{type:r,color:Re.white,intensity:1,shadows:!0,size:2e3,depth:1e5,penumbraSize:.5,shadowResolution:1024,shadowRadius:1};throw new Error("not implemented")}})(mu||(mu={}));var Aa;(r=>(r.defaultShapeData={type:"PlaneEmitterShape",size:[100,100,100]},r.defaultCollisionData={colliderEntityId:null,collisionBounce:.75},r.defaultData={renderMaterial:{type:"particleMaterial",color:{r:1,g:.2,b:.545,a:1},color2:{r:.945,g:.714,b:.184,a:1},coloring:"gradient",ease:"linearFadeOut",easeSize:"linearFadeOut",transparent:!0,size:[40,40],texture:"pt_default_particle",spriteRotation:[0,0]},birthRatePerSec:50,gravity:1,noiseStrength:0,noiseScale:0,noiseSeed:1,noiseType:"curl",randomRotation:0,randomScale:.2,randomMass:.5,rootObjectType:"instancedMesh",life:1,direction:[0,0,0],directionMode:"axis",speed:10,shape:r.defaultShapeData,autoPlay:!0,emitTimeDelay:0,emitTimeCycle:"infinity",emitTimeDuration:1,...r.defaultCollisionData}))(Aa||(Aa={}));var Vi;(t=>t.defaultData={enabled:"visibility",fusedBody:!0,rigidBody:"positioned",density:1,pointMass:0,gravityScale:1,friction:.5,damping:0,restitution:.2,colliderType:"convex",enabledRotation:[!0,!0,!0],enabledTranslation:[!0,!0,!0]})(Vi||(Vi={}));var $p;(e=>{e.defaultData={castShadow:!0,receiveShadow:!0};function t(r,o){return r.castShadow===o.castShadow&&r.receiveShadow===o.receiveShadow}e.equals=t})($p||($p={}));var Xp;(e=>{e.defaultData={flatShading:!1,wireframe:!1,side:0};function t(r,o){return r.flatShading===o.flatShading&&r.side===o.side&&r.wireframe===o.wireframe}e.equals=t})(Xp||(Xp={}));var yu;(t=>t.defaultData={...Xp.defaultData,...$p.defaultData})(yu||(yu={}));var b0;(t=>{function i(e,r){let o=[];if("material"in e){let n=typeof e.material=="string"?r.materials[e.material]??r.lib.materials[e.material]?.asset:e.material;n&&o.push(n)}else if("materials"in e)for(let n of e.materials){let a=typeof n=="string"?r.materials[n]??r.lib.materials[n]?.asset:n;a&&o.push(a)}return o}t.getMaterialData=i})(b0||(b0={}));var Ma;(e=>(e.defaultVideo={data:"",thumb:"/_assets/_videos/catThumb.png",type:"video",name:"Cat video"},e.maxSize=3e7))(Ma||(Ma={}));var v0;(t=>{function i(e){return e==="texture"||e==="video"||e==="color"||e==="depth"||e==="normal"||e==="gradient"||e==="noise"||e==="fresnel"||e==="rainbow"||e==="toon"||e==="outline"||e==="particle"||e==="transmission"||e==="matcap"||e==="displace"||e==="pattern"||e==="light"}t.is=i})(v0||(v0={}));function w0(i){return i.type!=="displace"}var S0;(t=>{function i(e){return e==="phong"||e==="toon"||e==="lambert"||e==="physical"}t.is=i})(S0||(S0={}));var P0=["mode","gradientType","noiseType","displacementType","projection","cnormal","crop","axis","side"],O0=["wrapping","image","video","name","minFilter","magFilter"],Vt;(o=>{function i(n,a){let{texture:s,...l}=a;if(Object.assign(n,l),s){let c=n.texture;c&&Object.assign(c,s)}}o.patch=i;function t(n,a){return n==="light"&&a?e(a):r(n)}o.defaultData=t;function e(n){let a={mode:0,isMask:!1,visible:!0,bumpMap:void 0,bumpMapIntensity:5,roughnessMap:void 0,alphaOverride:1};switch(n){case"phong":return{...a,category:"phong",specular:{r:.2,g:.2,b:.2},shininess:5,type:"light",visible:!0,mode:0,occlusion:!0,alpha:.6};case"toon":return{...a,category:"toon",specular:{r:.2,g:.2,b:.2},shininess:10,type:"light",alpha:1};case"lambert":return{...a,category:"lambert",emissive:{r:0,g:0,b:0},type:"light",alpha:1,visible:!0,mode:0,occlusion:!0};case"physical":return{...a,category:"physical",roughness:.2,metalness:.2,reflectivity:.2,type:"light",alpha:1,visible:!0,mode:0,occlusion:!0}}}function r(n){let a={alpha:1,mode:0,isMask:!1,visible:!0};switch(n){case"texture":return{...a,type:"texture",size:[128,128],blending:0,axis:"x",side:2,projection:0,texture:{image:"image_0",wrapping:1e3,repeat:[1,1],offset:[0,0],rotation:0,minFilter:1008,magFilter:1006},crop:!1};case"video":return{...a,type:"video",size:[128,128],blending:0,axis:"x",side:2,projection:0,texture:{video:Ma.defaultVideo,wrapping:1001,repeat:[1,1],offset:[0,0],rotation:0,minFilter:1008,magFilter:1006},crop:!1};case"color":return{...a,type:"color",color:jt.fromHex(Dt)};case"depth":return{...a,type:"depth",gradientType:1,smooth:!1,isVector:!0,isWorldSpace:!1,origin:[0,0,0],direction:[1,0,0],colors:[[1,1,1,1],[0,0,0,1]],steps:[0,1],near:50,far:200};case"normal":return{...a,type:"normal",cnormal:[1,1,1]};case"gradient":return{...a,type:"gradient",gradientType:0,smooth:!1,colors:[[0,0,0,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]],steps:[0,1,1,1,1,1,1,1,1,1],num:2,angle:0,offset:[0,0],morph:[0,0]};case"noise":return{...a,type:"noise",size:[100,100,100],noiseType:0,scale:1,move:1,colorA:{...jt.fromHex(6710886),a:1},colorB:{...jt.fromHex(6710886),a:1},colorC:{...jt.fromHex(16777215),a:1},colorD:{...jt.fromHex(16777215),a:1},distortion:[1,1],fA:[1.7,9.2],fB:[8.3,2.8],voronoiStyle:0,highCut:1,lowCut:0,smoothness:.3,seed:0,quality:1};case"fresnel":return{...a,type:"fresnel",color:Re.fromHexAndA(16777215,1),bias:.1,scale:1,intensity:2,factor:1};case"rainbow":return{...a,type:"rainbow",filmThickness:30,movement:0,wavelengths:[0,0,0],noiseStrength:0,noiseScale:1,offset:[0,0,0]};case"toon":return{...a,type:"toon",positioning:2,colors:[[0,0,0,1],[.5,.5,.5,1],[.5,.5,.5,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]],steps:[0,.475,.525,1,1,1,1,1,1,1],num:4,source:[0,1e3,0],isWorldSpace:!0,noiseStrength:0,noiseScale:1,shadowColor:Re.fromHexAndA(0,0),offset:[0,0,0]};case"outline":return{...a,type:"outline",outlineColor:Re.fromHexAndA(0,1),contourColor:Re.fromHexAndA(0,1),outlineWidth:2,contourWidth:5,outlineThreshold:.4,contourThreshold:0,outlineSmoothing:0,contourFrequency:10,contourDirection:[0,1,0],positionalLines:!1,compensation:!0};case"matcap":return{...a,type:"matcap",texture:{image:"matcap_0",wrapping:1001,repeat:[1,1],offset:[0,0],rotation:0,minFilter:1008,magFilter:1006}};case"transmission":return{...a,type:"transmission",thickness:10,ior:1.5,roughness:1};case"displace":return{visible:!0,type:"displace",displacementType:"noise",noiseType:0,scale:10,movement:1,offset:[0,0,0],intensity:8,voronoiStyle:0,smoothness:.3,seed:0,highCut:1,lowCut:0,quality:1};case"pattern":return{...a,type:"pattern",style:0,projection:0,axis:"y",blending:0,offset:[0,0],colorA:{...jt.fromHex(0),a:1},colorB:{...jt.fromHex(16777215),a:1},frequency:[10,10],size:.5,variation:0,smoothness:.5,zigzag:0,rotation:0,vertical:[0,1],horizontal:[0,1],sides:6}}}})(Vt||(Vt={}));var Ut;(c=>{function i(u){return!u.layers.some(p=>p.data.type==="texture"&&p.data.projection!==0||p.data.type==="depth"&&!p.data.isWorldSpace||p.data.type==="noise"||p.data.type==="displace")}c.isMergable=i;function t(u){let d="";return u.layers.forEach(p=>{Object.entries(p.data).forEach(([f,h])=>{d+=`${f}${h}`,Array.isArray(h)?h.forEach(m=>d+=`${m}`):typeof h=="object"?Object.values(h).forEach(m=>{typeof m=="number"?d+=`${m.toFixed(4)}`:d+=`${m}`}):d+=`${h}`})}),d}c.getHash=t;function e(){return{layers:new Se}}c.defaultEmptyData=e;function r(u="layer1",d="layer2"){return n("phong",u,d)}c.defaultData=r;function o(u,d){return{...u,name:d}}c.withName=o;function n(u,d="layer1",p="layer2"){let f=new Se;return f.push({fi:0,data:Vt.defaultData("light",u),id:d}),f.push({fi:1,data:Vt.defaultData("color"),id:p}),{layers:f}}c.defaultTwoLayerData=n;function a(u){let d=Vt.defaultData("texture");u&&Object.assign(d.texture,{image:u});let p=new Se;return p.push({fi:0,data:d,id:"layer1"}),p.push({fi:1,data:{...Vt.defaultData("transmission"),alpha:1},id:"layer2"}),p.push({fi:2,data:{...Vt.defaultData("light","lambert"),alpha:0},id:"layer3"}),{layers:p}}c.defaultUIObjectMaterial=a;function s(u,d="phong",p="layer1",f="layer2"){let h=Vt.defaultData("texture");Object.assign(h.texture,{image:u});let m=new Se;return m.push({fi:0,data:h,id:p}),m.push({fi:1,data:Vt.defaultData("light",d),id:f}),{layers:m}}c.defaultTwoLayerTextureData=s;function l(u,d="phong",p="layer1",f="layer2"){let h=Vt.defaultData("video");Object.assign(h.texture,{video:u});let m=new Se;return m.push({fi:0,data:h,id:p}),m.push({fi:1,data:Vt.defaultData("light",d),id:f}),{layers:m}}c.defaultTwoLayerVideoTextureData=l})(Ut||(Ut={}));var Ia;(t=>{function i(){return{points:new Se,roundness:0,shapeHoles:[],isClosed:!1}}t.defaultData=i})(Ia||(Ia={}));var Ea;(t=>{function i(){return{points:new Se,lastInsertionPlane:null,subdivisions:12,isClosed:!1}}t.defaultData=i})(Ea||(Ea={}));var Yp={type:"Ellipse",width:50,height:50,spikes:16,angle:360,innerRadius:0};var gu;(t=>{function i(e,r){let o={...e};return CA.forEach(n=>{Object.assign(o,{[n]:r[n]??e[n]})}),o}t.merge=i})(gu||(gu={}));var xu={shape:Yp,depth:1,offset:0,bevel:50,bevelSides:6,angle:0,twist:0,startScale:1,endScale:1,capType:"flat"},CA=["depth","offset","angle","twist","startScale","endScale"];var hl;(r=>{function i(o){return o==="PolygonGeometry"||o==="RectangleGeometry"||o==="StarGeometry"||o==="TriangleGeometry"||o==="EllipseGeometry"||o==="UIGeometry"}r.is2DParametricMesh=i;function t(o){return o==="PolygonGeometry"||o==="RectangleGeometry"||o==="StarGeometry"||o==="TriangleGeometry"||o==="EllipseGeometry"||o==="PathGeometry"||o==="VectorGeometry"||o==="ConeGeometry"||o==="CubeGeometry"||o==="CylinderGeometry"||o==="DodecahedronGeometry"||o==="HelixGeometry"||o==="IcosahedronGeometry"||o==="LatheGeometry"||o==="PyramidGeometry"||o==="SphereGeometry"||o==="PlaneGeometry"||o==="BackdropGeometry"||o==="TorusGeometry"||o==="TorusKnotGeometry"||o==="BooleanGeometry"||o==="TextGeometry"||o==="InputGeometry"}r.isParametricMesh=t;function e(o){return o==="PolygonGeometry"||o==="RectangleGeometry"||o==="StarGeometry"||o==="TriangleGeometry"||o==="EllipseGeometry"||o==="PathGeometry"||o==="VectorGeometry"||o==="ConeGeometry"||o==="CubeGeometry"||o==="CylinderGeometry"||o==="DodecahedronGeometry"||o==="HelixGeometry"||o==="IcosahedronGeometry"||o==="LatheGeometry"||o==="PyramidGeometry"||o==="SphereGeometry"||o==="PlaneGeometry"||o==="BackdropGeometry"||o==="TorusGeometry"||o==="TorusKnotGeometry"||o==="TextGeometry"||o==="SubdivGeometry"||o==="NonParametricGeometry"}r.isSwappableGeometry=e})(hl||(hl={}));var bu;(t=>{function i(e,r){let o={...e};return Object.assign(o,r),o.type==="PathGeometry"&&"extrusion"in r&&r.extrusion&&(o.extrusion={...e.extrusion},Object.assign(o.extrusion,gu.merge(o.extrusion,r.extrusion))),o}t.merge=i})(bu||(bu={}));var Eo;(t=>{function i(e){if(e==="RectangleGeometry")return{width:320,height:320,type:e,cornerRadius:[0,0,0,0],cornerType:0,depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(e==="UIGeometry")return{type:e,frame:"",cornerRadius:[0,0,0,0],cornerType:0,width:1,height:1};if(e==="PathGeometry")return{type:e,width:1,height:1,depth:1,path:Ea.defaultData(),extrusion:xu};if(e==="VectorGeometry")return{width:1,height:1,type:e,subdivisions:12,shape:Ia.defaultData(),depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(e==="BooleanGeometry")return{type:e,operation:2,width:0,height:0,depth:0,phongAngle:35};if(e==="ShapeBlendGeometry")return{type:e,width:0,height:0,depth:0,resolutionLevel:6,blendRange:100,useChildrenColors:!1};if(e==="TextGeometry")return{type:e,width:100,height:100,depth:0,horizontalAlign:1,verticalAlign:1,fontSize:16,lineHeight:1.2,letterSpacing:0,text:{textValue:""},textTransform:1,font:"Roboto_regular",editable:!1,extrudeBevelSize:0,extrudeBevelSegments:1};if(e==="InputGeometry")return{...t.defaultData("TextGeometry"),type:e,editable:!0};if(e==="SphereGeometry")return{type:"SphereGeometry",width:100,height:100,depth:100,widthSegments:64,heightSegments:64,phiStart:0,phiLength:2*Math.PI,thetaStart:0,thetaLength:180};throw new Error("not implemented")}t.defaultData=i})(Eo||(Eo={}));var vu;(t=>t.defaultData={enabled:!1,useBackgroundColor:!1,color:jt.white,near:.1,far:2e3})(vu||(vu={}));var Su;(e=>{let i={opacity:1,blendFunction:13,enabled:!1};e.defaultData={enabled:!1,pixelation:{...i,blendFunction:16,granularity:15},bloom:{...i,blendFunction:16,intensity:1,blurScale:1,luminanceThreshold:.25,luminanceSmoothing:.025,kernelSize:3},chromaticAberration:{...i,offset:[2,2]},vignette:{...i,darkness:1,offset:0},hueSaturation:{...i,hue:3,saturation:0},brightnessContrast:{...i,brightness:.25,contrast:0},depthOfField:{...i,focusDistance:100,focalLength:20,bokehScale:5},noise:{...i,blendFunction:16}}})(Su||(Su={}));var Kp;(t=>t.defaultData={softShadowQuality:"low"})(Kp||(Kp={}));var Qp;(t=>t.defaultData={enabled:!0,color:{r:.8274509803921568,g:.8274509803921568,b:.8274509803921568},intensity:.75})(Qp||(Qp={}));var Zp;(t=>t.defaultData={occlusion:!1,aoFullRes:!1,radius:256,bias:.5,aoColor:{r:.19607843137254902,g:.19607843137254902,b:.19607843137254902}})(Zp||(Zp={}));var ml;(t=>t.defaultData={usePhysics:!1,gravity:-10})(ml||(ml={}));var Jp;(t=>t.defaultData={playCamera:Ri,gameControlObject:null})(Jp||(Jp={}));var wu;(t=>t.defaultData={backgroundColor:Re.fromHexAndA(x0,1),postprocessing:Su.defaultData,fog:vu.defaultData,globalPhysics:ml.defaultData,ambient:Qp.defaultData,ao:Zp.defaultData,shadow:Kp.defaultData,publish:Jp.defaultData})(wu||(wu={}));var Pu;(t=>t.defaultData={colliderType:"box",size:[100,100,100],colliderHelperVisible:!0,forceType:"collider",forceRange:"global",forceIntensity:.5,forceDambing:.95})(Pu||(Pu={}));var T0;(e=>{function i(r){return r==="Component"||r==="Instance"}e.isComponentRelated=i;function t(r){return r==="Empty"||r==="Instance"}e.isEmptyOrComponent=t})(T0||(T0={}));var Na;(o=>{o.identity={...pu.identity,hiddenMatrix:_i.identity};function t(n){return{position:n.position,rotation:n.rotation,scale:n.scale,hiddenMatrix:n.hiddenMatrix}}o.fromObject=t;function e(n,a){return{position:a?.position||n.position,rotation:a?.rotation||n.rotation,scale:a?.scale||n.scale,hiddenMatrix:a?.hiddenMatrix||n.hiddenMatrix}}o.merge=e;function r(n,a){return vc({position:Di.isEqual(n.position,a.position)?void 0:a.position,rotation:Di.isEqual(n.rotation,a.rotation)?void 0:a.rotation,scale:Di.isEqual(n.scale,a.scale)?null:a.scale,hiddenMatrix:_i.isEqual(n.hiddenMatrix,a.hiddenMatrix)?void 0:a.hiddenMatrix})}o.diff=r})(Na||(Na={}));var _t;(t=>t.defaultData={states:new Se,events:new Se,timelineAnimations:new de,visible:!0,raycastLock:!1,physics:Vi.defaultData,pathSnapping:{pathId:null,slide:0,offset:0,orientation:"tangential"},...Na.identity,cloner:null})(_t||(_t={}));var Ou;(t=>t.defaultData={type:"Empty",..._t.defaultData})(Ou||(Ou={}));var C0;(t=>t.defaultData={type:"ParticleCollider",...Pu.defaultData,..._t.defaultData})(C0||(C0={}));var A0;(t=>t.defaultData={type:"Component",..._t.defaultData})(A0||(A0={}));var M0;(t=>t.defaultData={type:"Particle",..._t.defaultData,...Aa.defaultData})(M0||(M0={}));var ti;(t=>t.defaultData={type:"Mesh",..._t.defaultData,...yu.defaultData})(ti||(ti={}));var On;(t=>t.defaultData={..._t.defaultData,...Na.identity,position:[0,0,Bi.DefaultTargetOffset],...Bi.defaultData})(On||(On={}));var Tu;(e=>{function i(r){return{..._t.defaultData,...mu.defaultData(r)}}e.defaultData=i,e.defaultDirectionalLightData={...e.defaultData("DirectionalLight"),position:[200,300,300],name:"Directional Light",intensity:.7}})(Tu||(Tu={}));var Da;(e=>{function i(r,o,n=0){for(;n<o.length;){let a=r?r[o[n]]:void 0;if(o.length===n+1)return a;if(a)r=a.descendants,n+=1;else return}}e.resolveWithDes=i;function t(r,o,n=0){let a=i(r,o,n);if(a){let s=Object.keys(a);if(s.length===1&&s[0]==="descendants")return}return a}e.resolve=t})(Da||(Da={}));var No;(n=>{n.rootOverrideProps=["physics","events"],n.compositeNonOptionalOverrideProps=["geometry"],n.compositeEntireOverrideOverrideProps=["material"];function r(a,s){return{..._t.defaultData,...s,component:a,overrides:new Je,physics:void 0,events:void 0,type:"Instance"}}n.ofComponent=r;function o(a){let s=Na.fromObject(a.data);return r(a.id,s)}n.fromComponentData=o})(No||(No={}));var ri;(e=>{e.defaultData={type:"Page",..._t.defaultData,physics:{...Vi.defaultData,fusedBody:!1},...wu.defaultData,camera:On.defaultData};function t(r){return r.uiScene!==void 0}e.isUIPage=t})(ri||(ri={}));var Cu;(s=>(s.defaultCamera={position:[0,0,1e3],scale:[1,1,1],rotation:[0,0,0],hiddenMatrix:_i.identity,name:"Play Camera",visible:!0,raycastLock:!1,physics:Vi.defaultData,states:new Se,events:new Se,timelineAnimations:new de,cloner:null,pathSnapping:{pathId:null,orientation:"tangential",slide:0,offset:0},...Bi.defaultData},s.KeysByResetCategory={States:["states"],Events:["events"],Material:["material","materials"],Geometry:["geometry"],Position:["position"],Rotation:["rotation"],Scale:["scale"],Transform:["position","scale","rotation","hiddenMatrix"],Name:["name"],Visibility:["visible","raycastLock","flatShading","wireframe","side"],Shadows:["castShadow","receiveShadow"],Cloner:["cloner"],Physics:["physics"]},s.defaultMeshObject={name:"Rectangle",..._t.defaultData,...ti.defaultData,geometry:Eo.defaultData("RectangleGeometry"),material:Ut.defaultTwoLayerData("phong","layer1","layer2")},s.defaultBooleanObject={name:"Boolean",..._t.defaultData,...ti.defaultData,geometry:Eo.defaultData("BooleanGeometry"),material:Ut.defaultTwoLayerData("phong","layer1","layer2")},s.defaultShapeBlendObject={name:"Shape Blend",..._t.defaultData,...ti.defaultData,geometry:Eo.defaultData("ShapeBlendGeometry"),material:Ut.defaultTwoLayerData("phong","layer1","layer2")},s.defaultTextObject={name:"Text",..._t.defaultData,...ti.defaultData,geometry:Eo.defaultData("TextGeometry"),material:Ut.defaultTwoLayerData("phong","layer1","layer2")},s.defaultInputObject={name:"Input",..._t.defaultData,...ti.defaultData,geometry:Eo.defaultData("InputGeometry"),material:Ut.defaultTwoLayerData("phong","layer1","layer2")}))(Cu||(Cu={}));var Tn;(o=>{function i(n,a){let s={name:a};return n.type==="Mesh"?(s.geometry={},"material"in n&&(s.material={layers:new Je}),"materials"in n&&(s.materials=n.materials.map(l=>({layers:new Je})))):io.is(n.type)&&(s.perspective={},s.orthographic={}),s}o.newEmpty=i;function t(n,a){if(a===void 0)return n;let s={...n};return"material"in s&&"material"in a&&a.material&&(s.material=Mi(s.material,l=>{if(typeof l!="string")for(let[c,u]of Object.entries(a.material.layers)){let d=l.layers.data(c);d&&Vt.patch(d,u)}}).data),s.materials&&a.materials&&(s.materials=Mi(s.materials,l=>{for(let c=0;c<s.materials.length;c++){let u=a.materials[c];if(typeof u!="string")for(let[d,p]of Object.entries(u.layers)){let f=l[c]?.layers?.data(d);f&&Vt.patch(f,p)}}}).data),s}function e(n,a){let s,l=[],c={orthographic:0,perspective:0,geometry:0};function u(d,p){for(let[f,h]of Object.entries(p.layers)){let{texture:m,...y}=h;if(m!==void 0&&Object.keys(m).length>0){let x={path:[...d,"layers",f,"texture"],props:m,type:0};l.push(x)}if(Object.keys(y).length>0){let x={path:[...d,"layers",f],props:y,type:0};l.push(x)}}}for(let[d,p]of Object.entries(a))if(d!=="name")if(d==="cloner")l.push(...fu.toOps(p,["cloner"]));else if(d==="pathSnapping")l.push({path:[d],props:{slide:p.slide,offset:p.offset},type:0});else if(d==="material")u(["material"],p);else if(d==="materials")for(let[f,h]of Object.entries(p))u(["materials",f],h);else if(c[d]===0){if(d==="geometry"&&p.extrusion!==void 0){let f={path:[d,"extrusion"],props:p.extrusion,type:0};l.push(f),p={...p},delete p.extrusion}if(Object.keys(p).length>0){let f={path:[d],props:p,type:0};l.push(f)}}else s===void 0&&(s={path:[],props:{},type:0},l.push(s)),s.props[d]=p;return l}o.toOps=e;function r(n,a){if(a===void 0)return n;let s={...n};if(Object.assign(s,Na.merge(s,a)),Object.assign(s,{pathSnapping:Object.assign({},s.pathSnapping,{slide:a.pathSnapping?.slide??s.pathSnapping?.slide??0,offset:a.pathSnapping?.offset??s.pathSnapping?.offset??0})}),io.is(n.type)){s.orthographic={...s.orthographic},s.perspective={...s.perspective};let l=a;l.orthographic?.zoom!==void 0&&(s.orthographic.zoom=l.orthographic.zoom),l.perspective?.zoom!==void 0&&(s.perspective.zoom=l.perspective.zoom),l.isUpVectorFlipped!==void 0&&(s.isUpVectorFlipped=l.isUpVectorFlipped),l.targetOffset!==void 0&&(s.targetOffset=l.targetOffset)}else if(n.type==="Mesh")"geometry"in a&&Object.assign(s,{geometry:bu.merge(s.geometry,a.geometry)}),(a.material||a.materials)&&(s=t(s,a)),s.cloner&&"cloner"in a&&Object.assign(s,{cloner:Io.merge(s.cloner,a.cloner)});else if(n.type==="Empty")s.cloner&&"cloner"in a&&Object.assign(s,{cloner:Io.merge(s.cloner,a.cloner)});else if(hu.is(n.type)){let l=a;l.intensity!==void 0&&(s.intensity=l.intensity),l.color!==void 0&&(typeof l.color=="string"?s.color=l.color:s.color=jt.clone(l.color))}return s}o.patch=r})(Tn||(Tn={}));var _a;(t=>t.defaultData={enablePan:!0,enableZoom:!0,enableRotate:!0,enableDamping:!0,rotationLimitsMode:0,rotationVerticalOffset:{min:Math.PI/4,max:Math.PI/4},rotationHorizontalOffset:{min:Math.PI/4,max:Math.PI/4},rotationSoftLimit:2,panLimitsMode:0,panVerticalOffset:{min:250,max:250},panHorizontalOffset:{min:250,max:250},panSoftLimit:2,zoomLimitsEnabled:!1,zoomLimits:{min:.1,max:2},autoRotate:!1,autoRotateSpeed:2,autoRotateClockwise:!0,hoverRotatePanMode:0,hoverRotatePanStrength:20,hoverRotateDamping:.125,isTouchZoom:!0,orbitTouches:2,panTouches:3,resetHoverEffectOnPointerLeave:!0})(_a||(_a={}));var kr;(t=>t.defaultData={orbitControls:_a.defaultData,playPage:Li,withBackground:!0,preventScroll:!1,preventTouchScroll:!1,hideCursor:!1,mouseEventTarget:"canvas",joystickSizeAndXYOffset:Array(12).fill(0).map((e,r)=>{let o=0,n=0;return r<5?n=-30:r<10&&(n=30),r===0||r===10||r===5?o=30:(r===4||r===11||r===9)&&(o=-30),[120,[o,n],"show"]}),settings:{image:{format:"jpg",ratio:1},videoStatic:{fps:60,mbps:150,ratio:1,duration:1e3,format:"mp4",imageFormat:"jpg",activeTimeline:null},video:{format:"mp4",imageFormat:"jpg",fps:30,mbps:80,ratio:Math.max(1,typeof window<"u"?Math.floor(window.devicePixelRatio):1),stopMode:"manual",duration:5e3},web:{logo:!0,compress:!0,preset:1,preload:!0,hint:!1,imageQuality:70,pixelRatioMobile:0,pixelRatioDesktop:0}},stopRaycast:!0,hdTransmission:!1})(kr||(kr={}));var ef;(t=>t.defaultData={id:"basic",label:"Basic",style:"None",prompt:""})(ef||(ef={}));var tf;(t=>t.defaultData={weather:0,shadows:0,lightOrigin:0,temperature:0,sun:0,camera:0,environment:0,particles:0,nature:0,floor:0})(tf||(tf={}));var oi;(e=>(e.defaultData=()=>({mode:"line-art-both",prompt:"",negativePrompt:"",style:{...ef.defaultData},isRandomSeed:!0,seed:e.generateSeed(),guessMode:!1,advanced:!1,steps:20,guidanceScale:7.5,controlNetScale:1,modifiers:tf.defaultData}),e.generateSeed=()=>Math.round(Math.random()*1e5)))(oi||(oi={}));var I0;(e=>{function i(r){return r.find(o=>o.data.type==="Page"&&o.data.globalPhysics.usePhysics)!==void 0}e.physicsEnabled=i;function t(r,o,n){r.scene.objects.traverseFrom(o,(a,s)=>{if(s.type==="Instance"){let l=Ra.getComponentData(r,s.component)?.data;l&&n(a,s,l.events)}else n(a,s,s.events)})}e.traverseModuleInstances=t})(I0||(I0={}));var ii;(c=>{c.TRASH_CAN_ID="830a2708-8ed9-49cf-a68e-085299892222",c.defaultLight={fi:-1,data:Tu.defaultDirectionalLightData,id:"830a2708-8ed9-49cf-a68e-085299899103",children:[]};function e(u=!0,d=[]){let p=[],f=Cu.defaultMeshObject;u&&(p.push({...c.defaultLight}),p.push({fi:1,id:"7ba78968-2a55-48f2-b14c-5191da3e075e",data:f,children:[]})),p.push(...d);let h=new ct;return h.push({fi:1,id:Li,data:{...ri.defaultData,name:"Scene 1"},children:p}),h}c.createDefaultObjectTreeWithPage=e,c.defaultData={objects:e(),publish:kr.defaultData,styles:oi.defaultData()},c.emptyDataWithoutPage=function(){return{objects:new ct,publish:kr.defaultData,styles:oi.defaultData()}},c.emptyDataWithPage=function(u=!0){return{objects:e(u),publish:kr.defaultData,styles:oi.defaultData()}},c.emptyData=function(){return{objects:new ct,publish:{...kr.defaultData},styles:oi.defaultData()}};function s(u){return{...c.defaultData,objects:Ft(u,ct.prototype)}}c.withObjs=s;function l(u,d){return s([{id:u,data:d,children:[],fi:0}])}c.withObj=l})(ii||(ii={}));var La;(t=>t.defaultData={preset:"fullscreen",allowResponsive:!1,size:[512,512],coords:[0,0],sceneScale:1,color:{r:0,g:0,b:0,a:.5}})(La||(La={}));var Au;(e=>(e.defaultData=r=>({url:r,name:"New Webhook",parametersSchemas:new Se}),e.defaultParameterValueByType=r=>r==="number"?0:r==="boolean"?!1:""))(Au||(Au={}));var E0;(t=>t.defaultData=(e,r="GET")=>({url:e,method:r,name:"New API",headers:new Se,queries:new Se,autoStart:!0}))(E0||(E0={}));var zi;(n=>{function i(a){return a.textValue!==void 0}n.isTextValue=i;function t(a){return typeof a=="number"}n.isNumber=t;function e(a){return typeof a=="boolean"}n.isBoolean=e;function r(a){return i(a)?"string":e(a)?"boolean":"number"}n.typeOfVariable=r;function o(a){return n.isTextValue(a)?Array.isArray(a.textValue)?a.textValue.map(s=>s.toString().padStart(a.padding??2,"0")).join(a.deliminator??":")+(a.suffix!==void 0?" "+a.suffix:""):a.textValue.toString():n.isBoolean(a)?a?"True":"False":n.isNumber(a)?parseFloat(a.toFixed(3)).toString():a.toString()}n.getDisplayedValue=o})(zi||(zi={}));var rf;(t=>t.all=["images","videos","colors","audios","particles","fonts","materials","variables"])(rf||(rf={}));var N0;(t=>t.all=[...rf.all,"components"])(N0||(N0={}));var D0;(t=>{function i(){return{images:new de,videos:new de,colors:new de,audios:new de,particles:new de,fonts:new de,materials:new de,components:new de,variables:new de,userAPIs:new de,userWebhooks:new de,timelineAnimations:new de}}t.defaultData=i})(D0||(D0={}));var no;(t=>{function i(){return{images:new de,videos:new de,colors:new de,audios:new de,particles:new de,fonts:new de,materials:new de,components:new de,variables:new de,userAPIs:new de,userWebhooks:new de,timelineAnimations:new de}}t.defaultData=i})(no||(no={}));var Hr;(n=>{function i(){let a={};return a["89b10010-844c-11ec-a8a3-0242ac120002"]={r:.5,g:.5,b:.5,a:1,name:"Default Color"},Ft(a,de.prototype)}n.defaultColors=i;function t(){return Ft({},de.prototype)}n.defaultImages=t;function e(){return{catelogs:new de,materials:new de,images:new de,videos:new de,colors:new de,timelineAnimations:new de,audios:new de,particles:new de,fonts:new de,variables:new Se,userAPIs:new de,userWebhooks:new de,lib:no.defaultData()}}n.emptyData=e;function r(a){switch(a){case"number":return{value:0,name:"Number"};case"boolean":return{value:!1,name:"Boolean"};case"string":return{value:{textValue:"String value"},name:"String"};case"time":let s=[0,0,0];return{name:"Time",value:{textValue:s,deliminator:":",padding:2,suffix:"AM"},dynamicVariableType:"time",format:"HH:mm:ss",format12h24h:"12ampm",timeZone:null,hasEnd:!1,endValue:{textValue:s,deliminator:":",padding:2,suffix:"AM"},autoStart:!0,repeat:!1};case"counter":return{name:"Counter",value:0,dynamicVariableType:"counter",updateInterval:1e3,increment:1,autoStart:!0,hasEnd:!0,endValue:60,repeat:!0,randomStart:!1,range:[0,100],decimals:0};case"random":return{name:"Random",value:0,dynamicVariableType:"random",updateInterval:1e3,increment:1,autoStart:!0,isStatic:!1,hasEnd:!0,endValue:60,repeat:!0,min:0,max:100,decimals:0};default:console.error("Unknown variable type",a)}}n.defaultVariables=r;function o(a,s){if(s.format==="HH:mm:ss"){let l=Math.floor(a/3600),c=Math.floor((a-l*3600)/60),u=Math.round(a-l*3600-c*60);return{textValue:[l,c,u]}}else if(s.format==="mm:ss"){let l=Math.floor(a/60),c=Math.round(a-l*60);return{textValue:[l,c]}}else return s.format==="number"?a=Math.round(a):a=Math.round(a*1e3)/1e3,a}n.getFormattedTimerTime=o})(Hr||(Hr={}));var yl=require("three");var Mu;(t=>t.list=["idle","move","jump","run"])(Mu||(Mu={}));var Iu;(e=>(e.defaultColliderData={type:"capsule",height:200,radius:50,position:[0,0,0],rotation:[0,0,0]},e.defaultDataThirdPerson={moveMode:"walk",forwardDirection:"+z",speedTranslate:1e3,speedRotate:100,runMultiplier:2,rotationMode:"normal",rotBy:"keys",rotByTouch:"drag",delayPos:[.3,.3],delayRot:[.3,.3],keyAssignments:[["moveNegZ","W"],["moveNegX","A"],["movePosZ","S"],["movePosX","D"],["rotPosX","\u25B2"],["rotPosY","\u25C0"],["rotNegX","\u25BC"],["rotNegY","\u25B6"],["jump","Space"],["run","\u21E7"],["none","Ctrl"]],touchControl:!0,joystickPosLoc:5,joystickRotLoc:11,jumpTouchButtonLoc:9,collider:e.defaultColliderData,colliderHelperVisible:!0,collisionEnabled:!0,jumpPower:100,resetYPosition:3e3,alignToGround:!1,autoOrientMove:!0,orientWith:"camera",orientMode:"radial",delayPosCamera:.3,delayRotCamera:.3,camera:"",cameraXAxis:"Limit",cameraYAxis:"Free",cameraRotXLimits:[0,Math.PI/2],cameraRotYLimits:[-Math.PI/2,Math.PI/2],gameActions:{idle:new Se,move:new Se,jump:new Se,run:new Se},navmesh:{enabled:!1,ch:6,cs:6,walkableClimb:5,walkableHeight:1,walkableRadius:0,zones:"all",objects:[],helperVisible:!0,destinationHelperRadius:0,destinationHelperColor:Re.fromHexAndA(3728051,1)}}))(Iu||(Iu={}));function _0(i){i.layers.forEach(t=>{if(t.type==="depth"&&t.colorA!==void 0){let e=t.colorA,r=t.colorB,o=[[e.r,e.g,e.b,e.a],[r.r,r.g,r.b,r.a]],n=[0,1];for(let s=2;s<10;s++)o.push(o[1]),n.push(1);let a={...oo(vt(t),"type","visible","isVector","isWorldSpace","origin","alpha","mode"),near:Math.max(0,t.near),far:Math.max(0,t.far),colors:o,steps:n,num:2,direction:[1,0,0],smooth:!1,gradientType:1};Object.assign(t,a)}else if(t.type==="depth"&&t.gradientType===1&&(t.near<0||t.far<0)){let e={...vt(t),near:Math.max(t.near,0),far:Math.max(t.far,0)};Object.assign(t,e)}})}function ni(i,t){Object.values(i.shared.materials).forEach(e=>t(e))}function ai(i,t){i.scene.objects.traverse((e,r)=>{"materials"in r?r.materials.forEach((o,n)=>{o===void 0&&(r.materials[n]=Ut.defaultData(),o=r.materials[n]),typeof o!="string"&&t(o)}):"material"in r?typeof r.material!="string"&&(r.material===void 0&&(r.material=Ut.defaultData()),t(r.material)):r.type==="Mesh"&&(r.material===void 0&&(r.material=Ut.defaultData()),t(r.material)),"overrides"in r&&Object.values(r.overrides).forEach(o=>{o.material&&typeof o.material!="string"&&Object.getPrototypeOf(o.material)!==Je.prototype&&t(o.material)})})}function AA(i){Object.assign(i.scene.publish,{orbitControls:{..._a.defaultData,...vt(i.scene.publish.orbitControls)}})}function MA(i){Object.assign(i.scene.publish.settings,{video:{...kr.defaultData.settings.video,...vt(i.scene.publish.settings.video)}})}function IA(i){function t(e){if(e.layers){for(let r of Object.values(e.layers))if(r){for(let[o,n]of Object.entries(r))if((P0.includes(o)||typeof n=="boolean")&&delete r[o],o==="texture")for(let[a,s]of Object.entries(n))(O0.includes(a)||typeof s=="boolean")&&delete n[a]}}}i.scene.objects.traverse((e,r)=>{r.states.forEach(o=>{let n=o;n.material?t(n.material):n.materials&&n.materials.forEach(a=>{t(a)})})})}function EA(i){i.scene.publish.withBackground=!0}function NA(i){i.scene.publish.settings.web={compress:!0,preload:!0,preset:1,logo:!0,hint:!1}}function DA(i){i.scene.objects.traverse((t,e)=>{let r=e.cloner;r&&(r.radial.scale=r.radial.scale.map(o=>o+1),r.linear.scale=r.linear.scale.map(o=>o+1))})}function _A(i){i.scene.objects.traverse((t,e)=>{let r=e.geometry;r&&(r.type==="DodecahedronGeometry"||r.type==="IcosahedronGeometry")&&(r.detail=Math.round(r.detail))})}function RA(i){i.scene.objects.traverse((t,e)=>{let r=i.scene.objects.unproxy().parent(t);if(r){let o=vt(i.scene.objects.data(r));o&&o.type==="Mesh"&&o.geometry.type==="BooleanGeometry"&&e.type==="Mesh"&&(e.visible=vt(e).booleanExclude!==!0)}})}function LA(i){i.scene.objects.traverse((t,e)=>{if(e.type==="Mesh"){let r=e;e.geometry.type==="NonParametricGeometry"?r.material!==void 0&&delete r.material:r.materials!==void 0&&delete r.materials}})}function BA(i){function t(r){Object.setPrototypeOf(r,Je.prototype),r.texture&&Object.setPrototypeOf(r.texture,Je.prototype)}function e(r){Object.setPrototypeOf(r,Je.prototype);for(let o in r)t(r[o])}i.scene.objects.traverse((r,o)=>{o.states.forEach(n=>{let a=n;if(a.material){let s=vt(a.material).layers;e(s),a.material.layers=s}if(a.materials)for(let s=0;s<a.materials.length;s++){let l=a.materials[s],c=vt(l).layers;e(c),l.layers=c}})})}function R0(i){i.layers===void 0&&Object.assign(i,Ut.defaultTwoLayerData("lambert"))}function of(i){!i.layers||i.layers.forEach(t=>{if(t.type==="depth"&&t.colors.length===10){let e=[...t.colors];e.push(t.colors[9]);let r=[...t.steps];r.push(t.steps[9]);let o={...vt(t),colors:e,steps:r};Object.assign(t,o)}})}function VA(i){i.scene.objects.traverse((t,e)=>{e.type==="Mesh"&&(e.geometry.type==="BooleanGeometry"||e.geometry.type==="SubdivGeometry")&&(e.geometry.phongAngle=35)})}function L0(i){i.scene.objects.traverse((t,e)=>{"materials"in e?e.materials.forEach(r=>{typeof r!="string"&&of(r)}):"material"in e&&typeof e.material!="string"&&of(e.material)}),Object.values(i.shared.materials).forEach(t=>of(t))}function zA(i){i.scene.environment.ambientLight.softShadows=!1,i.scene.environment.ambientLight.softShadowQuality="low",i.scene.objects.traverse((t,e)=>{(e.type==="DirectionalLight"||e.type==="SpotLight")&&(e.shadowResolution=1024,e.shadowRadius=1,e.depth=1e5)}),i.shared.penumbraSize=new Array(5).fill(.5)}function GA(i){i.shared.audios=Ft({},de.prototype)}function FA(i){i.shared.videos=Ft({},de.prototype)}function jA(i){let t=i.shared.materials;Object.entries(t).forEach(([e,r])=>{if(!r.layers){let o={name:"Untitled Material",layers:[{fi:0,data:{type:"light",category:"phong",alpha:.6,visible:!0,mode:0,specular:{r:.2,g:.2,b:.2},shininess:5},id:"layer1"},{fi:1,data:{type:"color",alpha:1,visible:!0,mode:0,color:{r:.2823529411764706,g:.2823529411764706,b:.30196078431372547}},id:"layer2"}]};Object.assign(t,{[e]:o})}})}function UA(i){Object.entries(vt(i.shared.images)).filter(r=>r[1].asset===!1).map(r=>r[0]).forEach(r=>{delete i.shared.images[r]}),Object.entries(vt(i.shared.audios)).filter(r=>r[1].asset===!1).map(r=>r[0]).forEach(r=>{delete i.shared.audios[r]})}function kA(i){i.scene.publish.settings.web.preload=!1}function B0(i){i.layers&&i.layers.forEach(t=>{t.type==="depth"&&t.num!==void 0&&(t.colors=t.colors.slice(0,t.num),t.steps=t.steps.slice(0,t.num),delete t.num)})}function V0(i){i.layers&&i.layers.forEach(t=>{w0(t)&&t.isMask===void 0&&(t.isMask=!1),(t.type==="texture"||t.type==="video")&&t.blending===void 0&&(t.blending=0),(t.type==="noise"||t.type==="displace"&&t.displacementType==="noise")&&(t.voronoiStyle===void 0&&(t.voronoiStyle=0),t.highCut===void 0&&(t.highCut=1),t.lowCut===void 0&&(t.lowCut=0),t.smoothness===void 0&&(t.smoothness=.3),t.seed===void 0&&(t.seed=0),t.quality===void 0&&(t.quality=1))})}function HA(i){i.shared.fonts=Ft({},de.prototype)}function WA(i){return i.replace(".typeface","").replace(/optimer/gi,"open sans").replace("space_mono","space mono").replace(/alma_mono/gi,"varela round").replace(/droid_sans_mono/gi,"noto sans mono").replace(/droid_sans|gentilis|gnomon_(simple|foreground)|helvetiker/gi,"roboto").replace(/droid_serif/gi,"roboto slab").replace("_sans"," sans").replace("crimson_text","crimson text").replace("medium_medium","medium").replace("fatface_fatface","fatface").replace("100hairline","thin").replace("200thin","extralight").replace("300light","light").replace("500medium","medium").replace("600semi","semibold").replace("800heavy","extrabold").replace("900black","black").replace(/bodoni_(11|16|24|36|48|72|96)([^_])/gi,"bodoni_$1_$2").replace(/bodoni_(11|16|24|36|48|72|96)/gi,"bodoni moda").replace(/(thin|hairline)(_regular)?/gi,"100").replace(/(extra|ultra)light(_regular)?/gi,"200").replace(/light(_regular)?/gi,"300").replace(/_book|_normal|_roman/gi,"_regular").replace(/medium(_regular)?/gi,"500").replace(/(semi|demi)bold(_regular)?/gi,"600").replace(/(extra|ultra)bold(_regular)?/gi,"800").replace(/bold(_regular)?/gi,"700").replace(/(black|heavy|fatface)(_regular)?/gi,"900").replace(/([1-9]00)_italic/gi,"$1italic").replace(/regularitalic/gi,"italic").replace(/regularitalic/gi,"italic").split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ")}function qA(i){let t=[];i.scene.objects.traverse((e,r)=>{let o=r;if(o.type==="TextFrame"){let n=Ut.defaultTwoLayerData("phong"),a=typeof o.color=="string"?i.shared.colors[o.color]:o.color;n.layers[1].data.color={r:a.r,g:a.g,b:a.b},n.layers[1].data.alpha=o.alpha;let s=WA(o.font);i.shared.fonts[s]===void 0&&(i.shared.fonts[s]={name:s});let l={name:o.name,..._t.defaultData,...ti.defaultData,flatShading:!1,wireframe:!1,geometry:{...Eo.defaultData("TextGeometry"),width:o.width,height:o.height,font:s,depth:0,horizontalAlign:o.horizontalAlign,verticalAlign:o.verticalAlign,fontSize:o.fontSize*1.40625,lineHeight:o.lineHeight/1.40625,letterSpacing:o.letterSpacing-1,text:o.text,textTransform:o.textTransform,extrudeBevelSize:0,extrudeBevelSegments:1},material:n,states:vt(o.states),events:vt(o.events),visible:o.visible,raycastLock:o.raycastLock,position:o.position,rotation:o.rotation,scale:o.scale,hiddenMatrix:o.hiddenMatrix},c=vt(i.scene.objects).parent(e);i.scene.objects.insertAfter(c??null,e,[{id:e+"new",data:l,children:[]}]),t.push(e)}}),t.forEach(e=>{i.scene.objects.delete(e)})}function $A(i){let t={0:"MouseDown",1:"MouseUp",2:"MouseHover",5:"KeyDown",6:"KeyUp",7:"Start",9:"LookAt",10:"Follow",11:"Scroll",12:"Audio",13:"GameControl"};i.scene.objects.traverse((e,r)=>{r.events.forEach(o=>{if(!!t[Number(o.type)])if(Object.assign(o,{type:t[Number(o.type)]}),o.type==="Audio"&&"audioEvent"in o&&(Object.assign(o,{playAudio:o.audioEvent}),delete o.audioEvent),o.type==="GameControl")Object.assign(o,{gameActions:{idle:new Se,move:new Se,jump:new Se}});else{let n=new Se;Object.assign(o,{actions:n}),(o.type==="MouseDown"||o.type==="MouseUp"||o.type==="KeyDown"||o.type==="KeyUp")&&"url"in o&&n.push({fi:0,id:yl.MathUtils.generateUUID(),data:{type:"Link",url:o.url,delay:0}}),"targets"in o&&(o.targets.forEach((a,s,l)=>{let c={state:void 0,repeat:0,delay:0,delayDirection:void 0,direction:"normal",duration:0,easing:4},u={easing:a.easing,duration:a.duration};a.easing===6?Object.assign(u,oo(a,"mass","stiffness","damping","velocity")):a.easing===5&&Object.assign(u,{control1:{...a.control1},control2:{...a.control2}});let d={repeat:a.repeat?-1:0,delay:a.delay,delayDirection:a.delayDirection,direction:a.cycle&&a.rewind?"pingpong-rewind":a.cycle?"pingpong":"normal"},p={state:a.state,...d,...u},f={allowSlerp:!0,type:"Transition",object:a.object,repeat:0,delay:0,delayDirection:void 0,direction:"normal",tweens:new Se({fi:0,id:yl.MathUtils.generateUUID(),data:c},{fi:1,id:yl.MathUtils.generateUUID(),data:p})};n.push({fi:l,id:s,data:f})}),delete o.targets)}})})}function XA(i){i.scene.objects.traverse((t,e)=>{function r(o,n){let a=new Se,s=[];if(e.events.forEach((l,c,u)=>{if(l.type==="Audio"&&l.trigger===n){let d;s.push(c),l.interaction==="play"?d={...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")&&(d={...oo(l,"interaction","delay","object","playAudio"),type:"Audio"}),d&&a.push({fi:u,id:c,data:d})}}),s.forEach(l=>e.events.delete(l)),a.length){let l=e.events.find(c=>c.type===o)?.data;l?"actions"in l&&l.actions.insertBefore(null,a):e.events.insertBefore(null,[{id:yl.MathUtils.generateUUID(),data:{type:o,actions:a}}])}}r("Start","start"),r("MouseDown","mouseDown"),r("MouseUp","mouseUp"),r("KeyDown","keyDown"),r("KeyUp","keyUp")})}function z0(i){let t=i.layers.find(e=>e.type==="light")?.data;if(t?.category==="basic"){let e=Vt.defaultData("light","phong"),r=t;Object.assign(r,e),r.visible=!1}}function G0(i){ni(i,z0),ai(i,z0)}function YA(i){i.scene.objects.traverse((t,e)=>{e.type==="Mesh"&&e.geometry.type==="SubdivGeometry"&&(e.geometry.scaleBaked||(e.geometry.scaleBaked=[1,1,1]))})}function KA(i){i.scene.objects.traverse((t,e)=>{(e.type==="Empty"||e.type==="Mesh")&&e.cloner&&!e.cloner.randomnessObject&&!e.cloner.toObject&&!e.cloner.randomness&&(e.cloner={...e.cloner,toObject:{object:"",spreadType:"random",scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],axis:"x",seed:0,count:99,align:"normal"},randomness:!1,randomnessObject:{strength:100,scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],movement:1,seed:0,freqScale:10,noiseType:"perlin"}})})}function QA(i){i.scene.objects.traverse((t,e)=>{e.type==="Mesh"&&e.geometry.type==="NonParametricGeometry"&&!("material"in e)&&!("materials"in e)&&(e.material=Ut.defaultTwoLayerData("phong"))})}function ZA(i){i.scene.publish.orbitControls.autoZoom===void 0&&(i.scene.publish.orbitControls.autoZoom=!1),i.scene.objects.traverse((t,e)=>{(e.type==="OrthographicCamera"||e.type==="PerspectiveCamera")&&(e.orthographic.autoZoom===void 0&&(e.orthographic.autoZoom=!1),e.orthographic.autoZoomFrustumSize===void 0&&(e.orthographic.autoZoomFrustumSize=790))})}function JA(i){i.scene.objects.traverse((t,e)=>{e.pathSnapping===void 0&&(e.pathSnapping={pathId:null,slide:0,offset:0,orientation:"tangential"}),e.pathSnapping.offset===void 0&&(e.pathSnapping.offset=0)})}function eM(i){i.scene.publish.mouseEventTarget===void 0&&(i.scene.publish.mouseEventTarget="canvas"),i.scene.publish.settings.web.hint===void 0&&(i.scene.publish.settings.web.hint=!1)}function tM(i){let{video:t}=i.scene.publish.settings;t.format==="gif"&&t.fps>48&&(t.fps=15)}function rM(i){i.scene.objects.traverse((t,e)=>{e.events.forEach(r=>{r.type==="GameControl"&&(r.resetYPosition=Math.abs(r.resetYPosition-e.position[1]))})})}function oM(i){let t=i.scene.environment.usePhysics;i.scene.objects.traverse((e,r)=>{t&&r.physics===null?r.collision=!1:r.collision="visibility"})}function iM(i){i.scene.objects.traverse((t,e)=>{e.events.forEach(r=>{r.type==="GameControl"&&(r.navmesh=Iu.defaultDataThirdPerson.navmesh)})})}function nM(i){i.scene.styles||(i.scene.styles=oi.defaultData())}function F0(i){i.layers.forEach(t=>{t.type==="light"&&t.category!=="toon"&&t.occlusion===void 0&&(t.occlusion=!0)})}function aM(i){i.scene.environment.ambientLight.occlusion===void 0&&(i.scene.environment.ambientLight.occlusion=!1),i.scene.environment.ambientLight.aoFullRes===void 0&&(i.scene.environment.ambientLight.aoFullRes=!1),i.scene.environment.ambientLight.radius===void 0&&(i.scene.environment.ambientLight.radius=256),i.scene.environment.ambientLight.bias===void 0&&(i.scene.environment.ambientLight.bias=.5),i.scene.environment.ambientLight.aoColor===void 0&&(i.scene.environment.ambientLight.aoColor={r:.19607843137254902,g:.19607843137254902,b:.19607843137254902}),ai(i,F0),ni(i,F0)}function sM(i){i.scene.objects.traverse((t,e)=>{e.events.forEach(r=>{r.type==="GameControl"&&Object.assign(r.gameActions,{run:new Se})})})}function lM(i){i.scene.objects.traverse((t,e)=>{e.events.forEach(r=>{r.type==="GameControl"&&(r.keyAssignments=[...r.keyAssignments,["run","\u21E7"],["none","Ctrl"]])})})}function j0(i){i.layers&&i.layers.forEach(t=>{t.type==="light"&&t.bumpMapIntensity===void 0&&(t.bumpMapIntensity=5)})}function U0(i,t){if(t<1&&(ai(i,_0),ni(i,_0),i.schema=1),t<2&&(AA(i),i.schema=2),t<3&&(IA(i),i.schema=3),t<4&&(EA(i),i.schema=4),t<5&&(NA(i),i.schema=5),t<6&&(DA(i),i.schema=6),t<7&&(_A(i),i.schema=7),t<8&&(i.schema=8),t<9&&(L0(i),i.schema=9),t<10&&(VA(i),i.schema=10),t<11&&(zA(i),i.schema=11),t<12&&(L0(i),i.schema=12),t<13&&(GA(i),i.schema=13),t<14&&(jA(i),i.schema=14),t<15&&(UA(i),i.schema=15),t<16&&(kA(i),i.schema=16),t<17&&(ai(i,B0),ni(i,B0),i.schema=17),t<18&&(ai(i,R0),ni(i,R0),i.schema=18),t<19&&(MA(i),i.schema=19),t<20&&(HA(i),qA(i),i.schema=20),t<21&&($A(i),XA(i),i.schema=21),t<22&&(G0(i),i.schema=22),t<23&&(YA(i),i.schema=23),t<24&&(KA(i),i.schema=24),(t<25||i.shared.videos===void 0)&&(FA(i),t<25&&(i.schema=25)),t<26&&(RA(i),i.schema=26),t<27&&(LA(i),i.schema=27),t<28&&(G0(i),i.schema=28),t<29&&(BA(i),i.schema=29),t<30&&(QA(i),i.schema=30),t<31&&(ZA(i),i.schema=31),t<33&&(JA(i),i.schema=33),t<34&&(eM(i),i.schema=34),t<35&&(tM(i),i.schema=35),t<36&&(rM(i),i.schema=36),t<37&&(oM(i),i.schema=37),t<38&&(ai(i,V0),ni(i,V0),i.schema=38),t<39&&(iM(i),i.schema=39),t<40&&(nM(i),i.schema=40),t<41&&(aM(i),i.schema=41),t<42&&(sM(i),i.schema=42),t<43&&(lM(i),i.schema=43),t<99){ai(i,j0),ni(i,j0),i.scene.publish.playCamera===null&&(i.scene.publish.playCamera=Ri);let e=vt(i.scene.objects),r=i.scene.objects;i.scene.publish.playPage=Li,r.insertBefore(null,null,[{id:Li,data:{...ri.defaultData,backgroundColor:i.scene.backgroundColor,fog:i.scene.fog,postprocessing:i.scene.postprocessing,ao:oo(i.scene.environment.ambientLight,"occlusion","aoFullRes","radius","bias","aoColor"),publish:{playCamera:i.scene.publish.playCamera,gameControlObject:i.scene.publish.gameControlObject},shadow:oo(i.scene.environment.ambientLight,"softShadowQuality"),globalPhysics:{...ml.defaultData,...oo(i.scene.environment,"usePhysics","gravity")},camera:vt(i.scene.ownerCamera)??ri.defaultData.camera,name:"Scene"},children:[]}]);for(let a of e)a.id!==ii.TRASH_CAN_ID&&r.move(Li,a.fi,a.id);let o=0,n=0;i.shared.penumbraSize&&i.scene.objects.traverse((a,s)=>{s.type==="DirectionalLight"?(s.penumbraSize=i.shared.penumbraSize[Math.min(o,2)],o+=1):s.type==="SpotLight"&&(s.penumbraSize=i.shared.penumbraSize[3+Math.min(n,1)],n+=1),(s.physics===void 0||s.physics===null)&&s.type!=="Instance"&&(s.physics={},Object.assign(s.physics,Vi.defaultData)),s.physics!==void 0&&s.physics!==null&&(s.physics.enabled=s.collision??"visibility",delete s.collision)}),i.schema=99}}function k0(i){i.layers&&i.layers.forEach(t=>{t.type==="light"&&t.alphaOverride===void 0&&(t.alphaOverride=1)})}function cM(i){i.scene.objects.traverse((t,e)=>{let r=e.geometry;r&&r.type==="PathGeometry"&&(r.extrusion.capType="flat",r.extrusion.bevel=50,r.extrusion.bevelSides=6,r.extrusion.shape.type==="Custom"&&(r.extrusion.shape.shapeQuality="low"))})}function uM(i){Array.isArray(vt(i.events))&&i.events?.forEach(t=>{"disabled"in t||(t.disabled=!1),(t.type==="MouseDown"||t.type==="MouseUp"||t.type==="MousePress")&&(t.mode=t.mode||"Object")})}var Ba=180/Math.PI;function H0(i){i.rotation=i.rotation.slice(0,3).map(t=>t*Ba)}function W0(i){H0(i),i.type==="Page"&&H0(i.camera),i.states?.forEach(e=>{e.rotation===void 0||e.rotation===null||(e.rotation=e.rotation.slice(0,3).map(r=>r*Ba))});let t=i.geometry;t&&t.type==="SphereGeometry"&&(t.thetaLength=(t.thetaLength??180)*Ba),t&&t.type==="TorusGeometry"&&(t.arc=t.arc*Ba),t&&t.type==="PathGeometry"&&(t.extrusion.angle*=Ba,t.extrusion.twist*=Ba),i.type==="Mesh"&&i.geometry.type==="TextGeometry"&&(i.geometry.text={textValue:i.geometry.text}),Array.isArray(vt(i.events))&&i.events?.forEach(e=>{(e.type==="MouseDown"||e.type==="MouseUp"||e.type==="MousePress"||e.type==="KeyDown"||e.type==="KeyUp"||e.type==="KeyPress"||e.type==="Collision"||e.type==="Trigger")&&(e.runMode=e.toggle?"Toggle":"Repeat")})}function dM(i){i.shared.variables=Ft({},de.prototype)}function pM(i){let t=vt(i.shared.variables);i.shared.variables=Ft(Object.entries(t??{}).map(([e,r],o)=>({fi:o,id:e,data:r})),Se.prototype)}var Do=118;function nf(i,t){t(i.data);for(let e of i.children)nf(e,t)}function fM(i){let t=i.schema??104;t!==Do&&(t<105&&(nf(i.asset,W0),i.schema=105),t<118&&(nf(i.asset,q0),i.schema=118))}function hM(i){i.shared.particles=Ft({},de.prototype),i.shared.lib&&(i.shared.lib.particles=no.defaultData().particles)}function mM(i){i.scene.objects.traverse((t,e)=>{e.type==="Particle"&&typeof e.renderMaterial.size=="number"&&Object.assign(e.renderMaterial,{size:[e.renderMaterial.size,e.renderMaterial.size]})})}function yM(i){i.scene.objects.traverse((t,e)=>{e.type==="Page"&&(e.postprocessing.depthOfField.focusDistance=100,e.postprocessing.depthOfField.focalLength=20,e.postprocessing.depthOfField.bokehScale=5)})}function gM(i){i.scene.objects.traverse((t,e)=>{Array.isArray(vt(e.events))!==!1&&e.events?.forEach(r=>{let o=r.runMode;r.type==="MouseDown"||r.type==="MouseUp"||r.type==="KeyDown"||r.type==="KeyUp"||r.type==="Collision"||r.type==="Trigger"?r.actions?.forEach(n=>{n.type==="Transition"&&(n.runMode=o??"Repeat"),(n.type==="Animation"||n.type==="SwitchCamera")&&(n.runMode=o==="Toggle"?"Toggle":"Normal")}):r.type==="MouseHover"||r.type==="MousePress"||r.type==="KeyPress"?r.actions?.forEach(n=>{(n.type==="Transition"||n.type==="Animation"||n.type==="SwitchCamera")&&(n.runMode="Toggle")}):r.type==="GameControl"?(delete r.actions,Object.keys(r.gameActions).forEach(a=>{r.gameActions[a]?.forEach(s=>{s.type==="Transition"&&(s.runMode="Repeat"),s.type==="Animation"&&(s.runMode="Normal")})})):r.type==="DragDrop"?(delete r.actions,r.dragDropActions?.drag?.forEach(n=>{(n.type==="Transition"||n.type==="Animation"||n.type==="SwitchCamera")&&(n.runMode="Toggle")}),r.dragDropActions?.drop?.forEach(n=>{(n.type==="Transition"||n.type==="Animation"||n.type==="SwitchCamera")&&(n.runMode="Toggle")})):r.type==="Resize"?(delete r.actions,r.breakpoints?.forEach(n=>{n.actions?.forEach(a=>{(a.type==="Transition"||a.type==="Animation"||a.type==="SwitchCamera")&&(a.runMode="Toggle")})})):r.type==="Start"?r.actions?.forEach(n=>{n.type==="Transition"&&(n.runMode="Once"),(n.type==="Animation"||n.type==="SwitchCamera")&&(n.runMode="Normal")}):r.type==="VariableChange"||r.type==="Scroll"?r.actions?.forEach(n=>{n.type==="Transition"&&(n.runMode="Repeat"),(n.type==="Animation"||n.type==="SwitchCamera")&&(n.runMode="Normal")}):r.type==="Conditional"&&(delete r.actions,r.inActions?.forEach(n=>{n.type==="Transition"&&(n.runMode="Repeat"),(n.type==="Animation"||n.type==="SwitchCamera")&&(n.runMode="Normal")}),r.outActions?.forEach(n=>{n.type==="Transition"&&(n.runMode="Repeat"),(n.type==="Animation"||n.type==="SwitchCamera")&&(n.runMode="Normal")}))})})}function xM(i){i.shared.userAPIs=Ft({},de.prototype),i.shared.userWebhooks=Ft({},de.prototype),i.shared.lib&&(i.shared.lib.userAPIs=no.defaultData().userAPIs,i.shared.lib.userWebhooks=no.defaultData().userWebhooks)}function bM(i){i.scene.publish.settings.videoStatic===void 0&&(i.scene.publish.settings.videoStatic=kr.defaultData.settings.videoStatic)}function q0(i){i.timelineAnimations=Ft({},de.prototype)}function Eu(i){let t=i.schema??0;if(t!==Do){console.warn("updating from ",t,"to ",Do),U0(i,t),t<100&&(i.scene.publish.joystickSizeAndXYOffset===void 0&&(i.scene.publish.joystickSizeAndXYOffset=kr.defaultData.joystickSizeAndXYOffset),i.schema=100),t<101&&(ai(i,k0),ni(i,k0),i.schema=101),t<102&&(cM(i),i.schema=102),t<104&&(i.shared.catelogs=new de,i.shared.lib=no.defaultData(),i.schema=104),t<105&&(dM(i),i.scene.objects.traverse((e,r)=>{W0(r)}),i.schema=105);for(let e of Object.values(i.shared.lib.components))fM(e);t<106&&(pM(i),i.schema=106),t<107&&(i.shared.lib.variables=no.defaultData().variables,i.schema=107),t<109&&(hM(i),i.schema=109),t<110&&(mM(i),i.schema=110),t<111&&(i.scene.objects.traverse((e,r)=>{uM(r)}),i.schema=111),t<112&&(yM(i),i.schema=112),t<113&&(gM(i),i.schema=113),t<114&&(i.scene.publish.settings.web.imageQuality===void 0&&(i.scene.publish.settings.web.imageQuality=70),i.schema=114),t<115&&(xM(i),i.schema=115),t<116&&(bM(i),i.schema=116),t<117&&(i.scene.publish.settings.web.pixelRatioMobile===void 0&&(i.scene.publish.settings.web.pixelRatioMobile=0),i.scene.publish.settings.web.pixelRatioDesktop===void 0&&(i.scene.publish.settings.web.pixelRatioDesktop=0),i.schema=117),t<118&&(i.shared.timelineAnimations=Ft({},de.prototype),i.scene.objects.traverse((e,r)=>{q0(r)}),i.schema=118)}}var Ra;(c=>{c.defaultData={schema:Do,scene:ii.defaultData,frames:new de().add("72fc2993-2da3-4b6b-96ac-2879db3a28bd",La.defaultData),shared:{...Hr.emptyData(),colors:Hr.defaultColors()}},c.emptyDataForImports=function(){let u=ii.emptyDataWithPage();return{schema:Do,scene:u,frames:new de().add("72fc2993-2da3-4b6b-96ac-2879db3a28bd",La.defaultData),shared:{...Hr.emptyData(),colors:Hr.defaultColors(),images:Hr.defaultImages()}}},c.emptyData=function(){return{schema:Do,scene:ii.emptyDataWithPage(),frames:new de().add("72fc2993-2da3-4b6b-96ac-2879db3a28bd",La.defaultData),shared:Hr.emptyData()}},c.clipboard2dData=function(){return{schema:Do,scene:ii.emptyData(),frames:new de,shared:Hr.emptyData()}},c.collabHelper={...cl,updateSchema(u){return(u.schema??0)<Do?Mi(u,Eu):(u.schema??0)-Do}};function n(u){let d=c.collabHelper.updateSchema(u);return typeof d=="number"?d===0?u:null:d.data}c.updateSchemaDirectly=n;function a(u){return{...u,shared:{...u.shared,lib:no.defaultData()}}}c.withoutLib=a;function s(u,d){let p=u.scene.objects.get(d);if(p&&p.data.type==="Component")return p;{let f=u.shared.lib.components[d];if(f)return f.asset}}c.getComponentData=s;function l(u){let d=Object.values(u.shared.userAPIs);for(let p of d){let f=p.headers;for(let h of f)if(h.data.key.toLowerCase()==="authorization"&&h.data.value!=="")return!0}return!1}c.hasSensitiveData=l})(Ra||(Ra={}));var Nu;(t=>t.emptyImage={data:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII=",name:"empty"})(Nu||(Nu={}));var $0;(t=>{function i(e){return!0}t.is=i})($0||($0={}));var Du;(r=>{r.defaultData={position:[0,0],scale:[1,1],rotation:0,shear:[0,0]};function t(o,n){return{position:n?.position??o.position,rotation:n?.rotation??o.rotation,scale:n?.scale??o.scale,shear:n?.shear??o.shear}}r.merge=t;function e(o,n){return vc({position:Ca.isEqual(o.position,n.position)?void 0:n.position,rotation:o.rotation===n.rotation?void 0:n.rotation,scale:Ca.isEqual(o.scale,n.scale)?void 0:n.scale,shear:o.shear&&n.shear&&Ca.isEqual(o.shear,n.shear)?void 0:n.shear})}r.diff=e})(Du||(Du={}));var af;(t=>t.defaultData={horizontalConstraint:0,verticalConstraint:0})(af||(af={}));var X0;(t=>t.defaultData={direction:"row",wrap:"unwrap",align:"top-left",gap:10,rowGap:10,autoGap:!1,autoRowGap:!1,leftPadding:8,rightPadding:8,topPadding:8,bottomPadding:8})(X0||(X0={}));var _u;(t=>t.defaultData={opacity:1,fill:{color:Re.fromHexAndA(Dt,1),enabled:!0},stroke:{color:Re.from0to1([0,0,0,1]),thickness:1,enabled:!1,mode:"inside"},layerBlur:{radius:2,enabled:!1},backgroundBlur:{radius:2,enabled:!1},dropShadow:{offset:[10,10],blurRadius:10,color:Re.from0to1([0,0,0,1]),enabled:!1,spread:0},innerShadow:{offset:[10,10],blurRadius:10,color:Re.from0to1([0,0,0,1]),enabled:!1,spread:0}})(_u||(_u={}));var Cn;(n=>{function i(a,s){return{name:s}}n.newEmpty=i;function t(a,s){if(s===void 0)return a;let l={...a},c=["width","height","cornerRadius"];for(let u of c)u in l&&u in s&&s[u]!==void 0&&Object.assign(l,{[u]:s[u]});return l}function e(a,s){if(s===void 0)return a;let l={...a};return"fill"in l&&"fill"in s&&s.fill!==void 0&&Object.assign(l,{fill:{...l.fill,...s.fill}}),"stroke"in l&&"stroke"in s&&s.stroke!==void 0&&Object.assign(l,{stroke:{...l.stroke,...s.stroke}}),"layerBlur"in l&&"layerBlur"in s&&s.layerBlur!==void 0&&Object.assign(l,{layerBlur:{...l.layerBlur,...s.layerBlur}}),"backgroundBlur"in l&&"backgroundBlur"in s&&s.backgroundBlur!==void 0&&Object.assign(l,{backgroundBlur:{...l.backgroundBlur,...s.backgroundBlur}}),"dropShadow"in l&&"dropShadow"in s&&s.dropShadow!==void 0&&Object.assign(l,{dropShadow:{...l.dropShadow,...s.dropShadow}}),"innerShadow"in l&&"innerShadow"in s&&s.innerShadow!==void 0&&Object.assign(l,{innerShadow:{...l.innerShadow,...s.innerShadow}}),l}function r(a,s){if(s===void 0)return a;let l={...a};return Object.assign(l,Du.merge(l,s)),l=t(l,s),l=e(l,s),l}n.patch=r;function o(a,s){let l,c=[];for(let[u,d]of Object.entries(s))u!=="name"&&(l===void 0&&(l={path:[],props:{},type:0},c.push(l)),l.props[u]=d);return c}n.toOps=o})(Cn||(Cn={}));var gl;(t=>t.defaultData={...Du.defaultData,...af.defaultData,states:new Se,events:new Se,visible:!0,raycastLock:!1})(gl||(gl={}));var Va;(t=>t.defaultData={...gl.defaultData,..._u.defaultData})(Va||(Va={}));var Ru;(t=>t.defaultData={cornerRadius:[0,0,0,0]})(Ru||(Ru={}));var sf;(t=>t.defaultData={...Va.defaultData,type:"ellipse2d",width:100,height:100,name:"Ellipse"})(sf||(sf={}));var za;(t=>t.defaultData={...Va.defaultData,...Ru.defaultData,type:"rectangle2d",width:100,height:100,name:"Rectangle"})(za||(za={}));var lf;(t=>t.defaultData={...Va.defaultData,type:"text2d",width:100,height:100,fontSize:12,lineHeight:1.2,letterSpacing:0,text:{textValue:"Hello world"},horizontalAlign:1,verticalAlign:1,textTransform:1,font:"Roboto_regular",name:"Text"})(lf||(lf={}));var cf;(t=>t.defaultData={...Va.defaultData,type:"path2d",path:"",name:"Path"})(cf||(cf={}));var Y0;(t=>{function i(e){return e.type==="ellipse2d"||e.type==="rectangle2d"||e.type==="text2d"||e.type==="vector2d"||e.type==="path2d"}t.is=i})(Y0||(Y0={}));var xl;(t=>t.defaultData={...gl.defaultData,name:"Group",type:"group2d"})(xl||(xl={}));var uf;(t=>t.defaultData=()=>({...gl.defaultData,...Ru.defaultData,..._u.defaultData,name:"Frame",type:"frame2d",clipped:!0,width:200,height:200,fill:{color:Re.fromHexAndA(4737101,1),enabled:!0},stroke:{color:Re.fromHexAndA(0,1),thickness:1,enabled:!1,mode:"inside"},backgroundBlur:{radius:2,enabled:!1},layerBlur:{radius:2,enabled:!1}}))(uf||(uf={}));var si;(n=>{function i(a){switch(a){case"rectangle2d":return{...za.defaultData};case"ellipse2d":return{...sf.defaultData};case"text2d":return{...lf.defaultData};case"vector2d":return{...za.defaultData};case"path2d":return{...cf.defaultData};case"frame2d":return{...uf.defaultData()};case"group2d":return{...xl.defaultData}}}n.defaultData=i;function t(a){return"width"in a&&"height"in a?[typeof a.width=="number"?a.width*.5:0,typeof a.height=="number"?a.height*.5:0]:[0,0]}n.getPivot=t;function e(a){return a.type==="rectangle2d"||a.type==="ellipse2d"||a.type==="text2d"||a.type==="frame2d"}n.isResizeable=e;function r(a){return a.type==="frame2d"&&a.autoLayout!==void 0}n.isAutoLayoutable=r;function o(a){return a.type==="rectangle2d"||a.type==="frame2d"}n.hasCorners=o})(si||(si={}));var Lu;(e=>(e.defaultData={name:"UI",type:"scene2d",objects:new ct},e.emptyData=function(){return{type:"scene2d",objects:new ct}}))(Lu||(Lu={}));var K0=require("three"),kt=class extends K0.Color{constructor(e,r,o,n){super(e,r,o);this.isColorA=!0;this.a=n}setRGBA(e,r,o,n){super.setRGB(e,r,o),this.a=n}copy(e){return super.copy(e),this.a="a"in e?e.a:1,this}clone(){return new this.constructor(this.r,this.g,this.b,this.a)}equals(e){return super.equals(e)&&this.a===e.a}setStyle(e,r="srgb"){let o;if(e==="transparent")return this.setRGBA(0,0,0,0),this;if(o=/^((?:rgb|hsl)a?)\(([^)]*)\)/.exec(e)){let n,a=o[1],s=o[2];switch(a){case"rgb":case"rgba":if(n=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(s))return this.a=a==="rgba"?parseFloat(n[4]):1,super.setStyle(e,r);break;case"hsl":case"hsla":if(n=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)%\s*,\s*(\d*\.?\d+)%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(s))return this.a=a==="hsla"?parseFloat(n[4]):1,super.setStyle(e,r);break}}return super.setStyle(e,r)}get x(){return this.r}get y(){return this.g}get z(){return this.b}get w(){return this.a}set x(e){this.r=e}set y(e){this.g=e}set z(e){this.b=e}set w(e){this.a=e}};var tt=require("three"),Ed=rl(Z0());var vM=.5*(Math.sqrt(3)-1),bl=(3-Math.sqrt(3))/6,SM=1/3,_o=1/6,i4=(Math.sqrt(5)-1)/4,n4=(5-Math.sqrt(5))/20,vl=i=>Math.floor(i)|0,J0=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]),pf=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 ex(i=Math.random){let t=rx(i),e=new Float64Array(t).map(o=>J0[o%12*2]),r=new Float64Array(t).map(o=>J0[o%12*2+1]);return function(n,a){let s=0,l=0,c=0,u=(n+a)*vM,d=vl(n+u),p=vl(a+u),f=(d+p)*bl,h=d-f,m=p-f,y=n-h,x=a-m,v,w;y>x?(v=1,w=0):(v=0,w=1);let O=y-v+bl,S=x-w+bl,T=y-1+2*bl,M=x-1+2*bl,g=d&255,D=p&255,E=.5-y*y-x*x;if(E>=0){let _=g+t[D],R=e[_],V=r[_];E*=E,s=E*E*(R*y+V*x)}let I=.5-O*O-S*S;if(I>=0){let _=g+v+t[D+w],R=e[_],V=r[_];I*=I,l=I*I*(R*O+V*S)}let N=.5-T*T-M*M;if(N>=0){let _=g+1+t[D+1],R=e[_],V=r[_];N*=N,c=N*N*(R*T+V*M)}return 70*(s+l+c)}}function tx(i=Math.random){let t=rx(i),e=new Float64Array(t).map(n=>pf[n%12*3]),r=new Float64Array(t).map(n=>pf[n%12*3+1]),o=new Float64Array(t).map(n=>pf[n%12*3+2]);return function(a,s,l){let c,u,d,p,f=(a+s+l)*SM,h=vl(a+f),m=vl(s+f),y=vl(l+f),x=(h+m+y)*_o,v=h-x,w=m-x,O=y-x,S=a-v,T=s-w,M=l-O,g,D,E,I,N,_;S>=T?T>=M?(g=1,D=0,E=0,I=1,N=1,_=0):S>=M?(g=1,D=0,E=0,I=1,N=0,_=1):(g=0,D=0,E=1,I=1,N=0,_=1):T<M?(g=0,D=0,E=1,I=0,N=1,_=1):S<M?(g=0,D=1,E=0,I=0,N=1,_=1):(g=0,D=1,E=0,I=1,N=1,_=0);let R=S-g+_o,V=T-D+_o,U=M-E+_o,B=S-I+2*_o,q=T-N+2*_o,j=M-_+2*_o,F=S-1+3*_o,H=T-1+3*_o,W=M-1+3*_o,ee=h&255,te=m&255,Y=y&255,re=.6-S*S-T*T-M*M;if(re<0)c=0;else{let $=ee+t[te+t[Y]];re*=re,c=re*re*(e[$]*S+r[$]*T+o[$]*M)}let K=.6-R*R-V*V-U*U;if(K<0)u=0;else{let $=ee+g+t[te+D+t[Y+E]];K*=K,u=K*K*(e[$]*R+r[$]*V+o[$]*U)}let Z=.6-B*B-q*q-j*j;if(Z<0)d=0;else{let $=ee+I+t[te+N+t[Y+_]];Z*=Z,d=Z*Z*(e[$]*B+r[$]*q+o[$]*j)}let Q=.6-F*F-H*H-W*W;if(Q<0)p=0;else{let $=ee+1+t[te+1+t[Y+1]];Q*=Q,p=Q*Q*(e[$]*F+r[$]*H+o[$]*W)}return 32*(c+u+d+p)}}function rx(i){let e=new Uint8Array(512);for(let r=0;r<512/2;r++)e[r]=r;for(let r=0;r<512/2-1;r++){let o=r+~~(i()*(256-r)),n=e[r];e[r]=e[o],e[o]=n}for(let r=256;r<512;r++)e[r]=e[r-256];return e}var ox=require("three"),ao=new ox.Triangle,Bu=class{constructor(t){this.weightAttribute=null;let e=t.geometry;if(!e.isBufferGeometry||e.attributes.position.itemSize!==3)throw new Error("THREE.MeshSurfaceSampler: Requires BufferGeometry triangle mesh.");e.index&&(e=e.toNonIndexed()),this.geometry=e,this.randomFunction=Math.random,this.positionAttribute=this.geometry.getAttribute("position"),this.distribution=null}build(){let t=this.positionAttribute,e=new Float32Array(t.count/3);for(let o=0;o<t.count;o+=3){let n=1;ao.a.fromBufferAttribute(t,o),ao.b.fromBufferAttribute(t,o+1),ao.c.fromBufferAttribute(t,o+2),n*=ao.getArea(),e[o/3]=n}this.distribution=new Float32Array(t.count/3);let r=0;for(let o=0;o<e.length;o++)r+=e[o],this.distribution[o]=r;return this}setRandomGenerator(t){return this.randomFunction=t,this}sample(t,e){if(this.distribution){let r=this.distribution[this.distribution.length-1],o=this.binarySearch(this.randomFunction()*r);return this.sampleFace(o,t,e)}}binarySearch(t){if(!this.distribution)return 0;let e=this.distribution,r=0,o=e.length-1,n=-1;for(;r<=o;){let a=Math.ceil((r+o)/2);if(a===0||e[a-1]<=t&&e[a]>t){n=a;break}else t<e[a]?o=a-1:r=a+1}return n}sampleFace(t,e,r){let o=this.randomFunction(),n=this.randomFunction();return o+n>1&&(o=1-o,n=1-n),ao.a.fromBufferAttribute(this.positionAttribute,t*3),ao.b.fromBufferAttribute(this.positionAttribute,t*3+1),ao.c.fromBufferAttribute(this.positionAttribute,t*3+2),e.set(0,0,0).addScaledVector(ao.a,o).addScaledVector(ao.b,n).addScaledVector(ao.c,1-(o+n)),ao.getNormal(r),this}};var sx=require("three");var Rr=require("three"),ax=rl(nx()),wM=new Rr.Matrix4,PM=new Rr.Matrix4,OM=new Rr.Matrix4,li;(t=>{function i(e){return e&&e.__isSPEObject}t.is=i})(li||(li={}));var Ga=i=>class extends i{constructor(){super(...arguments);this.previousModelViewMatrix=new Rr.Matrix4;this.copyPreviousMatrix=!0;this.hiddenMatrix=new Rr.Matrix4;this.matrixWorldRigid=new Rr.Matrix4;this.shearScale=new Rr.Matrix4;this.shearScaleInv=new Rr.Matrix4}get __isSPEObject(){return!0}isDescendantOf(r){r instanceof Rr.Object3D&&(r=r.uuid);let o=this;for(;o.parent;){if(o.parent.uuid===r)return!0;o=o.parent}return!1}updateMatrixWorld(r){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||r)&&(this.parent===null?this.matrixWorld.multiplyMatrices(this.hiddenMatrix,this.matrix):(this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.hiddenMatrix),this.matrixWorld.multiplyMatrices(this.matrixWorld,this.matrix)),this.matrixWorldNeedsUpdate=!1,r=!0);for(let o of this.children)o.updateMatrixWorld(r)}updateWorldMatrix(r,o){let n=this.parent;if(r&&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)),o)for(let a of this.children)a.updateWorldMatrix(!1,!0)}traverseChildren(r,o=0){for(let n of this.children)li.is(n)&&n.traverseObject(r,o+1)}traverseObject(r,o=0){if(r(this,o)!==!0)for(let a of this.children)li.is(a)&&a.traverseObject(r,o+1)}updateMatrixWorldSVD(){let r=this.matrixWorld.elements,o=[[r[0],r[4],r[8]],[r[1],r[5],r[9]],[r[2],r[6],r[10]]],{u:n,v:a,q:s}=(0,ax.SVD)(o),l=wM.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),c=PM.set(a[0][0],a[0][1],a[0][2],0,a[1][0],a[1][1],a[1][2],0,a[2][0],a[2][1],a[2][2],0,0,0,0,1),u=OM.copy(c).transpose();this.shearScale.makeScale(s[0],s[1],s[2]).multiply(u).premultiply(c),this.shearScaleInv.copy(this.shearScale).invert(),this.matrixWorldRigid.multiplyMatrices(l,u).copyPosition(this.matrixWorld),s.every(d=>Math.abs(s[0]-d)<.01)?this.hasNonUniformScale=!1:this.hasNonUniformScale=!0}attach(r,o){this.updateWorldMatrix(!0,!1);let n=new Rr.Matrix4().copy(this.matrixWorld).invert();return r.parent!==null&&(r.parent.updateWorldMatrix(!0,!1),n.multiply(r.parent.matrixWorld)),"hiddenMatrix"in r&&r.hiddenMatrix instanceof Rr.Matrix4?r.hiddenMatrix.premultiply(n):r.applyMatrix4(n),r.updateWorldMatrix(!1,!1),this.add(r),o!==void 0&&(this.children.pop(),this.children.splice(o,0,r)),this}copy(r,o=!1){return super.copy(r,o),this.hasNonUniformScale=r.hasNonUniformScale,this}onAfterRender(r,o,n,a,s,l){this.copyPreviousMatrix&&this.previousModelViewMatrix.copy(this.modelViewMatrix)}};var ff=class extends Ga(sx.Object3D){},TM=i=>i.type==="Mesh",so=class extends ff{constructor(e){super();this.object=e;this.matrixAutoUpdate=!1,this.hasNonUniformScale=e.hasNonUniformScale}raycast(e,r){}expand(){let e=0,r=this.object.entityChildren(e);for(;r;){let o=this.children[e];o?.object!==r&&(o&&this.remove(o),o=new so(r),this.add(o),this.children.splice(e,0,this.children.pop()),o.matrixWorldNeedsUpdate=!0,o.matrixAutoUpdate=!1,o.matrix=r.matrix,o.hiddenMatrix=r.hiddenMatrix),o.expand(),e+=1,r=this.object.entityChildren(e)}for(;this.children.length>e;)this.remove(this.children[e])}get visible(){return this.playModeVisible!==void 0?this.playModeVisible:this.object.visible||this.object.dataPatched.visible&&this.object.dataPatched.cloner?.hideBase===!0}set visible(e){}get castShadow(){return this.object.castShadow}set castShadow(e){}get receiveShadow(){return this.object.receiveShadow}set receiveShadow(e){}get isMesh(){return TM(this.object)}get isLight(){return this.object.isLight}get layers(){return this.object.layers}set layers(e){}get isCamera(){return!1}get geometry(){if(this.object.geometry)return this.object.geometry}get material(){if(this.object.material)return this.object.material}get morphTargetInfluences(){if(this.object.morphTargetInfluences)return this.object.morphTargetInfluences}set morphTargetInfluences(e){}};var ns=require("three");var od=require("three");var dr=require("three");var It=require("three"),An=new It.Vector3,Mn=new It.Vector3,Fa=new It.Matrix4,cx=[new It.Vector3(-1,1,1),new It.Vector3(-1,-1,1),new It.Vector3(1,-1,1),new It.Vector3(1,1,1),new It.Vector3(-1,1,-1),new It.Vector3(-1,-1,-1),new It.Vector3(1,-1,-1),new It.Vector3(1,1,-1)],CM=[[0,3],[1,2],[5,6],[4,7],[0,1],[3,2],[7,6],[4,5],[0,4],[1,5],[2,6],[3,7]],AM=[[0,2],[7,5],[4,1],[3,6],[4,3],[1,6]],lx=(i,t,e)=>{i.updateEntityBoxSize(An,Mn),Fa.copy(t).multiply(i.matrixWorld),Mn.x===0&&Mn.y===0&&Mn.z===0?e.push(new It.Vector3(An.x,An.y,An.z).applyMatrix4(Fa)):cx.forEach(r=>{e.push(r.clone().multiply(Mn).add(An).applyMatrix4(Fa))})},Sl=class extends It.Box3{constructor(){super(...arguments);this.matrix=new It.Matrix4;this.vertices=[];this.faces=[];this.edges=[];this.centerEdges=[]}copy(e){return super.copy(e),this.matrix.copy(e.matrix),this.vertices=e.vertices.map(r=>r.clone()),this.faces=e.faces.map(r=>r.clone()),this.edges=e.edges.map(r=>r.clone()),this.centerEdges=e.centerEdges.map(r=>r.clone()),this}setFromObjectSize(e,r=!1){e.updateWorldMatrix(!1,r),this.makeEmpty(),this.matrix.copy(e.matrixWorld);let o=new It.Matrix4().copy(e.matrixWorld).invert();return this.expandByObjectSize(e,o,r)}expandByObjectSize(e,r,o=!1){let n=[];return o===!0?e.traverseEntity(a=>{if(a.visible||a.cloner&&a.data.visible){if(!("geometry"in a)){n.push(new It.Vector3);return}lx(a,r,n)}}):lx(e,r,n),this.setFromPoints(n)}getCenter(e){return e=super.getCenter(e),e.applyMatrix4(this.matrix),e}getPositionToCenter(e){return e=super.getCenter(e),e.applyMatrix4(Fa.copy(this.matrix).setPosition(0,0,0)),e}computeVertices(){this.getSize(Mn).multiplyScalar(.5),this.getCenter(An),Fa.copy(this.matrix).setPosition(An),this.vertices=cx.map(e=>e.clone().multiply(Mn).applyMatrix4(Fa))}computeEdges(){this.vertices.length>0&&this.computeVertices(),this.edges=CM.map(([e,r])=>new It.Line3(this.vertices[e],this.vertices[r])),this.centerEdges=this.edges.map(e=>e.getCenter(new It.Vector3))}computeFaces(){this.vertices.length>0&&this.computeVertices(),this.faces=AM.map(([e,r])=>this.vertices[e].clone().add(this.vertices[r]).multiplyScalar(.5))}};var lo={Cloner:()=>{},changeEntityProptotype:()=>{},createEntity:()=>{}};var Qt=require("three"),mf=class extends Qt.CurvePath{constructor(){super()}getPoints(t=12){let e=[],r,o=this.getCurveLengths(),a=o[o.length-1]/o.length;for(let s=0,l=this.curves;s<l.length;s++){let c=l[s],u=s===0?o[s]:o[s]-o[s-1],d=Math.ceil(t*u/a),p=c.getPoints(d);for(let f=0;f<p.length;f++){let h=p[f];r&&r.equals(h)||(e.push(h),r=h)}}return this.autoClose&&e.length>1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}};var yf=.001;function gf(i,t,e){return t.clone().sub(i).cross(t.clone().sub(e)).length()<=yf}function hf(i,t){let e=new Qt.Vector3(...i.position),r=new Qt.Vector3(...i.controlNext.position),o=new Qt.Vector3(...t.controlPrevious.position),n=new Qt.Vector3(...t.position);return gf(e,r,n)&&gf(e,o,n)}function zu(i){let t=i.points.map(u=>new Qt.Vector3(...u.data.position)),e=[i.points[0]],r=new Qt.Vector3(...e[0].data.position);for(let u=0;u<i.points.length-1;u++)gf(r,t[u],t[u+1])||(e.push(i.points[u]),r=t[u]);e.push(i.points[i.points.length-1]);let o=i.isClosed,n=e.length-(o?0:1),a=e.length,s=[];for(let u=0;u<a;u++){let d=e[u].data,p=new Qt.Vector3(...d.position),f=new Qt.Vector3(...d.controlPrevious.position),h=new Qt.Vector3(...d.controlNext.position),m={position:p,baseRoundness:d.roundness,controlPrevious:f,controlNext:h};if(d.roundness===0||!i.isClosed&&(u===0||u===a-1)){s[u]={...m,removedLength:0};continue}let y=o&&u==0?a-1:u-1,x=o&&u==a-1?0:u+1,v=e[y].data,w=e[x].data,O=new Qt.Vector3(...v.position),S=new Qt.Vector3(...w.position),T=O.clone().sub(p).normalize(),M=S.clone().sub(p).normalize();Object.assign(m,{prevDir:T,nextDir:M});let g=hf(v,d),D=hf(d,w);if(!g||!D)s[u]={...m,removedLength:0};else{let E=T.clone().add(M).normalize(),I=E.clone().cross(T).length()/T.dot(E);s[u]={...m,tan:I,removedLength:d.roundness/I}}}for(let u=0;u<n;u++){let d=u,p=o&&u===a-1?0:u+1,f=s[d],h=s[p];if(f.removedLength!==0||h.removedLength!==0){let m=f.position.distanceTo(h.position);f.removedLength=Math.min(f.removedLength,m/2),h.removedLength=Math.min(h.removedLength,m/2)}}let l=[];for(let u=0;u<n;u++){let d=u,p=o&&u===a-1?0:u+1,f=s[d],h=s[p],m=null;if(!hf(e[d].data,e[p].data))f.position.distanceTo(h.position)>yf&&(m=new Qt.CubicBezierCurve3(f.position,f.controlNext,h.controlPrevious,h.position));else{let y=f.position.clone(),x=h.position.clone();(f.removedLength!==0||h.removedLength!==0)&&(f.nextDir&&y.add(f.nextDir.clone().setLength(f.removedLength)),h.prevDir&&x.add(h.prevDir.clone().setLength(h.removedLength))),y.distanceTo(x)>yf&&(m=new Qt.CubicBezierCurve3(y,y.clone().lerp(x,.3),x.clone().lerp(y,.3),x))}l[2*u+1]=m}for(let u=0;u<a;u++){let d=s[u];if(d.removedLength===0){l[2*u]=null;continue}let p=d.position,f=d.prevDir.clone().multiplyScalar(d.removedLength).add(p),h=d.nextDir.clone().multiplyScalar(d.removedLength).add(p),m=d.tan*d.removedLength,y=d.prevDir.clone().add(d.nextDir).normalize(),x=f.clone().lerp(h,.5),v=f.distanceTo(h)/2,w=y.clone().multiplyScalar(Math.sqrt(Math.pow(m,2)-Math.pow(v,2))).add(x),O=y.clone().multiplyScalar(-m).add(w),S=p.distanceTo(O)/p.distanceTo(x),T=d.prevDir.clone().multiplyScalar(S*p.distanceTo(f)).add(p),M=T.clone().lerp(O,2),g=f.clone().lerp(T,4/3),D=h.clone().lerp(M,4/3);l[2*u]=new Qt.CubicBezierCurve3(f,g,D,h)}let c=new mf;return l.forEach(u=>{u&&c.add(u)}),c}var ze;(t=>{function i(e){return e&&e.__isEntity}t.is=i})(ze||(ze={}));var ja=i=>ze.is(i),MM={type:"completeState",isfromEntity:!0},IM=["x","y","z"],xf=new dr.Vector3,EM=new dr.Vector3().set(0,1,0),Ua=i=>class extends Ga(i){constructor(){super(...arguments);this.raycastLock=!1;this.scaleLock=!1;this.disposed=!1;this.stateSelection=null;this.destroyedInAction=!1;this.instances=[];this.prevState=null;this.currentState=null;this.currentAnimationAction=null;this.reversibleToState=null;this.currentTransitionEvent=null;this.previousAction=null;this._singleBBox=new Sl;this._recursiveBBox=new Sl;this.singleBBoxNeedsUpdate=!0;this.recursiveBBoxNeedsUpdate=!0;this._needApplyPathSnapping=!0;this.attachedPaths=new Set}get __isEntity(){return!0}entityChildren(r){let o=this.children[r];if(ze.is(o))return o}entityChildrenCount(){let r=this.children.length;for(;r--;)if(ze.is(this.children[r]))return r+1;return 0}get isConcreteEntity(){return typeof this.identity=="string"}get isVirtualEntity(){return typeof this.identity!="string"}get isInstanceRoot(){return this.isConcreteEntity&&this.data.type==="Instance"}nearestInstanceSelfOrParent(){let r=this;for(;r.data.type!=="Instance";){let o=r.parent;if(ze.is(o))r=o;else return}return r}forInstancesRec(r){this.instances.forEach(o=>{o.disposed||r(o),o.forInstancesRec(r)})}super_Entity(r,o){typeof r=="string"&&(this.uuid=r),this.identity=r,this.data=o,this.matrixAutoUpdate=!1,this.dataPatched=this.data}changeSelectedState(r,o,n=!1){if(!(this.data.states.length===0&&!n)){for(let a of this.data.states)Tn.toOps(this.data,a.data).forEach(l=>{let c=wa.replaceProps(l,this.data);this.dataPatched=this.data,this.updateByPatchedOp(c,this.data,o)});if(r!==null){let a=this.data.states.data(r);a&&(this.dataPatched=Tn.patch(this.data,a),Tn.toOps(this.data,a).forEach(l=>{this.updateByPatchedOp(l,this.dataPatched,o)}))}n&&this.updateTransformState(this.dataPatched,o),this.stateSelection=r,this.updatePathSnapping(this.dataPatched.pathSnapping)}}get singleBBox(){return this.singleBBoxNeedsUpdate&&(this.singleBBoxNeedsUpdate=!1,this._singleBBox.setFromObjectSize(this,!1),this._singleBBox.computeVertices(),this._singleBBox.computeEdges(),this._singleBBox.computeFaces()),this._singleBBox}get recursiveBBox(){return this.recursiveBBoxNeedsUpdate&&(this.recursiveBBoxNeedsUpdate=!1,this._recursiveBBox.setFromObjectSize(this,!0),this._recursiveBBox.computeVertices(),this._recursiveBBox.computeEdges(),this._recursiveBBox.computeFaces()),this._recursiveBBox}updateEntityBoxSize(r,o){r.setScalar(0),o.setScalar(0)}resetBBoxNeedsUpdateSelf(){this.singleBBoxNeedsUpdate=!0,this.recursiveBBoxNeedsUpdate=!0}resetBBoxNeedsUpdate(){this.resetBBoxNeedsUpdateSelf(),this.traverseAncestors(r=>{ja(r)&&r.resetBBoxNeedsUpdateSelf()}),this.traverseEntity(r=>{r.resetBBoxNeedsUpdateSelf()})}find(r){let o;return this.traverseEntity(n=>{n.uuid===r&&(o=n)}),o}traverseSortNextHelper(){let r=this.parent;if(r){let o=r.children,n=o.indexOf(this)+1;if(ze.is(o[n]))return o[n];if(ze.is(r))return r.traverseSortNextHelper()}}sortNext(){let r=this.children;return this.children.length>0&&ze.is(this.children[0])?r[0]:this.traverseSortNextHelper()}goUp(r){let o=this;for(;r>0&&o!==null;)o=o.parent,r-=1;return o}hasAnccestorOrSelf(r){return this===r||this.hasAnccestor(r)}hasAnccestor(r){let o=this.parent;for(;o;){if(r===o)return!0;o=o.parent}return!1}countToAccestor(r){let o=0,n=this;for(;n!==r;){if(n===null)return-1;n=n.parent,o+=1}return o}forEachEntity(r){for(let o of this.children)ja(o)&&r(o)}traverseEntityAncestors(r){this.traverseAncestors(o=>{ze.is(o)&&r(o)})}traverseConcreteEntity(r,o=0){if(r(this,o)!==!0)for(let a of this.children)ja(a)&&a.isConcreteEntity&&a.traverseEntity(r,o+1)}traverseEntity(r,o=0){if(r(this,o)!==!0)for(let a of this.children)ja(a)&&a.traverseEntity(r,o+1)}traverseVisibleEntity(r){r(this);for(let o of this.children)ja(o)&&o.visible&&o.traverseVisibleEntity(r)}updateMatrix(){super.updateMatrix(),this.cloner&&this.cloner.onObjUpdateMatrix(),this.dispatchEvent({type:"updateMatrix"})}updateMatrixWorld(r){super.updateMatrixWorld(r),this.dispatchEvent({type:"updateMatrixWorld"})}copy(r,o=!1){return super.copy(r,o),this.dataPatched=r.dataPatched,this.raycastLock=r.raycastLock,this.scaleLock=r.scaleLock,this.hiddenMatrix.copy(r.hiddenMatrix),this}hasEntityChild(){return this.children.some(r=>ja(r))}isAncestorOf(r){if(this.uuid===r)return!1;let o=!1;return this.traverseEntity(n=>{n.uuid===r&&(o=!0)}),o}toObjectTransformState(r=[]){this.updateWorldMatrix(!0,!1);let o={position:this.position.toArray(),rotation:[this.rotation.x*dr.MathUtils.RAD2DEG,this.rotation.y*dr.MathUtils.RAD2DEG,this.rotation.z*dr.MathUtils.RAD2DEG],scale:this.scale.toArray(),hiddenMatrix:this.hiddenMatrix.toArray()};return ga(o,r)}getTransformValues(r,o,n){return o[r].map((a,s)=>n?.shared.getVariable(a,[this.uuid,r,IM[s]])??a)}updateTransformState(r,o){let n=!1;return r.position&&(this.position.fromArray(this.getTransformValues("position",r,o)),n=!0),r.rotation&&(xf.fromArray(this.getTransformValues("rotation",r,o)).multiplyScalar(dr.MathUtils.DEG2RAD),this.rotation.setFromVector3(xf),n=!0),r.scale&&(this.scale.fromArray(this.getTransformValues("scale",r,o)),n=!0),r.hiddenMatrix!==void 0&&(n=!0,this.hiddenMatrix.fromArray(r.hiddenMatrix??_i.identity)),n&&(this.updateMatrix(),this.resetBBoxNeedsUpdate(),this.invalidateClonerTransform(this),this.traverseEntityAncestors(a=>{a.invalidateClonerTransform(this)})),r.position&&r.rotation&&r.scale&&r.hiddenMatrix!==void 0&&this.updateWorldMatrix(!1,!0),n}onVariableUpdate(r=!1){if(r){this.resetBBoxNeedsUpdate();return}this.updateMatrix(),this.resetBBoxNeedsUpdate(),this.invalidateClonerTransform(this),this.traverseEntityAncestors(o=>{o.invalidateClonerTransform(this)})}dispose(){this.disposed=!0,this.cloner&&(this.cloner.removeFromParent(),this.cloner=void 0)}disposeChildrenRecursively(){for(let r of this.children)ze.is(r)&&r.disposeRecursively()}disposeRecursively(){this.dispose(),this.children.forEach(r=>{ze.is(r)&&r.disposeRecursively()})}toState(r=[]){let o={name:this.name,visible:this.visible,raycastLock:this.raycastLock,...this.toObjectTransformState(r)};return ga(o,r)}updateByObjUpdateOp(r,o){r!==void 0&&this.updateByOp({type:0,props:r,path:[]},{...this.data,...r},o,!1)}updateByOp(r,o,n,a){let s=this.data;this.data=o;let l=r,c=je(r.path,["states","*"]);if(c!==null){if(r.type===0){let[u]=c;if(this?.stateSelection===u){let d={...r.props};if(delete d.name,Object.values(r.props).some(p=>p===void 0)){let p=this.data;if(p!==void 0){let f=ut.zoom(p,r.path.slice(2));if(f)for(let h in r.props)r.props[h]===void 0&&h in f&&(d[h]=f[h])}}l={...r,props:d,path:r.path.slice(2)}}}}else if(r.type===0){let u=this.stateSelection?this.data.states.data(this.stateSelection):void 0;if(u!==void 0){if(r.props.name!==void 0&&u.name){let{name:p,...f}=u;u=f}if(r.props.material!==void 0&&"material"in u){let{material:p,...f}=u;u=f}let d=ut.removeOverridden(r.path,r.props,u);l={...r,props:d}}}if(this.updateByPatchedOpBase(l,Tn.patch(this.data,this.stateSelection?this.data.states.data(this.stateSelection):void 0),n),je(r.path,["overrides"])){let u=[],d=[...r.path];for(u.push(d[1]),d.splice(0,2);d.length>0&&d[0]==="descendants";)u.push(d[1]),d.splice(0,2);if(u[u.length-1]===void 0){if(r.type===0)for(let p of Object.keys(r.props)){u[u.length-1]=p;let f=n.scene.findInstance([this.uuid,...u]);f&&(f.overrideData=r.props[p],f.updateState(Oo.apply(f.component.data,f.overrideData),n))}}else{let p=n.scene.findInstance([this.uuid,...u]);if(p){let f=ut.zoom(p.component.data,d);if(r={...r,path:d},r.type===0){let h=r.props;if(f)for(let[m,y]of Object.entries(r.props))y===void 0&&(h===r.props&&(h={...r.props}),h[m]=f[m]);r={...r,props:h}}p.overrideData=Da.resolve(o.overrides,u),p.updateByOp(r,bt.applySimple(p.data,r),n,!1)}}}else if(this.instances.length>0){let u;if(r.path.length===0&&r.type===0){let d;for(let p of No.rootOverrideProps)p in r.props&&(d===void 0&&(d={}),d[p]=r.props[p]);d&&(u={...r,props:d})}else for(let d of No.rootOverrideProps)if(je(r.path,[d])){u=r;break}u!==void 0&&this.instances.forEach(d=>{if(d.isInstanceRoot){let p=Oo.filterOp(d.overrideData,u);p&&d.updateByOp(p,bt.applySimple(d.data,p),n,!0)}}),this.instances.forEach(d=>{if(!d.isInstanceRoot){let p=Oo.filterOp(d.overrideData,r);if(p){let f;s===d.data&&r===p?f=o:f=bt.applySimple(d.data,p),d.updateByOp(p,f,n,!0)}}})}}updateByPatchedOpBase(r,o,n){if(this.dataPatched=o,r.path.length===0&&r.type===0)r.props.type!==void 0&&!io.is(r.props.type)&&lo.changeEntityProptotype(this,o,n);else if(r.path.length===1&&r.path[0]==="geometry"&&r.type===0&&"type"in r.props){lo.changeEntityProptotype(this,o,n);for(let a of this.children)ze.is(a)&&a.updateVisible(n.scene)}this.updateByPatchedOp(r,o,n)}updateByPatchedOp(r,o,n){if(r.path.length===0&&r.type===0?this.updateState(r.props,n):r.type===0&&("resolutionLevel"in r.props||"useChildrenColors"in r.props)&&this.updateState(o,n),r.path[0]==="morphTargetInfluences"&&r.type===0){let s=o.morphTargetInfluences.get(r.path[1])?.data.name;s&&this.updateMorphInfluences(s,n.shared.getVariable(r.props.value,[this.uuid,"morphTargetInfluences",s]))}if(je(r.path,["pathSnapping"])!==null&&this.updatePathSnapping(o.pathSnapping),je(r.path,["cloner"])!==null){let a=bt.drop(r,1);a.path.length===0&&a.type===0&&a.props.disabled===!0?this.setFromClonerState(null,n):this.cloner?this.cloner.updateState(o.cloner,n.scene):(this.setFromClonerState(o.cloner,n),this.expandCloner(n.scene)),this.updateVisible(n.scene)}}updatePathSnapping(r=this.dataPatched.pathSnapping){this._updatedPathSnapping=r,this._needApplyPathSnapping=!0}get updatedPathSnapping(){return this._updatedPathSnapping}applyPathSnapping(r){let o=this._updatedPathSnapping?.pathId??this.dataPatched.pathSnapping.pathId,n=this._updatedPathSnapping?.slide??this.dataPatched.pathSnapping.slide??0,a=this._updatedPathSnapping?.offset??this.dataPatched.pathSnapping.offset??0,s=this._updatedPathSnapping?.orientation??this.dataPatched.pathSnapping.orientation;if(o===null)return;let l=r.find(o);if(!l||this._needApplyPathSnapping===!1)return;this._needApplyPathSnapping=!1;let c=l.data;if(c.geometry.path.points.length<=1)return;let u=zu(c.geometry.path),d=(n+a)%1;n+a===1&&d===0&&(d=1);let p=null;try{p=u.curves.length?u.getPointAt(d):null}catch(y){!1&&(console.warn(`The aligned path on ${this.name} is invalid. (${l.name})`),console.error(y))}if(p===null)return;let f=this.parent?this.parent?.matrixWorld:new dr.Matrix4;l.updateMatrixWorld();let h=new dr.Matrix4().multiplyMatrices(f.clone().invert(),l.matrixWorld);p.applyMatrix4(h);let m={position:p.toArray(),rotation:c.rotation};if(s==="tangential"){let y=new dr.Matrix4().extractRotation(l.matrixWorld),x=u.getTangentAt(d).applyMatrix4(y).add(p),v=new dr.Matrix4().lookAt(p,x,EM),w=xf.setFromEuler(new dr.Euler().setFromRotationMatrix(v)).multiplyScalar(dr.MathUtils.RAD2DEG);m={...m,rotation:w.toArray()}}this.updateTransformState(m),this.traverseEntity(y=>{y._cameraType&&y.dispatchEvent(MM)})}updateVisible(r){if(this.visible=this.dataPatched.visible&&(!this.dataPatched.cloner||(this.dataPatched.cloner.disabled??!1)||this.dataPatched.cloner?.hideBase!==!0),!r)return;let o=!1;this.traverseEntity(n=>{if(n.data.type==="Splat")return o=!0,!0}),o&&r.reloadSplats()}updateState_Entity(r,o){r.name!==void 0&&(this.name=r.name),r.raycastLock!==void 0&&(this.raycastLock=r.raycastLock),r.visible!==void 0&&(this.updateVisible(o?.scene),this.resetBBoxNeedsUpdate()),o&&"cloner"in r&&r.cloner!==void 0&&(this.setFromClonerState(r.cloner,o),this.updateVisible(o.scene)),this.updateTransformState(r,o)}get attachedSurfaceCloners(){return this.children.filter(r=>r instanceof lo.Cloner&&r.parameters.type==="toObject")}setFromClonerState(r,o){this.disposed||(r===null||r.disabled?(this.cloner&&this.cloner.removeFromParent(),this.cloner=void 0):this.cloner===void 0?(this.cloner=new lo.Cloner(this,r),o.scene.addPendingExpandCloner(this)):this.cloner.updateState(r,o.scene))}expandCloner(r){!this.disposed&&this.cloner&&this.cloner.expandClones(r)}invalidateClonerTransform(r){this.cloner&&this.cloner.invalidateTransform(r)}requestRender(){this.dispatchEvent({type:"requestRender"})}};var Fi=require("three");var st=require("three"),dx=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=i.parameters?.radiusTop,r=i.parameters?.radiusBottom,o=Object.assign({},t?.parameters??{width:100,radialSegments:64,heightSegments:1,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadius:8,cornerSegments:8,hollow:0},i.parameters);o.thetaLength=st.MathUtils.clamp(o.thetaLength,0,360);let n=o.width/2,a=o.radiusTop??n,s=o.radiusBottom??n;if(a===s?(a=n,s=n):a>s?(a=n,s=s*n/a):(a=a*n/s,s=n),o.shapeBlendNode){a=e??n,s=r??n;let l=Math.max(a,s)*2;o.width=l,o.depth=l}return{parameters:Object.assign(o,{width:Math.abs(o.width),height:Math.abs(o.height??o.width),depth:Math.abs(o.depth??o.width),radiusTop:a,radiusBottom:s})}}static build(i){let{width:t,depth:e,height:r,radialSegments:o,heightSegments:n,openEnded:a,thetaStart:s,thetaLength:l,radiusTop:c,radiusBottom:u,cornerRadius:d,cornerSegments:p,hollow:f}=i.parameters,h;return l===0?(h=new st.BufferGeometry,h.setAttribute("position",new st.Float32BufferAttribute([],3))):d||f?h=new wl(c,u,r,o,n,a,s,l*Math.PI/180,d,d,p,f):h=new st.CylinderGeometry(c,u,r,o,n,a,s,l*Math.PI/180),h.scale(1,1,e/t),Object.assign(h,{userData:{...i,type:"CylinderGeometry"}})}};function Gi(i,t,e){e.x=i.x*t.x,e.y=i.y,e.z=i.x*t.y}function ux(i){return new st.Vector2(i.y,-i.x)}var wl=class extends st.BufferGeometry{constructor(t,e,r,o,n,a,s,l,c,u,d,p,f=!1){super(),this.type="RoundedCylinderBufferGeometry",t=t!==void 0?t:1,e=e!==void 0?e:1,r=r||1,o=Math.floor(o)||8,n=Math.floor(n)||1,a=a!==void 0?a:!1,s=s!==void 0?s:0,l=l!==void 0?l:Math.PI*2,a&&(c=0,u=0);let h=[],m=[],y=[],x=[],v=0,w=r/2,O=new st.Vector3,S=new st.Vector3;f&&t==0&&(t=c),f&&e==0&&(e=u);let T=new st.Vector2(t,w),M=new st.Vector2(e,-w),g=null,D=null,E=null,I=null,N=T.clone().sub(M),_=0,R=0,V=0;p>0&&(_=Math.min(t,e)*(1-p),R=t-_,V=e-_);let U=T.clone();U.x-=_;let B=Math.PI-N.angle(),q=N.angle(),j=Math.tan(q/2),F=Math.tan(B/2),H=j+F,W=p?H:F,ee=p?H:j;if(c=Math.min(c,(t-R)/W,N.length()/H),u=Math.min(u,(e-V)/ee,N.length()/H),c>0){let Q=c/j;g=T.clone().sub(new st.Vector2(Q,c)),p&&(E=g.clone(),E.x-=_-H*c),T.sub(N.clone().setLength(Q))}if(u>0){let Q=u/F;D=M.clone().sub(new st.Vector2(Q,-u)),M.add(N.clone().setLength(Q)),p&&(I=D.clone(),I.x-=_-H*u,U.sub(N.clone().setLength(Q)))}N=T.clone().sub(M);let te=N.length()<.5,Y=[];for(let Q=0;Q<=o;Q++){let $=[],pe=Q/o,le=pe*l+s,ie=new st.Vector2(Math.sin(le),Math.cos(le));I&&D?(re($,pe,ie,B,u,I,-1,!0),re($,pe,ie,q,u,D,-1,!1)):D?(K($,ie,D.x,0,-1),re($,pe,ie,q,u,D,-1,!1)):a||K($,ie,e,V,-1);let ue=ux(N).normalize();if(Gi(ue,ie,O),!te)for(let ae=0;ae<=n;ae++){let ge=ae/n,me=N.clone().multiplyScalar(ge).add(M);Gi(me,ie,S),m.push(S.x,S.y,S.z),y.push(O.x,O.y,O.z),x.push(pe,.5+S.y/r),$.push(v++)}if(E&&g?(re($,pe,ie,B,c,g,1,!1),re($,pe,ie,q,c,E,1,!0)):g?(re($,pe,ie,B,c,g,1,!1),K($,ie,g.x,0,1)):a||K($,ie,t,R,1),p&&!te){let ae=ux(N).multiplyScalar(-1).normalize();Gi(ae,ie,O);for(let ge=0;ge<=n;ge++){let me=ge/n,ye=N.clone().multiplyScalar(-me).add(U);Gi(ye,ie,S),m.push(S.x,S.y,S.z),y.push(O.x,O.y,O.z),x.push(pe,.5+S.y/r),$.push(v++)}}p&&!a&&$.push($[0]),Y.push($)}for(let Q=0;Q<Y.length-1;Q++)for(let $=0;$<Y[0].length-1;$++){if(a&&p&&$==n)continue;let pe=Y[Q][$],le=Y[Q+1][$],ie=Y[Q+1][$+1],ue=Y[Q][$+1],ae=m[ie*3+0],ge=m[ie*3+2];h.push(pe,le,ue),(ae!=0||ge!=0)&&h.push(le,ie,ue)}l<Math.PI*2&&(Z(-1,Y[0],s),Z(1,Y[Y.length-1],s+l)),this.setIndex(h),this.setAttribute("position",new st.Float32BufferAttribute(m,3)),this.setAttribute("normal",new st.Float32BufferAttribute(y,3)),this.setAttribute("uv",new st.Float32BufferAttribute(x,2));function re(Q,$,pe,le,ie,ue,ae,ge){for(let me=0;me<d+1;me++){let ye=me/d,ve=ae<0?ye:1-ye;ge&&(ve-=1),ve*=le;let xe=new st.Vector2(Math.sin(ve),Math.cos(ve)*ae),C=xe.clone().multiplyScalar(ie).add(ue);Gi(C,pe,S),m.push(S.x,S.y,S.z),Gi(xe,pe,O),y.push(O.x,O.y,O.z),x.push($,.5+S.y/r),Q.push(v++)}}function K(Q,$,pe,le,ie){let ue=new st.Vector3,ae=new st.Vector2,ge=[pe,le];ie<0&&ge.reverse();for(let me of ge)ae.set(me,w*ie),Gi(ae,$,ue),m.push(ue.x,ue.y,ue.z),y.push(0,ie,0),x.push(.5,.5),Q.push(v++)}function Z(Q,$,pe){let le=new st.Vector2(Math.sin(pe),Math.cos(pe)),ie=new st.Vector2(-Math.cos(pe),Math.sin(pe)),ue=new st.Vector3,ae=Q<0?(ye,ve,xe)=>h.push(ye,ve,xe):(ye,ve,xe)=>h.push(ye,xe,ve),ge=new st.Vector2((t+e+R+V)/4,0);Gi(ge,le,ue),m.push(ue.x,ue.y,ue.z),y.push(ie.x,0,ie.y),x.push(.5,.5);let me=v++;for(let ye of $){let ve=m.slice(ye*3,ye*3+3);m.push(...ve),y.push(ie.x,0,ie.y);let xe=x.slice(ye*2,ye*2+2);x.push(...xe),v++}for(let ye=me+1;ye<v-1;ye++)ae(me,ye,ye+1);ae(me,v-1,me+1)}}};var px=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:32,heightSegments:8,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadiusTop:8,cornerRadiusBottom:8,cornerSegments:8},i.parameters);return e.thetaLength=Fi.MathUtils.clamp(e.thetaLength,0,360),{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(i){let{width:t,depth:e,height:r,radialSegments:o,heightSegments:n,openEnded:a,thetaStart:s,thetaLength:l,cornerRadiusTop:c,cornerRadiusBottom:u,cornerSegments:d}=i.parameters,p;return l===0?(p=new Fi.BufferGeometry,p.setAttribute("position",new Fi.Float32BufferAttribute([],3))):c>0||u>0||l<360?p=new wl(0,t/2,r,o,n,a,s,l*Math.PI/180,c,u,d,0,!0):p=new Fi.ConeGeometry(t/2,r,o,n,a),p.scale(1,1,e/t),Object.assign(p,{userData:{...i,type:"ConeGeometry"}})}};var wr=require("three"),fx=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,widthSegments:1,heightSegments:1,depthSegments:1,cornerRadius:8,cornerSegments:8},i.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(i){let{width:t,height:e,depth:r,widthSegments:o,heightSegments:n,depthSegments:a,cornerRadius:s,cornerSegments:l}=i.parameters,c;return s===0?c=new wr.BoxGeometry(t,e,r,o,n,a):c=new vf(t,e,r,o,n,a,s,l),Object.assign(c,{userData:{...i,type:"CubeGeometry"}})}},bf=Math.PI/2,vf=class extends wr.BufferGeometry{constructor(t=1,e=1,r=1,o=1,n=1,a=1,s=0,l=4){super(),this.type="BoxGeometry",o=Math.floor(o),n=Math.floor(n),a=Math.floor(a),l=Math.floor(l),s=Math.min(s,t/2,e/2,r/2);let c=[],u=[],d=[],p=[],f=0;h("z","y","x",-1,-1,r,e,t,a,n),h("z","y","x",1,-1,r,e,-t,a,n),h("x","z","y",1,1,t,r,e,o,a),h("x","z","y",1,-1,t,r,-e,o,a),h("x","y","z",1,-1,t,e,r,o,n),h("x","y","z",-1,-1,t,e,-r,o,n),s>0&&(m("z","y","x",-1,-1,1,r,e,t,a),m("z","y","x",1,-1,-1,r,e,t,a),m("z","y","x",-1,1,-1,r,e,t,a),m("z","y","x",1,1,1,r,e,t,a),m("x","y","z",-1,-1,-1,t,e,r,o),m("x","y","z",1,-1,1,t,e,r,o),m("x","y","z",-1,1,1,t,e,r,o),m("x","y","z",1,1,-1,t,e,r,o),m("y","x","z",-1,-1,1,e,t,r,n),m("y","x","z",1,-1,-1,e,t,r,n),m("y","x","z",1,1,1,e,t,r,n),m("y","x","z",-1,1,-1,e,t,r,n),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(c),this.setAttribute("position",new wr.Float32BufferAttribute(u,3)),this.setAttribute("normal",new wr.Float32BufferAttribute(d,3)),this.setAttribute("uv",new wr.Float32BufferAttribute(p,2));function h(x,v,w,O,S,T,M,g,D,E){let I=(T-2*s)/D,N=(M-2*s)/E,_=T/2-s,R=M/2-s,V=g/2,U=D+1,B=E+1,q=0,j=new wr.Vector3;for(let F=0;F<B;F++){let H=F*N-R;for(let W=0;W<U;W++){let ee=W*I-_;j[x]=ee*O,j[v]=H*S,j[w]=V,u.push(j.x,j.y,j.z),j[x]=0,j[v]=0,j[w]=g>0?1:-1,d.push(j.x,j.y,j.z),p.push(W/D),p.push(1-F/E),q+=1}}for(let F=0;F<E;F++)for(let H=0;H<D;H++){let W=f+H+U*F,ee=f+H+U*(F+1),te=f+(H+1)+U*(F+1),Y=f+(H+1)+U*F;c.push(W,ee,Y),c.push(ee,te,Y)}f+=q}function m(x,v,w,O,S,T,M,g,D,E){let I=(M-2*s)/E,N=M/2-s,_=g/2-s,R=D/2,V=E+1,U=0,B=new wr.Vector3,q=new wr.Vector3;for(let j=0;j<l+1;j++){let F=j/l*bf,H=Math.sin(F)*s,W=(1-Math.cos(F))*s,ee=Math.sin(F),te=Math.cos(F);B[v]=(_+H)*S,B[w]=(R-W)*T,q[x]=0,q[v]=ee*Math.sign(B[v]),q[w]=te*Math.sign(B[w]);for(let Y=0;Y<V;Y++){let re=Y*I-N;B[x]=re*O,u.push(B.x,B.y,B.z),d.push(q.x,q.y,q.z),p.push(Y/E),p.push(0),U+=1}}for(let j=0;j<l;j++)for(let F=0;F<E;F++){let H=f+F+V*j,W=f+F+V*(j+1),ee=f+(F+1)+V*(j+1),te=f+(F+1)+V*j;c.push(H,W,te),c.push(W,ee,te)}f+=U}function y(x,v,w){let O=new wr.Vector3,S=new wr.Vector3(t/2,e/2,r/2);S.subScalar(s);let T=[],M=x*v*w>0?(D,E,I)=>c.push(D,E,I):(D,E,I)=>c.push(D,I,E);for(let D=0;D<=l;D++){let E=[],I=bf*(1-D/l),N=Math.cos(I),_=Math.sin(I),R=0;for(let V=0;V<=D;V++){let U=Math.cos(R),B=Math.sin(R);O.x=N*U,O.y=_,O.z=N*B;let q=S.clone().addScaledVector(O,s);u.push(x*q.x,v*q.y,w*q.z),d.push(x*O.x,v*O.y,w*O.z),p.push(0,0),E.push(f++),R+=bf/D}T.push(E)}let g=T.length-1;for(let D=0;D<g;D++){let E=T[D],I=T[D+1],N=E.length-1;M(E[0],I[1],I[0]);for(let _=1;_<=N;_++)M(E[_-1],E[_],I[_]),M(E[_],I[_+1],I[_])}}}};var Et=require("three"),ji=class extends Et.BufferGeometry{constructor(t=[],e=[],r="",o=1,n=.2,a=4){super(),this.type="PolyhedronGeometryRound";let s=[],l=[],c=[];u(),d(),this.setAttribute("position",new Et.Float32BufferAttribute(s,3)),this.setAttribute("normal",new Et.Float32BufferAttribute(c,3)),this.setAttribute("uv",new Et.Float32BufferAttribute(l,2));return;function u(){n=Math.min(1-1e-5,n),n==0&&(a=0);let f={IcosahedronGeometry:5,DodecahedronGeometry:3,HexahedronGeometry:3,OctahedronGeometry:4,TetrahedronGeometry:3}[r],h=new Et.Vector3,m=h.clone(),y=new Et.Triangle,x=n*o,v=o-x,w=a+1,O=new Et.Vector3,S=(j,F)=>O.subVectors(j,F).normalize(),T=(j,F)=>Array(j).fill(void 0).map(F),M=T(t.length/3,(j,F)=>new Et.Vector3().fromArray(t,F*3).setLength(o)),g=[],D=1e6;for(let j=0;j<M.length;j++){let F=M[j],H=[],W,ee,te,Y=1e10,re=-1;for(;(re=e.indexOf(j,re+1))!=-1;){let $=re-re%3;W=e[$+(re+1)%3],ee=e[$+(re+2)%3],te=F.distanceToSquared(M[W]),Y=Math.min(Y,te),H.push([W,ee,te])}Y+=1e-6;let K=[],Z=0,Q=H.length;for(let $=0;$<Q;$++){[W,ee,te]=H[Z];let pe=g[W]?.includes(j)==!0;te<=Y&&K.push(W+ +pe*D),Z=H.findIndex(le=>le[0]==ee)}g.push(K)}let E=[];{let j=0,F=0,H,W,ee=f==3;for(let te=0;te<=a;te++){H=te*(te+1)/2,W=(te+1)*(te+2)/2;for(let Y=0;Y<a-te;Y++)[j,F]=[H+Y+te+2,W+Y+te+3],E.push(H,W,...ee?[F,H]:[j,W],F,j),[H,W]=[j,F];E.push(H,W,H+a+2)}}let I=h.clone(),N=h.clone(),_=h.clone(),R=h.clone(),V=h.clone(),U=[],B=T(M.length,()=>T(f,()=>h.clone()));for(let j=0;j<M.length;j++){h.copy(M[j]).normalize(),I.copy(h).multiplyScalar(v);let F=g[j];for(let K=0;K<F.length;K++){let Z=F[K],Q=F[(K+1)%f];y.setFromPointsAndIndices(M,j,Z%D,Q%D),y.b.sub(y.a).setLength(1e10).add(y.a),y.c.sub(y.a).setLength(1e10).add(y.a),y.closestPointToPoint(I,B[j][K])}let H=[],W=[],ee=[],te=new Et.Vector3;a==0&&[...B[j]].reduce((K,Z)=>K.add(Z),te).multiplyScalar(1/f);for(let K=0;K<f;K++){let Z=[],Q=(K-1+f)%f,$=B[j][Q],pe=B[j][K];h.copy($).sub(I),m.copy(pe).sub(I);let le=I.angleTo(h),ie=h.angleTo(m),ue=Math.cos(le)*x;a==0?N.copy(te):N.copy(I).setLength(v+ue),W.push(ue);let ae=[N,$,pe];for(let ge=0;ge<2;ge++){let me=ae[ge],ye=ae[ge+1];R.subVectors(me,I),V.subVectors(ye,I),_.crossVectors(R,V).normalize();for(let ve=0;ve<w;ve++){let xe=[le,ie][ge]*ve/w;h.copy(R).applyAxisAngle(_,xe).add(I),H.push(h.clone()),ge&&(S(h,I),Z.push([ve==0?me:h.clone(),O.clone()]))}ge&&(S(ye,I),Z.push([ye,O.clone()]))}ee.push(Z)}U.push(ee);let Y=2*w,re=2;for(let K=0;K<f;K++){let Z=Y*K,Q=Y*((K+1)%f),$=[H[Z]];for(let le=1;le<w;le++){R=H[Z+le],V=H[Q+le],$.push(R);for(let ie=1,ue=le-re+1;ie<=ue;ie++)h.lerpVectors(R,V,ie/(ue+1)),h.sub(I).setLength(W[K]).add(I),$.push(h.clone());$.push(V)}for(let le=0;le<w;le++)$.push(H[le+w+Z]);$.push(H[Q+w]);let pe=E.map(le=>$[le]);s.push(...pe.map(le=>[le.x,le.y,le.z]).flat()),c.push(...pe.map(le=>(S(le,I),[O.x,O.y,O.z])).flat())}}let q=[];for(let j=0;j<g.length;j++)for(let F=0;F<f;F++){let H=g[j][F];if(H<D){let W=g[H].findIndex(Y=>Y%D==j),ee=U[j][F],te=U[H][W];for(let Y=0;Y<w;Y++){let re=ee[Y],K=te[w-Y],Z=ee[Y+1],Q=te[w-(Y+1)];[re,K,Z,Z,K,Q].forEach($=>{s.push($[0].x,$[0].y,$[0].z),c.push($[1].x,$[1].y,$[1].z)})}q.push(ee[0][0],te[w][0],ee[w][0],te[0][0])}}for(;q.length;){let j,F,H,W;[j,F]=q.splice(0,2);let ee=[j];for(;j!=F;)ee.push(F),H=q.indexOf(F),W=H%2,F=q.splice(H-W,2)[1-W];O.subVectors(ee[0],ee[1]).cross(h.subVectors(ee[0],ee[2])).normalize();let te=O.dot(ee[0])<0;te&&O.negate();for(let Y=1;Y<=ee.length-2;Y++)[ee[Y+ +te],ee[Y+1-+te],ee[0]].forEach(re=>{s.push(re.x,re.y,re.z),c.push(O.x,O.y,O.z)})}}function d(){let p=new Et.Vector3;for(let M=0;M<s.length;M+=3){p.x=s[M+0],p.y=s[M+1],p.z=s[M+2];let g=S(p)/2/Math.PI+.5,D=T(p)/Math.PI+.5;l.push(g,1-D)}let f=new Et.Vector3,h=new Et.Vector3,m=new Et.Vector3,y=new Et.Vector3,x=new Et.Vector2,v=new Et.Vector2,w=new Et.Vector2,O=(M,g,D,E)=>{E<0&&M.x===1&&(l[g]=M.x-1),D.x===0&&D.z===0&&(l[g]=E/2/Math.PI+.5)};for(let M=0,g=0;M<s.length;M+=9,g+=6){f.set(s[M+0],s[M+1],s[M+2]),h.set(s[M+3],s[M+4],s[M+5]),m.set(s[M+6],s[M+7],s[M+8]),x.set(l[g+0],l[g+1]),v.set(l[g+2],l[g+3]),w.set(l[g+4],l[g+5]),y.copy(f).add(h).add(m).divideScalar(3);let D=S(y);O(x,g+0,f,D),O(v,g+2,h,D),O(w,g+4,m,D)}for(let M=0;M<l.length;M+=6){let g=l[M+0],D=l[M+2],E=l[M+4],I=Math.max(g,D,E),N=Math.min(g,D,E);I>.9&&N<.1&&(g<.2&&(l[M+0]+=1),D<.2&&(l[M+2]+=1),E<.2&&(l[M+4]+=1))}function S(M){return Math.atan2(M.z,-M.x)}function T(M){return Math.atan2(-M.y,Math.sqrt(M.x*M.x+M.z*M.z))}}}static fromJSON(t){return new ji(t.vertices,t.indices,t.radius,t.corner,t.cornerSides)}};var hx=require("three"),mx=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,detail:0,corner:0,cornerSides:4},i.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(i){let{width:t,height:e,depth:r,detail:o,corner:n,cornerSides:a}=i.parameters,s=o===0&&n!==0?new Pl(t*.5,n,a):new hx.DodecahedronGeometry(t*.5,o);return s.scale(1,e/t,r/t),Object.assign(s,{userData:{...i,type:"DodecahedronGeometry"}})}},Pl=class extends ji{constructor(t=1,e=.2,r=4){let o=(1+Math.sqrt(5))/2,n=1/o,a=[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-n,-o,0,-n,o,0,n,-o,0,n,o,-n,-o,0,-n,o,0,n,-o,0,n,o,0,-o,0,-n,o,0,-n,-o,0,n,o,0,n],s=[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],l="DodecahedronGeometry";super(a,s,l,t,e,r),this.type=l}static fromJSON(t){return new Pl(t.radius,t.corner,t.cornerSides)}};var Ye=require("three");var Ne=require("three"),Ol=1e-12,ka=class{constructor(t){this.position=new Ne.Vector2;this.startPosition=new Ne.Vector2;this.uuid=Ne.MathUtils.generateUUID();this.position=t.clone()}start(){this.reset()}reset(){this.startPosition.copy(this.position)}applyOffset(t){this.position.copy(this.startPosition).add(t)}copy(t){return this.position.copy(t.position),this.startPosition.copy(t.startPosition),this}clone(){return new ka(this.position).copy(this)}toJSON(){return[this.position.x,this.position.y]}},Ha=class extends ka{constructor(e){super(e.position);this.parent=e}copy(e){return super.copy(e),this}clone(){return new Ha(this.parent).copy(this)}},co=class extends ka{constructor(e,r){super(r);this.controls=[];this.roundness=0;this.areControlsDirectionsMirrored=!0;this.uuid=e,this.controls.push(new Ha(this),new Ha(this))}static create(e,r){let o=new co(e,new Ne.Vector2(...r.position));return o.controls[0].position.set(...r.controlPrevious.position),o.controls[1].position.set(...r.controlNext.position),o.roundness=r.roundness,o.areControlsDirectionsMirrored=r.areControlsDirectionsMirrored,o}getOppositeControl(e){let r=this.controls.indexOf(e);return r===0?this.controls[1]:r===1?this.controls[0]:null}applyOffsetToControls(e,r=1){for(let o=0,n=this.controls.length;o<n;o++){let a=this.controls[o];this.position.distanceTo(a.position)<=r?a.position.copy(this.position):a.applyOffset(e)}}controlsMoved(){return!(this.position.equals(this.controls[0].position)&&this.position.equals(this.controls[1].position))}copy(e){return super.copy(e),this.controls[0].copy(e.controls[0]),this.controls[1].copy(e.controls[1]),this.roundness=e.roundness,this.uuid=e.uuid,this}clone(){return new co(this.uuid,this.position).copy(this)}toJSON(){return super.toJSON().concat(this.controls[0].toJSON(),this.controls[1].toJSON(),[this.roundness])}computeTangents(){let e=this.curveBefore?.getTangentAt(1),r=this.curveAfter?.getTangentAt(0);return[e,r]}computeNormals(e=new Ne.Vector2,r=new Ne.Vector2){let[o,n]=this.computeTangents();return o&&n&&(yx(o,e),yx(n,r)),[e,r]}computeTangent(e=new Ne.Vector2){let[r,o]=this.computeTangents();return r&&o&&e.copy(r).add(o).normalize(),e}computeNormal(e=new Ne.Vector2){let[r,o]=this.computeNormals();return e.copy(r).add(o).normalize(),e}};function yx(i,t=new Ne.Vector2){let e=i.length();return t.set(-i.y/e,i.x/e)}var wf=i=>i,Wa=new Ne.Vector2,Gu=new Ne.Vector2,NM=new Ne.Vector2,DM=new Ne.Vector2,_M=new Ne.Vector2,RM=new Ne.Vector2,xx=new Ne.Vector3,bx=new Ne.Vector3;function vx(i){let t=new Ne.Vector2;t.addVectors(i.v0,Wa.subVectors(i.v1,i.v0).multiplyScalar(2/3));let e=new Ne.Vector2;return e.addVectors(i.v2,Gu.subVectors(i.v1,i.v2).multiplyScalar(2/3)),new Ne.CubicBezierCurve(i.v0,t,e,i.v2)}function Tl(i,t,e=Number.EPSILON){return Math.abs(i-t)<e}function LM(i,t,e=Number.EPSILON){return i.distanceTo(t)<e}function BM(i,t,e=Number.EPSILON){return i.distanceTo(t)<e}function Pf(i,t,e){let r=Math.sqrt(Math.pow(t.x-i.x,2)+Math.pow(t.y-i.y,2)),o=Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)),n=Math.sqrt(Math.pow(e.x-i.x,2)+Math.pow(e.y-i.y,2));return Math.acos((o*o+r*r-n*n)/(2*o*r))}function Sx(i,t,e){return gx(i,t)&&gx(t,e)&&Sf(i.position,t.position,e.position)}function Sf(i,t,e){return Wa.copy(t).sub(i).cross(Gu.copy(e).sub(i))===0}function wx(i,t,e,r,o){let n=Math.sqrt(Math.pow(t.x-i.x,2)+Math.pow(t.y-i.y,2)),a=(i.y+t.y)/2,s=(i.x+t.x)/2,l=Math.sqrt(Math.pow(e,2)-Math.pow(n/2,2))*(i.y-t.y)/n,c=Math.sqrt(Math.pow(e,2)-Math.pow(n/2,2))*(t.x-i.x)/n;return r.set(s+l,a+c),o.set(s-l,a-c),[r,o]}function Px(i,t,e){let r=i.distanceTo(e),o=t.distanceTo(e);return r<o?t:i}function Ox(i,t,e,r,o,n){let a=t.x-i.x,s=t.y-i.y,l=e.x-i.x,c=e.y-i.y,u=Math.sqrt((a+l)*(a+l)+(s+c)*(s+c)),d;return Pf(t,i,e)>Math.PI&&(u*=-1),Tl(c,s)?d=(s+c)*(r/u-.5)*8/3/(a-l):d=(a+l)*(r/u-.5)*8/3/(c-s),o.set(t.x-d*s,t.y+d*a),n.set(e.x+d*c,e.y-d*l),[o,n]}function Of(i,t){return i.position.equals(i.controls[1].position)&&t.position.equals(t.controls[0].position)}function gx(i,t){return Sf(i.position,i.controls[1].position,t.position)&&Sf(i.position,t.controls[0].position,t.position)}function Tx(i,t,e,r,o=.5){let n=Wa.subVectors(t,i).multiplyScalar(o).add(i),a=Gu.subVectors(e,t).multiplyScalar(o).add(t),s=NM.subVectors(r,e).multiplyScalar(o).add(e),l=n,c=DM.subVectors(a,n).multiplyScalar(o).add(n),u=_M.subVectors(s,a).multiplyScalar(o).add(a),d=s,p=RM.subVectors(u,c).multiplyScalar(o).add(c);return[i.x,i.y,l.x,l.y,c.x,c.y,p.x,p.y,u.x,u.y,d.x,d.y,r.x,r.y]}function Cx(i,t,e=12,r=!0){let o=bx.set(0,0,0),n,a=0,s=[];for(let l=0;l<t.length;l++){let c=wf(t[l]),u=Wa,d=Ui(c,e);s.push(d);for(let p=0;p<=d;p++)if(c instanceof Ne.CubicBezierCurve||c instanceof Ne.QuadraticBezierCurve||c instanceof Ne.LineCurve){if(c.getPoint(p/d,u),o.set(u.x,u.y,0),n!==void 0&&BM(n,o))continue;n===void 0&&(n=xx),n.copy(o),i.setXYZ(a,o.x,o.y,o.z),a++}}return r&&a>1&&!(i.getX(a-1)===i.getX(0)&&i.getY(a-1)===i.getY(0)&&i.getZ(a-1)===i.getZ(0))&&(i.setXYZ(a,i.getX(0),i.getY(0),i.getZ(0)),a++),i}function Ax(i,t,e,r=12,o=!0){let n=bx.set(0,0,0),a=0,s=[];for(let l=0;l<t.length;l++){if(e[l]===!1)continue;let c,u=wf(t[l]),d=Wa,p=Ui(u,r);s.push(p);for(let f=0;f<=p;f++)if(u instanceof Ne.CubicBezierCurve||u instanceof Ne.QuadraticBezierCurve||u instanceof Ne.LineCurve){if(u.getPoint(f/p,d),n.set(d.x,d.y,0),c?.equals(n))continue;c===void 0?c=xx:(i.setXYZ(a,c.x,c.y,c.z),a++,i.setXYZ(a,n.x,n.y,n.z),a++),c.copy(n)}}return o&&a>1&&!(i.getX(a-1)===i.getX(0)&&i.getY(a-1)===i.getY(0)&&i.getZ(a-1)===i.getZ(0))&&(i.setXYZ(a,i.getX(0),i.getY(0),i.getZ(0)),a++),s}function Tf(i,t=12,e=!1){let r=[];for(let o=0,n=i.length;o<n;o++){let a=i[o],s=0;if(e&&a.roundedCurveCorner!==void 0){let l=Ui(a.roundedCurveCorner,t)*.5;o>0&&(r[o-1]+=l),s+=l}a.curveAfter!==void 0&&(s+=Ui(a.curveAfter,t)),r.push(s)}return i.length>0&&e&&i[0].roundedCurveCorner!==void 0&&(r[i.length-1]+=Ui(i[0].roundedCurveCorner,t)*.5),r}function Ui(i,t=12){return i&&i instanceof Ne.EllipseCurve?t*2:i&&(i instanceof Ne.LineCurve||i instanceof Ne.LineCurve3)?1:i&&i instanceof Ne.SplineCurve?t*i.points.length:t}function Mx(i,t,e=12,r=!0){let o,n=0;for(let a=0;a<t.length;a++){let s=wf(t[a]),l=Ui(s,e),c=Wa;for(let u=0;u<=l;u++)if(s instanceof Ne.CubicBezierCurve||s instanceof Ne.QuadraticBezierCurve||s instanceof Ne.LineCurve){if(s.getPoint(u/l,c),o!==void 0&&LM(o,c,Ol))continue;o===void 0&&(o=Gu),o.copy(c),i.push(c.x,c.y),n++}}return Tl(i[0],i[i.length-2],Ol)&&Tl(i[1],i[i.length-1],Ol)&&(i.pop(),i.pop()),r&&n>1&&!(Tl(i[n-1],i[1],Ol)&&Tl(i[n-2],i[0],Ol))&&(i.push(i[0],i[1]),n++),i}var Cf=new Ye.Vector2,VM=new Ye.Vector2,zM=new Ye.Vector2,GM=new Ye.Vector2,FM=new Ye.Vector2,jM=new Ye.Vector2,Xe=class extends Ye.Shape{constructor(e=100,r=100){super();this.points=[];this.shapeHoles=[];this.plane=new Ye.Plane(new Ye.Vector3(0,0,-1));this.subdivision=0;this.controlSnapDistance=4;this.pointIDs=0;this.isMesh2D=!1;this.isText=!1;this._roundness=0;this.isClosed=!1;this.useCubicForRoundedCorners=!0;this.uuid=Ye.MathUtils.generateUUID();this.needsUpdate=!1;this.roundedCurves=[];this._width=e,this._height=r}static createFromState(e,r,o){let n=new Xe;return n.isClosed=e.isClosed,n.points=e.points.map(a=>co.create(a.id,a.data)),typeof e.roundness=="number"&&(n.roundness=e.roundness),n.shapeHoles=e.shapeHoles.map(a=>Xe.createFromState(a)),r!==void 0&&o!==void 0&&n.applySize(r,o),n.update(),n}get width(){return this._width}get height(){return this._height}get roundness(){return this._roundness}set roundness(e){if(this._roundness!==e){this._roundness=e;for(let r=0,o=this.points.length;r<o;r++)this.points[r].roundness=e;this.needsUpdate=!0}}getPointsIndexesByIds(e){return e.map(r=>this.getPointIndexById(r)).filter(r=>r>=0)}getPointIndexById(e){let r=this.points.length,o=this.points.findIndex(n=>n.uuid===e);if(o<0){let n=r;for(let a=0,s=this.shapeHoles.length;a<s;a++){let l=this.shapeHoles[a],c=l.points.length,u=l.getPointIndexById(e);if(u<0)n+=c;else return u+n}}return o}getLineIndexById(e){return this.getPointIndexById(e)}getBezierPoint(e){if(e<=this.points.length-1)return this.points[e];if(this.shapeHoles.length>0){let r=this.points.length;for(let o=0,n=this.shapeHoles.length;o<n;o++){let a=this.shapeHoles[o],s=e-r;if(s<=a.points.length-1)return a.points[s];r+=a.points.length}}throw new Error("This shape does not have a point for this index: "+e)}getBezierPointIndex(e){let r=this.points.indexOf(e);if(r>=0)return r;if(r=this.points.length,this.shapeHoles.length>0)for(let o=0,n=this.shapeHoles.length;o<n;o++){let a=this.shapeHoles[o],s=a.points.indexOf(e);if(s>=0)return r+s;r+=a.points.length}return-1}getAllPoints(){let e=[].concat(...this.shapeHoles.map(r=>r.points));return[...this.points,...e]}applySize(e,r){e===0&&(e=.001),r===0&&(r=.001),this._width=e,this._height=r}applyScale(e,r){let o=Cf.set(e,r);for(let n=0,a=this.points.length;n<a;n++){let s=this.points[n];s.position.multiply(o),s.controls[0].position.multiply(o),s.controls[1].position.multiply(o)}for(let n=0,a=this.shapeHoles.length;n<a;n++)this.shapeHoles[n].applyScale(e,r);this._update()}createPoint(e,r=0,o=Ye.MathUtils.generateUUID()){let n;e instanceof Ye.Vector2?n=e:n=new Ye.Vector2(e,r);let a=new co(o,n);return a.roundness=this.roundness,a}addPoint(e){this.points.push(e),this.needsUpdate=!0}addPointAt(e,r){this.points.splice(r,0,e),this.needsUpdate=!0}getPointByUuid(e){for(let r=0,o=this.points.length;r<o;r++){let n=this.points[r];if(n.uuid===e)return n}for(let r=0,o=this.shapeHoles.length;r<o;r++){let a=this.shapeHoles[r].getPointByUuid(e);if(a)return a}}getFirstPoint(){return this.points[0]}getLastPoint(){return this.points[this.points.length-1]}removePoint(e){let r=this.points.indexOf(e);r>=0&&this.points.splice(r,1),this.needsUpdate=!0}removePointById(e){let r=this.points.find(o=>o.uuid===e);r&&this.removePoint(r)}update(){for(let e=0,r=this.shapeHoles.length;e<r;e++)this.shapeHoles[e].update();this._update()}extractShapePointsToBuffer(e,r=12,o=!1){this.subdivision=r,this.curveDivisions===void 0&&this.computeCurveDivisions(r);let n=o?this.roundedCurveDivisions:this.curveDivisions;return Cx(e,o?this.roundedCurves:this.curves,r,this.autoClose),n.reduce((a,s)=>a+s,0)+1}computeCurveDivisions(e=12){return this.curveDivisions=Tf(this.points,e,!1),this.roundedCurveDivisions=Tf(this.points,e,!0),this.curveDivisions}extractFilteredShapePointsToBuffer(e,r,o=12){return Ax(e,this.curves,r,o,this.autoClose).reduce((a,s)=>a+s,0)*2}extractShapePointsToFlatArray(e,r=12){return this.subdivision=r,this.curveDivisions===void 0&&this.computeCurveDivisions(r),Mx(e,this.roundedCurves,r,this.autoClose)}getCurveIndexFromVertexId(e,r=!1){let o=0;this.curveDivisions===void 0&&this.computeCurveDivisions(this.subdivision);let n=r?this.roundedCurveDivisions:this.curveDivisions,a=0;r&&this.points[0].roundedCurveCorner!==void 0&&(a=Ui(this.points[0].roundedCurveCorner,this.subdivision)*.5);let s=e-a;s<0&&(s+=n.reduce((l,c)=>l+c,0));for(let l=0,c=n.length;l<c;l++){let u=n[l];if(s<o+u)return[l,(s-o+1)/u];o+=u}return[0,1]}getCurveT(e,r,o){let n=this.points[e],a=this.points[e>=this.points.length-1?0:e+1],s=this.curveDivisions,l=s[e];if(Of(n,a)){let d=n.position.distanceTo(a.position);return n.position.distanceTo(Cf.set(o.x,o.y))/d}let c=0;for(let d=0;d<e;d++)c+=s[d];return(r-c)/l}dispose(){}_applyCurveForPoint(e,r){Of(r,e)?this.lineTo(e.position.x,e.position.y):this.bezierCurveTo(r.controls[1].position.x,r.controls[1].position.y,e.controls[0].position.x,e.controls[0].position.y,e.position.x,e.position.y);let o=this.curves[this.curves.length-1];e.curveBefore=o,r.curveAfter=o;let n=o.clone();e.roundedCurveBefore=n,r.roundedCurveAfter=n,e.roundedCurveCorner=void 0,this.roundedCurves.push(n)}_update(){if(this.curves=[],this.roundedCurves=[],!this.points.length)return;for(let r=0,o=this.points.length;r<o;r++){let n=this.points[r];if(r===0)this.moveTo(n.position.x,n.position.y);else{let a=this.points[r-1];this._applyCurveForPoint(n,a)}}let e=this.getLastPoint();if(e?.curveAfter&&(e.curveAfter=void 0),this.isClosed){let r=this.points[0],o=this.points[this.points.length-1];this._applyCurveForPoint(r,o)}if(this.points.length>2){let r=0;for(let o=0,n=this.points.length;o<n;o++){let a=this.points[o],s=this.points[o-1]??this.points[this.points.length-1],l=this.points[o+1]??this.points[0],c=a.roundness,u=s&&l&&Sx(s,a,l);if(!a.controlsMoved()&&c>0&&!u){let d=a.curveBefore,p=a.curveAfter;if(d===void 0||p===void 0)continue;let f=a.roundedCurveBefore,h=a.roundedCurveAfter,m=d.getLength(),y=p.getLength(),x=Math.min(c,m*.499),v=Math.min(c,y*.499),w=Math.min(x,v),O=1-w/m,S=w/y,T=d.getPointAt(O,Cf),M=p.getPointAt(S,VM);this._subSplitCurve(d,f,O,T,void 0),this._subSplitCurve(p,h,S,void 0,M);let g;if(this.useCubicForRoundedCorners){let D=Pf(T,a.position,M)/2,E=Math.tan(D)*T.distanceTo(a.position),[I,N]=wx(T,M,E,zM,GM),_=Px(I,N,a.position),[R,V]=Ox(_,T,M,E,FM,jM);g=new Ye.CubicBezierCurve(T.clone(),R.clone(),V.clone(),M.clone())}else g=new Ye.QuadraticBezierCurve(T.clone(),a.position.clone(),M.clone());a.roundedCurveCorner=g,this.roundedCurves.splice(o+r,0,g),r++}}}}_subSplitCurve(e,r,o,n,a){if(e instanceof Ye.LineCurve)n!==void 0&&r.v2.copy(n),a!==void 0&&r.v1.copy(a);else{let s=e,l=r,c=s.getUtoTmapping(o,0),u=Tx(s.v0,s.v1,s.v2,s.v3,c);return n!==void 0&&(l.v0.set(u[0],u[1]),l.v1.set(u[2],u[3]),l.v2.set(u[4],u[5]),l.v3.set(u[6],u[7])),a!==void 0&&(l.v0.set(u[6],u[7]),l.v1.set(u[8],u[9]),l.v2.set(u[10],u[11]),l.v3.set(u[12],u[13])),l}return r}clone(){let e=new Xe(this._width,this._height);return e.points=this.points.map(r=>r.clone()),e.isClosed=this.isClosed,e.roundness=this.roundness,e.isMesh2D=this.isMesh2D,e.shapeHoles=this.shapeHoles.map(r=>r.clone()),e}toJSON(){return{points:this.points.reduce((e,r)=>e.concat(r.toJSON()),[]),shapeHoles:this.shapeHoles.map(e=>e.toJSON()),isClosed:this.isClosed,roundness:this.roundness}}fromJSON(e){this.points=[],this.pointIDs=0;let r=e.points.length/7;for(let o=0;o<r;o++){let n=o*7,a=e.points[n+0],s=e.points[n+1],l=e.points[n+2],c=e.points[n+3],u=e.points[n+4],d=e.points[n+5],p=e.points[n+6],f=new co(Ye.MathUtils.generateUUID(),new Ye.Vector2(a,s));f.controls[0].position.set(l,c),f.controls[1].position.set(u,d),f.roundness=p,this.points.push(f)}return this.shapeHoles=e.shapeHoles?.length?e.shapeHoles.map(o=>{let n=new Xe;return n.fromJSON(o),n}):[],this.isClosed=e.isClosed,this._roundness=e.roundness,this._update(),this}fromShape(e,r=!1){this.isText=r;let o=(a,s)=>{s instanceof Ye.CubicBezierCurve&&s.v3.equals(a.position)&&a.controls[0].position.copy(s.v2)},n=a=>{let s=[],l,c;for(l=0,c=a.length;l<c;l++)a[l]instanceof Ye.QuadraticBezierCurve&&(a[l]=vx(a[l]));for(l=0,c=a.length;l<c;l++){let p=a[l],f=l>0?a[l-1]:null,h;p instanceof Ye.CubicBezierCurve?(h=this.createPoint(p.v0),h.controls[1].position.copy(p.v1)):p instanceof Ye.LineCurve&&(h=this.createPoint(p.v1)),h!==void 0&&(f!==null&&o(h,f),s.push(h))}let u=a[a.length-1],d=!1;return u instanceof Ye.CubicBezierCurve?u.v3.equals(s[0].position)&&(s[0].controls[0].position.copy(u.v2),d=!0):u instanceof Ye.LineCurve&&u.v2.equals(s[0].position)&&(d=!0),this.isClosed=d,s};return this.points=n(e.curves),e instanceof Ye.Shape&&(this.shapeHoles=e.holes.map(a=>{let s=new Xe;return s.fromShape(a),s})),this.update(),this}updatePoint(e,r){let o=this.getPointByUuid(e);o&&(r.position!==void 0&&o.position.fromArray(r.position),r.roundness!==void 0&&(o.roundness=r.roundness),r.areControlsDirectionsMirrored!==void 0&&(o.areControlsDirectionsMirrored=r.areControlsDirectionsMirrored),this.needsUpdate=!0)}updatePreviousControl(e,r){let n=this.getPointByUuid(e)?.controls[0];n&&(r.position&&n.position.fromArray(r.position),this.needsUpdate=!0)}updateNextControl(e,r){let n=this.getPointByUuid(e)?.controls[1];n&&(r.position&&n.position.fromArray(r.position),this.needsUpdate=!0)}};var Mf=Math.PI*2;function Af({x:i,y:t},e,r,o,n){return{x:i*e+o,y:t*r+n}}function UM(i,t){let e=t===1.5707963267948966?.551915024494:t===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(t/4),r=Math.cos(i),o=Math.sin(i),n=Math.cos(i+t),a=Math.sin(i+t);return[{x:r-o*e,y:o+r*e},{x:n+a*e,y:a-n*e},{x:n,y:a}]}function Ix(i,t,e,r){let o=i*r-t*e<0?-1:1,n=Math.min(1,Math.max(-1,i*e+t*r));return o*Math.acos(n)}function kM(i,t,e,r,o,n,a,s,l,c){let u=Math.pow(o,2),d=Math.pow(n,2),p=Math.pow(a,2),f=Math.pow(s,2),h=u*d-u*f-d*p;h<0&&(h=0),h/=u*f+d*p,h=Math.sqrt(h)*(l===c?-1:1);let m=h*o/n*s,y=h*-n/o*a,x=m+(i+e)/2,v=y+(t+r)/2,w=(a-m)/o,O=(s-y)/n,S=(-a-m)/o,T=(-s-y)/n,M=Ix(1,0,w,O),g=Ix(w,O,S,T);return!c&&g>0&&(g-=Mf),c&&g<0&&(g+=Mf),{centerx:x,centery:v,ang1:M,ang2:g}}function Ex({px:i,py:t,cx:e,cy:r,rx:o,ry:n,largeArcFlag:a,sweepFlag:s}){let l=[];if(o===0||n===0)return[];let c=(i-e)/2,u=(t-r)/2;if(c===0&&u===0)return[];o=Math.abs(o),n=Math.abs(n);let d=Math.pow(c,2)/Math.pow(o,2)+Math.pow(u,2)/Math.pow(n,2);d>1&&(o*=Math.sqrt(d),n*=Math.sqrt(d));let p=kM(i,t,e,r,o,n,c,u,a,s),{ang1:f,ang2:h}=p,{centerx:m,centery:y}=p,x=Math.abs(h)/(Mf/4);Math.abs(1-x)<1e-7&&(x=1);let v=Math.max(Math.ceil(x),1);h/=v;for(let w=0;w<v;w++)l.push(UM(f,h)),f+=h;return l.map(w=>{let{x:O,y:S}=Af(w[0],o,n,m,y),{x:T,y:M}=Af(w[1],o,n,m,y),{x:g,y:D}=Af(w[2],o,n,m,y);return{x1:O,y1:S,x2:T,y2:M,x:g,y:D}})}var In=require("three");var $e;(function(i){i[i.ODD=0]="ODD",i[i.NONZERO=1]="NONZERO",i[i.POSITIVE=2]="POSITIVE",i[i.NEGATIVE=3]="NEGATIVE",i[i.ABS_GEQ_TWO=4]="ABS_GEQ_TWO"})($e||($e={}));var St;(function(i){i[i.POLYGONS=0]="POLYGONS",i[i.CONNECTED_POLYGONS=1]="CONNECTED_POLYGONS",i[i.BOUNDARY_CONTOURS=2]="BOUNDARY_CONTOURS"})(St||(St={}));function Oe(i,t){if(!i)throw t||"Assertion Failed!"}var we=function(){function i(){}return i.vertEq=function(t,e){return t.s===e.s&&t.t===e.t},i.vertLeq=function(t,e){return t.s<e.s||t.s===e.s&&t.t<=e.t},i.transLeq=function(t,e){return t.t<e.t||t.t===e.t&&t.s<=e.s},i.edgeGoesLeft=function(t){return i.vertLeq(t.Dst,t.Org)},i.edgeGoesRight=function(t){return i.vertLeq(t.Org,t.Dst)},i.vertL1dist=function(t,e){return Math.abs(t.s-e.s)+Math.abs(t.t-e.t)},i.edgeEval=function(t,e,r){Oe(i.vertLeq(t,e)&&i.vertLeq(e,r));var o=e.s-t.s,n=r.s-e.s;return o+n>0?o<n?e.t-t.t+(t.t-r.t)*(o/(o+n)):e.t-r.t+(r.t-t.t)*(n/(o+n)):0},i.edgeSign=function(t,e,r){Oe(i.vertLeq(t,e)&&i.vertLeq(e,r));var o=e.s-t.s,n=r.s-e.s;return o+n>0?(e.t-r.t)*o+(e.t-t.t)*n:0},i.transEval=function(t,e,r){Oe(i.transLeq(t,e)&&i.transLeq(e,r));var o=e.t-t.t,n=r.t-e.t;return o+n>0?o<n?e.s-t.s+(t.s-r.s)*(o/(o+n)):e.s-r.s+(r.s-t.s)*(n/(o+n)):0},i.transSign=function(t,e,r){Oe(i.transLeq(t,e)&&i.transLeq(e,r));var o=e.t-t.t,n=r.t-e.t;return o+n>0?(e.s-r.s)*o+(e.s-t.s)*n:0},i.vertCCW=function(t,e,r){return t.s*(e.t-r.t)+e.s*(r.t-t.t)+r.s*(t.t-e.t)>=0},i.interpolate=function(t,e,r,o){return t=t<0?0:t,r=r<0?0:r,t<=r?r===0?(e+o)/2:e+(o-e)*(t/(t+r)):o+(e-o)*(r/(t+r))},i.intersect=function(t,e,r,o,n){var a,s,l;i.vertLeq(t,e)||(l=t,t=e,e=l),i.vertLeq(r,o)||(l=r,r=o,o=l),i.vertLeq(t,r)||(l=t,t=r,r=l,l=e,e=o,o=l),i.vertLeq(r,e)?i.vertLeq(e,o)?(a=i.edgeEval(t,r,e),s=i.edgeEval(r,e,o),a+s<0&&(a=-a,s=-s),n.s=i.interpolate(a,r.s,s,e.s)):(a=i.edgeSign(t,r,e),s=-i.edgeSign(t,o,e),a+s<0&&(a=-a,s=-s),n.s=i.interpolate(a,r.s,s,o.s)):n.s=(r.s+e.s)/2,i.transLeq(t,e)||(l=t,t=e,e=l),i.transLeq(r,o)||(l=r,r=o,o=l),i.transLeq(t,r)||(l=t,t=r,r=l,l=e,e=o,o=l),i.transLeq(r,e)?i.transLeq(e,o)?(a=i.transEval(t,r,e),s=i.transEval(r,e,o),a+s<0&&(a=-a,s=-s),n.t=i.interpolate(a,r.t,s,e.t)):(a=i.transSign(t,r,e),s=-i.transSign(t,o,e),a+s<0&&(a=-a,s=-s),n.t=i.interpolate(a,r.t,s,o.t)):n.t=(r.t+e.t)/2},i}(),Cl=function(){function i(){this.next=null,this.prev=null,this.anEdge=null,this.trail=null,this.n=0,this.marked=!1,this.inside=!1}return i}(),Fu=function(){function i(t){this.side=t,this.next=null,this.Org=null,this.Sym=null,this.Onext=null,this.Lnext=null,this.Lface=null,this.activeRegion=null,this.winding=0}return Object.defineProperty(i.prototype,"Rface",{get:function(){return this.Sym.Lface},set:function(t){this.Sym.Lface=t},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Dst",{get:function(){return this.Sym.Org},set:function(t){this.Sym.Org=t},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Oprev",{get:function(){return this.Sym.Lnext},set:function(t){this.Sym.Lnext=t},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Lprev",{get:function(){return this.Onext.Sym},set:function(t){this.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Dprev",{get:function(){return this.Lnext.Sym},set:function(t){this.Lnext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Rprev",{get:function(){return this.Sym.Onext},set:function(t){this.Sym.Onext=t},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Dnext",{get:function(){return this.Sym.Onext.Sym},set:function(t){this.Sym.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"Rnext",{get:function(){return this.Sym.Lnext.Sym},set:function(t){this.Sym.Lnext.Sym=t},enumerable:!0,configurable:!0}),i}(),qa=function(){function i(){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 i}(),Nx=function(){function i(){var t=new qa,e=new Cl,r=new Fu(0),o=new Fu(1);t.next=t.prev=t,t.anEdge=null,e.next=e.prev=e,r.next=r,r.Sym=o,o.next=o,o.Sym=r,this.vHead=t,this.fHead=e,this.eHead=r,this.eHeadSym=o}return i.prototype.makeEdge_=function(t){var e=new Fu(0),r=new Fu(1);t.Sym.side<t.side&&(t=t.Sym);var o=t.Sym.next;return r.next=o,o.Sym.next=e,e.next=t,t.Sym.next=r,e.Sym=r,e.Onext=e,e.Lnext=r,e.Org=null,e.Lface=null,e.winding=0,e.activeRegion=null,r.Sym=e,r.Onext=r,r.Lnext=e,r.Org=null,r.Lface=null,r.winding=0,r.activeRegion=null,e},i.prototype.splice_=function(t,e){var r=t.Onext,o=e.Onext;r.Sym.Lnext=e,o.Sym.Lnext=t,t.Onext=o,e.Onext=r},i.prototype.makeVertex_=function(t,e,r){var o=t;Oe(o,"Vertex can't be null!");var n=r.prev;o.prev=n,n.next=o,o.next=r,r.prev=o,o.anEdge=e;var a=e;do a.Org=o,a=a.Onext;while(a!==e)},i.prototype.makeFace_=function(t,e,r){var o=t;Oe(o,"Face can't be null");var n=r.prev;o.prev=n,n.next=o,o.next=r,r.prev=o,o.anEdge=e,o.trail=null,o.marked=!1,o.inside=r.inside;var a=e;do a.Lface=o,a=a.Lnext;while(a!==e)},i.prototype.killEdge_=function(t){t.Sym.side<t.side&&(t=t.Sym);var e=t.next,r=t.Sym.next;e.Sym.next=r,r.Sym.next=e},i.prototype.killVertex_=function(t,e){var r=t.anEdge,o=r;do o.Org=e,o=o.Onext;while(o!==r);var n=t.prev,a=t.next;a.prev=n,n.next=a},i.prototype.killFace_=function(t,e){var r=t.anEdge,o=r;do o.Lface=e,o=o.Lnext;while(o!==r);var n=t.prev,a=t.next;a.prev=n,n.next=a},i.prototype.makeEdge=function(){var t=new qa,e=new qa,r=new Cl,o=this.makeEdge_(this.eHead);return this.makeVertex_(t,o,this.vHead),this.makeVertex_(e,o.Sym,this.vHead),this.makeFace_(r,o,this.fHead),o},i.prototype.splice=function(t,e){var r=!1,o=!1;if(t!==e){if(e.Org!==t.Org&&(o=!0,this.killVertex_(e.Org,t.Org)),e.Lface!==t.Lface&&(r=!0,this.killFace_(e.Lface,t.Lface)),this.splice_(e,t),!o){var n=new qa;this.makeVertex_(n,e,t.Org),t.Org.anEdge=t}if(!r){var a=new Cl;this.makeFace_(a,e,t.Lface),t.Lface.anEdge=t}}},i.prototype.delete=function(t){var e=t.Sym,r=!1;if(t.Lface!==t.Rface&&(r=!0,this.killFace_(t.Lface,t.Rface)),t.Onext===t)this.killVertex_(t.Org,null);else if(t.Rface.anEdge=t.Oprev,t.Org.anEdge=t.Onext,this.splice_(t,t.Oprev),!r){var o=new Cl;this.makeFace_(o,t,t.Lface)}e.Onext===e?(this.killVertex_(e.Org,null),this.killFace_(e.Lface,null)):(t.Lface.anEdge=e.Oprev,e.Org.anEdge=e.Onext,this.splice_(e,e.Oprev)),this.killEdge_(t)},i.prototype.addEdgeVertex=function(t){var e=this.makeEdge_(t),r=e.Sym;this.splice_(e,t.Lnext),e.Org=t.Dst;var o=new qa;return this.makeVertex_(o,r,e.Org),e.Lface=r.Lface=t.Lface,e},i.prototype.splitEdge=function(t){var e=this.addEdgeVertex(t),r=e.Sym;return this.splice_(t.Sym,t.Sym.Oprev),this.splice_(t.Sym,r),t.Dst=r.Org,r.Dst.anEdge=r.Sym,r.Rface=t.Rface,r.winding=t.winding,r.Sym.winding=t.Sym.winding,r.idx=t.idx,r.Sym.idx=t.Sym.idx,r},i.prototype.connect=function(t,e){var r=!1,o=this.makeEdge_(t),n=o.Sym;if(e.Lface!==t.Lface&&(r=!0,this.killFace_(e.Lface,t.Lface)),this.splice_(o,t.Lnext),this.splice_(n,e),o.Org=t.Dst,n.Org=e.Org,o.Lface=n.Lface=t.Lface,t.Lface.anEdge=n,!r){var a=new Cl;this.makeFace_(a,o,t.Lface)}return o},i.prototype.zapFace=function(t){var e=t.anEdge,r,o,n,a,s;o=e.Lnext;do r=o,o=r.Lnext,r.Lface=null,r.Rface===null&&(r.Onext===r?this.killVertex_(r.Org,null):(r.Org.anEdge=r.Onext,this.splice_(r,r.Oprev)),n=r.Sym,n.Onext===n?this.killVertex_(n.Org,null):(n.Org.anEdge=n.Onext,this.splice_(n,n.Oprev)),this.killEdge_(r));while(r!=e);a=t.prev,s=t.next,s.prev=a,a.next=s},i.prototype.countFaceVerts_=function(t){var e=t.anEdge,r=0;do r++,e=e.Lnext;while(e!==t.anEdge);return r},i.prototype.mergeConvexFaces=function(t){var e,r,o,n,a,s,l;for(e=this.fHead.next;e!==this.fHead;e=e.next)if(!!e.inside)for(r=e.anEdge,a=r.Org;o=r.Lnext,n=r.Sym,n&&n.Lface&&n.Lface.inside&&(s=this.countFaceVerts_(e),l=this.countFaceVerts_(n.Lface),s+l-2<=t&&we.vertCCW(r.Lprev.Org,r.Org,n.Lnext.Lnext.Org)&&we.vertCCW(n.Lprev.Org,n.Org,r.Lnext.Lnext.Org)&&(o=n.Lnext,this.delete(n),r=null,n=null)),!(r&&r.Lnext.Org===a);)r=o;return!0},i.prototype.check=function(){var t=this.fHead,e=this.vHead,r=this.eHead,o,n,a,s,l,c;for(n=t,n=t;(o=n.next)!==t;n=o){Oe(o.prev===n),l=o.anEdge;do Oe(l.Sym!==l),Oe(l.Sym.Sym===l),Oe(l.Lnext.Onext.Sym===l),Oe(l.Onext.Sym.Lnext===l),Oe(l.Lface===o),l=l.Lnext;while(l!==o.anEdge)}for(Oe(o.prev===n&&o.anEdge===null),s=e,s=e;(a=s.next)!==e;s=a){Oe(a.prev===s),l=a.anEdge;do Oe(l.Sym!==l),Oe(l.Sym.Sym===l),Oe(l.Lnext.Onext.Sym===l),Oe(l.Onext.Sym.Lnext===l),Oe(l.Org===a),l=l.Onext;while(l!==a.anEdge)}for(Oe(a.prev===s&&a.anEdge===null),c=r,c=r;(l=c.next)!==r;c=l)Oe(l.Sym.next===c.Sym),Oe(l.Sym!==l),Oe(l.Sym.Sym===l),Oe(l.Org!==null),Oe(l.Dst!==null),Oe(l.Lnext.Onext.Sym===l),Oe(l.Onext.Sym.Lnext===l);Oe(l.Sym.next===c.Sym&&l.Sym===this.eHeadSym&&l.Sym.Sym===l&&l.Org===null&&l.Dst===null&&l.Lface===null&&l.Rface===null)},i}(),Dx=function(){function i(){this.handle=null}return i}(),_x=function(){function i(){this.key=null,this.node=0}return i}(),HM=function(){function i(t,e){this.leq=e,this.max=0,this.nodes=[],this.handles=[],this.initialized=!1,this.freeList=0,this.size=0,this.max=t,this.nodes=[],this.handles=[];for(var r=0;r<t+1;r++)this.nodes[r]=new Dx,this.handles[r]=new _x;this.initialized=!1,this.nodes[1].handle=1,this.handles[1].key=null}return i.prototype.floatDown_=function(t){var e=this.nodes,r=this.handles,o,n,a;for(o=e[t].handle;;){if(a=t<<1,a<this.size&&this.leq(r[e[a+1].handle].key,r[e[a].handle].key)&&++a,Oe(a<=this.max),n=e[a].handle,a>this.size||this.leq(r[o].key,r[n].key)){e[t].handle=o,r[o].node=t;break}e[t].handle=n,r[n].node=t,t=a}},i.prototype.floatUp_=function(t){var e=this.nodes,r=this.handles,o,n,a;for(o=e[t].handle;;){if(a=t>>1,n=e[a].handle,a===0||this.leq(r[n].key,r[o].key)){e[t].handle=o,r[o].node=t;break}e[t].handle=n,r[n].node=t,t=a}},i.prototype.init=function(){for(var t=this.size;t>=1;--t)this.floatDown_(t);this.initialized=!0},i.prototype.min=function(){return this.handles[this.nodes[1].handle].key},i.prototype.insert=function(t){var e,r;if(e=++this.size,e*2>this.max){this.max*=2;var o,n;for(n=this.nodes.length,this.nodes.length=this.max+1,o=n;o<this.nodes.length;o++)this.nodes[o]=new Dx;for(n=this.handles.length,this.handles.length=this.max+1,o=n;o<this.handles.length;o++)this.handles[o]=new _x}return this.freeList===0?r=e:(r=this.freeList,this.freeList=this.handles[r].node),this.nodes[e].handle=r,this.handles[r].node=e,this.handles[r].key=t,this.initialized&&this.floatUp_(e),r},i.prototype.extractMin=function(){var t=this.nodes,e=this.handles,r=t[1].handle,o=e[r].key;return this.size>0&&(t[1].handle=t[this.size].handle,e[t[1].handle].node=1,e[r].key=null,e[r].node=this.freeList,this.freeList=r,--this.size,this.size>0&&this.floatDown_(1)),o},i.prototype.delete=function(t){var e=this.nodes,r=this.handles,o;Oe(t>=1&&t<=this.max&&r[t].key!==null),o=r[t].node,e[o].handle=e[this.size].handle,r[e[o].handle].node=o,--this.size,o<=this.size&&(o<=1||this.leq(r[e[o>>1].handle].key,r[e[o].handle].key)?this.floatDown_(o):this.floatUp_(o)),r[t].key=null,r[t].node=this.freeList,this.freeList=t},i}(),If=function(){function i(){this.eUp=null,this.nodeUp=null,this.windingNumber=0,this.inside=!1,this.sentinel=!1,this.dirty=!1,this.fixUpperEdge=!1}return i}(),Rx=function(){function i(){this.key=null,this.next=null,this.prev=null}return i}(),WM=function(){function i(t,e){this.frame=t,this.leq=e,this.head=new Rx,this.head.next=this.head,this.head.prev=this.head}return i.prototype.min=function(){return this.head.next},i.prototype.max=function(){return this.head.prev},i.prototype.insert=function(t){return this.insertBefore(this.head,t)},i.prototype.search=function(t){var e=this.head;do e=e.next;while(e.key!==null&&!this.leq(this.frame,t,e.key));return e},i.prototype.insertBefore=function(t,e){do t=t.prev;while(t.key!==null&&!this.leq(this.frame,t.key,e));var r=new Rx;return r.key=e,r.next=t.next,t.next.prev=r,r.prev=t,t.next=r,r},i.prototype.delete=function(t){t.next.prev=t.prev,t.prev.next=t.next},i}(),qM=function(){function i(){}return i.regionBelow=function(t){return t.nodeUp.prev.key},i.regionAbove=function(t){return t.nodeUp.next.key},i.debugEvent=function(t){},i.addWinding=function(t,e){t.winding+=e.winding,t.Sym.winding+=e.Sym.winding},i.edgeLeq=function(t,e,r){var o=t.event,n=e.eUp,a=r.eUp;if(n.Dst===o)return a.Dst===o?we.vertLeq(n.Org,a.Org)?we.edgeSign(a.Dst,n.Org,a.Org)<=0:we.edgeSign(n.Dst,a.Org,n.Org)>=0:we.edgeSign(a.Dst,o,a.Org)<=0;if(a.Dst===o)return we.edgeSign(n.Dst,o,n.Org)>=0;var s=we.edgeEval(n.Dst,o,n.Org),l=we.edgeEval(a.Dst,o,a.Org);return s>=l},i.deleteRegion=function(t,e){e.fixUpperEdge&&Oe(e.eUp.winding===0),e.eUp.activeRegion=null,t.dict.delete(e.nodeUp)},i.fixUpperEdge=function(t,e,r){Oe(e.fixUpperEdge),t.mesh.delete(e.eUp),e.fixUpperEdge=!1,e.eUp=r,r.activeRegion=e},i.topLeftRegion=function(t,e){var r=e.eUp.Org,o;do e=i.regionAbove(e);while(e.eUp.Org===r);if(e.fixUpperEdge){if(o=t.mesh.connect(i.regionBelow(e).eUp.Sym,e.eUp.Lnext),o===null)return null;i.fixUpperEdge(t,e,o),e=i.regionAbove(e)}return e},i.topRightRegion=function(t){var e=t.eUp.Dst;do t=i.regionAbove(t);while(t.eUp.Dst===e);return t},i.addRegionBelow=function(t,e,r){var o=new If;return o.eUp=r,o.nodeUp=t.dict.insertBefore(e.nodeUp,o),o.fixUpperEdge=!1,o.sentinel=!1,o.dirty=!1,r.activeRegion=o,o},i.isWindingInside=function(t,e){switch(t.windingRule){case $e.ODD:return(e&1)!==0;case $e.NONZERO:return e!==0;case $e.POSITIVE:return e>0;case $e.NEGATIVE:return e<0;case $e.ABS_GEQ_TWO:return e>=2||e<=-2}throw new Error("Invalid winding rulle")},i.computeWinding=function(t,e){e.windingNumber=i.regionAbove(e).windingNumber+e.eUp.winding,e.inside=i.isWindingInside(t,e.windingNumber)},i.finishRegion=function(t,e){var r=e.eUp,o=r.Lface;o.inside=e.inside,o.anEdge=r,i.deleteRegion(t,e)},i.finishLeftRegions=function(t,e,r){for(var o,n=null,a=e,s=e.eUp;a!==r;){if(a.fixUpperEdge=!1,n=i.regionBelow(a),o=n.eUp,o.Org!=s.Org){if(!n.fixUpperEdge){i.finishRegion(t,a);break}o=t.mesh.connect(s.Lprev,o.Sym),i.fixUpperEdge(t,n,o)}s.Onext!==o&&(t.mesh.splice(o.Oprev,o),t.mesh.splice(s,o)),i.finishRegion(t,a),s=n.eUp,a=n}return s},i.addRightEdges=function(t,e,r,o,n,a){var s,l,c,u,d=!0;c=r;do Oe(we.vertLeq(c.Org,c.Dst)),i.addRegionBelow(t,e,c.Sym),c=c.Onext;while(c!==o);for(n===null&&(n=i.regionBelow(e).eUp.Rprev),l=e,u=n;s=i.regionBelow(l),c=s.eUp.Sym,c.Org===u.Org;)c.Onext!==u&&(t.mesh.splice(c.Oprev,c),t.mesh.splice(u.Oprev,c)),s.windingNumber=l.windingNumber-c.winding,s.inside=i.isWindingInside(t,s.windingNumber),l.dirty=!0,!d&&i.checkForRightSplice(t,l)&&(i.addWinding(c,u),i.deleteRegion(t,l),t.mesh.delete(u)),d=!1,l=s,u=c;l.dirty=!0,Oe(l.windingNumber-c.winding===s.windingNumber),a&&i.walkDirtyRegions(t,l)},i.spliceMergeVertices=function(t,e,r){t.mesh.splice(e,r)},i.vertexWeights=function(t,e,r){var o=we.vertL1dist(e,t),n=we.vertL1dist(r,t),a=.5*n/(o+n),s=.5*o/(o+n);t.coords[0]+=a*e.coords[0]+s*r.coords[0],t.coords[1]+=a*e.coords[1]+s*r.coords[1],t.coords[2]+=a*e.coords[2]+s*r.coords[2]},i.getIntersectData=function(t,e,r,o,n,a){e.coords[0]=e.coords[1]=e.coords[2]=0,e.idx=-1,i.vertexWeights(e,r,o),i.vertexWeights(e,n,a)},i.checkForRightSplice=function(t,e){var r=i.regionBelow(e),o=e.eUp,n=r.eUp;if(we.vertLeq(o.Org,n.Org)){if(we.edgeSign(n.Dst,o.Org,n.Org)>0)return!1;we.vertEq(o.Org,n.Org)?o.Org!==n.Org&&(t.pq.delete(o.Org.pqHandle),i.spliceMergeVertices(t,n.Oprev,o)):(t.mesh.splitEdge(n.Sym),t.mesh.splice(o,n.Oprev),e.dirty=r.dirty=!0)}else{if(we.edgeSign(o.Dst,n.Org,o.Org)<0)return!1;i.regionAbove(e).dirty=e.dirty=!0,t.mesh.splitEdge(o.Sym),t.mesh.splice(n.Oprev,o)}return!0},i.checkForLeftSplice=function(t,e){var r=i.regionBelow(e),o=e.eUp,n=r.eUp,a;if(Oe(!we.vertEq(o.Dst,n.Dst)),we.vertLeq(o.Dst,n.Dst)){if(we.edgeSign(o.Dst,n.Dst,o.Org)<0)return!1;i.regionAbove(e).dirty=e.dirty=!0,a=t.mesh.splitEdge(o),t.mesh.splice(n.Sym,a),a.Lface.inside=e.inside}else{if(we.edgeSign(n.Dst,o.Dst,n.Org)>0)return!1;e.dirty=r.dirty=!0,a=t.mesh.splitEdge(n),t.mesh.splice(o.Lnext,n.Sym),a.Rface.inside=e.inside}return!0},i.checkForIntersect=function(t,e){var r=i.regionBelow(e),o=e.eUp,n=r.eUp,a=o.Org,s=n.Org,l=o.Dst,c=n.Dst,u,d,p=new qa,f,h;if(Oe(!we.vertEq(c,l)),Oe(we.edgeSign(l,t.event,a)<=0),Oe(we.edgeSign(c,t.event,s)>=0),Oe(a!==t.event&&s!==t.event),Oe(!e.fixUpperEdge&&!r.fixUpperEdge),a===s||(u=Math.min(a.t,l.t),d=Math.max(s.t,c.t),u>d))return!1;if(we.vertLeq(a,s)){if(we.edgeSign(c,a,s)>0)return!1}else if(we.edgeSign(l,s,a)<0)return!1;return i.debugEvent(t),we.intersect(l,a,c,s,p),Oe(Math.min(a.t,l.t)<=p.t),Oe(p.t<=Math.max(s.t,c.t)),Oe(Math.min(c.s,l.s)<=p.s),Oe(p.s<=Math.max(s.s,a.s)),we.vertLeq(p,t.event)&&(p.s=t.event.s,p.t=t.event.t),f=we.vertLeq(a,s)?a:s,we.vertLeq(f,p)&&(p.s=f.s,p.t=f.t),we.vertEq(p,a)||we.vertEq(p,s)?(i.checkForRightSplice(t,e),!1):!we.vertEq(l,t.event)&&we.edgeSign(l,t.event,p)>=0||!we.vertEq(c,t.event)&&we.edgeSign(c,t.event,p)<=0?c===t.event?(t.mesh.splitEdge(o.Sym),t.mesh.splice(n.Sym,o),e=i.topLeftRegion(t,e),o=i.regionBelow(e).eUp,i.finishLeftRegions(t,i.regionBelow(e),r),i.addRightEdges(t,e,o.Oprev,o,o,!0),!0):l===t.event?(t.mesh.splitEdge(n.Sym),t.mesh.splice(o.Lnext,n.Oprev),r=e,e=i.topRightRegion(e),h=i.regionBelow(e).eUp.Rprev,r.eUp=n.Oprev,n=i.finishLeftRegions(t,r,null),i.addRightEdges(t,e,n.Onext,o.Rprev,h,!0),!0):(we.edgeSign(l,t.event,p)>=0&&(i.regionAbove(e).dirty=e.dirty=!0,t.mesh.splitEdge(o.Sym),o.Org.s=t.event.s,o.Org.t=t.event.t),we.edgeSign(c,t.event,p)<=0&&(e.dirty=r.dirty=!0,t.mesh.splitEdge(n.Sym),n.Org.s=t.event.s,n.Org.t=t.event.t),!1):(t.mesh.splitEdge(o.Sym),t.mesh.splitEdge(n.Sym),t.mesh.splice(n.Oprev,o),o.Org.s=p.s,o.Org.t=p.t,o.Org.pqHandle=t.pq.insert(o.Org),i.getIntersectData(t,o.Org,a,l,s,c),i.regionAbove(e).dirty=e.dirty=r.dirty=!0,!1)},i.walkDirtyRegions=function(t,e){for(var r=i.regionBelow(e),o,n;;){for(;r.dirty;)e=r,r=i.regionBelow(r);if(!e.dirty&&(r=e,e=i.regionAbove(e),e===null||!e.dirty))return;if(e.dirty=!1,o=e.eUp,n=r.eUp,o.Dst!==n.Dst&&i.checkForLeftSplice(t,e)&&(r.fixUpperEdge?(i.deleteRegion(t,r),t.mesh.delete(n),r=i.regionBelow(e),n=r.eUp):e.fixUpperEdge&&(i.deleteRegion(t,e),t.mesh.delete(o),e=i.regionAbove(r),o=e.eUp)),o.Org!==n.Org)if(o.Dst!==n.Dst&&!e.fixUpperEdge&&!r.fixUpperEdge&&(o.Dst===t.event||n.Dst===t.event)){if(i.checkForIntersect(t,e))return}else i.checkForRightSplice(t,e);o.Org===n.Org&&o.Dst===n.Dst&&(i.addWinding(n,o),i.deleteRegion(t,e),t.mesh.delete(o),e=i.regionAbove(r))}},i.connectRightVertex=function(t,e,r){var o,n=r.Onext,a=i.regionBelow(e),s=e.eUp,l=a.eUp,c=!1;if(s.Dst!==l.Dst&&i.checkForIntersect(t,e),we.vertEq(s.Org,t.event)&&(t.mesh.splice(n.Oprev,s),e=i.topLeftRegion(t,e),n=i.regionBelow(e).eUp,i.finishLeftRegions(t,i.regionBelow(e),a),c=!0),we.vertEq(l.Org,t.event)&&(t.mesh.splice(r,l.Oprev),r=i.finishLeftRegions(t,a,null),c=!0),c){i.addRightEdges(t,e,r.Onext,n,n,!0);return}we.vertLeq(l.Org,s.Org)?o=l.Oprev:o=s,o=t.mesh.connect(r.Lprev,o),i.addRightEdges(t,e,o,o.Onext,o.Onext,!1),o.Sym.activeRegion.fixUpperEdge=!0,i.walkDirtyRegions(t,e)},i.connectLeftDegenerate=function(t,e,r){var o,n,a,s,l;if(o=e.eUp,we.vertEq(o.Org,r)){Oe(!1),i.spliceMergeVertices(t,o,r.anEdge);return}if(!we.vertEq(o.Dst,r)){t.mesh.splitEdge(o.Sym),e.fixUpperEdge&&(t.mesh.delete(o.Onext),e.fixUpperEdge=!1),t.mesh.splice(r.anEdge,o),i.sweepEvent(t,r);return}Oe(!1),e=i.topRightRegion(e),l=i.regionBelow(e),a=l.eUp.Sym,n=s=a.Onext,l.fixUpperEdge&&(Oe(n!==a),i.deleteRegion(t,l),t.mesh.delete(a),a=n.Oprev),t.mesh.splice(r.anEdge,a),we.edgeGoesLeft(n)||(n=null),i.addRightEdges(t,e,a.Onext,s,n,!0)},i.connectLeftVertex=function(t,e){var r,o,n,a,s,l,c=new If;if(c.eUp=e.anEdge.Sym,r=t.dict.search(c).key,o=i.regionBelow(r),!!o){if(a=r.eUp,s=o.eUp,we.edgeSign(a.Dst,e,a.Org)===0){i.connectLeftDegenerate(t,r,e);return}if(n=we.vertLeq(s.Dst,a.Dst)?r:o,r.inside||n.fixUpperEdge){if(n===r)l=t.mesh.connect(e.anEdge.Sym,a.Lnext);else{var u=t.mesh.connect(s.Dnext,e.anEdge);l=u.Sym}n.fixUpperEdge?i.fixUpperEdge(t,n,l):i.computeWinding(t,i.addRegionBelow(t,r,l)),i.sweepEvent(t,e)}else i.addRightEdges(t,r,e.anEdge,e.anEdge,null,!0)}},i.sweepEvent=function(t,e){t.event=e,i.debugEvent(t);for(var r=e.anEdge;r.activeRegion===null;)if(r=r.Onext,r===e.anEdge){i.connectLeftVertex(t,e);return}var o=i.topLeftRegion(t,r.activeRegion);Oe(o!==null);var n=i.regionBelow(o),a=n.eUp,s=i.finishLeftRegions(t,n,null);s.Onext===a?i.connectRightVertex(t,o,s):i.addRightEdges(t,o,s.Onext,a,a,!0)},i.addSentinel=function(t,e,r,o){var n=new If,a=t.mesh.makeEdge();a.Org.s=r,a.Org.t=o,a.Dst.s=e,a.Dst.t=o,t.event=a.Dst,n.eUp=a,n.windingNumber=0,n.inside=!1,n.fixUpperEdge=!1,n.sentinel=!0,n.dirty=!1,n.nodeUp=t.dict.insert(n)},i.initEdgeDict=function(t){t.dict=new WM(t,i.edgeLeq);var e=t.bmax[0]-t.bmin[0],r=t.bmax[1]-t.bmin[1],o=t.bmin[0]-e,n=t.bmax[0]+e,a=t.bmin[1]-r,s=t.bmax[1]+r;i.addSentinel(t,o,n,a),i.addSentinel(t,o,n,s)},i.doneEdgeDict=function(t){for(var e,r=0;(e=t.dict.min().key)!==null;)e.sentinel||(Oe(e.fixUpperEdge),Oe(++r===1)),Oe(e.windingNumber===0),i.deleteRegion(t,e)},i.removeDegenerateEdges=function(t){var e,r,o,n=t.mesh.eHead;for(e=n.next;e!==n;e=r)r=e.next,o=e.Lnext,we.vertEq(e.Org,e.Dst)&&e.Lnext.Lnext!==e&&(i.spliceMergeVertices(t,o,e),t.mesh.delete(e),e=o,o=e.Lnext),o.Lnext===e&&(o!==e&&((o===r||o===r.Sym)&&(r=r.next),t.mesh.delete(o)),(e===r||e===r.Sym)&&(r=r.next),t.mesh.delete(e))},i.initPriorityQ=function(t){var e,r,o,n=0;for(o=t.mesh.vHead,r=o.next;r!==o;r=r.next)n++;for(n+=8,e=t.pq=new HM(n,we.vertLeq),o=t.mesh.vHead,r=o.next;r!==o;r=r.next)r.pqHandle=e.insert(r);return r!==o?!1:(e.init(),!0)},i.donePriorityQ=function(t){t.pq=null},i.removeDegenerateFaces=function(t,e){var r,o,n;for(r=e.fHead.next;r!==e.fHead;r=o)o=r.next,n=r.anEdge,Oe(n.Lnext!==n),n.Lnext.Lnext===n&&(i.addWinding(n.Onext,n),t.mesh.delete(n));return!0},i.computeInterior=function(t,e){e===void 0&&(e=!0);var r,o;if(i.removeDegenerateEdges(t),!i.initPriorityQ(t))return!1;for(i.initEdgeDict(t);(r=t.pq.extractMin())!==null;){for(;o=t.pq.min(),!(o===null||!we.vertEq(o,r));)o=t.pq.extractMin(),i.spliceMergeVertices(t,r.anEdge,o.anEdge);i.sweepEvent(t,r)}return t.event=t.dict.min().key.eUp.Org,i.debugEvent(t),i.doneEdgeDict(t),i.donePriorityQ(t),i.removeDegenerateFaces(t,t.mesh)?(e&&t.mesh.check(),!0):!1},i}(),$M=function(){function i(){this.mesh=new Nx,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=$e.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 i.prototype.dot_=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]},i.prototype.normalize_=function(t){var e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2];if(!e)throw"Zero-size vector!";e=Math.sqrt(e),t[0]/=e,t[1]/=e,t[2]/=e},i.prototype.longAxis_=function(t){var e=0;return Math.abs(t[1])>Math.abs(t[0])&&(e=1),Math.abs(t[2])>Math.abs(t[e])&&(e=2),e},i.prototype.computeNormal_=function(t){var e,r,o,n,a,s,l=[0,0,0],c=[0,0,0],u=[0,0,0],d=[0,0,0],p=[0,0,0],f=[null,null,null],h=[null,null,null],m=this.mesh.vHead;e=m.next;for(var y=0;y<3;++y)n=e.coords[y],c[y]=n,h[y]=e,l[y]=n,f[y]=e;for(e=m.next;e!==m;e=e.next)for(var x=0;x<3;++x)n=e.coords[x],n<c[x]&&(c[x]=n,h[x]=e),n>l[x]&&(l[x]=n,f[x]=e);var v=0;if(l[1]-c[1]>l[0]-c[0]&&(v=1),l[2]-c[2]>l[v]-c[v]&&(v=2),c[v]>=l[v]){t[0]=0,t[1]=0,t[2]=1;return}for(s=0,r=h[v],o=f[v],u[0]=r.coords[0]-o.coords[0],u[1]=r.coords[1]-o.coords[1],u[2]=r.coords[2]-o.coords[2],e=m.next;e!==m;e=e.next)d[0]=e.coords[0]-o.coords[0],d[1]=e.coords[1]-o.coords[1],d[2]=e.coords[2]-o.coords[2],p[0]=u[1]*d[2]-u[2]*d[1],p[1]=u[2]*d[0]-u[0]*d[2],p[2]=u[0]*d[1]-u[1]*d[0],a=p[0]*p[0]+p[1]*p[1]+p[2]*p[2],a>s&&(s=a,t[0]=p[0],t[1]=p[1],t[2]=p[2]);s<=0&&(t[0]=t[1]=t[2]=0,t[this.longAxis_(u)]=1)},i.prototype.checkOrientation_=function(){for(var t=this.mesh.fHead,e,r=this.mesh.vHead,o,n=0,a=t.next;a!==t;a=a.next)if(o=a.anEdge,!(o.winding<=0))do n+=(o.Org.s-o.Dst.s)*(o.Org.t+o.Dst.t),o=o.Lnext;while(o!==a.anEdge);if(n<0){for(e=r.next;e!==r;e=e.next)e.t=-e.t;this.tUnit[0]=-this.tUnit[0],this.tUnit[1]=-this.tUnit[1],this.tUnit[2]=-this.tUnit[2]}},i.prototype.projectPolygon_=function(){var t=this.mesh.vHead,e=[0,0,0],r,o,n=!1;e[0]=this.normal[0],e[1]=this.normal[1],e[2]=this.normal[2],!e[0]&&!e[1]&&!e[2]&&(this.computeNormal_(e),n=!0),r=this.sUnit,o=this.tUnit;var a=this.longAxis_(e);r[a]=0,r[(a+1)%3]=1,r[(a+2)%3]=0,o[a]=0,o[(a+1)%3]=0,o[(a+2)%3]=e[a]>0?1:-1;for(var s=t.next;s!==t;s=s.next)s.s=this.dot_(s.coords,r),s.t=this.dot_(s.coords,o);n&&this.checkOrientation_();for(var l=!0,c=t.next;c!==t;c=c.next)l?(this.bmin[0]=this.bmax[0]=c.s,this.bmin[1]=this.bmax[1]=c.t,l=!1):(c.s<this.bmin[0]&&(this.bmin[0]=c.s),c.s>this.bmax[0]&&(this.bmax[0]=c.s),c.t<this.bmin[1]&&(this.bmin[1]=c.t),c.t>this.bmax[1]&&(this.bmax[1]=c.t))},i.prototype.addWinding_=function(t,e){t.winding+=e.winding,t.Sym.winding+=e.Sym.winding},i.prototype.tessellateMonoRegion_=function(t,e){var r,o;if(r=e.anEdge,!(r.Lnext!==r&&r.Lnext.Lnext!==r))throw"Mono region invalid";for(;we.vertLeq(r.Dst,r.Org);r=r.Lprev);for(;we.vertLeq(r.Org,r.Dst);r=r.Lnext);o=r.Lprev;for(var n=void 0;r.Lnext!==o;)if(we.vertLeq(r.Dst,o.Org)){for(;o.Lnext!==r&&(we.edgeGoesLeft(o.Lnext)||we.edgeSign(o.Org,o.Dst,o.Lnext.Dst)<=0);)n=t.connect(o.Lnext,o),o=n.Sym;o=o.Lprev}else{for(;o.Lnext!==r&&(we.edgeGoesRight(r.Lprev)||we.edgeSign(r.Dst,r.Org,r.Lprev.Org)>=0);)n=t.connect(r,r.Lprev),r=n.Sym;r=r.Lnext}if(o.Lnext===r)throw"Mono region invalid";for(;o.Lnext.Lnext!==r;)n=t.connect(o.Lnext,o),o=n.Sym;return!0},i.prototype.tessellateInterior_=function(t){for(var e,r=t.fHead.next;r!==t.fHead;r=e)if(e=r.next,r.inside&&!this.tessellateMonoRegion_(t,r))return!1;return!0},i.prototype.discardExterior_=function(t){for(var e,r=t.fHead.next;r!==t.fHead;r=e)e=r.next,r.inside||t.zapFace(r)},i.prototype.setWindingNumber_=function(t,e,r){for(var o,n=t.eHead.next;n!==t.eHead;n=o)o=n.next,n.Rface.inside!==n.Lface.inside?n.winding=n.Lface.inside?e:-e:r?t.delete(n):n.winding=0},i.prototype.getNeighbourFace_=function(t){return!t.Rface||!t.Rface.inside?-1:t.Rface.n},i.prototype.outputPolymesh_=function(t,e,r,o){var n,a=0,s=0,l;r>3&&t.mergeConvexFaces(r);for(var c=t.vHead.next;c!==t.vHead;c=c.next)c.n=-1;for(var u=t.fHead.next;u!==t.fHead;u=u.next)if(u.n=-1,!!u.inside){n=u.anEdge,l=0;do{var c=n.Org;c.n===-1&&(c.n=s,s++),l++,n=n.Lnext}while(n!==u.anEdge);if(l>r)throw"Face vertex greater that support polygon";u.n=a,++a}this.elementCount=a,e===St.CONNECTED_POLYGONS&&(a*=2),this.elements=[],this.elements.length=a*r,this.vertexCount=s,this.vertices=[],this.vertices.length=s*o,this.vertexIndices=[],this.vertexIndices.length=s;for(var c=t.vHead.next;c!==t.vHead;c=c.next)if(c.n!==-1){var d=c.n*o;this.vertices[d+0]=c.coords[0],this.vertices[d+1]=c.coords[1],o>2&&(this.vertices[d+2]=c.coords[2]),this.vertexIndices[c.n]=c.idx}for(var p=0,u=t.fHead.next;u!==t.fHead;u=u.next)if(!!u.inside){n=u.anEdge,l=0;do{var c=n.Org;this.elements[p++]=c.n,l++,n=n.Lnext}while(n!==u.anEdge);for(var f=l;f<r;++f)this.elements[p++]=-1;if(e===St.CONNECTED_POLYGONS){n=u.anEdge;do this.elements[p++]=this.getNeighbourFace_(n),n=n.Lnext;while(n!==u.anEdge);for(var h=l;h<r;++h)this.elements[p++]=-1}}},i.prototype.outputContours_=function(t,e){var r,o,n=0,a=0;this.vertexCount=0,this.elementCount=0;for(var s=t.fHead.next;s!==t.fHead;s=s.next)if(!!s.inside){o=r=s.anEdge;do this.vertexCount++,r=r.Lnext;while(r!==o);this.elementCount++}this.elements=[],this.elements.length=this.elementCount*2,this.vertices=[],this.vertices.length=this.vertexCount*e,this.vertexIndices=[],this.vertexIndices.length=this.vertexCount;var l=0,c=0,u=0;n=0;for(var s=t.fHead.next;s!==t.fHead;s=s.next)if(!!s.inside){a=0,o=r=s.anEdge;do this.vertices[l++]=r.Org.coords[0],this.vertices[l++]=r.Org.coords[1],e>2&&(this.vertices[l++]=r.Org.coords[2]),this.vertexIndices[c++]=this.vertexIdCallback?this.vertexIdCallback(r):r.Org.idx,a++,r=r.Lnext;while(r!==o);this.elements[u++]=n,this.elements[u++]=a,n+=a}},i.prototype.addContour=function(t,e){this.mesh===null&&(this.mesh=new Nx),t<2&&(t=2),t>3&&(t=3);for(var r=null,o=0;o<e.length;o+=t)r===null?(r=this.mesh.makeEdge(),this.mesh.splice(r,r.Sym)):(this.mesh.splitEdge(r),r=r.Lnext),r.Org.coords[0]=e[o+0],r.Org.coords[1]=e[o+1],t>2?r.Org.coords[2]=e[o+2]:r.Org.coords[2]=0,r.Org.idx=this.vertexIndexCounter++,this.edgeCreateCallback&&this.edgeCreateCallback(r),r.winding=1,r.Sym.winding=-1},i.prototype.tesselate=function(t,e,r,o,n,a){if(t===void 0&&(t=$e.ODD),e===void 0&&(e=St.POLYGONS),a===void 0&&(a=!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=t,o<2&&(o=2),o>3&&(o=3),!this.mesh)return!1;this.projectPolygon_(),qM.computeInterior(this,a);var s=this.mesh;return e===St.BOUNDARY_CONTOURS?this.setWindingNumber_(s,1,!0):this.tessellateInterior_(s),a&&s.check(),e===St.BOUNDARY_CONTOURS?this.outputContours_(s,o):this.outputPolymesh_(s,e,r,o),!0},i}();function uo(i){var t=i.windingRule,e=t===void 0?$e.ODD:t,r=i.elementType,o=r===void 0?St.POLYGONS:r,n=i.polySize,a=n===void 0?3:n,s=i.vertexSize,l=s===void 0?2:s,c=i.normal,u=c===void 0?[0,0,1]:c,d=i.contours,p=d===void 0?[]:d,f=i.strict,h=f===void 0?!0:f,m=i.debug,y=m===void 0?!1:m;if(!p&&h)throw new Error("Contours can't be empty");if(!!p){var x=new $M;i.edgeCreateCallback&&(x.edgeCreateCallback=i.edgeCreateCallback),i.vertexIdCallback&&(x.vertexIdCallback=i.vertexIdCallback);for(var v=0;v<p.length;v++)x.addContour(l||2,p[v]);return x.tesselate(e,o,a,l,u,h),{vertices:x.vertices,vertexIndices:x.vertexIndices,vertexCount:x.vertexCount,elements:x.elements,elementCount:x.elementCount,mesh:y?x.mesh:void 0}}}var w5=$e.ODD,P5=$e.NONZERO,O5=$e.POSITIVE,T5=$e.NEGATIVE,C5=$e.ABS_GEQ_TWO,A5=St.POLYGONS,M5=St.CONNECTED_POLYGONS,I5=St.BOUNDARY_CONTOURS;var po=require("three");var ju=class{constructor(t=256,e=!1){this.capacity=t,this.size=0,this.debug=e,this.debug&&console.log(`allocating with cap ${t}`);let r=t*ju.eSize;this.buffer=new ArrayBuffer(r);let o=Float32Array.BYTES_PER_ELEMENT,n=0;this.positions=new Float32Array(this.buffer,n*o,3*t),n+=3*t,this.normals=new Float32Array(this.buffer,n*o,3*t),n+=3*t,this.uvs=new Float32Array(this.buffer,n*o,2*t)}realloc(t,e=!1){if(t<this.size)throw Error("cannot shrink buffer");if(t<=this.capacity&&!e)return;this.debug&&console.log(`resizing from ${this.capacity} \u2192 ${t}`);let r=t*ju.eSize,o=new ArrayBuffer(r),n=Float32Array.BYTES_PER_ELEMENT,a=0,s=new Float32Array(o,a*n,3*t);a+=3*t;let l=new Float32Array(o,a*n,3*t);a+=3*t;let c=new Float32Array(o,a*n,2*t);e?(s.set(this.positions.subarray(0,this.size*3)),l.set(this.normals.subarray(0,this.size*3)),c.set(this.uvs.subarray(0,this.size*2))):(s.set(this.positions),l.set(this.normals),c.set(this.uvs)),this.buffer=o,this.positions=s,this.normals=l,this.uvs=c,this.capacity=t}get(t=1){let e=this.size+t;if(e>this.capacity){let o=this.capacity;for(;e>o;)o*=2;this.realloc(o)}let r=this.size;return this.size=e,r}reserve(t){let e=this.size+t;e>this.capacity&&this.realloc(e)}shrink(){this.debug&&console.log(`shrinking ${this.capacity} \u2192 ${this.size}`),this.realloc(this.size,!0)}},Al=ju;Al.eSize=(3+3+2)*Float32Array.BYTES_PER_ELEMENT;var Ml=class{constructor(t=[],e=(r,o)=>r<o?-1:r>o?1:0){if(this.data=t,this.length=this.data.length,this.compare=e,this.length>0)for(let r=(this.length>>1)-1;r>=0;r--)this._down(r)}push(t){this.data.push(t),this._up(this.length++)}pop(){if(this.length===0)return;let t=this.data[0],e=this.data.pop();return--this.length>0&&(this.data[0]=e,this._down(0)),t}peek(){return this.data[0]}_up(t){let{data:e,compare:r}=this,o=e[t];for(;t>0;){let n=t-1>>1,a=e[n];if(r(o,a)>=0)break;e[t]=a,t=n}e[t]=o}_down(t){let{data:e,compare:r}=this,o=this.length>>1,n=e[t];for(;t<o;){let a=(t<<1)+1,s=a+1;if(s<this.length&&r(e[s],e[a])<0&&(a=s),r(e[a],n)>=0)break;e[t]=e[a],t=a}e[t]=n}};function Ef(i,t,e=1,r=!1){let o=1/0,n=1/0,a=-1/0,s=-1/0;for(let[v,w]of i[0])v<o&&(o=v),w<n&&(n=w),v>a&&(a=v),w>s&&(s=w);let l=a-o,c=s-n,u=Math.max(e,Math.min(l,c));if(u===e){let v=[o,n];return v.distance=0,v.distance}let d=new Ml([],(v,w)=>w.max-v.max),p=YM(i),f=new Uu(o+l/2,n+c/2,0,i);f.d>p.d&&(p=f);let h=2;function m(v,w,O){let S=new Uu(v,w,O,i);if(h++,S.max>p.d+e&&d.push(S),S.d>p.d&&(p=S,r&&console.log(`found best ${Math.round(1e4*S.d)/1e4} after ${h} probes`),p.d>t))return t}let y=u/2;for(let v=o;v<a;v+=u)for(let w=n;w<s;w+=u)m(v+y,w+y,y);for(;d.length;){let{max:v,x:w,y:O,h:S}=d.pop();if(v-p.d<=e)break;y=S/2,m(w-y,O-y,y),m(w+y,O-y,y),m(w-y,O+y,y),m(w+y,O+y,y)}r&&console.log(`num probes: ${h}
3
3
  best distance: ${p.d}`);let x=[p.x,p.y];return x.distance=p.d,x.distance}function Uu(i,t,e,r){this.x=i,this.y=t,this.h=e,this.d=XM(i,t,r),this.max=this.d+this.h*Math.SQRT2}function XM(i,t,e){let r=!1,o=1/0;for(let n of e)for(let a=0,s=n.length,l=s-1;a<s;l=a++){let c=n[a],u=n[l];c[1]>t!=u[1]>t&&i<(u[0]-c[0])*(t-c[1])/(u[1]-c[1])+c[0]&&(r=!r),o=Math.min(o,KM(i,t,c,u))}return o===0?0:(r?1:-1)*Math.sqrt(o)}function YM(i){let t=0,e=0,r=0,o=i[0];for(let a=0,s=o.length,l=s-1;a<s;l=a++){let c=o[a],u=o[l],d=c[0]*u[1]-u[0]*c[1];e+=(c[0]+u[0])*d,r+=(c[1]+u[1])*d,t+=d*3}let n=new Uu(e/t,r/t,0,i);return t===0||n.d<0?new Uu(o[0][0],o[0][1],0,i):n}function KM(i,t,e,r){let o=e[0],n=e[1],a=r[0]-o,s=r[1]-n;if(a!==0||s!==0){let l=((i-o)*a+(t-n)*s)/(a*a+s*s);l>1?(o=r[0],n=r[1]):l>0&&(o+=a*l,n+=s*l)}return a=i-o,s=t-n,a*a+s*s}var Il={vertices:[160,160,-160,160,-160,-160,160,-160],vertexIndices:[1,0,3,2],vertexCount:4,elements:[0,4],elementCount:1,mesh:void 0},Df={vertices:[],vertexIndices:[],vertexCount:0,elements:[],elementCount:0,mesh:void 0},_f={vertices:[-160,160,160,-160,160,160,-160,-160],vertexIndices:[1,3,0,2],vertexCount:4,elements:[0,1,2,1,0,3],elementCount:2,mesh:void 0},Nf=(i,t)=>([e,r])=>(r<e&&(r+=t),(i>=e?i:i+t)<=r),ki=class extends po.BufferGeometry{constructor(e,r,o=0,n=12,a=3,s=$e.ODD,l=!1){super();this.forPathBevel=l;this.type="ShapeGeometry";this.vertexCache={};this._shape=e,this._depth=r,this._curveSegments=n,this._bevelSegmentsInput=a;let c=this._shape.extractShapePointsToFlatArray([],n),u=this._shape.shapeHoles.map(I=>{let N=I.extractShapePointsToFlatArray([],n),_=[];for(let R=N.length-1;R>=1;R-=2){let V=N[R-1],U=N[R-0];_.push(V,U)}return _}),d=[],p=[];for(let I=0;I<c.length;I+=2)p.push([c[I],c[I+1]]);d.push(p);for(let I=0;I<u.length;I++){let N=u[I],_=[];for(let R=0;R<N.length;R+=2)_.push([N[R],N[R+1]]);d.push(_)}let f;e.isText?f=new po.Box2().setFromPoints(e.points.map(N=>N.position)).getSize(new po.Vector2).length()*.1:d[0].length===0?f=o:o>0?f=Ef(d,o):f=1e-5,o<=0?(this._bevel=0,this._bevelSegments=0):(this._bevel=Math.min(o,f,r/2),this._bevelSegments=Math.floor(a));let h;try{h=uo({windingRule:s,elementType:St.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[c]})}catch{h=Il}let m;try{m=uo({windingRule:$e.ODD,elementType:St.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[...u]})}catch{m=Df}if(!h)throw new Error("error generating geometry");let y=h.elementCount;if(m){h.elementCount+=m.elementCount;for(let I=0;I<m.elements.length;I++){let N=m.elements[I],_=I%2===0?h.vertexCount:0;h.elements.push(N+_)}for(let I=0;I<m.vertexIndices.length;I++){let N=m.vertexIndices[I],_=h.vertexCount;h.vertexIndices.push(N+_)}for(let I=0;I<m.vertices.length;I++){let N=m.vertices[I];h.vertices.push(N)}}let x=1/0,v=-1/0,w=1/0,O=-1/0;for(let I=0,N=h.vertexCount;I<N;I++){let _=I*2,R=h.vertices[_+0],V=h.vertices[_+1];R<x&&(x=R),R>v&&(v=R),V<w&&(w=V),V>O&&(O=V)}this._minX=x,this._minY=w,this._width=v-x,this._height=O-w,this._buffer=new Al(this._computeBufferEstimatedSize(h));let S=[],T=[];for(let I=h.elementCount-1;I>=0;I--){let N=I>=y,_=I*2,R=h.elements[_+0],V=h.elements[_+1],U=R+V,B={start:R,count:V,normals:[],continuous:[],concave:[]},q=R,j=U-1,F=R+1,H=this._shape.roundedCurves.length;do{let re=q-R,K=h.vertices[j*2+0],Z=h.vertices[j*2+1],Q=h.vertices[q*2+0],$=h.vertices[q*2+1],pe=h.vertices[F*2+0],le=h.vertices[F*2+1],ie=Q-K,ue=$-Z,ae=Math.sqrt(ie*ie+ue*ue);ie/=ae,ue/=ae;let ge=Q-pe,me=$-le,ye=Math.sqrt(ge*ge+me*me);ge/=ye,me/=ye,B.normals[re*2+0]=-me,B.normals[re*2+1]=ge,B.concave[re]=ie*me-ue*ge>0;let ve=h.vertexIndices[q];if(Array.isArray(ve))B.continuous[re]=!1;else{let[xe,C]=this._shape.getCurveIndexFromVertexId(ve-1,!0);if(C>0&&C<1)B.continuous[re]=!0;else{let ne=C===1?xe+1:xe-1;ne=(ne+H)%H;let Ve=C===1?0:1,ke=this._shape.roundedCurves[xe].getTangent(C),Ge=this._shape.roundedCurves[ne].getTangent(Ve);B.continuous[re]=ke.dot(Ge)>.95}}N&&(B.normals[re*2+0]*=-1,B.normals[re*2+1]*=-1),[j,q,F]=[q,F,F+1],F>=U&&(F-=V)}while(F!==R+1);let W=[];W.push({bevelI:0,angle:0,size:0,boundary:{vertices:h.vertices.slice(R*2,U*2),vertexCount:V,vertexIndices:new Array(V).fill(!0).map((re,K)=>[K,K]),elements:[0,V],elementCount:1,mesh:null},reverseMap:[],insetPoints:h.vertices.slice(R*2,U*2)});let ee=0;for(let re=1;re<=this._bevelSegments;re++){let K=re/this._bevelSegments*Math.PI/2,Z=(1-Math.cos(K))*this._bevel,Q=[],$=[],pe=[],le=[],ie=0;for(let ae=0;ae<V;ae++){let ge=ae*2,me=(ae-1+V)%V*2,ye=h.vertices[B.start*2+ge+0],ve=h.vertices[B.start*2+ge+1],xe=-B.normals[me+0]*Z,C=-B.normals[me+1]*Z,ne=-B.normals[ge+0]*Z,Ve=-B.normals[ge+1]*Z;if(B.concave[ae]||!B.concave[ae]&&N){let ke=Math.atan2(C,xe),Ge=Math.atan2(Ve,ne);Ge>ke&&(Ge-=Math.PI*2);let Ce=Ge-ke;if(B.continuous[ae]||N){let zt=ke+Ce/2,_e=Math.cos(zt)*Z,Bt=Math.sin(zt)*Z;Q[2*ie+0]=ye+_e*(N?-1:1),Q[2*ie+1]=ve+Bt*(N?-1:1),le[ie]=ae,ie++}else{let zt=Math.max(1,Math.floor(n/4*Math.abs(Ce)/Math.PI));for(let _e=0;_e<=zt;_e++){let Bt=ke+Ce*(_e/zt),Gt=Math.cos(Bt)*Z,fn=Math.sin(Bt)*Z;Q[2*ie+0]=ye+Gt,Q[2*ie+1]=ve+fn,le[ie]=ae,ie++}}}else Q[2*ie+0]=ye+xe,Q[2*ie+1]=ve+C,le[ie]=ae,$[ae]=ie,ie++,Q[2*ie+0]=ye,Q[2*ie+1]=ve,le[ie]=ae,ie++,Q[2*ie+0]=ye+ne,Q[2*ie+1]=ve+Ve,le[ie]=ae,pe[ae]=ie,ie++}let ue=uo({windingRule:$e.POSITIVE,elementType:St.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[Q],edgeCreateCallback:ae=>{let me=ae.Org.idx,ye=le[me],ve=le[(me+1)%le.length];ae.idx=[ye,ve],ae.Sym.idx=[ve,ye]},vertexIdCallback:ae=>{let ge=ae.Lprev.idx;return[ge?ge[1]:0,ae.idx?ae.idx[0]:0]}});if(!ue)throw console.log("Error"),new Error(`error generating bevel geometry for ${re}'th loop`);if(!ue.vertexCount){let ae=(re-1)/this._bevelSegments*Math.PI/2;ee=(1-Math.sin(ae))*this._bevel;break}for(let ae=0;ae<ue.vertexIndices.length;ae++){let[ge,me]=ue.vertexIndices[ae];if(ge===me)continue;let ye=me;me<ge&&(ye+=V);for(let ve=ge;ve<ye;ve++){let xe=ve%V,C=(ve+1)%V;if(!B.continuous[xe]||!B.continuous[C]){ue.vertexIndices[ae]=[ge,xe],ue.vertexIndices.splice(ae+1,0,[C,me]),ue.vertices.splice((ae+1)*2,0,ue.vertices[ae*2],ue.vertices[ae*2+1]);break}}}W.push({bevelI:re,angle:K,size:Z,boundary:ue,reverseMap:le,insetPoints:Q})}let te=(re,K,Z)=>{let Q=0,$=re.boundary.vertexIndices.length;for(;Q<$&&Z(re.boundary.vertexIndices[K]);)K=(K+1)%$,Q++;return Q},Y=S.length;for(let re=1;re<W.length;re++){let K=W[re-1],Z=W[re],Q=K.boundary.vertexIndices.length,$=Z.boundary.vertexIndices.length;if(!Q||!$)break;let pe=B.concave.length,le=0,ie=Nf(le,V);for(;!K.boundary.vertexIndices.filter(ie).length||!Z.boundary.vertexIndices.filter(ie).length;)le++,ie=Nf(le,V);let ue=K.boundary.vertexIndices.findIndex(ie),ae=Z.boundary.vertexIndices.findIndex(ie);do ue=(ue+1)%Q;while(ie(K.boundary.vertexIndices[ue]));do ae=(ae+1)%$;while(ie(Z.boundary.vertexIndices[ae]));le=(le+1)%V;let ge=le,me=0,ye=this._buildBevelVert(B,K,(ue-1+Q)%Q,void 0,me),ve=this._buildBevelVert(B,Z,(ae-1+$)%$,void 0,me),xe=ye,C=ve,ne,Ve,ke=!1;do{me=(le||pe)/pe,ie=Nf(le,V);let Ge=te(K,ue,ie),Ce=te(Z,ae,ie),zt=ke;if(ke=!1,Ge&&!Ce){for(let _e=0;_e<Ge;_e++)ne=this._buildBevelVert(B,K,(ue+_e)%Q,_e/(Ge-1),me),S.push(xe.topN,ne.topP,C.topN),l===!1&&S.push(ne.bottomP,xe.bottomN,C.bottomN),xe=ne;ke=!0}else if(!Ge&&Ce)for(let _e=0;_e<Ce;_e++)Ve=this._buildBevelVert(B,Z,(ae+_e)%$,_e/(Ce-1),me),S.push(C.topN,xe.topP,Ve.topP),l===!1&&S.push(xe.bottomP,C.bottomN,Ve.bottomP),C=Ve;else if(Ge&&Ce)if(ne=this._buildBevelVert(B,K,ue,0,me),Ve=this._buildBevelVert(B,Z,ae,0,me),zt?(S.push(xe.topN,Ve.topP,C.topN),S.push(xe.topN,ne.topP,Ve.topP),l===!1&&(S.push(Ve.bottomP,xe.bottomN,C.bottomN),S.push(Ve.bottomP,ne.bottomP,xe.bottomN))):(S.push(C.topN,xe.topN,ne.topP),S.push(C.topN,ne.topP,Ve.topP),l===!1&&(S.push(ne.bottomP,xe.bottomN,C.bottomN),S.push(ne.bottomP,C.bottomN,Ve.bottomP))),xe=ne,C=Ve,Ge===Ce)for(let _e=1;_e<Ge;_e++)ne=this._buildBevelVert(B,K,(ue+_e)%Q,_e/(Ge-1),me),Ve=this._buildBevelVert(B,Z,(ae+_e)%$,_e/(Ce-1),me),S.push(xe.topN,ne.topP,C.topN),S.push(C.topN,ne.topP,Ve.topP),l===!1&&(S.push(ne.bottomP,xe.bottomN,C.bottomN),S.push(ne.bottomP,C.bottomN,Ve.bottomP)),xe=ne,C=Ve;else if(Ge>Ce){let _e=Ge/Ce,Bt=0;for(let Gt=1;Gt<Ge;Gt++)ne=this._buildBevelVert(B,K,(ue+Gt)%Q,Gt/(Ge-1),me),S.push(xe.topN,ne.topP,C.topN),l===!1&&S.push(ne.bottomP,xe.bottomN,C.bottomN),xe=ne,Gt>(Bt+1)*_e&&(Bt++,Ve=this._buildBevelVert(B,Z,(ae+Bt)%$,Bt/(Ce-1),me),S.push(C.topN,ne.topP,Ve.topP),l===!1&&S.push(ne.bottomP,C.bottomN,Ve.bottomP),C=Ve)}else{let _e=Ce/Ge,Bt=0;for(let Gt=1;Gt<Ce;Gt++)Ve=this._buildBevelVert(B,Z,(ae+Gt)%$,Gt/(Ce-1),me),S.push(C.topN,ne.topP,Ve.topP),l===!1&&S.push(ne.bottomP,C.bottomN,Ve.bottomP),C=Ve,Gt>(Bt+1)*_e&&(Bt++,ne=this._buildBevelVert(B,K,(ue+Bt)%Q,Bt/(Ge-1),me),S.push(xe.topN,ne.topP,C.topN),l===!1&&S.push(ne.bottomP,xe.bottomN,C.bottomN),xe=ne)}ue=(ue+Ge)%Q,ae=(ae+Ce)%$,le=(le+1)%pe}while(le!==ge)}if(l===!1&&this._depth>this._bevel*2&&this._buildWall(W,B,S),N){let re=[];for(let K=S.length-1;K>=Y+2;K-=3){let Z=S[K-2],Q=S[K-1],$=S[K-0];re.push($,Q,Z)}S.splice(Y,S.length-Y,...re)}if(N){let re=[];for(let K=W[W.length-1].boundary.vertices.length-1;K>=1;K-=2){let Z=W[W.length-1].boundary.vertices[K-1],Q=W[W.length-1].boundary.vertices[K-0];re.push(Z,Q)}T.push(re)}if(!N){let re=W[W.length-1],K;try{K=uo({windingRule:W.length>1?$e.POSITIVE:$e.ODD,elementType:St.POLYGONS,vertexSize:2,strict:!0,contours:[re.insetPoints,...T]})}catch{K=_f}if(!K)throw new Error("Error generating geometry for surface");u.length===0&&this._bevel<f&&Object.assign(this,{useNgonForTopBottomFaceDuringBake:!0});for(let Z=0;Z<K.elementCount*3;Z+=3){let Q=this._buildSurfaceVert(K,K.elements[Z+0],ee),$=this._buildSurfaceVert(K,K.elements[Z+1],ee),pe=this._buildSurfaceVert(K,K.elements[Z+2],ee);S.push(Q.top,$.top,pe.top),l===!1&&S.push(pe.bottom,$.bottom,Q.bottom)}}this.vertexCache={}}this._buffer.shrink();let M=new po.BufferAttribute(Uint32Array.from(S),1),g=new po.BufferAttribute(this._buffer.positions,3),D=new po.BufferAttribute(this._buffer.normals,3),E=new po.BufferAttribute(this._buffer.uvs,2);g.needsUpdate=!0,D.needsUpdate=!0,E.needsUpdate=!0,M.needsUpdate=!0,this.setAttribute("position",g),this.setAttribute("normal",D),this.setAttribute("uv",E),this.setIndex(M)}_computeBufferEstimatedSize(e){return e.vertexCount*2*(2+this._bevelSegments)}_buildWall(e,r,o){let n=e[0];for(let a=0,s=n.boundary.vertexCount;a<s;a++){let l=this._buildBevelVert(r,n,a),c=this._buildBevelVert(r,n,(a+1)%s);o.push(c.topP,l.topN,l.bottomN),o.push(c.topP,l.bottomN,c.bottomP)}}_buildSurfaceVert(e,r,o){let n=r.toString();if(n in this.vertexCache)return this.vertexCache[n];let a=e.vertices[r*2+0],s=e.vertices[r*2+1],l=(a-this._minX)/this._width,c=(s-this._minY)/this._height;this.forPathBevel&&(c=1);let u=this._buffer.get(this.forPathBevel?1:2),d=u*3,p=u*2,f={top:u+0,bottom:u+1};return this._buffer.positions[d+0]=a,this._buffer.positions[d+1]=s,this._buffer.positions[d+2]=this.forPathBevel?this._bevel:this._depth-o,this._buffer.normals[d+0]=0,this._buffer.normals[d+1]=0,this._buffer.normals[d+2]=1,this._buffer.uvs[p+0]=l,this._buffer.uvs[p+1]=c,this.forPathBevel===!1&&(this._buffer.positions[d+3]=a,this._buffer.positions[d+4]=s,this._buffer.positions[d+5]=o,this._buffer.normals[d+3]=0,this._buffer.normals[d+4]=0,this._buffer.normals[d+5]=-1,this._buffer.uvs[p+2]=l,this._buffer.uvs[p+3]=c),this.vertexCache[n]=f,f}_buildBevelVert(e,r,o,n=1,a){let s=`${r.bevelI}:${o}`;if(s in this.vertexCache&&a!==0&&a!==1&&(!a||a===this.vertexCache[s].pathBevelUCoord))return this.vertexCache[s];let[l,c]=r.boundary.vertexIndices[o],u,d,p,f;l!==c?(d=l,u=c,f=!1,p=e.continuous[d]&&e.continuous[u]):(u=l,d=(u-1+e.count)%e.count,f=e.concave[u]&&r.bevelI>0,p=e.continuous[u]||f);let h=Math.cos(r.angle),m=Math.sin(r.angle),y=o*2,x=u*2,v=d*2,w=r.boundary.vertices[y+0],O=r.boundary.vertices[y+1],S=(1-m)*this._bevel,T=(w-this._minX)/this._width,M=(O-this._minY)/this._height;this.forPathBevel&&(a!==void 0&&(T=a),M=1);let g=e.normals[x+0],D=e.normals[x+1],E=e.normals[v+0],I=e.normals[v+1];if(f){let U=E-g,B=I-D;g=g+U*(1-n),D=D+B*(1-n);let q=Math.sqrt(g*g+D*D);g/=q,D/=q}let N=this.forPathBevel?this._buffer.get(p?1:2):this._buffer.get(p?2:4),_=N*3,R=N*2,V={i:o,fi:u,topP:N+0,topN:N+0,bottomP:N+1,bottomN:N+1,pathBevelUCoord:a};return this._buffer.positions[_+0]=w,this._buffer.positions[_+1]=O,this._buffer.positions[_+2]=(this.forPathBevel?this._bevel:this._depth)-S,this._buffer.normals[_+0]=g*h,this._buffer.normals[_+1]=D*h,this._buffer.normals[_+2]=m,this._buffer.uvs[R+0]=T,this._buffer.uvs[R+1]=M,this.forPathBevel===!1&&(this._buffer.positions[_+3]=w,this._buffer.positions[_+4]=O,this._buffer.positions[_+5]=S,this._buffer.normals[_+3]=g*h,this._buffer.normals[_+4]=D*h,this._buffer.normals[_+5]=-m,this._buffer.uvs[R+2]=M,this._buffer.uvs[R+3]=T),p||(this.forPathBevel?(N+=1,_+=3,R+=2):(N+=2,_+=6,R+=4),V.topP=N+0,V.bottomP=N+1,this._buffer.positions[_+0]=w,this._buffer.positions[_+1]=O,this._buffer.positions[_+2]=(this.forPathBevel?this._bevel:this._depth)-S,this._buffer.normals[_+0]=E*h,this._buffer.normals[_+1]=I*h,this._buffer.normals[_+2]=m,this._buffer.uvs[R+0]=T,this._buffer.uvs[R+1]=M,this.forPathBevel===!1&&(this._buffer.positions[_+3]=w,this._buffer.positions[_+4]=O,this._buffer.positions[_+5]=S,this._buffer.normals[_+3]=E*h,this._buffer.normals[_+4]=I*h,this._buffer.normals[_+5]=-m,this._buffer.uvs[R+2]=M,this._buffer.uvs[R+3]=T)),this.vertexCache[s]=V,V}clone(){let e=new ki(this._shape,this._depth,this._bevel,this._curveSegments,this._bevelSegmentsInput);return e.userData=Jo(this.userData),e}};var $a=class extends In.BufferGeometry{constructor(e,r=12,o={}){super();this.type="ShapeGeometry";this.windingRule=$e.ODD;this.elementType=St.POLYGONS;this.polySize=3;this.vertexSize=2;this.strict=!0;this._shape=e,this._curveSegments=r,this._triangulationOptions=Object.assign({windingRule:$e.ODD,elementType:St.POLYGONS,polySize:3,vertexSize:2,strict:!0},o);let n=this._shape.extractShapePointsToFlatArray([],this._curveSegments),a=this._shape.shapeHoles.map(h=>h.extractShapePointsToFlatArray([],this._curveSegments)),s,l=!0,c=!0,u,d;for(let h=0,m=n.length/2;h<m;h++){let y=h*2,x=n[y+0],v=n[y+1];if(u!==void 0&&x!==u&&(l=!1),d!==void 0&&v!==d&&(c=!1),u=x,d=v,!l&&!c)break}if(!l&&!c)try{s=uo({contours:[n,...a],windingRule:this._triangulationOptions.windingRule,elementType:this._triangulationOptions.elementType,polySize:this._triangulationOptions.polySize,vertexSize:this._triangulationOptions.vertexSize,strict:this._triangulationOptions.strict})}catch{s=Il}let p=s?.vertexCount??1,f=s?.elementCount??1;if(this._positionAttribute=new In.BufferAttribute(new Float32Array(p*3),3),this._normalAttribute=new In.BufferAttribute(new Float32Array(p*3),3),this._uvAttribute=new In.BufferAttribute(new Float32Array(p*2),2),this._indexAttribute=new In.BufferAttribute(new Uint32Array(f*3),1),s){let h=1/0,m=-1/0,y=1/0,x=-1/0;for(let O=0,S=p;O<S;O++){let T=O*2,M=s.vertices[T+0],g=s.vertices[T+1];M<h&&(h=M),M>m&&(m=M),g<y&&(y=g),g>x&&(x=g)}let v=m-h,w=x-y;for(let O=0,S=p;O<S;O++){let T=O*2,M=s.vertices[T+0],g=s.vertices[T+1],D=(M-h)/v,E=(g-y)/w;this._positionAttribute.setXYZ(O,M,g,0),this._normalAttribute.setXYZ(O,0,0,1),this._uvAttribute.setXY(O,D,E)}for(let O=0,S=f;O<S;O++){let T=O*3,M=s.elements[T+0],g=s.elements[T+1],D=s.elements[T+2];this._indexAttribute.setX(T+0,M),this._indexAttribute.setX(T+1,g),this._indexAttribute.setX(T+2,D)}}this.setAttribute("position",this._positionAttribute),this.setAttribute("normal",this._normalAttribute),this.setAttribute("uv",this._uvAttribute),this.setIndex(this._indexAttribute),this.setDrawRange(0,(s?.elementCount??1)*3)}clone(){let e=new $a(this._shape,this._curveSegments);return e.userData=Jo(this.userData),e}};var Xa=class extends ki{constructor(e,r,o=0,n=12,a=3,s=$e.ODD){super(e,r,o,n,a,s);this.type="ShapeGeometry"}_computeBufferEstimatedSize(e){return e.vertexCount*2*(2+this._bevelSegments)}_buildWall(e,r,o){let n=e[0];for(let a=0,s=n.boundary.vertexCount;a<s;a++){let l=this._buildBevelVert(r,n,a),c=this._buildBevelVert(r,n,(a+1)%s);o.push(c.topP,l.topN,l.bottomN),o.push(c.topP,l.bottomN,c.bottomP)}}clone(){let e=new Xa(this._shape,this._depth,this._bevel,this._curveSegments,this._bevelSegmentsInput);return e.userData=Jo(this.userData),e}};var Pr=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,subdivisions:40,roundness:0,extrudeBevelSize:0,extrudeBevelSegments:3,windingRule:$e.ODD},i.parameters),r=Math.abs(e.width),o=Math.abs(e.height??e.width),n=Math.abs(e.depth??0),a=i.shape??t?.shape,s=a?.roundness??e.roundness;a!==void 0&&(a instanceof Xe?(a.width!==r||a.height!==o)&&a.applySize(r,o):a=new Xe(r,o).fromJSON(a),i.parameters?.roundness!==void 0&&i.parameters?.roundness>0&&a.update());let l=a??new Xe(r,o);return{parameters:Object.assign(e,{width:r,height:o,depth:n,roundness:s}),shape:l}}static build(i){let{depth:t,extrudeBevelSize:e,extrudeBevelSegments:r,subdivisions:o,roundness:n,windingRule:a}=i.parameters;i.shape.roundness=n;let s;return t<=0?s=new $a(i.shape,o,{windingRule:a}):s=new Xa(i.shape,t,e,o,r,a),Object.assign(s,{userData:{...i,type:"VectorGeometry"}})}};var fo=require("three"),Bx=Math.PI*2,Ka=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:64,angle:360,innerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1},i.parameters);return e.angle=fo.MathUtils.clamp(e.angle,0,360),{shape:i.shape&&i.shape instanceof Xe?i.shape:new Xe,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(i){let{width:t,height:e,spikes:r,angle:o,innerRadius:n,depth:a,extrudeBevelSize:s,extrudeBevelSegments:l}=i.parameters,c=i.shape,u=t*.5,d=e*.5,p=QM(c,u,d,o*Math.PI/180,r,n);c.isClosed=!0,c.update();let f;return o===0?(f=new fo.BufferGeometry,f.setAttribute("position",new fo.Float32BufferAttribute([],3))):f=Pr.create({shape:c,parameters:{subdivisions:p,depth:a,extrudeBevelSize:s,extrudeBevelSegments:l}}),Object.assign(f,{userData:{...i,type:"EllipseGeometry"}})}};function QM(i,t,e,r,o,n){if(r>=Bx)return o>30||o%4===0?(JM(i,t,e,n),Math.round(o/4)):Lx(i,r,o,t,e,n);r=Math.max(r,.001);let a={x:0,y:e},s=r+Math.PI*.5,l={x:Math.cos(s)*t,y:Math.sin(s)*e},c=Ex({px:a.x,py:a.y,cx:l.x,cy:l.y,rx:t,ry:e,largeArcFlag:r>Math.PI,sweepFlag:!0});return o>30||o%c.length===0?ZM(i,a.x,a.y,c,o,t,e,n):Lx(i,r,o,t,e,n)}function ZM(i,t,e,r,o,n,a,s){let l=Math.round(o/r.length);i.addPoint(Ya(t,e));for(let c=0,u=r.length;c<u;c++){let d=r[c],p=i.points[c],f=Ya(d.x,d.y);p.controls[1].position.set(d.x1,d.y1),f.controls[0].position.set(d.x2,d.y2),i.addPoint(f)}return s>0?Vx(i,n,a,s):i.addPoint(Ya(0,0)),l}function Lx(i,t,e,r,o,n){let a=-t/e;for(let s=0;s<=e;s++){let l=a*s,c=Math.sin(l)*r,u=Math.cos(l)*o;i.addPoint(Ya(c,u))}return t<Bx?n>0?Vx(i,r,o,n):i.addPoint(Ya(0,0)):(i.removePoint(i.points[i.points.length-1]),n>0&&zx(i,r,o,n)),1}function JM(i,t,e,r=0,o=0,n=0){let a=.5522847498,s=t*a,l=e*a;i.addPoint(ku(o-t,n,o-t,n-l,o-t,n+l)),i.addPoint(ku(o,n+e,o-s,n+e,o+s,n+e)),i.addPoint(ku(o+t,n,o+t,n+l,o+t,n-l)),i.addPoint(ku(o,n-e,o+s,n-e,o-s,n-e)),r>0&&zx(i,t,e,r)}function Ya(i,t){return new co(fo.MathUtils.generateUUID(),new fo.Vector2(i,t))}function ku(i,t,e,r,o,n){let a=Ya(i,t);return a.controls[0].position.set(e,r),a.controls[1].position.set(o,n),a}function Vx(i,t,e,r){Gx(i,t,e,r).forEach(n=>i.addPoint(n))}function zx(i,t,e,r){let o=Gx(i,t,e,r),n=new Xe;o.forEach(a=>n.addPoint(a)),n.isClosed=!0,i.shapeHoles.push(n)}function Gx(i,t,e,r){let o=r*t/100,n=o*(Math.abs(e)/Math.abs(t)),a=new fo.Vector2(o/t,n/e),s=i.points.map(l=>{let c=l.clone();return c.uuid=fo.MathUtils.generateUUID(),c}).reverse();return s.forEach(l=>{l.position.multiply(a);let c=l.controls[0].position.clone().multiply(a),u=l.controls[1].position.clone().multiply(a);l.controls[0].position.copy(u),l.controls[1].position.copy(c)}),s}var ho=require("three"),Fx=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,revolutions:2,segments:40,pathRadius:10,pathType:0,pathSegments:30,cornerRadius:30,cornerSegments:4},i.parameters),r=Math.abs(e.width),o=Math.abs(e.height??r),n=Math.abs(e.depth??r),a=Math.abs(Math.min(r,n))/2;return{parameters:Object.assign(e,{width:r,height:o,depth:n,radius:a,segments:Math.round(e.segments),pathSegments:Math.round(e.pathSegments),cornerSegments:Math.round(e.cornerSegments)})}}static build(i){let{width:t,height:e,depth:r,radius:o,revolutions:n,segments:a,pathRadius:s,pathType:l,pathSegments:c,cornerRadius:u,cornerSegments:d}=i.parameters,p=new El(!1,t,e,r,o,n,a,s,l,c,u,d);return Object.assign(p,{userData:{...i,type:"HelixGeometry"}})}},Rf=new ho.Uint32BufferAttribute([0,0,0],1),El=class extends ho.BufferGeometry{constructor(t=!0,e=1,r=1,o=1,n=1,a=1,s=1,l=1,c=1,u=1,d=1,p=1){if(super(),a===0)return;let f=t&&a===1;f&&(p=0),d>100&&(d=100),d===0&&(p=0);let h=()=>new ho.Vector3,m=new ho.Vector3,y=h(),x=h(),v=h(),w,O,S,T,M,g,D,E,I=h(),N=h(),_=h(),R=h(),V=h(),U=h(),B=h(),q=h(),j=r-2*l+.001,F=j/a,H=Math.ceil(s*a),W=H+1,ee=j/H,te=-j/2,Y=u+1,re=2*Math.PI/u,K=Math.PI/2/p,Z=.01,Q=Math.min((1-d/100)*l,l-Z),$=l-Q,pe=0,le=2,ie=p*le+le,ue=Y*ie/le,ae=ue+Y*W,ge=Math.max(0,Y*(W+ie)),[me,ye,ve]=[3,3,2].map(xt=>Array(ge*xt).fill(0)),xe=[],C=n-l;function ne(xt,at){let ro=Math.PI/2;g=at*ee,E=2*Math.PI*(g%F)/F+ro,g+=te,D=Math.sin(E)*C,M=Math.cos(E)*C,t?xt.set(M,D,g):xt.set(M,g,D)}ne(m,-1e-10),ne(y,0),I.copy(m),ne(m,1);let Ve=m.distanceTo(y),ke=f?0:$+Q,Ge=Ve*H+2*ke,Ce=Q,zt=Ge-ke;for(let xt=0;xt<=H;xt++){ne(x,xt),q.subVectors(x,I).normalize(),I.copy(x),U.copy(x).setComponent(+t+1,0).normalize(),B.crossVectors(q,U).normalize();let at=xt===0,ro=xt===H,up=at?3*Math.PI/2:K,dp=at?Ce:zt,mc=at?Y:ae,hn=at?0:ge-Y,Ot=q.clone().multiplyScalar(at?-$:$).add(x),pp=q.clone().multiplyScalar(at?-1:1).normalize();for(let Gr=0;Gr<Y;Gr++){let Js=Gr*re;if(N.addVectors(m.copy(U).multiplyScalar(l*Math.cos(Js)),y.copy(B).multiplyScalar(l*Math.sin(Js))),_.copy(N).normalize(),at||ro){f||(pe=hn+Gr,[0,1,2].forEach(ur=>{me[pe*3+ur]=Ot.getComponent(ur),ye[pe*3+ur]=pp.getComponent(ur)}),ve[pe*2]=+ro,ve[pe*2+1]=Gr/u),y.copy(_).multiplyScalar(Q),v.addVectors(x,y);for(let ur=0;ur<p;ur++){let mn=ur*K+up;R.addVectors(m.copy(q).multiplyScalar($*Math.sin(mn)),y.copy(_).multiplyScalar($*Math.cos(mn))),V.copy(R).normalize(),y.addVectors(v,R),R.normalize(),pe=mc+ur*Y+Gr,[0,1,2].forEach($n=>{me[pe*3+$n]=y.getComponent($n),ye[pe*3+$n]=V.getComponent($n)});let yc=+at+Math.sin(mn);ve[pe*2]=(dp+$*yc)/Ge,ve[pe*2+1]=Gr/u}}y.addVectors(x,N),pe=ue+xt*Y+Gr,[0,1,2].forEach(ur=>{me[pe*3+ur]=y.getComponent(ur),ye[pe*3+ur]=_.getComponent(ur)}),ve[pe*2]=(ke+xt*Ve)/Ge,ve[pe*2+1]=Gr/u}}let _e=W+2*p+le,Bt=1,[Gt,fn]=[+f,_e-1];for(let xt=Gt;xt<=fn-1;xt++){let at=f&&xt===fn-1;for(let ro=0;ro<Y-1;ro++)w=xt*Y+ro,O=w+1,S=(at?ro:w)+Y,T=(at?ro+1:O)+Y,xt===0?xe.push(O,T,S):xt===_e-2?xe.push(w,O,S):xe.push(w,O,S,O,T,S)}this.setIndex(xe),this.setAttribute("position",new ho.Float32BufferAttribute(me,3)),this.setAttribute("normal",new ho.Float32BufferAttribute(ye,3)),this.setAttribute("uv",new ho.Float32BufferAttribute(ve,2))}getClosedTorusIndicesForBooleanOrSubdiv(){let t=this.userData.parameters,e=Math.ceil(t.tubularSegments),r=t.radialSegments+1,o=Array.from(this.getIndex().array),n,a,s,l,c=6*(e-1)*t.radialSegments,u=e,d=u===e;for(let p=0;p<t.radialSegments;p++)n=u*r+p,a=n+1,s=(d?p:n)+r,l=(d?p+1:a)+r,o[c++]=n,o[c++]=a,o[c++]=s,o[c++]=a,o[c++]=l,o[c++]=s;return o.length=c,Rf.array=o,Rf.count=o.length,Rf}};var jx=require("three");var Ux=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,detail:0,corner:0,cornerSides:4},i.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(i){let{width:t,height:e,depth:r,detail:o,corner:n,cornerSides:a}=i.parameters,s=o===0&&n!==0?new Nl(t*.5,n,a):new jx.IcosahedronGeometry(t*.5,o);return s.scale(1,e/t,r/t),Object.assign(s,{userData:{...i,type:"IcosahedronGeometry"}})}},Nl=class extends ji{constructor(t=1,e=.2,r=4){let o=(1+Math.sqrt(5))/2,n=[-1,o,0,1,o,0,-1,-o,0,1,-o,0,0,-1,o,0,1,o,0,-1,-o,0,1,-o,o,0,-1,o,0,1,-o,0,-1,-o,0,1],a=[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1],s="IcosahedronGeometry";super(n,a,s,t,e,r),this.type=s}static fromJSON(t){return new Nl(t.radius,t.corner,t.cornerSides)}};var Hu=require("three"),kx=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){(i.parameters?.points??[]).forEach(r=>{Array.isArray(r)&&(r.x=r[0],r.y=r[1])});let e=Object.assign({},t?.parameters??{width:100,segments:64,verticalSegments:64,points:[{x:0,y:-50,id:0},{x:50,y:-50,id:1},{x:50,y:50,id:2},{x:0,y:50,id:3}]},i.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(i){let{points:t,segments:e,verticalSegments:r}=i.parameters,o=new Hu.Shape;o.moveTo(t[0].x,t[0].y),o.bezierCurveTo(t[1].x,t[1].y,t[2].x,t[2].y,t[3].x,t[3].y);let n=new Hu.LatheGeometry(o.extractPoints(r).shape,e);return n.rotateZ(Math.PI),Object.assign(n,{userData:{...i,type:"LatheGeometry"}})}};var Lo=require("three");var ci=require("three");var he=require("three"),Ro=new he.Matrix4,Lf=new he.Object3D,Wu=new he.Vector3,Hi=class extends he.EventDispatcher{constructor(){super(),this.uuid=he.MathUtils.generateUUID(),this.name="",this.type="Geometry",this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.elementsNeedUpdate=!1,this.verticesNeedUpdate=!1,this.uvsNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.lineDistancesNeedUpdate=!1,this.groupsNeedUpdate=!1}applyMatrix4(t){let e=new he.Matrix3().getNormalMatrix(t);for(let r=0,o=this.vertices.length;r<o;r++)this.vertices[r].applyMatrix4(t);for(let r=0,o=this.faces.length;r<o;r++){let n=this.faces[r];n.normal.applyMatrix3(e).normalize();for(let a=0,s=n.vertexNormals.length;a<s;a++)n.vertexNormals[a].applyMatrix3(e).normalize()}return this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this.verticesNeedUpdate=!0,this.normalsNeedUpdate=!0,this}rotateX(t){return Ro.makeRotationX(t),this.applyMatrix4(Ro),this}rotateY(t){return Ro.makeRotationY(t),this.applyMatrix4(Ro),this}rotateZ(t){return Ro.makeRotationZ(t),this.applyMatrix4(Ro),this}translate(t,e,r){return Ro.makeTranslation(t,e,r),this.applyMatrix4(Ro),this}scale(t,e,r){return Ro.makeScale(t,e,r),this.applyMatrix4(Ro),this}lookAt(t){return Lf.lookAt(t),Lf.updateMatrix(),this.applyMatrix4(Lf.matrix),this}fromBufferGeometry(t){let e=this,r=t.index!==null?t.index:void 0,o=t.attributes;if(o.position===void 0)return console.error("THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion."),this;let n=o.position,a=o.normal,s=o.color,l=o.uv,c=o.uv2;c!==void 0&&(this.faceVertexUvs[1]=[]);for(let p=0;p<n.count;p++)e.vertices.push(new he.Vector3().fromBufferAttribute(n,p)),s!==void 0&&e.colors.push(new he.Color().fromBufferAttribute(s,p));function u(p,f,h,m){let y=s===void 0?[]:[e.colors[p].clone(),e.colors[f].clone(),e.colors[h].clone()],x=a===void 0?[]:[new he.Vector3().fromBufferAttribute(a,p),new he.Vector3().fromBufferAttribute(a,f),new he.Vector3().fromBufferAttribute(a,h)],v=new Qa(p,f,h,x,y,m);e.faces.push(v),l!==void 0&&e.faceVertexUvs[0].push([new he.Vector2().fromBufferAttribute(l,p),new he.Vector2().fromBufferAttribute(l,f),new he.Vector2().fromBufferAttribute(l,h)]),c!==void 0&&e.faceVertexUvs[1].push([new he.Vector2().fromBufferAttribute(c,p),new he.Vector2().fromBufferAttribute(c,f),new he.Vector2().fromBufferAttribute(c,h)])}let d=t.groups;if(d.length>0)for(let p=0;p<d.length;p++){let f=d[p],h=f.start,m=f.count;for(let y=h,x=h+m;y<x;y+=3)r!==void 0?u(r.getX(y),r.getX(y+1),r.getX(y+2),f.materialIndex):u(y,y+1,y+2,f.materialIndex)}else if(r!==void 0)for(let p=0;p<r.count;p+=3)u(r.getX(p),r.getX(p+1),r.getX(p+2));else for(let p=0;p<n.count;p+=3)u(p,p+1,p+2);return this.computeFaceNormals(),t.boundingBox!==null&&(this.boundingBox=t.boundingBox.clone()),t.boundingSphere!==null&&(this.boundingSphere=t.boundingSphere.clone()),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(Wu).negate(),this.translate(Wu.x,Wu.y,Wu.z),this}normalize(){this.computeBoundingSphere();let t=this.boundingSphere.center,e=this.boundingSphere.radius,r=e===0?1:1/e,o=new he.Matrix4;return o.set(r,0,0,-r*t.x,0,r,0,-r*t.y,0,0,r,-r*t.z,0,0,0,1),this.applyMatrix4(o),this}computeFaceNormals(){let t=new he.Vector3,e=new he.Vector3;for(let r=0,o=this.faces.length;r<o;r++){let n=this.faces[r],a=this.vertices[n.a],s=this.vertices[n.b],l=this.vertices[n.c];t.subVectors(l,s),e.subVectors(a,s),t.cross(e),t.normalize(),n.normal.copy(t)}}computeVertexNormals(t=!0){let e=new Array(this.vertices.length);for(let r=0,o=this.vertices.length;r<o;r++)e[r]=new he.Vector3;if(t){let r=new he.Vector3,o=new he.Vector3;for(let n=0,a=this.faces.length;n<a;n++){let s=this.faces[n],l=this.vertices[s.a],c=this.vertices[s.b],u=this.vertices[s.c];r.subVectors(u,c),o.subVectors(l,c),r.cross(o),e[s.a].add(r),e[s.b].add(r),e[s.c].add(r)}}else{this.computeFaceNormals();for(let r=0,o=this.faces.length;r<o;r++){let n=this.faces[r];e[n.a].add(n.normal),e[n.b].add(n.normal),e[n.c].add(n.normal)}}for(let r=0,o=this.vertices.length;r<o;r++)e[r].normalize();for(let r=0,o=this.faces.length;r<o;r++){let n=this.faces[r],a=n.vertexNormals;a.length===3?(a[0].copy(e[n.a]),a[1].copy(e[n.b]),a[2].copy(e[n.c])):(a[0]=e[n.a].clone(),a[1]=e[n.b].clone(),a[2]=e[n.c].clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeFlatVertexNormals(){this.computeFaceNormals();for(let t=0,e=this.faces.length;t<e;t++){let r=this.faces[t],o=r.vertexNormals;o.length===3?(o[0].copy(r.normal),o[1].copy(r.normal),o[2].copy(r.normal)):(o[0]=r.normal.clone(),o[1]=r.normal.clone(),o[2]=r.normal.clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeMorphNormals(){for(let e=0,r=this.faces.length;e<r;e++){let o=this.faces[e];o.__originalFaceNormal?o.__originalFaceNormal.copy(o.normal):o.__originalFaceNormal=o.normal.clone(),o.__originalVertexNormals||(o.__originalVertexNormals=[]);for(let n=0,a=o.vertexNormals.length;n<a;n++)o.__originalVertexNormals[n]?o.__originalVertexNormals[n].copy(o.vertexNormals[n]):o.__originalVertexNormals[n]=o.vertexNormals[n].clone()}let t=new Hi;t.faces=this.faces;for(let e=0,r=this.morphTargets.length;e<r;e++){if(!this.morphNormals[e]){this.morphNormals[e]={},this.morphNormals[e].faceNormals=[],this.morphNormals[e].vertexNormals=[];let n=this.morphNormals[e].faceNormals,a=this.morphNormals[e].vertexNormals;for(let s=0,l=this.faces.length;s<l;s++){let c=new he.Vector3,u={a:new he.Vector3,b:new he.Vector3,c:new he.Vector3};n.push(c),a.push(u)}}let o=this.morphNormals[e];t.vertices=this.morphTargets[e].vertices,t.computeFaceNormals(),t.computeVertexNormals();for(let n=0,a=this.faces.length;n<a;n++){let s=this.faces[n],l=o.faceNormals[n],c=o.vertexNormals[n];l.copy(s.normal),c.a.copy(s.vertexNormals[0]),c.b.copy(s.vertexNormals[1]),c.c.copy(s.vertexNormals[2])}}for(let e=0,r=this.faces.length;e<r;e++){let o=this.faces[e];o.normal=o.__originalFaceNormal,o.vertexNormals=o.__originalVertexNormals}}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new he.Box3),this.boundingBox.setFromPoints(this.vertices)}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new he.Sphere),this.boundingSphere.setFromPoints(this.vertices)}merge(t,e,r=0){if(!(t&&t.isGeometry)){console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",t);return}let o,n=this.vertices.length,a=this.vertices,s=t.vertices,l=this.faces,c=t.faces,u=this.colors,d=t.colors;e!==void 0&&(o=new he.Matrix3().getNormalMatrix(e));for(let p=0,f=s.length;p<f;p++){let m=s[p].clone();e!==void 0&&m.applyMatrix4(e),a.push(m)}for(let p=0,f=d.length;p<f;p++)u.push(d[p].clone());for(let p=0,f=c.length;p<f;p++){let h=c[p],m,y,x=h.vertexNormals,v=h.vertexColors,w=new Qa(h.a+n,h.b+n,h.c+n);w.normal.copy(h.normal),o!==void 0&&w.normal.applyMatrix3(o).normalize();for(let O=0,S=x.length;O<S;O++)m=x[O].clone(),o!==void 0&&m.applyMatrix3(o).normalize(),w.vertexNormals.push(m);w.color.copy(h.color);for(let O=0,S=v.length;O<S;O++)y=v[O],w.vertexColors.push(y.clone());w.materialIndex=h.materialIndex+r,l.push(w)}for(let p=0,f=t.faceVertexUvs.length;p<f;p++){let h=t.faceVertexUvs[p];this.faceVertexUvs[p]===void 0&&(this.faceVertexUvs[p]=[]);for(let m=0,y=h.length;m<y;m++){let x=h[m],v=[];for(let w=0,O=x.length;w<O;w++)v.push(x[w].clone());this.faceVertexUvs[p].push(v)}}}mergeMesh(t){if(!(t&&t.isMesh)){console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.",t);return}t.matrixAutoUpdate&&t.updateMatrix(),this.merge(t.geometry,t.matrix)}mergeVertices(t=4){let e={},r=[],o=[],n=Math.pow(10,t);for(let l=0,c=this.vertices.length;l<c;l++){let u=this.vertices[l],d=Math.round(u.x*n)+"_"+Math.round(u.y*n)+"_"+Math.round(u.z*n);e[d]===void 0?(e[d]=l,r.push(this.vertices[l]),o[l]=r.length-1):o[l]=o[e[d]]}let a=[];for(let l=0,c=this.faces.length;l<c;l++){let u=this.faces[l];u.a=o[u.a],u.b=o[u.b],u.c=o[u.c];let d=[u.a,u.b,u.c];for(let p=0;p<3;p++)if(d[p]===d[(p+1)%3]){a.push(l);break}}for(let l=a.length-1;l>=0;l--){let c=a[l];this.faces.splice(c,1);for(let u=0,d=this.faceVertexUvs.length;u<d;u++)this.faceVertexUvs[u].splice(c,1)}let s=this.vertices.length-r.length;return this.vertices=r,s}setFromPoints(t){this.vertices=[];for(let e=0,r=t.length;e<r;e++){let o=t[e];this.vertices.push(new he.Vector3(o.x,o.y,o.z||0))}return this}sortFacesByMaterialIndex(){let t=this.faces,e=t.length;for(let l=0;l<e;l++)t[l]._id=l;function r(l,c){return l.materialIndex-c.materialIndex}t.sort(r);let o=this.faceVertexUvs[0],n=this.faceVertexUvs[1],a,s;o&&o.length===e&&(a=[]),n&&n.length===e&&(s=[]);for(let l=0;l<e;l++){let c=t[l]._id;a&&a.push(o[c]),s&&s.push(n[c])}a&&(this.faceVertexUvs[0]=a),s&&(this.faceVertexUvs[1]=s)}toJSON(){let t={metadata:{version:4.5,type:"Geometry",generator:"Geometry.toJSON"}};if(t.uuid=this.uuid,t.type=this.type,this.name!==""&&(t.name=this.name),this.parameters!==void 0){let h=this.parameters;for(let m in h)h[m]!==void 0&&(t[m]=h[m]);return t}let e=[];for(let h=0;h<this.vertices.length;h++){let m=this.vertices[h];e.push(m.x,m.y,m.z)}let r=[],o=[],n={},a=[],s={},l=[],c={};for(let h=0;h<this.faces.length;h++){let m=this.faces[h],y=!0,x=!1,v=this.faceVertexUvs[0][h]!==void 0,w=m.normal.length()>0,O=m.vertexNormals.length>0,S=m.color.r!==1||m.color.g!==1||m.color.b!==1,T=m.vertexColors.length>0,M=0;if(M=u(M,0,0),M=u(M,1,y),M=u(M,2,x),M=u(M,3,v),M=u(M,4,w),M=u(M,5,O),M=u(M,6,S),M=u(M,7,T),r.push(M),r.push(m.a,m.b,m.c),r.push(m.materialIndex),v){let g=this.faceVertexUvs[0][h];r.push(f(g[0]),f(g[1]),f(g[2]))}if(w&&r.push(d(m.normal)),O){let g=m.vertexNormals;r.push(d(g[0]),d(g[1]),d(g[2]))}if(S&&r.push(p(m.color)),T){let g=m.vertexColors;r.push(p(g[0]),p(g[1]),p(g[2]))}}function u(h,m,y){return y?h|1<<m:h&~(1<<m)}function d(h){let m=h.x.toString()+h.y.toString()+h.z.toString();return n[m]!==void 0||(n[m]=o.length/3,o.push(h.x,h.y,h.z)),n[m]}function p(h){let m=h.r.toString()+h.g.toString()+h.b.toString();return s[m]!==void 0||(s[m]=a.length,a.push(h.getHex())),s[m]}function f(h){let m=h.x.toString()+h.y.toString();return c[m]!==void 0||(c[m]=l.length/2,l.push(h.x,h.y)),c[m]}return t.data={},t.data.vertices=e,t.data.normals=o,a.length>0&&(t.data.colors=a),l.length>0&&(t.data.uvs=[l]),t.data.faces=r,t}clone(){return new Hi().copy(this)}copy(t){this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.name=t.name;let e=t.vertices;for(let p=0,f=e.length;p<f;p++)this.vertices.push(e[p].clone());let r=t.colors;for(let p=0,f=r.length;p<f;p++)this.colors.push(r[p].clone());let o=t.faces;for(let p=0,f=o.length;p<f;p++)this.faces.push(o[p].clone());for(let p=0,f=t.faceVertexUvs.length;p<f;p++){let h=t.faceVertexUvs[p];this.faceVertexUvs[p]===void 0&&(this.faceVertexUvs[p]=[]);for(let m=0,y=h.length;m<y;m++){let x=h[m],v=[];for(let w=0,O=x.length;w<O;w++){let S=x[w];v.push(S.clone())}this.faceVertexUvs[p].push(v)}}let n=t.morphTargets;for(let p=0,f=n.length;p<f;p++){let h={};if(h.name=n[p].name,n[p].vertices!==void 0){h.vertices=[];for(let m=0,y=n[p].vertices.length;m<y;m++)h.vertices.push(n[p].vertices[m].clone())}if(n[p].normals!==void 0){h.normals=[];for(let m=0,y=n[p].normals.length;m<y;m++)h.normals.push(n[p].normals[m].clone())}this.morphTargets.push(h)}let a=t.morphNormals;for(let p=0,f=a.length;p<f;p++){let h={};if(a[p].vertexNormals!==void 0){h.vertexNormals=[];for(let m=0,y=a[p].vertexNormals.length;m<y;m++){let x=a[p].vertexNormals[m],v={};v.a=x.a.clone(),v.b=x.b.clone(),v.c=x.c.clone(),h.vertexNormals.push(v)}}if(a[p].faceNormals!==void 0){h.faceNormals=[];for(let m=0,y=a[p].faceNormals.length;m<y;m++)h.faceNormals.push(a[p].faceNormals[m].clone())}this.morphNormals.push(h)}let s=t.skinWeights;for(let p=0,f=s.length;p<f;p++)this.skinWeights.push(s[p].clone());let l=t.skinIndices;for(let p=0,f=l.length;p<f;p++)this.skinIndices.push(l[p].clone());let c=t.lineDistances;for(let p=0,f=c.length;p<f;p++)this.lineDistances.push(c[p]);let u=t.boundingBox;u!==null&&(this.boundingBox=u.clone());let d=t.boundingSphere;return d!==null&&(this.boundingSphere=d.clone()),this.elementsNeedUpdate=t.elementsNeedUpdate,this.verticesNeedUpdate=t.verticesNeedUpdate,this.uvsNeedUpdate=t.uvsNeedUpdate,this.normalsNeedUpdate=t.normalsNeedUpdate,this.colorsNeedUpdate=t.colorsNeedUpdate,this.lineDistancesNeedUpdate=t.lineDistancesNeedUpdate,this.groupsNeedUpdate=t.groupsNeedUpdate,this}toBufferGeometry(){let t=new Bf().fromGeometry(this),e=new he.BufferGeometry,r=new Float32Array(t.vertices.length*3);if(e.setAttribute("position",qu.call(new he.BufferAttribute(r,3),t.vertices)),t.normals.length>0){let o=new Float32Array(t.normals.length*3);e.setAttribute("normal",qu.call(new he.BufferAttribute(o,3),t.normals))}if(t.colors.length>0){let o=new Float32Array(t.colors.length*3);e.setAttribute("color",Hx.call(new he.BufferAttribute(o,3),t.colors))}if(t.uvs.length>0){let o=new Float32Array(t.uvs.length*2);e.setAttribute("uv",Wx.call(new he.BufferAttribute(o,2),t.uvs))}if(t.uvs2.length>0){let o=new Float32Array(t.uvs2.length*2);e.setAttribute("uv2",Wx.call(new he.BufferAttribute(o,2),t.uvs2))}e.groups=t.groups;for(let o in t.morphTargets){let n=[],a=t.morphTargets[o];for(let s=0,l=a.length;s<l;s++){let c=a[s],u=new he.Float32BufferAttribute(c.data.length*3,3);u.name=c.name,n.push(qu.call(u,c.data))}e.morphAttributes[o]=n}if(t.skinIndices.length>0){let o=new he.Float32BufferAttribute(t.skinIndices.length*4,4);e.setAttribute("skinIndex",qx.call(o,t.skinIndices))}if(t.skinWeights.length>0){let o=new he.Float32BufferAttribute(t.skinWeights.length*4,4);e.setAttribute("skinWeight",qx.call(o,t.skinWeights))}return t.boundingSphere!==null&&(e.boundingSphere=t.boundingSphere.clone()),t.boundingBox!==null&&(e.boundingBox=t.boundingBox.clone()),e}computeTangents(){console.error("THREE.Geometry: .computeTangents() has been removed.")}computeLineDistances(){console.error("THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.")}applyMatrix(t){return console.warn("THREE.Geometry: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(t)}dispose(){this.dispatchEvent({type:"dispose"})}static createBufferGeometryFromObject(t){let e=new he.BufferGeometry,r=t.geometry;if(t.isPoints||t.isLine){let o=new he.Float32BufferAttribute(r.vertices.length*3,3),n=new he.Float32BufferAttribute(r.colors.length*3,3);if(e.setAttribute("position",qu.call(o,r.vertices)),e.setAttribute("color",Hx.call(n,r.colors)),r.lineDistances&&r.lineDistances.length===r.vertices.length){let a=new he.Float32BufferAttribute(r.lineDistances.length,1);e.setAttribute("lineDistance",eI.call(a,r.lineDistances))}r.boundingSphere!==null&&(e.boundingSphere=r.boundingSphere.clone()),r.boundingBox!==null&&(e.boundingBox=r.boundingBox.clone())}else t.isMesh&&(e=r.toBufferGeometry());return e}};Hi.prototype.isGeometry=!0;var Bf=class{constructor(){this.vertices=[],this.normals=[],this.colors=[],this.uvs=[],this.uvs2=[],this.groups=[],this.morphTargets={},this.skinWeights=[],this.skinIndices=[],this.boundingBox=null,this.boundingSphere=null,this.verticesNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.uvsNeedUpdate=!1,this.groupsNeedUpdate=!1}computeGroups(t){let e=[],r,o,n,a=t.faces;for(o=0;o<a.length;o++){let s=a[o];s.materialIndex!==n&&(n=s.materialIndex,r!==void 0&&(r.count=o*3-r.start,e.push(r)),r={start:o*3,materialIndex:n})}r!==void 0&&(r.count=o*3-r.start,e.push(r)),this.groups=e}fromGeometry(t){let e=t.faces,r=t.vertices,o=t.faceVertexUvs,n=o[0]&&o[0].length>0,a=o[1]&&o[1].length>0,s=t.morphTargets,l=s.length,c;if(l>0){c=[];for(let x=0;x<l;x++)c[x]={name:s[x].name,data:[]};this.morphTargets.position=c}let u=t.morphNormals,d=u.length,p;if(d>0){p=[];for(let x=0;x<d;x++)p[x]={name:u[x].name,data:[]};this.morphTargets.normal=p}let f=t.skinIndices,h=t.skinWeights,m=f.length===r.length,y=h.length===r.length;r.length>0&&e.length===0&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(let x=0;x<e.length;x++){let v=e[x];this.vertices.push(r[v.a],r[v.b],r[v.c]);let w=v.vertexNormals;if(w.length===3)this.normals.push(w[0],w[1],w[2]);else{let S=v.normal;this.normals.push(S,S,S)}let O=v.vertexColors;if(O.length===3)this.colors.push(O[0],O[1],O[2]);else{let S=v.color;this.colors.push(S,S,S)}if(n===!0){let S=o[0][x];S!==void 0?this.uvs.push(S[0],S[1],S[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",x),this.uvs.push(new he.Vector2,new he.Vector2,new he.Vector2))}if(a===!0){let S=o[1][x];S!==void 0?this.uvs2.push(S[0],S[1],S[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",x),this.uvs2.push(new he.Vector2,new he.Vector2,new he.Vector2))}for(let S=0;S<l;S++){let T=s[S].vertices;c[S].data.push(T[v.a],T[v.b],T[v.c])}for(let S=0;S<d;S++){let T=u[S].vertexNormals[x];p[S].data.push(T.a,T.b,T.c)}m&&this.skinIndices.push(f[v.a],f[v.b],f[v.c]),y&&this.skinWeights.push(h[v.a],h[v.b],h[v.c])}return this.computeGroups(t),this.verticesNeedUpdate=t.verticesNeedUpdate,this.normalsNeedUpdate=t.normalsNeedUpdate,this.colorsNeedUpdate=t.colorsNeedUpdate,this.uvsNeedUpdate=t.uvsNeedUpdate,this.groupsNeedUpdate=t.groupsNeedUpdate,t.boundingSphere!==null&&(this.boundingSphere=t.boundingSphere.clone()),t.boundingBox!==null&&(this.boundingBox=t.boundingBox.clone()),this}},Qa=class{constructor(t,e,r,o,n,a=0){this.a=t,this.b=e,this.c=r,this.normal=o&&o.isVector3?o:new he.Vector3,this.vertexNormals=Array.isArray(o)?o:[],this.color=n&&n.isColor?n:new he.Color,this.vertexColors=Array.isArray(n)?n:[],this.materialIndex=a}clone(){return new this.constructor().copy(this)}copy(t){this.a=t.a,this.b=t.b,this.c=t.c,this.normal.copy(t.normal),this.color.copy(t.color),this.materialIndex=t.materialIndex;for(let e=0,r=t.vertexNormals.length;e<r;e++)this.vertexNormals[e]=t.vertexNormals[e].clone();for(let e=0,r=t.vertexColors.length;e<r;e++)this.vertexColors[e]=t.vertexColors[e].clone();return this}};function eI(i){return this.array.set(i),this}function Hx(i){let t=this.array,e=0;for(let r=0,o=i.length;r<o;r++){let n=i[r];n===void 0&&(console.warn("THREE.BufferAttribute.copyColorsArray(): color is undefined",r),n=new he.Color),t[e++]=n.r,t[e++]=n.g,t[e++]=n.b}return this}function Wx(i){let t=this.array,e=0;for(let r=0,o=i.length;r<o;r++){let n=i[r];n===void 0&&(console.warn("THREE.BufferAttribute.copyVector2sArray(): vector is undefined",r),n=new he.Vector2),t[e++]=n.x,t[e++]=n.y}return this}function qu(i){let t=this.array,e=0;for(let r=0,o=i.length;r<o;r++){let n=i[r];n===void 0&&(console.warn("THREE.BufferAttribute.copyVector3sArray(): vector is undefined",r),n=new he.Vector3),t[e++]=n.x,t[e++]=n.y,t[e++]=n.z}return this}function qx(i){let t=this.array,e=0;for(let r=0,o=i.length;r<o;r++){let n=i[r];n===void 0&&(console.warn("THREE.BufferAttribute.copyVector4sArray(): vector is undefined",r),n=new he.Vector4),t[e++]=n.x,t[e++]=n.y,t[e++]=n.z,t[e++]=n.w}return this}var tI=["a","b","c"];function rI(i,t){switch(t){case"c":return i.c;case"b":return i.b;case"a":default:return i.a}}function Vf(i,t,e){let r=Math.min(i,t),o=Math.max(i,t),n=r+"_"+o;return e.get(n)}function zf(i,t,e,r,o,n){let a=Math.min(i,t),s=Math.max(i,t),l=a+"_"+s,c;if(r.has(l))c=r.get(l);else{let u=e[a],d=e[s];c={a:u,b:d,newEdge:null,faces:[]},r.set(l,c)}c.faces.push(o),n[i].edges.push(c),n[t].edges.push(c)}function oI(i,t,e,r){let o,n,a;for(o=0,n=i.length;o<n;o++)e[o]={edges:[]};for(o=0,n=t.length;o<n;o++)a=t[o],zf(a.a,a.b,i,r,a,e),zf(a.b,a.c,i,r,a,e),zf(a.c,a.a,i,r,a,e)}function $u(i,t,e,r,o){i.push(new Qa(t,e,r,void 0,void 0,o))}function Za(i,t){return Math.abs(t-i)/2+Math.min(i,t)}function Xu(i,t,e,r){i.push([t.clone(),e.clone(),r.clone()])}var Yu=class{constructor(t=1){this.subdivisions=t}modify(t){t instanceof ci.BufferGeometry?t=new Hi().fromBufferGeometry(t):t=t.clone(),t.mergeVertices();let e=this.subdivisions;for(;e-- >0;)this._smooth(t);return t.computeFaceNormals(),t.computeVertexNormals(),t}_smooth(t){let e=new ci.Vector3,r,o,n,a,s,l=t.vertices,c=t.faces,u=t.faceVertexUvs[0],d=u!==void 0&&u.length>0,p=[],f=new Map;oI(l,c,p,f);let h=[],m,y,x,v,w,O,S;for(let Z of Array.from(f.keys())){for(y=f.get(Z),x=new ci.Vector3,w=3/8,O=1/8,S=y.faces.length,S!=2&&(w=.5,O=0,S!=1),x.addVectors(y.a,y.b).multiplyScalar(w),e.set(0,0,0),a=0;a<S;a++){for(v=y.faces[a],s=0;s<3&&(m=l[rI(v,tI[s])],!(m!==y.a&&m!==y.b));s++);m&&e.add(m)}e.multiplyScalar(O),x.add(e),y.newEdge=h.length,h.push(x)}let T,M,g,D,E,I,N,_=[];for(o=0,n=l.length;o<n;o++){for(I=l[o],E=p[o].edges,r=E.length,r==3?T=3/16:r>3&&(T=3/(8*r)),M=1-r*Number(T),g=T,r<=2&&(r==2?(M=3/4,g=1/8):r==1||r==0),N=I.clone().multiplyScalar(M),e.set(0,0,0),a=0;a<r;a++)D=E[a],m=D.a!==I?D.a:D.b,e.add(m);e.multiplyScalar(Number(g)),N.add(e),_.push(N)}let R=_.concat(h),V=_.length,U,B,q,j=[],F=[],H,W,ee,te,Y=new ci.Vector2,re=new ci.Vector2,K=new ci.Vector2;for(o=0,n=c.length;o<n;o++)v=c[o],U=Number(Vf(v.a,v.b,f).newEdge)+V,B=Number(Vf(v.b,v.c,f).newEdge)+V,q=Number(Vf(v.c,v.a,f).newEdge)+V,$u(j,U,B,q,v.materialIndex),$u(j,v.a,U,q,v.materialIndex),$u(j,v.b,B,U,v.materialIndex),$u(j,v.c,q,B,v.materialIndex),d&&(H=u[o],W=H[0],ee=H[1],te=H[2],Y.set(Za(W.x,ee.x),Za(W.y,ee.y)),re.set(Za(ee.x,te.x),Za(ee.y,te.y)),K.set(Za(W.x,te.x),Za(W.y,te.y)),Xu(F,Y,re,K),Xu(F,W,Y,K),Xu(F,ee,re,Y),Xu(F,te,K,re));t.vertices=R,t.faces=j,d&&(t.faceVertexUvs[0]=F)}};var Ht=new Lo.Vector3,$x=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=i.geometry??t?.geometry??new Lo.BufferGeometry().copy(new Lo.BoxGeometry(100,100,100)),r;t===void 0?(e.computeBoundingBox(),e.boundingBox.getSize(Ht),r={width:Ht.x,height:Ht.y,depth:Ht.z,subdivisions:0}):r=t.parameters;let o={...r,...i.parameters};return{parameters:{width:Math.abs(o.width),height:Math.abs(o.height),depth:Math.abs(o.depth),subdivisions:Math.abs(o.subdivisions)},geometry:e}}static build(i){let{width:t,height:e,depth:r,subdivisions:o}=i.parameters,n=i.geometry??new Lo.BufferGeometry().copy(new Lo.BoxGeometry(100,100,100)),a=n.userData.parameters;a===void 0?(n.computeBoundingBox(),n.boundingBox.getSize(Ht)):Ht.set(a.width,a.height,a.depth),(t!==Ht.x||e!==Ht.y||r!==Ht.z)&&n.scale(Ht.x===0?1:t/Ht.x,Ht.y===0?1:e/Ht.y,Ht.z===0?1:r/Ht.z);let s=n.originalGeometry;try{o>0?(s===void 0||a?.subdivisions!==o)&&(s===void 0&&(s=n),n=new Yu(o).modify(s).toBufferGeometry()):(s!==void 0&&(n=s),s=void 0,n.getAttribute("normal")===void 0&&n.computeVertexNormals())}catch{s!==void 0&&(n=s),s=void 0,n.getAttribute("normal")===void 0&&n.computeVertexNormals()}return s!==void 0&&Object.assign(n,{originalGeometry:s}),delete i.geometry,Object.assign(n,{userData:{...i,type:"NonParametricGeometry"}})}static loadFromUrl(i,t,e){new Lo.BufferGeometryLoader(e).load(i,o=>{let n=this.normalizeInputs({geometry:o});o.boundingBox.getSize(Ht);let a=100/Ht.x;Object.assign(n.parameters,{width:100,height:Ht.y*a,depth:Ht.z*a}),t(this.build(n))})}};var Ku=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:3},i.parameters);return{shape:i.shape&&i.shape instanceof Xe?i.shape:new Xe,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(i){let{width:t,height:e,spikes:r,cornerRadius:o,depth:n,extrudeBevelSize:a,extrudeBevelSegments:s}=i.parameters,l=i.shape,c=t*.5,u=e*.5,d=0,p=0,f=2*Math.PI/r;for(let m=0;m<r;m++){let y=f*m,x=d+Math.sin(y)*c,v=p+Math.cos(y)*u;l.addPoint(l.createPoint(x,v))}l.isClosed=!0;for(let m=0,y=l.points.length;m<y;m++)l.points[m].roundness=o;l.roundness=o,l.update();let h=Pr.create({shape:l,parameters:{roundness:o,depth:n,extrudeBevelSize:a,extrudeBevelSegments:s}});return Object.assign(h,{userData:{...i,type:"PolygonGeometry"}})}};var We=require("three"),Xx=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:4,heightSegments:1,cornerRadius:0,cornerSegments:8,openEnded:!1},i.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(i){let{width:t,height:e,depth:r,radialSegments:o,heightSegments:n,openEnded:a,cornerRadius:s,cornerSegments:l}=i.parameters,c=new Ff(t*.5,e,o,n,a,s,l);return c.scale(1,1,r/t),Object.assign(c,{userData:{...i,type:"PyramidGeometry"}})}};function Dl(i,t,e){e.x=i.x*t.x,e.y=i.y,e.z=i.x*t.y}function Gf(i,t,e,r,o,n){let a=t.clone().sub(i),s=e.clone().sub(i),l=a.angleTo(s);if(a.normalize(),s.normalize(),r===o){let c=a.add(s).normalize();n.copy(i).addScaledVector(c,r/Math.sin(l/2))}else{let c=a.angleTo(s);n.copy(i),n.addScaledVector(a,o/Math.sin(c)),n.addScaledVector(s,r/Math.sin(c))}}function iI(i,t,e){let r=i.clone().sub(t),o=e.clone().sub(t);return r.projectOnVector(o),r.add(t)}var Ff=class extends We.BufferGeometry{constructor(t=.5,e=1,r=4,o=1,n=!1,a=0,s=4){super(),r=Math.floor(Math.max(3,r)),o=Math.floor(o),s=Math.floor(s);let l=[],c=[],u=[],d=[],p=0,f=e/2,h=Math.PI/r,m=t*Math.cos(Math.PI/r),y=2*Math.PI/r,x=(r-2)*Math.PI/r,v=Math.PI-x,w=new We.Vector3(0,-f,0),O=new We.Vector3(0,f,0),S=new We.Vector2(t,-f),T=new We.Vector2(m,-f),M=new We.Vector2(0,O.y).sub(T),g=new We.Vector2(0,O.y).sub(S),D=new We.Vector2(M.y,-M.x).normalize(),E=new We.Vector2(g.y,-g.x).normalize(),N=t*Math.cos(Math.PI/r)*Math.tan((Math.PI-M.angle())/2)-1e-8;a=Math.min(a,N);let _;{let F=new We.Vector3(D.x,D.y,0),H=new We.Vector3(Math.cos(y)*F.x,F.y,Math.sin(y)*F.x);_=F.angleTo(H)}let R=a/Math.tan((Math.PI-M.angle())/2),V=a/Math.tan((Math.PI-_)/2),U=new We.Vector3;if(!n){c.push(w.x,w.y,w.z),u.push(0,-1,0),d.push(0,0);let F=p++,H=[],W=S.clone(),ee=R/Math.cos(Math.PI/r);W.x-=ee;for(let te=0;te<r;te++){let Y=te/r*Math.PI*2+h,re=new We.Vector2(Math.sin(Y),Math.cos(Y));Dl(W,re,U),c.push(U.x,U.y,U.z),u.push(0,-1,0),d.push(0,0),H.push(p++)}for(let te=0;te<H.length;te++)l.push(H[te],F,H[(te+1)%H.length])}let B=[];{let F=new We.Vector3,H=new We.Vector3,W=new We.Vector3,ee=new We.Vector3,te=new We.Vector3,Y=new We.Vector3;for(let re=0;re<r;re++){let K=re/r*Math.PI*2+h,Z=(re+.5)/r*Math.PI*2+h,Q=(re+1)/r*Math.PI*2+h,$=new We.Vector2(Math.sin(K),Math.cos(K)),pe=new We.Vector2(Math.sin(Z),Math.cos(Z)),le=new We.Vector2(Math.sin(Q),Math.cos(Q));Dl(S,$,H),Dl(S,le,W),Dl(D,pe,F),Gf(O,H,W,V,V,ee),c.push(ee.x,ee.y,ee.z),Gf(H,O,W,V,R,te),c.push(te.x,te.y,te.z),Gf(W,H,O,R,V,Y),c.push(Y.x,Y.y,Y.z),u.push(F.x,F.y,F.z),u.push(F.x,F.y,F.z),u.push(F.x,F.y,F.z),d.push(0,0),d.push(0,0),d.push(0,0);let ie=p++,ue=p++,ae=p++;if(l.push(ie,ue,ae),a>0){{let ye=H.clone().add(W).multiplyScalar(.5),ve=O.clone().sub(ye).normalize(),C=w.clone().sub(ye).normalize().add(ve).normalize().multiplyScalar(-1),ne=Y.clone().sub(te);q(ye,ne,C,M.angle())}let ge,me;{let ye=new We.Vector3;Dl(E,le,ye);let ve=Y.clone().add(ee).multiplyScalar(.5);ve=iI(ve,W,O);let xe=Y.clone().sub(ee);[ge,me]=q(ve,xe,ye,_,ee.y)}{let ye=ge,ve=ye.clone().setY(0).normalize(),xe=new We.Vector3(0,-1,0),C=ve.clone().cross(xe);j(ye,ve,xe,C)}B.concat(me);{let ye=M.angle(),ve=Math.PI-ye,xe=O.clone();xe.y-=a/Math.sin(ye-Math.PI/2);let C=new We.Vector3,ne=[];for(let ke=0;ke<s;ke++){let Ge=[],Ce=Math.PI/2-ve*ke/s,zt=Math.cos(Ce),_e=Math.sin(Ce),Bt=Z;for(let Gt=0;Gt<=ke;Gt++){let fn=Math.cos(Bt),xt=Math.sin(Bt);F.x=zt*xt,F.y=_e,F.z=zt*fn,C.copy(xe).addScaledVector(F,a),c.push(C.x,C.y,C.z),u.push(F.x,F.y,F.z),d.push(0,0),Ge.push(p++),Bt+=Math.PI*2/ke/r}ne.push(Ge)}me.reverse(),ne.push(me);let Ve=ne.length-1;for(let ke=0;ke<Ve;ke++){let Ge=ne[ke],Ce=ne[ke+1],zt=Ge.length-1;l.push(Ce[1],Ge[0],Ce[0]);for(let _e=1;_e<=zt;_e++)l.push(Ge[_e],Ge[_e-1],Ce[_e]),l.push(Ce[_e+1],Ge[_e],Ce[_e])}}}}}this.setIndex(l),this.setAttribute("position",new We.Float32BufferAttribute(c,3)),this.setAttribute("normal",new We.Float32BufferAttribute(u,3)),this.setAttribute("uv",new We.Float32BufferAttribute(d,2));function q(F,H,W,ee,te){let Y=-ee/2,re=(Math.PI-ee)/2,K=H.clone().normalize().cross(W);F.addScaledVector(W,-a/Math.sin(re));let Z=new We.Vector3,Q=new We.Vector3,$=1,pe=p,le=[];for(let ie=0;ie<=s;ie++){let ue=Y+ie/s*ee;Q.set(0,0,0),Q.addScaledVector(K,Math.sin(ue)),Q.addScaledVector(W,Math.cos(ue));for(let ae=0;ae<=$;ae++){let ge=ae/$-.5;if(Z.copy(F),Z.addScaledVector(H,ge),Z.addScaledVector(Q,a),te!=null){let me=Math.max(0,Z.y-te);Z.addScaledVector(H,-me/H.y)}c.push(Z.x,Z.y,Z.z),u.push(Q.x,Q.y,Q.z),d.push(0,0),ae===0&&le.push(p),p++}}for(let ie=0;ie<s;ie++)for(let ue=0;ue<$;ue++){let ae=pe+ue+($+1)*ie,ge=ae+($+1),me=ge+1,ye=ae+1;l.push(ae,ge,ye),l.push(ge,me,ye)}return[F.clone().addScaledVector(H,.5),le]}function j(F,H,W,ee){let te=Math.PI/2,Y=g.angle()-te,re=[],K=new We.Vector3,Z=new We.Vector3;for(let $=0;$<=s;$++){let pe=[],le=$/s;for(let ie=0;ie<=$;ie++){let ae=(($?ie/$:0)-.5)*v,ge=Math.cos(ae),me=Math.sin(ae),ye=Math.atan(Math.tan(Y)*ge),ve=(te+ye)*le,xe=Math.cos(ve),C=Math.sin(ve);K.set(0,0,0),K.addScaledVector(H,C*ge),K.addScaledVector(W,xe),K.addScaledVector(ee,C*me),Z.copy(F).addScaledVector(K,a),c.push(Z.x,Z.y,Z.z),u.push(K.x,K.y,K.z),d.push(0,0),pe.push(p++)}re.push(pe)}let Q=re.length-1;for(let $=0;$<Q;$++){let pe=re[$],le=re[$+1],ie=pe.length-1;l.push(pe[0],le[1],le[0]);for(let ue=1;ue<=ie;ue++)l.push(pe[ue-1],pe[ue],le[ue]),l.push(pe[ue],le[ue+1],le[ue])}}}};var Ja=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,cornerRadius:[0,0,0,0],cornerType:1,extrudeBevelSize:0,extrudeBevelSegments:1},i.parameters),r=Object.assign(t?.ui??{enabledIndieCorners:!1},i.ui);return{shape:i.shape&&i.shape instanceof Xe?i.shape:new Xe,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)}),ui:r}}static build(i){let t=i.shape,{width:e,height:r,cornerRadius:o,cornerType:n,depth:a,extrudeBevelSize:s,extrudeBevelSegments:l}=i.parameters,c={x:e*.5,y:r*.5},u={x:-c.x,y:-c.y},d={x:c.x,y:c.y};function p(O,S,T){return S>e&&T>r?Math.min(O*e/S,O*r/T):S>e?O*e/S:T>r?O*r/T:O}let f=[];f[0]=o[0]===0?0:p(o[0],o[0]+o[3],o[0]+o[1]),f[1]=o[1]===0?0:p(o[1],o[1]+o[2],o[1]+o[0]),f[2]=o[2]===0?0:p(o[2],o[2]+o[1],o[2]+o[3]),f[3]=o[3]===0?0:p(o[3],o[3]+o[0],o[3]+o[2]);let h=u.x,m=d.x,y=d.y,x=u.y;t.addPoint(t.createPoint(h,y)),t.addPoint(t.createPoint(m,y)),t.addPoint(t.createPoint(m,x)),t.addPoint(t.createPoint(h,x)),t.isClosed=!0;let v=!0;for(let O=0,S=t.points.length;O<S;O++)t.points[O].roundness=f[O],O>0&&f[O]!==f[O-1]&&(v=!1);v&&(t.roundness=f[0]),t.useCubicForRoundedCorners=n!==1,t.update();let w=Pr.create({shape:t,parameters:{depth:a,extrudeBevelSize:s,extrudeBevelSegments:l}});return Object.assign(w,{userData:{...i,type:"RectangleGeometry"}})}};var ui=require("three"),Yx=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,widthSegments:64,heightSegments:64,phiStart:0,phiLength:2*Math.PI,thetaStart:0,thetaLength:180},i.parameters);return e.thetaLength=ui.MathUtils.clamp(e.thetaLength,0,180),{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(i){let{width:t=100,height:e=t,depth:r=t,widthSegments:o=64,heightSegments:n=64,phiStart:a,phiLength:s,thetaStart:l,thetaLength:c}=i.parameters,u;return c===0?(u=new ui.BufferGeometry,u.setAttribute("position",new ui.Float32BufferAttribute([],3))):u=new ui.SphereGeometry(.5*t,o,n,a,s,l,c*ui.MathUtils.DEG2RAD),u.scale(1,e/t,r/t),Object.assign(u,{userData:{...i,type:"SphereGeometry"}})}};var Kx=require("three"),Qx=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,widthSegments:8,heightSegments:8},i.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:0})}}static build(i){let{width:t=100,height:e=t,widthSegments:r=8,heightSegments:o=8}=i.parameters,n=new Kx.PlaneGeometry(t,e,r,o);return n.scale(1,1,1),Object.assign(n,{userData:{...i,type:"PlaneGeometry"}})}};var Wi=require("three"),Zx=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,angle:90,cornerRadius:24,cornerSegments:8},i.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(i){let{width:t,height:e,depth:r,angle:o,cornerRadius:n,cornerSegments:a}=i.parameters,s=new jf(t,e,r,o,n,a);return Object.assign(s,{userData:{...i,type:"BackdropGeometry"}})}},jf=class extends Wi.BufferGeometry{constructor(t=1,e=1,r=1,o=90,n=10,a=24){super(),this.type="BackdropGeometry";let s=[],l=[],c=[],u=.001;n==0&&(a=1),a=Math.max(1,Math.floor(a)),n=Math.min(n,100),o=Math.min(180-u,o),o*=Math.PI/180;let d=[],p=Math.PI/2,f=(Z=0,Q=0,$=0)=>new Wi.Vector3(Z,Q,$),h=f(),m=f(),[y,x,v]=[e/2,t/2,r/2],w=-x,O=+x,[S,T,M]=[f(w,-y,+v),f(w,-y,-v),f(w,+y,-v)],g=(Z,Q=!1)=>Math.sin(Z-Math.PI/(1+ +Q)),D=(Z,Q=!1)=>Math.cos(Z-Math.PI/(1+ +Q));M.y=Math.sin(o)*e-y;let E=Math.cos(o)*e-v,I=S.z-u;o<=p?(M.z=Math.min(E,I),M.z==I&&(M.y-=(E-I)/Math.tan(p-o))):T.z=Math.min(T.z-E-v,S.z-u),h.subVectors(S,T),m.subVectors(M,T);let N=Math.min(h.length(),m.length())*n/100,_=N*Math.tan(o/2),R=N/Math.cos(o/2),V=h.clone().normalize().add(m.normalize()).setLength(R).add(T);h.set(0,g(o,!0),D(o,!0)),d.push([M,h.clone()]);let U=(Math.PI-o)/a;for(let Z=0;Z<=a;Z++){let Q=p+o+Z*U;h.set(0,Math.sin(Q)*_,Math.cos(Q)*_),h.add(V),m.set(0,g(Q),D(Q)),d.push([h.clone(),m.clone()])}d.push([S,f(0,1,0)]);let B=Math.sin(U/2)*_*2,q=d.length-1,j=d[0][0].distanceTo(d[1][0]),F=d[q-1][0].distanceTo(d[q][0]),H=j+B*a+F;d[0].push(1);for(let Z=0;Z<=a;Z++)d[Z+1].push(1-(j+Z*B)/H);d[q].push(0);let[W,ee,te]=d[0],Y,re,K;for(let Z=1;Z<d.length;Z++)[Y,re,K]=d[Z],s.push(w,W.y,W.z,w,Y.y,Y.z,O,W.y,W.z,O,W.y,W.z,w,Y.y,Y.z,O,Y.y,Y.z),l.push(0,ee.y,ee.z,0,re.y,re.z,0,ee.y,ee.z,0,ee.y,ee.z,0,re.y,re.z,0,re.y,re.z),c.push(0,te,0,K,1,te,1,te,0,K,1,K),[W,ee,te]=[Y,re,K];this.setAttribute("position",new Wi.Float32BufferAttribute(s,3)),this.setAttribute("normal",new Wi.Float32BufferAttribute(l,3)),this.setAttribute("uv",new Wi.Float32BufferAttribute(c,2))}};var Qu=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,innerRadiusPercent:38.19,spikes:5,cornerRadius:0,angle:360,extrudeBevelSize:0,extrudeBevelSegments:1},i.parameters);return{shape:i.shape&&i.shape instanceof Xe?i.shape:new Xe,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(i){let{width:t,height:e,innerRadiusPercent:r,spikes:o,cornerRadius:n,angle:a,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}=i.parameters,u=i.shape,d=t*.5,p=e*.5,f=0,h=0,m=a*Math.PI/360/o,y=Math.PI/2*3*-1,x=d*r/100,v=p*r/100;if(o===3&&r===50){m=2*Math.PI/o;for(let O=0;O<o;O++){let S=m*O,T=f+Math.sin(S)*d,M=h+Math.cos(S)*p;u.addPoint(u.createPoint(T,M))}}else for(let O=0;O<o;O++){let S=f+Math.cos(y)*d,T=h+Math.sin(y)*p;u.addPoint(u.createPoint(S,T)),y+=m,S=f+Math.cos(y)*x,T=h+Math.sin(y)*v,O<=o,u.addPoint(u.createPoint(S,T)),y+=m}u.isClosed=!0;for(let O=0,S=u.points.length;O<S;O++)u.points[O].roundness=n;u.roundness=n,u.update();let w=Pr.create({shape:u,parameters:{roundness:n,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}});return Object.assign(w,{userData:{...i,type:"StarGeometry"}})}};var Jx=require("three"),eb=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,depth:0},i.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(i){let{width:t,height:e}=i.parameters,r=new Jx.PlaneGeometry(t,e);return Object.assign(r,{userData:{...i,type:"TextFrameGeometry"}})}};var es=require("three");var tb=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:32,tubularSegments:64,arc:360,cornerRadius:30,cornerSegments:8},i.parameters),r=Math.abs(e.width),o=Math.abs(e.height??e.width);e.shapeBlendNode&&(o=r);let n=Math.round(Math.abs(e.depth??e.width*.25));return{parameters:Object.assign(e,{width:r,height:o,depth:n})}}static build(i){let{width:t,height:e,depth:r,radialSegments:o,tubularSegments:n,arc:a,cornerRadius:s,cornerSegments:l}=i.parameters,c=nI(t,e,r,t*.5,a,n,0,0,o,s,l);return c.scale(1,e/t,1),Object.assign(c,{userData:{...i,type:"TorusGeometry"}})}};function nI(i,t,e,r,o,n,a,s,l,c,u){[t,e]=[e,t],a=t/2;let d=es.MathUtils.clamp(o/360,0,1);if(d===0){let p=new es.BufferGeometry;return p.setAttribute("position",new es.Float32BufferAttribute([],3)),p}return d===1&&(c=0),new El(!0,i,t,e,r,d,n,a,s,l,c,u)}var rb=require("three"),ob=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,tubularSegments:64,radialSegments:32,p:2,q:3},i.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width),tube:e.tube??e.width*.125})}}static build(i){let{width:t,tube:e,tubularSegments:r,radialSegments:o,p:n,q:a}=i.parameters,s=t*.5;s!==e&&(s-=e);let l=new rb.TorusKnotGeometry(s,e,r,o,n,a);return Object.assign(l,{userData:{...i,type:"TorusKnotGeometry"}})}};var ib=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1,isRect:!1},i.parameters);return{shape:i.shape&&i.shape instanceof Xe?i.shape:new Xe,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width*(e.isRect?1:Math.sqrt(3)/2)),depth:Math.abs(e.depth??0)})}}static build(i){let{width:t=100,height:e,cornerRadius:r,depth:o,extrudeBevelSize:n,extrudeBevelSegments:a,isRect:s}=i.parameters,l=i.shape,c=t*.5,u=e*.5;s?(l.addPoint(l.createPoint(-c,u)),l.addPoint(l.createPoint(c,-u)),l.addPoint(l.createPoint(-c,-u))):(l.addPoint(l.createPoint(0,u)),l.addPoint(l.createPoint(c,-u)),l.addPoint(l.createPoint(-c,-u))),l.isClosed=!0;for(let p=0,f=l.points.length;p<f;p++)l.points[p].roundness=r;l.roundness=r,l.update();let d=Pr.create({shape:l,parameters:{roundness:r,depth:o,extrudeBevelSize:n,extrudeBevelSegments:a}});return Object.assign(d,{userData:{...i,type:"TriangleGeometry"}})}};var Ie=require("three");function nb(i,t){let e=2*Math.PI;return(i%e+e)%e===(t%e+e)%e}function aI(i){return/^(rgba)?\(\s*(\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(i.toLowerCase())}function sI(i,t,e){let r,o,n,a=Math.floor(i*6),s=i*6-a,l=e*(1-t),c=e*(1-s*t),u=e*(1-(1-s)*t);switch(a%6){case 0:r=e,o=u,n=l;break;case 1:r=c,o=e,n=l;break;case 2:r=l,o=e,n=u;break;case 3:r=l,o=c,n=e;break;case 4:r=u,o=l,n=e;break;case 5:default:r=e,o=l,n=c;break}return{r:r*255,g:o*255,b:n*255}}function lI(i,t,e){i/=255,t/=255,e/=255;let r=Math.max(i,t,e),o=Math.min(i,t,e),n=r,a=r-o,s=r==0?0:a/r,l;if(r==o)l=0;else{switch(r){case i:l=(t-e)/a+(t<e?6:0);break;case t:l=(e-i)/a+2;break;case e:default:l=(i-t)/a+4;break}l/=6}return{h:l,s,v:n}}function cI(i){return i=Math.floor(i),{r:i>>16&255,g:i>>8&255,b:i&255}}function uI(i,t,e){return(i<<16)+(t<<8)+e}function dI(i,t,e){return i=Math.round(i),t=Math.round(t),e=Math.round(e),"#"+[i,t,e].map(r=>r.toString(16).padStart(2,"0")).join("").toUpperCase()}function pI(i){let t=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;i=i.replace(t,(r,o,n,a)=>String(o+o+n+n+a+a));let e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(i);return e?{r:parseInt(e[1],16),g:parseInt(e[2],16),b:parseInt(e[3],16)}:null}var ab={parseRgba:aI,hsvToRgb:sI,rgbToHsv:lI,hexToRgb:cI,rgbToHex:uI,rgbToHexString:dI,hexStringToRgb:pI};function di(i){return{all:i=i||new Map,on:function(t,e){var r=i.get(t);r?r.push(e):i.set(t,[e])},off:function(t,e){var r=i.get(t);r&&(e?r.splice(r.indexOf(e)>>>0,1):i.set(t,[]))},emit:function(t,e){var r=i.get(t);r&&r.slice().map(function(o){o(e)}),(r=i.get("*"))&&r.slice().map(function(o){o(t,e)})}}}var Zu=class{constructor(t,e,r){this.id=t;this.userAPI=e;this.result=void 0;this.error="null";this.isPrefetched=!1;this.isLoading=!1;this.isLoaded=!1;this.prefetchPromise=new Promise(t=>t());this.emitter=di();this._innerCallUserAPI=async t=>{this.emitter.emit("start",{userAPIId:this.id}),this.isLoading=!0,this.isLoading=!1;try{this.result=await gI(this.userAPI,t),this.error="null",this.emitter.emit("success",{userAPIId:this.id})}catch(e){let r=e.message?.split("_:_")?.[0]?.replace("status:","")??"null";this.error=r,this.result=null,this.emitter.emit("error",{userAPIId:this.id})}this.isLoading=!1,this.isPrefetched=!0,this.isLoaded=!0};e?.integration?.type==="OpenAI"?this.result={content:""}:e.method==="GET"&&e.url!==""&&(this.prefetchPromise=this.prefetch(r)),this._debouncedCallUserAPI=this._innerCallUserAPI,this._updateDebouncedCallUserAPI(),this._debouncedPrefetch=Xc(this.prefetch,1e3,{trailing:!0})}_updateDebouncedCallUserAPI(){this._debouncedCallUserAPI=this.userAPI.debounce!==void 0&&this.userAPI.debounce>0?Xc(this._innerCallUserAPI,this.userAPI.debounce,{leading:!0,trailing:!0}):this._innerCallUserAPI}async prefetch(t){await this.callUserAPI(t)}async callUserAPI(t){await this._debouncedCallUserAPI(t)}update(t,e,r=!0){this.userAPI=t,this._updateDebouncedCallUserAPI(),this.userAPI.url!==""&&this.userAPI.method==="GET"&&r&&this._debouncedPrefetch(e)}retrieveValue(t){if(this.result)try{return ut.zoom(this.result,t)}catch(e){console.error(e)}}retrieveZoomedKeyValues(t){if(this.result){let e=t&&t.length?ut.zoom(this.result,t):this.result;if(yI(e))return Object.entries(e);if(mI(e))return e.map((r,o)=>[o.toString(),r]);throw hI(e)?new Error("This path points to a value, use retrieveValue() instead. "+t?.join(".")):new Error("Path error"+t?.join("."))}}dispose(){}on(t,e){this.emitter.on(t,e)}off(t,e){this.emitter.off(t,e)}get autostart(){return this.userAPI.autoStart}};function fI(i){let t=new Headers;return i.headers.forEach(e=>{e.data.key!==""&&t.append(e.data.key,e.data.value)}),t}function hI(i){return typeof i=="string"||typeof i=="number"||typeof i=="boolean"||i===null}function mI(i){return Array.isArray(i)}function yI(i){return typeof i=="object"&&i!==null}async function gI(i,t,e=new AbortController){let r,o=i.url,n=i.proxy?.enabled??!1,a;if(i.integration?.type==="OpenAI"){let l=_l(i.integration.prompt===""?[]:JSON.parse(i.integration.prompt),t),c=i.integration.behavior===""?[]:_l(JSON.parse(i.integration.behavior),t);a=`{
4
4
  "model": "${i.integration.model}",
5
5
  "messages": [${i.integration.useBehavior?`
@@ -15,7 +15,7 @@ best distance: ${p.d}`);let x=[p.x,p.y];return x.distance=p.d,x.distance}functio
15
15
  }`}if(n){o=`${!1&&window.location.search.includes("api-dev")?"https://api-dev.spline.design/":"https://apis.spline.design/"}file/${i.proxy.fileId}/external-api/request?uuidexternalapi=${i.proxy.proxyId}`;let u;a!==void 0?u=a:i.method==="POST"&&i.body&&(u=_l(JSON.parse(i.body),t)),u!==void 0&&(o+=`&data=${encodeURIComponent(u.replace(/(\r\n|\n|\r|\t)/gm,""))}`)}else i.integration?.type==="OpenAI"?r=a:i.method==="POST"&&i.body&&(r=_l(JSON.parse(i.body),t));let s=await fetch(o,{method:n?"GET":i.method,headers:n?void 0:fI(i),signal:e.signal,body:r});if(!s.ok)throw new Error("status:"+s.status+"_:_"+s.statusText);if(i.integration?.type==="OpenAI"){let l=await s.json();return n&&(l=l.response),{content:l.choices[0].message.content}}else{let l=await s.json();return n&&(l=l.response),l}}var sb=(i,t)=>{if(typeof i=="string"){let e=t.getVariable(i);if(e)return sb(e,t)}return zi.isBoolean(i)?zi.getDisplayedValue(i).toLowerCase():zi.getDisplayedValue(i)},_l=(i,t)=>i.map((e,r)=>{if("text"in e)return e.text;if("type"in e){if(e.type==="paragraph")return(r>0?`
16
16
  `:"")+_l(e.children,t);if(e.type==="variable"){let o=t.getVariable(e.variableId);if(o!==void 0)return sb(o,t)}}return""}).join("");var xI=new Ie.Matrix4,bI=new Ie.Matrix4;function vI(i,t,e){let r=[new Ie.Vector3,new Ie.Vector3,new Ie.Vector3],o=[new Ie.Vector3,new Ie.Vector3,new Ie.Vector3];return i.extractBasis(r[0],r[1],r[2]),t.extractBasis(o[0],o[1],o[2]),r.forEach((n,a)=>{let s=o[a],l=Ie.MathUtils.lerp(n.length(),s.length(),e);n.lerp(s,e).setLength(l)}),new Ie.Matrix4().makeBasis(r[0],r[1],r[2])}var lb=class{static create(i){return this.build(this.normalizeInputs(i))}static normalizeInputs(i,t){let e=Object.assign({},t?.parameters??{width:100,height:100,depth:1,subdivisions:12,roundness:0,extrudeBevelSize:0,extrudeBevelSegments:3},i.parameters),r=Math.abs(e.width),o=Math.abs(e.height??e.width),n=Math.abs(e.depth??0),a=t?.shapeData??Ka.create({parameters:Yp}).userData.shape;return{path:i.path??Ea.defaultData(),parameters:Object.assign(e,{width:r,height:o,depth:n,extrusion:{...xu,...e.extrusion}}),shapeData:a}}static build(i){if(i.path.points.length>=2){let e=new Uf(i);return Object.assign(e,{userData:{...i,type:"PathGeometry"}})}else return Object.assign(new Ie.BufferGeometry,{userData:{...i,type:"PathGeometry"}})}},Uf=class extends Ie.BufferGeometry{constructor(e){super();this.type="PathExtrusionGeometry",this.inputs=e,this.build()}_isGeometryClosed(){return this.inputs.path.isClosed&&this.inputs.parameters.extrusion.depth===1}_isOpenEnded(){let e=this.inputs.parameters.extrusion;return!(this.inputs.path.isClosed&&e.depth===1)||!nb(e.twist,0)||e.startScale!==e.endScale}build(){let e=this._extractPathPoints();if(e.length<2)return;let r=this._computeBasisMatrices(e),{depth:o,offset:n}=this.inputs.parameters.extrusion;o=Math.max(0,Math.min(o,1)),n=Math.max(0,Math.min(n,1));let a=this.inputs.path.isClosed?e.length:e.length-1,s=Math.floor(n*a),l=this.inputs.path.isClosed?Math.ceil((o+n)*a):Math.ceil(Math.min(1,o+n)*a),c=Math.min(Math.max(2,l-s+1),a+2),u=[],d=[];for(let j=0;j<c;j++){let F=this.inputs.path.isClosed?(j+s)%e.length:Math.min(j+s,e.length-1);u.push(e[F].clone()),d.push(r[F].clone())}let p=(j,F,H)=>{u[j]=u[j].clone().lerp(u[F],H),d[j]=vI(d[j],d[F],H)},f=0,h=n*a%1;(!this.inputs.path.isClosed||o<=1)&&(h||n===0)&&(f=h,p(0,1,f));let m=0,y=(n+o)*a%1;if((this.inputs.path.isClosed&&o<=1||!this.inputs.path.isClosed&&n+o<1)&&y&&(m=y,p(u.length-1,u.length-2,1-m)),o===0){let j=u.length-1;u[j].copy(u[0]),d[j].copy(d[0])}this._applyPathModifiers(d,f,m);let{bevel:x,bevelSides:v}=this.inputs.parameters.extrusion,w=x>0?this.inputs.parameters.extrusion.capType:"flat",O=5;this.inputs.parameters.extrusion.shape.type==="Custom"&&(O=this.inputs.parameters.extrusion.shape.shapeQuality==="low"?5:12);let{regions:S,infos:T,vertices:M}=this._computeShapePoints(O),g=0,D;w==="round"&&(D=new ki(this.inputs.shapeData,2*x,x,O,v,void 0,!0),g=D.getAttribute("position").count);let E=0,I=0;T.sort((j,F)=>j.start-F.start),T.forEach(j=>{j.verticesStart=E,j.verticesCount=j.continuous.reduce((F,H,W)=>F+(W===0||!H?2:1),0),I+=j.verticesCount,E=I});let N=I*c,_,R=0;if(this._isOpenEnded()&&w==="flat"){try{_=uo({windingRule:$e.ODD,elementType:St.POLYGONS,polySize:3,vertexSize:2,strict:!0,contours:S})}catch{_=_f}R=_.vertexCount}let V=N+2*R+g*2,U=N+2*R,B={positions:new Float32Array(V*3),normals:new Float32Array(V*3),uvs:new Float32Array(V*2)},q=[];if(T.forEach(j=>{this._extrudeRegion(j,M,d,u,B,q,this._isGeometryClosed()&&!this._isOpenEnded())}),_&&(this._closeEnd(_,N,q,B,d[0],u[0],!1),this._closeEnd(_,N+R,q,B,d[d.length-1],u[u.length-1],!0)),D){B.positions.set(D.getAttribute("position").array,U*3),B.normals.set(D.getAttribute("normal").array,U*3),B.uvs.set(D.getAttribute("uv").array,U*2);for(let W=U;W<U+g;W++)B.uvs[W*2+1]=1e-4;let j=q.length;q.push(...D.getIndex().array.map(W=>W+U)),U+=g,B.positions.set(D.getAttribute("position").array,U*3),B.normals.set(D.getAttribute("normal").array,U*3),B.uvs.set(D.getAttribute("uv").array,U*2);let F=q.length;q.push(...D.getIndex().array.map(W=>W+U)),this.setAttribute("position",new Ie.BufferAttribute(B.positions,3)),this.setAttribute("normal",new Ie.BufferAttribute(B.normals,3)),this.setAttribute("uv",new Ie.BufferAttribute(B.uvs,2)),this.setIndex(q);let H=xI;H.copy(d[d.length-1]).setPosition(u[u.length-1]),this.applyMatrix4OnRange(H,U,V),H.copy(d[0]).setPosition(u[0]).multiply(bI.makeScale(1,1,-1)),this.applyMatrix4OnRange(H,U-g,U),this.reverseIndicesOnRange(j,F)}else this.setAttribute("position",new Ie.BufferAttribute(B.positions,3)),this.setAttribute("normal",new Ie.BufferAttribute(B.normals,3)),this.setAttribute("uv",new Ie.BufferAttribute(B.uvs,2)),this.setIndex(q)}_extractPathPoints(){let r=zu(this.inputs.path).getPoints(this.inputs.path.subdivisions);if(r.length<2)return[];let o=[r[0]];return r.forEach(a=>{o[o.length-1].distanceToSquared(a)>.001&&o.push(a)}),this.inputs.path.isClosed&&o[o.length-1].distanceTo(o[0])<.001&&o.pop(),o}_computeBasisMatrices(e){let r=[],o=e.length,n=this.inputs.path.isClosed,a=new Ie.Vector3,s=new Ie.Vector3,l=new Ie.Vector3,c=new Ie.Vector3,u=new Ie.Vector3(0,1,0);for(let y=0;y<o;y++){let x=e[y],v;y===0?v=n?e[e.length-2]:x.clone().multiplyScalar(2).sub(e[1]):v=e[y-1];let w;y===o-1?w=n?e[1]:x.clone().multiplyScalar(2).sub(e[y-1]):w=e[y+1];let O=x.clone().sub(v).normalize(),S=w.clone().sub(x).normalize(),T=O.clone().add(S).normalize();l.copy(T),y===0&&(T.equals(u)||T.clone().negate().equals(u))&&u.set(0,0,1);let M=u.clone().cross(T).normalize(),g=T.clone().cross(M).normalize();u.copy(g),c.copy(M),y===0&&(a.copy(g),s.copy(T));let D=new Ie.Matrix4().makeBasis(M,g,T);r.push(D)}let d=n?s:l,p=n?a:new Ie.Vector3(0,1,0),f=d.clone().cross(c).normalize(),h=Math.acos(p.dot(f));if(isNaN(h))return r;let m=p.clone().cross(f);d.dot(m)>0&&(h*=-1);for(let y=1;y<r.length;y++){let x=new Ie.Matrix4().makeRotationZ(h*y/r.length);r[y].multiply(x)}return r}_applyPathModifiers(e,r,o){let n=e.length,{angle:a,twist:s,startScale:l,endScale:c}=this.inputs.parameters.extrusion,u=new Ie.Matrix4,d=new Ie.Matrix4;return e.forEach((p,f)=>{let h=f===0?0:f===n-1?1:(f-r)/(n-(o===0?0:1)-(r+(1-o)));u.makeRotationZ(Ie.MathUtils.lerp(a,a+s,h)*Ie.MathUtils.DEG2RAD);let m=Ie.MathUtils.lerp(l,c,h);d.makeScale(m,m,m),p.multiply(u).multiply(d)}),e}_computeShapePoints(e=12,r=$e.ODD){let o=this.inputs.shapeData,n=o.extractShapePointsToFlatArray([],e),a=o.shapeHoles.map(m=>{let y=m.extractShapePointsToFlatArray([],e),x=[];for(let v=y.length-1;v>=1;v-=2){let w=y[v-1],O=y[v-0];x.push(w,O)}return x}),s;try{s=uo({windingRule:r,elementType:St.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[n]})}catch{s=Il}let l;try{l=uo({windingRule:$e.ODD,elementType:St.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[...a]})}catch{l=Df}if(!s)throw new Error("error generating geometry");let c=s.elementCount;if(l){s.elementCount+=l.elementCount;for(let m=0;m<l.elements.length;m++){let y=l.elements[m],x=m%2===0?s.vertexCount:0;s.elements.push(y+x)}for(let m=0;m<l.vertexIndices.length;m++){let y=l.vertexIndices[m],x=s.vertexCount;s.vertexIndices.push(y+x)}for(let m=0;m<l.vertices.length;m++){let y=l.vertices[m];s.vertices.push(y)}}let u=1/0,d=-1/0,p=1/0,f=-1/0;for(let m=0,y=s.vertexCount;m<y;m++){let x=m*2,v=s.vertices[x+0],w=s.vertices[x+1];v<u&&(u=v),v>d&&(d=v),w<p&&(p=w),w>f&&(f=w)}let h=[];for(let m=s.elementCount-1;m>=0;m--){let y=m>=c,x=m*2,v=s.elements[x+0],w=s.elements[x+1],O=v+w,S={start:v,count:w,normals:[],isHole:y,continuous:[],verticesStart:0,verticesCount:0};h.push(S);let T=v,M=O-1,g=v+1,D=o.roundedCurves.length;do{let E=T-v,I=s.vertices[M*2+0],N=s.vertices[M*2+1],_=s.vertices[T*2+0],R=s.vertices[T*2+1],V=s.vertices[g*2+0],U=s.vertices[g*2+1],B=_-I,q=R-N,j=Math.sqrt(B*B+q*q);B/=j,q/=j;let F=_-V,H=R-U,W=Math.sqrt(F*F+H*H);F/=W,H/=W,S.normals[E*2+0]=-H,S.normals[E*2+1]=F;let ee=s.vertexIndices[T];if(Array.isArray(ee))S.continuous[E]=!1;else{let[te,Y]=o.getCurveIndexFromVertexId(ee-1,!0);if(Y>0&&Y<1)S.continuous[E]=!0;else{let re=Y===1?te+1:te-1;re=(re+D)%D;let K=Y===1?0:1,Z=o.roundedCurves[te].getTangent(Y),Q=o.roundedCurves[re].getTangent(K);S.continuous[E]=Z.dot(Q)>.95}}y&&(S.normals[E*2+0]*=-1,S.normals[E*2+1]*=-1),[M,T,g]=[T,g,g+1],g>=O&&(g-=w)}while(g!==v+1)}return{regions:[n,...a],infos:h,vertices:s.vertices}}_insertVertex(e,r,o,n,a){let s=r*2,l=r*3;e.positions[l+0]=o.x,e.positions[l+1]=o.y,e.positions[l+2]=o.z,e.normals[l+0]=n.x,e.normals[l+1]=n.y,e.normals[l+2]=n.z,e.uvs[s+0]=a.x,e.uvs[s+1]=a.y}_extrudeRegion(e,r,o,n,a,s,l){let c=new Ie.Vector3,u=new Ie.Vector3,d=new Ie.Vector3,p=new Ie.Vector3,f=new Ie.Vector2;o.forEach((m,y)=>{let x=n[y],v=e.verticesStart*o.length+e.verticesCount*y;for(let w=0;w<e.count;w++){let O=(e.start+w)*2;if(c.set(r[O+0],r[O+1],0),d.copy(c).applyMatrix4(m).add(x),e.continuous[w])p.set(e.normals[w*2+0],e.normals[w*2+1],0);else{let S=w===0?(e.start+e.count-1)*2:O-2;u.set(r[S+0],r[S+1],0),p.copy(c).sub(u),p.set(-p.y,p.x,0),e.isHole||p.negate()}if(p.applyMatrix4(m).normalize(),f.set(w===0?1:w/e.count,y/(o.length-1)),this._insertVertex(a,v,d,p,f),v++,!e.continuous[w]||w===0){if(w===0)p.set(e.normals[w*2+0],e.normals[w*2+1],0),f.set(0,y/(o.length-1));else{let S=w===e.count-1?e.start*2:O+2;u.set(r[S+0],r[S+1],0),p.copy(u).sub(c),p.set(-p.y,p.x,0),e.isHole||p.negate()}p.applyMatrix4(m).normalize(),this._insertVertex(a,v,d,p,f),v++}}});let h=o.length-1;for(let m=0;m<h;m++){let y=e.verticesStart*o.length+e.verticesCount*m,x=e.verticesStart*o.length+e.verticesCount*(m+1),v=0;for(let w=0;w<e.count;w++){(!e.continuous[w]||w===0)&&v++;let O=w===e.count-1?0:v+1,S=y+v,T=y+O,M=x+O,g=x+v;e.isHole?s.push(S,M,T,S,g,M):s.push(S,T,M,S,M,g),v++}}}_closeEnd(e,r,o,n,a,s,l){let c=e.vertexCount,u=new Ie.Vector3(0,0,l?-1:1).applyMatrix4(a),d=new Ie.Vector3,p=new Ie.Vector2;for(let h=0;h<c;h++){let m=2*h;d.set(e.vertices[m+0],e.vertices[m+1],0).applyMatrix4(a).add(s),this._insertVertex(n,r+h,d,u,p)}let f=e.elements;for(let h=0;h<e.elementCount;h++){let m=3*h,y=f[m+0]+r,x=f[m+(l?1:2)]+r,v=f[m+(l?2:1)]+r;o.push(y,x,v)}}applyMatrix4OnRange(e,r,o){let n=e.elements,a=new Ie.Matrix3().getNormalMatrix(e).elements,s,l,c,u,d=this.attributes.position,p=this.attributes.normal;if(!d||!p)return;let f=d.array,h=p.array,m=d.itemSize;for(let y=r*m,x=o*m;y<x;y+=m){if(y===r)debugger;s=f[y+0],l=f[y+1],c=f[y+2],u=1/(n[3]*s+n[7]*l+n[11]*c+n[15]),f[y+0]=(n[0]*s+n[4]*l+n[8]*c+n[12])*u,f[y+1]=(n[1]*s+n[5]*l+n[9]*c+n[13])*u,f[y+2]=(n[2]*s+n[6]*l+n[10]*c+n[14])*u,s=h[y+0],l=h[y+1],c=h[y+2],h[y+0]=a[0]*s+a[3]*l+a[6]*c,h[y+1]=a[1]*s+a[4]*l+a[7]*c,h[y+2]=a[2]*s+a[5]*l+a[8]*c}d.needsUpdate=!0,p.needsUpdate=!0}reverseIndicesOnRange(e,r){let o=this.index;if(o){for(let n=e;n<r;n+=3){let a=o.getX(n),s=o.getX(n+1),l=o.getX(n+2);o.setXYZ(n,l,s,a)}o.needsUpdate=!0}}};var En=require("three"),cb=require("three/examples/jsm/utils/BufferGeometryUtils.js");function ub(){let i=new En.BufferGeometry;return i.setAttribute("position",new En.BufferAttribute(new Float32Array([]),3)),i.setIndex(new En.BufferAttribute(new Uint16Array([]),1)),i}var wI=ub().attributes,PI=12,OI=1,Nn=class extends En.BufferGeometry{constructor(e,r){super();this.charWidths=[];this.charCoords=[];this.wrappedText=[];this.isLowResolution=!1;this.vectorShapes=[];Object.assign(this.attributes,wI),this.userData={parameters:e,type:"TextGeometry"};let o=r.getFont(e.font);o?.isLoaded?(this.font=o,this.update(e,r)):this.updateFont(e.font,r).then(()=>{this.update(e,r),r?.requestRender()})}async updateFont(e,r){let o=r.getFont(e);o&&(this.font=o,await o.loadingPromise)}update(e,r){let o=this.font;if(this.userData={parameters:e,type:"TextGeometry"},!o?.isLoaded){console.warn("Cannot update text because its font is not loaded");return}let{width:n,height:a,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c,text:u,textTransform:d}=e,p=zi.getDisplayedValue(u),f=d===2?p.toUpperCase():d===3?p.toLowerCase():p,h=TI(e,o,f,r),{shapes:m,charWidths:y,charCoords:x}=o.generateShapes(h,e,r),v=(typeof n=="number"?n:Number(r.getVariable(n)))*.5,w=(typeof a=="number"?a:Number(r.getVariable(a)))*.5,O=m.map(M=>new Xe().fromShape(M,!0));this.vectorShapes=O;let S=O.map(M=>Pr.create({shape:M,parameters:{depth:s,extrudeBevelSegments:c,extrudeBevelSize:l,windingRule:s<=0?$e.NONZERO:$e.ODD,subdivisions:this.isLowResolution&&s>0?OI:PI}})),T=S.length?(0,cb.mergeBufferGeometries)(S):ub();T.translate(-v,w,0),this.dispose(),this.wrappedText=h,this.charCoords=x,this.charWidths=y,this.deleteAttribute("extrudeNormal"),Object.entries(T.attributes).forEach(([M,g])=>{this.setAttribute(M,g)}),this.setIndex(T.index),this.computeBoundingSphere()}clone(){let e=Ft(new En.BufferGeometry,Nn.prototype);return e.copy(this),console.log("CloneGeometry",this,e),e}copy(e){return Object.entries(e.attributes).forEach(([r,o])=>{this.setAttribute(r,o)}),this.setIndex(e.index),this.userData={parameters:{...e.userData.parameters},type:"TextGeometry"},this}async setText(e,r){this.font&&await this.font.loadingPromise,await this.update({...this.userData.parameters,text:{textValue:e}},r)}get text(){return this.userData.parameters.text??""}};function TI(i,t,e,r){let o=typeof i.width=="string"?Number(r.getVariable(i.width)):i.width,n=[""],a="";for(let s of e)a+=s,s===" "||s===`
17
17
  `?(n[n.length-1]+=a,a="",s===`
18
- `&&n.push("")):t.getTextWidth(n[n.length-1]+a,i)>o&&(n[n.length-1].length&&n.push(""),t.getTextWidth(n[n.length-1]+a,i)>o&&(a.length===1?(n[n.length-1]+=a,a=""):(n[n.length-1]+=a.slice(0,-1),a=a[a.length-1],n.push(""))));return n[n.length-1]+=a,n}var lt=require("three");var pb,ed=new Promise(i=>{pb=i}),db=!1;var Ju;function fb(i){if(db)return;if(Ju)return Ju;async function t(){let r=i??(!1?".":"https://unpkg.com/@splinetool/modelling-wasm@1.10.90/build"),n=import("./process.js"),[a,s]=await Promise.all([n,fetch(`${r}/process.wasm`).then(u=>u.arrayBuffer())]),l=a.default,c=await l({wasmBinary:s});pb(c),db=!0}return Ju=t(),Ju}var hb=require("three");var CI=["font"];function Bo(i,t,e,r){let o,n,a;i.type==="PathGeometry"?(n=JSON.parse(JSON.stringify(i)),a=[[],["extrusion"]]):(n={...i},a=[[]]);for(let c of a){let u=n;for(let d of c)u=u[d];for(o in u){let d=u[o];qp(d)&&!CI.includes(o)&&(u[o]=t.getVariable(d,[r.uuid,"geometry",...c,o]),qp(u[o])&&(u[o]=1))}}let s={parameters:n,type:n.type};if(n.type==="PathGeometry")s.path=n.path;else if(n.type==="VectorGeometry"){let c=Xe.createFromState(n.shape,n.width,n.height);s.shape=c}else if(n.type==="NonParametricGeometry"){if(n.data.groups&&n.data.groups?.forEach(c=>c.materialIndex=Math.max(c.materialIndex??0,0)),s.geometry=new hb.BufferGeometryLoader().parse(n),s.geometry.groups.length===0){let c=s.geometry;c.addGroup(0,Math.max(c.getIndex()?.count??0,c.getAttribute("position").count),0)}}else if(n.type==="SubdivGeometry"){let c=new Rt(n,e);return c.data=i,c}else{if(n.type==="TextGeometry")return new Nn(n,t);if(n.type==="InputGeometry")return new Nn(n,t);if(n.type==="UIGeometry")return Ja.create({parameters:{width:n.width,height:n.height,cornerRadius:n.cornerRadius,cornerType:n.cornerType}})}let l;try{l=kf(s)}catch(c){console.error(c),console.error(`Error generating geometry with inputs: ${s}`);let u=Xe.createFromState(Ia.defaultData(),100,100);s.shape=u,s.type="VectorGeometry",l=kf(s)}return l}var mb=require("three"),AI=new mb.Matrix4;function Rl(i,t,e,r){let o=i.position.array,n=i.normal.array,a=AI.makeScale(t,e,r).invert().elements,s,l,c;for(var u=0,d=o.length;u<d;u+=3)o[u]*=t,o[u+1]*=e,o[u+2]*=r,s=n[u],l=n[u+1],c=n[u+2],n[u]=a[0]*s+a[4]*l+a[8]*c,n[u+1]=a[1]*s+a[5]*l+a[9]*c,n[u+2]=a[2]*s+a[6]*l+a[10]*c;i.position.needsUpdate=!0,i.normal.needsUpdate=!0}var td=new lt.Box3,ts=new lt.Vector3,Pe;ed.then(i=>{Pe=i});var yb=new Float32Array([10,10,0,-10,10,0,-10,-10,0,10,-10,0]),gb=new Uint32Array([0,1,2,3]),xb=new Uint8Array([4]),Rt=class extends lt.BufferGeometry{constructor(e,r){super();this.data=e;this.flatShading=r;this.subdivPointer=0;this.rebuild(),this.freeSubdivPointer()}mutateDirectlyScaleBaked(e,r){this.freeSubdivPointer();let o=this.data.scaleBaked,n=Di.div(r,o);if(n.every(l=>l===1))return;this.subdividedGeometry&&Rl(this.subdividedGeometry.attributes,...n),this.originalGeometry&&Rl(this.originalGeometry.attributes,...n),this.data=e;let a=this.userData.parameters;this.userData.parameters={width:a.width*n[0],height:a.height*n[1],depth:a.depth*n[2]},this.originalGeometry.boundingSphere.center.multiply(ts.fromArray(n));let s=ts.set(a.width,a.height,a.depth).length();this.originalGeometry.boundingSphere.radius=s/2}ensureSubdivPointer(){return this.subdivPointer===0&&this.rebuild(),this.subdivPointer}rebuild(){let e,r,o;try{({originalGeometry:e,subdividedGeometry:r,subdivPointer:o}=Rt.build(this.data,void 0,!this.flatShading,void 0))}catch{e=new lt.BoxGeometry(100,100,100),o=0}this.subdivPointer=o,this.originalGeometry=e,this.subdividedGeometry=r??void 0;let n=this.subdividedGeometry??this.originalGeometry;Object.assign(this,n),this.calcBoundingBox()}freeSubdivPointer(){this.subdivPointer&&(Rt.freeSubdivPointer(this.subdivPointer),this.subdivPointer=0)}dispose(){super.dispose(),this.freeSubdivPointer()}calcBoundingBox(){let e=this.originalGeometry;e.boundingSphere===null&&(e.boundingSphere=new lt.Sphere,this.subdividedGeometry&&(this.subdividedGeometry.boundingSphere=e.boundingSphere));let r=e.attributes.position,o=e.boundingSphere.center;td.setFromBufferAttribute(r),td.getCenter(o),e.boundingSphere.radius=o.distanceTo(td.max),isNaN(e.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),td.getSize(ts);let n={width:ts.x,height:ts.y,depth:ts.z};return this.userData.parameters=n,n}static build(e,r,o,n){let a,s,l,c=e?.phongAngle??35;o===!1&&(c=-1),r&&(Pe.free_bvh(r),Pe.free_subdivision_surface(r));try{a=Rt.allocate(e,n)}catch(u){console.error(u,e),a=Rt.allocate({positionWASM:yb,indexWASM:gb,verticesPerFaceWASM:xb},n)}if(Pe.set_destination_refinement_level(a,0),s=Rt.buildLevel(a,!0,c),e.subdivisions>0)try{Pe.set_destination_refinement_level(a,e.subdivisions),l=Rt.buildLevel(a,!1,c)}catch{try{Pe.set_destination_refinement_level(a,e.subdivisions-1),l=Rt.buildLevel(a,!1,c)}catch{l=null}}else l=null;return{subdivPointer:a,originalGeometry:s,subdividedGeometry:l}}static primitiveToQuads(e,r,o){e.widthSegments>16&&(e.widthSegments=16),e.heightSegments>16&&(e.heightSegments=16),e.depthSegments>16&&(e.depthSegments=16),e.radialSegments>16&&(e.radialSegments=16),e.type==="DodecahedronGeometry"&&(e.detail=0);let n=e.shape!==void 0||e.path!==void 0?r.geometry:Bo(e,o,!1,r),a;e.type==="TorusGeometry"&&e.arc===Math.PI*2?a=n.getClosedTorusIndicesForBooleanOrSubdiv():a=n.getIndex();let s,l,c,u;({positions:s,triIndices:u}=$f(n.getAttribute("position"),a));let d;if(e.type==="CylinderGeometry"&&e.cornerRadius===0&&e.hollow===0&&e.openEnded===!1){let p=e.radialSegments*e.heightSegments*3*2,f=p+e.radialSegments*3;d=[p,f]}return{indices:l,verticesPerFace:c}=Xf(s,u,n,d),{positions:s,indices:l,verticesPerFace:c}}static allocate(e,r){let o,n,a,s=[],l=[];e.positionWASM&&e.positionWASM.length>0?(o=e.positionWASM,n=e.indexWASM,a=e.verticesPerFaceWASM):(o=yb,n=gb,a=xb);let c=o.length,u=n.length,d=a.length,p=o.length+s.length+l.length,f=n.length+a.length,h=p*Float32Array.BYTES_PER_ELEMENT+f*Uint32Array.BYTES_PER_ELEMENT,m=p*Float32Array.BYTES_PER_ELEMENT,y=f*Uint32Array.BYTES_PER_ELEMENT,x=Pe._malloc(h),v=new Float32Array(Pe.HEAPF32.buffer,x,p),w=new Uint32Array(Pe.HEAPU32.buffer,x+m,f);v.set(o,0),v.set(s,o.length),v.set(l,o.length+s.length),w.set(n,0),w.set(a,n.length);let O;e?.scaleBaked?.some(T=>T!==1)&&(O=new lt.Matrix4().makeScale(...e.scaleBaked)),r&&(O?O.premultiply(r):O=r);let S=O?Pe.alloc_subdivision_surface2(x,c,x+m,u,x+m+n.length*Uint32Array.BYTES_PER_ELEMENT,d,O.elements):Pe.alloc_subdivision_surface(x,c,x+m,u,x+m+n.length*Uint32Array.BYTES_PER_ELEMENT,d);return Pe._free(x),S}static buildLevel(e,r,o,n,a){let s=a?Pe.get_mesh_data2(e,r?Pe.Level.CONTROL:Pe.Level.REFINED,o,a.elements):Pe.get_mesh_data(e,r?Pe.Level.CONTROL:Pe.Level.REFINED,o),l=8,c=Pe.HEAPU32.subarray(s>>2,(s>>2)+l),u=c.subarray(4,4+4),d=0,p=Pe.HEAPU32[c[d]>>2],f=Pe.HEAPF32.subarray(p>>2,(p>>2)+u[d]);d++;let h=Pe.HEAPU32[c[d]>>2],m=Pe.HEAPF32.subarray(h>>2,(h>>2)+u[d]);d++;let y=Pe.HEAPU32[c[d]>>2],x=Pe.HEAPU32.subarray(y>>2,(y>>2)+u[d]);d++;let v=Pe.HEAPU32[c[d]>>2],w=Pe.HEAPU32.subarray(v>>2,(v>>2)+u[d]);if(d++,n===void 0){let O=new lt.BufferGeometry;if(O.setIndex(new lt.Uint32BufferAttribute(w,1)),O.setAttribute("position",new lt.Float32BufferAttribute(f,3)),O.setAttribute("normal",new lt.Float32BufferAttribute(m,3)),r){O.setAttribute("faceMap",new lt.Uint32BufferAttribute(x,1));let S=new Float32Array(m.length/3*4).fill(0);O.setAttribute("color",new lt.BufferAttribute(S,4))}return Pe.free_mesh_data(s),O.userData.type="SubdivGeometry",O}n.getAttribute("position").copyArray(f),n.getAttribute("normal").copyArray(m),n.attributes.position.needsUpdate=!0,n.attributes.normal.needsUpdate=!0,Pe.free_mesh_data(s)}static freeSubdivPointer(e){Pe.free_bvh(e),Pe.free_subdivision_surface(e)}static buildControlCageWireframe(e,r,o){let n=Pe.get_wireframe_data_for_base_level(e),a=4,s=Pe.HEAPU32.subarray(n>>2,(n>>2)+a),l=s.subarray(2,2+2),c=0,u=Pe.HEAPU32[s[c]>>2],d=Pe.HEAPF32.subarray(u>>2,(u>>2)+l[c]);c++;let p=Pe.HEAPU32[s[c]>>2],f=Pe.HEAPU32.subarray(p>>2,(p>>2)+l[c]);if(r===void 0){let h=new lt.BufferGeometry;h.setAttribute("position",new lt.Float32BufferAttribute(d,3));let m=new Float32Array(d.length);for(let y=0,x=d.length;y<x;)m[y++]=o.r,m[y++]=o.g,m[y++]=o.b;return h.setAttribute("color",new lt.BufferAttribute(m,3)),h.setIndex(new lt.Uint32BufferAttribute(f,1)),Pe.free_wireframe_data_for_base_level(n),h}r.getAttribute("position").copyArray(d),r.attributes.position.needsUpdate=!0,Pe.free_wireframe_data_for_base_level(n)}static updateCollabMesh(e,r,o){let n=r===0;n||Pe.set_destination_refinement_level(e,r);let a=o?Pe.get_topological_data2(e,n?Pe.Level.CONTROL:Pe.Level.REFINED,o.elements):Pe.get_topological_data(e,n?Pe.Level.CONTROL:Pe.Level.REFINED),s=6,l=Pe.HEAPU32.subarray(a>>2,(a>>2)+s),c=l.subarray(3,3+3),u=0,d=Pe.HEAPU32[l[u]>>2],p=new Float32Array(Pe.HEAPF32.subarray(d>>2,(d>>2)+c[u]));u++;let f=Pe.HEAPU32[l[u]>>2],h=new Uint32Array(Pe.HEAPU32.subarray(f>>2,(f>>2)+c[u]));u++;let m=Pe.HEAPU32[l[u]>>2],y=new Uint8Array(Pe.HEAPU32.subarray(m>>2,(m>>2)+c[u]));return Pe.free_topological_data(a),{positions:p,indices:h,verticesPerFace:y}}};var bb=["getX","getY","getZ"];function $f(i,t){let e={},r=t?t.count:i.count,o=0,n=[],a=[],s=1e4;for(let c=0;c<r;c++){let u=t?t.getX(c):c,d="";for(let p=0;p<3;p++)d+=`${~~(i[bb[p]](u)*s)},`;if(d in e)n.push(e[d]);else{for(let p=0;p<3;p++)a.push(i[bb[p]](u));e[d]=o,n.push(o),o++}}let l=[];for(let c=0;c<n.length;c+=3)n[c]===n[c+1]||n[c]===n[c+2]||n[c+1]===n[c+2]||l.push(n[c],n[c+1],n[c+2]);return{positions:a,triIndices:l}}var rd=new lt.Vector3,Hf=new lt.Vector3,Wf=new lt.Vector3,qf=new lt.Vector3;function Xf(i,t,e,r){let o=[],n=[];if(e.userData.shape!==void 0&&e.userData.parameters.depth===0&&e.userData.shape.shapeHoles.length===0){let l=e.userData.shape.extractShapePointsToFlatArray([]),c=e.userData.parameters.spikes;if(e.userData.type==="EllipseGeometry"&&c<=24&&c%4===0&&e.userData.parameters.angle>=360){let p=l.length/2/c;l=l.filter((f,h)=>Math.floor(h/2)%p===0)}let u=0;for(let p=0;p<l.length;p+=2)u+=(l[p]-l[(p===0?l.length:p)-2])*(l[p+1]+l[(p===0?l.length:p)-1]);i.length=0;let d=0;if(u<0)for(let p=0;p<l.length;p+=2)i.push(l[p],l[p+1],0),o.push(d++);else for(let p=l.length-2;p>=0;p-=2)i.push(l[p],l[p+1],0),o.push(d++);return n.push(d),{indices:o,verticesPerFace:n}}let a=new Float32Array([e.userData.parameters.depth])[0],s=0;for(;s<t.length;){if(e.useNgonForTopBottomFaceDuringBake){let l=0;if((i[t[s]*3+2]===a||i[t[s]*3+2]===0)&&l++,(i[t[s+1]*3+2]===a||i[t[s+1]*3+2]===0)&&l++,(i[t[s+2]*3+2]===a||i[t[s+2]*3+2]===0)&&l++,l===3)break}if(t[s+1]===t[s+3]&&t[s+2]===t[s+5]||t[s+0]===t[s+3]&&t[s+2]===t[s+4]){rd.set(i[t[s]*3],i[t[s]*3+1],i[t[s]*3+2]),Hf.set(i[t[s+1]*3],i[t[s+1]*3+1],i[t[s+1]*3+2]),Wf.set(i[t[s+4]*3],i[t[s+4]*3+1],i[t[s+4]*3+2]),qf.set(i[t[s+5]*3],i[t[s+5]*3+1],i[t[s+5]*3+2]),Hf.sub(rd).normalize(),Wf.sub(rd).normalize(),qf.sub(rd).normalize();let l=Hf.cross(Wf).dot(qf);Math.abs(l)>.005||r&&r.some((c,u)=>u%2===1?!1:s>=r[u]&&s<r[u+1])?(o.push(t[s],t[s+1],t[s+2]),n.push(3),s+=3):(o.push(t[s],t[s+1],t[s+4],t[s+5]),n.push(4),s+=6)}else o.push(t[s],t[s+1],t[s+2]),n.push(3),s+=3}if(e.useNgonForTopBottomFaceDuringBake){let l=[],c=[],u=0;for(let d=0,p=0;d<i.length;d+=3,p++)i[d+2]===0&&(l.push(p),u++),i[d+2]===a&&c.push(p);if(e.userData.parameters.extrudeBevelSize===0){let d=c[0];c[0]=c[1],c[1]=d}l.reverse(),o.push(...l,...c),n.push(u,u)}return{indices:o,verticesPerFace:n}}var qr={};cm(qr,{calcBoolean:()=>NI,calcBooleanTopological:()=>EI,freeMeshSet:()=>LI,getMeshSet:()=>DI,hasOpenEdges:()=>_I,transformMeshSet:()=>RI});var MI,vb=new Promise(i=>{MI=i});var Ll=require("three");var Ue,rs;vb.then(i=>Ue=i);function II(i,t,e){let r,o;i.userData.parameters.type==="TorusGeometry"&&i.userData.parameters.arc===Math.PI*2?o=i.getClosedTorusIndicesForBooleanOrSubdiv():o=i.getIndex();let{positions:n,triIndices:a}=$f(i.getAttribute("position"),o),s;if(t&&e){let{indices:l,verticesPerFace:c}=Xf(n,a,i);s=c.length,r=[];for(let u=0,d=0;u<s;u++){r.push(c[u]);for(let p=0;p<c[u];p++)r.push(l[d++])}}else{let l=a.length;r=Array(l+l/3),s=0;for(let c=0,u=0;u<r.length;)r[u++]=3,s++,r[u++]=a[c++],r[u++]=a[c++],r[u++]=a[c++]}return{positions:n,faceIndices:r,nFaces:s}}function Sb(i){let t=i.length,e=t*Uint32Array.BYTES_PER_ELEMENT,r=t*Float32Array.BYTES_PER_ELEMENT,o=Number.isInteger(i[0])?e:r,n=Ue._malloc(o);return(Number.isInteger(i[0])?new Uint32Array(Ue.HEAPU32.buffer,n,t):new Float32Array(Ue.HEAPF32.buffer,n,t)).set(i,0),n}function wb(i){switch(i){case 0:return Ue.OP.UNION;case 1:return Ue.OP.INTERSECTION;case 2:return Ue.OP.A_MINUS_B;default:throw new Error("Unknown boolean operation "+i)}}function EI(i,t){rs===void 0&&(rs=Ue.init_csg());let e=Sb(i),r=Ue.csg_calc_topological(rs,e,i.length,wb(t));Ue._free(e);let o=6,n=Ue.HEAPU32.subarray(r>>2,(r>>2)+o),a=n.subarray(3,3+3),s=0,l=Ue.HEAPU32[n[s]>>2],c=new Float32Array(Ue.HEAPF32.subarray(l>>2,(l>>2)+a[s]));s++;let u=Ue.HEAPU32[n[s]>>2],d=new Uint32Array(Ue.HEAPU32.subarray(u>>2,(u>>2)+a[s]));s++;let p=Ue.HEAPU32[n[s]>>2],f=new Uint8Array(Ue.HEAPU32.subarray(p>>2,(p>>2)+a[s]));return Ue.free_mesh_data(r),{positions:c,indices:d,verticesPerFace:f}}function NI(i,t,e,r){rs===void 0&&(rs=Ue.init_csg());let o=Sb(i),n=Ue.csg_calc(rs,o,i.length,r,wb(t));Ue._free(o);let a=5,s=Ue.HEAPU32.subarray(n>>2,(n>>2)+a),l=s.subarray(2,2+3),c=0,u=Ue.HEAPU32[s[c]>>2],d=Ue.HEAPF32.subarray(u>>2,(u>>2)+l[c]);c++;let p=Ue.HEAPU32[s[c]>>2],f=Ue.HEAPF32.subarray(p>>2,(p>>2)+l[c]);c++;let h=l[c];e.setAttribute("position",new Ll.Float32BufferAttribute(d,3)),e.setAttribute("normal",new Ll.Float32BufferAttribute(f,3));let m=Ue.HEAPF32.subarray((n>>2)+5,(n>>2)+5+6);return e.boundingSphere===null&&(e.boundingSphere=new Ll.Sphere),e.boundingSphere.center.set(m[0],m[1],m[2]),e.boundingSphere.radius=(m[3]**2+m[4]**2+m[5]**2)**.5,e.userData.parameters={width:m[3]*2,height:m[4]*2,depth:m[5]*2},Ue.free_mesh_data(n),h}function DI(i,t,e){if(Ue===void 0)return-1;let r,o,n;if(t&&i.userData.positions!==void 0){let x=i.userData;n=x.verticesPerFace.length,r=x.positions,o=Array(x.verticesPerFace.reduce((v,w)=>v+w,0)+n);for(let v=0,w=0,O=0;v<x.verticesPerFace.length;v++){o[O++]=x.verticesPerFace[v];for(let S=0;S<x.verticesPerFace[v];S++)o[O++]=x.indices[w++]}}else({positions:r,faceIndices:o,nFaces:n}=II(i,t,e));let a=r.length,s=o.length,l=r.length,c=o.length,u=l*Float32Array.BYTES_PER_ELEMENT+c*Uint32Array.BYTES_PER_ELEMENT,d=l*Float32Array.BYTES_PER_ELEMENT,p=c*Uint32Array.BYTES_PER_ELEMENT,f=Ue._malloc(u),h=new Float32Array(Ue.HEAPF32.buffer,f,l),m=new Uint32Array(Ue.HEAPU32.buffer,f+d,c);h.set(r,0),m.set(o,0);let y=Ue.get_csg_mesh(f,a,f+d,s,n);return Ue._free(f),y}function _I(i){return Ue.has_open_edges(i)}function RI(i,t){Ue.transform_csg_mesh(i,t.elements)}function LI(i){Ue.free_csg_mesh(i)}var BI={ConeGeometry:px,CubeGeometry:fx,CylinderGeometry:dx,DodecahedronGeometry:mx,EllipseGeometry:Ka,HelixGeometry:Fx,IcosahedronGeometry:Ux,LatheGeometry:kx,NonParametricGeometry:$x,PolygonGeometry:Ku,PyramidGeometry:Xx,RectangleGeometry:Ja,SphereGeometry:Yx,PlaneGeometry:Qx,BackdropGeometry:Zx,StarGeometry:Qu,TextFrameGeometry:eb,TorusGeometry:tb,TorusKnotGeometry:ob,TriangleGeometry:ib,PathGeometry:lb,VectorGeometry:Pr},kf=i=>BI[i.type].create(i);function os(i){return i!==null&&"booleanOp"in i}var is=class extends Ua(od.Mesh){constructor(){super(...arguments);this.booleanMeshSetAddress=-1;this.booleanWasTransformed=!1;this.booleanMatrixInvOld=new od.Matrix4}updateVisible(e){super.updateVisible(e),this.visible=!os(this.parent)&&this.visible,os(this.parent)&&this.parent.invalidateDownstreamBooleanData()}freeBooleanPointer(){this.booleanMeshSetAddress!==-1&&(qr.freeMeshSet(this.booleanMeshSetAddress),this.booleanMeshSetAddress=-1)}invalidateDownstreamBooleanData(e=!1){return e?this.booleanWasTransformed=!0:this.freeBooleanPointer(),os(this.parent)?this.parent.invalidateDownstreamBooleanData():this}invalidateUpstreamBooleanData(){this.freeBooleanPointer();for(let e of this.children)e instanceof is&&(e.freeBooleanPointer(),os(e)&&e.invalidateUpstreamBooleanData())}updateTransformState(e,r){let o=super.updateTransformState(e,r);return o&&os(this.parent)&&this.invalidateDownstreamBooleanData(!0),o}onVariableUpdate(e=!1){super.onVariableUpdate(e),os(this.parent)&&this.invalidateDownstreamBooleanData(!0)}};var id=new ns.Box3;function Bl(i,t=0,e=i.count,r,o){let n=1/0,a=1/0,s=1/0,l=-1/0,c=-1/0,u=-1/0;for(let d=t;d<e;d++){let p=i.getX(d),f=i.getY(d),h=i.getZ(d);p<n&&(n=p),f<a&&(a=f),h<s&&(s=h),p>l&&(l=p),f>c&&(c=f),h>u&&(u=h)}id.min.set(n,a,s),id.max.set(l,c,u),id.getCenter(r),id.getSize(o).multiplyScalar(.5)}var VI=new ns.BufferGeometry,zI=new ns.MeshBasicMaterial,Wt=class extends is{constructor(t,e){super(VI,zI),this.super_Entity(t,e)}updateState(t,e){this.updateState_Entity(t,e)}updateEntityBoxSize(t,e){let r=this.geometry.getAttribute("position");r!==void 0?Bl(r,this.geometry.drawRange.start,this.geometry.drawRange.count<1/0?this.geometry.drawRange.count:r.count,t,e):super.updateEntityBoxSize(t,e)}};var yi=require("three");var Vr=require("three");var Hb=require("three");var pi=class{constructor(t){this.hashProperties=void 0;this.isNode=!0;this.shortcuts={};if(pi.uuidContext===null)throw new Error("plz startContext");pi.uuidContext===pi.globalContext?this.uuid="_gid"+pi.uuidContext.nodeContextUuid++:this.uuid="_uid"+pi.uuidContext.nodeContextUuid++,this.type=t,this.name=""}static startContext(t){this.uuidContext===null||this.uuidContext===pi.globalContext?this.uuidContext=t:console.error("Can't start context twice")}static endContext(t){this.uuidContext!==t&&console.error("Can't end context twice"),this.uuidContext=null}analyze(t,e){e=e??{},t.analyzing=!0,this.build(t.addFlow(e.slot,e.cache,e.context),"v4"),t.clearVertexNodeCode(),t.clearFragmentNodeCode(),t.removeFlow(),t.analyzing=!1}analyzeAndFlow(t,e,r){return r=r??{},this.analyze(t,r),this.flow(t,e,r)}flow(t,e,r){r=r??{},t.addFlow(r.slot,r.cache,r.context);let o={result:this.build(t,e),code:t.clearNodeCode(),extra:t.context.extra};return t.removeFlow(),o}build(t,e,r){e=e??this.getType(t,e);let o=t.getNodeData(r??this);return t.analyzing&&this.appendDepsNode(t,o,e),t.nodes.indexOf(this)===-1&&t.nodes.push(this),this.updateFrame!==void 0&&t.updaters.indexOf(this)===-1&&t.updaters.push(this),this.generate(t,e,r)}updateFrame(t){}generateReadonly(t,e,r,o,n,a){return""}generate(t,e,r,o,n){return""}parse(t,e,r,o){}appendDepsNode(t,e,r){e.deps=(e.deps||0)+1;let o=t.getTypeLength(r);(o>(e.outputMax||0)||this.getType(t,r))&&(e.outputMax=o,e.output=r)}setName(t){this.name=t}getName(){return this.name}getType(t,e){return e==="sampler2D"||e==="samplerCube"?e:this.type}},ot=pi;ot.globalContext={nodeContextUuid:0},ot.uuidContext=pi.globalContext;var yo=require("three");var Vl=class{constructor(t){t=t??{},this.name=t.name,this.type=t.type,this.node=t.node,this.size=t.size,this.needsUpdate=t.needsUpdate}get value(){return this.node.value}set value(t){this.node.value=t}};var Yf=class{constructor(){this.nodes={};this.keywords={}}add(t){this.nodes[t.name]=t}addKeyword(t,e,r){r=r!==void 0?r:!0,this.keywords[t]={callback:e,cache:r}}remove(t){delete this.nodes[t.name]}removeKeyword(t){delete this.keywords[t]}get(t){return this.nodes[t]}getKeyword(t,e){return this.keywords[t].callback(e)}getKeywordData(t){return this.keywords[t]}contains(t){return this.nodes[t]!==void 0}containsKeyword(t){return this.keywords[t]!==void 0}},qt=new Yf;var Kf=require("three");var Pb=require("three"),be=class extends ot{constructor(e,r){super(e);this.scope="";r=r??{},this.shared=r.shared!==void 0?r.shared:!0,this.unique=r.unique!==void 0?r.unique:!1}build(e,r,o,n){if(r=r??this.getType(e),this.getShared(e,r)){let a=this.getUnique(e,r);a&&this.uuid===void 0&&(this.uuid=Pb.MathUtils.generateUUID()),o=e.getUUID(o??this.getUUID(),!a);let s=e.getNodeData(o),l=s.output||this.getType(e);if(e.analyzing)return(s.deps||0)>0||this.getLabel()?(this.appendDepsNode(e,s,r),this.generate(e,r,o)):super.build(e,r,o);if(a)return s.name=s.name||super.build(e,r,o),s.name;if(!this.getLabel()&&(!this.getShared(e,l)||e.context.ignoreCache||s.deps===1))return super.build(e,r,o);o=this.getUUID(!1);let c=this.getTemp(e,o);if(c)return e.format(c,l,r);{c=super.generate(e,r,o,s.output,n);let u=this.generate(e,l,o);return e.addNodeCode(c+" = "+u+";"),e.format(c,l,r)}}return super.build(e,r,o)}getShared(e,r){return r!=="sampler2D"&&r!=="samplerCube"&&this.shared}getUnique(e,r){return this.unique}setLabel(e){return this.label=e,this}getLabel(){return this.label}getUUID(e){let r=this.uuid;return typeof this.scope=="string"&&(r=this.scope+"-"+r),r}getTemp(e,r){r=r||this.uuid;let o=e.getVars()[r];return o?o.name:void 0}generate(e,r,o,n,a){return this.getShared(e,r)||console.error("TempNode is not shared"),o=o??this.uuid,e.getTempVar(o,n??this.getType(e),a,this.getLabel()).name}};var it=class extends be{constructor(e,r){r=r??{},r.shared=r.shared!==void 0?r.shared:!1;super(e,r);this.readonly=!1}setReadonly(e){return this.readonly=e,this.hashProperties=this.readonly?["value"]:void 0,this}getReadonly(){return this.readonly}generate(e,r,o,n,a,s){o=e.getUUID(o??this.getUUID()),n=n??this.getType(e);let l=e.getNodeData(o);return this.getReadonly()&&this.generateReadonly!==void 0?this.generateReadonly(e,r,o,n,a,s):e.isShader("vertex")?(l.vertex||(l.vertex=e.createVertexUniform(n,this,a,s,this.getLabel())),e.format(l.vertex.name,n,r)):(l.fragment||(l.fragment=e.createFragmentUniform(n,this,a,s,this.getLabel())),e.format(l.fragment.name,n,r))}};var wt=class extends it{constructor(e=0,r){super("v2");this.nodeType="Vector2";this.value=e instanceof Kf.Vector2?e:new Kf.Vector2(e,r)}get x(){return this.value.x}set x(e){this.value.x=e}get y(){return this.value.y}set y(e){this.value.y=e}generateReadonly(e,r,o,n,a,s){return e.format("vec2("+this.value.x+", "+this.value.y+")",n,r)}};var Qf=require("three");var ir=class extends it{constructor(e=0,r,o){super("v3");this.nodeType="Vector3";this.value=e instanceof Qf.Vector3?e:new Qf.Vector3(e,r,o)}get x(){return this.value.x}set x(e){this.value.x=e}get y(){return this.value.y}set y(e){this.value.y=e}get z(){return this.value.z}set z(e){this.value.z=e}generateReadonly(e,r,o,n,a,s){return e.format("vec3("+this.value.x+", "+this.value.y+", "+this.value.z+")",n,r)}};var Or=class extends it{constructor(e){super("v4");this.nodeType="Vector4";this.value=e instanceof kt?e:new kt(e.r,e.g,e.b,e.a)}generateReadonly(e,r,o,n,a,s){return e.format("vec4("+this.value.r+", "+this.value.g+", "+this.value.b+", "+this.value.a+")",n,r)}};var GI=/^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,Ob=/[a-z_0-9]+/gi,J=class extends be{constructor(e,r,o,n,a){super(a);this.src="";this.nodeType="Function";this.useKeywords=!0;this.includes=[];this.extensions={};this.keywords={};this.isMethod=a===void 0,this.isInterface=!1,this.parse(e,r,o,n)}getShared(e,r){return!this.isMethod}getType(e){return e.getTypeByFormat(this.type)}getInputByName(e){if(this.inputs){let r=this.inputs.length;for(;r--;)if(this.inputs[r].name===e)return this.inputs[r]}}getIncludeByName(e){if(this.includes){let r=this.includes.length;for(;r--;)if(this.includes[r].name===e)return this.includes[r]}}generate(e,r,o,n,a){let s,l=0,c=this.src;if(this.includes)for(let d=0;d<this.includes.length;d++)e.include(this.includes[d],this);for(let d in this.extensions)e.extensions[d]=!0;let u=[];for(;s=Ob.exec(this.src);)u.push(s);for(let d=0;d<u.length;d++){let p=u[d],f=p[0],h=this.isMethod?!this.getInputByName(f):!0,m=f;if(this.keywords[f]||this.useKeywords&&h&&qt.containsKeyword(f)){let y=this.keywords[f];if(!y){let x=qt.getKeywordData(f);x.cache&&(y=e.keywords[f]),y=y||qt.getKeyword(f,e),x.cache&&(e.keywords[f]=y)}m=y.build(e)}f!==m&&c[p.index+l-1]!=="."&&(c=c.substring(0,p.index+l)+m+c.substring(p.index+f.length+l),l+=m.length-f.length),this.getIncludeByName(m)===void 0&&qt.contains(m)&&e.include(qt.get(m))}return r==="source"?c:this.isMethod?(this.isInterface||e.include(this,void 0,c),this.name):e.format("( "+c+" )",this.getType(e),r)}parse(e,r,o,n){if(this.src=e||"",this.includes=r??[],this.extensions=o??{},this.keywords=n??{},this.isMethod){let a=GI.exec(this.src);if(this.inputs=[],a&&a.length==4){this.type=a[1],this.name=a[2];let s=a[3].match(Ob);if(s){let l=0;for(;l<s.length;){let c=s[l++],u;c==="in"||c==="out"||c==="inout"?u=s[l++]:(u=c,c="");let d=s[l++];this.inputs.push({name:d,type:u,qualifier:c})}}this.isInterface=this.src.indexOf("{")===-1}else this.type="",this.name=""}}};var FI=/^([a-z_0-9]+)\s([a-z_0-9]+)\s?\=?\s?(.*?)(\;|$)/i,Zf=class extends be{constructor(e="",r){super();this.src="";this.useDefine=!1;this.nodeType="Const";this.parse(e||Zf.PI,void 0,void 0,void 0,r)}getType(e){return e.getTypeByFormat(this.type)}parse(e,r,o,n,a){this.src=e||"";let s,l,c="",u=FI.exec(e);this.useDefine=a??this.src.charAt(0)==="#",u&&u.length>1?(l=u[1],s=u[2],c=u[3]):(s=this.src,l="f"),this.name=s,this.type=l,this.value=c}build(e,r){if(r==="source"){if(this.value)return this.useDefine?"#define "+this.name+" "+this.value:"const "+this.type+" "+this.name+" = "+this.value+";";if(this.useDefine)return this.src}return e.include(this),e.format(this.name,this.getType(e),r)}generate(e,r,o,n,a){return e.format(this.name,this.getType(e),r)}},qe=Zf;qe.PI="PI",qe.PI2="PI2",qe.RECIPROCAL_PI="RECIPROCAL_PI",qe.RECIPROCAL_PI2="RECIPROCAL_PI2",qe.LOG2="LOG2",qe.EPSILON="EPSILON";var jI=new RegExp(`^structs*([a-z_0-9]+)s*{s*((.|
18
+ `&&n.push("")):t.getTextWidth(n[n.length-1]+a,i)>o&&(n[n.length-1].length&&n.push(""),t.getTextWidth(n[n.length-1]+a,i)>o&&(a.length===1?(n[n.length-1]+=a,a=""):(n[n.length-1]+=a.slice(0,-1),a=a[a.length-1],n.push(""))));return n[n.length-1]+=a,n}var lt=require("three");var pb,ed=new Promise(i=>{pb=i}),db=!1;var Ju;function fb(i){if(db)return;if(Ju)return Ju;async function t(){let r=i??(!1?".":"https://unpkg.com/@splinetool/modelling-wasm@1.10.92/build"),n=import("./process.js"),[a,s]=await Promise.all([n,fetch(`${r}/process.wasm`).then(u=>u.arrayBuffer())]),l=a.default,c=await l({wasmBinary:s});pb(c),db=!0}return Ju=t(),Ju}var hb=require("three");var CI=["font"];function Bo(i,t,e,r){let o,n,a;i.type==="PathGeometry"?(n=JSON.parse(JSON.stringify(i)),a=[[],["extrusion"]]):(n={...i},a=[[]]);for(let c of a){let u=n;for(let d of c)u=u[d];for(o in u){let d=u[o];qp(d)&&!CI.includes(o)&&(u[o]=t.getVariable(d,[r.uuid,"geometry",...c,o]),qp(u[o])&&(u[o]=1))}}let s={parameters:n,type:n.type};if(n.type==="PathGeometry")s.path=n.path;else if(n.type==="VectorGeometry"){let c=Xe.createFromState(n.shape,n.width,n.height);s.shape=c}else if(n.type==="NonParametricGeometry"){if(n.data.groups&&n.data.groups?.forEach(c=>c.materialIndex=Math.max(c.materialIndex??0,0)),s.geometry=new hb.BufferGeometryLoader().parse(n),s.geometry.groups.length===0){let c=s.geometry;c.addGroup(0,Math.max(c.getIndex()?.count??0,c.getAttribute("position").count),0)}}else if(n.type==="SubdivGeometry"){let c=new Rt(n,e);return c.data=i,c}else{if(n.type==="TextGeometry")return new Nn(n,t);if(n.type==="InputGeometry")return new Nn(n,t);if(n.type==="UIGeometry")return Ja.create({parameters:{width:n.width,height:n.height,cornerRadius:n.cornerRadius,cornerType:n.cornerType}})}let l;try{l=kf(s)}catch(c){console.error(c),console.error(`Error generating geometry with inputs: ${s}`);let u=Xe.createFromState(Ia.defaultData(),100,100);s.shape=u,s.type="VectorGeometry",l=kf(s)}return l}var mb=require("three"),AI=new mb.Matrix4;function Rl(i,t,e,r){let o=i.position.array,n=i.normal.array,a=AI.makeScale(t,e,r).invert().elements,s,l,c;for(var u=0,d=o.length;u<d;u+=3)o[u]*=t,o[u+1]*=e,o[u+2]*=r,s=n[u],l=n[u+1],c=n[u+2],n[u]=a[0]*s+a[4]*l+a[8]*c,n[u+1]=a[1]*s+a[5]*l+a[9]*c,n[u+2]=a[2]*s+a[6]*l+a[10]*c;i.position.needsUpdate=!0,i.normal.needsUpdate=!0}var td=new lt.Box3,ts=new lt.Vector3,Pe;ed.then(i=>{Pe=i});var yb=new Float32Array([10,10,0,-10,10,0,-10,-10,0,10,-10,0]),gb=new Uint32Array([0,1,2,3]),xb=new Uint8Array([4]),Rt=class extends lt.BufferGeometry{constructor(e,r){super();this.data=e;this.flatShading=r;this.subdivPointer=0;this.rebuild(),this.freeSubdivPointer()}mutateDirectlyScaleBaked(e,r){this.freeSubdivPointer();let o=this.data.scaleBaked,n=Di.div(r,o);if(n.every(l=>l===1))return;this.subdividedGeometry&&Rl(this.subdividedGeometry.attributes,...n),this.originalGeometry&&Rl(this.originalGeometry.attributes,...n),this.data=e;let a=this.userData.parameters;this.userData.parameters={width:a.width*n[0],height:a.height*n[1],depth:a.depth*n[2]},this.originalGeometry.boundingSphere.center.multiply(ts.fromArray(n));let s=ts.set(a.width,a.height,a.depth).length();this.originalGeometry.boundingSphere.radius=s/2}ensureSubdivPointer(){return this.subdivPointer===0&&this.rebuild(),this.subdivPointer}rebuild(){let e,r,o;try{({originalGeometry:e,subdividedGeometry:r,subdivPointer:o}=Rt.build(this.data,void 0,!this.flatShading,void 0))}catch{e=new lt.BoxGeometry(100,100,100),o=0}this.subdivPointer=o,this.originalGeometry=e,this.subdividedGeometry=r??void 0;let n=this.subdividedGeometry??this.originalGeometry;Object.assign(this,n),this.calcBoundingBox()}freeSubdivPointer(){this.subdivPointer&&(Rt.freeSubdivPointer(this.subdivPointer),this.subdivPointer=0)}dispose(){super.dispose(),this.freeSubdivPointer()}calcBoundingBox(){let e=this.originalGeometry;e.boundingSphere===null&&(e.boundingSphere=new lt.Sphere,this.subdividedGeometry&&(this.subdividedGeometry.boundingSphere=e.boundingSphere));let r=e.attributes.position,o=e.boundingSphere.center;td.setFromBufferAttribute(r),td.getCenter(o),e.boundingSphere.radius=o.distanceTo(td.max),isNaN(e.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),td.getSize(ts);let n={width:ts.x,height:ts.y,depth:ts.z};return this.userData.parameters=n,n}static build(e,r,o,n){let a,s,l,c=e?.phongAngle??35;o===!1&&(c=-1),r&&(Pe.free_bvh(r),Pe.free_subdivision_surface(r));try{a=Rt.allocate(e,n)}catch(u){console.error(u,e),a=Rt.allocate({positionWASM:yb,indexWASM:gb,verticesPerFaceWASM:xb},n)}if(Pe.set_destination_refinement_level(a,0),s=Rt.buildLevel(a,!0,c),e.subdivisions>0)try{Pe.set_destination_refinement_level(a,e.subdivisions),l=Rt.buildLevel(a,!1,c)}catch{try{Pe.set_destination_refinement_level(a,e.subdivisions-1),l=Rt.buildLevel(a,!1,c)}catch{l=null}}else l=null;return{subdivPointer:a,originalGeometry:s,subdividedGeometry:l}}static primitiveToQuads(e,r,o){e.widthSegments>16&&(e.widthSegments=16),e.heightSegments>16&&(e.heightSegments=16),e.depthSegments>16&&(e.depthSegments=16),e.radialSegments>16&&(e.radialSegments=16),e.type==="DodecahedronGeometry"&&(e.detail=0);let n=e.shape!==void 0||e.path!==void 0?r.geometry:Bo(e,o,!1,r),a;e.type==="TorusGeometry"&&e.arc===Math.PI*2?a=n.getClosedTorusIndicesForBooleanOrSubdiv():a=n.getIndex();let s,l,c,u;({positions:s,triIndices:u}=$f(n.getAttribute("position"),a));let d;if(e.type==="CylinderGeometry"&&e.cornerRadius===0&&e.hollow===0&&e.openEnded===!1){let p=e.radialSegments*e.heightSegments*3*2,f=p+e.radialSegments*3;d=[p,f]}return{indices:l,verticesPerFace:c}=Xf(s,u,n,d),{positions:s,indices:l,verticesPerFace:c}}static allocate(e,r){let o,n,a,s=[],l=[];e.positionWASM&&e.positionWASM.length>0?(o=e.positionWASM,n=e.indexWASM,a=e.verticesPerFaceWASM):(o=yb,n=gb,a=xb);let c=o.length,u=n.length,d=a.length,p=o.length+s.length+l.length,f=n.length+a.length,h=p*Float32Array.BYTES_PER_ELEMENT+f*Uint32Array.BYTES_PER_ELEMENT,m=p*Float32Array.BYTES_PER_ELEMENT,y=f*Uint32Array.BYTES_PER_ELEMENT,x=Pe._malloc(h),v=new Float32Array(Pe.HEAPF32.buffer,x,p),w=new Uint32Array(Pe.HEAPU32.buffer,x+m,f);v.set(o,0),v.set(s,o.length),v.set(l,o.length+s.length),w.set(n,0),w.set(a,n.length);let O;e?.scaleBaked?.some(T=>T!==1)&&(O=new lt.Matrix4().makeScale(...e.scaleBaked)),r&&(O?O.premultiply(r):O=r);let S=O?Pe.alloc_subdivision_surface2(x,c,x+m,u,x+m+n.length*Uint32Array.BYTES_PER_ELEMENT,d,O.elements):Pe.alloc_subdivision_surface(x,c,x+m,u,x+m+n.length*Uint32Array.BYTES_PER_ELEMENT,d);return Pe._free(x),S}static buildLevel(e,r,o,n,a){let s=a?Pe.get_mesh_data2(e,r?Pe.Level.CONTROL:Pe.Level.REFINED,o,a.elements):Pe.get_mesh_data(e,r?Pe.Level.CONTROL:Pe.Level.REFINED,o),l=8,c=Pe.HEAPU32.subarray(s>>2,(s>>2)+l),u=c.subarray(4,4+4),d=0,p=Pe.HEAPU32[c[d]>>2],f=Pe.HEAPF32.subarray(p>>2,(p>>2)+u[d]);d++;let h=Pe.HEAPU32[c[d]>>2],m=Pe.HEAPF32.subarray(h>>2,(h>>2)+u[d]);d++;let y=Pe.HEAPU32[c[d]>>2],x=Pe.HEAPU32.subarray(y>>2,(y>>2)+u[d]);d++;let v=Pe.HEAPU32[c[d]>>2],w=Pe.HEAPU32.subarray(v>>2,(v>>2)+u[d]);if(d++,n===void 0){let O=new lt.BufferGeometry;if(O.setIndex(new lt.Uint32BufferAttribute(w,1)),O.setAttribute("position",new lt.Float32BufferAttribute(f,3)),O.setAttribute("normal",new lt.Float32BufferAttribute(m,3)),r){O.setAttribute("faceMap",new lt.Uint32BufferAttribute(x,1));let S=new Float32Array(m.length/3*4).fill(0);O.setAttribute("color",new lt.BufferAttribute(S,4))}return Pe.free_mesh_data(s),O.userData.type="SubdivGeometry",O}n.getAttribute("position").copyArray(f),n.getAttribute("normal").copyArray(m),n.attributes.position.needsUpdate=!0,n.attributes.normal.needsUpdate=!0,Pe.free_mesh_data(s)}static freeSubdivPointer(e){Pe.free_bvh(e),Pe.free_subdivision_surface(e)}static buildControlCageWireframe(e,r,o){let n=Pe.get_wireframe_data_for_base_level(e),a=4,s=Pe.HEAPU32.subarray(n>>2,(n>>2)+a),l=s.subarray(2,2+2),c=0,u=Pe.HEAPU32[s[c]>>2],d=Pe.HEAPF32.subarray(u>>2,(u>>2)+l[c]);c++;let p=Pe.HEAPU32[s[c]>>2],f=Pe.HEAPU32.subarray(p>>2,(p>>2)+l[c]);if(r===void 0){let h=new lt.BufferGeometry;h.setAttribute("position",new lt.Float32BufferAttribute(d,3));let m=new Float32Array(d.length);for(let y=0,x=d.length;y<x;)m[y++]=o.r,m[y++]=o.g,m[y++]=o.b;return h.setAttribute("color",new lt.BufferAttribute(m,3)),h.setIndex(new lt.Uint32BufferAttribute(f,1)),Pe.free_wireframe_data_for_base_level(n),h}r.getAttribute("position").copyArray(d),r.attributes.position.needsUpdate=!0,Pe.free_wireframe_data_for_base_level(n)}static updateCollabMesh(e,r,o){let n=r===0;n||Pe.set_destination_refinement_level(e,r);let a=o?Pe.get_topological_data2(e,n?Pe.Level.CONTROL:Pe.Level.REFINED,o.elements):Pe.get_topological_data(e,n?Pe.Level.CONTROL:Pe.Level.REFINED),s=6,l=Pe.HEAPU32.subarray(a>>2,(a>>2)+s),c=l.subarray(3,3+3),u=0,d=Pe.HEAPU32[l[u]>>2],p=new Float32Array(Pe.HEAPF32.subarray(d>>2,(d>>2)+c[u]));u++;let f=Pe.HEAPU32[l[u]>>2],h=new Uint32Array(Pe.HEAPU32.subarray(f>>2,(f>>2)+c[u]));u++;let m=Pe.HEAPU32[l[u]>>2],y=new Uint8Array(Pe.HEAPU32.subarray(m>>2,(m>>2)+c[u]));return Pe.free_topological_data(a),{positions:p,indices:h,verticesPerFace:y}}};var bb=["getX","getY","getZ"];function $f(i,t){let e={},r=t?t.count:i.count,o=0,n=[],a=[],s=1e4;for(let c=0;c<r;c++){let u=t?t.getX(c):c,d="";for(let p=0;p<3;p++)d+=`${~~(i[bb[p]](u)*s)},`;if(d in e)n.push(e[d]);else{for(let p=0;p<3;p++)a.push(i[bb[p]](u));e[d]=o,n.push(o),o++}}let l=[];for(let c=0;c<n.length;c+=3)n[c]===n[c+1]||n[c]===n[c+2]||n[c+1]===n[c+2]||l.push(n[c],n[c+1],n[c+2]);return{positions:a,triIndices:l}}var rd=new lt.Vector3,Hf=new lt.Vector3,Wf=new lt.Vector3,qf=new lt.Vector3;function Xf(i,t,e,r){let o=[],n=[];if(e.userData.shape!==void 0&&e.userData.parameters.depth===0&&e.userData.shape.shapeHoles.length===0){let l=e.userData.shape.extractShapePointsToFlatArray([]),c=e.userData.parameters.spikes;if(e.userData.type==="EllipseGeometry"&&c<=24&&c%4===0&&e.userData.parameters.angle>=360){let p=l.length/2/c;l=l.filter((f,h)=>Math.floor(h/2)%p===0)}let u=0;for(let p=0;p<l.length;p+=2)u+=(l[p]-l[(p===0?l.length:p)-2])*(l[p+1]+l[(p===0?l.length:p)-1]);i.length=0;let d=0;if(u<0)for(let p=0;p<l.length;p+=2)i.push(l[p],l[p+1],0),o.push(d++);else for(let p=l.length-2;p>=0;p-=2)i.push(l[p],l[p+1],0),o.push(d++);return n.push(d),{indices:o,verticesPerFace:n}}let a=new Float32Array([e.userData.parameters.depth])[0],s=0;for(;s<t.length;){if(e.useNgonForTopBottomFaceDuringBake){let l=0;if((i[t[s]*3+2]===a||i[t[s]*3+2]===0)&&l++,(i[t[s+1]*3+2]===a||i[t[s+1]*3+2]===0)&&l++,(i[t[s+2]*3+2]===a||i[t[s+2]*3+2]===0)&&l++,l===3)break}if(t[s+1]===t[s+3]&&t[s+2]===t[s+5]||t[s+0]===t[s+3]&&t[s+2]===t[s+4]){rd.set(i[t[s]*3],i[t[s]*3+1],i[t[s]*3+2]),Hf.set(i[t[s+1]*3],i[t[s+1]*3+1],i[t[s+1]*3+2]),Wf.set(i[t[s+4]*3],i[t[s+4]*3+1],i[t[s+4]*3+2]),qf.set(i[t[s+5]*3],i[t[s+5]*3+1],i[t[s+5]*3+2]),Hf.sub(rd).normalize(),Wf.sub(rd).normalize(),qf.sub(rd).normalize();let l=Hf.cross(Wf).dot(qf);Math.abs(l)>.005||r&&r.some((c,u)=>u%2===1?!1:s>=r[u]&&s<r[u+1])?(o.push(t[s],t[s+1],t[s+2]),n.push(3),s+=3):(o.push(t[s],t[s+1],t[s+4],t[s+5]),n.push(4),s+=6)}else o.push(t[s],t[s+1],t[s+2]),n.push(3),s+=3}if(e.useNgonForTopBottomFaceDuringBake){let l=[],c=[],u=0;for(let d=0,p=0;d<i.length;d+=3,p++)i[d+2]===0&&(l.push(p),u++),i[d+2]===a&&c.push(p);if(e.userData.parameters.extrudeBevelSize===0){let d=c[0];c[0]=c[1],c[1]=d}l.reverse(),o.push(...l,...c),n.push(u,u)}return{indices:o,verticesPerFace:n}}var qr={};cm(qr,{calcBoolean:()=>NI,calcBooleanTopological:()=>EI,freeMeshSet:()=>LI,getMeshSet:()=>DI,hasOpenEdges:()=>_I,transformMeshSet:()=>RI});var MI,vb=new Promise(i=>{MI=i});var Ll=require("three");var Ue,rs;vb.then(i=>Ue=i);function II(i,t,e){let r,o;i.userData.parameters.type==="TorusGeometry"&&i.userData.parameters.arc===Math.PI*2?o=i.getClosedTorusIndicesForBooleanOrSubdiv():o=i.getIndex();let{positions:n,triIndices:a}=$f(i.getAttribute("position"),o),s;if(t&&e){let{indices:l,verticesPerFace:c}=Xf(n,a,i);s=c.length,r=[];for(let u=0,d=0;u<s;u++){r.push(c[u]);for(let p=0;p<c[u];p++)r.push(l[d++])}}else{let l=a.length;r=Array(l+l/3),s=0;for(let c=0,u=0;u<r.length;)r[u++]=3,s++,r[u++]=a[c++],r[u++]=a[c++],r[u++]=a[c++]}return{positions:n,faceIndices:r,nFaces:s}}function Sb(i){let t=i.length,e=t*Uint32Array.BYTES_PER_ELEMENT,r=t*Float32Array.BYTES_PER_ELEMENT,o=Number.isInteger(i[0])?e:r,n=Ue._malloc(o);return(Number.isInteger(i[0])?new Uint32Array(Ue.HEAPU32.buffer,n,t):new Float32Array(Ue.HEAPF32.buffer,n,t)).set(i,0),n}function wb(i){switch(i){case 0:return Ue.OP.UNION;case 1:return Ue.OP.INTERSECTION;case 2:return Ue.OP.A_MINUS_B;default:throw new Error("Unknown boolean operation "+i)}}function EI(i,t){rs===void 0&&(rs=Ue.init_csg());let e=Sb(i),r=Ue.csg_calc_topological(rs,e,i.length,wb(t));Ue._free(e);let o=6,n=Ue.HEAPU32.subarray(r>>2,(r>>2)+o),a=n.subarray(3,3+3),s=0,l=Ue.HEAPU32[n[s]>>2],c=new Float32Array(Ue.HEAPF32.subarray(l>>2,(l>>2)+a[s]));s++;let u=Ue.HEAPU32[n[s]>>2],d=new Uint32Array(Ue.HEAPU32.subarray(u>>2,(u>>2)+a[s]));s++;let p=Ue.HEAPU32[n[s]>>2],f=new Uint8Array(Ue.HEAPU32.subarray(p>>2,(p>>2)+a[s]));return Ue.free_mesh_data(r),{positions:c,indices:d,verticesPerFace:f}}function NI(i,t,e,r){rs===void 0&&(rs=Ue.init_csg());let o=Sb(i),n=Ue.csg_calc(rs,o,i.length,r,wb(t));Ue._free(o);let a=5,s=Ue.HEAPU32.subarray(n>>2,(n>>2)+a),l=s.subarray(2,2+3),c=0,u=Ue.HEAPU32[s[c]>>2],d=Ue.HEAPF32.subarray(u>>2,(u>>2)+l[c]);c++;let p=Ue.HEAPU32[s[c]>>2],f=Ue.HEAPF32.subarray(p>>2,(p>>2)+l[c]);c++;let h=l[c];e.setAttribute("position",new Ll.Float32BufferAttribute(d,3)),e.setAttribute("normal",new Ll.Float32BufferAttribute(f,3));let m=Ue.HEAPF32.subarray((n>>2)+5,(n>>2)+5+6);return e.boundingSphere===null&&(e.boundingSphere=new Ll.Sphere),e.boundingSphere.center.set(m[0],m[1],m[2]),e.boundingSphere.radius=(m[3]**2+m[4]**2+m[5]**2)**.5,e.userData.parameters={width:m[3]*2,height:m[4]*2,depth:m[5]*2},Ue.free_mesh_data(n),h}function DI(i,t,e){if(Ue===void 0)return-1;let r,o,n;if(t&&i.userData.positions!==void 0){let x=i.userData;n=x.verticesPerFace.length,r=x.positions,o=Array(x.verticesPerFace.reduce((v,w)=>v+w,0)+n);for(let v=0,w=0,O=0;v<x.verticesPerFace.length;v++){o[O++]=x.verticesPerFace[v];for(let S=0;S<x.verticesPerFace[v];S++)o[O++]=x.indices[w++]}}else({positions:r,faceIndices:o,nFaces:n}=II(i,t,e));let a=r.length,s=o.length,l=r.length,c=o.length,u=l*Float32Array.BYTES_PER_ELEMENT+c*Uint32Array.BYTES_PER_ELEMENT,d=l*Float32Array.BYTES_PER_ELEMENT,p=c*Uint32Array.BYTES_PER_ELEMENT,f=Ue._malloc(u),h=new Float32Array(Ue.HEAPF32.buffer,f,l),m=new Uint32Array(Ue.HEAPU32.buffer,f+d,c);h.set(r,0),m.set(o,0);let y=Ue.get_csg_mesh(f,a,f+d,s,n);return Ue._free(f),y}function _I(i){return Ue.has_open_edges(i)}function RI(i,t){Ue.transform_csg_mesh(i,t.elements)}function LI(i){Ue.free_csg_mesh(i)}var BI={ConeGeometry:px,CubeGeometry:fx,CylinderGeometry:dx,DodecahedronGeometry:mx,EllipseGeometry:Ka,HelixGeometry:Fx,IcosahedronGeometry:Ux,LatheGeometry:kx,NonParametricGeometry:$x,PolygonGeometry:Ku,PyramidGeometry:Xx,RectangleGeometry:Ja,SphereGeometry:Yx,PlaneGeometry:Qx,BackdropGeometry:Zx,StarGeometry:Qu,TextFrameGeometry:eb,TorusGeometry:tb,TorusKnotGeometry:ob,TriangleGeometry:ib,PathGeometry:lb,VectorGeometry:Pr},kf=i=>BI[i.type].create(i);function os(i){return i!==null&&"booleanOp"in i}var is=class extends Ua(od.Mesh){constructor(){super(...arguments);this.booleanMeshSetAddress=-1;this.booleanWasTransformed=!1;this.booleanMatrixInvOld=new od.Matrix4}updateVisible(e){super.updateVisible(e),this.visible=!os(this.parent)&&this.visible,os(this.parent)&&this.parent.invalidateDownstreamBooleanData()}freeBooleanPointer(){this.booleanMeshSetAddress!==-1&&(qr.freeMeshSet(this.booleanMeshSetAddress),this.booleanMeshSetAddress=-1)}invalidateDownstreamBooleanData(e=!1){return e?this.booleanWasTransformed=!0:this.freeBooleanPointer(),os(this.parent)?this.parent.invalidateDownstreamBooleanData():this}invalidateUpstreamBooleanData(){this.freeBooleanPointer();for(let e of this.children)e instanceof is&&(e.freeBooleanPointer(),os(e)&&e.invalidateUpstreamBooleanData())}updateTransformState(e,r){let o=super.updateTransformState(e,r);return o&&os(this.parent)&&this.invalidateDownstreamBooleanData(!0),o}onVariableUpdate(e=!1){super.onVariableUpdate(e),os(this.parent)&&this.invalidateDownstreamBooleanData(!0)}};var id=new ns.Box3;function Bl(i,t=0,e=i.count,r,o){let n=1/0,a=1/0,s=1/0,l=-1/0,c=-1/0,u=-1/0;for(let d=t;d<e;d++){let p=i.getX(d),f=i.getY(d),h=i.getZ(d);p<n&&(n=p),f<a&&(a=f),h<s&&(s=h),p>l&&(l=p),f>c&&(c=f),h>u&&(u=h)}id.min.set(n,a,s),id.max.set(l,c,u),id.getCenter(r),id.getSize(o).multiplyScalar(.5)}var VI=new ns.BufferGeometry,zI=new ns.MeshBasicMaterial,Wt=class extends is{constructor(t,e){super(VI,zI),this.super_Entity(t,e)}updateState(t,e){this.updateState_Entity(t,e)}updateEntityBoxSize(t,e){let r=this.geometry.getAttribute("position");r!==void 0?Bl(r,this.geometry.drawRange.start,this.geometry.drawRange.count<1/0?this.geometry.drawRange.count:r.count,t,e):super.updateEntityBoxSize(t,e)}};var yi=require("three");var Vr=require("three");var Hb=require("three");var pi=class{constructor(t){this.hashProperties=void 0;this.isNode=!0;this.shortcuts={};if(pi.uuidContext===null)throw new Error("plz startContext");pi.uuidContext===pi.globalContext?this.uuid="_gid"+pi.uuidContext.nodeContextUuid++:this.uuid="_uid"+pi.uuidContext.nodeContextUuid++,this.type=t,this.name=""}static startContext(t){this.uuidContext===null||this.uuidContext===pi.globalContext?this.uuidContext=t:console.error("Can't start context twice")}static endContext(t){this.uuidContext!==t&&console.error("Can't end context twice"),this.uuidContext=null}analyze(t,e){e=e??{},t.analyzing=!0,this.build(t.addFlow(e.slot,e.cache,e.context),"v4"),t.clearVertexNodeCode(),t.clearFragmentNodeCode(),t.removeFlow(),t.analyzing=!1}analyzeAndFlow(t,e,r){return r=r??{},this.analyze(t,r),this.flow(t,e,r)}flow(t,e,r){r=r??{},t.addFlow(r.slot,r.cache,r.context);let o={result:this.build(t,e),code:t.clearNodeCode(),extra:t.context.extra};return t.removeFlow(),o}build(t,e,r){e=e??this.getType(t,e);let o=t.getNodeData(r??this);return t.analyzing&&this.appendDepsNode(t,o,e),t.nodes.indexOf(this)===-1&&t.nodes.push(this),this.updateFrame!==void 0&&t.updaters.indexOf(this)===-1&&t.updaters.push(this),this.generate(t,e,r)}updateFrame(t){}generateReadonly(t,e,r,o,n,a){return""}generate(t,e,r,o,n){return""}parse(t,e,r,o){}appendDepsNode(t,e,r){e.deps=(e.deps||0)+1;let o=t.getTypeLength(r);(o>(e.outputMax||0)||this.getType(t,r))&&(e.outputMax=o,e.output=r)}setName(t){this.name=t}getName(){return this.name}getType(t,e){return e==="sampler2D"||e==="samplerCube"?e:this.type}},ot=pi;ot.globalContext={nodeContextUuid:0},ot.uuidContext=pi.globalContext;var yo=require("three");var Vl=class{constructor(t){t=t??{},this.name=t.name,this.type=t.type,this.node=t.node,this.size=t.size,this.needsUpdate=t.needsUpdate}get value(){return this.node.value}set value(t){this.node.value=t}};var Yf=class{constructor(){this.nodes={};this.keywords={}}add(t){this.nodes[t.name]=t}addKeyword(t,e,r){r=r!==void 0?r:!0,this.keywords[t]={callback:e,cache:r}}remove(t){delete this.nodes[t.name]}removeKeyword(t){delete this.keywords[t]}get(t){return this.nodes[t]}getKeyword(t,e){return this.keywords[t].callback(e)}getKeywordData(t){return this.keywords[t]}contains(t){return this.nodes[t]!==void 0}containsKeyword(t){return this.keywords[t]!==void 0}},qt=new Yf;var Kf=require("three");var Pb=require("three"),be=class extends ot{constructor(e,r){super(e);this.scope="";r=r??{},this.shared=r.shared!==void 0?r.shared:!0,this.unique=r.unique!==void 0?r.unique:!1}build(e,r,o,n){if(r=r??this.getType(e),this.getShared(e,r)){let a=this.getUnique(e,r);a&&this.uuid===void 0&&(this.uuid=Pb.MathUtils.generateUUID()),o=e.getUUID(o??this.getUUID(),!a);let s=e.getNodeData(o),l=s.output||this.getType(e);if(e.analyzing)return(s.deps||0)>0||this.getLabel()?(this.appendDepsNode(e,s,r),this.generate(e,r,o)):super.build(e,r,o);if(a)return s.name=s.name||super.build(e,r,o),s.name;if(!this.getLabel()&&(!this.getShared(e,l)||e.context.ignoreCache||s.deps===1))return super.build(e,r,o);o=this.getUUID(!1);let c=this.getTemp(e,o);if(c)return e.format(c,l,r);{c=super.generate(e,r,o,s.output,n);let u=this.generate(e,l,o);return e.addNodeCode(c+" = "+u+";"),e.format(c,l,r)}}return super.build(e,r,o)}getShared(e,r){return r!=="sampler2D"&&r!=="samplerCube"&&this.shared}getUnique(e,r){return this.unique}setLabel(e){return this.label=e,this}getLabel(){return this.label}getUUID(e){let r=this.uuid;return typeof this.scope=="string"&&(r=this.scope+"-"+r),r}getTemp(e,r){r=r||this.uuid;let o=e.getVars()[r];return o?o.name:void 0}generate(e,r,o,n,a){return this.getShared(e,r)||console.error("TempNode is not shared"),o=o??this.uuid,e.getTempVar(o,n??this.getType(e),a,this.getLabel()).name}};var it=class extends be{constructor(e,r){r=r??{},r.shared=r.shared!==void 0?r.shared:!1;super(e,r);this.readonly=!1}setReadonly(e){return this.readonly=e,this.hashProperties=this.readonly?["value"]:void 0,this}getReadonly(){return this.readonly}generate(e,r,o,n,a,s){o=e.getUUID(o??this.getUUID()),n=n??this.getType(e);let l=e.getNodeData(o);return this.getReadonly()&&this.generateReadonly!==void 0?this.generateReadonly(e,r,o,n,a,s):e.isShader("vertex")?(l.vertex||(l.vertex=e.createVertexUniform(n,this,a,s,this.getLabel())),e.format(l.vertex.name,n,r)):(l.fragment||(l.fragment=e.createFragmentUniform(n,this,a,s,this.getLabel())),e.format(l.fragment.name,n,r))}};var wt=class extends it{constructor(e=0,r){super("v2");this.nodeType="Vector2";this.value=e instanceof Kf.Vector2?e:new Kf.Vector2(e,r)}get x(){return this.value.x}set x(e){this.value.x=e}get y(){return this.value.y}set y(e){this.value.y=e}generateReadonly(e,r,o,n,a,s){return e.format("vec2("+this.value.x+", "+this.value.y+")",n,r)}};var Qf=require("three");var ir=class extends it{constructor(e=0,r,o){super("v3");this.nodeType="Vector3";this.value=e instanceof Qf.Vector3?e:new Qf.Vector3(e,r,o)}get x(){return this.value.x}set x(e){this.value.x=e}get y(){return this.value.y}set y(e){this.value.y=e}get z(){return this.value.z}set z(e){this.value.z=e}generateReadonly(e,r,o,n,a,s){return e.format("vec3("+this.value.x+", "+this.value.y+", "+this.value.z+")",n,r)}};var Or=class extends it{constructor(e){super("v4");this.nodeType="Vector4";this.value=e instanceof kt?e:new kt(e.r,e.g,e.b,e.a)}generateReadonly(e,r,o,n,a,s){return e.format("vec4("+this.value.r+", "+this.value.g+", "+this.value.b+", "+this.value.a+")",n,r)}};var GI=/^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,Ob=/[a-z_0-9]+/gi,J=class extends be{constructor(e,r,o,n,a){super(a);this.src="";this.nodeType="Function";this.useKeywords=!0;this.includes=[];this.extensions={};this.keywords={};this.isMethod=a===void 0,this.isInterface=!1,this.parse(e,r,o,n)}getShared(e,r){return!this.isMethod}getType(e){return e.getTypeByFormat(this.type)}getInputByName(e){if(this.inputs){let r=this.inputs.length;for(;r--;)if(this.inputs[r].name===e)return this.inputs[r]}}getIncludeByName(e){if(this.includes){let r=this.includes.length;for(;r--;)if(this.includes[r].name===e)return this.includes[r]}}generate(e,r,o,n,a){let s,l=0,c=this.src;if(this.includes)for(let d=0;d<this.includes.length;d++)e.include(this.includes[d],this);for(let d in this.extensions)e.extensions[d]=!0;let u=[];for(;s=Ob.exec(this.src);)u.push(s);for(let d=0;d<u.length;d++){let p=u[d],f=p[0],h=this.isMethod?!this.getInputByName(f):!0,m=f;if(this.keywords[f]||this.useKeywords&&h&&qt.containsKeyword(f)){let y=this.keywords[f];if(!y){let x=qt.getKeywordData(f);x.cache&&(y=e.keywords[f]),y=y||qt.getKeyword(f,e),x.cache&&(e.keywords[f]=y)}m=y.build(e)}f!==m&&c[p.index+l-1]!=="."&&(c=c.substring(0,p.index+l)+m+c.substring(p.index+f.length+l),l+=m.length-f.length),this.getIncludeByName(m)===void 0&&qt.contains(m)&&e.include(qt.get(m))}return r==="source"?c:this.isMethod?(this.isInterface||e.include(this,void 0,c),this.name):e.format("( "+c+" )",this.getType(e),r)}parse(e,r,o,n){if(this.src=e||"",this.includes=r??[],this.extensions=o??{},this.keywords=n??{},this.isMethod){let a=GI.exec(this.src);if(this.inputs=[],a&&a.length==4){this.type=a[1],this.name=a[2];let s=a[3].match(Ob);if(s){let l=0;for(;l<s.length;){let c=s[l++],u;c==="in"||c==="out"||c==="inout"?u=s[l++]:(u=c,c="");let d=s[l++];this.inputs.push({name:d,type:u,qualifier:c})}}this.isInterface=this.src.indexOf("{")===-1}else this.type="",this.name=""}}};var FI=/^([a-z_0-9]+)\s([a-z_0-9]+)\s?\=?\s?(.*?)(\;|$)/i,Zf=class extends be{constructor(e="",r){super();this.src="";this.useDefine=!1;this.nodeType="Const";this.parse(e||Zf.PI,void 0,void 0,void 0,r)}getType(e){return e.getTypeByFormat(this.type)}parse(e,r,o,n,a){this.src=e||"";let s,l,c="",u=FI.exec(e);this.useDefine=a??this.src.charAt(0)==="#",u&&u.length>1?(l=u[1],s=u[2],c=u[3]):(s=this.src,l="f"),this.name=s,this.type=l,this.value=c}build(e,r){if(r==="source"){if(this.value)return this.useDefine?"#define "+this.name+" "+this.value:"const "+this.type+" "+this.name+" = "+this.value+";";if(this.useDefine)return this.src}return e.include(this),e.format(this.name,this.getType(e),r)}generate(e,r,o,n,a){return e.format(this.name,this.getType(e),r)}},qe=Zf;qe.PI="PI",qe.PI2="PI2",qe.RECIPROCAL_PI="RECIPROCAL_PI",qe.RECIPROCAL_PI2="RECIPROCAL_PI2",qe.LOG2="LOG2",qe.EPSILON="EPSILON";var jI=new RegExp(`^structs*([a-z_0-9]+)s*{s*((.|
19
19
  )*?)}`,"gim"),UI=new RegExp("s*(w*?)s*(w*?)(=|;)","gim"),as=class extends be{constructor(e=""){super();this.inputs=[];this.src="";this.nodeType="Struct";this.parse(e)}getType(e){return e.getTypeByFormat(this.name)}getInputByName(e){let r=this.inputs.length;for(;r--;)if(this.inputs[r].name===e)return this.inputs[r]}generate(e,r,o,n,a){return r==="source"?this.src+";":e.format("( "+this.src+" )",this.getType(e),r)}parse(e=""){this.src=e,this.inputs=[];let r=jI.exec(e);if(r){let o=r[2],n;for(;n=UI.exec(o);)this.inputs.push({type:n[1],name:n[2]});this.name=r[1]}else this.name="";this.type=this.name}};var ss=class extends be{constructor(e){super("v2",{shared:!1});this.nodeType="UV";this.index=e??0}generate(e,r){e.requires.uv[this.index]=!0;let o=this.index>0?this.index+1:"",n=e.isShader("vertex")?"uv"+o:"vUv"+o;return e.format(n,this.getType(e),r)}};qt.addKeyword("uv",function(){return new ss});qt.addKeyword("uv2",function(){return new ss(1)});var nd=require("three");var Dn=class extends be{constructor(e,r){super("v4");this.nodeType="ColorSpace";this.input=e,this.method=r??Dn.LINEAR_TO_LINEAR,this.hashProperties=["method"]}static getEncodingComponents(e){switch(e){case nd.LinearEncoding:return["Linear"];case nd.sRGBEncoding:return["sRGB"];default:return[]}}generate(e,r){let o=this.input.build(e,"v4"),n=this.getType(e),a=Dn.Nodes[this.method],s=e.include(a);if(s===Dn.LINEAR_TO_LINEAR)return e.format(o,n,r);if(a.inputs?.length===2){let l=this.factor.build(e,"f");return e.format(s+"( "+o+", "+l+" )",n,r)}else return e.format(s+"( "+o+" )",n,r)}fromEncoding(e){let r=Dn.getEncodingComponents(e);this.method="LinearTo"+r[0],this.factor=r[1]}fromDecoding(e){let r=Dn.getEncodingComponents(e);this.method=r[0]+"ToLinear",this.factor=r[1]}},mr=Dn;mr.Nodes={LinearToLinear:new J(["vec4 LinearToLinear( in vec4 value ) {"," return value;","}"].join(`
20
20
  `)),sRGBToLinear:new J(["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(`
21
21
  `)),LinearTosRGB:new J(["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(`
@@ -1873,7 +1873,7 @@ float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outl
1873
1873
  vec3 distorted2 = nearby2 + normal * displacementMapTexture(tex, crop, uv, mat, vec2(neighbor_offset)) * intensity;
1874
1874
  displaced_normal = normalize(cross(distorted1 - displaced_position, distorted2 - displaced_position));
1875
1875
  return displaced_position;
1876
- }`,[e,r])}}();var De={normalRenderTarget:new yr,normalRenderTargetDepth:new yr,transmissionRenderTarget:new yr,aspectRatio:new wt,transmissionSize:new wt(2048,2048),transmissionRenderTargetDepth:new yr,aoRenderTarget:new yr,aoEnabled:new Pt,pixelRatioNode:new se(1),resolution:new wt,penumbraSize:new go(5,.5),frameIndex:new Fe(0),transmissionLod:new Fe(2),taaEnabled:new Pt(!0)};for(let i of Object.values(De))i.isRenderGlobal=!0;var Fb={skiaWasmUrl:"https://unpkg.com/@splinetool/ui-wasm@1.10.90/build/ui.wasm"};var fi=class extends ot{constructor(){super("basic");this.nodeType="Basic";this.color=new et(Dt),this.shadingAlpha=new se(1),this.shadingBlend=new Fe(0),this.previousModelViewMatrix=new nr,this.previouseProjectionMatrix=new nr}get category(){return"phong"}generate(e){let r;if(e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform({frameIndex:De.frameIndex}),e.mergeUniform({resolution:De.resolution}),e.mergeUniform({previousModelViewMatrix:this.previousModelViewMatrix}),e.mergeUniform({previousProjectionMatrix:this.previouseProjectionMatrix}),e.mergeUniform(ud.UniformsUtils.merge([ud.UniformsLib.fog])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <skinning_pars_vertex>","#include <normal_pars_vertex>","#include <morphtarget_pars_vertex>"].join(`
1876
+ }`,[e,r])}}();var De={normalRenderTarget:new yr,normalRenderTargetDepth:new yr,transmissionRenderTarget:new yr,aspectRatio:new wt,transmissionSize:new wt(2048,2048),transmissionRenderTargetDepth:new yr,aoRenderTarget:new yr,aoEnabled:new Pt,pixelRatioNode:new se(1),resolution:new wt,penumbraSize:new go(5,.5),frameIndex:new Fe(0),transmissionLod:new Fe(2),taaEnabled:new Pt(!0)};for(let i of Object.values(De))i.isRenderGlobal=!0;var Fb={skiaWasmUrl:"https://unpkg.com/@splinetool/ui-wasm@1.10.92/build/ui.wasm"};var fi=class extends ot{constructor(){super("basic");this.nodeType="Basic";this.color=new et(Dt),this.shadingAlpha=new se(1),this.shadingBlend=new Fe(0),this.previousModelViewMatrix=new nr,this.previouseProjectionMatrix=new nr}get category(){return"phong"}generate(e){let r;if(e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform({frameIndex:De.frameIndex}),e.mergeUniform({resolution:De.resolution}),e.mergeUniform({previousModelViewMatrix:this.previousModelViewMatrix}),e.mergeUniform({previousProjectionMatrix:this.previouseProjectionMatrix}),e.mergeUniform(ud.UniformsUtils.merge([ud.UniformsLib.fog])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <skinning_pars_vertex>","#include <normal_pars_vertex>","#include <morphtarget_pars_vertex>"].join(`
1877
1877
  `));let n=["#include <beginnormal_vertex>","#include <morphnormal_vertex>",`
1878
1878
  #include <skinbase_vertex>
1879
1879
  #include <skinnormal_vertex>
@@ -4376,4 +4376,4 @@ void main() {
4376
4376
  A = exp(A) * vColor.a;
4377
4377
  gl_FragColor = vec4(color.rgb, A);
4378
4378
  gVelocity = vec4(0.0); // so it is ignored by TAA
4379
- }`,n={covariancesTexture:{type:"t",value:null},centersColorsTexture:{type:"t",value:null},meshIndexIntervals:{value:e},meshMatrixWorldsTexture:{type:"t",value:null},focal:{type:"v2",value:new Te.Vector2},viewport:{type:"v2",value:new Te.Vector2},basisViewport:{type:"v2",value:new Te.Vector2},debugColor:{type:"v3",value:new Te.Color},covariancesTextureSize:{type:"v2",value:new Te.Vector2(1024,1024)},centersColorsTextureSize:{type:"v2",value:new Te.Vector2(1024,1024)},orthoZoom:{type:"f",value:-1}};return new Te.ShaderMaterial({uniforms:n,vertexShader:r,fragmentShader:o,transparent:!0,alphaTest:1,blending:Te.NormalBlending,depthTest:!0,depthWrite:!1,side:Te.DoubleSide})}static buildGeomtery(e){let r=new Te.BufferGeometry;r.setIndex([0,1,2,0,2,3]);let o=new Float32Array(4*3),n=new Te.BufferAttribute(o,3);r.setAttribute("position",n),n.setXYZ(0,-1,-1,0),n.setXYZ(1,-1,1,0),n.setXYZ(2,1,1,0),n.setXYZ(3,1,-1,0),n.needsUpdate=!0;let a=new Te.InstancedBufferGeometry().copy(r),s=new Uint32Array(e),l=new Te.InstancedBufferAttribute(s,1,!1);return l.setUsage(Te.DynamicDrawUsage),a.setAttribute("splatIndex",l),a.instanceCount=e,a}resetLocalSplatDataAndTexturesFromSplatBuffer(){this.updateLocalSplatDataFromSplatBuffer(),this.allocateAndStoreLocalSplatDataInTextures()}updateLocalSplatDataFromSplatBuffer(){this.splatBuffers.forEach(n=>n.buildPreComputedBuffers()),this.covariances=new Float32Array(this.splatCount*6),this.colors=new Uint8Array(this.splatCount*4),this.centers=new Float32Array(this.splatCount*3);let e=0,r=0,o=0;for(let n of this.splatBuffers){let a=n.nsplats;this.colors.subarray(e,e+a*4).set(n.colorsA),e+=a*4,this.centers.subarray(r,r+a*3).set(n.decoded.xyz.denormDequant().data),r+=a*3,this.covariances.subarray(o,o+a*6).set(new Float32Array(n.precomputedCovarianceBufferData)),o+=a*6}}allocateAndStoreLocalSplatDataInTextures(){let o=this.splatCount,n=new Te.Vector2(4096,1024);for(;n.x*n.y*2<o*6;)n.y*=2;let a=new Te.Vector2(4096,1024);for(;a.x*a.y*4<o*4;)a.y*=2;let s,l;if(this.halfPrecisionCovariancesOnGPU){l=new Uint16Array(n.x*n.y*2);for(let h=0;h<this.covariances.length;h++)l[h]=Te.DataUtils.toHalfFloat(this.covariances[h]);s=new Te.DataTexture(l,n.x,n.y,Te.RGFormat,Te.HalfFloatType)}else l=new Float32Array(n.x*n.y*2),l.set(this.covariances),s=new Te.DataTexture(l,n.x,n.y,Te.RGFormat,Te.FloatType);s.needsUpdate=!0,this.material.uniforms.covariancesTexture.value=s,this.material.uniforms.covariancesTextureSize.value.copy(n);let c=new Uint32Array(a.x*a.y*4);for(let h=0;h<o;h++){let m=h*4,y=h*3,x=h*4;c[x]=X1(this.colors[m],this.colors[m+1],this.colors[m+2],this.colors[m+3]),c[x+1]=op(this.centers[y]),c[x+2]=op(this.centers[y+1]),c[x+3]=op(this.centers[y+2])}let u=new Te.DataTexture(c,a.x,a.y,Te.RGBAIntegerFormat,Te.UnsignedIntType);u.internalFormat="RGBA32UI",u.needsUpdate=!0,this.material.uniforms.centersColorsTexture.value=u,this.material.uniforms.centersColorsTextureSize.value.copy(a);let d=256*4,p=new Float32Array(256*16);for(let h=0;h<this.meshMatrixWorlds.length;h++)p.set(this.meshMatrixWorlds[h].elements,h*16);let f=new Te.DataTexture(p,d,1,Te.RGBAFormat,Te.FloatType);f.needsUpdate=!0,this.material.uniforms.meshMatrixWorldsTexture.value=f,this.material.uniformsNeedUpdate=!0,this.splatDataTextures={covariances:{data:l,texture:s,size:n},centerColors:{data:c,texture:u,size:a},meshMatrixWorlds:{data:p,texture:f}}}updateIndexes(e){let r=this.geometry;r.attributes.splatIndex.set(e),r.attributes.splatIndex.needsUpdate=!0,r.instanceCount=e.length}updateUniforms(e,r,o,n){this.splatCount>0&&(ip.set(e.x*this.devicePixelRatio,e.y*this.devicePixelRatio),this.material.uniforms.viewport.value.copy(ip),this.material.uniforms.basisViewport.value.set(2/ip.x,2/ip.y),this.material.uniforms.focal.value.set(r,o),this.material.uniforms.orthoZoom.value=n,this.material.uniformsNeedUpdate=!0)}getSplatDataTextures(){return this.splatDataTextures}getSplatCount(){return this.splatCount}getCenters(){return this.centers}getColors(){return this.colors}getCovariances(){return this.covariances}dispose(){this.geometry.dispose(),this.material.dispose(),this.splatDataTextures&&(this.splatDataTextures.covariances.texture.dispose(),this.splatDataTextures.centerColors.texture.dispose(),this.splatDataTextures.meshMatrixWorlds.texture.dispose()),this.removeFromParent()}};var K1,Zh=new Promise(i=>{K1=i}),Y1=!1;var ap;function Jh(){if(Y1)return;if(ap)return ap;async function i(){let e=await import("./gaussian-splat-compression.js");K1(e),Y1=!0}return ap=i(),ap}var Q1;Zh.then(i=>Q1=i);var fc=class{constructor(t={}){gn(this,"updateView",function(){let t=new br.Matrix4,e=[],r=new br.Vector3(0,0,-1),o=new br.Vector3(0,0,-1),n=new br.Vector3,a=new br.Vector3;return function(s=!1,l){let c=this.updateMatrixWorldsInWorkerIfNeeded(),u=this.cropsChanged();if(!s){o.set(0,0,-1).applyQuaternion(l.quaternion);let p=!1,f=!1;if(o.dot(r)<=.95&&(p=!0),a.copy(l.position).sub(n).length()>=1&&(f=!0),!p&&!f&&!c&&!u&&!this.needsInitialRender)return}this.needsInitialRender=!1,n.copy(l.position),r.copy(o),t.copy(l.matrixWorld).invert(),t.premultiply(this.dummyPerspectiveMatrix),e[0]=l.position.x,e[1]=l.position.y,e[2]=l.position.z;let d={sort:{view:t.elements,cameraPosition:e,splatRenderCount:this.splatRenderCount,splatSortCount:this.splatRenderCount},...c?{newMatrixWorlds:this.meshMatrixWorlds}:{},...u?{newCropsArray:this.cropsArray}:{}};this.sortRunning?this.queuedMessage=d:(this.queuedMessage=null,this.sortRunning=!0,this.sortWorker.postMessage(d))}}());this.scene=t.scene,this.currentPage=null,this.devicePixelRatio=window.devicePixelRatio,this.sortWorker=null,this.splatRenderCount=0,this.splatSortCount=0,this.splatMesh=null,this.sortRunning=!1,this.meshMatrixWorlds=null,this.meshMatrixWorldsOld=null,this.cropsArray=null,this.splatEntries=null,this.queuedMessage=null,this.needsInitialRender=!0,this.dummyPerspectiveMatrix=new br.Matrix4().makePerspective(-1,1,-1,1,.1,1e3)}updateSplatMeshUniforms(t,e){let r=new br.Vector2;if(this.splatMesh===null)return;this.splatMesh.getSplatCount()>0&&(t.getSize(r),this.cameraFocalLengthX=e.projectionMatrix.elements[0]*this.devicePixelRatio*r.x*.45,this.cameraFocalLengthY=e.projectionMatrix.elements[5]*this.devicePixelRatio*r.y*.45,this.splatMesh.updateUniforms(r,this.cameraFocalLengthX,this.cameraFocalLengthY,e.isPerspectiveCamera?-1:e.zoom*this.devicePixelRatio))}loadSplat(t={}){this.activePage=this.scene.activePage,t.position&&(t.position=new br.Vector3().fromArray(t.position)),t.orientation&&(t.orientation=new br.Quaternion().fromArray(t.orientation)),t.halfPrecisionCovariances=!!t.halfPrecisionCovariances;let e=[];if(this.splatEntries=e,this.activePage.traverseVisibleEntity(a=>{a.data.type==="Splat"&&e.push(a)}),this.splatMesh&&this.splatMesh.dispose(),e.length===0)return this.splatMesh=null,!1;this.meshMatrixWorlds=e.map(a=>a.matrixWorld),this.meshMatrixWorldsOld=e.map(a=>a.matrixWorld.clone()),this.cropsArray=e.map(a=>a.data.crops.map(s=>s.data));let r=e.map(a=>new Q1.GSplineBuffer(new Uint8Array(a.data.buffer).buffer)),o=0,n=[0];for(let a of r)o+=a.getSplatCount(),n.push(o);return this.setupSplatMesh(r,o,t.position,t.orientation,t.halfPrecisionCovariances,this.devicePixelRatio,n,this.meshMatrixWorlds),this.setupSortWorker(o),!0}updateMatrixWorldsInWorkerIfNeeded(){let t=this.splatDataTextures.meshMatrixWorlds.data;for(let e=0;e<this.meshMatrixWorlds.length;e++)t.set(this.meshMatrixWorlds[e].elements,e*16);return this.splatDataTextures.meshMatrixWorlds.texture.needsUpdate=!0,this.meshMatrixWorlds.every((e,r)=>e.equals(this.meshMatrixWorldsOld[r]))?!1:(this.meshMatrixWorldsOld=this.meshMatrixWorlds.map(e=>e.clone()),!0)}cropsChanged(){let t=!1;return this.splatEntries.forEach((e,r)=>{e.data.crops.forEach((o,n)=>{this.cropsArray[r][n]===void 0?(t=!0,this.cropsArray[r][n]=o.data):Object.entries(o.data).forEach(([a,s])=>{Array.isArray(s)&&s.some((l,c)=>l!==this.cropsArray[r][n][a][c])?(t=!0,this.cropsArray[r][n][a]=s):s!==this.cropsArray[r][n]?.[a]&&(t=!0,this.cropsArray[r][n][a]=s)})}),e.data.crops.length!==this.cropsArray[r]?.length&&(this.cropsArray[r].length=e.data.crops.length,t=!0)}),t}setupSplatMesh(t,e,r=new br.Vector3,o=new br.Quaternion,n=!1,a=1,s,l){this.splatMesh=dn.buildMesh(t,e,n,a,s,l),this.splatMesh.position.copy(r),this.splatMesh.quaternion.copy(o),this.splatMesh.frustumCulled=!1,this.splatMesh.renderOrder=99999,this.splatRenderCount=e,this.splatMesh.onBeforeRender=(c,u,d)=>this.update(c,d)}setupSortWorker(t){this.sortWorker=$1(t),this.sortWorker.onmessage=e=>{e.data.sortDone?(this.sortRunning=!1,this.splatMesh?.updateIndexes(new Uint32Array(e.data.indexesBuffer)),this.lastSortTime=e.data.sortTime,this.queuedMessage&&(this.sortWorker.postMessage(this.queuedMessage),this.queuedMessage=null)):e.data.sortCanceled?this.sortRunning=!1:e.data.sortSetupPhase1Complete?this.sortWorker.postMessage({positions:this.splatMesh.getCenters().buffer,meshMatrixWorlds:this.splatMesh.meshMatrixWorlds,meshIndexIntervals:this.splatMesh.meshIndexIntervals,cropsArray:this.cropsArray}):e.data.sortSetupComplete&&(this.splatDataTextures=this.splatMesh.getSplatDataTextures(),this.scene.activePage.add(this.splatMesh),this.needsInitialRender=!0)}}update(t,e){this.splatMesh!==null&&(this.updateSplatMeshUniforms(t,e),this.updateView(!1,e))}getSplatMesh(){return this.splatMesh}};var TE=new to.MeshBasicMaterial;TE.wireframe=!0;var Z1=new to.Vector3,sp=class extends to.Scene{constructor(e,r){super();this.data=e;this.sharedAssets=r;this.enableHelpers=!1;this.wireframeState=!1;this.needsTransmissionDirty=!0;this.needsNormalDirty=!0;this._needsTransmission=!1;this._needsNormal=!1;this.geometryCacheChanged=!1;this.splatViewer=null;this.shapeBlendIntances=[];this.entityByUuid={};this.entityIdentityToEntity={};this.toExpandCloner=new Set;this.toUpdateCloner=new Set;this.pendingCommands=[];this.pathConstraints=new rp;this.invisibleObjects=new rn("jflkdsafjasdifjaslk",{...Ou.defaultData,visible:!1,name:"buildin invisible"});this.needsRecomputeInstances=!1;this.init(e,r),this.matrixAutoUpdate=!1,this.errorPage=new Jr("fdasfa",{...ri.defaultData,name:""},{shared:r,scene:this})}markGeometryCacheDirty(){this.geometryCacheChanged=!0}markNeedsUpdateRendererDirty(){this.needsTransmissionDirty=!0,this.needsNormalDirty=!0}needsTransmission(){return this.needsTransmissionDirty&&(this._needsTransmission=W1(this),this.needsTransmissionDirty=!1),this._needsTransmission}needsNormal(){return this.needsNormalDirty&&(this._needsNormal=H1(this),this.needsNormalDirty=!1),this._needsNormal}registerInstanceAndSetUuid(e){let r=e.identity.join("-"),o=this.entityIdentityToEntity[r];o&&(e.uuid=o.uuid),this.entityIdentityToEntity[r]=e,this.entityByUuid[e.uuid]=e}markPenumbraSizeDirty(){for(let e of this.children)e instanceof Jr&&(e.penumbraSizeArrayCache=null)}findInstance(e){return this.entityIdentityToEntity[e.join("-")]}get bgColor(){return this.activePage.bgColor}get postprocessing(){return this.activePage.data.postprocessing}getWithSortKey(e){let r=this.find(e);if(r===void 0)return;let o=[],n=r;for(;n!==this;){let a=n;n=n.parent;let s=n.children.indexOf(a);o.splice(0,0,s)}return{entity:r,sortKey:o}}getAllSorted(e){let r=[];for(let o of e){let n=this.getWithSortKey(o.id);n!==void 0&&r.push(n)}return r.sort((o,n)=>wc(o.sortKey,n.sortKey)),r.map(o=>o.entity)}nonExistOrDescendantOf(e,r){let o=this.find(e);if(o===void 0)return!0;for(;o;){if(o.uuid===r)return!0;o=o.parent}return!1}find(e){if(this.activePage&&this.activePage.personalCamera.parent){if(e==="f23858d0-4a3b-4bd8-8173-66ed0af7f6fb-personalCamera")return this.activePage.personalCamera;if(e===Ri)return this.activePage.personalCamera}if(e===""||e===void 0)return;let r=this.entityByUuid[e];return r===void 0?this.getObjectByProperty("uuid",e):r}find2D(e){for(let r of this.children)if(r instanceof Jr&&r.uiScene){let o=r.uiScene.find(e);if(o)return o}}findScene2DfromObject2D(e){for(let r of this.children)if(r instanceof Jr&&r.uiScene&&r.uiScene.find(e))return r.uiScene}find2DInUIObjects(e){let r;return this.traverseEntity(o=>{r===void 0&&o instanceof Wn&&(r=o.uiCanvas.find(e))}),r}traverse2D(e){for(let r of this.children)r instanceof Jr&&r.uiScene&&r.uiScene.traverse(e)}debugEnsureEntity(e){let r=this.find(e);if(r){if(Array.isArray(r.identity)&&this.findInstance(r.identity)===void 0){console.error("not found instance");debugger}}else{console.error("not found");debugger}}addPendingExpandCloner(e){this.toExpandCloner.add(e)}addPendingUpdateCloner(e){this.toUpdateCloner.add(e)}markToExpandCloner(e){this.toExpandCloner.add(e),e.traverseEntityAncestors(r=>{this.toExpandCloner.add(r)})}doPendingExpandCloner(){this.toExpandCloner.forEach(e=>{e.expandCloner(this)}),this.toExpandCloner.clear()}doPendingUpdateCloner(){this.toUpdateCloner.forEach(e=>{e.cloner?.update()}),this.toUpdateCloner.clear()}doPendingUpdates(){this.doPendingExpandCloner(),this.doPendingUpdateCloner(),this.applyPendingCommands()}addPendingCommand(e){this.pendingCommands.push(e)}applyPendingCommands(){this.pendingCommands.forEach(e=>e()),this.pendingCommands.length=0}updateByLibOp(e,r){e.path.length===1&&e.path[0]==="components"&&e.type===1&&this.createChildrenObjects([{...e.data.asset,id:e.id}],this.invisibleObjects,r)}updateTreeByOp(e,r){if(e.path.length===0&&e.type===7){let o=e.parent===null?this:this.find(e.parent);if(o===void 0)throw new Error("unexpected");let n=this.createObject(e.id,e.data,e.children,o,e.localIndex,r);n.updateVisible(this),n.resetBBoxNeedsUpdate(),tn(n)&&oc(n.parent)&&(n.invalidateUpstreamBooleanData(),n.parent.invalidateDownstreamBooleanData().recomputeBoolean()),this.markNeedsRecomputeInstancesForAncessors(o),this.markNeedsRecomputeInstancesForChildren(n),this.markToExpandCloner(n),this.markPenumbraSizeDirty(),n.updatePathSnapping()}else if(e.path.length===0&&e.type===8){let o=this.find(e.id);if(o===void 0)throw new Error("unexpected");o.traverseEntity(a=>{a instanceof ln&&(this.shapeBlendIntances=this.shapeBlendIntances.filter(s=>s!==a))}),this.markToExpandCloner(o),o.resetBBoxNeedsUpdate(),this.unregisterObject(o);let n=o.parent;this.markNeedsRecomputeInstancesForAncessors(n),this.markNeedsRecomputeInstancesForChildren(o),this.markPenumbraSizeDirty(),o.parent.remove(o),oc(o.parent)&&(o.parent.invalidateUpstreamBooleanData(),o.parent.invalidateDownstreamBooleanData().recomputeBoolean()),tn(o)&&(o.freeBooleanPointer(),n instanceof Mr&&n.invalidateDownstreamBooleanData().recomputeBoolean()),o instanceof Ws&&o.detachShape(),this.disposeAndUnregisterEntityRecursivelyIfNotReregistered(o),this.pathConstraints.removeDependencies(o.uuid),o.updatePathSnapping()}else if(e.path.length===0&&e.type===9){let o=this.find(e.id);if(o===void 0)throw new Error("unexpected");this.markNeedsRecomputeInstancesForChildren(o);let n=o.parent;this.markNeedsRecomputeInstancesForAncessors(n),o.cloner?.resetOnMove(),this.markToExpandCloner(o);let a=e.parent===null?this:this.find(e.parent);if(a===void 0)throw new Error("unexpected");a.add(o),this.markNeedsRecomputeInstancesForAncessors(a),this.markToExpandCloner(o),o.invalidateClonerTransform(o),o.updateVisible(this),o.resetBBoxNeedsUpdate(),this.markPenumbraSizeDirty();let s=e.localIndex;a.children.splice(s,0,a.children.pop()),tn(o)&&(o.invalidateUpstreamBooleanData(),oc(o.parent)?o.parent.invalidateDownstreamBooleanData().recomputeBoolean():n instanceof Mr&&n.invalidateDownstreamBooleanData().recomputeBoolean()),o.updatePathSnapping()}this.markNeedsUpdateRendererDirty(),this.markGeometryCacheDirty()}get playPage(){return this.find(this.data.publish.playPage)??this.errorPage}updatePage(e){this.activePage&&this.activePage.onDeactive(),this.activePage=this.errorPage;for(let r of this.children)r instanceof Jr&&(r.visible=r.uuid===e,r.visible&&(this.activePage=r,this.activePage.onActive(this)));this.activePage!==this.splatViewer?.activePage&&this.reloadSplats()}updateEntityByOp(e,r,o,n){if(r.type===0){if(("overrides"in r.props||"component"in r.props)&&this.markNeedsRecomputeInstances(),"visible"in r.props&&this.markPenumbraSizeDirty(),r.path.includes("overrides")&&"states"in r.props){let{rest:s}=r.props;r={...r,props:s},this.markNeedsRecomputeInstances()}r.path[0]==="pathSnapping"&&r.props.pathId!==void 0&&this.pathConstraints.setConstraint(e,r.props.pathId)}let a=this.find(e);if(a)try{z1(a,r,o,{scene:this,shared:n}),a instanceof ft&&a.updateGeometryGroupsIfNeeded()}catch(s){console.error(s)}}updateEntity2DByOp(e,r,o,n,a,s=[]){e.updateEntityByOp(r,o,n,a),this.traverseEntity(l=>{(l instanceof Wn||l instanceof Jr)&&(s.includes(l.frameId??"")||l.frameId===r)&&l.updateEntity2DByOp(r,o,n,a)})}get activeCamera(){return this.activePage.activeCamera}switchActiveCamera(e){this.activePage.switchActiveCamera(e)}isInvisibleObjects(e){return e===this.invisibleObjects||e.hasAnccestor(this.invisibleObjects)}init(e,r){let o=Object.entries(r.data.lib.components).map((n,a)=>({data:n[1].asset.data,children:n[1].asset.children,id:n[0],fi:a}));this.invisibleObjects.updateState(this.invisibleObjects.data,{scene:this,shared:r}),this.add(this.invisibleObjects),this.createChildrenObjects(o,this.invisibleObjects,r),this.createChildrenObjects(e.objects,this,r),this.updatePage(e.publish.playPage),this.activePage.switchToPlayCamera(),this.expandInstances(r,!0),this.traverseEntity(n=>{n instanceof gi&&n.updateUp()}),this.doPendingExpandCloner(),this.applyPendingCommands()}markNeedsRecomputeInstances(){this.needsRecomputeInstances=!0}markNeedsRecomputeInstancesForChildren(e){e.traverseEntity(r=>{(r.data.type==="Component"||r.data.type==="Instance")&&this.markNeedsRecomputeInstances()})}markNeedsRecomputeInstancesForAncessors(e){ze.is(e)&&(e.data.type==="Component"&&this.markNeedsRecomputeInstances(),e.traverseAncestors(r=>{ze.is(r)&&r.data.type==="Component"&&this.markNeedsRecomputeInstances()}))}relativeizeInner(e,r,o,n,a,s,l){if(e){let c=n.find(e);c&&c!==n&&a.forInstancesRec(u=>{u.data=Mi(u.data,d=>{let p=d.events.data(l.id),f=u.goUp(s);if(f){let h=[...Sc(f.identity),e].join("-"),m=this.entityIdentityToEntity[h];if(m){let y=m.uuid,x=ut.zoom(p,r);x[o]=y}else{if(!1)debugger;console.warn("cannot find instance")}}}).data})}}rewriteActions(e,r,o,n,a,s){e.forEach(l=>{l.data.type==="Transition"?this.relativeizeInner(l.data.object,[...r,l.id],"object",o,n,a,s):l.data.type==="Animation"?this.relativeizeInner(l.data.object,[...r,l.id],"object",o,n,a,s):l.data.type==="Conditional"&&(this.rewriteActions(l.data.ifActions,[...r,l.id,"ifActions"],o,n,a,s),this.rewriteActions(l.data.elseActions,[...r,l.id,"elseActions"],o,n,a,s))})}rewriteEventsBeforeGoToPlayMode(){this.traverseEntity(e=>{if(e instanceof vi&&typeof e.identity=="string"&&e.data.type==="Component")return e.traverseEntity((r,o)=>{r.data.events.forEach(n=>{if(n.data.type==="GameControl"){let a=!1;if(r.forInstancesRec(s=>{s.data=Mi(s.data,l=>{s.isInstanceRoot||(l.events.delete(n.id),a=!0)}).data}),a===!1)for(let s of Mu.list)this.rewriteActions(n.data.gameActions[s],["gameActions",s],e,r,o,n)}else n.data.type==="Conditional"?(n.data.condition.type==="Distance"?(this.relativeizeInner(n.data.condition.fromObject,["condition"],"fromObject",e,r,o,n),this.relativeizeInner(n.data.condition.toObject,["condition"],"toObject",e,r,o,n)):n.data.condition.type==="State"?this.relativeizeInner(n.data.condition.object,["condition"],"object",e,r,o,n):n.data.condition.type==="Comparison"&&(n.data.condition.lOperand.type==="Property"&&this.relativeizeInner(n.data.condition.lOperand.value[0],["condition","lOperand","value"],0,e,r,o,n),n.data.condition.rOperand.type==="Property"&&this.relativeizeInner(n.data.condition.rOperand.value[0],["condition","rOperand","value"],0,e,r,o,n)),this.rewriteActions(n.data.inActions,["inActions"],e,r,o,n),this.rewriteActions(n.data.outActions,["outActions"],e,r,o,n)):"actions"in n.data&&this.rewriteActions(n.data.actions,["actions"],e,r,o,n)})}),!0})}expandInstances(e,r,o){let n=new Set;this.traverseEntity(a=>{if(a instanceof vi&&a.isInstanceRoot)return a.expandInstanceChildren({scene:this,shared:e,pendingDeletes:n}),r||a.resetBBoxNeedsUpdate(),o&&a.traverseEntity(s=>{o.addClip(s)}),!0});for(let a of n)this.disposeAndUnregisterEntityRecursivelyIfNotReregistered(a),Yd(a)}recomputeInstances(e,r){this.needsRecomputeInstances&&(this.needsRecomputeInstances=!1,this.traverseEntity(o=>{o instanceof vi&&o.isInstanceRoot&&(o.component=void 0)}),this.expandInstances(e,!1,r))}disposeAndUnregisterEntityRecursivelyIfNotReregistered(e){e.traverseEntity(r=>{let o=typeof r.identity=="string"?r.identity:r.identity.join("-");this.entityIdentityToEntity[o]===r&&(delete this.entityByUuid[r.uuid],delete this.entityIdentityToEntity[o]),r.dispose()})}clearScene(){for(let e of this.children)ze.is(e)&&e.disposeRecursively();this.children.length=0}resetAfterClear(e,r){this.init(e,r)}raycast(e){return this.raycast1(e,!1)}raycast1(e,r){let o=[],n=a=>{for(let s of a.children){let l=s.cloner;if(ze.is(s)&&!s.raycastLock&&(s.visible||l?.object.data.visible))if(r===!0&&s.isInstanceRoot){let c=[];if(e.intersectObject(s,!0,c),c.length){let u=c[0];u.object=s,u.point.applyMatrix4(u.object.matrixWorld);let d=s.matrixWorld.clone().invert();u.point.applyMatrix4(d),o.push(u)}}else(tn(s)||ic(s)&&this.enableHelpers&&s.objectHelper.visible)&&(e.intersectObject(s,!1,o),dc(s,e,o)),n(s)}};return n(this.activePage),o}raycastWithClones(e){let r=[],o=n=>{for(let a of n.children){let s=a.cloner;ze.is(a)&&(a.visible||s?.object.data.visible)&&((tn(a)||ic(a)&&this.enableHelpers&&a.objectHelper.visible)&&(e.intersectObject(a,!1,r),dc(a,e,r,!0)),o(a))}};return o(this),r}forEachEntity(e){for(let r of this.children)ze.is(r)&&e(r)}traverseConcreteEntity(e){for(let r of this.children)ze.is(r)&&r.isConcreteEntity&&r.traverseEntity(e)}traverseEntity(e){for(let r of this.children)ze.is(r)&&r.traverseEntity(e)}updateFont(e,r){this.traverseEntity(o=>{if(o instanceof ft&&o.data.type==="Mesh"&&(o.data.geometry.type==="TextGeometry"||o.data.geometry.type==="InputGeometry")&&o.data.geometry.font===e){let n=o.geometry,a=o.data.geometry;n.updateFont(e,r).then(()=>{n.update(a,r);let s=o.invalidateDownstreamBooleanData();oc(s)&&s.recomputeBoolean()})}})}traverseObject(e){for(let r of this.children)li.is(r)&&r.traverseObject(e)}traverseVisibleEntity(e){for(let r of this.children)ze.is(r)&&r.visible&&r.traverseVisibleEntity(e)}dispose(){this.clearScene()}createChildrenObjects(e,r,o){let n=0;for(let a of e)this.createObject(a.id,a.data,a.children,r,n,o),n+=1}registerObjectCreatedInLegacy(e){this.entityByUuid[e.uuid]=e}unregisterObject(e){delete this.entityByUuid[e.uuid];for(let r of e.children)this.unregisterObject(r)}createObject(e,r,o,n,a,s){let l={scene:this,shared:s},c=Jd(e,r,l);return c instanceof ln&&this.shapeBlendIntances.push(c),c&&(this.entityByUuid[e]=c,n.add(c),n.children.splice(a,0,n.children.pop()),o.length>0&&(c.isInstanceRoot?console.error("instance should not have children!"):this.createChildrenObjects(o,c,s)),c.updateState(r,l),c instanceof ft&&c.updateGeometryGroupsIfNeeded(),c.updateVisible(this),c.cloner&&this.toExpandCloner.add(c),r.pathSnapping?.pathId&&this.pathConstraints.setConstraint(e,r.pathSnapping.pathId)),r.type==="Empty"&&r.animations&&c.traverseEntity(u=>{let d=u.dataPatched;if(u instanceof ft&&d.bones&&d.boneInverses){let p=d.bones.map(m=>this.find(m)),f=d.boneInverses.map(m=>new to.Matrix4().fromArray(m)),h=new to.Skeleton(p,f);u.bind(h,u.bindMatrix)}else u.matrixAutoUpdate=!0}),c}getCenter(e){let r=[];for(let n=0,a=e.length;n<a;++n){let{id:s,recursive:l}=e[n],c=this.find(s),u=l?c.recursiveBBox:c.singleBBox;r.push(...u.vertices)}let o=new to.Box3;return o.setFromPoints(r),o.getCenter(Z1),Z1}copyMatrixWorld(e,r){if(e===null){r.identity();return}let o=this.find(e);o?r.copy(o.matrixWorld):r.identity()}copyParentMatrixWorld(e,r){if(e===null){r.identity();return}let o=this.find(e)?.parent;o?r.copy(o.matrixWorld):r.identity()}traverseMaterial(e){this.traverseEntity(r=>{if(r instanceof Wt)if(Array.isArray(r.material))for(let o=0;o<r.material.length;o++)r.material[o]instanceof Cr&&e(r.material[o]);else r.material instanceof Cr&&e(r.material)})}updateViewPlaneSize(e,r,o=!1){this.traverseConcreteEntity(n=>{n instanceof gi&&n.setViewplaneSize(e,r,o)})}initializeSplatViewer(){this.splatViewer=new fc({scene:this}),this.reloadSplats()}reloadSplats(){this.splatViewer?.loadSplat()}};var J1=require("three/examples/jsm/loaders/DRACOLoader.js");var pn;function eS(i){return pn||(pn=new J1.DRACOLoader,pn.setDecoderPath(i?`${i}/`:"https://www.gstatic.com/draco/versioned/decoders/1.5.2/").preload()),pn.decoderPending}async function CE(i){if(pn){let t={attributeIDs:pn.defaultAttributeIDs,attributeTypes:pn.defaultAttributeTypes,useUniqueIDs:!1},e;try{e=await pn.decodeGeometry(new Int8Array(i).buffer,t)}catch(r){console.error(r)}if(e)return{index:e.index?{array:e.index.array}:void 0,attributes:Object.entries(e.attributes).map(([r,o])=>({name:r,itemSize:o.itemSize,array:o.array}))}}return null}async function tS(i,t){let[e,r]=_p(du.deserialize(new Uint8Array(i)));return Eu(e),t&&t(e),r.result().data}function rS(i){let t=[];return i.scene.objects.traverse((e,r)=>{r.type==="Mesh"&&r.geometry.type==="NonParametricGeometry"&&r.geometry.data.draco!==void 0&&t.push(r)}),t}async function oS(i){for(let t of i){let e=await CE(t.geometry.data.draco);if(e){let r=t.geometry.data;e.index&&(r.index={array:e.index.array,itemSize:1,normalized:!1,type:"Uint32Array"});let o={};e.attributes.forEach(({name:n,array:a,itemSize:s})=>{o[n]={array:a,itemSize:s,type:"Float32Array",normalized:!1}}),r.attributes=o,r.draco=void 0}}}var AE=require("three"),ME=require("three/examples/jsm/utils/BufferGeometryUtils.js");function iS(i){let t;if(!!i.index)for(let e=0;e<i.index.array.length;e+=3)t=i.index.array[e],i.index.array[e]=i.index.array[e+2],i.index.array[e+2]=t}var hc=require("three");function nS(i){let t=new Set;return i.traverse(e=>{if(e instanceof Ar)if(Ct(e.material))e.material.forEach(r=>{let o=r;t.has(o)||t.add(o)});else{let r=e.material;t.has(r)||t.add(r)}}),t.forEach(e=>{if(e instanceof Array)return;let r=e.onBeforeCompile.bind(e);if(IE(e)){Object.assign(e,{isMeshStandardMaterial:!0,isMeshPhysicalMaterial:!0,transmission:1,attenuationColor:new hc.Color,specularColor:new hc.Color});let o=0;e.onBeforeCompile=(n,a)=>{r&&r(n,a),n.uniforms=Object.assign({},hc.ShaderLib.physical.uniforms,n.uniforms),e.getLayersOfType("transmission").forEach(s=>{if(n.uniforms.transmissionSamplerMap.value){let l=s.color;l&&(l.transmissionSamplerMap.value=n.uniforms.transmissionSamplerMap.value,l.transmissionSamplerSize.value=n.uniforms.transmissionSamplerSize.value,l.aspectRatio.value=Gb(window.innerWidth,window.innerHeight),e.defines.IS_THREEJS_EXPORT=!0)}else o++,o<2&&(e.needsUpdate=!0)})}}else EE(e)||(e.onBeforeCompile=(o,n)=>{r&&r(o,n),e.transparent=!1})}),i}function IE(i){return i.getLayersOfType("transmission").length>0}function EE(i){let t=0;for(let e of i.layers){if(e.data.type!=="displace"&&e.data.isMask)return!0;if(e.type!=="light"&&e.type!=="fresnel"){let o=e.uniforms["f"+e.id+"_alpha"];o&&(t+=(1-t)*o.value)}}return t<1}function aS(i){return i.traverse(t=>{if(t.type==="Camera"){let e=t;e.type=e.cameraType}}),i}function sS(i){let t=[],e=(r,o=0)=>{let n=o>0?r+o:r;return t.includes(n)?e(r,o+1):n};return i.traverse(r=>{if(t.includes(r.name)){let o=r.name,n=e(r.name);if(r.name=n,r.isMesh){let a=r;a.material instanceof Array?a.material.forEach(s=>{s.name=s.name.replace(o,n)}):a.material.isAsset||(a.material.name=a.material.name.replace(o,n))}}t.push(r.name)}),i}var lS=require("three/examples/jsm/utils/BufferGeometryUtils.js");function cS(i){let t=[];return i.traverse(e=>{e instanceof Ji&&t.push(e)}),t.forEach(e=>{let r=e.object,a=[...e.children.map(s=>{s.updateMatrix();let l;if(s.geometry!==void 0)try{l=s.geometry.clone().applyMatrix4(s.matrix)}catch(c){console.error(c)}return l!==void 0&&s.matrix.determinant()<0&&iS(l),l}).filter(s=>s!==void 0)];if(!e.parameters.hideBase&&r instanceof Wt&&a.unshift(r.geometry),a.length){let s=(0,lS.mergeBufferGeometries)(a);r instanceof Wt&&(r.geometry=s)}e.removeFromParent(),r.setFromClonerState(null,{scene:i,shared:iv})}),i}function uS(i){return i.traverse(t=>{t.matrixAutoUpdate=!0}),i}function dS(i){Object.values(i.shared.materials).forEach(t=>{em(t)}),i.scene.objects.traverse((t,e)=>{"material"in e?em(e.material):"materials"in e&&e.materials.forEach(r=>{em(r)})})}function em(i){if(typeof i=="string")return;let t=[];i.layers.forEach((e,r)=>{e.type==="outline"&&t.push(r)}),t.reverse().forEach(e=>{i.layers.delete(e)}),t.length&&console.warn("The Spline Loader currently does not support the outline layer.")}var mS=rl(fS(),1);var hS="The SplineLoader only accepts .splinecode files that are generated from Spline export panel.",lp=class extends cp.Loader{load(t,e,r,o=console.error){let n=new cp.FileLoader(this.manager);n.setPath(this.path),n.setResponseType("arraybuffer"),n.setRequestHeader(this.requestHeader),n.setWithCredentials(this.withCredentials),t.endsWith(".spline")?console.warn(hS+" The .spline files are only meant to be used by the Editor."):t.endsWith(".splinecode")||console.warn(hS),n.load(t,async a=>{try{if(typeof a=="string")throw new Error("The .spline file is not binary!");let s=await this.parse(a);e(s)}catch(s){o(s)}},r,o)}async parse(t){let e=await tS(t,dS),r=rS(e);e.version&&(0,mS.default)(e.version,"1.10.90")>0&&console.warn("Your .splinecode file is more recent than the library. Please upgrade @splinetool/loader to the latest version."),await Promise.allSettled([r.length&&eS(),cv(e)&&fb(),bv(e)&&Qb(),Jv(e)&&Kv(),np(e)&&Jh()].filter(Boolean)),r.length&&await oS(r);let o=!1,n=new Fn(e.shared,{},o);Object.values(n.getMaterials()).forEach(l=>Object.assign(l,{isAsset:!0}));let a=new sp(e.scene,n);np(e)&&a.initializeSplatViewer();let s=a.activeCamera;return s&&Object.assign(s,{makeDefault:!0}),a=cS(a),a=nS(a),a=aS(a),a=sS(a),a=uS(a),a}};
4379
+ }`,n={covariancesTexture:{type:"t",value:null},centersColorsTexture:{type:"t",value:null},meshIndexIntervals:{value:e},meshMatrixWorldsTexture:{type:"t",value:null},focal:{type:"v2",value:new Te.Vector2},viewport:{type:"v2",value:new Te.Vector2},basisViewport:{type:"v2",value:new Te.Vector2},debugColor:{type:"v3",value:new Te.Color},covariancesTextureSize:{type:"v2",value:new Te.Vector2(1024,1024)},centersColorsTextureSize:{type:"v2",value:new Te.Vector2(1024,1024)},orthoZoom:{type:"f",value:-1}};return new Te.ShaderMaterial({uniforms:n,vertexShader:r,fragmentShader:o,transparent:!0,alphaTest:1,blending:Te.NormalBlending,depthTest:!0,depthWrite:!1,side:Te.DoubleSide})}static buildGeomtery(e){let r=new Te.BufferGeometry;r.setIndex([0,1,2,0,2,3]);let o=new Float32Array(4*3),n=new Te.BufferAttribute(o,3);r.setAttribute("position",n),n.setXYZ(0,-1,-1,0),n.setXYZ(1,-1,1,0),n.setXYZ(2,1,1,0),n.setXYZ(3,1,-1,0),n.needsUpdate=!0;let a=new Te.InstancedBufferGeometry().copy(r),s=new Uint32Array(e),l=new Te.InstancedBufferAttribute(s,1,!1);return l.setUsage(Te.DynamicDrawUsage),a.setAttribute("splatIndex",l),a.instanceCount=e,a}resetLocalSplatDataAndTexturesFromSplatBuffer(){this.updateLocalSplatDataFromSplatBuffer(),this.allocateAndStoreLocalSplatDataInTextures()}updateLocalSplatDataFromSplatBuffer(){this.splatBuffers.forEach(n=>n.buildPreComputedBuffers()),this.covariances=new Float32Array(this.splatCount*6),this.colors=new Uint8Array(this.splatCount*4),this.centers=new Float32Array(this.splatCount*3);let e=0,r=0,o=0;for(let n of this.splatBuffers){let a=n.nsplats;this.colors.subarray(e,e+a*4).set(n.colorsA),e+=a*4,this.centers.subarray(r,r+a*3).set(n.decoded.xyz.denormDequant().data),r+=a*3,this.covariances.subarray(o,o+a*6).set(new Float32Array(n.precomputedCovarianceBufferData)),o+=a*6}}allocateAndStoreLocalSplatDataInTextures(){let o=this.splatCount,n=new Te.Vector2(4096,1024);for(;n.x*n.y*2<o*6;)n.y*=2;let a=new Te.Vector2(4096,1024);for(;a.x*a.y*4<o*4;)a.y*=2;let s,l;if(this.halfPrecisionCovariancesOnGPU){l=new Uint16Array(n.x*n.y*2);for(let h=0;h<this.covariances.length;h++)l[h]=Te.DataUtils.toHalfFloat(this.covariances[h]);s=new Te.DataTexture(l,n.x,n.y,Te.RGFormat,Te.HalfFloatType)}else l=new Float32Array(n.x*n.y*2),l.set(this.covariances),s=new Te.DataTexture(l,n.x,n.y,Te.RGFormat,Te.FloatType);s.needsUpdate=!0,this.material.uniforms.covariancesTexture.value=s,this.material.uniforms.covariancesTextureSize.value.copy(n);let c=new Uint32Array(a.x*a.y*4);for(let h=0;h<o;h++){let m=h*4,y=h*3,x=h*4;c[x]=X1(this.colors[m],this.colors[m+1],this.colors[m+2],this.colors[m+3]),c[x+1]=op(this.centers[y]),c[x+2]=op(this.centers[y+1]),c[x+3]=op(this.centers[y+2])}let u=new Te.DataTexture(c,a.x,a.y,Te.RGBAIntegerFormat,Te.UnsignedIntType);u.internalFormat="RGBA32UI",u.needsUpdate=!0,this.material.uniforms.centersColorsTexture.value=u,this.material.uniforms.centersColorsTextureSize.value.copy(a);let d=256*4,p=new Float32Array(256*16);for(let h=0;h<this.meshMatrixWorlds.length;h++)p.set(this.meshMatrixWorlds[h].elements,h*16);let f=new Te.DataTexture(p,d,1,Te.RGBAFormat,Te.FloatType);f.needsUpdate=!0,this.material.uniforms.meshMatrixWorldsTexture.value=f,this.material.uniformsNeedUpdate=!0,this.splatDataTextures={covariances:{data:l,texture:s,size:n},centerColors:{data:c,texture:u,size:a},meshMatrixWorlds:{data:p,texture:f}}}updateIndexes(e){let r=this.geometry;r.attributes.splatIndex.set(e),r.attributes.splatIndex.needsUpdate=!0,r.instanceCount=e.length}updateUniforms(e,r,o,n){this.splatCount>0&&(ip.set(e.x*this.devicePixelRatio,e.y*this.devicePixelRatio),this.material.uniforms.viewport.value.copy(ip),this.material.uniforms.basisViewport.value.set(2/ip.x,2/ip.y),this.material.uniforms.focal.value.set(r,o),this.material.uniforms.orthoZoom.value=n,this.material.uniformsNeedUpdate=!0)}getSplatDataTextures(){return this.splatDataTextures}getSplatCount(){return this.splatCount}getCenters(){return this.centers}getColors(){return this.colors}getCovariances(){return this.covariances}dispose(){this.geometry.dispose(),this.material.dispose(),this.splatDataTextures&&(this.splatDataTextures.covariances.texture.dispose(),this.splatDataTextures.centerColors.texture.dispose(),this.splatDataTextures.meshMatrixWorlds.texture.dispose()),this.removeFromParent()}};var K1,Zh=new Promise(i=>{K1=i}),Y1=!1;var ap;function Jh(){if(Y1)return;if(ap)return ap;async function i(){let e=await import("./gaussian-splat-compression.js");K1(e),Y1=!0}return ap=i(),ap}var Q1;Zh.then(i=>Q1=i);var fc=class{constructor(t={}){gn(this,"updateView",function(){let t=new br.Matrix4,e=[],r=new br.Vector3(0,0,-1),o=new br.Vector3(0,0,-1),n=new br.Vector3,a=new br.Vector3;return function(s=!1,l){let c=this.updateMatrixWorldsInWorkerIfNeeded(),u=this.cropsChanged();if(!s){o.set(0,0,-1).applyQuaternion(l.quaternion);let p=!1,f=!1;if(o.dot(r)<=.95&&(p=!0),a.copy(l.position).sub(n).length()>=1&&(f=!0),!p&&!f&&!c&&!u&&!this.needsInitialRender)return}this.needsInitialRender=!1,n.copy(l.position),r.copy(o),t.copy(l.matrixWorld).invert(),t.premultiply(this.dummyPerspectiveMatrix),e[0]=l.position.x,e[1]=l.position.y,e[2]=l.position.z;let d={sort:{view:t.elements,cameraPosition:e,splatRenderCount:this.splatRenderCount,splatSortCount:this.splatRenderCount},...c?{newMatrixWorlds:this.meshMatrixWorlds}:{},...u?{newCropsArray:this.cropsArray}:{}};this.sortRunning?this.queuedMessage=d:(this.queuedMessage=null,this.sortRunning=!0,this.sortWorker.postMessage(d))}}());this.scene=t.scene,this.currentPage=null,this.devicePixelRatio=window.devicePixelRatio,this.sortWorker=null,this.splatRenderCount=0,this.splatSortCount=0,this.splatMesh=null,this.sortRunning=!1,this.meshMatrixWorlds=null,this.meshMatrixWorldsOld=null,this.cropsArray=null,this.splatEntries=null,this.queuedMessage=null,this.needsInitialRender=!0,this.dummyPerspectiveMatrix=new br.Matrix4().makePerspective(-1,1,-1,1,.1,1e3)}updateSplatMeshUniforms(t,e){let r=new br.Vector2;if(this.splatMesh===null)return;this.splatMesh.getSplatCount()>0&&(t.getSize(r),this.cameraFocalLengthX=e.projectionMatrix.elements[0]*this.devicePixelRatio*r.x*.45,this.cameraFocalLengthY=e.projectionMatrix.elements[5]*this.devicePixelRatio*r.y*.45,this.splatMesh.updateUniforms(r,this.cameraFocalLengthX,this.cameraFocalLengthY,e.isPerspectiveCamera?-1:e.zoom*this.devicePixelRatio))}loadSplat(t={}){this.activePage=this.scene.activePage,t.position&&(t.position=new br.Vector3().fromArray(t.position)),t.orientation&&(t.orientation=new br.Quaternion().fromArray(t.orientation)),t.halfPrecisionCovariances=!!t.halfPrecisionCovariances;let e=[];if(this.splatEntries=e,this.activePage.traverseVisibleEntity(a=>{a.data.type==="Splat"&&e.push(a)}),this.splatMesh&&this.splatMesh.dispose(),e.length===0)return this.splatMesh=null,!1;this.meshMatrixWorlds=e.map(a=>a.matrixWorld),this.meshMatrixWorldsOld=e.map(a=>a.matrixWorld.clone()),this.cropsArray=e.map(a=>a.data.crops.map(s=>s.data));let r=e.map(a=>new Q1.GSplineBuffer(new Uint8Array(a.data.buffer).buffer)),o=0,n=[0];for(let a of r)o+=a.getSplatCount(),n.push(o);return this.setupSplatMesh(r,o,t.position,t.orientation,t.halfPrecisionCovariances,this.devicePixelRatio,n,this.meshMatrixWorlds),this.setupSortWorker(o),!0}updateMatrixWorldsInWorkerIfNeeded(){let t=this.splatDataTextures.meshMatrixWorlds.data;for(let e=0;e<this.meshMatrixWorlds.length;e++)t.set(this.meshMatrixWorlds[e].elements,e*16);return this.splatDataTextures.meshMatrixWorlds.texture.needsUpdate=!0,this.meshMatrixWorlds.every((e,r)=>e.equals(this.meshMatrixWorldsOld[r]))?!1:(this.meshMatrixWorldsOld=this.meshMatrixWorlds.map(e=>e.clone()),!0)}cropsChanged(){let t=!1;return this.splatEntries.forEach((e,r)=>{e.data.crops.forEach((o,n)=>{this.cropsArray[r][n]===void 0?(t=!0,this.cropsArray[r][n]=o.data):Object.entries(o.data).forEach(([a,s])=>{Array.isArray(s)&&s.some((l,c)=>l!==this.cropsArray[r][n][a][c])?(t=!0,this.cropsArray[r][n][a]=s):s!==this.cropsArray[r][n]?.[a]&&(t=!0,this.cropsArray[r][n][a]=s)})}),e.data.crops.length!==this.cropsArray[r]?.length&&(this.cropsArray[r].length=e.data.crops.length,t=!0)}),t}setupSplatMesh(t,e,r=new br.Vector3,o=new br.Quaternion,n=!1,a=1,s,l){this.splatMesh=dn.buildMesh(t,e,n,a,s,l),this.splatMesh.position.copy(r),this.splatMesh.quaternion.copy(o),this.splatMesh.frustumCulled=!1,this.splatMesh.renderOrder=99999,this.splatRenderCount=e,this.splatMesh.onBeforeRender=(c,u,d)=>this.update(c,d)}setupSortWorker(t){this.sortWorker=$1(t),this.sortWorker.onmessage=e=>{e.data.sortDone?(this.sortRunning=!1,this.splatMesh?.updateIndexes(new Uint32Array(e.data.indexesBuffer)),this.lastSortTime=e.data.sortTime,this.queuedMessage&&(this.sortWorker.postMessage(this.queuedMessage),this.queuedMessage=null)):e.data.sortCanceled?this.sortRunning=!1:e.data.sortSetupPhase1Complete?this.sortWorker.postMessage({positions:this.splatMesh.getCenters().buffer,meshMatrixWorlds:this.splatMesh.meshMatrixWorlds,meshIndexIntervals:this.splatMesh.meshIndexIntervals,cropsArray:this.cropsArray}):e.data.sortSetupComplete&&(this.splatDataTextures=this.splatMesh.getSplatDataTextures(),this.scene.activePage.add(this.splatMesh),this.needsInitialRender=!0)}}update(t,e){this.splatMesh!==null&&(this.updateSplatMeshUniforms(t,e),this.updateView(!1,e))}getSplatMesh(){return this.splatMesh}};var TE=new to.MeshBasicMaterial;TE.wireframe=!0;var Z1=new to.Vector3,sp=class extends to.Scene{constructor(e,r){super();this.data=e;this.sharedAssets=r;this.enableHelpers=!1;this.wireframeState=!1;this.needsTransmissionDirty=!0;this.needsNormalDirty=!0;this._needsTransmission=!1;this._needsNormal=!1;this.geometryCacheChanged=!1;this.splatViewer=null;this.shapeBlendIntances=[];this.entityByUuid={};this.entityIdentityToEntity={};this.toExpandCloner=new Set;this.toUpdateCloner=new Set;this.pendingCommands=[];this.pathConstraints=new rp;this.invisibleObjects=new rn("jflkdsafjasdifjaslk",{...Ou.defaultData,visible:!1,name:"buildin invisible"});this.needsRecomputeInstances=!1;this.init(e,r),this.matrixAutoUpdate=!1,this.errorPage=new Jr("fdasfa",{...ri.defaultData,name:""},{shared:r,scene:this})}markGeometryCacheDirty(){this.geometryCacheChanged=!0}markNeedsUpdateRendererDirty(){this.needsTransmissionDirty=!0,this.needsNormalDirty=!0}needsTransmission(){return this.needsTransmissionDirty&&(this._needsTransmission=W1(this),this.needsTransmissionDirty=!1),this._needsTransmission}needsNormal(){return this.needsNormalDirty&&(this._needsNormal=H1(this),this.needsNormalDirty=!1),this._needsNormal}registerInstanceAndSetUuid(e){let r=e.identity.join("-"),o=this.entityIdentityToEntity[r];o&&(e.uuid=o.uuid),this.entityIdentityToEntity[r]=e,this.entityByUuid[e.uuid]=e}markPenumbraSizeDirty(){for(let e of this.children)e instanceof Jr&&(e.penumbraSizeArrayCache=null)}findInstance(e){return this.entityIdentityToEntity[e.join("-")]}get bgColor(){return this.activePage.bgColor}get postprocessing(){return this.activePage.data.postprocessing}getWithSortKey(e){let r=this.find(e);if(r===void 0)return;let o=[],n=r;for(;n!==this;){let a=n;n=n.parent;let s=n.children.indexOf(a);o.splice(0,0,s)}return{entity:r,sortKey:o}}getAllSorted(e){let r=[];for(let o of e){let n=this.getWithSortKey(o.id);n!==void 0&&r.push(n)}return r.sort((o,n)=>wc(o.sortKey,n.sortKey)),r.map(o=>o.entity)}nonExistOrDescendantOf(e,r){let o=this.find(e);if(o===void 0)return!0;for(;o;){if(o.uuid===r)return!0;o=o.parent}return!1}find(e){if(this.activePage&&this.activePage.personalCamera.parent){if(e==="f23858d0-4a3b-4bd8-8173-66ed0af7f6fb-personalCamera")return this.activePage.personalCamera;if(e===Ri)return this.activePage.personalCamera}if(e===""||e===void 0)return;let r=this.entityByUuid[e];return r===void 0?this.getObjectByProperty("uuid",e):r}find2D(e){for(let r of this.children)if(r instanceof Jr&&r.uiScene){let o=r.uiScene.find(e);if(o)return o}}findScene2DfromObject2D(e){for(let r of this.children)if(r instanceof Jr&&r.uiScene&&r.uiScene.find(e))return r.uiScene}find2DInUIObjects(e){let r;return this.traverseEntity(o=>{r===void 0&&o instanceof Wn&&(r=o.uiCanvas.find(e))}),r}traverse2D(e){for(let r of this.children)r instanceof Jr&&r.uiScene&&r.uiScene.traverse(e)}debugEnsureEntity(e){let r=this.find(e);if(r){if(Array.isArray(r.identity)&&this.findInstance(r.identity)===void 0){console.error("not found instance");debugger}}else{console.error("not found");debugger}}addPendingExpandCloner(e){this.toExpandCloner.add(e)}addPendingUpdateCloner(e){this.toUpdateCloner.add(e)}markToExpandCloner(e){this.toExpandCloner.add(e),e.traverseEntityAncestors(r=>{this.toExpandCloner.add(r)})}doPendingExpandCloner(){this.toExpandCloner.forEach(e=>{e.expandCloner(this)}),this.toExpandCloner.clear()}doPendingUpdateCloner(){this.toUpdateCloner.forEach(e=>{e.cloner?.update()}),this.toUpdateCloner.clear()}doPendingUpdates(){this.doPendingExpandCloner(),this.doPendingUpdateCloner(),this.applyPendingCommands()}addPendingCommand(e){this.pendingCommands.push(e)}applyPendingCommands(){this.pendingCommands.forEach(e=>e()),this.pendingCommands.length=0}updateByLibOp(e,r){e.path.length===1&&e.path[0]==="components"&&e.type===1&&this.createChildrenObjects([{...e.data.asset,id:e.id}],this.invisibleObjects,r)}updateTreeByOp(e,r){if(e.path.length===0&&e.type===7){let o=e.parent===null?this:this.find(e.parent);if(o===void 0)throw new Error("unexpected");let n=this.createObject(e.id,e.data,e.children,o,e.localIndex,r);n.updateVisible(this),n.resetBBoxNeedsUpdate(),tn(n)&&oc(n.parent)&&(n.invalidateUpstreamBooleanData(),n.parent.invalidateDownstreamBooleanData().recomputeBoolean()),this.markNeedsRecomputeInstancesForAncessors(o),this.markNeedsRecomputeInstancesForChildren(n),this.markToExpandCloner(n),this.markPenumbraSizeDirty(),n.updatePathSnapping()}else if(e.path.length===0&&e.type===8){let o=this.find(e.id);if(o===void 0)throw new Error("unexpected");o.traverseEntity(a=>{a instanceof ln&&(this.shapeBlendIntances=this.shapeBlendIntances.filter(s=>s!==a))}),this.markToExpandCloner(o),o.resetBBoxNeedsUpdate(),this.unregisterObject(o);let n=o.parent;this.markNeedsRecomputeInstancesForAncessors(n),this.markNeedsRecomputeInstancesForChildren(o),this.markPenumbraSizeDirty(),o.parent.remove(o),oc(o.parent)&&(o.parent.invalidateUpstreamBooleanData(),o.parent.invalidateDownstreamBooleanData().recomputeBoolean()),tn(o)&&(o.freeBooleanPointer(),n instanceof Mr&&n.invalidateDownstreamBooleanData().recomputeBoolean()),o instanceof Ws&&o.detachShape(),this.disposeAndUnregisterEntityRecursivelyIfNotReregistered(o),this.pathConstraints.removeDependencies(o.uuid),o.updatePathSnapping()}else if(e.path.length===0&&e.type===9){let o=this.find(e.id);if(o===void 0)throw new Error("unexpected");this.markNeedsRecomputeInstancesForChildren(o);let n=o.parent;this.markNeedsRecomputeInstancesForAncessors(n),o.cloner?.resetOnMove(),this.markToExpandCloner(o);let a=e.parent===null?this:this.find(e.parent);if(a===void 0)throw new Error("unexpected");a.add(o),this.markNeedsRecomputeInstancesForAncessors(a),this.markToExpandCloner(o),o.invalidateClonerTransform(o),o.updateVisible(this),o.resetBBoxNeedsUpdate(),this.markPenumbraSizeDirty();let s=e.localIndex;a.children.splice(s,0,a.children.pop()),tn(o)&&(o.invalidateUpstreamBooleanData(),oc(o.parent)?o.parent.invalidateDownstreamBooleanData().recomputeBoolean():n instanceof Mr&&n.invalidateDownstreamBooleanData().recomputeBoolean()),o.updatePathSnapping()}this.markNeedsUpdateRendererDirty(),this.markGeometryCacheDirty()}get playPage(){return this.find(this.data.publish.playPage)??this.errorPage}updatePage(e){this.activePage&&this.activePage.onDeactive(),this.activePage=this.errorPage;for(let r of this.children)r instanceof Jr&&(r.visible=r.uuid===e,r.visible&&(this.activePage=r,this.activePage.onActive(this)));this.activePage!==this.splatViewer?.activePage&&this.reloadSplats()}updateEntityByOp(e,r,o,n){if(r.type===0){if(("overrides"in r.props||"component"in r.props)&&this.markNeedsRecomputeInstances(),"visible"in r.props&&this.markPenumbraSizeDirty(),r.path.includes("overrides")&&"states"in r.props){let{rest:s}=r.props;r={...r,props:s},this.markNeedsRecomputeInstances()}r.path[0]==="pathSnapping"&&r.props.pathId!==void 0&&this.pathConstraints.setConstraint(e,r.props.pathId)}let a=this.find(e);if(a)try{z1(a,r,o,{scene:this,shared:n}),a instanceof ft&&a.updateGeometryGroupsIfNeeded()}catch(s){console.error(s)}}updateEntity2DByOp(e,r,o,n,a,s=[]){e.updateEntityByOp(r,o,n,a),this.traverseEntity(l=>{(l instanceof Wn||l instanceof Jr)&&(s.includes(l.frameId??"")||l.frameId===r)&&l.updateEntity2DByOp(r,o,n,a)})}get activeCamera(){return this.activePage.activeCamera}switchActiveCamera(e){this.activePage.switchActiveCamera(e)}isInvisibleObjects(e){return e===this.invisibleObjects||e.hasAnccestor(this.invisibleObjects)}init(e,r){let o=Object.entries(r.data.lib.components).map((n,a)=>({data:n[1].asset.data,children:n[1].asset.children,id:n[0],fi:a}));this.invisibleObjects.updateState(this.invisibleObjects.data,{scene:this,shared:r}),this.add(this.invisibleObjects),this.createChildrenObjects(o,this.invisibleObjects,r),this.createChildrenObjects(e.objects,this,r),this.updatePage(e.publish.playPage),this.activePage.switchToPlayCamera(),this.expandInstances(r,!0),this.traverseEntity(n=>{n instanceof gi&&n.updateUp()}),this.doPendingExpandCloner(),this.applyPendingCommands()}markNeedsRecomputeInstances(){this.needsRecomputeInstances=!0}markNeedsRecomputeInstancesForChildren(e){e.traverseEntity(r=>{(r.data.type==="Component"||r.data.type==="Instance")&&this.markNeedsRecomputeInstances()})}markNeedsRecomputeInstancesForAncessors(e){ze.is(e)&&(e.data.type==="Component"&&this.markNeedsRecomputeInstances(),e.traverseAncestors(r=>{ze.is(r)&&r.data.type==="Component"&&this.markNeedsRecomputeInstances()}))}relativeizeInner(e,r,o,n,a,s,l){if(e){let c=n.find(e);c&&c!==n&&a.forInstancesRec(u=>{u.data=Mi(u.data,d=>{let p=d.events.data(l.id),f=u.goUp(s);if(f){let h=[...Sc(f.identity),e].join("-"),m=this.entityIdentityToEntity[h];if(m){let y=m.uuid,x=ut.zoom(p,r);x[o]=y}else{if(!1)debugger;console.warn("cannot find instance")}}}).data})}}rewriteActions(e,r,o,n,a,s){e.forEach(l=>{l.data.type==="Transition"?this.relativeizeInner(l.data.object,[...r,l.id],"object",o,n,a,s):l.data.type==="Animation"?this.relativeizeInner(l.data.object,[...r,l.id],"object",o,n,a,s):l.data.type==="Conditional"&&(this.rewriteActions(l.data.ifActions,[...r,l.id,"ifActions"],o,n,a,s),this.rewriteActions(l.data.elseActions,[...r,l.id,"elseActions"],o,n,a,s))})}rewriteEventsBeforeGoToPlayMode(){this.traverseEntity(e=>{if(e instanceof vi&&typeof e.identity=="string"&&e.data.type==="Component")return e.traverseEntity((r,o)=>{r.data.events.forEach(n=>{if(n.data.type==="GameControl"){let a=!1;if(r.forInstancesRec(s=>{s.data=Mi(s.data,l=>{s.isInstanceRoot||(l.events.delete(n.id),a=!0)}).data}),a===!1)for(let s of Mu.list)this.rewriteActions(n.data.gameActions[s],["gameActions",s],e,r,o,n)}else n.data.type==="Conditional"?(n.data.condition.type==="Distance"?(this.relativeizeInner(n.data.condition.fromObject,["condition"],"fromObject",e,r,o,n),this.relativeizeInner(n.data.condition.toObject,["condition"],"toObject",e,r,o,n)):n.data.condition.type==="State"?this.relativeizeInner(n.data.condition.object,["condition"],"object",e,r,o,n):n.data.condition.type==="Comparison"&&(n.data.condition.lOperand.type==="Property"&&this.relativeizeInner(n.data.condition.lOperand.value[0],["condition","lOperand","value"],0,e,r,o,n),n.data.condition.rOperand.type==="Property"&&this.relativeizeInner(n.data.condition.rOperand.value[0],["condition","rOperand","value"],0,e,r,o,n)),this.rewriteActions(n.data.inActions,["inActions"],e,r,o,n),this.rewriteActions(n.data.outActions,["outActions"],e,r,o,n)):"actions"in n.data&&this.rewriteActions(n.data.actions,["actions"],e,r,o,n)})}),!0})}expandInstances(e,r,o){let n=new Set;this.traverseEntity(a=>{if(a instanceof vi&&a.isInstanceRoot)return a.expandInstanceChildren({scene:this,shared:e,pendingDeletes:n}),r||a.resetBBoxNeedsUpdate(),o&&a.traverseEntity(s=>{o.addClip(s)}),!0});for(let a of n)this.disposeAndUnregisterEntityRecursivelyIfNotReregistered(a),Yd(a)}recomputeInstances(e,r){this.needsRecomputeInstances&&(this.needsRecomputeInstances=!1,this.traverseEntity(o=>{o instanceof vi&&o.isInstanceRoot&&(o.component=void 0)}),this.expandInstances(e,!1,r))}disposeAndUnregisterEntityRecursivelyIfNotReregistered(e){e.traverseEntity(r=>{let o=typeof r.identity=="string"?r.identity:r.identity.join("-");this.entityIdentityToEntity[o]===r&&(delete this.entityByUuid[r.uuid],delete this.entityIdentityToEntity[o]),r.dispose()})}clearScene(){for(let e of this.children)ze.is(e)&&e.disposeRecursively();this.children.length=0}resetAfterClear(e,r){this.init(e,r)}raycast(e){return this.raycast1(e,!1)}raycast1(e,r){let o=[],n=a=>{for(let s of a.children){let l=s.cloner;if(ze.is(s)&&!s.raycastLock&&(s.visible||l?.object.data.visible))if(r===!0&&s.isInstanceRoot){let c=[];if(e.intersectObject(s,!0,c),c.length){let u=c[0];u.object=s,u.point.applyMatrix4(u.object.matrixWorld);let d=s.matrixWorld.clone().invert();u.point.applyMatrix4(d),o.push(u)}}else(tn(s)||ic(s)&&this.enableHelpers&&s.objectHelper.visible)&&(e.intersectObject(s,!1,o),dc(s,e,o)),n(s)}};return n(this.activePage),o}raycastWithClones(e){let r=[],o=n=>{for(let a of n.children){let s=a.cloner;ze.is(a)&&(a.visible||s?.object.data.visible)&&((tn(a)||ic(a)&&this.enableHelpers&&a.objectHelper.visible)&&(e.intersectObject(a,!1,r),dc(a,e,r,!0)),o(a))}};return o(this),r}forEachEntity(e){for(let r of this.children)ze.is(r)&&e(r)}traverseConcreteEntity(e){for(let r of this.children)ze.is(r)&&r.isConcreteEntity&&r.traverseEntity(e)}traverseEntity(e){for(let r of this.children)ze.is(r)&&r.traverseEntity(e)}updateFont(e,r){this.traverseEntity(o=>{if(o instanceof ft&&o.data.type==="Mesh"&&(o.data.geometry.type==="TextGeometry"||o.data.geometry.type==="InputGeometry")&&o.data.geometry.font===e){let n=o.geometry,a=o.data.geometry;n.updateFont(e,r).then(()=>{n.update(a,r);let s=o.invalidateDownstreamBooleanData();oc(s)&&s.recomputeBoolean()})}})}traverseObject(e){for(let r of this.children)li.is(r)&&r.traverseObject(e)}traverseVisibleEntity(e){for(let r of this.children)ze.is(r)&&r.visible&&r.traverseVisibleEntity(e)}dispose(){this.clearScene()}createChildrenObjects(e,r,o){let n=0;for(let a of e)this.createObject(a.id,a.data,a.children,r,n,o),n+=1}registerObjectCreatedInLegacy(e){this.entityByUuid[e.uuid]=e}unregisterObject(e){delete this.entityByUuid[e.uuid];for(let r of e.children)this.unregisterObject(r)}createObject(e,r,o,n,a,s){let l={scene:this,shared:s},c=Jd(e,r,l);return c instanceof ln&&this.shapeBlendIntances.push(c),c&&(this.entityByUuid[e]=c,n.add(c),n.children.splice(a,0,n.children.pop()),o.length>0&&(c.isInstanceRoot?console.error("instance should not have children!"):this.createChildrenObjects(o,c,s)),c.updateState(r,l),c instanceof ft&&c.updateGeometryGroupsIfNeeded(),c.updateVisible(this),c.cloner&&this.toExpandCloner.add(c),r.pathSnapping?.pathId&&this.pathConstraints.setConstraint(e,r.pathSnapping.pathId)),r.type==="Empty"&&r.animations&&c.traverseEntity(u=>{let d=u.dataPatched;if(u instanceof ft&&d.bones&&d.boneInverses){let p=d.bones.map(m=>this.find(m)),f=d.boneInverses.map(m=>new to.Matrix4().fromArray(m)),h=new to.Skeleton(p,f);u.bind(h,u.bindMatrix)}else u.matrixAutoUpdate=!0}),c}getCenter(e){let r=[];for(let n=0,a=e.length;n<a;++n){let{id:s,recursive:l}=e[n],c=this.find(s),u=l?c.recursiveBBox:c.singleBBox;r.push(...u.vertices)}let o=new to.Box3;return o.setFromPoints(r),o.getCenter(Z1),Z1}copyMatrixWorld(e,r){if(e===null){r.identity();return}let o=this.find(e);o?r.copy(o.matrixWorld):r.identity()}copyParentMatrixWorld(e,r){if(e===null){r.identity();return}let o=this.find(e)?.parent;o?r.copy(o.matrixWorld):r.identity()}traverseMaterial(e){this.traverseEntity(r=>{if(r instanceof Wt)if(Array.isArray(r.material))for(let o=0;o<r.material.length;o++)r.material[o]instanceof Cr&&e(r.material[o]);else r.material instanceof Cr&&e(r.material)})}updateViewPlaneSize(e,r,o=!1){this.traverseConcreteEntity(n=>{n instanceof gi&&n.setViewplaneSize(e,r,o)})}initializeSplatViewer(){this.splatViewer=new fc({scene:this}),this.reloadSplats()}reloadSplats(){this.splatViewer?.loadSplat()}};var J1=require("three/examples/jsm/loaders/DRACOLoader.js");var pn;function eS(i){return pn||(pn=new J1.DRACOLoader,pn.setDecoderPath(i?`${i}/`:"https://www.gstatic.com/draco/versioned/decoders/1.5.2/").preload()),pn.decoderPending}async function CE(i){if(pn){let t={attributeIDs:pn.defaultAttributeIDs,attributeTypes:pn.defaultAttributeTypes,useUniqueIDs:!1},e;try{e=await pn.decodeGeometry(new Int8Array(i).buffer,t)}catch(r){console.error(r)}if(e)return{index:e.index?{array:e.index.array}:void 0,attributes:Object.entries(e.attributes).map(([r,o])=>({name:r,itemSize:o.itemSize,array:o.array}))}}return null}async function tS(i,t){let[e,r]=_p(du.deserialize(new Uint8Array(i)));return Eu(e),t&&t(e),r.result().data}function rS(i){let t=[];return i.scene.objects.traverse((e,r)=>{r.type==="Mesh"&&r.geometry.type==="NonParametricGeometry"&&r.geometry.data.draco!==void 0&&t.push(r)}),t}async function oS(i){for(let t of i){let e=await CE(t.geometry.data.draco);if(e){let r=t.geometry.data;e.index&&(r.index={array:e.index.array,itemSize:1,normalized:!1,type:"Uint32Array"});let o={};e.attributes.forEach(({name:n,array:a,itemSize:s})=>{o[n]={array:a,itemSize:s,type:"Float32Array",normalized:!1}}),r.attributes=o,r.draco=void 0}}}var AE=require("three"),ME=require("three/examples/jsm/utils/BufferGeometryUtils.js");function iS(i){let t;if(!!i.index)for(let e=0;e<i.index.array.length;e+=3)t=i.index.array[e],i.index.array[e]=i.index.array[e+2],i.index.array[e+2]=t}var hc=require("three");function nS(i){let t=new Set;return i.traverse(e=>{if(e instanceof Ar)if(Ct(e.material))e.material.forEach(r=>{let o=r;t.has(o)||t.add(o)});else{let r=e.material;t.has(r)||t.add(r)}}),t.forEach(e=>{if(e instanceof Array)return;let r=e.onBeforeCompile.bind(e);if(IE(e)){Object.assign(e,{isMeshStandardMaterial:!0,isMeshPhysicalMaterial:!0,transmission:1,attenuationColor:new hc.Color,specularColor:new hc.Color});let o=0;e.onBeforeCompile=(n,a)=>{r&&r(n,a),n.uniforms=Object.assign({},hc.ShaderLib.physical.uniforms,n.uniforms),e.getLayersOfType("transmission").forEach(s=>{if(n.uniforms.transmissionSamplerMap.value){let l=s.color;l&&(l.transmissionSamplerMap.value=n.uniforms.transmissionSamplerMap.value,l.transmissionSamplerSize.value=n.uniforms.transmissionSamplerSize.value,l.aspectRatio.value=Gb(window.innerWidth,window.innerHeight),e.defines.IS_THREEJS_EXPORT=!0)}else o++,o<2&&(e.needsUpdate=!0)})}}else EE(e)||(e.onBeforeCompile=(o,n)=>{r&&r(o,n),e.transparent=!1})}),i}function IE(i){return i.getLayersOfType("transmission").length>0}function EE(i){let t=0;for(let e of i.layers){if(e.data.type!=="displace"&&e.data.isMask)return!0;if(e.type!=="light"&&e.type!=="fresnel"){let o=e.uniforms["f"+e.id+"_alpha"];o&&(t+=(1-t)*o.value)}}return t<1}function aS(i){return i.traverse(t=>{if(t.type==="Camera"){let e=t;e.type=e.cameraType}}),i}function sS(i){let t=[],e=(r,o=0)=>{let n=o>0?r+o:r;return t.includes(n)?e(r,o+1):n};return i.traverse(r=>{if(t.includes(r.name)){let o=r.name,n=e(r.name);if(r.name=n,r.isMesh){let a=r;a.material instanceof Array?a.material.forEach(s=>{s.name=s.name.replace(o,n)}):a.material.isAsset||(a.material.name=a.material.name.replace(o,n))}}t.push(r.name)}),i}var lS=require("three/examples/jsm/utils/BufferGeometryUtils.js");function cS(i){let t=[];return i.traverse(e=>{e instanceof Ji&&t.push(e)}),t.forEach(e=>{let r=e.object,a=[...e.children.map(s=>{s.updateMatrix();let l;if(s.geometry!==void 0)try{l=s.geometry.clone().applyMatrix4(s.matrix)}catch(c){console.error(c)}return l!==void 0&&s.matrix.determinant()<0&&iS(l),l}).filter(s=>s!==void 0)];if(!e.parameters.hideBase&&r instanceof Wt&&a.unshift(r.geometry),a.length){let s=(0,lS.mergeBufferGeometries)(a);r instanceof Wt&&(r.geometry=s)}e.removeFromParent(),r.setFromClonerState(null,{scene:i,shared:iv})}),i}function uS(i){return i.traverse(t=>{t.matrixAutoUpdate=!0}),i}function dS(i){Object.values(i.shared.materials).forEach(t=>{em(t)}),i.scene.objects.traverse((t,e)=>{"material"in e?em(e.material):"materials"in e&&e.materials.forEach(r=>{em(r)})})}function em(i){if(typeof i=="string")return;let t=[];i.layers.forEach((e,r)=>{e.type==="outline"&&t.push(r)}),t.reverse().forEach(e=>{i.layers.delete(e)}),t.length&&console.warn("The Spline Loader currently does not support the outline layer.")}var mS=rl(fS(),1);var hS="The SplineLoader only accepts .splinecode files that are generated from Spline export panel.",lp=class extends cp.Loader{load(t,e,r,o=console.error){let n=new cp.FileLoader(this.manager);n.setPath(this.path),n.setResponseType("arraybuffer"),n.setRequestHeader(this.requestHeader),n.setWithCredentials(this.withCredentials),t.endsWith(".spline")?console.warn(hS+" The .spline files are only meant to be used by the Editor."):t.endsWith(".splinecode")||console.warn(hS),n.load(t,async a=>{try{if(typeof a=="string")throw new Error("The .spline file is not binary!");let s=await this.parse(a);e(s)}catch(s){o(s)}},r,o)}async parse(t){let e=await tS(t,dS),r=rS(e);e.version&&(0,mS.default)(e.version,"1.10.92")>0&&console.warn("Your .splinecode file is more recent than the library. Please upgrade @splinetool/loader to the latest version."),await Promise.allSettled([r.length&&eS(),cv(e)&&fb(),bv(e)&&Qb(),Jv(e)&&Kv(),np(e)&&Jh()].filter(Boolean)),r.length&&await oS(r);let o=!1,n=new Fn(e.shared,{},o);Object.values(n.getMaterials()).forEach(l=>Object.assign(l,{isAsset:!0}));let a=new sp(e.scene,n);np(e)&&a.initializeSplatViewer();let s=a.activeCamera;return s&&Object.assign(s,{makeDefault:!0}),a=cS(a),a=nS(a),a=aS(a),a=sS(a),a=uS(a),a}};