diff --git a/.output/nitro.json b/.output/nitro.json
deleted file mode 100644
index a451d60..0000000
--- a/.output/nitro.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "date": "2023-06-01T12:52:24.995Z",
- "preset": "node-server",
- "commands": {
- "preview": "node ./server/index.mjs"
- }
-}
\ No newline at end of file
diff --git a/.output/public/_nuxt/ProseCode.e63e49c6.css b/.output/public/_nuxt/ProseCode.e63e49c6.css
deleted file mode 100644
index 5662666..0000000
--- a/.output/public/_nuxt/ProseCode.e63e49c6.css
+++ /dev/null
@@ -1 +0,0 @@
-pre code .line{display:block;min-height:1rem}
diff --git a/.output/public/_nuxt/_plugin-vue_export-helper.c27b6911.js b/.output/public/_nuxt/_plugin-vue_export-helper.c27b6911.js
deleted file mode 100644
index 718edd3..0000000
--- a/.output/public/_nuxt/_plugin-vue_export-helper.c27b6911.js
+++ /dev/null
@@ -1 +0,0 @@
-const s=(t,r)=>{const o=t.__vccOpts||t;for(const[c,e]of r)o[c]=e;return o};export{s as _};
diff --git a/.output/public/_nuxt/cannon-es.73300c7b.js b/.output/public/_nuxt/cannon-es.73300c7b.js
deleted file mode 100644
index ca9dd29..0000000
--- a/.output/public/_nuxt/cannon-es.73300c7b.js
+++ /dev/null
@@ -1 +0,0 @@
-class Go{constructor(){this.matrix={}}get(t,e){let{id:s}=t,{id:i}=e;if(i>s){const n=i;i=s,s=n}return`${s}-${i}`in this.matrix}set(t,e,s){let{id:i}=t,{id:n}=e;if(n>i){const o=n;n=i,i=o}s?this.matrix[`${i}-${n}`]=!0:delete this.matrix[`${i}-${n}`]}reset(){this.matrix={}}setNumObjects(t){}}class et{constructor(t){t===void 0&&(t=[0,0,0,0,0,0,0,0,0]),this.elements=t}identity(){const t=this.elements;t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1}setZero(){const t=this.elements;t[0]=0,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=0,t[6]=0,t[7]=0,t[8]=0}setTrace(t){const e=this.elements;e[0]=t.x,e[4]=t.y,e[8]=t.z}getTrace(t){t===void 0&&(t=new l);const e=this.elements;return t.x=e[0],t.y=e[4],t.z=e[8],t}vmult(t,e){e===void 0&&(e=new l);const s=this.elements,i=t.x,n=t.y,o=t.z;return e.x=s[0]*i+s[1]*n+s[2]*o,e.y=s[3]*i+s[4]*n+s[5]*o,e.z=s[6]*i+s[7]*n+s[8]*o,e}smult(t){for(let e=0;e0){const n=1/i;this.x*=n,this.y*=n,this.z*=n}else this.x=0,this.y=0,this.z=0;return i}unit(t){t===void 0&&(t=new l);const e=this.x,s=this.y,i=this.z;let n=Math.sqrt(e*e+s*s+i*i);return n>0?(n=1/n,t.x=e*n,t.y=s*n,t.z=i*n):(t.x=1,t.y=0,t.z=0),t}length(){const t=this.x,e=this.y,s=this.z;return Math.sqrt(t*t+e*e+s*s)}lengthSquared(){return this.dot(this)}distanceTo(t){const e=this.x,s=this.y,i=this.z,n=t.x,o=t.y,r=t.z;return Math.sqrt((n-e)*(n-e)+(o-s)*(o-s)+(r-i)*(r-i))}distanceSquared(t){const e=this.x,s=this.y,i=this.z,n=t.x,o=t.y,r=t.z;return(n-e)*(n-e)+(o-s)*(o-s)+(r-i)*(r-i)}scale(t,e){e===void 0&&(e=new l);const s=this.x,i=this.y,n=this.z;return e.x=t*s,e.y=t*i,e.z=t*n,e}vmul(t,e){return e===void 0&&(e=new l),e.x=t.x*this.x,e.y=t.y*this.y,e.z=t.z*this.z,e}addScaledVector(t,e,s){return s===void 0&&(s=new l),s.x=this.x+t*e.x,s.y=this.y+t*e.y,s.z=this.z+t*e.z,s}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}isZero(){return this.x===0&&this.y===0&&this.z===0}negate(t){return t===void 0&&(t=new l),t.x=-this.x,t.y=-this.y,t.z=-this.z,t}tangents(t,e){const s=this.length();if(s>0){const i=$e,n=1/s;i.set(this.x*n,this.y*n,this.z*n);const o=Ze;Math.abs(i.x)<.9?(o.set(1,0,0),i.cross(o,t)):(o.set(0,1,0),i.cross(o,t)),i.cross(t,e)}else t.set(1,0,0),e.set(0,1,0)}toString(){return`${this.x},${this.y},${this.z}`}toArray(){return[this.x,this.y,this.z]}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}lerp(t,e,s){const i=this.x,n=this.y,o=this.z;s.x=i+(t.x-i)*e,s.y=n+(t.y-n)*e,s.z=o+(t.z-o)*e}almostEquals(t,e){return e===void 0&&(e=1e-6),!(Math.abs(this.x-t.x)>e||Math.abs(this.y-t.y)>e||Math.abs(this.z-t.z)>e)}almostZero(t){return t===void 0&&(t=1e-6),!(Math.abs(this.x)>t||Math.abs(this.y)>t||Math.abs(this.z)>t)}isAntiparallelTo(t,e){return this.negate(ae),ae.almostEquals(t,e)}clone(){return new l(this.x,this.y,this.z)}}l.ZERO=new l(0,0,0);l.UNIT_X=new l(1,0,0);l.UNIT_Y=new l(0,1,0);l.UNIT_Z=new l(0,0,1);const $e=new l,Ze=new l,ae=new l;class G{constructor(t){t===void 0&&(t={}),this.lowerBound=new l,this.upperBound=new l,t.lowerBound&&this.lowerBound.copy(t.lowerBound),t.upperBound&&this.upperBound.copy(t.upperBound)}setFromPoints(t,e,s,i){const n=this.lowerBound,o=this.upperBound,r=s;n.copy(t[0]),r&&r.vmult(n,n),o.copy(n);for(let c=1;co.x&&(o.x=a.x),a.xo.y&&(o.y=a.y),a.yo.z&&(o.z=a.z),a.z=n.x&&e.y<=i.y&&s.y>=n.y&&e.z<=i.z&&s.z>=n.z}getCorners(t,e,s,i,n,o,r,c){const a=this.lowerBound,h=this.upperBound;t.copy(a),e.set(h.x,a.y,a.z),s.set(h.x,h.y,a.z),i.set(a.x,h.y,h.z),n.set(h.x,a.y,h.z),o.set(a.x,h.y,a.z),r.set(a.x,a.y,h.z),c.copy(h)}toLocalFrame(t,e){const s=he,i=s[0],n=s[1],o=s[2],r=s[3],c=s[4],a=s[5],h=s[6],u=s[7];this.getCorners(i,n,o,r,c,a,h,u);for(let d=0;d!==8;d++){const f=s[d];t.pointToLocal(f,f)}return e.setFromPoints(s)}toWorldFrame(t,e){const s=he,i=s[0],n=s[1],o=s[2],r=s[3],c=s[4],a=s[5],h=s[6],u=s[7];this.getCorners(i,n,o,r,c,a,h,u);for(let d=0;d!==8;d++){const f=s[d];t.pointToWorld(f,f)}return e.setFromPoints(s)}overlapsRay(t){const{direction:e,from:s}=t,i=1/e.x,n=1/e.y,o=1/e.z,r=(this.lowerBound.x-s.x)*i,c=(this.upperBound.x-s.x)*i,a=(this.lowerBound.y-s.y)*n,h=(this.upperBound.y-s.y)*n,u=(this.lowerBound.z-s.z)*o,d=(this.upperBound.z-s.z)*o,f=Math.max(Math.max(Math.min(r,c),Math.min(a,h)),Math.min(u,d)),p=Math.min(Math.min(Math.max(r,c),Math.max(a,h)),Math.max(u,d));return!(p<0||f>p)}}const le=new l,he=[new l,new l,new l,new l,new l,new l,new l,new l];class de{constructor(){this.matrix=[]}get(t,e){let{index:s}=t,{index:i}=e;if(i>s){const n=i;i=s,s=n}return this.matrix[(s*(s+1)>>1)+i-1]}set(t,e,s){let{index:i}=t,{index:n}=e;if(n>i){const o=n;n=i,i=o}this.matrix[(i*(i+1)>>1)+n-1]=s?1:0}reset(){for(let t=0,e=this.matrix.length;t!==e;t++)this.matrix[t]=0}setNumObjects(t){this.matrix.length=t*(t-1)>>1}}class We{addEventListener(t,e){this._listeners===void 0&&(this._listeners={});const s=this._listeners;return s[t]===void 0&&(s[t]=[]),s[t].includes(e)||s[t].push(e),this}hasEventListener(t,e){if(this._listeners===void 0)return!1;const s=this._listeners;return!!(s[t]!==void 0&&s[t].includes(e))}hasAnyEventListener(t){return this._listeners===void 0?!1:this._listeners[t]!==void 0}removeEventListener(t,e){if(this._listeners===void 0)return this;const s=this._listeners;if(s[t]===void 0)return this;const i=s[t].indexOf(e);return i!==-1&&s[t].splice(i,1),this}dispatchEvent(t){if(this._listeners===void 0)return this;const s=this._listeners[t.type];if(s!==void 0){t.target=this;for(let i=0,n=s.length;i.499&&(s=2*Math.atan2(o,a),i=Math.PI/2,n=0),h<-.499&&(s=-2*Math.atan2(o,a),i=-Math.PI/2,n=0),s===void 0){const u=o*o,d=r*r,f=c*c;s=Math.atan2(2*r*a-2*o*c,1-2*d-2*f),i=Math.asin(2*h),n=Math.atan2(2*o*a-2*r*c,1-2*u-2*f)}break;default:throw new Error(`Euler order ${e} not supported yet.`)}t.y=s,t.z=i,t.x=n}setFromEuler(t,e,s,i){i===void 0&&(i="XYZ");const n=Math.cos(t/2),o=Math.cos(e/2),r=Math.cos(s/2),c=Math.sin(t/2),a=Math.sin(e/2),h=Math.sin(s/2);return i==="XYZ"?(this.x=c*o*r+n*a*h,this.y=n*a*r-c*o*h,this.z=n*o*h+c*a*r,this.w=n*o*r-c*a*h):i==="YXZ"?(this.x=c*o*r+n*a*h,this.y=n*a*r-c*o*h,this.z=n*o*h-c*a*r,this.w=n*o*r+c*a*h):i==="ZXY"?(this.x=c*o*r-n*a*h,this.y=n*a*r+c*o*h,this.z=n*o*h+c*a*r,this.w=n*o*r-c*a*h):i==="ZYX"?(this.x=c*o*r-n*a*h,this.y=n*a*r+c*o*h,this.z=n*o*h-c*a*r,this.w=n*o*r+c*a*h):i==="YZX"?(this.x=c*o*r+n*a*h,this.y=n*a*r+c*o*h,this.z=n*o*h-c*a*r,this.w=n*o*r-c*a*h):i==="XZY"&&(this.x=c*o*r-n*a*h,this.y=n*a*r-c*o*h,this.z=n*o*h+c*a*r,this.w=n*o*r+c*a*h),this}clone(){return new D(this.x,this.y,this.z,this.w)}slerp(t,e,s){s===void 0&&(s=new D);const i=this.x,n=this.y,o=this.z,r=this.w;let c=t.x,a=t.y,h=t.z,u=t.w,d,f,p,m,v;return f=i*c+n*a+o*h+r*u,f<0&&(f=-f,c=-c,a=-a,h=-h,u=-u),1-f>1e-6?(d=Math.acos(f),p=Math.sin(d),m=Math.sin((1-e)*d)/p,v=Math.sin(e*d)/p):(m=1-e,v=e),s.x=m*i+v*c,s.y=m*n+v*a,s.z=m*o+v*h,s.w=m*r+v*u,s}integrate(t,e,s,i){i===void 0&&(i=new D);const n=t.x*s.x,o=t.y*s.y,r=t.z*s.z,c=this.x,a=this.y,h=this.z,u=this.w,d=e*.5;return i.x+=d*(n*u+o*h-r*a),i.y+=d*(o*u+r*c-n*h),i.z+=d*(r*u+n*a-o*c),i.w+=d*(-n*c-o*a-r*h),i}}const Ke=new l,Qe=new l,Je={SPHERE:1,PLANE:2,BOX:4,COMPOUND:8,CONVEXPOLYHEDRON:16,HEIGHTFIELD:32,PARTICLE:64,CYLINDER:128,TRIMESH:256};class S{constructor(t){t===void 0&&(t={}),this.id=S.idCounter++,this.type=t.type||0,this.boundingSphereRadius=0,this.collisionResponse=t.collisionResponse?t.collisionResponse:!0,this.collisionFilterGroup=t.collisionFilterGroup!==void 0?t.collisionFilterGroup:1,this.collisionFilterMask=t.collisionFilterMask!==void 0?t.collisionFilterMask:-1,this.material=t.material?t.material:null,this.body=null}updateBoundingSphereRadius(){throw`computeBoundingSphereRadius() not implemented for shape type ${this.type}`}volume(){throw`volume() not implemented for shape type ${this.type}`}calculateLocalInertia(t,e){throw`calculateLocalInertia() not implemented for shape type ${this.type}`}calculateWorldAABB(t,e,s,i){throw`calculateWorldAABB() not implemented for shape type ${this.type}`}}S.idCounter=0;S.types=Je;class j{constructor(t){t===void 0&&(t={}),this.position=new l,this.quaternion=new D,t.position&&this.position.copy(t.position),t.quaternion&&this.quaternion.copy(t.quaternion)}pointToLocal(t,e){return j.pointToLocalFrame(this.position,this.quaternion,t,e)}pointToWorld(t,e){return j.pointToWorldFrame(this.position,this.quaternion,t,e)}vectorToWorldFrame(t,e){return e===void 0&&(e=new l),this.quaternion.vmult(t,e),e}static pointToLocalFrame(t,e,s,i){return i===void 0&&(i=new l),s.vsub(t,i),e.conjugate(ue),ue.vmult(i,i),i}static pointToWorldFrame(t,e,s,i){return i===void 0&&(i=new l),e.vmult(s,i),i.vadd(t,i),i}static vectorToWorldFrame(t,e,s){return s===void 0&&(s=new l),t.vmult(e,s),s}static vectorToLocalFrame(t,e,s,i){return i===void 0&&(i=new l),e.w*=-1,e.vmult(s,i),e.w*=-1,i}}const ue=new D;class vt extends S{constructor(t){t===void 0&&(t={});const{vertices:e=[],faces:s=[],normals:i=[],axes:n,boundingSphereRadius:o}=t;super({type:S.types.CONVEXPOLYHEDRON}),this.vertices=e,this.faces=s,this.faceNormals=i,this.faceNormals.length===0&&this.computeNormals(),o?this.boundingSphereRadius=o:this.updateBoundingSphereRadius(),this.worldVertices=[],this.worldVerticesNeedsUpdate=!0,this.worldFaceNormals=[],this.worldFaceNormalsNeedsUpdate=!0,this.uniqueAxes=n?n.slice():null,this.uniqueEdges=[],this.computeEdges()}computeEdges(){const t=this.faces,e=this.vertices,s=this.uniqueEdges;s.length=0;const i=new l;for(let n=0;n!==t.length;n++){const o=t[n],r=o.length;for(let c=0;c!==r;c++){const a=(c+1)%r;e[o[c]].vsub(e[o[a]],i),i.normalize();let h=!1;for(let u=0;u!==s.length;u++)if(s[u].almostEquals(i)||s[u].almostEquals(i)){h=!0;break}h||s.push(i.clone())}}}computeNormals(){this.faceNormals.length=this.faces.length;for(let t=0;td&&(d=m,u=p)}const f=[];for(let p=0;p=0&&this.clipFaceAgainstHull(o,t,e,f,r,c,a)}findSeparatingAxis(t,e,s,i,n,o,r,c){const a=new l,h=new l,u=new l,d=new l,f=new l,p=new l;let m=Number.MAX_VALUE;const v=this;if(v.uniqueAxes)for(let w=0;w!==v.uniqueAxes.length;w++){s.vmult(v.uniqueAxes[w],a);const y=v.testSepAxis(a,t,e,s,i,n);if(y===!1)return!1;y0&&o.negate(o),!0}testSepAxis(t,e,s,i,n,o){const r=this;vt.project(r,t,s,i,$t),vt.project(e,t,n,o,Zt);const c=$t[0],a=$t[1],h=Zt[0],u=Zt[1];if(ce.x&&(e.x=n.x),n.ye.y&&(e.y=n.y),n.ze.z&&(e.z=n.z)}}computeWorldFaceNormals(t){const e=this.faceNormals.length;for(;this.worldFaceNormals.lengtht&&(t=i)}this.boundingSphereRadius=Math.sqrt(t)}calculateWorldAABB(t,e,s,i){const n=this.vertices;let o,r,c,a,h,u,d=new l;for(let f=0;fa)&&(a=p.x),(r===void 0||p.yh)&&(h=p.y),(c===void 0||p.zu)&&(u=p.z)}s.set(o,r,c),i.set(a,h,u)}volume(){return 4*Math.PI*this.boundingSphereRadius/3}getAveragePointLocal(t){t===void 0&&(t=new l);const e=this.vertices;for(let s=0;s0||u>0&&f<0)return!1}return n?1:-1}static project(t,e,s,i,n){const o=t.vertices.length,r=es;let c=0,a=0;const h=ss,u=t.vertices;h.setZero(),j.vectorToLocalFrame(s,i,e,r),j.pointToLocalFrame(s,i,h,h);const d=h.dot(r);a=c=u[0].dot(r);for(let f=1;fc&&(c=p),pc){const f=a;a=c,c=f}n[0]=c,n[1]=a}}const $t=[],Zt=[],ts=new l,es=new l,ss=new l;class Dt extends S{constructor(t){super({type:S.types.BOX}),this.halfExtents=t,this.convexPolyhedronRepresentation=null,this.updateConvexPolyhedronRepresentation(),this.updateBoundingSphereRadius()}updateConvexPolyhedronRepresentation(){const t=this.halfExtents.x,e=this.halfExtents.y,s=this.halfExtents.z,i=l,n=[new i(-t,-e,-s),new i(t,-e,-s),new i(t,e,-s),new i(-t,e,-s),new i(-t,-e,s),new i(t,-e,s),new i(t,e,s),new i(-t,e,s)],o=[[3,2,1,0],[4,5,6,7],[5,4,0,1],[2,3,7,6],[0,4,7,3],[1,2,6,5]],r=[new i(0,0,1),new i(0,1,0),new i(1,0,0)],c=new vt({vertices:n,faces:o,axes:r});this.convexPolyhedronRepresentation=c,c.material=this.material}calculateLocalInertia(t,e){return e===void 0&&(e=new l),Dt.calculateInertia(this.halfExtents,t,e),e}static calculateInertia(t,e,s){const i=t;s.x=1/12*e*(2*i.y*2*i.y+2*i.z*2*i.z),s.y=1/12*e*(2*i.x*2*i.x+2*i.z*2*i.z),s.z=1/12*e*(2*i.y*2*i.y+2*i.x*2*i.x)}getSideNormals(t,e){const s=t,i=this.halfExtents;if(s[0].set(i.x,0,0),s[1].set(0,i.y,0),s[2].set(0,0,i.z),s[3].set(-i.x,0,0),s[4].set(0,-i.y,0),s[5].set(0,0,-i.z),e!==void 0)for(let n=0;n!==s.length;n++)e.vmult(s[n],s[n]);return s}volume(){return 8*this.halfExtents.x*this.halfExtents.y*this.halfExtents.z}updateBoundingSphereRadius(){this.boundingSphereRadius=this.halfExtents.length()}forEachWorldCorner(t,e,s){const i=this.halfExtents,n=[[i.x,i.y,i.z],[-i.x,i.y,i.z],[-i.x,-i.y,i.z],[-i.x,-i.y,-i.z],[i.x,-i.y,-i.z],[i.x,i.y,-i.z],[-i.x,i.y,-i.z],[i.x,-i.y,i.z]];for(let o=0;oi.x&&(i.x=a),h>i.y&&(i.y=h),u>i.z&&(i.z=u),a0?1/e:0,this.material=t.material||null,this.linearDamping=typeof t.linearDamping=="number"?t.linearDamping:.01,this.type=e<=0?M.STATIC:M.DYNAMIC,typeof t.type==typeof M.STATIC&&(this.type=t.type),this.allowSleep=typeof t.allowSleep<"u"?t.allowSleep:!0,this.sleepState=M.AWAKE,this.sleepSpeedLimit=typeof t.sleepSpeedLimit<"u"?t.sleepSpeedLimit:.1,this.sleepTimeLimit=typeof t.sleepTimeLimit<"u"?t.sleepTimeLimit:1,this.timeLastSleepy=0,this.wakeUpAfterNarrowphase=!1,this.torque=new l,this.quaternion=new D,this.initQuaternion=new D,this.previousQuaternion=new D,this.interpolatedQuaternion=new D,t.quaternion&&(this.quaternion.copy(t.quaternion),this.initQuaternion.copy(t.quaternion),this.previousQuaternion.copy(t.quaternion),this.interpolatedQuaternion.copy(t.quaternion)),this.angularVelocity=new l,t.angularVelocity&&this.angularVelocity.copy(t.angularVelocity),this.initAngularVelocity=new l,this.shapes=[],this.shapeOffsets=[],this.shapeOrientations=[],this.inertia=new l,this.invInertia=new l,this.invInertiaWorld=new et,this.invMassSolve=0,this.invInertiaSolve=new l,this.invInertiaWorldSolve=new et,this.fixedRotation=typeof t.fixedRotation<"u"?t.fixedRotation:!1,this.angularDamping=typeof t.angularDamping<"u"?t.angularDamping:.01,this.linearFactor=new l(1,1,1),t.linearFactor&&this.linearFactor.copy(t.linearFactor),this.angularFactor=new l(1,1,1),t.angularFactor&&this.angularFactor.copy(t.angularFactor),this.aabb=new G,this.aabbNeedsUpdate=!0,this.boundingRadius=0,this.wlambda=new l,this.isTrigger=!!t.isTrigger,t.shape&&this.addShape(t.shape),this.updateMassProperties()}wakeUp(){const t=this.sleepState;this.sleepState=M.AWAKE,this.wakeUpAfterNarrowphase=!1,t===M.SLEEPING&&this.dispatchEvent(M.wakeupEvent)}sleep(){this.sleepState=M.SLEEPING,this.velocity.set(0,0,0),this.angularVelocity.set(0,0,0),this.wakeUpAfterNarrowphase=!1}sleepTick(t){if(this.allowSleep){const e=this.sleepState,s=this.velocity.lengthSquared()+this.angularVelocity.lengthSquared(),i=this.sleepSpeedLimit**2;e===M.AWAKE&&si?this.wakeUp():e===M.SLEEPY&&t-this.timeLastSleepy>this.sleepTimeLimit&&(this.sleep(),this.dispatchEvent(M.sleepEvent))}}updateSolveMassProperties(){this.sleepState===M.SLEEPING||this.type===M.KINEMATIC?(this.invMassSolve=0,this.invInertiaSolve.setZero(),this.invInertiaWorldSolve.setZero()):(this.invMassSolve=this.invMass,this.invInertiaSolve.copy(this.invInertia),this.invInertiaWorldSolve.copy(this.invInertiaWorld))}pointToLocalFrame(t,e){return e===void 0&&(e=new l),t.vsub(this.position,e),this.quaternion.conjugate().vmult(e,e),e}vectorToLocalFrame(t,e){return e===void 0&&(e=new l),this.quaternion.conjugate().vmult(t,e),e}pointToWorldFrame(t,e){return e===void 0&&(e=new l),this.quaternion.vmult(t,e),e.vadd(this.position,e),e}vectorToWorldFrame(t,e){return e===void 0&&(e=new l),this.quaternion.vmult(t,e),e}addShape(t,e,s){const i=new l,n=new D;return e&&i.copy(e),s&&n.copy(s),this.shapes.push(t),this.shapeOffsets.push(i),this.shapeOrientations.push(n),this.updateMassProperties(),this.updateBoundingRadius(),this.aabbNeedsUpdate=!0,t.body=this,this}removeShape(t){const e=this.shapes.indexOf(t);return e===-1?(console.warn("Shape does not belong to the body"),this):(this.shapes.splice(e,1),this.shapeOffsets.splice(e,1),this.shapeOrientations.splice(e,1),this.updateMassProperties(),this.updateBoundingRadius(),this.aabbNeedsUpdate=!0,t.body=null,this)}updateBoundingRadius(){const t=this.shapes,e=this.shapeOffsets,s=t.length;let i=0;for(let n=0;n!==s;n++){const o=t[n];o.updateBoundingSphereRadius();const r=e[n].length(),c=o.boundingSphereRadius;r+c>i&&(i=r+c)}this.boundingRadius=i}updateAABB(){const t=this.shapes,e=this.shapeOffsets,s=this.shapeOrientations,i=t.length,n=is,o=ns,r=this.quaternion,c=this.aabb,a=os;for(let h=0;h!==i;h++){const u=t[h];r.vmult(e[h],n),n.vadd(this.position,n),r.mult(s[h],o),u.calculateWorldAABB(n,o,a.lowerBound,a.upperBound),h===0?c.copy(a):c.extend(a)}this.aabbNeedsUpdate=!1}updateInertiaWorld(t){const e=this.invInertia;if(!(e.x===e.y&&e.y===e.z&&!t)){const s=rs,i=cs;s.setRotationFromQuaternion(this.quaternion),s.transpose(i),s.scale(e,s),s.mmult(i,this.invInertiaWorld)}}applyForce(t,e){if(e===void 0&&(e=new l),this.type!==M.DYNAMIC)return;this.sleepState===M.SLEEPING&&this.wakeUp();const s=ls;e.cross(t,s),this.force.vadd(t,this.force),this.torque.vadd(s,this.torque)}applyLocalForce(t,e){if(e===void 0&&(e=new l),this.type!==M.DYNAMIC)return;const s=hs,i=ds;this.vectorToWorldFrame(t,s),this.vectorToWorldFrame(e,i),this.applyForce(s,i)}applyTorque(t){this.type===M.DYNAMIC&&(this.sleepState===M.SLEEPING&&this.wakeUp(),this.torque.vadd(t,this.torque))}applyImpulse(t,e){if(e===void 0&&(e=new l),this.type!==M.DYNAMIC)return;this.sleepState===M.SLEEPING&&this.wakeUp();const s=e,i=us;i.copy(t),i.scale(this.invMass,i),this.velocity.vadd(i,this.velocity);const n=ps;s.cross(t,n),this.invInertiaWorld.vmult(n,n),this.angularVelocity.vadd(n,this.angularVelocity)}applyLocalImpulse(t,e){if(e===void 0&&(e=new l),this.type!==M.DYNAMIC)return;const s=fs,i=ms;this.vectorToWorldFrame(t,s),this.vectorToWorldFrame(e,i),this.applyImpulse(s,i)}updateMassProperties(){const t=vs;this.invMass=this.mass>0?1/this.mass:0;const e=this.inertia,s=this.fixedRotation;this.updateAABB(),t.set((this.aabb.upperBound.x-this.aabb.lowerBound.x)/2,(this.aabb.upperBound.y-this.aabb.lowerBound.y)/2,(this.aabb.upperBound.z-this.aabb.lowerBound.z)/2),Dt.calculateInertia(t,this.mass,e),this.invInertia.set(e.x>0&&!s?1/e.x:0,e.y>0&&!s?1/e.y:0,e.z>0&&!s?1/e.z:0),this.updateInertiaWorld(!0)}getVelocityAtWorldPoint(t,e){const s=new l;return t.vsub(this.position,s),this.angularVelocity.cross(s,e),this.velocity.vadd(e,e),e}integrate(t,e,s){if(this.previousPosition.copy(this.position),this.previousQuaternion.copy(this.quaternion),!(this.type===M.DYNAMIC||this.type===M.KINEMATIC)||this.sleepState===M.SLEEPING)return;const i=this.velocity,n=this.angularVelocity,o=this.position,r=this.force,c=this.torque,a=this.quaternion,h=this.invMass,u=this.invInertiaWorld,d=this.linearFactor,f=h*t;i.x+=r.x*f*d.x,i.y+=r.y*f*d.y,i.z+=r.z*f*d.z;const p=u.elements,m=this.angularFactor,v=c.x*m.x,w=c.y*m.y,y=c.z*m.z;n.x+=t*(p[0]*v+p[1]*w+p[2]*y),n.y+=t*(p[3]*v+p[4]*w+p[5]*y),n.z+=t*(p[6]*v+p[7]*w+p[8]*y),o.x+=i.x*t,o.y+=i.y*t,o.z+=i.z*t,a.integrate(this.angularVelocity,t,this.angularFactor,a),e&&(s?a.normalizeFast():a.normalize()),this.aabbNeedsUpdate=!0,this.updateInertiaWorld()}}M.idCounter=0;M.COLLIDE_EVENT_NAME="collide";M.DYNAMIC=se.DYNAMIC;M.STATIC=se.STATIC;M.KINEMATIC=se.KINEMATIC;M.AWAKE=ie.AWAKE;M.SLEEPY=ie.SLEEPY;M.SLEEPING=ie.SLEEPING;M.wakeupEvent={type:"wakeup"};M.sleepyEvent={type:"sleepy"};M.sleepEvent={type:"sleep"};const is=new l,ns=new D,os=new G,rs=new et,cs=new et,as=new et,ls=new l,hs=new l,ds=new l,us=new l,ps=new l,fs=new l,ms=new l,vs=new l;class ne{constructor(){this.world=null,this.useBoundingBoxes=!1,this.dirty=!0}collisionPairs(t,e,s){throw new Error("collisionPairs not implemented for this BroadPhase class!")}needBroadphaseCollision(t,e){return!(!(t.collisionFilterGroup&e.collisionFilterMask)||!(e.collisionFilterGroup&t.collisionFilterMask)||(t.type&M.STATIC||t.sleepState===M.SLEEPING)&&(e.type&M.STATIC||e.sleepState===M.SLEEPING))}intersectionTest(t,e,s,i){this.useBoundingBoxes?this.doBoundingBoxBroadphase(t,e,s,i):this.doBoundingSphereBroadphase(t,e,s,i)}doBoundingSphereBroadphase(t,e,s,i){const n=ys;e.position.vsub(t.position,n);const o=(t.boundingRadius+e.boundingRadius)**2;n.lengthSquared()s.lengthSquared()}aabbQuery(t,e,s){return console.warn(".aabbQuery is not implemented in this Broadphase subclass."),[]}}const ys=new l;new l;new D;new l;const ws={keys:[]},xs=[],gs=[];new l;class Do extends ne{constructor(t,e,s,i,n){t===void 0&&(t=new l(100,100,100)),e===void 0&&(e=new l(-100,-100,-100)),s===void 0&&(s=10),i===void 0&&(i=10),n===void 0&&(n=10),super(),this.nx=s,this.ny=i,this.nz=n,this.aabbMin=t,this.aabbMax=e;const o=this.nx*this.ny*this.nz;if(o<=0)throw"GridBroadphase: Each dimension's n must be >0";this.bins=[],this.binLengths=[],this.bins.length=o,this.binLengths.length=o;for(let r=0;r=c&&(U=c-1),$<0?$=0:$>=a&&($=a-1),rt<0?rt=0:rt>=h&&(rt=h-1),ct<0?ct=0:ct>=c&&(ct=c-1),at<0?at=0:at>=a&&(at=a-1),lt<0?lt=0:lt>=h&&(lt=h-1),U*=u,$*=d,rt*=f,ct*=u,at*=d,lt*=f;for(let At=U;At<=ct;At+=u)for(let Bt=$;Bt<=at;Bt+=d)for(let Et=rt;Et<=lt;Et+=f){const ce=At+Bt+Et;F[ce][C[ce]++]=Q}}for(let R=0;R!==i;R++){const W=n[R],O=W.shapes[0];switch(O.type){case V:{const N=O,Z=W.position.x,K=W.position.y,Q=W.position.z,U=N.radius;L(Z-U,K-U,Q-U,Z+U,K+U,Q+U,W);break}case b:{const N=O;N.worldNormalNeedsUpdate&&N.computeWorldNormal(W.quaternion);const Z=N.worldNormal,K=w+I*.5-W.position.x,Q=y+_*.5-W.position.y,U=x+q*.5-W.position.z,$=bs;$.set(K,Q,U);for(let rt=0,ct=0;rt!==c;rt++,ct+=u,$.y=Q,$.x+=I)for(let at=0,lt=0;at!==a;at++,lt+=d,$.z=U,$.y+=_)for(let At=0,Bt=0;At!==h;At++,Bt+=f,$.z+=q)if($.dot(Z)1){const O=F[R];for(let N=0;N!==W;N++){const Z=O[N];for(let K=0;K!==N;K++){const Q=O[K];this.needBroadphaseCollision(Z,Q)&&this.intersectionTest(Z,Q,e,s)}}}}this.makePairsUnique(e,s)}}const bs=new l;new l;class As extends ne{constructor(){super()}collisionPairs(t,e,s){const i=t.bodies,n=i.length;let o,r;for(let c=0;c!==n;c++)for(let a=0;a!==c;a++)o=i[c],r=i[a],this.needBroadphaseCollision(o,r)&&this.intersectionTest(o,r,e,s)}aabbQuery(t,e,s){s===void 0&&(s=[]);for(let i=0;i{}}intersectWorld(t,e){return this.mode=e.mode||Y.ANY,this.result=e.result||new Rt,this.skipBackfaces=!!e.skipBackfaces,this.collisionFilterMask=typeof e.collisionFilterMask<"u"?e.collisionFilterMask:-1,this.collisionFilterGroup=typeof e.collisionFilterGroup<"u"?e.collisionFilterGroup:-1,this.checkCollisionResponse=typeof e.checkCollisionResponse<"u"?e.checkCollisionResponse:!0,e.from&&this.from.copy(e.from),e.to&&this.to.copy(e.to),this.callback=e.callback||(()=>{}),this.hasHit=!1,this.result.reset(),this.updateDirection(),this.getAABB(pe),Kt.length=0,t.broadphase.aabbQuery(t,pe,Kt),this.intersectBodies(Kt),this.hasHit}intersectBody(t,e){e&&(this.result=e,this.updateDirection());const s=this.checkCollisionResponse;if(s&&!t.collisionResponse||!(this.collisionFilterGroup&t.collisionFilterMask)||!(t.collisionFilterGroup&this.collisionFilterMask))return;const i=Bs,n=Es;for(let o=0,r=t.shapes.length;ot.boundingSphereRadius)return;const r=this[t.type];r&&r.call(this,t,e,s,i,t)}_intersectBox(t,e,s,i,n){return this._intersectConvex(t.convexPolyhedronRepresentation,e,s,i,n)}_intersectPlane(t,e,s,i,n){const o=this.from,r=this.to,c=this.direction,a=new l(0,0,1);e.vmult(a,a);const h=new l;o.vsub(s,h);const u=h.dot(a);r.vsub(s,h);const d=h.dot(a);if(u*d>0||o.distanceTo(r)=0&&m<=1&&(o.lerp(r,m,f),f.vsub(s,p),p.normalize(),this.reportIntersection(p,f,n,i,-1)),this.result.shouldStop)return;v>=0&&v<=1&&(o.lerp(r,v,f),f.vsub(s,p),p.normalize(),this.reportIntersection(p,f,n,i,-1))}}_intersectConvex(t,e,s,i,n,o){const r=Is,c=me,a=o&&o.faceList||null,h=t.faces,u=t.vertices,d=t.faceNormals,f=this.direction,p=this.from,m=this.to,v=p.distanceTo(m),w=a?a.length:h.length,y=this.result;for(let x=0;!y.shouldStop&&xv||this.reportIntersection(r,J,n,i,g)}}}}_intersectTrimesh(t,e,s,i,n,o){const r=_s,c=Ws,a=Vs,h=me,u=Ts,d=Rs,f=Ps,p=Ls,m=qs,v=t.indices;t.vertices;const w=this.from,y=this.to,x=this.direction;a.position.copy(s),a.quaternion.copy(e),j.vectorToLocalFrame(s,e,x,u),j.pointToLocalFrame(s,e,w,d),j.pointToLocalFrame(s,e,y,f),f.x*=t.scale.x,f.y*=t.scale.y,f.z*=t.scale.z,d.x*=t.scale.x,d.y*=t.scale.y,d.z*=t.scale.z,f.vsub(d,u),u.normalize();const g=d.distanceSquared(f);t.tree.rayQuery(this,a,c);for(let A=0,E=c.length;!this.result.shouldStop&&A!==E;A++){const I=c[A];t.getNormal(I,r),t.getVertex(v[I*3],tt),tt.vsub(d,h);const _=u.dot(r),q=r.dot(h)/_;if(q<0)continue;u.scale(q,J),J.vadd(d,J),t.getVertex(v[I*3+1],it),t.getVertex(v[I*3+2],nt);const T=J.distanceSquared(d);!(Y.pointInTriangle(J,it,tt,nt)||Y.pointInTriangle(J,tt,it,nt))||T>g||(j.vectorToWorldFrame(e,r,m),j.pointToWorldFrame(s,e,J,p),this.reportIntersection(m,p,n,i,I))}c.length=0}reportIntersection(t,e,s,i,n){const o=this.from,r=this.to,c=o.distanceTo(e),a=this.result;if(!(this.skipBackfaces&&t.dot(this.direction)>0))switch(a.hitFaceIndex=typeof n<"u"?n:-1,this.mode){case Y.ALL:this.hasHit=!0,a.set(o,r,t,e,s,i,c),a.hasHit=!0,this.callback(a);break;case Y.CLOSEST:(c=0&&(u=n*a-o*r)>=0&&h+u=0&&!(t[n].aabb.lowerBound.x<=i.aabb.lowerBound.x);n--)t[n+1]=t[n];t[n+1]=i}return t}static insertionSortY(t){for(let e=1,s=t.length;e=0&&!(t[n].aabb.lowerBound.y<=i.aabb.lowerBound.y);n--)t[n+1]=t[n];t[n+1]=i}return t}static insertionSortZ(t){for(let e=1,s=t.length;e=0&&!(t[n].aabb.lowerBound.z<=i.aabb.lowerBound.z);n--)t[n+1]=t[n];t[n+1]=i}return t}constructor(t){super(),this.axisList=[],this.world=null,this.axisIndex=0;const e=this.axisList;this._addBodyHandler=s=>{e.push(s.body)},this._removeBodyHandler=s=>{const i=e.indexOf(s.body);i!==-1&&e.splice(i,1)},t&&this.setWorld(t)}setWorld(t){this.axisList.length=0;for(let e=0;eu?h>d?this.axisIndex=0:this.axisIndex=2:u>d?this.axisIndex=1:this.axisIndex=2}aabbQuery(t,e,s){s===void 0&&(s=[]),this.dirty&&(this.sortList(),this.dirty=!1);const i=this.axisIndex;let n="x";i===1&&(n="y"),i===2&&(n="z");const o=this.axisList;e.lowerBound[n],e.upperBound[n];for(let r=0;r"u"&&(s=t.position.distanceTo(e.position)),this.distance=s;const n=this.distanceEquation=new Tt(t,e);this.equations.push(n),n.minForce=-i,n.maxForce=i}update(){const t=this.bodyA,e=this.bodyB,s=this.distanceEquation,i=this.distance*.5,n=s.ni;e.position.vsub(t.position,n),n.normalize(),n.scale(i,s.ri),n.scale(-i,s.rj)}}class Xo extends re{constructor(t,e,s){s===void 0&&(s={});const i=typeof s.maxForce<"u"?s.maxForce:1e6,n=new l,o=new l,r=new l;t.position.vadd(e.position,r),r.scale(.5,r),e.pointToLocalFrame(r,o),t.pointToLocalFrame(r,n),super(t,n,e,o,i),this.xA=t.vectorToLocalFrame(l.UNIT_X),this.xB=e.vectorToLocalFrame(l.UNIT_X),this.yA=t.vectorToLocalFrame(l.UNIT_Y),this.yB=e.vectorToLocalFrame(l.UNIT_Y),this.zA=t.vectorToLocalFrame(l.UNIT_Z),this.zB=e.vectorToLocalFrame(l.UNIT_Z);const c=this.rotationalEquation1=new St(t,e,s),a=this.rotationalEquation2=new St(t,e,s),h=this.rotationalEquation3=new St(t,e,s);this.equations.push(c,a,h)}update(){const t=this.bodyA,e=this.bodyB;this.motorEquation;const s=this.rotationalEquation1,i=this.rotationalEquation2,n=this.rotationalEquation3;super.update(),t.vectorToWorldFrame(this.xA,s.axisA),e.vectorToWorldFrame(this.yB,s.axisB),t.vectorToWorldFrame(this.yA,i.axisA),e.vectorToWorldFrame(this.zB,i.axisB),t.vectorToWorldFrame(this.zA,n.axisA),e.vectorToWorldFrame(this.xB,n.axisB)}}const ei=new l,si=new l;class ii extends yt{constructor(t,e,s){s===void 0&&(s=1e6),super(t,e,-s,s),this.axisA=new l,this.axisB=new l,this.targetVelocity=0}computeB(t){this.a;const e=this.b;this.bi,this.bj;const s=this.axisA,i=this.axisB,n=this.jacobianElementA,o=this.jacobianElementB;n.rotational.copy(s),i.negate(o.rotational);const r=this.computeGW()-this.targetVelocity,c=this.computeGiMf();return-r*e-t*c}}class ni extends re{constructor(t,e,s){s===void 0&&(s={});const i=typeof s.maxForce<"u"?s.maxForce:1e6,n=s.pivotA?s.pivotA.clone():new l,o=s.pivotB?s.pivotB.clone():new l;super(t,n,e,o,i),(this.axisA=s.axisA?s.axisA.clone():new l(1,0,0)).normalize(),(this.axisB=s.axisB?s.axisB.clone():new l(1,0,0)).normalize(),this.collideConnected=!!s.collideConnected;const a=this.rotationalEquation1=new St(t,e,s),h=this.rotationalEquation2=new St(t,e,s),u=this.motorEquation=new ii(t,e,i);u.enabled=!1,this.equations.push(a,h,u)}enableMotor(){this.motorEquation.enabled=!0}disableMotor(){this.motorEquation.enabled=!1}setMotorSpeed(t){this.motorEquation.targetVelocity=t}setMotorMaxForce(t){this.motorEquation.maxForce=t,this.motorEquation.minForce=-t}update(){const t=this.bodyA,e=this.bodyB,s=this.motorEquation,i=this.rotationalEquation1,n=this.rotationalEquation2,o=oi,r=ri,c=this.axisA,a=this.axisB;super.update(),t.quaternion.vmult(c,o),e.quaternion.vmult(a,r),o.tangents(i.axisA,n.axisA),i.axisB.copy(r),n.axisB.copy(r),this.motorEquation.enabled&&(t.quaternion.vmult(this.axisA,s.axisA),e.quaternion.vmult(this.axisB,s.axisB))}}const oi=new l,ri=new l;class be extends yt{constructor(t,e,s){super(t,e,-s,s),this.ri=new l,this.rj=new l,this.t=new l}computeB(t){this.a;const e=this.b;this.bi,this.bj;const s=this.ri,i=this.rj,n=ci,o=ai,r=this.t;s.cross(r,n),i.cross(r,o);const c=this.jacobianElementA,a=this.jacobianElementB;r.negate(c.spatial),n.negate(c.rotational),a.spatial.copy(r),a.rotational.copy(o);const h=this.computeGW(),u=this.computeGiMf();return-h*e-t*u}}const ci=new l,ai=new l;class Yt{constructor(t,e,s){s=Ut.defaults(s,{friction:.3,restitution:.3,contactEquationStiffness:1e7,contactEquationRelaxation:3,frictionEquationStiffness:1e7,frictionEquationRelaxation:3}),this.id=Yt.idCounter++,this.materials=[t,e],this.friction=s.friction,this.restitution=s.restitution,this.contactEquationStiffness=s.contactEquationStiffness,this.contactEquationRelaxation=s.contactEquationRelaxation,this.frictionEquationStiffness=s.frictionEquationStiffness,this.frictionEquationRelaxation=s.frictionEquationRelaxation}}Yt.idCounter=0;class Xt{constructor(t){t===void 0&&(t={});let e="";typeof t=="string"&&(e=t,t={}),this.name=e,this.id=Xt.idCounter++,this.friction=typeof t.friction<"u"?t.friction:-1,this.restitution=typeof t.restitution<"u"?t.restitution:-1}}Xt.idCounter=0;class $o{constructor(t,e,s){s===void 0&&(s={}),this.restLength=typeof s.restLength=="number"?s.restLength:1,this.stiffness=s.stiffness||100,this.damping=s.damping||1,this.bodyA=t,this.bodyB=e,this.localAnchorA=new l,this.localAnchorB=new l,s.localAnchorA&&this.localAnchorA.copy(s.localAnchorA),s.localAnchorB&&this.localAnchorB.copy(s.localAnchorB),s.worldAnchorA&&this.setWorldAnchorA(s.worldAnchorA),s.worldAnchorB&&this.setWorldAnchorB(s.worldAnchorB)}setWorldAnchorA(t){this.bodyA.pointToLocalFrame(t,this.localAnchorA)}setWorldAnchorB(t){this.bodyB.pointToLocalFrame(t,this.localAnchorB)}getWorldAnchorA(t){this.bodyA.pointToWorldFrame(this.localAnchorA,t)}getWorldAnchorB(t){this.bodyB.pointToWorldFrame(this.localAnchorB,t)}applyForce(){const t=this.stiffness,e=this.damping,s=this.restLength,i=this.bodyA,n=this.bodyB,o=li,r=hi,c=di,a=ui,h=xi,u=pi,d=fi,f=mi,p=vi,m=yi,v=wi;this.getWorldAnchorA(u),this.getWorldAnchorB(d),u.vsub(i.position,f),d.vsub(n.position,p),d.vsub(u,o);const w=o.length();r.copy(o),r.normalize(),n.velocity.vsub(i.velocity,c),n.angularVelocity.cross(p,h),c.vadd(h,c),i.angularVelocity.cross(f,h),c.vsub(h,c),r.scale(-t*(w-s)-e*c.dot(r),a),i.force.vsub(a,i.force),n.force.vadd(a,n.force),f.cross(a,m),p.cross(a,v),i.torque.vsub(m,i.torque),n.torque.vadd(v,n.torque)}}const li=new l,hi=new l,di=new l,ui=new l,pi=new l,fi=new l,mi=new l,vi=new l,yi=new l,wi=new l,xi=new l;class gi{constructor(t){t===void 0&&(t={}),t=Ut.defaults(t,{chassisConnectionPointLocal:new l,chassisConnectionPointWorld:new l,directionLocal:new l,directionWorld:new l,axleLocal:new l,axleWorld:new l,suspensionRestLength:1,suspensionMaxLength:2,radius:1,suspensionStiffness:100,dampingCompression:10,dampingRelaxation:10,frictionSlip:10.5,forwardAcceleration:1,sideAcceleration:1,steering:0,rotation:0,deltaRotation:0,rollInfluence:.01,maxSuspensionForce:Number.MAX_VALUE,isFrontWheel:!0,clippedInvContactDotSuspension:1,suspensionRelativeVelocity:0,suspensionForce:0,slipInfo:0,skidInfo:0,suspensionLength:0,maxSuspensionTravel:1,useCustomSlidingRotationalSpeed:!1,customSlidingRotationalSpeed:-.1}),this.maxSuspensionTravel=t.maxSuspensionTravel,this.customSlidingRotationalSpeed=t.customSlidingRotationalSpeed,this.useCustomSlidingRotationalSpeed=t.useCustomSlidingRotationalSpeed,this.sliding=!1,this.chassisConnectionPointLocal=t.chassisConnectionPointLocal.clone(),this.chassisConnectionPointWorld=t.chassisConnectionPointWorld.clone(),this.directionLocal=t.directionLocal.clone(),this.directionWorld=t.directionWorld.clone(),this.axleLocal=t.axleLocal.clone(),this.axleWorld=t.axleWorld.clone(),this.suspensionRestLength=t.suspensionRestLength,this.suspensionMaxLength=t.suspensionMaxLength,this.radius=t.radius,this.suspensionStiffness=t.suspensionStiffness,this.dampingCompression=t.dampingCompression,this.dampingRelaxation=t.dampingRelaxation,this.frictionSlip=t.frictionSlip,this.forwardAcceleration=t.forwardAcceleration,this.sideAcceleration=t.sideAcceleration,this.steering=0,this.rotation=0,this.deltaRotation=0,this.rollInfluence=t.rollInfluence,this.maxSuspensionForce=t.maxSuspensionForce,this.engineForce=0,this.brake=0,this.isFrontWheel=t.isFrontWheel,this.clippedInvContactDotSuspension=1,this.suspensionRelativeVelocity=0,this.suspensionForce=0,this.slipInfo=0,this.skidInfo=0,this.suspensionLength=0,this.sideImpulse=0,this.forwardImpulse=0,this.raycastResult=new Rt,this.worldTransform=new j,this.isInContact=!1}updateWheel(t){const e=this.raycastResult;if(this.isInContact){const s=e.hitNormalWorld.dot(e.directionWorld);e.hitPointWorld.vsub(t.position,Be),t.getVelocityAtWorldPoint(Be,Ae);const i=e.hitNormalWorld.dot(Ae);if(s>=-.1)this.suspensionRelativeVelocity=0,this.clippedInvContactDotSuspension=1/.1;else{const n=-1/s;this.suspensionRelativeVelocity=i*n,this.clippedInvContactDotSuspension=n}}else e.suspensionLength=this.suspensionRestLength,this.suspensionRelativeVelocity=0,e.directionWorld.scale(-1,e.hitNormalWorld),this.clippedInvContactDotSuspension=1}}const Ae=new l,Be=new l;class Zo{constructor(t){this.chassisBody=t.chassisBody,this.wheelInfos=[],this.sliding=!1,this.world=null,this.indexRightAxis=typeof t.indexRightAxis<"u"?t.indexRightAxis:2,this.indexForwardAxis=typeof t.indexForwardAxis<"u"?t.indexForwardAxis:0,this.indexUpAxis=typeof t.indexUpAxis<"u"?t.indexUpAxis:1,this.constraints=[],this.preStepCallback=()=>{},this.currentVehicleSpeedKmHour=0,this.numWheelsOnGround=0}addWheel(t){t===void 0&&(t={});const e=new gi(t),s=this.wheelInfos.length;return this.wheelInfos.push(e),s}setSteeringValue(t,e){const s=this.wheelInfos[e];s.steering=t}applyEngineForce(t,e){this.wheelInfos[e].engineForce=t}setBrake(t,e){this.wheelInfos[e].brake=t}addToWorld(t){t.addBody(this.chassisBody);const e=this;this.preStepCallback=()=>{e.updateVehicle(t.dt)},t.addEventListener("preStep",this.preStepCallback),this.world=t}getVehicleAxisWorld(t,e){e.set(t===0?1:0,t===1?1:0,t===2?1:0),this.chassisBody.vectorToWorldFrame(e,e)}updateVehicle(t){const e=this.wheelInfos,s=e.length,i=this.chassisBody;for(let u=0;ud.maxSuspensionForce&&(f=d.maxSuspensionForce),d.raycastResult.hitNormalWorld.scale(f*t,o),d.raycastResult.hitPointWorld.vsub(i.position,r),i.applyImpulse(o,r)}this.updateFriction(t);const c=new l,a=new l,h=new l;for(let u=0;u0?1:-1)*d.customSlidingRotationalSpeed*t),Math.abs(d.brake)>Math.abs(d.engineForce)&&(d.deltaRotation=0),d.rotation+=d.deltaRotation,d.deltaRotation*=.99}}updateSuspension(t){const s=this.chassisBody.mass,i=this.wheelInfos,n=i.length;for(let o=0;of&&(t.suspensionLength=f,t.raycastResult.reset());const p=t.raycastResult.hitNormalWorld.dot(t.directionWorld),m=new l;i.getVelocityAtWorldPoint(t.raycastResult.hitPointWorld,m);const v=t.raycastResult.hitNormalWorld.dot(m);if(p>=-.1)t.suspensionRelativeVelocity=0,t.clippedInvContactDotSuspension=1/.1;else{const w=-1/p;t.suspensionRelativeVelocity=v*w,t.clippedInvContactDotSuspension=w}}else t.suspensionLength=t.suspensionRestLength+0*t.maxSuspensionTravel,t.suspensionRelativeVelocity=0,t.directionWorld.scale(-1,t.raycastResult.hitNormalWorld),t.clippedInvContactDotSuspension=1;return n}updateWheelTransformWorld(t){t.isInContact=!1;const e=this.chassisBody;e.pointToWorldFrame(t.chassisConnectionPointLocal,t.chassisConnectionPointWorld),e.vectorToWorldFrame(t.directionLocal,t.directionWorld),e.vectorToWorldFrame(t.axleLocal,t.axleWorld)}updateWheelTransform(t){const e=bi,s=Ai,i=Bi,n=this.wheelInfos[t];this.updateWheelTransformWorld(n),n.directionLocal.scale(-1,e),s.copy(n.axleLocal),e.cross(s,i),i.normalize(),s.normalize();const o=n.steering,r=new D;r.setFromAxisAngle(e,o);const c=new D;c.setFromAxisAngle(s,n.rotation);const a=n.worldTransform.quaternion;this.chassisBody.quaternion.mult(r,a),a.mult(c,a),a.normalize();const h=n.worldTransform.position;h.copy(n.directionWorld),h.scale(n.suspensionLength,h),h.vadd(n.chassisConnectionPointWorld,h)}getWheelTransformWorld(t){return this.wheelInfos[t].worldTransform}updateFriction(t){const e=Si,s=this.wheelInfos,i=s.length,n=this.chassisBody,o=Ii,r=Fi;this.numWheelsOnGround=0;for(let h=0;hv){this.sliding=!0,u.sliding=!0;const g=p/Math.sqrt(x);u.skidInfo*=g}}}if(this.sliding)for(let h=0;h1.1)return 0;const o=Vi,r=ji,c=ki;z.getVelocityAtWorldPoint(t,o),e.getVelocityAtWorldPoint(s,r),o.vsub(r,c);const a=i.dot(c),h=.2,u=1/(z.invMass+e.invMass);return-h*a*u}class Hi extends S{constructor(t){if(super({type:S.types.SPHERE}),this.radius=t!==void 0?t:1,this.radius<0)throw new Error("The sphere radius cannot be negative.");this.updateBoundingSphereRadius()}calculateLocalInertia(t,e){e===void 0&&(e=new l);const s=2*t*this.radius*this.radius/5;return e.x=s,e.y=s,e.z=s,e}volume(){return 4*Math.PI*Math.pow(this.radius,3)/3}updateBoundingSphereRadius(){this.boundingSphereRadius=this.radius}calculateWorldAABB(t,e,s,i){const n=this.radius,o=["x","y","z"];for(let r=0;rthis.particles.length&&this.neighbors.pop())}getNeighbors(t,e){const s=this.particles.length,i=t.id,n=this.smoothingRadius*this.smoothingRadius,o=Gi;for(let r=0;r!==s;r++){const c=this.particles[r];c.position.vsub(t.position,o),i!==c.id&&o.lengthSquared()e&&(e=n)}this.maxValue=e}setHeightValueAtIndex(t,e,s){const i=this.data;i[t][e]=s,this.clearCachedConvexTrianglePillar(t,e,!1),t>0&&(this.clearCachedConvexTrianglePillar(t-1,e,!0),this.clearCachedConvexTrianglePillar(t-1,e,!1)),e>0&&(this.clearCachedConvexTrianglePillar(t,e-1,!0),this.clearCachedConvexTrianglePillar(t,e-1,!1)),e>0&&t>0&&this.clearCachedConvexTrianglePillar(t-1,e-1,!0)}getRectMinMax(t,e,s,i,n){n===void 0&&(n=[]);const o=this.data;let r=this.minValue;for(let c=t;c<=s;c++)for(let a=e;a<=i;a++){const h=o[c][a];h>r&&(r=h)}n[0]=this.minValue,n[1]=r}getIndexOfPosition(t,e,s,i){const n=this.elementSize,o=this.data;let r=Math.floor(t/n),c=Math.floor(e/n);return s[0]=r,s[1]=c,i&&(r<0&&(r=0),c<0&&(c=0),r>=o.length-1&&(r=o.length-1),c>=o[0].length-1&&(c=o[0].length-1)),!(r<0||c<0||r>=o.length-1||c>=o[0].length-1)}getTriangleAt(t,e,s,i,n,o){const r=Ce;this.getIndexOfPosition(t,e,r,s);let c=r[0],a=r[1];const h=this.data;s&&(c=Math.min(h.length-2,Math.max(0,c)),a=Math.min(h[0].length-2,Math.max(0,a)));const u=this.elementSize,d=(t/u-c)**2+(e/u-a)**2,f=(t/u-(c+1))**2+(e/u-(a+1))**2,p=d>f;return this.getTriangle(c,a,p,i,n,o),p}getNormalAt(t,e,s,i){const n=tn,o=en,r=sn,c=nn,a=on;this.getTriangleAt(t,e,s,n,o,r),o.vsub(n,c),r.vsub(n,a),c.cross(a,i),i.normalize()}getAabbAtIndex(t,e,s){let{lowerBound:i,upperBound:n}=s;const o=this.data,r=this.elementSize;i.set(t*r,e*r,o[t][e]),n.set((t+1)*r,(e+1)*r,o[t+1][e+1])}getHeightAt(t,e,s){const i=this.data,n=Ki,o=Qi,r=Ji,c=Ce;this.getIndexOfPosition(t,e,c,s);let a=c[0],h=c[1];s&&(a=Math.min(i.length-2,Math.max(0,a)),h=Math.min(i[0].length-2,Math.max(0,h)));const u=this.getTriangleAt(t,e,s,n,o,r);rn(t,e,n.x,n.y,o.x,o.y,r.x,r.y,Se);const d=Se;return u?i[a+1][h+1]*d.x+i[a][h+1]*d.y+i[a+1][h]*d.z:i[a][h]*d.x+i[a+1][h]*d.y+i[a][h+1]*d.z}getCacheConvexTrianglePillarKey(t,e,s){return`${t}_${e}_${s?1:0}`}getCachedConvexTrianglePillar(t,e,s){return this._cachedPillars[this.getCacheConvexTrianglePillarKey(t,e,s)]}setCachedConvexTrianglePillar(t,e,s,i,n){this._cachedPillars[this.getCacheConvexTrianglePillarKey(t,e,s)]={convex:i,offset:n}}clearCachedConvexTrianglePillar(t,e,s){delete this._cachedPillars[this.getCacheConvexTrianglePillarKey(t,e,s)]}getTriangle(t,e,s,i,n,o){const r=this.data,c=this.elementSize;s?(i.set((t+1)*c,(e+1)*c,r[t+1][e+1]),n.set(t*c,(e+1)*c,r[t][e+1]),o.set((t+1)*c,e*c,r[t+1][e])):(i.set(t*c,e*c,r[t][e]),n.set((t+1)*c,e*c,r[t+1][e]),o.set(t*c,(e+1)*c,r[t][e+1]))}getConvexTrianglePillar(t,e,s){let i=this.pillarConvex,n=this.pillarOffset;if(this.cacheEnabled){const u=this.getCachedConvexTrianglePillar(t,e,s);if(u){this.pillarConvex=u.convex,this.pillarOffset=u.offset;return}i=new vt,n=new l,this.pillarConvex=i,this.pillarOffset=n}const o=this.data,r=this.elementSize,c=i.faces;i.vertices.length=6;for(let u=0;u<6;u++)i.vertices[u]||(i.vertices[u]=new l);c.length=5;for(let u=0;u<5;u++)c[u]||(c[u]=[]);const a=i.vertices,h=(Math.min(o[t][e],o[t+1][e],o[t][e+1],o[t+1][e+1])-this.minValue)/2+this.minValue;s?(n.set((t+.75)*r,(e+.75)*r,h),a[0].set(.25*r,.25*r,o[t+1][e+1]-h),a[1].set(-.75*r,.25*r,o[t][e+1]-h),a[2].set(.25*r,-.75*r,o[t+1][e]-h),a[3].set(.25*r,.25*r,-Math.abs(h)-1),a[4].set(-.75*r,.25*r,-Math.abs(h)-1),a[5].set(.25*r,-.75*r,-Math.abs(h)-1),c[0][0]=0,c[0][1]=1,c[0][2]=2,c[1][0]=5,c[1][1]=4,c[1][2]=3,c[2][0]=2,c[2][1]=5,c[2][2]=3,c[2][3]=0,c[3][0]=3,c[3][1]=4,c[3][2]=1,c[3][3]=0,c[4][0]=1,c[4][1]=4,c[4][2]=5,c[4][3]=2):(n.set((t+.25)*r,(e+.25)*r,h),a[0].set(-.25*r,-.25*r,o[t][e]-h),a[1].set(.75*r,-.25*r,o[t+1][e]-h),a[2].set(-.25*r,.75*r,o[t][e+1]-h),a[3].set(-.25*r,-.25*r,-Math.abs(h)-1),a[4].set(.75*r,-.25*r,-Math.abs(h)-1),a[5].set(-.25*r,.75*r,-Math.abs(h)-1),c[0][0]=0,c[0][1]=1,c[0][2]=2,c[1][0]=5,c[1][1]=4,c[1][2]=3,c[2][0]=0,c[2][1]=2,c[2][2]=5,c[2][3]=3,c[3][0]=1,c[3][1]=0,c[3][2]=3,c[3][3]=4,c[4][0]=4,c[4][1]=5,c[4][2]=2,c[4][3]=1),i.computeNormals(),i.computeEdges(),i.updateBoundingSphereRadius(),this.setCachedConvexTrianglePillar(t,e,s,i,n)}calculateLocalInertia(t,e){return e===void 0&&(e=new l),e.set(0,0,0),e}volume(){return Number.MAX_VALUE}calculateWorldAABB(t,e,s,i){s.set(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE),i.set(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE)}updateBoundingSphereRadius(){const t=this.data,e=this.elementSize;this.boundingSphereRadius=new l(t.length*e,t[0].length*e,Math.max(Math.abs(this.maxValue),Math.abs(this.minValue))).length()}setHeightsFromImage(t,e){const{x:s,z:i,y:n}=e,o=document.createElement("canvas");o.width=t.width,o.height=t.height;const r=o.getContext("2d");r.drawImage(t,0,0);const c=r.getImageData(0,0,t.width,t.height),a=this.data;a.length=0,this.elementSize=Math.abs(s)/c.width;for(let h=0;h=0;t--)this.children[t].removeEmptyNodes(),!this.children[t].children.length&&!this.children[t].data.length&&this.children.splice(t,1)}}class cn extends ot{constructor(t,e){e===void 0&&(e={}),super({root:null,aabb:t}),this.maxDepth=typeof e.maxDepth<"u"?e.maxDepth:8}}const wt=new l,jt=new G;class ee extends S{constructor(t,e){super({type:S.types.TRIMESH}),this.vertices=new Float32Array(t),this.indices=new Int16Array(e),this.normals=new Float32Array(e.length),this.aabb=new G,this.edges=null,this.scale=new l(1,1,1),this.tree=new cn,this.updateEdges(),this.updateNormals(),this.updateAABB(),this.updateBoundingSphereRadius(),this.updateTree()}updateTree(){const t=this.tree;t.reset(),t.aabb.copy(this.aabb);const e=this.scale;t.aabb.lowerBound.x*=1/e.x,t.aabb.lowerBound.y*=1/e.y,t.aabb.lowerBound.z*=1/e.z,t.aabb.upperBound.x*=1/e.x,t.aabb.upperBound.y*=1/e.y,t.aabb.upperBound.z*=1/e.z;const s=new G,i=new l,n=new l,o=new l,r=[i,n,o];for(let c=0;c{const o=is.x&&(s.x=n.x),n.ys.y&&(s.y=n.y),n.zs.z&&(s.z=n.z)}updateAABB(){this.computeLocalAABB(this.aabb)}updateBoundingSphereRadius(){let t=0;const e=this.vertices,s=new l;for(let i=0,n=e.length/3;i!==n;i++){this.getVertex(i,s);const o=s.lengthSquared();o>t&&(t=o)}this.boundingSphereRadius=Math.sqrt(t)}calculateWorldAABB(t,e,s,i){const n=un,o=pn;n.position=t,n.quaternion=e,this.aabb.toWorldFrame(n,o),s.copy(o.lowerBound),i.copy(o.upperBound)}volume(){return 4*Math.PI*this.boundingSphereRadius/3}static createTorus(t,e,s,i,n){t===void 0&&(t=1),e===void 0&&(e=.5),s===void 0&&(s=8),i===void 0&&(i=6),n===void 0&&(n=Math.PI*2);const o=[],r=[];for(let c=0;c<=s;c++)for(let a=0;a<=i;a++){const h=a/i*n,u=c/s*Math.PI*2,d=(t+e*Math.cos(u))*Math.cos(h),f=(t+e*Math.cos(u))*Math.sin(h),p=e*Math.sin(u);o.push(d,f,p)}for(let c=1;c<=s;c++)for(let a=1;a<=i;a++){const h=(i+1)*c+a-1,u=(i+1)*(c-1)+a-1,d=(i+1)*(c-1)+a,f=(i+1)*c+a;r.push(h,u,f),r.push(u,d,f)}return new ee(o,r)}}const an=new l,kt=new G,ln=new l,hn=new l,Fe=new l,Ie=new l,Me=new l,Ne=new l,_e=new l,xt=new G,dn=new l,un=new j,pn=new G;class Ue{constructor(){this.equations=[]}solve(t,e){return 0}addEquation(t){t.enabled&&!t.bi.isTrigger&&!t.bj.isTrigger&&this.equations.push(t)}removeEquation(t){const e=this.equations,s=e.indexOf(t);s!==-1&&e.splice(s,1)}removeAllEquations(){this.equations.length=0}}class fn extends Ue{constructor(){super(),this.iterations=10,this.tolerance=1e-7}solve(t,e){let s=0;const i=this.iterations,n=this.tolerance*this.tolerance,o=this.equations,r=o.length,c=e.bodies,a=c.length,h=t;let u,d,f,p,m,v;if(r!==0)for(let g=0;g!==a;g++)c[g].updateSolveMassProperties();const w=vn,y=yn,x=mn;w.length=r,y.length=r,x.length=r;for(let g=0;g!==r;g++){const A=o[g];x[g]=0,y[g]=A.computeB(h),w[g]=1/A.computeC()}if(r!==0){for(let E=0;E!==a;E++){const I=c[E],_=I.vlambda,q=I.wlambda;_.set(0,0,0),q.set(0,0,0)}for(s=0;s!==i;s++){p=0;for(let E=0;E!==r;E++){const I=o[E];u=y[E],d=w[E],v=x[E],m=I.computeGWlambda(),f=d*(u-m-I.eps*v),v+fI.maxForce&&(f=I.maxForce-v),x[E]+=f,p+=f>0?f:-f,I.addToWlambda(f)}if(p*pt;)e.pop();for(;e.length=0&&h.restitution>=0&&(r.restitution=a.restitution*h.restitution),r.si=n||s,r.sj=o||i,r}createFrictionEquationsFromContact(t,e){const s=t.bi,i=t.bj,n=t.si,o=t.sj,r=this.world,c=this.currentContactMaterial;let a=c.friction;const h=n.material||s.material,u=o.material||i.material;if(h&&u&&h.friction>=0&&u.friction>=0&&(a=h.friction*u.friction),a>0){const d=a*r.gravity.length();let f=s.invMass+i.invMass;f>0&&(f=1/f);const p=this.frictionEquationPool,m=p.length?p.pop():new be(s,i,d*f),v=p.length?p.pop():new be(s,i,d*f);return m.bi=v.bi=s,m.bj=v.bj=i,m.minForce=v.minForce=-d*f,m.maxForce=v.maxForce=d*f,m.ri.copy(t.ri),m.rj.copy(t.rj),v.ri.copy(t.ri),v.rj.copy(t.rj),t.ni.tangents(m.t,v.t),m.setSpookParams(c.frictionEquationStiffness,c.frictionEquationRelaxation,r.dt),v.setSpookParams(c.frictionEquationStiffness,c.frictionEquationRelaxation,r.dt),m.enabled=v.enabled=t.enabled,e.push(m,v),!0}return!1}createFrictionFromAverage(t){let e=this.result[this.result.length-1];if(!this.createFrictionEquationsFromContact(e,this.frictionResult)||t===1)return;const s=this.frictionResult[this.frictionResult.length-2],i=this.frictionResult[this.frictionResult.length-1];gt.setZero(),zt.setZero(),Ct.setZero();const n=e.bi;e.bj;for(let r=0;r!==t;r++)e=this.result[this.result.length-1-r],e.bi!==n?(gt.vadd(e.ni,gt),zt.vadd(e.ri,zt),Ct.vadd(e.rj,Ct)):(gt.vsub(e.ni,gt),zt.vadd(e.rj,zt),Ct.vadd(e.ri,Ct));const o=1/t;zt.scale(o,s.ri),Ct.scale(o,s.rj),i.ri.copy(s.ri),i.rj.copy(s.rj),gt.normalize(),gt.tangents(s.t,i.t)}getContacts(t,e,s,i,n,o,r){this.contactPointPool=n,this.frictionEquationPool=r,this.result=i,this.frictionResult=o;const c=Mn,a=Nn,h=Fn,u=In;for(let d=0,f=t.length;d!==f;d++){const p=t[d],m=e[d];let v=null;p.material&&m.material&&(v=s.getContactMaterial(p.material,m.material)||null);const w=p.type&M.KINEMATIC&&m.type&M.STATIC||p.type&M.STATIC&&m.type&M.KINEMATIC||p.type&M.KINEMATIC&&m.type&M.KINEMATIC;for(let y=0;yx.boundingSphereRadius+A.boundingSphereRadius)continue;let E=null;x.material&&A.material&&(E=s.getContactMaterial(x.material,A.material)||null),this.currentContactMaterial=E||v||s.defaultContactMaterial;const I=x.type|A.type,_=this[I];if(_){let q=!1;x.type0){const O=eo,N=so;O.copy(f[(B+1)%3]),N.copy(f[(B+2)%3]);const Z=O.length(),K=N.length();O.normalize(),N.normalize();const Q=Gt.dot(O),U=Gt.dot(N);if(Q-Z&&U-K){const $=Math.abs(W-R-p);if((I===null||$t.boundingSphereRadius+e.boundingSphereRadius)&&t.findSeparatingAxis(e,s,n,i,o,p,d,f)){const m=[],v=Eo;t.clipAgainstHull(s,n,e,i,o,p,-100,100,m);let w=0;for(let y=0;y!==m.length;y++){if(u)return!0;const x=this.createContactEquation(r,c,t,e,a,h),g=x.ri,A=x.rj;p.negate(x.ni),m[y].normal.negate(v),v.scale(m[y].depth,v),m[y].point.vadd(v,g),A.copy(m[y].point),g.vsub(s,g),A.vsub(i,A),g.vadd(s,g),g.vsub(r.position,g),A.vadd(i,A),A.vsub(c.position,A),this.result.push(x),w++,this.enableFrictionReduction||this.createFrictionEquationsFromContact(x,this.frictionResult)}this.enableFrictionReduction&&w&&this.createFrictionFromAverage(w)}}sphereConvex(t,e,s,i,n,o,r,c,a,h,u){const d=this.v3pool;s.vsub(i,ao);const f=e.faceNormals,p=e.faces,m=e.vertices,v=t.radius;let w=!1;for(let y=0;y!==m.length;y++){const x=m[y],g=po;o.vmult(x,g),i.vadd(g,g);const A=uo;if(g.vsub(s,A),A.lengthSquared()0){const V=[];for(let b=0,F=A.length;b!==F;b++){const C=d.get();o.vmult(m[A[b]],C),i.vadd(C,C),V.push(C)}if(Jn(V,E,s)){if(u)return!0;w=!0;const b=this.createContactEquation(r,c,t,e,a,h);E.scale(-v,b.ri),E.negate(b.ni);const F=d.get();E.scale(-T,F);const C=d.get();E.scale(-v,C),s.vsub(i,b.rj),b.rj.vadd(C,b.rj),b.rj.vadd(F,b.rj),b.rj.vadd(i,b.rj),b.rj.vsub(c.position,b.rj),b.ri.vadd(s,b.ri),b.ri.vsub(r.position,b.ri),d.release(F),d.release(C),this.result.push(b),this.createFrictionEquationsFromContact(b,this.frictionResult);for(let B=0,k=V.length;B!==k;B++)d.release(V[B]);return}else for(let b=0;b!==A.length;b++){const F=d.get(),C=d.get();o.vmult(m[A[(b+1)%A.length]],F),o.vmult(m[A[(b+2)%A.length]],C),i.vadd(F,F),i.vadd(C,C);const B=lo;C.vsub(F,B);const k=ho;B.unit(k);const L=d.get(),R=d.get();s.vsub(F,R);const W=R.dot(k);k.scale(W,L),L.vadd(F,L);const O=d.get();if(L.vsub(s,O),W>0&&W*Wd.length||x>d[0].length)return;w<0&&(w=0),y<0&&(y=0),x<0&&(x=0),g<0&&(g=0),w>=d.length&&(w=d.length-1),y>=d.length&&(y=d.length-1),g>=d[0].length&&(g=d[0].length-1),x>=d[0].length&&(x=d[0].length-1);const A=[];e.getRectMinMax(w,x,y,g,A);const E=A[0],I=A[1];if(v.z-f>I||v.z+f2)return}}boxHeightfield(t,e,s,i,n,o,r,c,a,h,u){return t.convexPolyhedronRepresentation.material=t.material,t.convexPolyhedronRepresentation.collisionResponse=t.collisionResponse,this.convexHeightfield(t.convexPolyhedronRepresentation,e,s,i,n,o,r,c,t,e,u)}convexHeightfield(t,e,s,i,n,o,r,c,a,h,u){const d=e.data,f=e.elementSize,p=t.boundingSphereRadius,m=To,v=Ro,w=_o;j.pointToLocalFrame(i,o,s,w);let y=Math.floor((w.x-p)/f)-1,x=Math.ceil((w.x+p)/f)+1,g=Math.floor((w.y-p)/f)-1,A=Math.ceil((w.y+p)/f)+1;if(x<0||A<0||y>d.length||g>d[0].length)return;y<0&&(y=0),x<0&&(x=0),g<0&&(g=0),A<0&&(A=0),y>=d.length&&(y=d.length-1),x>=d.length&&(x=d.length-1),A>=d[0].length&&(A=d[0].length-1),g>=d[0].length&&(g=d[0].length-1);const E=[];e.getRectMinMax(y,g,x,A,E);const I=E[0],_=E[1];if(!(w.z-p>_||w.z+p0&&C<0&&(v.vsub(d,w),m.copy(p),m.normalize(),B=w.dot(m),m.scale(B,w),w.vadd(d,w),w.distanceTo(v)0&&s===!0||h<=0&&s===!1){s===null&&(s=h>0);continue}else return!1}return!0}const Gt=new l,to=new l,eo=new l,so=new l,io=[new l,new l,new l,new l,new l,new l],no=new l,oo=new l,ro=new l,co=new l,ao=new l,lo=new l,ho=new l,uo=new l,po=new l,fo=new l,mo=new l,vo=new l,yo=new l,wo=new l;new l;new l;const xo=new l,go=new l,bo=new l,Ao=new l,Bo=new l,Eo=new l,zo=new l,Co=new l,So=new l,Fo=new l,Re=new D,Io=new l;new l;const Mo=new l,Pe=new l,No=new l,_o=new l,To=new l,Ro=[0],Po=new l,qo=new l;class qe{constructor(){this.current=[],this.previous=[]}getKey(t,e){if(ei[n];)n++;if(s!==i[n]){for(let o=i.length-1;o>=n;o--)i[o+1]=i[o];i[n]=s}}tick(){const t=this.current;this.current=this.previous,this.previous=t,this.current.length=0}getDiff(t,e){const s=this.current,i=this.previous,n=s.length,o=i.length;let r=0;for(let c=0;ci[r];)r++;a=h===i[r],a||Le(t,h)}r=0;for(let c=0;cs[r];)r++;a=s[r]===h,a||Le(e,h)}}}function Le(z,t){z.push((t&4294901760)>>16,t&65535)}const Jt=(z,t)=>z0;){const s=e.pop();delete t[s]}}}class nr extends We{constructor(t){t===void 0&&(t={}),super(),this.dt=-1,this.allowSleep=!!t.allowSleep,this.contacts=[],this.frictionEquations=[],this.quatNormalizeSkip=t.quatNormalizeSkip!==void 0?t.quatNormalizeSkip:0,this.quatNormalizeFast=t.quatNormalizeFast!==void 0?t.quatNormalizeFast:!1,this.time=0,this.stepnumber=0,this.default_dt=1/60,this.nextId=0,this.gravity=new l,t.gravity&&this.gravity.copy(t.gravity),this.broadphase=t.broadphase!==void 0?t.broadphase:new As,this.bodies=[],this.hasActiveBodies=!1,this.solver=t.solver!==void 0?t.solver:new fn,this.constraints=[],this.narrowphase=new Sn(this),this.collisionMatrix=new de,this.collisionMatrixPrevious=new de,this.bodyOverlapKeeper=new qe,this.shapeOverlapKeeper=new qe,this.contactmaterials=[],this.contactMaterialTable=new Lo,this.defaultMaterial=new Xt("default"),this.defaultContactMaterial=new Yt(this.defaultMaterial,this.defaultMaterial,{friction:.3,restitution:0}),this.doProfiling=!1,this.profile={solve:0,makeContactConstraints:0,broadphase:0,integrate:0,narrowphase:0},this.accumulator=0,this.subsystems=[],this.addBodyEvent={type:"addBody",body:null},this.removeBodyEvent={type:"removeBody",body:null},this.idToBodyMap={},this.broadphase.setWorld(this)}getContactMaterial(t,e){return this.contactMaterialTable.get(t.id,e.id)}collisionMatrixTick(){const t=this.collisionMatrixPrevious;this.collisionMatrixPrevious=this.collisionMatrix,this.collisionMatrix=t,this.collisionMatrix.reset(),this.bodyOverlapKeeper.tick(),this.shapeOverlapKeeper.tick()}addConstraint(t){this.constraints.push(t)}removeConstraint(t){const e=this.constraints.indexOf(t);e!==-1&&this.constraints.splice(e,1)}rayTest(t,e,s){s instanceof Rt?this.raycastClosest(t,e,{skipBackfaces:!0},s):this.raycastAll(t,e,{skipBackfaces:!0},s)}raycastAll(t,e,s,i){return s===void 0&&(s={}),s.mode=Y.ALL,s.from=t,s.to=e,s.callback=i,te.intersectWorld(this,s)}raycastAny(t,e,s,i){return s===void 0&&(s={}),s.mode=Y.ANY,s.from=t,s.to=e,s.result=i,te.intersectWorld(this,s)}raycastClosest(t,e,s,i){return s===void 0&&(s={}),s.mode=Y.CLOSEST,s.from=t,s.to=e,s.result=i,te.intersectWorld(this,s)}addBody(t){this.bodies.includes(t)||(t.index=this.bodies.length,this.bodies.push(t),t.world=this,t.initPosition.copy(t.position),t.initVelocity.copy(t.velocity),t.timeLastSleepy=this.time,t instanceof M&&(t.initAngularVelocity.copy(t.angularVelocity),t.initQuaternion.copy(t.quaternion)),this.collisionMatrix.setNumObjects(this.bodies.length),this.addBodyEvent.body=t,this.idToBodyMap[t.id]=t,this.dispatchEvent(this.addBodyEvent))}removeBody(t){t.world=null;const e=this.bodies.length-1,s=this.bodies,i=s.indexOf(t);if(i!==-1){s.splice(i,1);for(let n=0;n!==s.length;n++)s[n].index=n;this.collisionMatrix.setNumObjects(e),this.removeBodyEvent.body=t,delete this.idToBodyMap[t.id],this.dispatchEvent(this.removeBodyEvent)}}getBodyById(t){return this.idToBodyMap[t]}getShapeById(t){const e=this.bodies;for(let s=0;s=t&&nt*1e3)););this.accumulator=this.accumulator%t;const o=this.accumulator/t;for(let r=0;r!==this.bodies.length;r++){const c=this.bodies[r];c.previousPosition.lerp(c.position,o,c.interpolatedPosition),c.previousQuaternion.slerp(c.quaternion,o,c.interpolatedQuaternion),c.previousQuaternion.normalize()}this.time+=e}}internalStep(t){this.dt=t;const e=this.contacts,s=Oo,i=Ho,n=this.bodies.length,o=this.bodies,r=this.solver,c=this.gravity,a=this.doProfiling,h=this.profile,u=M.DYNAMIC;let d=-1/0;const f=this.constraints,p=ko;c.length();const m=c.x,v=c.y,w=c.z;let y=0;for(a&&(d=X.now()),y=0;y!==n;y++){const b=o[y];if(b.type===u){const F=b.force,C=b.mass;F.x+=C*m,F.y+=C*v,F.z+=C*w}}for(let b=0,F=this.subsystems.length;b!==F;b++)this.subsystems[b].update();a&&(d=X.now()),s.length=0,i.length=0,this.broadphase.collisionPairs(this,s,i),a&&(h.broadphase=X.now()-d);let x=f.length;for(y=0;y!==x;y++){const b=f[y];if(!b.collideConnected)for(let F=s.length-1;F>=0;F-=1)(b.bodyA===s[F]&&b.bodyB===i[F]||b.bodyB===s[F]&&b.bodyA===i[F])&&(s.splice(F,1),i.splice(F,1))}this.collisionMatrixTick(),a&&(d=X.now());const g=jo,A=e.length;for(y=0;y!==A;y++)g.push(e[y]);e.length=0;const E=this.frictionEquations.length;for(y=0;y!==E;y++)p.push(this.frictionEquations[y]);for(this.frictionEquations.length=0,this.narrowphase.getContacts(s,i,this,e,g,this.frictionEquations,p),a&&(h.narrowphase=X.now()-d),a&&(d=X.now()),y=0;y=0&&B.material.friction>=0&&C.material.friction*B.material.friction,C.material.restitution>=0&&B.material.restitution>=0&&(F.restitution=C.material.restitution*B.material.restitution)),r.addEquation(F),C.allowSleep&&C.type===M.DYNAMIC&&C.sleepState===M.SLEEPING&&B.sleepState===M.AWAKE&&B.type!==M.STATIC){const W=B.velocity.lengthSquared()+B.angularVelocity.lengthSquared(),O=B.sleepSpeedLimit**2;W>=O*2&&(C.wakeUpAfterNarrowphase=!0)}if(B.allowSleep&&B.type===M.DYNAMIC&&B.sleepState===M.SLEEPING&&C.sleepState===M.AWAKE&&C.type!==M.STATIC){const W=C.velocity.lengthSquared()+C.angularVelocity.lengthSquared(),O=C.sleepSpeedLimit**2;W>=O*2&&(B.wakeUpAfterNarrowphase=!0)}this.collisionMatrix.set(C,B,!0),this.collisionMatrixPrevious.get(C,B)||(It.body=B,It.contact=F,C.dispatchEvent(It),It.body=C,B.dispatchEvent(It)),this.bodyOverlapKeeper.set(C.id,B.id),this.shapeOverlapKeeper.set(k.id,L.id)}for(this.emitContactEvents(),a&&(h.makeContactConstraints=X.now()-d,d=X.now()),y=0;y!==n;y++){const b=o[y];b.wakeUpAfterNarrowphase&&(b.wakeUp(),b.wakeUpAfterNarrowphase=!1)}for(x=f.length,y=0;y!==x;y++){const b=f[y];b.update();for(let F=0,C=b.equations.length;F!==C;F++){const B=b.equations[F];r.addEquation(B)}}r.solve(t,this),a&&(h.solve=X.now()-d),r.removeAllEquations();const _=Math.pow;for(y=0;y!==n;y++){const b=o[y];if(b.type&u){const F=_(1-b.linearDamping,t),C=b.velocity;C.scale(F,C);const B=b.angularVelocity;if(B){const k=_(1-b.angularDamping,t);B.scale(k,B)}}}this.dispatchEvent(Vo),a&&(d=X.now());const T=this.stepnumber%(this.quatNormalizeSkip+1)===0,P=this.quatNormalizeFast;for(y=0;y!==n;y++)o[y].integrate(t,T,P);this.clearForces(),this.broadphase.dirty=!0,a&&(h.integrate=X.now()-d),this.stepnumber+=1,this.dispatchEvent(Wo);let V=!0;if(this.allowSleep)for(V=!1,y=0;y!==n;y++){const b=o[y];b.sleepTick(this.time),b.sleepState!==M.SLEEPING&&(V=!0)}this.hasActiveBodies=V}emitContactEvents(){const t=this.hasAnyEventListener("beginContact"),e=this.hasAnyEventListener("endContact");if((t||e)&&this.bodyOverlapKeeper.getDiff(dt,ut),t){for(let n=0,o=dt.length;nDate.now()-z}new l;const Wo={type:"postStep"},Vo={type:"preStep"},It={type:M.COLLIDE_EVENT_NAME,body:null,contact:null},jo=[],ko=[],Oo=[],Ho=[],dt=[],ut=[],Mt={type:"beginContact",bodyA:null,bodyB:null},Nt={type:"endContact",bodyA:null,bodyB:null},pt={type:"beginShapeContact",bodyA:null,bodyB:null,shapeA:null,shapeB:null},ft={type:"endShapeContact",bodyA:null,bodyB:null,shapeA:null,shapeB:null};export{G as AABB,de as ArrayCollisionMatrix,ie as BODY_SLEEP_STATES,se as BODY_TYPES,M as Body,Dt as Box,ne as Broadphase,H as COLLISION_TYPES,Uo as ConeTwistConstraint,Pt as Constraint,Tt as ContactEquation,Yt as ContactMaterial,vt as ConvexPolyhedron,Jo as Cylinder,Yo as DistanceConstraint,yt as Equation,We as EventTarget,be as FrictionEquation,fn as GSSolver,Do as GridBroadphase,sr as Heightfield,ni as HingeConstraint,ve as JacobianElement,Xo as LockConstraint,et as Mat3,Xt as Material,As as NaiveBroadphase,Sn as Narrowphase,Go as ObjectCollisionMatrix,tr as Particle,er as Plane,re as PointToPointConstraint,zn as Pool,D as Quaternion,oe as RAY_MODES,Y as Ray,Rt as RaycastResult,Zo as RaycastVehicle,Ko as RigidVehicle,St as RotationalEquation,ii as RotationalMotorEquation,_t as SAPBroadphase,Je as SHAPE_TYPES,Qo as SPHSystem,S as Shape,Ue as Solver,Hi as Sphere,ir as SplitSolver,$o as Spring,j as Transform,ee as Trimesh,l as Vec3,Cn as Vec3Pool,gi as WheelInfo,nr as World};
diff --git a/.output/public/_nuxt/error-404.23f2309d.css b/.output/public/_nuxt/error-404.23f2309d.css
deleted file mode 100644
index d244340..0000000
--- a/.output/public/_nuxt/error-404.23f2309d.css
+++ /dev/null
@@ -1 +0,0 @@
-.spotlight[data-v-30d2164e]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);bottom:-30vh;filter:blur(20vh);height:40vh}.gradient-border[data-v-30d2164e]{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:.5rem;position:relative}@media (prefers-color-scheme:light){.gradient-border[data-v-30d2164e]{background-color:#ffffff4d}.gradient-border[data-v-30d2164e]:before{background:linear-gradient(90deg,#e2e2e2,#e2e2e2 25%,#00dc82 50%,#36e4da 75%,#0047e1)}}@media (prefers-color-scheme:dark){.gradient-border[data-v-30d2164e]{background-color:#1414144d}.gradient-border[data-v-30d2164e]:before{background:linear-gradient(90deg,#303030,#303030 25%,#00dc82 50%,#36e4da 75%,#0047e1)}}.gradient-border[data-v-30d2164e]:before{background-size:400% auto;border-radius:.5rem;bottom:0;content:"";left:0;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.5;padding:2px;position:absolute;right:0;top:0;transition:background-position .3s ease-in-out,opacity .2s ease-in-out;width:100%}.gradient-border[data-v-30d2164e]:hover:before{background-position:-50% 0;opacity:1}.bg-white[data-v-30d2164e]{--tw-bg-opacity:1;background-color:rgba(255,255,255,var(--tw-bg-opacity))}.cursor-pointer[data-v-30d2164e]{cursor:pointer}.flex[data-v-30d2164e]{display:flex}.grid[data-v-30d2164e]{display:grid}.place-content-center[data-v-30d2164e]{place-content:center}.items-center[data-v-30d2164e]{align-items:center}.justify-center[data-v-30d2164e]{justify-content:center}.font-sans[data-v-30d2164e]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.font-medium[data-v-30d2164e]{font-weight:500}.font-light[data-v-30d2164e]{font-weight:300}.text-8xl[data-v-30d2164e]{font-size:6rem;line-height:1}.text-xl[data-v-30d2164e]{font-size:1.25rem;line-height:1.75rem}.leading-tight[data-v-30d2164e]{line-height:1.25}.mb-8[data-v-30d2164e]{margin-bottom:2rem}.mb-16[data-v-30d2164e]{margin-bottom:4rem}.max-w-520px[data-v-30d2164e]{max-width:520px}.min-h-screen[data-v-30d2164e]{min-height:100vh}.overflow-hidden[data-v-30d2164e]{overflow:hidden}.px-8[data-v-30d2164e]{padding-left:2rem;padding-right:2rem}.py-2[data-v-30d2164e]{padding-bottom:.5rem;padding-top:.5rem}.px-4[data-v-30d2164e]{padding-left:1rem;padding-right:1rem}.fixed[data-v-30d2164e]{position:fixed}.left-0[data-v-30d2164e]{left:0}.right-0[data-v-30d2164e]{right:0}.text-center[data-v-30d2164e]{text-align:center}.text-black[data-v-30d2164e]{--tw-text-opacity:1;color:rgba(0,0,0,var(--tw-text-opacity))}.antialiased[data-v-30d2164e]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.w-full[data-v-30d2164e]{width:100%}.z-10[data-v-30d2164e]{z-index:10}.z-20[data-v-30d2164e]{z-index:20}@media (min-width:640px){.sm\:text-4xl[data-v-30d2164e]{font-size:2.25rem;line-height:2.5rem}.sm\:text-xl[data-v-30d2164e]{font-size:1.25rem;line-height:1.75rem}.sm\:text-10xl[data-v-30d2164e]{font-size:10rem;line-height:1}.sm\:px-0[data-v-30d2164e]{padding-left:0;padding-right:0}.sm\:py-3[data-v-30d2164e]{padding-bottom:.75rem;padding-top:.75rem}.sm\:px-6[data-v-30d2164e]{padding-left:1.5rem;padding-right:1.5rem}}@media (prefers-color-scheme:dark){.dark\:bg-black[data-v-30d2164e]{--tw-bg-opacity:1;background-color:rgba(0,0,0,var(--tw-bg-opacity))}.dark\:text-white[data-v-30d2164e]{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}}
diff --git a/.output/public/_nuxt/error-500.aa16ed4d.css b/.output/public/_nuxt/error-500.aa16ed4d.css
deleted file mode 100644
index 6585a76..0000000
--- a/.output/public/_nuxt/error-500.aa16ed4d.css
+++ /dev/null
@@ -1 +0,0 @@
-.spotlight[data-v-32388612]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);filter:blur(20vh)}.bg-white[data-v-32388612]{--tw-bg-opacity:1;background-color:rgba(255,255,255,var(--tw-bg-opacity))}.grid[data-v-32388612]{display:grid}.place-content-center[data-v-32388612]{place-content:center}.font-sans[data-v-32388612]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.font-medium[data-v-32388612]{font-weight:500}.font-light[data-v-32388612]{font-weight:300}.h-1\/2[data-v-32388612]{height:50%}.text-8xl[data-v-32388612]{font-size:6rem;line-height:1}.text-xl[data-v-32388612]{font-size:1.25rem;line-height:1.75rem}.leading-tight[data-v-32388612]{line-height:1.25}.mb-8[data-v-32388612]{margin-bottom:2rem}.mb-16[data-v-32388612]{margin-bottom:4rem}.max-w-520px[data-v-32388612]{max-width:520px}.min-h-screen[data-v-32388612]{min-height:100vh}.overflow-hidden[data-v-32388612]{overflow:hidden}.px-8[data-v-32388612]{padding-left:2rem;padding-right:2rem}.fixed[data-v-32388612]{position:fixed}.left-0[data-v-32388612]{left:0}.right-0[data-v-32388612]{right:0}.-bottom-1\/2[data-v-32388612]{bottom:-50%}.text-center[data-v-32388612]{text-align:center}.text-black[data-v-32388612]{--tw-text-opacity:1;color:rgba(0,0,0,var(--tw-text-opacity))}.antialiased[data-v-32388612]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (min-width:640px){.sm\:text-4xl[data-v-32388612]{font-size:2.25rem;line-height:2.5rem}.sm\:text-10xl[data-v-32388612]{font-size:10rem;line-height:1}.sm\:px-0[data-v-32388612]{padding-left:0;padding-right:0}}@media (prefers-color-scheme:dark){.dark\:bg-black[data-v-32388612]{--tw-bg-opacity:1;background-color:rgba(0,0,0,var(--tw-bg-opacity))}.dark\:text-white[data-v-32388612]{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}}
diff --git a/.output/public/_nuxt/index.a6ef77ff.js b/.output/public/_nuxt/index.a6ef77ff.js
deleted file mode 100644
index 4e4ab53..0000000
--- a/.output/public/_nuxt/index.a6ef77ff.js
+++ /dev/null
@@ -1 +0,0 @@
-const f=/\d/,l=["-","_","/","."];function h(e=""){if(!f.test(e))return e.toUpperCase()===e}function C(e,o){const c=o??l,s=[];if(!e||typeof e!="string")return s;let t="",p,u;for(const r of e){const i=c.includes(r);if(i===!0){s.push(t),t="",p=void 0;continue}const n=h(r);if(u===!1){if(p===!1&&n===!0){s.push(t),t=r,p=n;continue}if(p===!0&&n===!1&&t.length>1){const a=t[t.length-1];s.push(t.slice(0,Math.max(0,t.length-1))),t=a+r,p=n;continue}}t+=r,p=n,u=i}return s.push(t),s}function U(e){return e?e[0].toUpperCase()+e.slice(1):""}function R(e){return e?(Array.isArray(e)?e:C(e)).map(o=>U(o)).join(""):""}export{R as p};
diff --git a/.output/public/apple-touch-icon.png b/.output/public/apple-touch-icon.png
deleted file mode 100644
index 01bae3b..0000000
Binary files a/.output/public/apple-touch-icon.png and /dev/null differ
diff --git a/.output/public/favicon.ico b/.output/public/favicon.ico
deleted file mode 100644
index 336ae18..0000000
Binary files a/.output/public/favicon.ico and /dev/null differ
diff --git a/.output/public/imgs/Home-Banner/Banner_1.gif b/.output/public/imgs/Home-Banner/Banner_1.gif
deleted file mode 100644
index 4cc82ec..0000000
Binary files a/.output/public/imgs/Home-Banner/Banner_1.gif and /dev/null differ
diff --git a/.output/public/imgs/Home-Banner/Banner_1.jpg b/.output/public/imgs/Home-Banner/Banner_1.jpg
deleted file mode 100644
index 51c8fa8..0000000
Binary files a/.output/public/imgs/Home-Banner/Banner_1.jpg and /dev/null differ
diff --git a/.output/public/imgs/Home-Banner/Banner_2.gif b/.output/public/imgs/Home-Banner/Banner_2.gif
deleted file mode 100644
index 5d86dd6..0000000
Binary files a/.output/public/imgs/Home-Banner/Banner_2.gif and /dev/null differ
diff --git a/.output/public/imgs/Home-Banner/Banner_2.jpg b/.output/public/imgs/Home-Banner/Banner_2.jpg
deleted file mode 100644
index 1669da6..0000000
Binary files a/.output/public/imgs/Home-Banner/Banner_2.jpg and /dev/null differ
diff --git a/.output/public/imgs/Home-Solutions&Services/.gitattributes b/.output/public/imgs/Home-Solutions&Services/.gitattributes
deleted file mode 100644
index 4c527b2..0000000
--- a/.output/public/imgs/Home-Solutions&Services/.gitattributes
+++ /dev/null
@@ -1,2 +0,0 @@
-Circulus.gif filter=lfs diff=lfs merge=lfs -text
-Cyberpink.gif filter=lfs diff=lfs merge=lfs -text
diff --git a/.output/public/imgs/Home-Solutions&Services/AIGC.gif b/.output/public/imgs/Home-Solutions&Services/AIGC.gif
deleted file mode 100644
index adb6512..0000000
Binary files a/.output/public/imgs/Home-Solutions&Services/AIGC.gif and /dev/null differ
diff --git a/.output/public/imgs/Home-Solutions&Services/AIGC.jpg b/.output/public/imgs/Home-Solutions&Services/AIGC.jpg
deleted file mode 100644
index 217ab8c..0000000
Binary files a/.output/public/imgs/Home-Solutions&Services/AIGC.jpg and /dev/null differ
diff --git a/.output/public/imgs/Home-Solutions&Services/Circulus.gif b/.output/public/imgs/Home-Solutions&Services/Circulus.gif
deleted file mode 100644
index 4bb5f6d..0000000
--- a/.output/public/imgs/Home-Solutions&Services/Circulus.gif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8a669d196d9f24f8c776c1512a1ae6230e8d42921a37621be3c4effe6d28d625
-size 87935736
diff --git a/.output/public/imgs/Home-Solutions&Services/Circulus.jpg b/.output/public/imgs/Home-Solutions&Services/Circulus.jpg
deleted file mode 100644
index e1fe164..0000000
Binary files a/.output/public/imgs/Home-Solutions&Services/Circulus.jpg and /dev/null differ
diff --git a/.output/public/imgs/Home-Solutions&Services/CyberPink.gif b/.output/public/imgs/Home-Solutions&Services/CyberPink.gif
deleted file mode 100644
index 177ab1d..0000000
--- a/.output/public/imgs/Home-Solutions&Services/CyberPink.gif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f5415e4382cb47b13913188e3f94ad545da6c32f18ba04fa7eeeacc455e9c9ce
-size 134645621
diff --git a/.output/public/imgs/Home-Solutions&Services/CyberPink.jpg b/.output/public/imgs/Home-Solutions&Services/CyberPink.jpg
deleted file mode 100644
index 9f4c545..0000000
Binary files a/.output/public/imgs/Home-Solutions&Services/CyberPink.jpg and /dev/null differ
diff --git a/.output/public/imgs/Home-Solutions&Services/DigitalTwin.gif b/.output/public/imgs/Home-Solutions&Services/DigitalTwin.gif
deleted file mode 100644
index 1c1b75d..0000000
Binary files a/.output/public/imgs/Home-Solutions&Services/DigitalTwin.gif and /dev/null differ
diff --git a/.output/public/imgs/Home-Solutions&Services/DigitalTwin.jpg b/.output/public/imgs/Home-Solutions&Services/DigitalTwin.jpg
deleted file mode 100644
index 9904afc..0000000
Binary files a/.output/public/imgs/Home-Solutions&Services/DigitalTwin.jpg and /dev/null differ
diff --git a/.output/public/imgs/Home-Solutions&Services/GeneratedDesign.gif b/.output/public/imgs/Home-Solutions&Services/GeneratedDesign.gif
deleted file mode 100644
index 81713c2..0000000
Binary files a/.output/public/imgs/Home-Solutions&Services/GeneratedDesign.gif and /dev/null differ
diff --git a/.output/public/imgs/Home-Solutions&Services/GeneratedDesign.jpg b/.output/public/imgs/Home-Solutions&Services/GeneratedDesign.jpg
deleted file mode 100644
index 3531a4e..0000000
Binary files a/.output/public/imgs/Home-Solutions&Services/GeneratedDesign.jpg and /dev/null differ
diff --git a/.output/public/imgs/Home-Solutions&Services/MetaFold.jpg b/.output/public/imgs/Home-Solutions&Services/MetaFold.jpg
deleted file mode 100644
index 15fe6bf..0000000
Binary files a/.output/public/imgs/Home-Solutions&Services/MetaFold.jpg and /dev/null differ
diff --git a/.output/public/imgs/Home-Stories/BitCountry.jpg b/.output/public/imgs/Home-Stories/BitCountry.jpg
deleted file mode 100644
index b32d0bd..0000000
Binary files a/.output/public/imgs/Home-Stories/BitCountry.jpg and /dev/null differ
diff --git a/.output/public/imgs/Home-Stories/Circulus.jpg b/.output/public/imgs/Home-Stories/Circulus.jpg
deleted file mode 100644
index d1aefee..0000000
Binary files a/.output/public/imgs/Home-Stories/Circulus.jpg and /dev/null differ
diff --git a/.output/public/imgs/Home-Stories/CoreOfTime.jpg b/.output/public/imgs/Home-Stories/CoreOfTime.jpg
deleted file mode 100644
index d52d6c3..0000000
Binary files a/.output/public/imgs/Home-Stories/CoreOfTime.jpg and /dev/null differ
diff --git a/.output/public/imgs/Home-Stories/MMMM.jpg b/.output/public/imgs/Home-Stories/MMMM.jpg
deleted file mode 100644
index 8965bd1..0000000
Binary files a/.output/public/imgs/Home-Stories/MMMM.jpg and /dev/null differ
diff --git a/.output/public/imgs/Home-Stories/NASA.jpg b/.output/public/imgs/Home-Stories/NASA.jpg
deleted file mode 100644
index 107f977..0000000
Binary files a/.output/public/imgs/Home-Stories/NASA.jpg and /dev/null differ
diff --git a/.output/public/imgs/Home-Stories/NeverDrinkAlone.jpg b/.output/public/imgs/Home-Stories/NeverDrinkAlone.jpg
deleted file mode 100644
index 292a301..0000000
Binary files a/.output/public/imgs/Home-Stories/NeverDrinkAlone.jpg and /dev/null differ
diff --git a/.output/public/imgs/Home-Stories/ParcelCreatorverse.jpg b/.output/public/imgs/Home-Stories/ParcelCreatorverse.jpg
deleted file mode 100644
index a89c6dc..0000000
Binary files a/.output/public/imgs/Home-Stories/ParcelCreatorverse.jpg and /dev/null differ
diff --git a/.output/public/imgs/Home-Stories/RIBAChangan.jpg b/.output/public/imgs/Home-Stories/RIBAChangan.jpg
deleted file mode 100644
index ae666ce..0000000
Binary files a/.output/public/imgs/Home-Stories/RIBAChangan.jpg and /dev/null differ
diff --git a/.output/public/imgs/Home.Creatorverse.jpg b/.output/public/imgs/Home.Creatorverse.jpg
deleted file mode 100644
index a89c6dc..0000000
Binary files a/.output/public/imgs/Home.Creatorverse.jpg and /dev/null differ
diff --git a/.output/public/imgs/News/BarSymphony/20230524175132.jpg b/.output/public/imgs/News/BarSymphony/20230524175132.jpg
deleted file mode 100644
index 527812a..0000000
Binary files a/.output/public/imgs/News/BarSymphony/20230524175132.jpg and /dev/null differ
diff --git a/.output/public/imgs/News/BarSymphony/Bartender.gif b/.output/public/imgs/News/BarSymphony/Bartender.gif
deleted file mode 100644
index ab2e0d0..0000000
Binary files a/.output/public/imgs/News/BarSymphony/Bartender.gif and /dev/null differ
diff --git a/.output/public/imgs/News/BarSymphony/Diagrams.gif b/.output/public/imgs/News/BarSymphony/Diagrams.gif
deleted file mode 100644
index 1a2f669..0000000
Binary files a/.output/public/imgs/News/BarSymphony/Diagrams.gif and /dev/null differ
diff --git a/.output/public/imgs/News/BarSymphony/Elevation.jpg b/.output/public/imgs/News/BarSymphony/Elevation.jpg
deleted file mode 100644
index bc028a1..0000000
Binary files a/.output/public/imgs/News/BarSymphony/Elevation.jpg and /dev/null differ
diff --git a/.output/public/imgs/News/BarSymphony/FrontView.jpg b/.output/public/imgs/News/BarSymphony/FrontView.jpg
deleted file mode 100644
index 292a301..0000000
Binary files a/.output/public/imgs/News/BarSymphony/FrontView.jpg and /dev/null differ
diff --git a/.output/public/imgs/News/HoloWater/20230524153246.jpg b/.output/public/imgs/News/HoloWater/20230524153246.jpg
deleted file mode 100644
index 916ef9c..0000000
Binary files a/.output/public/imgs/News/HoloWater/20230524153246.jpg and /dev/null differ
diff --git a/.output/public/imgs/News/HoloWater/20230524153322.jpg b/.output/public/imgs/News/HoloWater/20230524153322.jpg
deleted file mode 100644
index 6f500bc..0000000
Binary files a/.output/public/imgs/News/HoloWater/20230524153322.jpg and /dev/null differ
diff --git a/.output/public/imgs/News/HoloWater/20230524162328.jpg b/.output/public/imgs/News/HoloWater/20230524162328.jpg
deleted file mode 100644
index 40a3ff7..0000000
Binary files a/.output/public/imgs/News/HoloWater/20230524162328.jpg and /dev/null differ
diff --git a/.output/public/imgs/News/HoloWater/20230524162358.jpg b/.output/public/imgs/News/HoloWater/20230524162358.jpg
deleted file mode 100644
index 9066e7e..0000000
Binary files a/.output/public/imgs/News/HoloWater/20230524162358.jpg and /dev/null differ
diff --git a/.output/public/imgs/News/HoloWater/20230524162415.jpg b/.output/public/imgs/News/HoloWater/20230524162415.jpg
deleted file mode 100644
index b176ff4..0000000
Binary files a/.output/public/imgs/News/HoloWater/20230524162415.jpg and /dev/null differ
diff --git a/.output/public/imgs/News/HoloWater/20230524162443.jpg b/.output/public/imgs/News/HoloWater/20230524162443.jpg
deleted file mode 100644
index 293a9c8..0000000
Binary files a/.output/public/imgs/News/HoloWater/20230524162443.jpg and /dev/null differ
diff --git a/.output/public/imgs/News/HoloWater/20230524162510.jpg b/.output/public/imgs/News/HoloWater/20230524162510.jpg
deleted file mode 100644
index c4aa057..0000000
Binary files a/.output/public/imgs/News/HoloWater/20230524162510.jpg and /dev/null differ
diff --git a/.output/public/imgs/News/HoloWater/20230524162540.jpg b/.output/public/imgs/News/HoloWater/20230524162540.jpg
deleted file mode 100644
index f06804b..0000000
Binary files a/.output/public/imgs/News/HoloWater/20230524162540.jpg and /dev/null differ
diff --git a/.output/public/imgs/News/HoloWater/20230524162603.jpg b/.output/public/imgs/News/HoloWater/20230524162603.jpg
deleted file mode 100644
index 0a98d73..0000000
Binary files a/.output/public/imgs/News/HoloWater/20230524162603.jpg and /dev/null differ
diff --git a/.output/public/imgs/News/HoloWater/20230524163453.jpg b/.output/public/imgs/News/HoloWater/20230524163453.jpg
deleted file mode 100644
index 1675a21..0000000
Binary files a/.output/public/imgs/News/HoloWater/20230524163453.jpg and /dev/null differ
diff --git a/.output/public/imgs/News/HoloWater/20230524163506.jpg b/.output/public/imgs/News/HoloWater/20230524163506.jpg
deleted file mode 100644
index 742c1b2..0000000
Binary files a/.output/public/imgs/News/HoloWater/20230524163506.jpg and /dev/null differ
diff --git a/.output/public/imgs/News/HoloWater/20230524163539.jpg b/.output/public/imgs/News/HoloWater/20230524163539.jpg
deleted file mode 100644
index 7800bbb..0000000
Binary files a/.output/public/imgs/News/HoloWater/20230524163539.jpg and /dev/null differ
diff --git a/.output/public/imgs/News/HoloWater/20230524163700.jpg b/.output/public/imgs/News/HoloWater/20230524163700.jpg
deleted file mode 100644
index 61c5e0a..0000000
Binary files a/.output/public/imgs/News/HoloWater/20230524163700.jpg and /dev/null differ
diff --git a/.output/public/imgs/News/PARCELCreatorverse/20221003225946.jpg b/.output/public/imgs/News/PARCELCreatorverse/20221003225946.jpg
deleted file mode 100644
index dcfdac3..0000000
Binary files a/.output/public/imgs/News/PARCELCreatorverse/20221003225946.jpg and /dev/null differ
diff --git a/.output/public/imgs/News/PARCELCreatorverse/20221003230015.jpg b/.output/public/imgs/News/PARCELCreatorverse/20221003230015.jpg
deleted file mode 100644
index f586ab2..0000000
Binary files a/.output/public/imgs/News/PARCELCreatorverse/20221003230015.jpg and /dev/null differ
diff --git a/.output/public/imgs/News/PARCELCreatorverse/20221003230258.jpg b/.output/public/imgs/News/PARCELCreatorverse/20221003230258.jpg
deleted file mode 100644
index 4ef412c..0000000
Binary files a/.output/public/imgs/News/PARCELCreatorverse/20221003230258.jpg and /dev/null differ
diff --git a/.output/public/imgs/News/PARCELCreatorverse/20221003230309.jpg b/.output/public/imgs/News/PARCELCreatorverse/20221003230309.jpg
deleted file mode 100644
index ce1253d..0000000
Binary files a/.output/public/imgs/News/PARCELCreatorverse/20221003230309.jpg and /dev/null differ
diff --git a/.output/public/imgs/News/PARCELCreatorverse/AwardImage.jpg b/.output/public/imgs/News/PARCELCreatorverse/AwardImage.jpg
deleted file mode 100644
index 33cb477..0000000
Binary files a/.output/public/imgs/News/PARCELCreatorverse/AwardImage.jpg and /dev/null differ
diff --git a/.output/public/imgs/Partners/500/Bit.Country.png b/.output/public/imgs/Partners/500/Bit.Country.png
deleted file mode 100644
index 2c9939d..0000000
Binary files a/.output/public/imgs/Partners/500/Bit.Country.png and /dev/null differ
diff --git a/.output/public/imgs/Partners/500/CASCI.png b/.output/public/imgs/Partners/500/CASCI.png
deleted file mode 100644
index 6445669..0000000
Binary files a/.output/public/imgs/Partners/500/CASCI.png and /dev/null differ
diff --git a/.output/public/imgs/Partners/500/ChinaTower.png b/.output/public/imgs/Partners/500/ChinaTower.png
deleted file mode 100644
index f625172..0000000
Binary files a/.output/public/imgs/Partners/500/ChinaTower.png and /dev/null differ
diff --git a/.output/public/imgs/Partners/500/MMMM.png b/.output/public/imgs/Partners/500/MMMM.png
deleted file mode 100644
index faa344e..0000000
Binary files a/.output/public/imgs/Partners/500/MMMM.png and /dev/null differ
diff --git a/.output/public/imgs/Partners/500/MONA.png b/.output/public/imgs/Partners/500/MONA.png
deleted file mode 100644
index 6e14fd8..0000000
Binary files a/.output/public/imgs/Partners/500/MONA.png and /dev/null differ
diff --git a/.output/public/imgs/Partners/500/MUA.png b/.output/public/imgs/Partners/500/MUA.png
deleted file mode 100644
index c9149bd..0000000
Binary files a/.output/public/imgs/Partners/500/MUA.png and /dev/null differ
diff --git a/.output/public/imgs/Partners/500/PARCEL.png b/.output/public/imgs/Partners/500/PARCEL.png
deleted file mode 100644
index ebc6e22..0000000
Binary files a/.output/public/imgs/Partners/500/PARCEL.png and /dev/null differ
diff --git a/.output/public/imgs/Partners/500/Ultiverse.png b/.output/public/imgs/Partners/500/Ultiverse.png
deleted file mode 100644
index 2bfd4b5..0000000
Binary files a/.output/public/imgs/Partners/500/Ultiverse.png and /dev/null differ
diff --git a/.output/public/imgs/Partners/CASCI.png b/.output/public/imgs/Partners/CASCI.png
deleted file mode 100644
index 19d4049..0000000
Binary files a/.output/public/imgs/Partners/CASCI.png and /dev/null differ
diff --git a/.output/public/imgs/Partners/ChinaTower.svg b/.output/public/imgs/Partners/ChinaTower.svg
deleted file mode 100644
index 17069bf..0000000
--- a/.output/public/imgs/Partners/ChinaTower.svg
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-
diff --git a/.output/public/imgs/Partners/MMMM.png b/.output/public/imgs/Partners/MMMM.png
deleted file mode 100644
index 1d50f83..0000000
Binary files a/.output/public/imgs/Partners/MMMM.png and /dev/null differ
diff --git a/.output/public/imgs/Partners/MONAVERSE.webp b/.output/public/imgs/Partners/MONAVERSE.webp
deleted file mode 100644
index f64859a..0000000
Binary files a/.output/public/imgs/Partners/MONAVERSE.webp and /dev/null differ
diff --git a/.output/public/imgs/Partners/MUA.png b/.output/public/imgs/Partners/MUA.png
deleted file mode 100644
index 91453b0..0000000
Binary files a/.output/public/imgs/Partners/MUA.png and /dev/null differ
diff --git a/.output/public/imgs/Partners/MUA_Black.png b/.output/public/imgs/Partners/MUA_Black.png
deleted file mode 100644
index d78b926..0000000
Binary files a/.output/public/imgs/Partners/MUA_Black.png and /dev/null differ
diff --git a/.output/public/imgs/Partners/PARCEL.png b/.output/public/imgs/Partners/PARCEL.png
deleted file mode 100644
index 447e443..0000000
Binary files a/.output/public/imgs/Partners/PARCEL.png and /dev/null differ
diff --git a/.output/public/imgs/Partners/Ultiverse.png b/.output/public/imgs/Partners/Ultiverse.png
deleted file mode 100644
index 5532a44..0000000
Binary files a/.output/public/imgs/Partners/Ultiverse.png and /dev/null differ
diff --git a/.output/public/imgs/Partners/bc-font-logo.png b/.output/public/imgs/Partners/bc-font-logo.png
deleted file mode 100644
index f0568eb..0000000
Binary files a/.output/public/imgs/Partners/bc-font-logo.png and /dev/null differ
diff --git a/.output/public/imgs/Project/Metaverse-Build/MusicVenue.jpg b/.output/public/imgs/Project/Metaverse-Build/MusicVenue.jpg
deleted file mode 100644
index a89c6dc..0000000
Binary files a/.output/public/imgs/Project/Metaverse-Build/MusicVenue.jpg and /dev/null differ
diff --git a/.output/public/index.html b/.output/public/index.html
deleted file mode 100644
index 610eaf6..0000000
--- a/.output/public/index.html
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.output/public/manifest.webmanifest b/.output/public/manifest.webmanifest
deleted file mode 100644
index b4af10b..0000000
--- a/.output/public/manifest.webmanifest
+++ /dev/null
@@ -1 +0,0 @@
-{"name":"Topverse","short_name":"Topverse","start_url":"/","display":"standalone","background_color":"#ffffff","lang":"en","scope":"/","id":"/","description":"Topverse website","theme_color":"#ffffff","icons":[{"src":"pwa-192x192.png","sizes":"192x192","type":"image/png"},{"src":"pwa-512x512.png","sizes":"512x512","type":"image/png"},{"src":"maskable-icon.png","sizes":"512x512","type":"image/png","purpose":"any maskable"}]}
diff --git a/.output/public/maskable-icon.png b/.output/public/maskable-icon.png
deleted file mode 100644
index b6b53b0..0000000
Binary files a/.output/public/maskable-icon.png and /dev/null differ
diff --git a/.output/public/model/apple_watch/scene.bin b/.output/public/model/apple_watch/scene.bin
deleted file mode 100644
index 4ac1c7b..0000000
Binary files a/.output/public/model/apple_watch/scene.bin and /dev/null differ
diff --git a/.output/public/model/apple_watch/scene.gltf b/.output/public/model/apple_watch/scene.gltf
deleted file mode 100644
index e11108c..0000000
--- a/.output/public/model/apple_watch/scene.gltf
+++ /dev/null
@@ -1,859 +0,0 @@
-{
- "accessors": [
- {
- "bufferView": 2,
- "componentType": 5126,
- "count": 4645,
- "max": [
- 0.15593819320201874,
- 0.4954397976398468,
- 0.2312137633562088
- ],
- "min": [
- -0.1881517767906189,
- -0.46612018346786499,
- -0.41373628377914429
- ],
- "type": "VEC3"
- },
- {
- "bufferView": 2,
- "byteOffset": 55740,
- "componentType": 5126,
- "count": 4645,
- "max": [
- 1,
- 0.99730271100997925,
- 1
- ],
- "min": [
- -1,
- -0.99730193614959717,
- -1
- ],
- "type": "VEC3"
- },
- {
- "bufferView": 1,
- "componentType": 5126,
- "count": 4645,
- "max": [
- 1,
- 1.0019500255584717
- ],
- "min": [
- 0,
- -0.0010706186294555664
- ],
- "type": "VEC2"
- },
- {
- "bufferView": 0,
- "componentType": 5125,
- "count": 8106,
- "max": [
- 4644
- ],
- "min": [
- 0
- ],
- "type": "SCALAR"
- },
- {
- "bufferView": 2,
- "byteOffset": 111480,
- "componentType": 5126,
- "count": 3142,
- "max": [
- 0.17427688837051392,
- 0.2211698591709137,
- 0.24031378328800201
- ],
- "min": [
- -0.20255178213119507,
- -0.21402016282081604,
- 0.16334772109985352
- ],
- "type": "VEC3"
- },
- {
- "bufferView": 2,
- "byteOffset": 149184,
- "componentType": 5126,
- "count": 3142,
- "max": [
- 1,
- 1,
- 1
- ],
- "min": [
- -0.9999079704284668,
- -1,
- -1
- ],
- "type": "VEC3"
- },
- {
- "bufferView": 1,
- "byteOffset": 37160,
- "componentType": 5126,
- "count": 3142,
- "max": [
- 1,
- 1.0070853233337402
- ],
- "min": [
- 0,
- -0.0092091560363769531
- ],
- "type": "VEC2"
- },
- {
- "bufferView": 0,
- "byteOffset": 32424,
- "componentType": 5125,
- "count": 6576,
- "max": [
- 3141
- ],
- "min": [
- 0
- ],
- "type": "SCALAR"
- },
- {
- "bufferView": 2,
- "byteOffset": 186888,
- "componentType": 5126,
- "count": 863,
- "max": [
- 0.15413898229598999,
- 0.20605984330177307,
- 0.24935758113861084
- ],
- "min": [
- -0.18751257658004761,
- -0.1896701455116272,
- 0.24031360447406769
- ],
- "type": "VEC3"
- },
- {
- "bufferView": 2,
- "byteOffset": 197244,
- "componentType": 5126,
- "count": 863,
- "max": [
- 0.58944994211196899,
- 0.55895239114761353,
- 1
- ],
- "min": [
- -0.54902809858322144,
- -0.51955568790435791,
- 0.73401814699172974
- ],
- "type": "VEC3"
- },
- {
- "bufferView": 1,
- "byteOffset": 62296,
- "componentType": 5126,
- "count": 863,
- "max": [
- 1,
- 1.000019907951355
- ],
- "min": [
- 0,
- -0.00037050247192382812
- ],
- "type": "VEC2"
- },
- {
- "bufferView": 0,
- "byteOffset": 58728,
- "componentType": 5125,
- "count": 1161,
- "max": [
- 862
- ],
- "min": [
- 0
- ],
- "type": "SCALAR"
- },
- {
- "bufferView": 2,
- "byteOffset": 207600,
- "componentType": 5126,
- "count": 282,
- "max": [
- 0.17417821288108826,
- 0.12045985460281372,
- 0.24910156428813934
- ],
- "min": [
- -0.15225180983543396,
- -0.19891026616096497,
- 0.15206214785575867
- ],
- "type": "VEC3"
- },
- {
- "bufferView": 2,
- "byteOffset": 210984,
- "componentType": 5126,
- "count": 282,
- "max": [
- 1,
- 0.43425607681274414,
- 0.99051189422607422
- ],
- "min": [
- -0.43105193972587585,
- -0.55823338031768799,
- -0.99971562623977661
- ],
- "type": "VEC3"
- },
- {
- "bufferView": 1,
- "byteOffset": 69200,
- "componentType": 5126,
- "count": 282,
- "max": [
- 1,
- 1
- ],
- "min": [
- -0.00018715858459472656,
- -0.00018715858459472656
- ],
- "type": "VEC2"
- },
- {
- "bufferView": 0,
- "byteOffset": 63372,
- "componentType": 5125,
- "count": 510,
- "max": [
- 281
- ],
- "min": [
- 0
- ],
- "type": "SCALAR"
- },
- {
- "bufferView": 2,
- "byteOffset": 214368,
- "componentType": 5126,
- "count": 4,
- "max": [
- 0.11043820530176163,
- 0.1609998494386673,
- 0.24922379851341248
- ],
- "min": [
- -0.14155179262161255,
- -0.15619014203548431,
- 0.2492237389087677
- ],
- "type": "VEC3"
- },
- {
- "bufferView": 2,
- "byteOffset": 214416,
- "componentType": 5126,
- "count": 4,
- "max": [
- 0,
- -1.8791465095091553e-07,
- 1
- ],
- "min": [
- -0.00029062159592285752,
- -0.00016795359260868281,
- 0.99999994039535522
- ],
- "type": "VEC3"
- },
- {
- "bufferView": 1,
- "byteOffset": 71456,
- "componentType": 5126,
- "count": 4,
- "max": [
- 1,
- 1
- ],
- "min": [
- 0,
- 0
- ],
- "type": "VEC2"
- },
- {
- "bufferView": 0,
- "byteOffset": 65412,
- "componentType": 5125,
- "count": 6,
- "max": [
- 3
- ],
- "min": [
- 0
- ],
- "type": "SCALAR"
- },
- {
- "bufferView": 2,
- "byteOffset": 214464,
- "componentType": 5126,
- "count": 24,
- "max": [
- 0.021478218957781792,
- 0.039079908281564713,
- -0.21856626868247986
- ],
- "min": [
- -0.050281789153814316,
- -0.014850087463855743,
- -0.2654462456703186
- ],
- "type": "VEC3"
- },
- {
- "bufferView": 2,
- "byteOffset": 214752,
- "componentType": 5126,
- "count": 24,
- "max": [
- 0.000964031380135566,
- 0.6570812463760376,
- 0.75921422243118286
- ],
- "min": [
- -0.0021262308582663536,
- 0.65083736181259155,
- 0.75381976366043091
- ],
- "type": "VEC3"
- },
- {
- "bufferView": 1,
- "byteOffset": 71488,
- "componentType": 5126,
- "count": 24,
- "max": [
- 1,
- 1
- ],
- "min": [
- 1,
- 0
- ],
- "type": "VEC2"
- },
- {
- "bufferView": 0,
- "byteOffset": 65436,
- "componentType": 5125,
- "count": 66,
- "max": [
- 23
- ],
- "min": [
- 0
- ],
- "type": "SCALAR"
- },
- {
- "bufferView": 2,
- "byteOffset": 215040,
- "componentType": 5126,
- "count": 480,
- "max": [
- 0.10829821974039078,
- 0.1598198264837265,
- 0.24945114552974701
- ],
- "min": [
- -0.13978180289268494,
- -0.14530016481876373,
- 0.24945105612277985
- ],
- "type": "VEC3"
- },
- {
- "bufferView": 2,
- "byteOffset": 220800,
- "componentType": 5126,
- "count": 480,
- "max": [
- 7.1167471560329432e-07,
- 0,
- 1
- ],
- "min": [
- -1.2566558780235937e-06,
- -4.1125608163383731e-07,
- 1
- ],
- "type": "VEC3"
- },
- {
- "bufferView": 1,
- "byteOffset": 71680,
- "componentType": 5126,
- "count": 480,
- "max": [
- -0.49343889951705933,
- -0.30761799216270447
- ],
- "min": [
- -0.70827299356460571,
- -0.70429098606109619
- ],
- "type": "VEC2"
- },
- {
- "bufferView": 0,
- "byteOffset": 65700,
- "componentType": 5125,
- "count": 1320,
- "max": [
- 479
- ],
- "min": [
- 0
- ],
- "type": "SCALAR"
- }
- ],
- "asset": {
- "extras": {
- "author": "OneSteven (https://sketchfab.com/Steven007)",
- "license": "CC-BY-NC-SA-4.0 (http://creativecommons.org/licenses/by-nc-sa/4.0/)",
- "source": "https://sketchfab.com/3d-models/apple-watch-4bf804c0b2ed44bd92da4ae23be0753c",
- "title": "Apple Watch"
- },
- "generator": "Sketchfab-8.33.0",
- "version": "2.0"
- },
- "bufferViews": [
- {
- "buffer": 0,
- "byteLength": 70980,
- "byteOffset": 0,
- "name": "floatBufferViews",
- "target": 34963
- },
- {
- "buffer": 0,
- "byteLength": 75520,
- "byteOffset": 70980,
- "byteStride": 8,
- "name": "floatBufferViews",
- "target": 34962
- },
- {
- "buffer": 0,
- "byteLength": 226560,
- "byteOffset": 146500,
- "byteStride": 12,
- "name": "floatBufferViews",
- "target": 34962
- }
- ],
- "buffers": [
- {
- "byteLength": 373060,
- "uri": "scene.bin"
- }
- ],
- "images": [
- {
- "uri": "textures/material_baseColor.jpeg"
- }
- ],
- "materials": [
- {
- "doubleSided": false,
- "emissiveFactor": [
- 0,
- 0,
- 0
- ],
- "name": "band",
- "pbrMetallicRoughness": {
- "baseColorFactor": [
- 0.025165096170800066,
- 0.025165096170800066,
- 0.025165096170800066,
- 1
- ],
- "metallicFactor": 1,
- "roughnessFactor": 0.6394735002097609
- }
- },
- {
- "doubleSided": true,
- "emissiveFactor": [
- 0,
- 0,
- 0
- ],
- "name": "wmettle",
- "pbrMetallicRoughness": {
- "baseColorFactor": [
- 0.65513779080330381,
- 0.65513779080330381,
- 0.65513779080330381,
- 1
- ],
- "metallicFactor": 1,
- "roughnessFactor": 0.47531281730132002
- }
- },
- {
- "doubleSided": true,
- "emissiveFactor": [
- 0,
- 0,
- 0
- ],
- "name": "glck",
- "pbrMetallicRoughness": {
- "baseColorFactor": [
- 0,
- 0,
- 0,
- 1
- ],
- "metallicFactor": 0,
- "roughnessFactor": 0
- }
- },
- {
- "doubleSided": true,
- "emissiveFactor": [
- 0,
- 0,
- 0
- ],
- "name": "grey",
- "pbrMetallicRoughness": {
- "baseColorFactor": [
- 0.094117999999999993,
- 0.094117999999999993,
- 0.094117999999999993,
- 1
- ],
- "metallicFactor": 1,
- "roughnessFactor": 0.35979233673612088
- }
- },
- {
- "doubleSided": true,
- "emissiveFactor": [
- 0,
- 0,
- 0
- ],
- "name": "blastic",
- "pbrMetallicRoughness": {
- "baseColorFactor": [
- 0,
- 0,
- 0,
- 1
- ],
- "metallicFactor": 0,
- "roughnessFactor": 0
- }
- },
- {
- "doubleSided": true,
- "emissiveFactor": [
- 0,
- 0,
- 0
- ],
- "name": "aniostropic_met",
- "pbrMetallicRoughness": {
- "baseColorFactor": [
- 1,
- 1,
- 1,
- 1
- ],
- "metallicFactor": 1,
- "roughnessFactor": 0.33547223556450001
- }
- },
- {
- "doubleSided": true,
- "emissiveFactor": [
- 0,
- 0,
- 0
- ],
- "name": "material",
- "pbrMetallicRoughness": {
- "baseColorFactor": [
- 1,
- 1,
- 1,
- 1
- ],
- "baseColorTexture": {
- "index": 0,
- "texCoord": 0
- },
- "metallicFactor": 0,
- "roughnessFactor": 0
- }
- }
- ],
- "meshes": [
- {
- "name": "Apple Watch.001_band_0",
- "primitives": [
- {
- "attributes": {
- "NORMAL": 1,
- "POSITION": 0,
- "TEXCOORD_0": 2
- },
- "indices": 3,
- "material": 0,
- "mode": 4
- }
- ]
- },
- {
- "name": "Apple Watch.001_wmettle_0",
- "primitives": [
- {
- "attributes": {
- "NORMAL": 5,
- "POSITION": 4,
- "TEXCOORD_0": 6
- },
- "indices": 7,
- "material": 1,
- "mode": 4
- }
- ]
- },
- {
- "name": "Apple Watch.001_glck_0",
- "primitives": [
- {
- "attributes": {
- "NORMAL": 9,
- "POSITION": 8,
- "TEXCOORD_0": 10
- },
- "indices": 11,
- "material": 2,
- "mode": 4
- }
- ]
- },
- {
- "name": "Apple Watch.001_grey_0",
- "primitives": [
- {
- "attributes": {
- "NORMAL": 13,
- "POSITION": 12,
- "TEXCOORD_0": 14
- },
- "indices": 15,
- "material": 3,
- "mode": 4
- }
- ]
- },
- {
- "name": "Apple Watch.001_blastic_0",
- "primitives": [
- {
- "attributes": {
- "NORMAL": 17,
- "POSITION": 16,
- "TEXCOORD_0": 18
- },
- "indices": 19,
- "material": 4,
- "mode": 4
- }
- ]
- },
- {
- "name": "Apple Watch.001_aniostropic met_0",
- "primitives": [
- {
- "attributes": {
- "NORMAL": 21,
- "POSITION": 20,
- "TEXCOORD_0": 22
- },
- "indices": 23,
- "material": 5,
- "mode": 4
- }
- ]
- },
- {
- "name": "Apple Watch.001_icn_0",
- "primitives": [
- {
- "attributes": {
- "NORMAL": 25,
- "POSITION": 24,
- "TEXCOORD_0": 26
- },
- "indices": 27,
- "material": 6,
- "mode": 4
- }
- ]
- }
- ],
- "nodes": [
- {
- "children": [
- 1
- ],
- "name": "RootNode (gltf orientation matrix)",
- "rotation": [
- -0.70710678118654746,
- -0,
- -0,
- 0.70710678118654757
- ]
- },
- {
- "children": [
- 2
- ],
- "name": "RootNode (model correction matrix)"
- },
- {
- "children": [
- 3
- ],
- "matrix": [
- 1,
- 0,
- 0,
- 0,
- 0,
- 0,
- 1,
- 0,
- 0,
- -1,
- 0,
- 0,
- 0,
- 0,
- 0,
- 1
- ],
- "name": "Apple Watch.fbx"
- },
- {
- "children": [
- 4
- ],
- "name": "RootNode"
- },
- {
- "children": [
- 5,
- 6,
- 7,
- 8,
- 9,
- 10,
- 11
- ],
- "matrix": [
- 100,
- 0,
- 0,
- 0,
- 0,
- -1.6292067939183141e-05,
- -99.999999999998678,
- 0,
- 0,
- 99.999999999998678,
- -1.6292067939183141e-05,
- 0,
- 0,
- 0,
- 0,
- 1
- ],
- "name": "Apple Watch.001"
- },
- {
- "mesh": 0,
- "name": "Apple Watch.001_band_0"
- },
- {
- "mesh": 1,
- "name": "Apple Watch.001_wmettle_0"
- },
- {
- "mesh": 2,
- "name": "Apple Watch.001_glck_0"
- },
- {
- "mesh": 3,
- "name": "Apple Watch.001_grey_0"
- },
- {
- "mesh": 4,
- "name": "Apple Watch.001_blastic_0"
- },
- {
- "mesh": 5,
- "name": "Apple Watch.001_aniostropic met_0"
- },
- {
- "mesh": 6,
- "name": "Apple Watch.001_icn_0"
- }
- ],
- "samplers": [
- {
- "magFilter": 9729,
- "minFilter": 9987,
- "wrapS": 10497,
- "wrapT": 10497
- }
- ],
- "scene": 0,
- "scenes": [
- {
- "name": "OSG_Scene",
- "nodes": [
- 0
- ]
- }
- ],
- "textures": [
- {
- "sampler": 0,
- "source": 0
- }
- ]
-}
-
diff --git a/.output/public/model/apple_watch/textures/material_baseColor.jpeg b/.output/public/model/apple_watch/textures/material_baseColor.jpeg
deleted file mode 100644
index 40aee3c..0000000
Binary files a/.output/public/model/apple_watch/textures/material_baseColor.jpeg and /dev/null differ
diff --git a/.output/public/model/house/Night-City.bin b/.output/public/model/house/Night-City.bin
deleted file mode 100644
index a62ed01..0000000
Binary files a/.output/public/model/house/Night-City.bin and /dev/null differ
diff --git a/.output/public/model/house/Night-City.gltf b/.output/public/model/house/Night-City.gltf
deleted file mode 100644
index f123ba9..0000000
--- a/.output/public/model/house/Night-City.gltf
+++ /dev/null
@@ -1,379 +0,0 @@
-{
- "asset" : {
- "copyright" : "TOPVERSE\u00ae Lab",
- "generator" : "Khronos glTF Blender I/O v1.8.19",
- "version" : "2.0"
- },
- "scene" : 0,
- "scenes" : [
- {
- "name" : "Scene",
- "nodes" : [
- 2,
- 3
- ]
- }
- ],
- "nodes" : [
- {
- "mesh" : 0,
- "name" : "Object_2"
- },
- {
- "children" : [
- 0
- ],
- "name" : "minitown.obj.cleaner.materialmerger.gles"
- },
- {
- "children" : [
- 1
- ],
- "name" : "Sketchfab_model",
- "rotation" : [
- -0.7071068286895752,
- 0,
- 0,
- 0.7071068286895752
- ]
- },
- {
- "mesh" : 1,
- "name" : "TOPVERSE.001",
- "rotation" : [
- 0.7071068286895752,
- 0,
- 0,
- 0.7071067094802856
- ],
- "scale" : [
- 5,
- 5,
- 5
- ],
- "translation" : [
- 0,
- -37.78886795043945,
- 0
- ]
- }
- ],
- "animations" : [
- {
- "channels" : [
- {
- "sampler" : 0,
- "target" : {
- "node" : 0,
- "path" : "rotation"
- }
- }
- ],
- "name" : "Object_2Action.001",
- "samplers" : [
- {
- "input" : 8,
- "interpolation" : "LINEAR",
- "output" : 9
- }
- ]
- },
- {
- "channels" : [
- {
- "sampler" : 0,
- "target" : {
- "node" : 3,
- "path" : "translation"
- }
- },
- {
- "sampler" : 1,
- "target" : {
- "node" : 3,
- "path" : "rotation"
- }
- }
- ],
- "name" : "TOPVERSE.001Action",
- "samplers" : [
- {
- "input" : 8,
- "interpolation" : "LINEAR",
- "output" : 10
- },
- {
- "input" : 8,
- "interpolation" : "LINEAR",
- "output" : 11
- }
- ]
- }
- ],
- "materials" : [
- {
- "doubleSided" : true,
- "emissiveFactor" : [
- 1,
- 1,
- 1
- ],
- "emissiveTexture" : {
- "index" : 0
- },
- "name" : "palette",
- "pbrMetallicRoughness" : {
- "baseColorTexture" : {
- "index" : 1
- },
- "metallicFactor" : 0,
- "roughnessFactor" : 0.6000000238418579
- }
- },
- {
- "doubleSided" : true,
- "emissiveFactor" : [
- 1,
- 0.31673055408137074,
- 1
- ],
- "name" : "TOPVERSE",
- "pbrMetallicRoughness" : {
- "baseColorFactor" : [
- 0.8000000715255737,
- 0,
- 0.6408453583717346,
- 1
- ],
- "metallicFactor" : 0,
- "roughnessFactor" : 0.5
- }
- }
- ],
- "meshes" : [
- {
- "name" : "Object_0",
- "primitives" : [
- {
- "attributes" : {
- "POSITION" : 0,
- "NORMAL" : 1,
- "TEXCOORD_0" : 2
- },
- "indices" : 3,
- "material" : 0
- }
- ]
- },
- {
- "name" : "TOPVERSE.001",
- "primitives" : [
- {
- "attributes" : {
- "POSITION" : 4,
- "NORMAL" : 5,
- "TEXCOORD_0" : 6
- },
- "indices" : 7,
- "material" : 1
- }
- ]
- }
- ],
- "textures" : [
- {
- "sampler" : 0,
- "source" : 0
- },
- {
- "sampler" : 0,
- "source" : 1
- }
- ],
- "images" : [
- {
- "mimeType" : "image/png",
- "name" : "palette_emissive",
- "uri" : "Texture/palette_emissive.png"
- },
- {
- "mimeType" : "image/png",
- "name" : "palette_baseColor",
- "uri" : "Texture/palette_baseColor.png"
- }
- ],
- "accessors" : [
- {
- "bufferView" : 0,
- "componentType" : 5126,
- "count" : 20100,
- "max" : [
- 63,
- 63,
- 97
- ],
- "min" : [
- -63,
- -63,
- 0
- ],
- "type" : "VEC3"
- },
- {
- "bufferView" : 1,
- "componentType" : 5126,
- "count" : 20100,
- "type" : "VEC3"
- },
- {
- "bufferView" : 2,
- "componentType" : 5126,
- "count" : 20100,
- "type" : "VEC2"
- },
- {
- "bufferView" : 3,
- "componentType" : 5123,
- "count" : 39246,
- "type" : "SCALAR"
- },
- {
- "bufferView" : 4,
- "componentType" : 5126,
- "count" : 1250,
- "max" : [
- 6.3772993087768555,
- 9.413726806640625,
- -16.431156158447266
- ],
- "min" : [
- -4.461350917816162,
- 9.353727340698242,
- -17.58384895324707
- ],
- "type" : "VEC3"
- },
- {
- "bufferView" : 5,
- "componentType" : 5126,
- "count" : 1250,
- "type" : "VEC3"
- },
- {
- "bufferView" : 6,
- "componentType" : 5126,
- "count" : 1250,
- "type" : "VEC2"
- },
- {
- "bufferView" : 7,
- "componentType" : 5123,
- "count" : 3048,
- "type" : "SCALAR"
- },
- {
- "bufferView" : 8,
- "componentType" : 5126,
- "count" : 211,
- "max" : [
- 8.75
- ],
- "min" : [
- 0
- ],
- "type" : "SCALAR"
- },
- {
- "bufferView" : 9,
- "componentType" : 5126,
- "count" : 211,
- "type" : "VEC4"
- },
- {
- "bufferView" : 10,
- "componentType" : 5126,
- "count" : 211,
- "type" : "VEC3"
- },
- {
- "bufferView" : 11,
- "componentType" : 5126,
- "count" : 211,
- "type" : "VEC4"
- }
- ],
- "bufferViews" : [
- {
- "buffer" : 0,
- "byteLength" : 241200,
- "byteOffset" : 0
- },
- {
- "buffer" : 0,
- "byteLength" : 241200,
- "byteOffset" : 241200
- },
- {
- "buffer" : 0,
- "byteLength" : 160800,
- "byteOffset" : 482400
- },
- {
- "buffer" : 0,
- "byteLength" : 78492,
- "byteOffset" : 643200
- },
- {
- "buffer" : 0,
- "byteLength" : 15000,
- "byteOffset" : 721692
- },
- {
- "buffer" : 0,
- "byteLength" : 15000,
- "byteOffset" : 736692
- },
- {
- "buffer" : 0,
- "byteLength" : 10000,
- "byteOffset" : 751692
- },
- {
- "buffer" : 0,
- "byteLength" : 6096,
- "byteOffset" : 761692
- },
- {
- "buffer" : 0,
- "byteLength" : 844,
- "byteOffset" : 767788
- },
- {
- "buffer" : 0,
- "byteLength" : 3376,
- "byteOffset" : 768632
- },
- {
- "buffer" : 0,
- "byteLength" : 2532,
- "byteOffset" : 772008
- },
- {
- "buffer" : 0,
- "byteLength" : 3376,
- "byteOffset" : 774540
- }
- ],
- "samplers" : [
- {
- "magFilter" : 9729,
- "minFilter" : 9987
- }
- ],
- "buffers" : [
- {
- "byteLength" : 777916,
- "uri" : "Night-City.bin"
- }
- ]
-}
diff --git a/.output/public/model/house/Texture/palette_baseColor.png b/.output/public/model/house/Texture/palette_baseColor.png
deleted file mode 100644
index 2142a41..0000000
Binary files a/.output/public/model/house/Texture/palette_baseColor.png and /dev/null differ
diff --git a/.output/public/model/house/Texture/palette_emissive.png b/.output/public/model/house/Texture/palette_emissive.png
deleted file mode 100644
index 629a6f8..0000000
Binary files a/.output/public/model/house/Texture/palette_emissive.png and /dev/null differ
diff --git a/.output/public/pwa-192x192.png b/.output/public/pwa-192x192.png
deleted file mode 100644
index b621553..0000000
Binary files a/.output/public/pwa-192x192.png and /dev/null differ
diff --git a/.output/public/pwa-512x512.png b/.output/public/pwa-512x512.png
deleted file mode 100644
index b6b53b0..0000000
Binary files a/.output/public/pwa-512x512.png and /dev/null differ
diff --git a/.output/public/robots.txt b/.output/public/robots.txt
deleted file mode 100644
index c2a49f4..0000000
--- a/.output/public/robots.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-User-agent: *
-Allow: /
diff --git a/.output/public/sw.js b/.output/public/sw.js
deleted file mode 100644
index 70e3840..0000000
--- a/.output/public/sw.js
+++ /dev/null
@@ -1 +0,0 @@
-if(!self.define){let e,n={};const r=(r,l)=>(r=new URL(r+".js",l).href,n[r]||new Promise((n=>{if("document"in self){const e=document.createElement("script");e.src=r,e.onload=n,document.head.appendChild(e)}else e=r,importScripts(r),n()})).then((()=>{let e=n[r];if(!e)throw new Error(`Module ${r} didn’t register its module`);return e})));self.define=(l,u)=>{const s=e||("document"in self?document.currentScript.src:"")||location.href;if(n[s])return;let i={};const o=e=>r(e,s),t={module:{uri:s},exports:i,require:o};n[s]=Promise.all(l.map((e=>t[e]||o(e)))).then((e=>(u(...e),i)))}}define(["./workbox-de803542"],(function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"_nuxt/_...all_.5ee9e1c3.js",revision:null},{url:"_nuxt/_...all_.77f1ccf1.js",revision:null},{url:"_nuxt/_...all_.fa16fdec.js",revision:null},{url:"_nuxt/_id_.5c5ad31e.js",revision:null},{url:"_nuxt/_plugin-vue_export-helper.c27b6911.js",revision:null},{url:"_nuxt/aaao.78c23f18.js",revision:null},{url:"_nuxt/about.e50a4178.js",revision:null},{url:"_nuxt/Banner.6a300a7f.js",revision:null},{url:"_nuxt/Banner.vue.1f31f961.js",revision:null},{url:"_nuxt/cannon-es.73300c7b.js",revision:null},{url:"_nuxt/Carousel.c62e79de.js",revision:null},{url:"_nuxt/Carousel.vue.6e7243cf.js",revision:null},{url:"_nuxt/client-db.eac4097b.js",revision:null},{url:"_nuxt/community.c8731da5.js",revision:null},{url:"_nuxt/composables.32bda98c.js",revision:null},{url:"_nuxt/computeBVH.5dcb94e7.js",revision:null},{url:"_nuxt/content.79101152.js",revision:null},{url:"_nuxt/content.vue.5bdad95e.js",revision:null},{url:"_nuxt/ContentDoc.4162eb3b.js",revision:null},{url:"_nuxt/ContentList.f5b6d828.js",revision:null},{url:"_nuxt/ContentNavigation.a74d6c1a.js",revision:null},{url:"_nuxt/ContentQuery.0a0fba33.js",revision:null},{url:"_nuxt/ContentRenderer.481adcc1.js",revision:null},{url:"_nuxt/ContentRendererMarkdown.e126b41e.js",revision:null},{url:"_nuxt/ContentSlot.33fcac75.js",revision:null},{url:"_nuxt/Counter.6cba8048.js",revision:null},{url:"_nuxt/DarkToggle.910acd3e.js",revision:null},{url:"_nuxt/DarkToggle.vue.11e0c964.js",revision:null},{url:"_nuxt/default.5a2af4c6.js",revision:null},{url:"_nuxt/Divider.fcb72835.js",revision:null},{url:"_nuxt/Divider.vue.7efc458e.js",revision:null},{url:"_nuxt/DocumentDrivenEmpty.2271d140.js",revision:null},{url:"_nuxt/DocumentDrivenNotFound.4106c912.js",revision:null},{url:"_nuxt/en-UK.80815c31.js",revision:null},{url:"_nuxt/enableBVHCamera.d706efce.js",revision:null},{url:"_nuxt/enableBVHCharacter.a000ab42.js",revision:null},{url:"_nuxt/enableBVHMap.dd5c5158.js",revision:null},{url:"_nuxt/enableCannon.14a31f20.js",revision:null},{url:"_nuxt/enableMouseControl.62cb9726.js",revision:null},{url:"_nuxt/entry.38ff3298.css",revision:null},{url:"_nuxt/entry.a9da3666.js",revision:null},{url:"_nuxt/error-404.139f1dcf.js",revision:null},{url:"_nuxt/error-404.23f2309d.css",revision:null},{url:"_nuxt/error-500.5a6b6ed1.js",revision:null},{url:"_nuxt/error-500.aa16ed4d.css",revision:null},{url:"_nuxt/error-component.7afbe737.js",revision:null},{url:"_nuxt/Footer.a4c6aa0e.js",revision:null},{url:"_nuxt/GradientCard.397c19b6.js",revision:null},{url:"_nuxt/GradientCard.vue.b58495f4.js",revision:null},{url:"_nuxt/header.6c1e5c5b.js",revision:null},{url:"_nuxt/home.abaaf411.js",revision:null},{url:"_nuxt/howler.025f64e4.js",revision:null},{url:"_nuxt/ImageHover.ab62b3a5.js",revision:null},{url:"_nuxt/ImageHover.e961fd97.css",revision:null},{url:"_nuxt/ImageLoading.430b85cb.js",revision:null},{url:"_nuxt/ImageLoading.vue.8adc85b0.js",revision:null},{url:"_nuxt/index.24c81cf7.css",revision:null},{url:"_nuxt/index.393f2132.js",revision:null},{url:"_nuxt/index.452673de.js",revision:null},{url:"_nuxt/index.79b7297c.js",revision:null},{url:"_nuxt/index.a6ef77ff.js",revision:null},{url:"_nuxt/InputEntry.c175eaad.js",revision:null},{url:"_nuxt/land.eecb7e66.js",revision:null},{url:"_nuxt/loadFBX.1c289084.js",revision:null},{url:"_nuxt/loadGLTF.c72f0756.js",revision:null},{url:"_nuxt/loadSVG.3be2b1a7.js",revision:null},{url:"_nuxt/LocaleNuxtLink.4993d0fe.js",revision:null},{url:"_nuxt/LocaleNuxtLink.vue.7701dfc7.js",revision:null},{url:"_nuxt/logo.aeb010d2.js",revision:null},{url:"_nuxt/Logos.98e98110.js",revision:null},{url:"_nuxt/Markdown.c7e6cea8.js",revision:null},{url:"_nuxt/MeshReflectorMaterial.2db91439.js",revision:null},{url:"_nuxt/model.c232269c.js",revision:null},{url:"_nuxt/model.vue.8bde3f16.js",revision:null},{url:"_nuxt/nav.418e4246.js",revision:null},{url:"_nuxt/nav.vue.3abc6fda.js",revision:null},{url:"_nuxt/nuxt-link.ef4ee852.js",revision:null},{url:"_nuxt/PageView.03c0021d.js",revision:null},{url:"_nuxt/parser-babel.aba579a4.js",revision:null},{url:"_nuxt/parser-html.2d295e3e.js",revision:null},{url:"_nuxt/preview.54c7caf8.js",revision:null},{url:"_nuxt/ProseA.d81475ef.js",revision:null},{url:"_nuxt/ProseBlockquote.27c3c135.js",revision:null},{url:"_nuxt/ProseCode.7f66e56f.js",revision:null},{url:"_nuxt/ProseCode.e63e49c6.css",revision:null},{url:"_nuxt/ProseCodeInline.ea1818cf.js",revision:null},{url:"_nuxt/ProseEm.4d6db384.js",revision:null},{url:"_nuxt/ProseH1.53000a50.js",revision:null},{url:"_nuxt/ProseH2.bed117c6.js",revision:null},{url:"_nuxt/ProseH3.7d82d404.js",revision:null},{url:"_nuxt/ProseH4.2c98ed25.js",revision:null},{url:"_nuxt/ProseH5.117cb22a.js",revision:null},{url:"_nuxt/ProseH6.e2525bf6.js",revision:null},{url:"_nuxt/ProseHr.fcb60c0d.js",revision:null},{url:"_nuxt/ProseImg.27a55e27.js",revision:null},{url:"_nuxt/ProseLi.6ebfe198.js",revision:null},{url:"_nuxt/ProseOl.b2be5157.js",revision:null},{url:"_nuxt/ProseP.517327d3.js",revision:null},{url:"_nuxt/ProseStrong.15e132a8.js",revision:null},{url:"_nuxt/ProseTable.8404b091.js",revision:null},{url:"_nuxt/ProseTbody.74b9d3dc.js",revision:null},{url:"_nuxt/ProseTd.0d887b53.js",revision:null},{url:"_nuxt/ProseTh.e1f157ad.js",revision:null},{url:"_nuxt/ProseThead.b678e831.js",revision:null},{url:"_nuxt/ProseTr.5351f3c4.js",revision:null},{url:"_nuxt/ProseUl.311d0d21.js",revision:null},{url:"_nuxt/query.c5a23c28.js",revision:null},{url:"_nuxt/RectAreaLightUniformsLib.30326342.js",revision:null},{url:"_nuxt/release.1d50c118.js",revision:null},{url:"_nuxt/Section.d1971391.js",revision:null},{url:"_nuxt/solutions.c6cd2ece.js",revision:null},{url:"_nuxt/standalone.b3b5bb47.js",revision:null},{url:"_nuxt/TransformControls.936e936d.js",revision:null},{url:"_nuxt/Typography.74ce928d.js",revision:null},{url:"_nuxt/Typography.vue.0bf27a94.js",revision:null},{url:"_nuxt/useBVHMap.2a1eb609.js",revision:null},{url:"_nuxt/utils.05feecc1.js",revision:null},{url:"_nuxt/vamx.9235f5a1.js",revision:null},{url:"_nuxt/workbox-window.prod.es5.dc90f814.js",revision:null},{url:"_nuxt/zh-CN.01a674b4.js",revision:null},{url:"apple-touch-icon.png",revision:"7af7254d448992daf0f665380021b19f"},{url:"favicon.ico",revision:"fac98428637011c423c238e1b388c4d0"},{url:"imgs/Partners/500/Bit.Country.png",revision:"451cd695d922270424bad88781ebef51"},{url:"imgs/Partners/500/CASCI.png",revision:"a2c0fdbe874cb105882882a4d5784291"},{url:"imgs/Partners/500/ChinaTower.png",revision:"8a3e3e08a454690b3ce5e38a6cb2a6c0"},{url:"imgs/Partners/500/MMMM.png",revision:"ea95c6f57a473a73cfa14f79a1f178a3"},{url:"imgs/Partners/500/MONA.png",revision:"da50b56528c518aeeba4cec087c59964"},{url:"imgs/Partners/500/MUA.png",revision:"1fd2f8781213996a5e0c11a448913b34"},{url:"imgs/Partners/500/PARCEL.png",revision:"e41c9823f3216ee1d42563bde94ab9a7"},{url:"imgs/Partners/500/Ultiverse.png",revision:"3dc446beb9e4f0661c1d150676967674"},{url:"imgs/Partners/bc-font-logo.png",revision:"22dc4a29c9361efc1f777f8340d8ad70"},{url:"imgs/Partners/CASCI.png",revision:"629be0c37fbff75f48b28104379396a2"},{url:"imgs/Partners/ChinaTower.svg",revision:"411428d89473bf5f211da96adf2ca075"},{url:"imgs/Partners/MMMM.png",revision:"422da02c47e80b08f39cc19941c661db"},{url:"imgs/Partners/MUA_Black.png",revision:"19ff2d85f1b3f0d0f99e8df5bc46e25e"},{url:"imgs/Partners/MUA.png",revision:"41a8e0be3cb5c45f020651a0b5c03924"},{url:"imgs/Partners/PARCEL.png",revision:"0a8ca9bc0a66b4cd978f52c89bf818ef"},{url:"imgs/Partners/Ultiverse.png",revision:"2a5ef4e09d6d2cba08875ca341b9b7c2"},{url:"/",revision:"ebcf3e713df5f013b1a7fdd474c88bf3"},{url:"maskable-icon.png",revision:"76e9d419a95a146592f32925efb60d59"},{url:"model/house/Texture/palette_baseColor.png",revision:"43da2066fbedffaa116ea2617133541f"},{url:"model/house/Texture/palette_emissive.png",revision:"89f364ae44295b002df9d0518e795170"},{url:"pwa-192x192.png",revision:"f633572a3e2389788bf0d9c9eef64dd5"},{url:"pwa-512x512.png",revision:"76e9d419a95a146592f32925efb60d59"},{url:"robots.txt",revision:"987497bfb623e1059632e5a607d56454"},{url:"topverse.black.svg",revision:"93b1336a5c0ece7156e8ddc108f0667d"},{url:"topverse.icon.svg",revision:"93cf3456b95821ea2d5363c6c04badca"},{url:"topverse.svg",revision:"9752e3d0f1b66ac284eaf9007fa05883"},{url:"unity/test/Build/Builds.framework.js",revision:"e1fe0fe6a95cfe74f2a4ac6e433b2313"},{url:"unity/test/Build/Builds.loader.js",revision:"669159264ae8f32874a464135042d881"},{url:"unity/test",revision:"b6e68f3d9f92269eca763ece84c459b9"},{url:"unity/test/TemplateData/favicon.ico",revision:"f04ae07ad1b634a4152d2c8175134c56"},{url:"unity/test/TemplateData/fullscreen-button.png",revision:"489a5a9723567d8368c9810cde3dc098"},{url:"unity/test/TemplateData/progress-bar-empty-dark.png",revision:"781ae0583f8c2398925ecedfa04b62df"},{url:"unity/test/TemplateData/progress-bar-empty-light.png",revision:"4412cb4b67a2ae33b3e99cccf8da54c9"},{url:"unity/test/TemplateData/progress-bar-full-dark.png",revision:"99949a10dbeffcdf39821336aa11b3e0"},{url:"unity/test/TemplateData/progress-bar-full-light.png",revision:"9524d4bf7c6e05b2aa33d1a330491b24"},{url:"unity/test/TemplateData/style.css",revision:"844f0007dcf00c2c9280f734412d3064"},{url:"unity/test/TemplateData/unity-logo-dark.png",revision:"5f00fa907e7c80061485fc64b62ca192"},{url:"unity/test/TemplateData/unity-logo-light.png",revision:"daf8545f18a102b4fa8f693681c2ffe0"},{url:"unity/test/TemplateData/webgl-logo.png",revision:"0c09503c39e9a26675e5f56d82f061b3"},{url:"vite.png",revision:"a148cc221d43294c514678fed69c6626"},{url:"wechat.png",revision:"76e9d419a95a146592f32925efb60d59"},{url:"manifest.webmanifest",revision:"cfad461285aea0ce99601ba85b44ce07"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("/"),{denylist:[/^\/api\//]})),e.registerRoute(/^https:\/\/fonts.googleapis.com\/.*/i,new e.CacheFirst({cacheName:"google-fonts-cache",plugins:[new e.ExpirationPlugin({maxEntries:10,maxAgeSeconds:31536e3}),new e.CacheableResponsePlugin({statuses:[0,200]})]}),"GET"),e.registerRoute(/^https:\/\/fonts.gstatic.com\/.*/i,new e.CacheFirst({cacheName:"gstatic-fonts-cache",plugins:[new e.ExpirationPlugin({maxEntries:10,maxAgeSeconds:31536e3}),new e.CacheableResponsePlugin({statuses:[0,200]})]}),"GET")}));
diff --git a/.output/public/topverse.black.svg b/.output/public/topverse.black.svg
deleted file mode 100644
index dd813c8..0000000
--- a/.output/public/topverse.black.svg
+++ /dev/null
@@ -1,25 +0,0 @@
-
diff --git a/.output/public/topverse.icon.svg b/.output/public/topverse.icon.svg
deleted file mode 100644
index b188ef4..0000000
--- a/.output/public/topverse.icon.svg
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
diff --git a/.output/public/topverse.svg b/.output/public/topverse.svg
deleted file mode 100644
index b5c4b4d..0000000
--- a/.output/public/topverse.svg
+++ /dev/null
@@ -1,25 +0,0 @@
-
diff --git a/.output/public/unity/test/Build/Builds.data b/.output/public/unity/test/Build/Builds.data
deleted file mode 100644
index 7474dc4..0000000
Binary files a/.output/public/unity/test/Build/Builds.data and /dev/null differ
diff --git a/.output/public/unity/test/Build/Builds.framework.js b/.output/public/unity/test/Build/Builds.framework.js
deleted file mode 100644
index 0115c1d..0000000
Binary files a/.output/public/unity/test/Build/Builds.framework.js and /dev/null differ
diff --git a/.output/public/unity/test/Build/Builds.loader.js b/.output/public/unity/test/Build/Builds.loader.js
deleted file mode 100644
index beba2e2..0000000
--- a/.output/public/unity/test/Build/Builds.loader.js
+++ /dev/null
@@ -1,2 +0,0 @@
-function createUnityInstance(e,t,r){function n(e,r){if(!n.aborted&&t.showBanner)return"error"==r&&(n.aborted=!0),t.showBanner(e,r);switch(r){case"error":console.error(e);break;case"warning":console.warn(e);break;default:console.log(e)}}function o(e){var t=e.reason||e.error,r=t?t.toString():e.message||e.reason||"",n=t&&t.stack?t.stack.toString():"";if(n.startsWith(r)&&(n=n.substring(r.length)),r+="\n"+n.trim(),r&&f.stackTraceRegExp&&f.stackTraceRegExp.test(r)){var o=e.filename||t&&(t.fileName||t.sourceURL)||"",a=e.lineno||t&&(t.lineNumber||t.line)||0;i(r,o,a)}}function a(e){e.preventDefault()}function i(e,t,r){if(e.indexOf("fullscreen error")==-1){if(f.startupErrorHandler)return void f.startupErrorHandler(e,t,r);if(!(f.errorHandler&&f.errorHandler(e,t,r)||(console.log("Invoking error handler due to\n"+e),"function"==typeof dump&&dump("Invoking error handler due to\n"+e),i.didShowErrorMessage))){var e="An error occurred running the Unity content on this page. See your browser JavaScript console for more info. The error was:\n"+e;e.indexOf("DISABLE_EXCEPTION_CATCHING")!=-1?e="An exception has occurred, but exception handling has been disabled in this build. If you are the developer of this content, enable exceptions in your project WebGL player settings to be able to catch the exception or see the stack trace.":e.indexOf("Cannot enlarge memory arrays")!=-1?e="Out of memory. If you are the developer of this content, try allocating more memory to your WebGL build in the WebGL player settings.":e.indexOf("Invalid array buffer length")==-1&&e.indexOf("Invalid typed array length")==-1&&e.indexOf("out of memory")==-1&&e.indexOf("could not allocate memory")==-1||(e="The browser could not allocate enough memory for the WebGL content. If you are the developer of this content, try allocating less memory to your WebGL build in the WebGL player settings."),alert(e),i.didShowErrorMessage=!0}}}function s(e,t){if("symbolsUrl"!=e){var n=f.downloadProgress[e];n||(n=f.downloadProgress[e]={started:!1,finished:!1,lengthComputable:!1,total:0,loaded:0}),"object"!=typeof t||"progress"!=t.type&&"load"!=t.type||(n.started||(n.started=!0,n.lengthComputable=t.lengthComputable),n.total=t.total,n.loaded=t.loaded,"load"==t.type&&(n.finished=!0));var o=0,a=0,i=0,s=0,l=0;for(var e in f.downloadProgress){var n=f.downloadProgress[e];if(!n.started)return 0;i++,n.lengthComputable?(o+=n.loaded,a+=n.total,s++):n.finished||l++}var d=i?(i-l-(a?s*(a-o)/a:0))/i:0;r(.9*d)}}function l(e,t){return new Promise(function(r,n){try{for(var o in w)if(w[o].hasUnityMarker(e)){t&&console.log('You can reduce startup time if you configure your web server to add "Content-Encoding: '+o+'" response header when serving "'+t+'" file.');var a=w[o];if(!a.worker){var i=URL.createObjectURL(new Blob(["this.require = ",a.require.toString(),"; this.decompress = ",a.decompress.toString(),"; this.onmessage = ",function(e){var t={id:e.data.id,decompressed:this.decompress(e.data.compressed)};postMessage(t,t.decompressed?[t.decompressed.buffer]:[])}.toString(),"; postMessage({ ready: true });"],{type:"application/javascript"}));a.worker=new Worker(i),a.worker.onmessage=function(e){return e.data.ready?void URL.revokeObjectURL(i):(this.callbacks[e.data.id](e.data.decompressed),void delete this.callbacks[e.data.id])},a.worker.callbacks={},a.worker.nextCallbackId=0}var s=a.worker.nextCallbackId++;return a.worker.callbacks[s]=r,void a.worker.postMessage({id:s,compressed:e},[e.buffer])}r(e)}catch(e){n(e)}})}function d(e){s(e);var t=f.cacheControl(f[e]),r=f.companyName&&f.productName?f.cachedFetch:f.fetchWithProgress,o=f[e],a=/file:\/\//.exec(o)?"same-origin":void 0,i=r(f[e],{method:"GET",companyName:f.companyName,productName:f.productName,control:t,mode:a,onProgress:function(t){s(e,t)}});return i.then(function(t){return l(t.parsedBody,f[e])}).catch(function(t){var r="Failed to download file "+f[e];"file:"==location.protocol?n(r+". Loading web pages via a file:// URL without a web server is not supported by this browser. Please use a local development web server to host Unity content, or use the Unity Build and Run option.","error"):console.error(r)})}function u(){return d("frameworkUrl").then(function(e){var t=URL.createObjectURL(new Blob([e],{type:"application/javascript"}));return new Promise(function(e,r){var o=document.createElement("script");o.src=t,o.onload=function(){if("undefined"==typeof unityFramework||!unityFramework){var r=[["br","br"],["gz","gzip"]];for(var a in r){var i=r[a];if(f.frameworkUrl.endsWith("."+i[0])){var s="Unable to parse "+f.frameworkUrl+"!";if("file:"==location.protocol)return void n(s+" Loading pre-compressed (brotli or gzip) content via a file:// URL without a web server is not supported by this browser. Please use a local development web server to host compressed Unity content, or use the Unity Build and Run option.","error");if(s+=' This can happen if build compression was enabled but web server hosting the content was misconfigured to not serve the file with HTTP Response Header "Content-Encoding: '+i[1]+'" present. Check browser Console and Devtools Network tab to debug.',"br"==i[0]&&"http:"==location.protocol){var l=["localhost","127.0.0.1"].indexOf(location.hostname)!=-1?"":"Migrate your server to use HTTPS.";s=/Firefox/.test(navigator.userAgent)?"Unable to parse "+f.frameworkUrl+'!
If using custom web server, verify that web server is sending .br files with HTTP Response Header "Content-Encoding: br". Brotli compression may not be supported in Firefox over HTTP connections. '+l+' See https://bugzilla.mozilla.org/show_bug.cgi?id=1670675 for more information.':"Unable to parse "+f.frameworkUrl+'!
If using custom web server, verify that web server is sending .br files with HTTP Response Header "Content-Encoding: br". Brotli compression may not be supported over HTTP connections. Migrate your server to use HTTPS.'}return void n(s,"error")}}n("Unable to parse "+f.frameworkUrl+"! The file is corrupt, or compression was misconfigured? (check Content-Encoding HTTP Response Header on web server)","error")}var d=unityFramework;unityFramework=null,o.onload=null,URL.revokeObjectURL(t),e(d)},o.onerror=function(e){n("Unable to load file "+f.frameworkUrl+"! Check that the file exists on the remote server. (also check browser Console and Devtools Network tab to debug)","error")},document.body.appendChild(o),f.deinitializers.push(function(){document.body.removeChild(o)})})})}function c(){Promise.all([u(),d("codeUrl")]).then(function(e){f.wasmBinary=e[1],e[0](f)});var e=d("dataUrl");f.preRun.push(function(){f.addRunDependency("dataUrl"),e.then(function(e){var t=new DataView(e.buffer,e.byteOffset,e.byteLength),r=0,n="UnityWebData1.0\0";if(!String.fromCharCode.apply(null,e.subarray(r,r+n.length))==n)throw"unknown data format";r+=n.length;var o=t.getUint32(r,!0);for(r+=4;r0;d=u,u=l.indexOf("/",d)+1)f.FS_createPath(l.substring(0,d),l.substring(d,u-1),!0,!0);f.FS_createDataFile(l,null,e.subarray(a,a+i),!0,!0,!0)}f.removeRunDependency("dataUrl")})})}r=r||function(){};var f={canvas:e,webglContextAttributes:{preserveDrawingBuffer:!1},cacheControl:function(e){return e==f.dataUrl?"must-revalidate":"no-store"},streamingAssetsUrl:"StreamingAssets",downloadProgress:{},deinitializers:[],intervals:{},setInterval:function(e,t){var r=window.setInterval(e,t);return this.intervals[r]=!0,r},clearInterval:function(e){delete this.intervals[e],window.clearInterval(e)},preRun:[],postRun:[],print:function(e){console.log(e)},printErr:function(e){console.error(e),"string"==typeof e&&e.indexOf("wasm streaming compile failed")!=-1&&(e.toLowerCase().indexOf("mime")!=-1?n('HTTP Response Header "Content-Type" configured incorrectly on the server for file '+f.codeUrl+' , should be "application/wasm". Startup time performance will suffer.',"warning"):n('WebAssembly streaming compilation failed! This can happen for example if "Content-Encoding" HTTP header is incorrectly enabled on the server for file '+f.codeUrl+", but the file is not pre-compressed on disk (or vice versa). Check the Network tab in browser Devtools to debug server header configuration.","warning"))},locateFile:function(e){return e},disabledCanvasEvents:["contextmenu","dragstart"]};for(var h in t)f[h]=t[h];f.streamingAssetsUrl=new URL(f.streamingAssetsUrl,document.URL).href;var b=f.disabledCanvasEvents.slice();b.forEach(function(t){e.addEventListener(t,a)}),window.addEventListener("error",o),window.addEventListener("unhandledrejection",o),f.deinitializers.push(function(){f.disableAccessToMediaDevices(),b.forEach(function(t){e.removeEventListener(t,a)}),window.removeEventListener("error",o),window.removeEventListener("unhandledrejection",o);for(var t in f.intervals)window.clearInterval(t);f.intervals={}}),f.QuitCleanup=function(){for(var e=0;e=200&&this.status<=299}.bind(this)})}function o(e,t,r,n,o){var a={url:e,version:l.version,company:t,product:r,updated:n,revalidated:n,accessed:n,response:{headers:{}}};return o&&(o.headers.forEach(function(e,t){a.response.headers[t]=e}),["redirected","status","statusText","type","url"].forEach(function(e){a.response[e]=o[e]}),a.response.parsedBody=o.parsedBody),a}function a(e,t){return(!t||!t.method||"GET"===t.method)&&((!t||["must-revalidate","immutable"].indexOf(t.control)!=-1)&&!!e.match("^https?://"))}function i(i,u){function c(t,r){return d(t,r).then(function(t){return!m.enabled||m.revalidated?t:304===t.status?(m.result.revalidated=m.result.accessed,m.revalidated=!0,h.storeRequest(m.result).then(function(){e("'"+m.result.url+"' successfully revalidated and served from the indexedDB cache")}).catch(function(t){e("'"+m.result.url+"' successfully revalidated but not stored in the indexedDB cache due to the error: "+t)}),new n(m.result.response)):(200==t.status?(m.result=o(t.url,m.company,m.product,m.accessed,t),m.revalidated=!0,h.storeRequest(m.result).then(function(){e("'"+m.result.url+"' successfully downloaded and stored in the indexedDB cache")}).catch(function(t){e("'"+m.result.url+"' successfully downloaded but not stored in the indexedDB cache due to the error: "+t)})):e("'"+m.result.url+"' request failed with status: "+t.status+" "+t.statusText),t)})}function f(e){u&&u.onProgress&&(u.onProgress({type:"progress",total:e.parsedBody.length,loaded:e.parsedBody.length,lengthComputable:!0}),u.onProgress({type:"load",total:e.parsedBody.length,loaded:e.parsedBody.length,lengthComputable:!0}))}var h=s.getInstance(),b=t("string"==typeof i?i:i.url),m={enabled:a(b,u)};return u&&(m.control=u.control,m.company=u.company,m.product=u.product),m.result=o(b,m.company,m.product,Date.now()),m.revalidated=!1,m.enabled?h.loadRequest(m.result.url).then(function(t){if(!t||t.version!==l.version)return c(i,u);m.result=t,m.result.accessed=Date.now();var o=new n(m.result.response);if("immutable"==m.control)return m.revalidated=!0,h.storeRequest(m.result),e("'"+m.result.url+"' served from the indexedDB cache without revalidation"),f(o),o;if(r(m.result.url)&&(o.headers.get("Last-Modified")||o.headers.get("ETag")))return fetch(m.result.url,{method:"HEAD"}).then(function(t){return m.revalidated=["Last-Modified","ETag"].every(function(e){return!o.headers.get(e)||o.headers.get(e)==t.headers.get(e)}),m.revalidated?(m.result.revalidated=m.result.accessed,h.storeRequest(m.result),e("'"+m.result.url+"' successfully revalidated and served from the indexedDB cache"),f(o),o):c(i,u)});u=u||{};var a=u.headers||{};return u.headers=a,o.headers.get("Last-Modified")?(a["If-Modified-Since"]=o.headers.get("Last-Modified"),a["Cache-Control"]="no-cache"):o.headers.get("ETag")&&(a["If-None-Match"]=o.headers.get("ETag"),a["Cache-Control"]="no-cache"),c(i,u)}).catch(function(t){return e("Failed to load '"+m.result.url+"' from indexedDB cache due to the error: "+t),d(i,u)}):d(i,u)}var s=f.UnityCache,l=s.RequestStore,d=f.fetchWithProgress;return n.prototype.arrayBuffer=function(){return Promise.resolve(this.parsedBody.buffer)},n.prototype.blob=function(){return this.arrayBuffer().then(function(e){return new Blob([e])})},n.prototype.json=function(){return this.text().then(function(e){return JSON.parse(e)})},n.prototype.text=function(){var e=new TextDecoder;return Promise.resolve(e.decode(this.parsedBody))},i}();var w={gzip:{require:function(e){var t={"inflate.js":function(e,t,r){"use strict";function n(e){if(!(this instanceof n))return new n(e);this.options=s.assign({chunkSize:16384,windowBits:0,to:""},e||{});var t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0===(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new c,this.strm.avail_out=0;var r=i.inflateInit2(this.strm,t.windowBits);if(r!==d.Z_OK)throw new Error(u[r]);this.header=new f,i.inflateGetHeader(this.strm,this.header)}function o(e,t){var r=new n(t);if(r.push(e,!0),r.err)throw r.msg||u[r.err];return r.result}function a(e,t){return t=t||{},t.raw=!0,o(e,t)}var i=e("./zlib/inflate"),s=e("./utils/common"),l=e("./utils/strings"),d=e("./zlib/constants"),u=e("./zlib/messages"),c=e("./zlib/zstream"),f=e("./zlib/gzheader"),h=Object.prototype.toString;n.prototype.push=function(e,t){var r,n,o,a,u,c,f=this.strm,b=this.options.chunkSize,m=this.options.dictionary,g=!1;if(this.ended)return!1;n=t===~~t?t:t===!0?d.Z_FINISH:d.Z_NO_FLUSH,"string"==typeof e?f.input=l.binstring2buf(e):"[object ArrayBuffer]"===h.call(e)?f.input=new Uint8Array(e):f.input=e,f.next_in=0,f.avail_in=f.input.length;do{if(0===f.avail_out&&(f.output=new s.Buf8(b),f.next_out=0,f.avail_out=b),r=i.inflate(f,d.Z_NO_FLUSH),r===d.Z_NEED_DICT&&m&&(c="string"==typeof m?l.string2buf(m):"[object ArrayBuffer]"===h.call(m)?new Uint8Array(m):m,r=i.inflateSetDictionary(this.strm,c)),r===d.Z_BUF_ERROR&&g===!0&&(r=d.Z_OK,g=!1),r!==d.Z_STREAM_END&&r!==d.Z_OK)return this.onEnd(r),this.ended=!0,!1;f.next_out&&(0!==f.avail_out&&r!==d.Z_STREAM_END&&(0!==f.avail_in||n!==d.Z_FINISH&&n!==d.Z_SYNC_FLUSH)||("string"===this.options.to?(o=l.utf8border(f.output,f.next_out),a=f.next_out-o,u=l.buf2string(f.output,o),f.next_out=a,f.avail_out=b-a,a&&s.arraySet(f.output,f.output,o,a,0),this.onData(u)):this.onData(s.shrinkBuf(f.output,f.next_out)))),0===f.avail_in&&0===f.avail_out&&(g=!0)}while((f.avail_in>0||0===f.avail_out)&&r!==d.Z_STREAM_END);return r===d.Z_STREAM_END&&(n=d.Z_FINISH),n===d.Z_FINISH?(r=i.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===d.Z_OK):n!==d.Z_SYNC_FLUSH||(this.onEnd(d.Z_OK),f.avail_out=0,!0)},n.prototype.onData=function(e){this.chunks.push(e)},n.prototype.onEnd=function(e){e===d.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=s.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},r.Inflate=n,r.inflate=o,r.inflateRaw=a,r.ungzip=o},"utils/common.js":function(e,t,r){"use strict";var n="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;r.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var r=t.shift();if(r){if("object"!=typeof r)throw new TypeError(r+"must be non-object");for(var n in r)r.hasOwnProperty(n)&&(e[n]=r[n])}}return e},r.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var o={arraySet:function(e,t,r,n,o){if(t.subarray&&e.subarray)return void e.set(t.subarray(r,r+n),o);for(var a=0;a=252?6:l>=248?5:l>=240?4:l>=224?3:l>=192?2:1;s[254]=s[254]=1,r.string2buf=function(e){var t,r,n,a,i,s=e.length,l=0;for(a=0;a>>6,t[i++]=128|63&r):r<65536?(t[i++]=224|r>>>12,t[i++]=128|r>>>6&63,t[i++]=128|63&r):(t[i++]=240|r>>>18,t[i++]=128|r>>>12&63,t[i++]=128|r>>>6&63,t[i++]=128|63&r);return t},r.buf2binstring=function(e){return n(e,e.length)},r.binstring2buf=function(e){for(var t=new o.Buf8(e.length),r=0,n=t.length;r4)d[o++]=65533,r+=i-1;else{for(a&=2===i?31:3===i?15:7;i>1&&r1?d[o++]=65533:a<65536?d[o++]=a:(a-=65536,d[o++]=55296|a>>10&1023,d[o++]=56320|1023&a)}return n(d,o)},r.utf8border=function(e,t){var r;for(t=t||e.length,t>e.length&&(t=e.length),r=t-1;r>=0&&128===(192&e[r]);)r--;return r<0?t:0===r?t:r+s[e[r]]>t?r:t}},"zlib/inflate.js":function(e,t,r){"use strict";function n(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function o(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new w.Buf16(320),this.work=new w.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function a(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=z,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new w.Buf32(me),t.distcode=t.distdyn=new w.Buf32(ge),t.sane=1,t.back=-1,T):O}function i(e){var t;return e&&e.state?(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,a(e)):O}function s(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=(t>>4)+1,t<48&&(t&=15)),t&&(t<8||t>15)?O:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,i(e))):O}function l(e,t){var r,n;return e?(n=new o,e.state=n,n.window=null,r=s(e,t),r!==T&&(e.state=null),r):O}function d(e){return l(e,we)}function u(e){if(ve){var t;for(g=new w.Buf32(512),p=new w.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(x(S,e.lens,0,288,g,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;x(E,e.lens,0,32,p,0,e.work,{bits:5}),ve=!1}e.lencode=g,e.lenbits=9,e.distcode=p,e.distbits=5}function c(e,t,r,n){var o,a=e.state;return null===a.window&&(a.wsize=1<=a.wsize?(w.arraySet(a.window,t,r-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):(o=a.wsize-a.wnext,o>n&&(o=n),w.arraySet(a.window,t,r-n,o,a.wnext),n-=o,n?(w.arraySet(a.window,t,r-n,n,0),a.wnext=n,a.whave=a.wsize):(a.wnext+=o,a.wnext===a.wsize&&(a.wnext=0),a.whave>>8&255,r.check=y(r.check,Be,2,0),f=0,h=0,r.mode=N;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&f)<<8)+(f>>8))%31){e.msg="incorrect header check",r.mode=fe;break}if((15&f)!==D){e.msg="unknown compression method",r.mode=fe;break}if(f>>>=4,h-=4,xe=(15&f)+8,0===r.wbits)r.wbits=xe;else if(xe>r.wbits){e.msg="invalid window size",r.mode=fe;break}r.dmax=1<>8&1),512&r.flags&&(Be[0]=255&f,Be[1]=f>>>8&255,r.check=y(r.check,Be,2,0)),f=0,h=0,r.mode=F;case F:for(;h<32;){if(0===l)break e;l--,f+=o[i++]<>>8&255,Be[2]=f>>>16&255,Be[3]=f>>>24&255,r.check=y(r.check,Be,4,0)),f=0,h=0,r.mode=Z;case Z:for(;h<16;){if(0===l)break e;l--,f+=o[i++]<>8),512&r.flags&&(Be[0]=255&f,Be[1]=f>>>8&255,r.check=y(r.check,Be,2,0)),f=0,h=0,r.mode=j;case j:if(1024&r.flags){for(;h<16;){if(0===l)break e;l--,f+=o[i++]<>>8&255,r.check=y(r.check,Be,2,0)),f=0,h=0}else r.head&&(r.head.extra=null);r.mode=H;case H:if(1024&r.flags&&(g=r.length,g>l&&(g=l),g&&(r.head&&(xe=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),w.arraySet(r.head.extra,o,i,g,xe)),512&r.flags&&(r.check=y(r.check,o,g,i)),l-=g,i+=g,r.length-=g),r.length))break e;r.length=0,r.mode=M;case M:if(2048&r.flags){if(0===l)break e;g=0;do xe=o[i+g++],r.head&&xe&&r.length<65536&&(r.head.name+=String.fromCharCode(xe));while(xe&&g>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=Y;break;case q:for(;h<32;){if(0===l)break e;l--,f+=o[i++]<>>=7&h,h-=7&h,r.mode=de;break}for(;h<3;){if(0===l)break e;l--,f+=o[i++]<>>=1,h-=1,3&f){case 0:r.mode=Q;break;case 1:if(u(r),r.mode=re,t===U){f>>>=2,h-=2;break e}break;case 2:r.mode=$;break;case 3:e.msg="invalid block type",r.mode=fe}f>>>=2,h-=2;break;case Q:for(f>>>=7&h,h-=7&h;h<32;){if(0===l)break e;l--,f+=o[i++]<>>16^65535)){e.msg="invalid stored block lengths",r.mode=fe;break}if(r.length=65535&f,f=0,h=0,r.mode=X,t===U)break e;case X:r.mode=J;case J:if(g=r.length){if(g>l&&(g=l),g>d&&(g=d),0===g)break e;w.arraySet(a,o,i,g,s),l-=g,i+=g,d-=g,s+=g,r.length-=g;break}r.mode=Y;break;case $:for(;h<14;){if(0===l)break e;l--,f+=o[i++]<>>=5,h-=5,r.ndist=(31&f)+1,f>>>=5,h-=5,r.ncode=(15&f)+4,f>>>=4,h-=4,r.nlen>286||r.ndist>30){e.msg="too many length or distance symbols",r.mode=fe;break}r.have=0,r.mode=ee;case ee:for(;r.have>>=3,h-=3}for(;r.have<19;)r.lens[Ue[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,Se={bits:r.lenbits},_e=x(_,r.lens,0,19,r.lencode,0,r.work,Se),r.lenbits=Se.bits,_e){e.msg="invalid code lengths set",r.mode=fe;break}r.have=0,r.mode=te;case te:for(;r.have>>24,pe=Ce>>>16&255,we=65535&Ce,!(ge<=h);){if(0===l)break e;l--,f+=o[i++]<>>=ge,h-=ge,r.lens[r.have++]=we;else{if(16===we){for(Ee=ge+2;h>>=ge,h-=ge,0===r.have){e.msg="invalid bit length repeat",r.mode=fe;
-break}xe=r.lens[r.have-1],g=3+(3&f),f>>>=2,h-=2}else if(17===we){for(Ee=ge+3;h>>=ge,h-=ge,xe=0,g=3+(7&f),f>>>=3,h-=3}else{for(Ee=ge+7;h>>=ge,h-=ge,xe=0,g=11+(127&f),f>>>=7,h-=7}if(r.have+g>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=fe;break}for(;g--;)r.lens[r.have++]=xe}}if(r.mode===fe)break;if(0===r.lens[256]){e.msg="invalid code -- missing end-of-block",r.mode=fe;break}if(r.lenbits=9,Se={bits:r.lenbits},_e=x(S,r.lens,0,r.nlen,r.lencode,0,r.work,Se),r.lenbits=Se.bits,_e){e.msg="invalid literal/lengths set",r.mode=fe;break}if(r.distbits=6,r.distcode=r.distdyn,Se={bits:r.distbits},_e=x(E,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,Se),r.distbits=Se.bits,_e){e.msg="invalid distances set",r.mode=fe;break}if(r.mode=re,t===U)break e;case re:r.mode=ne;case ne:if(l>=6&&d>=258){e.next_out=s,e.avail_out=d,e.next_in=i,e.avail_in=l,r.hold=f,r.bits=h,k(e,m),s=e.next_out,a=e.output,d=e.avail_out,i=e.next_in,o=e.input,l=e.avail_in,f=r.hold,h=r.bits,r.mode===Y&&(r.back=-1);break}for(r.back=0;Ce=r.lencode[f&(1<>>24,pe=Ce>>>16&255,we=65535&Ce,!(ge<=h);){if(0===l)break e;l--,f+=o[i++]<>ve)],ge=Ce>>>24,pe=Ce>>>16&255,we=65535&Ce,!(ve+ge<=h);){if(0===l)break e;l--,f+=o[i++]<>>=ve,h-=ve,r.back+=ve}if(f>>>=ge,h-=ge,r.back+=ge,r.length=we,0===pe){r.mode=le;break}if(32&pe){r.back=-1,r.mode=Y;break}if(64&pe){e.msg="invalid literal/length code",r.mode=fe;break}r.extra=15&pe,r.mode=oe;case oe:if(r.extra){for(Ee=r.extra;h>>=r.extra,h-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=ae;case ae:for(;Ce=r.distcode[f&(1<>>24,pe=Ce>>>16&255,we=65535&Ce,!(ge<=h);){if(0===l)break e;l--,f+=o[i++]<>ve)],ge=Ce>>>24,pe=Ce>>>16&255,we=65535&Ce,!(ve+ge<=h);){if(0===l)break e;l--,f+=o[i++]<>>=ve,h-=ve,r.back+=ve}if(f>>>=ge,h-=ge,r.back+=ge,64&pe){e.msg="invalid distance code",r.mode=fe;break}r.offset=we,r.extra=15&pe,r.mode=ie;case ie:if(r.extra){for(Ee=r.extra;h>>=r.extra,h-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=fe;break}r.mode=se;case se:if(0===d)break e;if(g=m-d,r.offset>g){if(g=r.offset-g,g>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=fe;break}g>r.wnext?(g-=r.wnext,p=r.wsize-g):p=r.wnext-g,g>r.length&&(g=r.length),me=r.window}else me=a,p=s-r.offset,g=r.length;g>d&&(g=d),d-=g,r.length-=g;do a[s++]=me[p++];while(--g);0===r.length&&(r.mode=ne);break;case le:if(0===d)break e;a[s++]=r.length,d--,r.mode=ne;break;case de:if(r.wrap){for(;h<32;){if(0===l)break e;l--,f|=o[i++]<>>16&65535|0,i=0;0!==r;){i=r>2e3?2e3:r,r-=i;do o=o+t[n++]|0,a=a+o|0;while(--i);o%=65521,a%=65521}return o|a<<16|0}t.exports=n},"zlib/crc32.js":function(e,t,r){"use strict";function n(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}function o(e,t,r,n){var o=a,i=n+r;e^=-1;for(var s=n;s>>8^o[255&(e^t[s])];return e^-1}var a=n();t.exports=o},"zlib/inffast.js":function(e,t,r){"use strict";var n=30,o=12;t.exports=function(e,t){var r,a,i,s,l,d,u,c,f,h,b,m,g,p,w,v,y,k,x,_,S,E,C,B,U;r=e.state,a=e.next_in,B=e.input,i=a+(e.avail_in-5),s=e.next_out,U=e.output,l=s-(t-e.avail_out),d=s+(e.avail_out-257),u=r.dmax,c=r.wsize,f=r.whave,h=r.wnext,b=r.window,m=r.hold,g=r.bits,p=r.lencode,w=r.distcode,v=(1<>>24,m>>>=x,g-=x,x=k>>>16&255,0===x)U[s++]=65535&k;else{if(!(16&x)){if(0===(64&x)){k=p[(65535&k)+(m&(1<>>=x,g-=x),g<15&&(m+=B[a++]<>>24,m>>>=x,g-=x,x=k>>>16&255,!(16&x)){if(0===(64&x)){k=w[(65535&k)+(m&(1<u){e.msg="invalid distance too far back",r.mode=n;break e}if(m>>>=x,g-=x,x=s-l,S>x){if(x=S-x,x>f&&r.sane){e.msg="invalid distance too far back",r.mode=n;break e}if(E=0,C=b,0===h){if(E+=c-x,x<_){_-=x;do U[s++]=b[E++];while(--x);E=s-S,C=U}}else if(h2;)U[s++]=C[E++],U[s++]=C[E++],U[s++]=C[E++],_-=3;_&&(U[s++]=C[E++],_>1&&(U[s++]=C[E++]))}else{E=s-S;do U[s++]=U[E++],U[s++]=U[E++],U[s++]=U[E++],_-=3;while(_>2);_&&(U[s++]=U[E++],_>1&&(U[s++]=U[E++]))}break}}break}}while(a>3,a-=_,g-=_<<3,m&=(1<=1&&0===j[O];O--);if(I>O&&(I=O),0===O)return m[g++]=20971520,m[g++]=20971520,w.bits=1,0;for(L=1;L0&&(e===s||1!==O))return-1;for(H[1]=0,T=1;Ta||e===d&&z>i)return 1;for(;;){E=T-P,p[R]S?(C=M[W+p[R]],B=F[Z+p[R]]):(C=96,B=0),v=1<>P)+y]=E<<24|C<<16|B|0;while(0!==y);for(v=1<>=1;if(0!==v?(N&=v-1,N+=v):N=0,R++,0===--j[T]){if(T===O)break;T=t[r+p[R]]}if(T>I&&(N&x)!==k){for(0===P&&(P=I),_+=L,A=T-P,D=1<a||e===d&&z>i)return 1;k=N&x,m[k]=I<<24|A<<16|_-g|0}}return 0!==N&&(m[_+N]=T-P<<24|64<<16|0),w.bits=I,0}}};for(var r in t)t[r].folder=r.substring(0,r.lastIndexOf("/")+1);var n=function(e){var r=[];return e=e.split("/").every(function(e){return".."==e?r.pop():"."==e||""==e||r.push(e)})?r.join("/"):null,e?t[e]||t[e+".js"]||t[e+"/index.js"]:null},o=function(e,t){return e?n(e.folder+"node_modules/"+t)||o(e.parent,t):null},a=function(e,t){var r=t.match(/^\//)?null:e?t.match(/^\.\.?\//)?n(e.folder+t):o(e,t):n(t);if(!r)throw"module not found: "+t;return r.exports||(r.parent=e,r(a.bind(null,r),r,r.exports={})),r.exports};return a(null,e)},decompress:function(e){this.exports||(this.exports=this.require("inflate.js"));try{return this.exports.inflate(e)}catch(e){}},hasUnityMarker:function(e){var t=10,r="UnityWeb Compressed Content (gzip)";if(t>e.length||31!=e[0]||139!=e[1])return!1;var n=e[3];if(4&n){if(t+2>e.length)return!1;if(t+=2+e[t]+(e[t+1]<<8),t>e.length)return!1}if(8&n){for(;te.length)return!1;t++}return 16&n&&String.fromCharCode.apply(null,e.subarray(t,t+r.length+1))==r+"\0"}}};return new Promise(function(e,t){f.SystemInfo.hasWebGL?1==f.SystemInfo.hasWebGL?t('Your browser does not support graphics API "WebGL 2" which is required for this content.'):f.SystemInfo.hasWasm?(1==f.SystemInfo.hasWebGL&&f.print('Warning: Your browser does not support "WebGL 2" Graphics API, switching to "WebGL 1"'),f.startupErrorHandler=t,r(0),f.postRun.push(function(){r(1),delete f.startupErrorHandler,e(p)}),c()):t("Your browser does not support WebAssembly."):t("Your browser does not support WebGL.")})}
\ No newline at end of file
diff --git a/.output/public/unity/test/Build/Builds.wasm b/.output/public/unity/test/Build/Builds.wasm
deleted file mode 100644
index ad25842..0000000
Binary files a/.output/public/unity/test/Build/Builds.wasm and /dev/null differ
diff --git a/.output/public/unity/test/StreamingAssets/UnityServicesProjectConfiguration.json b/.output/public/unity/test/StreamingAssets/UnityServicesProjectConfiguration.json
deleted file mode 100644
index 34b3a44..0000000
--- a/.output/public/unity/test/StreamingAssets/UnityServicesProjectConfiguration.json
+++ /dev/null
@@ -1 +0,0 @@
-{"Keys":["com.unity.services.core.version"],"Values":[{"m_Value":"1.4.0","m_IsReadOnly":true}]}
\ No newline at end of file
diff --git a/.output/public/unity/test/TemplateData/favicon.ico b/.output/public/unity/test/TemplateData/favicon.ico
deleted file mode 100644
index 07db393..0000000
Binary files a/.output/public/unity/test/TemplateData/favicon.ico and /dev/null differ
diff --git a/.output/public/unity/test/TemplateData/fullscreen-button.png b/.output/public/unity/test/TemplateData/fullscreen-button.png
deleted file mode 100644
index e7b6496..0000000
Binary files a/.output/public/unity/test/TemplateData/fullscreen-button.png and /dev/null differ
diff --git a/.output/public/unity/test/TemplateData/progress-bar-empty-dark.png b/.output/public/unity/test/TemplateData/progress-bar-empty-dark.png
deleted file mode 100644
index d01612f..0000000
Binary files a/.output/public/unity/test/TemplateData/progress-bar-empty-dark.png and /dev/null differ
diff --git a/.output/public/unity/test/TemplateData/progress-bar-empty-light.png b/.output/public/unity/test/TemplateData/progress-bar-empty-light.png
deleted file mode 100644
index 593a329..0000000
Binary files a/.output/public/unity/test/TemplateData/progress-bar-empty-light.png and /dev/null differ
diff --git a/.output/public/unity/test/TemplateData/progress-bar-full-dark.png b/.output/public/unity/test/TemplateData/progress-bar-full-dark.png
deleted file mode 100644
index c432c86..0000000
Binary files a/.output/public/unity/test/TemplateData/progress-bar-full-dark.png and /dev/null differ
diff --git a/.output/public/unity/test/TemplateData/progress-bar-full-light.png b/.output/public/unity/test/TemplateData/progress-bar-full-light.png
deleted file mode 100644
index e683131..0000000
Binary files a/.output/public/unity/test/TemplateData/progress-bar-full-light.png and /dev/null differ
diff --git a/.output/public/unity/test/TemplateData/style.css b/.output/public/unity/test/TemplateData/style.css
deleted file mode 100644
index 4d402f4..0000000
--- a/.output/public/unity/test/TemplateData/style.css
+++ /dev/null
@@ -1,16 +0,0 @@
-body { padding: 0; margin: 0 }
-#unity-container { position: absolute }
-#unity-container.unity-desktop { left: 50%; top: 50%; transform: translate(-50%, -50%) }
-#unity-container.unity-mobile { width: 100%; height: 100% }
-#unity-canvas { background: #231F20 }
-.unity-mobile #unity-canvas { width: 100%; height: 100% }
-#unity-loading-bar { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: none }
-#unity-logo { width: 154px; height: 130px; background: url('unity-logo-dark.png') no-repeat center }
-#unity-progress-bar-empty { width: 141px; height: 18px; margin-top: 10px; margin-left: 6.5px; background: url('progress-bar-empty-dark.png') no-repeat center }
-#unity-progress-bar-full { width: 0%; height: 18px; margin-top: 10px; background: url('progress-bar-full-dark.png') no-repeat center }
-#unity-footer { position: relative }
-.unity-mobile #unity-footer { display: none }
-#unity-webgl-logo { float:left; width: 204px; height: 38px; background: url('webgl-logo.png') no-repeat center }
-#unity-build-title { float: right; margin-right: 10px; line-height: 38px; font-family: arial; font-size: 18px }
-#unity-fullscreen-button { float: right; width: 38px; height: 38px; background: url('fullscreen-button.png') no-repeat center }
-#unity-warning { position: absolute; left: 50%; top: 5%; transform: translate(-50%); background: white; padding: 10px; display: none }
diff --git a/.output/public/unity/test/TemplateData/unity-logo-dark.png b/.output/public/unity/test/TemplateData/unity-logo-dark.png
deleted file mode 100644
index 2c33238..0000000
Binary files a/.output/public/unity/test/TemplateData/unity-logo-dark.png and /dev/null differ
diff --git a/.output/public/unity/test/TemplateData/unity-logo-light.png b/.output/public/unity/test/TemplateData/unity-logo-light.png
deleted file mode 100644
index 9f0ab84..0000000
Binary files a/.output/public/unity/test/TemplateData/unity-logo-light.png and /dev/null differ
diff --git a/.output/public/unity/test/TemplateData/webgl-logo.png b/.output/public/unity/test/TemplateData/webgl-logo.png
deleted file mode 100644
index 338b1ae..0000000
Binary files a/.output/public/unity/test/TemplateData/webgl-logo.png and /dev/null differ
diff --git a/.output/public/unity/test/index.html b/.output/public/unity/test/index.html
deleted file mode 100644
index 6ae6484..0000000
--- a/.output/public/unity/test/index.html
+++ /dev/null
@@ -1,121 +0,0 @@
-
-
-
-
-
- Unity WebGL Player | TOPOLand
-
-
-
-
-
-
-
-
diff --git a/.output/public/vite.png b/.output/public/vite.png
deleted file mode 100644
index c508697..0000000
Binary files a/.output/public/vite.png and /dev/null differ
diff --git a/.output/public/wechat.png b/.output/public/wechat.png
deleted file mode 100644
index b6b53b0..0000000
Binary files a/.output/public/wechat.png and /dev/null differ
diff --git a/app.vue b/app.vue
index 135561e..5c92122 100644
--- a/app.vue
+++ b/app.vue
@@ -7,7 +7,9 @@ useHead({
class: 'scrollbar-thumb-color-dark-50 scrollbar-track-color-transparent scrollbar-radius-2 scrollbar-thumb-radius-4 scrollbar-w-4px scrollbar scrollbar-rounded [&>div]:overflow-x-hidden',
},
})
-usePreferredDark()
+const dark = usePreferredDark()
+
+console.log(dark)
diff --git a/components/Carousel.vue b/components/Carousel.vue
index e869937..a5b535e 100644
--- a/components/Carousel.vue
+++ b/components/Carousel.vue
@@ -32,9 +32,9 @@ onMounted(() => {
{{ $t(footer.copyright) }}
-
+
{{ $t(footer.release) }}
-
+
{{ $t(record) }}
-
+
京公网安备 11010502052580号
diff --git a/components/header/header.vue b/components/header/header.vue
index 8f97e78..e489c75 100644
--- a/components/header/header.vue
+++ b/components/header/header.vue
@@ -1,9 +1,9 @@