lecodes-3d-editor 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -0
- package/dist/app/assets/createViewer-DGHC9eXK.js +5 -0
- package/dist/app/assets/createViewer2d-CI6PFuCm.js +1 -0
- package/dist/app/assets/createViewerLite-CoShwplA.js +487 -0
- package/dist/app/assets/creator-gl-GaTBGmVI.wasm +0 -0
- package/dist/app/assets/creator-ui-DNJBpZ2P.wasm +0 -0
- package/dist/app/assets/creator2d-zNxn9uSj.wasm +0 -0
- package/dist/app/assets/fetch-CbiE4Jmm.js +1 -0
- package/dist/app/assets/fetch-yAxxs-ZQ.js +1 -0
- package/dist/app/assets/gizmo-D5xdNVjw.filamat +0 -0
- package/dist/app/assets/index-BuGYQX6Z.css +1 -0
- package/dist/app/assets/index-DZc_N5Kk.js +2 -0
- package/dist/app/assets/lit-WtoZF0Yx.filamat +0 -0
- package/dist/app/assets/matcap_porcelain_white-DRnbNWwg.jpg +0 -0
- package/dist/app/assets/mediaplayer-40oza6jV.js +1 -0
- package/dist/app/assets/neutral_ibl128-D-lzdkLN.ktx +0 -0
- package/dist/app/assets/shadow-CnJ-PXnb.filamat +0 -0
- package/dist/app/assets/src-DKPpeImT.js +451 -0
- package/dist/app/assets/uberarchive-De8g3sSw.bin +0 -0
- package/dist/app/assets/unlit-pnl94z8g.filamat +0 -0
- package/dist/app/assets/video-CdjDrvX4.filamat +0 -0
- package/dist/app/index.html +26 -0
- package/dist/server.js +503 -0
- package/package.json +34 -0
- package/src/index.ts +19 -0
package/README.md
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# lecodes-3d-editor
|
|
2
|
+
|
|
3
|
+
The visual `.scene.ts` 3D scene editor (node tree | GL viewport | schema-driven inspector) as an
|
|
4
|
+
embeddable Vue component — the editor half of `docs/scene-editor-plan.md`. Package directory:
|
|
5
|
+
`packages/scene-editor`.
|
|
6
|
+
|
|
7
|
+
## Standalone playground (no platform, no auth)
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
bun run dev # edits dev/demo (a sample scene + user aspect)
|
|
11
|
+
SCENE_DIR=/path/to/project bun run dev # edit any folder containing .scene.ts files
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Compiles run in-process through the SDK pipeline (`@letary/chisel`, or `LECODES_CHISEL_BIN` for a
|
|
15
|
+
local chisel build), with the exact virtual-entry composition the platform backend uses
|
|
16
|
+
(`sdk/compile` → `sceneEditorEntries`), so behavior here matches production. File text is polled,
|
|
17
|
+
so editing the scene in your IDE re-runs the viewport.
|
|
18
|
+
|
|
19
|
+
## Embedding
|
|
20
|
+
|
|
21
|
+
```ts
|
|
22
|
+
import { SceneEditor, type SceneSource } from "lecodes-3d-editor"
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
The host supplies a `SceneSource` per scene file (reactive `text()`, `write`, edit-mode
|
|
26
|
+
`compile()`, project `aspects()`) — see `src/types.ts`. The platform frontend backs it with the
|
|
27
|
+
editor store + `GET /api/projects/:uuid/scene/compile`; this playground backs it with a local
|
|
28
|
+
folder. A future `lecodes scene` CLI command can reuse the same pieces (like lecodes-design).
|
|
29
|
+
|
|
30
|
+
Theme comes from the host's CSS variables (`--bg`, `--surface`, `--border`, `--text`, `--dim`,
|
|
31
|
+
`--accent`, …) with dark fallbacks baked in.
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/createViewer2d-CI6PFuCm.js","assets/fetch-yAxxs-ZQ.js","assets/fetch-CbiE4Jmm.js","assets/createViewerLite-CoShwplA.js","assets/mediaplayer-40oza6jV.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./index-DZc_N5Kk.js";import{a as t,c as n,d as r,i,n as a,o,r as s,s as c,t as l,u}from"./fetch-yAxxs-ZQ.js";import{a as d,c as f,d as p,i as m,l as h,n as g,o as _,r as v,s as y,t as b,u as x}from"./mediaplayer-40oza6jV.js";import"./fetch-CbiE4Jmm.js";var S=(async function(e={}){var t,n=e,r,i,a=new Promise((e,t)=>{r=e,i=t}),o=!0,s=!1,c=`./this.program`,l=import.meta.url,u=``;function d(e){return n.locateFile?n.locateFile(e,u):u+e}var f,p;if(o||s){try{u=new URL(`.`,l).href}catch{}f=async e=>{var t=await fetch(e,{credentials:`same-origin`});if(t.ok)return t.arrayBuffer();throw Error(t.status+` : `+t.url)}}var m=console.log.bind(console),h=console.error.bind(console),g,_,v=!1,y,b,x,S,C,w,T,E,ee,te;function ne(){var e=_.buffer;y=new Int8Array(e),x=new Int16Array(e),n.HEAPU8=b=new Uint8Array(e),n.HEAPU16=S=new Uint16Array(e),C=new Int32Array(e),n.HEAPU32=w=new Uint32Array(e),n.HEAPF32=T=new Float32Array(e),n.HEAPF64=te=new Float64Array(e),E=new BigInt64Array(e),ee=new BigUint64Array(e)}function re(){if(n.preRun)for(typeof n.preRun==`function`&&(n.preRun=[n.preRun]);n.preRun.length;)xe(n.preRun.shift());_e(be)}function ie(){!n.noFSInit&&!z.initialized&&z.init(),L.init(),Q.dc(),z.ignorePermissions=!1}function ae(){if(n.postRun)for(typeof n.postRun==`function`&&(n.postRun=[n.postRun]);n.postRun.length;)ye(n.postRun.shift());_e(ve)}var D=0,O=null;function oe(e){return e}function se(e){D++,n.monitorRunDependencies?.(D)}function ce(e){if(D--,n.monitorRunDependencies?.(D),D==0&&O){var t=O;O=null,t()}}function le(e){n.onAbort?.(e),e=`Aborted(`+e+`)`,h(e),v=!0,e+=`. Build with -sASSERTIONS for more info.`;var t=new WebAssembly.RuntimeError(e);throw i(t),t}var ue;function de(){return n.locateFile?d(`creator-gl.wasm`):new URL(`/assets/creator-gl-GaTBGmVI.wasm`,``+import.meta.url).href}function fe(e){if(e==ue&&g)return new Uint8Array(g);if(p)return p(e);throw`both async and sync fetching of the wasm failed`}async function pe(e){if(!g)try{var t=await f(e);return new Uint8Array(t)}catch{}return fe(e)}async function me(e,t){try{var n=await pe(e);return await WebAssembly.instantiate(n,t)}catch(e){h(`failed to asynchronously prepare wasm: ${e}`),le(e)}}async function he(e,t,n){if(!e&&typeof WebAssembly.instantiateStreaming==`function`)try{var r=fetch(t,{credentials:`same-origin`});return await WebAssembly.instantiateStreaming(r,n)}catch(e){h(`wasm streaming compile failed: ${e}`),h(`falling back to ArrayBuffer instantiation`)}return me(t,n)}function k(){return{a:Yi}}async function ge(){function e(e,t){return Q=e.exports,_=Q.cc,ne(),ce(`wasm-instantiate`),Q}se(`wasm-instantiate`);function t(t){return e(t.instance)}var r=k();if(n.instantiateWasm)return new Promise((t,i)=>{n.instantiateWasm(r,(n,r)=>{t(e(n,r))})});ue??=de();try{return t(await he(g,ue,r))}catch(e){return i(e),Promise.reject(e)}}var _e=e=>{for(;e.length>0;)e.shift()(n)},ve=[],ye=e=>ve.push(e),be=[],xe=e=>be.push(e);class Se{constructor(e){this.excPtr=e,this.ptr=e-24}set_type(e){w[this.ptr+4>>2]=e}get_type(){return w[this.ptr+4>>2]}set_destructor(e){w[this.ptr+8>>2]=e}get_destructor(){return w[this.ptr+8>>2]}set_caught(e){e=+!!e,y[this.ptr+12]=e}get_caught(){return y[this.ptr+12]!=0}set_rethrown(e){e=+!!e,y[this.ptr+13]=e}get_rethrown(){return y[this.ptr+13]!=0}init(e,t){this.set_adjusted_ptr(0),this.set_type(e),this.set_destructor(t)}set_adjusted_ptr(e){w[this.ptr+16>>2]=e}get_adjusted_ptr(){return w[this.ptr+16>>2]}}var Ce=0,we=0,Te=(e,t,n)=>{throw new Se(e).init(t,n),Ce=e,we++,Ce},Ee=()=>{var e=C[V.varargs>>2];return V.varargs+=4,e},A=Ee,j={isAbs:e=>e.charAt(0)===`/`,splitPath:e=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1),normalizeArray:(e,t)=>{for(var n=0,r=e.length-1;r>=0;r--){var i=e[r];i===`.`?e.splice(r,1):i===`..`?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n;n--)e.unshift(`..`);return e},normalize:e=>{var t=j.isAbs(e),n=e.slice(-1)===`/`;return e=j.normalizeArray(e.split(`/`).filter(e=>!!e),!t).join(`/`),!e&&!t&&(e=`.`),e&&n&&(e+=`/`),(t?`/`:``)+e},dirname:e=>{var t=j.splitPath(e),n=t[0],r=t[1];return!n&&!r?`.`:(r&&=r.slice(0,-1),n+r)},basename:e=>e&&e.match(/([^\/]+|\/)\/*$/)[1],join:(...e)=>j.normalize(e.join(`/`)),join2:(e,t)=>j.normalize(e+`/`+t)},M=()=>e=>crypto.getRandomValues(e),De=e=>{(De=M())(e)},N={resolve:(...e)=>{for(var t=``,n=!1,r=e.length-1;r>=-1&&!n;r--){var i=r>=0?e[r]:z.cwd();if(typeof i!=`string`)throw TypeError(`Arguments to path.resolve must be strings`);if(!i)return``;t=i+`/`+t,n=j.isAbs(i)}return t=j.normalizeArray(t.split(`/`).filter(e=>!!e),!n).join(`/`),(n?`/`:``)+t||`.`},relative:(e,t)=>{e=N.resolve(e).slice(1),t=N.resolve(t).slice(1);function n(e){for(var t=0;t<e.length&&e[t]===``;t++);for(var n=e.length-1;n>=0&&e[n]===``;n--);return t>n?[]:e.slice(t,n-t+1)}for(var r=n(e.split(`/`)),i=n(t.split(`/`)),a=Math.min(r.length,i.length),o=a,s=0;s<a;s++)if(r[s]!==i[s]){o=s;break}for(var c=[],s=o;s<r.length;s++)c.push(`..`);return c=c.concat(i.slice(o)),c.join(`/`)}},Oe=typeof TextDecoder<`u`?new TextDecoder:void 0,P=(e,t=0,n=NaN)=>{for(var r=t+n,i=t;e[i]&&!(i>=r);)++i;if(i-t>16&&e.buffer&&Oe)return Oe.decode(e.subarray(t,i));for(var a=``;t<i;){var o=e[t++];if(!(o&128)){a+=String.fromCharCode(o);continue}var s=e[t++]&63;if((o&224)==192){a+=String.fromCharCode((o&31)<<6|s);continue}var c=e[t++]&63;if(o=(o&240)==224?(o&15)<<12|s<<6|c:(o&7)<<18|s<<12|c<<6|e[t++]&63,o<65536)a+=String.fromCharCode(o);else{var l=o-65536;a+=String.fromCharCode(55296|l>>10,56320|l&1023)}}return a},ke=[],F=e=>{for(var t=0,n=0;n<e.length;++n){var r=e.charCodeAt(n);r<=127?t++:r<=2047?t+=2:r>=55296&&r<=57343?(t+=4,++n):t+=3}return t},Ae=(e,t,n,r)=>{if(!(r>0))return 0;for(var i=n,a=n+r-1,o=0;o<e.length;++o){var s=e.charCodeAt(o);if(s>=55296&&s<=57343){var c=e.charCodeAt(++o);s=65536+((s&1023)<<10)|c&1023}if(s<=127){if(n>=a)break;t[n++]=s}else if(s<=2047){if(n+1>=a)break;t[n++]=192|s>>6,t[n++]=128|s&63}else if(s<=65535){if(n+2>=a)break;t[n++]=224|s>>12,t[n++]=128|s>>6&63,t[n++]=128|s&63}else{if(n+3>=a)break;t[n++]=240|s>>18,t[n++]=128|s>>12&63,t[n++]=128|s>>6&63,t[n++]=128|s&63}}return t[n]=0,n-i},I=(e,t,n)=>{var r=n>0?n:F(e)+1,i=Array(r),a=Ae(e,i,0,i.length);return t&&(i.length=a),i},je=()=>{if(!ke.length){var e=null;if(typeof window<`u`&&typeof window.prompt==`function`&&(e=window.prompt(`Input: `),e!==null&&(e+=`
|
|
3
|
+
`)),!e)return null;ke=I(e,!0)}return ke.shift()},L={ttys:[],init(){},shutdown(){},register(e,t){L.ttys[e]={input:[],output:[],ops:t},z.registerDevice(e,L.stream_ops)},stream_ops:{open(e){var t=L.ttys[e.node.rdev];if(!t)throw new z.ErrnoError(43);e.tty=t,e.seekable=!1},close(e){e.tty.ops.fsync(e.tty)},fsync(e){e.tty.ops.fsync(e.tty)},read(e,t,n,r,i){if(!e.tty||!e.tty.ops.get_char)throw new z.ErrnoError(60);for(var a=0,o=0;o<r;o++){var s;try{s=e.tty.ops.get_char(e.tty)}catch{throw new z.ErrnoError(29)}if(s===void 0&&a===0)throw new z.ErrnoError(6);if(s==null)break;a++,t[n+o]=s}return a&&(e.node.atime=Date.now()),a},write(e,t,n,r,i){if(!e.tty||!e.tty.ops.put_char)throw new z.ErrnoError(60);try{for(var a=0;a<r;a++)e.tty.ops.put_char(e.tty,t[n+a])}catch{throw new z.ErrnoError(29)}return r&&(e.node.mtime=e.node.ctime=Date.now()),a}},default_tty_ops:{get_char(e){return je()},put_char(e,t){t===null||t===10?(m(P(e.output)),e.output=[]):t!=0&&e.output.push(t)},fsync(e){e.output?.length>0&&(m(P(e.output)),e.output=[])},ioctl_tcgets(e){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(e,t,n){return 0},ioctl_tiocgwinsz(e){return[24,80]}},default_tty1_ops:{put_char(e,t){t===null||t===10?(h(P(e.output)),e.output=[]):t!=0&&e.output.push(t)},fsync(e){e.output?.length>0&&(h(P(e.output)),e.output=[])}}},Me=e=>{le()},R={ops_table:null,mount(e){return R.createNode(null,`/`,16895,0)},createNode(e,t,n,r){if(z.isBlkdev(n)||z.isFIFO(n))throw new z.ErrnoError(63);R.ops_table||={dir:{node:{getattr:R.node_ops.getattr,setattr:R.node_ops.setattr,lookup:R.node_ops.lookup,mknod:R.node_ops.mknod,rename:R.node_ops.rename,unlink:R.node_ops.unlink,rmdir:R.node_ops.rmdir,readdir:R.node_ops.readdir,symlink:R.node_ops.symlink},stream:{llseek:R.stream_ops.llseek}},file:{node:{getattr:R.node_ops.getattr,setattr:R.node_ops.setattr},stream:{llseek:R.stream_ops.llseek,read:R.stream_ops.read,write:R.stream_ops.write,mmap:R.stream_ops.mmap,msync:R.stream_ops.msync}},link:{node:{getattr:R.node_ops.getattr,setattr:R.node_ops.setattr,readlink:R.node_ops.readlink},stream:{}},chrdev:{node:{getattr:R.node_ops.getattr,setattr:R.node_ops.setattr},stream:z.chrdev_stream_ops}};var i=z.createNode(e,t,n,r);return z.isDir(i.mode)?(i.node_ops=R.ops_table.dir.node,i.stream_ops=R.ops_table.dir.stream,i.contents={}):z.isFile(i.mode)?(i.node_ops=R.ops_table.file.node,i.stream_ops=R.ops_table.file.stream,i.usedBytes=0,i.contents=null):z.isLink(i.mode)?(i.node_ops=R.ops_table.link.node,i.stream_ops=R.ops_table.link.stream):z.isChrdev(i.mode)&&(i.node_ops=R.ops_table.chrdev.node,i.stream_ops=R.ops_table.chrdev.stream),i.atime=i.mtime=i.ctime=Date.now(),e&&(e.contents[t]=i,e.atime=e.mtime=e.ctime=i.atime),i},getFileDataAsTypedArray(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array},expandFileStorage(e,t){var n=e.contents?e.contents.length:0;if(!(n>=t)){t=Math.max(t,n*(n<1024*1024?2:1.125)>>>0),n!=0&&(t=Math.max(t,256));var r=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(r.subarray(0,e.usedBytes),0)}},resizeFileStorage(e,t){if(e.usedBytes!=t)if(t==0)e.contents=null,e.usedBytes=0;else{var n=e.contents;e.contents=new Uint8Array(t),n&&e.contents.set(n.subarray(0,Math.min(t,e.usedBytes))),e.usedBytes=t}},node_ops:{getattr(e){var t={};return t.dev=z.isChrdev(e.mode)?e.id:1,t.ino=e.id,t.mode=e.mode,t.nlink=1,t.uid=0,t.gid=0,t.rdev=e.rdev,z.isDir(e.mode)?t.size=4096:z.isFile(e.mode)?t.size=e.usedBytes:z.isLink(e.mode)?t.size=e.link.length:t.size=0,t.atime=new Date(e.atime),t.mtime=new Date(e.mtime),t.ctime=new Date(e.ctime),t.blksize=4096,t.blocks=Math.ceil(t.size/t.blksize),t},setattr(e,t){for(let n of[`mode`,`atime`,`mtime`,`ctime`])t[n]!=null&&(e[n]=t[n]);t.size!==void 0&&R.resizeFileStorage(e,t.size)},lookup(e,t){throw R.doesNotExistError},mknod(e,t,n,r){return R.createNode(e,t,n,r)},rename(e,t,n){var r;try{r=z.lookupNode(t,n)}catch{}if(r){if(z.isDir(e.mode))for(var i in r.contents)throw new z.ErrnoError(55);z.hashRemoveNode(r)}delete e.parent.contents[e.name],t.contents[n]=e,e.name=n,t.ctime=t.mtime=e.parent.ctime=e.parent.mtime=Date.now()},unlink(e,t){delete e.contents[t],e.ctime=e.mtime=Date.now()},rmdir(e,t){for(var n in z.lookupNode(e,t).contents)throw new z.ErrnoError(55);delete e.contents[t],e.ctime=e.mtime=Date.now()},readdir(e){return[`.`,`..`,...Object.keys(e.contents)]},symlink(e,t,n){var r=R.createNode(e,t,41471,0);return r.link=n,r},readlink(e){if(!z.isLink(e.mode))throw new z.ErrnoError(28);return e.link}},stream_ops:{read(e,t,n,r,i){var a=e.node.contents;if(i>=e.node.usedBytes)return 0;var o=Math.min(e.node.usedBytes-i,r);if(o>8&&a.subarray)t.set(a.subarray(i,i+o),n);else for(var s=0;s<o;s++)t[n+s]=a[i+s];return o},write(e,t,n,r,i,a){if(t.buffer===y.buffer&&(a=!1),!r)return 0;var o=e.node;if(o.mtime=o.ctime=Date.now(),t.subarray&&(!o.contents||o.contents.subarray)){if(a)return o.contents=t.subarray(n,n+r),o.usedBytes=r,r;if(o.usedBytes===0&&i===0)return o.contents=t.slice(n,n+r),o.usedBytes=r,r;if(i+r<=o.usedBytes)return o.contents.set(t.subarray(n,n+r),i),r}if(R.expandFileStorage(o,i+r),o.contents.subarray&&t.subarray)o.contents.set(t.subarray(n,n+r),i);else for(var s=0;s<r;s++)o.contents[i+s]=t[n+s];return o.usedBytes=Math.max(o.usedBytes,i+r),r},llseek(e,t,n){var r=t;if(n===1?r+=e.position:n===2&&z.isFile(e.node.mode)&&(r+=e.node.usedBytes),r<0)throw new z.ErrnoError(28);return r},mmap(e,t,n,r,i){if(!z.isFile(e.node.mode))throw new z.ErrnoError(43);var a,o,s=e.node.contents;if(!(i&2)&&s&&s.buffer===y.buffer)o=!1,a=s.byteOffset;else{if(o=!0,a=Me(t),!a)throw new z.ErrnoError(48);s&&((n>0||n+t<s.length)&&(s=s.subarray?s.subarray(n,n+t):Array.prototype.slice.call(s,n,n+t)),y.set(s,a))}return{ptr:a,allocated:o}},msync(e,t,n,r,i){return R.stream_ops.write(e,t,0,r,n,!1),0}}},Ne=async e=>{var t=await f(e);return new Uint8Array(t)},Pe=(...e)=>z.createDataFile(...e),Fe=[],Ie=(e,t,n,r)=>{typeof Browser<`u`&&Browser.init();var i=!1;return Fe.forEach(a=>{i||a.canHandle(t)&&(a.handle(e,t,n,r),i=!0)}),i},Le=(e,t,n,r,i,a,o,s,c,l)=>{var u=t?N.resolve(j.join2(e,t)):e,d=oe(`cp ${u}`);function f(n){function f(n){l?.(),s||Pe(e,t,n,r,i,c),a?.(),ce(d)}Ie(n,u,f,()=>{o?.(),ce(d)})||f(n)}se(d),typeof n==`string`?Ne(n).then(f,o):f(n)},Re=e=>{var t={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[e];if(t===void 0)throw Error(`Unknown file open mode: ${e}`);return t},ze=(e,t)=>{var n=0;return e&&(n|=365),t&&(n|=146),n},z={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:`/`,initialized:!1,ignorePermissions:!0,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class{name=`ErrnoError`;constructor(e){this.errno=e}},FSStream:class{shared={};get object(){return this.node}set object(e){this.node=e}get isRead(){return(this.flags&2097155)!=1}get isWrite(){return(this.flags&2097155)!=0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(e){this.shared.flags=e}get position(){return this.shared.position}set position(e){this.shared.position=e}},FSNode:class{node_ops={};stream_ops={};readMode=365;writeMode=146;mounted=null;constructor(e,t,n,r){e||=this,this.parent=e,this.mount=e.mount,this.id=z.nextInode++,this.name=t,this.mode=n,this.rdev=r,this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(e){e?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(e){e?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return z.isDir(this.mode)}get isDevice(){return z.isChrdev(this.mode)}},lookupPath(e,t={}){if(!e)throw new z.ErrnoError(44);t.follow_mount??=!0,j.isAbs(e)||(e=z.cwd()+`/`+e);linkloop:for(var n=0;n<40;n++){for(var r=e.split(`/`).filter(e=>!!e),i=z.root,a=`/`,o=0;o<r.length;o++){var s=o===r.length-1;if(s&&t.parent)break;if(r[o]!==`.`){if(r[o]===`..`){if(a=j.dirname(a),z.isRoot(i)){e=a+`/`+r.slice(o+1).join(`/`);continue linkloop}else i=i.parent;continue}a=j.join2(a,r[o]);try{i=z.lookupNode(i,r[o])}catch(e){if(e?.errno===44&&s&&t.noent_okay)return{path:a};throw e}if(z.isMountpoint(i)&&(!s||t.follow_mount)&&(i=i.mounted.root),z.isLink(i.mode)&&(!s||t.follow)){if(!i.node_ops.readlink)throw new z.ErrnoError(52);var c=i.node_ops.readlink(i);j.isAbs(c)||(c=j.dirname(a)+`/`+c),e=c+`/`+r.slice(o+1).join(`/`);continue linkloop}}}return{path:a,node:i}}throw new z.ErrnoError(32)},getPath(e){for(var t;;){if(z.isRoot(e)){var n=e.mount.mountpoint;return t?n[n.length-1]===`/`?n+t:`${n}/${t}`:n}t=t?`${e.name}/${t}`:e.name,e=e.parent}},hashName(e,t){for(var n=0,r=0;r<t.length;r++)n=(n<<5)-n+t.charCodeAt(r)|0;return(e+n>>>0)%z.nameTable.length},hashAddNode(e){var t=z.hashName(e.parent.id,e.name);e.name_next=z.nameTable[t],z.nameTable[t]=e},hashRemoveNode(e){var t=z.hashName(e.parent.id,e.name);if(z.nameTable[t]===e)z.nameTable[t]=e.name_next;else for(var n=z.nameTable[t];n;){if(n.name_next===e){n.name_next=e.name_next;break}n=n.name_next}},lookupNode(e,t){var n=z.mayLookup(e);if(n)throw new z.ErrnoError(n);for(var r=z.hashName(e.id,t),i=z.nameTable[r];i;i=i.name_next){var a=i.name;if(i.parent.id===e.id&&a===t)return i}return z.lookup(e,t)},createNode(e,t,n,r){var i=new z.FSNode(e,t,n,r);return z.hashAddNode(i),i},destroyNode(e){z.hashRemoveNode(e)},isRoot(e){return e===e.parent},isMountpoint(e){return!!e.mounted},isFile(e){return(e&61440)==32768},isDir(e){return(e&61440)==16384},isLink(e){return(e&61440)==40960},isChrdev(e){return(e&61440)==8192},isBlkdev(e){return(e&61440)==24576},isFIFO(e){return(e&61440)==4096},isSocket(e){return(e&49152)==49152},flagsToPermissionString(e){var t=[`r`,`w`,`rw`][e&3];return e&512&&(t+=`w`),t},nodePermissions(e,t){return z.ignorePermissions?0:t.includes(`r`)&&!(e.mode&292)||t.includes(`w`)&&!(e.mode&146)||t.includes(`x`)&&!(e.mode&73)?2:0},mayLookup(e){return z.isDir(e.mode)?z.nodePermissions(e,`x`)||(e.node_ops.lookup?0:2):54},mayCreate(e,t){if(!z.isDir(e.mode))return 54;try{return z.lookupNode(e,t),20}catch{}return z.nodePermissions(e,`wx`)},mayDelete(e,t,n){var r;try{r=z.lookupNode(e,t)}catch(e){return e.errno}var i=z.nodePermissions(e,`wx`);if(i)return i;if(n){if(!z.isDir(r.mode))return 54;if(z.isRoot(r)||z.getPath(r)===z.cwd())return 10}else if(z.isDir(r.mode))return 31;return 0},mayOpen(e,t){return e?z.isLink(e.mode)?32:z.isDir(e.mode)&&(z.flagsToPermissionString(t)!==`r`||t&576)?31:z.nodePermissions(e,z.flagsToPermissionString(t)):44},checkOpExists(e,t){if(!e)throw new z.ErrnoError(t);return e},MAX_OPEN_FDS:4096,nextfd(){for(var e=0;e<=z.MAX_OPEN_FDS;e++)if(!z.streams[e])return e;throw new z.ErrnoError(33)},getStreamChecked(e){var t=z.getStream(e);if(!t)throw new z.ErrnoError(8);return t},getStream:e=>z.streams[e],createStream(e,t=-1){return e=Object.assign(new z.FSStream,e),t==-1&&(t=z.nextfd()),e.fd=t,z.streams[t]=e,e},closeStream(e){z.streams[e]=null},dupStream(e,t=-1){var n=z.createStream(e,t);return n.stream_ops?.dup?.(n),n},doSetAttr(e,t,n){var r=e?.stream_ops.setattr,i=r?e:t;r??=t.node_ops.setattr,z.checkOpExists(r,63),r(i,n)},chrdev_stream_ops:{open(e){e.stream_ops=z.getDevice(e.node.rdev).stream_ops,e.stream_ops.open?.(e)},llseek(){throw new z.ErrnoError(70)}},major:e=>e>>8,minor:e=>e&255,makedev:(e,t)=>e<<8|t,registerDevice(e,t){z.devices[e]={stream_ops:t}},getDevice:e=>z.devices[e],getMounts(e){for(var t=[],n=[e];n.length;){var r=n.pop();t.push(r),n.push(...r.mounts)}return t},syncfs(e,t){typeof e==`function`&&(t=e,e=!1),z.syncFSRequests++,z.syncFSRequests>1&&h(`warning: ${z.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var n=z.getMounts(z.root.mount),r=0;function i(e){return z.syncFSRequests--,t(e)}function a(e){if(e)return a.errored?void 0:(a.errored=!0,i(e));++r>=n.length&&i(null)}n.forEach(t=>{if(!t.type.syncfs)return a(null);t.type.syncfs(t,e,a)})},mount(e,t,n){var r=n===`/`,i=!n,a;if(r&&z.root)throw new z.ErrnoError(10);if(!r&&!i){var o=z.lookupPath(n,{follow_mount:!1});if(n=o.path,a=o.node,z.isMountpoint(a))throw new z.ErrnoError(10);if(!z.isDir(a.mode))throw new z.ErrnoError(54)}var s={type:e,opts:t,mountpoint:n,mounts:[]},c=e.mount(s);return c.mount=s,s.root=c,r?z.root=c:a&&(a.mounted=s,a.mount&&a.mount.mounts.push(s)),c},unmount(e){var t=z.lookupPath(e,{follow_mount:!1});if(!z.isMountpoint(t.node))throw new z.ErrnoError(28);var n=t.node,r=n.mounted,i=z.getMounts(r);Object.keys(z.nameTable).forEach(e=>{for(var t=z.nameTable[e];t;){var n=t.name_next;i.includes(t.mount)&&z.destroyNode(t),t=n}}),n.mounted=null;var a=n.mount.mounts.indexOf(r);n.mount.mounts.splice(a,1)},lookup(e,t){return e.node_ops.lookup(e,t)},mknod(e,t,n){var r=z.lookupPath(e,{parent:!0}).node,i=j.basename(e);if(!i)throw new z.ErrnoError(28);if(i===`.`||i===`..`)throw new z.ErrnoError(20);var a=z.mayCreate(r,i);if(a)throw new z.ErrnoError(a);if(!r.node_ops.mknod)throw new z.ErrnoError(63);return r.node_ops.mknod(r,i,t,n)},statfs(e){return z.statfsNode(z.lookupPath(e,{follow:!0}).node)},statfsStream(e){return z.statfsNode(e.node)},statfsNode(e){var t={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:z.nextInode,ffree:z.nextInode-1,fsid:42,flags:2,namelen:255};return e.node_ops.statfs&&Object.assign(t,e.node_ops.statfs(e.mount.opts.root)),t},create(e,t=438){return t&=4095,t|=32768,z.mknod(e,t,0)},mkdir(e,t=511){return t&=1023,t|=16384,z.mknod(e,t,0)},mkdirTree(e,t){var n=e.split(`/`),r=``;for(var i of n)if(i){(r||j.isAbs(e))&&(r+=`/`),r+=i;try{z.mkdir(r,t)}catch(e){if(e.errno!=20)throw e}}},mkdev(e,t,n){return n===void 0&&(n=t,t=438),t|=8192,z.mknod(e,t,n)},symlink(e,t){if(!N.resolve(e))throw new z.ErrnoError(44);var n=z.lookupPath(t,{parent:!0}).node;if(!n)throw new z.ErrnoError(44);var r=j.basename(t),i=z.mayCreate(n,r);if(i)throw new z.ErrnoError(i);if(!n.node_ops.symlink)throw new z.ErrnoError(63);return n.node_ops.symlink(n,r,e)},rename(e,t){var n=j.dirname(e),r=j.dirname(t),i=j.basename(e),a=j.basename(t),o=z.lookupPath(e,{parent:!0}),s=o.node,c;if(o=z.lookupPath(t,{parent:!0}),c=o.node,!s||!c)throw new z.ErrnoError(44);if(s.mount!==c.mount)throw new z.ErrnoError(75);var l=z.lookupNode(s,i),u=N.relative(e,r);if(u.charAt(0)!==`.`)throw new z.ErrnoError(28);if(u=N.relative(t,n),u.charAt(0)!==`.`)throw new z.ErrnoError(55);var d;try{d=z.lookupNode(c,a)}catch{}if(l!==d){var f=z.isDir(l.mode),p=z.mayDelete(s,i,f);if(p||(p=d?z.mayDelete(c,a,f):z.mayCreate(c,a),p))throw new z.ErrnoError(p);if(!s.node_ops.rename)throw new z.ErrnoError(63);if(z.isMountpoint(l)||d&&z.isMountpoint(d))throw new z.ErrnoError(10);if(c!==s&&(p=z.nodePermissions(s,`w`),p))throw new z.ErrnoError(p);z.hashRemoveNode(l);try{s.node_ops.rename(l,c,a),l.parent=c}catch(e){throw e}finally{z.hashAddNode(l)}}},rmdir(e){var t=z.lookupPath(e,{parent:!0}).node,n=j.basename(e),r=z.lookupNode(t,n),i=z.mayDelete(t,n,!0);if(i)throw new z.ErrnoError(i);if(!t.node_ops.rmdir)throw new z.ErrnoError(63);if(z.isMountpoint(r))throw new z.ErrnoError(10);t.node_ops.rmdir(t,n),z.destroyNode(r)},readdir(e){var t=z.lookupPath(e,{follow:!0}).node;return z.checkOpExists(t.node_ops.readdir,54)(t)},unlink(e){var t=z.lookupPath(e,{parent:!0}).node;if(!t)throw new z.ErrnoError(44);var n=j.basename(e),r=z.lookupNode(t,n),i=z.mayDelete(t,n,!1);if(i)throw new z.ErrnoError(i);if(!t.node_ops.unlink)throw new z.ErrnoError(63);if(z.isMountpoint(r))throw new z.ErrnoError(10);t.node_ops.unlink(t,n),z.destroyNode(r)},readlink(e){var t=z.lookupPath(e).node;if(!t)throw new z.ErrnoError(44);if(!t.node_ops.readlink)throw new z.ErrnoError(28);return t.node_ops.readlink(t)},stat(e,t){var n=z.lookupPath(e,{follow:!t}).node;return z.checkOpExists(n.node_ops.getattr,63)(n)},fstat(e){var t=z.getStreamChecked(e),n=t.node,r=t.stream_ops.getattr,i=r?t:n;return r??=n.node_ops.getattr,z.checkOpExists(r,63),r(i)},lstat(e){return z.stat(e,!0)},doChmod(e,t,n,r){z.doSetAttr(e,t,{mode:n&4095|t.mode&-4096,ctime:Date.now(),dontFollow:r})},chmod(e,t,n){var r=typeof e==`string`?z.lookupPath(e,{follow:!n}).node:e;z.doChmod(null,r,t,n)},lchmod(e,t){z.chmod(e,t,!0)},fchmod(e,t){var n=z.getStreamChecked(e);z.doChmod(n,n.node,t,!1)},doChown(e,t,n){z.doSetAttr(e,t,{timestamp:Date.now(),dontFollow:n})},chown(e,t,n,r){var i=typeof e==`string`?z.lookupPath(e,{follow:!r}).node:e;z.doChown(null,i,r)},lchown(e,t,n){z.chown(e,t,n,!0)},fchown(e,t,n){var r=z.getStreamChecked(e);z.doChown(r,r.node,!1)},doTruncate(e,t,n){if(z.isDir(t.mode))throw new z.ErrnoError(31);if(!z.isFile(t.mode))throw new z.ErrnoError(28);var r=z.nodePermissions(t,`w`);if(r)throw new z.ErrnoError(r);z.doSetAttr(e,t,{size:n,timestamp:Date.now()})},truncate(e,t){if(t<0)throw new z.ErrnoError(28);var n=typeof e==`string`?z.lookupPath(e,{follow:!0}).node:e;z.doTruncate(null,n,t)},ftruncate(e,t){var n=z.getStreamChecked(e);if(t<0||!(n.flags&2097155))throw new z.ErrnoError(28);z.doTruncate(n,n.node,t)},utime(e,t,n){var r=z.lookupPath(e,{follow:!0}).node;z.checkOpExists(r.node_ops.setattr,63)(r,{atime:t,mtime:n})},open(e,t,r=438){if(e===``)throw new z.ErrnoError(44);t=typeof t==`string`?Re(t):t,r=t&64?r&4095|32768:0;var i,a;if(typeof e==`object`)i=e;else{a=e.endsWith(`/`);var o=z.lookupPath(e,{follow:!(t&131072),noent_okay:!0});i=o.node,e=o.path}var s=!1;if(t&64)if(i){if(t&128)throw new z.ErrnoError(20)}else if(a)throw new z.ErrnoError(31);else i=z.mknod(e,r|511,0),s=!0;if(!i)throw new z.ErrnoError(44);if(z.isChrdev(i.mode)&&(t&=-513),t&65536&&!z.isDir(i.mode))throw new z.ErrnoError(54);if(!s){var c=z.mayOpen(i,t);if(c)throw new z.ErrnoError(c)}t&512&&!s&&z.truncate(i,0),t&=-131713;var l=z.createStream({node:i,path:z.getPath(i),flags:t,seekable:!0,position:0,stream_ops:i.stream_ops,ungotten:[],error:!1});return l.stream_ops.open&&l.stream_ops.open(l),s&&z.chmod(i,r&511),n.logReadFiles&&!(t&1)&&(e in z.readFiles||(z.readFiles[e]=1)),l},close(e){if(z.isClosed(e))throw new z.ErrnoError(8);e.getdents&&=null;try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{z.closeStream(e.fd)}e.fd=null},isClosed(e){return e.fd===null},llseek(e,t,n){if(z.isClosed(e))throw new z.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new z.ErrnoError(70);if(n!=0&&n!=1&&n!=2)throw new z.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,n),e.ungotten=[],e.position},read(e,t,n,r,i){if(r<0||i<0)throw new z.ErrnoError(28);if(z.isClosed(e)||(e.flags&2097155)==1)throw new z.ErrnoError(8);if(z.isDir(e.node.mode))throw new z.ErrnoError(31);if(!e.stream_ops.read)throw new z.ErrnoError(28);var a=i!==void 0;if(!a)i=e.position;else if(!e.seekable)throw new z.ErrnoError(70);var o=e.stream_ops.read(e,t,n,r,i);return a||(e.position+=o),o},write(e,t,n,r,i,a){if(r<0||i<0)throw new z.ErrnoError(28);if(z.isClosed(e)||!(e.flags&2097155))throw new z.ErrnoError(8);if(z.isDir(e.node.mode))throw new z.ErrnoError(31);if(!e.stream_ops.write)throw new z.ErrnoError(28);e.seekable&&e.flags&1024&&z.llseek(e,0,2);var o=i!==void 0;if(!o)i=e.position;else if(!e.seekable)throw new z.ErrnoError(70);var s=e.stream_ops.write(e,t,n,r,i,a);return o||(e.position+=s),s},mmap(e,t,n,r,i){if(r&2&&!(i&2)&&(e.flags&2097155)!=2||(e.flags&2097155)==1)throw new z.ErrnoError(2);if(!e.stream_ops.mmap)throw new z.ErrnoError(43);if(!t)throw new z.ErrnoError(28);return e.stream_ops.mmap(e,t,n,r,i)},msync(e,t,n,r,i){return e.stream_ops.msync?e.stream_ops.msync(e,t,n,r,i):0},ioctl(e,t,n){if(!e.stream_ops.ioctl)throw new z.ErrnoError(59);return e.stream_ops.ioctl(e,t,n)},readFile(e,t={}){if(t.flags=t.flags||0,t.encoding=t.encoding||`binary`,t.encoding!==`utf8`&&t.encoding!==`binary`)throw Error(`Invalid encoding type "${t.encoding}"`);var n,r=z.open(e,t.flags),i=z.stat(e).size,a=new Uint8Array(i);return z.read(r,a,0,i,0),t.encoding===`utf8`?n=P(a):t.encoding===`binary`&&(n=a),z.close(r),n},writeFile(e,t,n={}){n.flags=n.flags||577;var r=z.open(e,n.flags,n.mode);if(typeof t==`string`){var i=new Uint8Array(F(t)+1),a=Ae(t,i,0,i.length);z.write(r,i,0,a,void 0,n.canOwn)}else if(ArrayBuffer.isView(t))z.write(r,t,0,t.byteLength,void 0,n.canOwn);else throw Error(`Unsupported data type`);z.close(r)},cwd:()=>z.currentPath,chdir(e){var t=z.lookupPath(e,{follow:!0});if(t.node===null)throw new z.ErrnoError(44);if(!z.isDir(t.node.mode))throw new z.ErrnoError(54);var n=z.nodePermissions(t.node,`x`);if(n)throw new z.ErrnoError(n);z.currentPath=t.path},createDefaultDirectories(){z.mkdir(`/tmp`),z.mkdir(`/home`),z.mkdir(`/home/web_user`)},createDefaultDevices(){z.mkdir(`/dev`),z.registerDevice(z.makedev(1,3),{read:()=>0,write:(e,t,n,r,i)=>r,llseek:()=>0}),z.mkdev(`/dev/null`,z.makedev(1,3)),L.register(z.makedev(5,0),L.default_tty_ops),L.register(z.makedev(6,0),L.default_tty1_ops),z.mkdev(`/dev/tty`,z.makedev(5,0)),z.mkdev(`/dev/tty1`,z.makedev(6,0));var e=new Uint8Array(1024),t=0,n=()=>(t===0&&(De(e),t=e.byteLength),e[--t]);z.createDevice(`/dev`,`random`,n),z.createDevice(`/dev`,`urandom`,n),z.mkdir(`/dev/shm`),z.mkdir(`/dev/shm/tmp`)},createSpecialDirectories(){z.mkdir(`/proc`);var e=z.mkdir(`/proc/self`);z.mkdir(`/proc/self/fd`),z.mount({mount(){var t=z.createNode(e,`fd`,16895,73);return t.stream_ops={llseek:R.stream_ops.llseek},t.node_ops={lookup(e,t){var n=+t,r=z.getStreamChecked(n),i={parent:null,mount:{mountpoint:`fake`},node_ops:{readlink:()=>r.path},id:n+1};return i.parent=i,i},readdir(){return Array.from(z.streams.entries()).filter(([e,t])=>t).map(([e,t])=>e.toString())}},t}},{},`/proc/self/fd`)},createStandardStreams(e,t,n){e?z.createDevice(`/dev`,`stdin`,e):z.symlink(`/dev/tty`,`/dev/stdin`),t?z.createDevice(`/dev`,`stdout`,null,t):z.symlink(`/dev/tty`,`/dev/stdout`),n?z.createDevice(`/dev`,`stderr`,null,n):z.symlink(`/dev/tty1`,`/dev/stderr`),z.open(`/dev/stdin`,0),z.open(`/dev/stdout`,1),z.open(`/dev/stderr`,1)},staticInit(){z.nameTable=Array(4096),z.mount(R,{},`/`),z.createDefaultDirectories(),z.createDefaultDevices(),z.createSpecialDirectories(),z.filesystems={MEMFS:R}},init(e,t,r){z.initialized=!0,e??=n.stdin,t??=n.stdout,r??=n.stderr,z.createStandardStreams(e,t,r)},quit(){z.initialized=!1;for(var e of z.streams)e&&z.close(e)},findObject(e,t){var n=z.analyzePath(e,t);return n.exists?n.object:null},analyzePath(e,t){try{var n=z.lookupPath(e,{follow:!t});e=n.path}catch{}var r={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=z.lookupPath(e,{parent:!0});r.parentExists=!0,r.parentPath=n.path,r.parentObject=n.node,r.name=j.basename(e),n=z.lookupPath(e,{follow:!t}),r.exists=!0,r.path=n.path,r.object=n.node,r.name=n.node.name,r.isRoot=n.path===`/`}catch(e){r.error=e.errno}return r},createPath(e,t,n,r){e=typeof e==`string`?e:z.getPath(e);for(var i=t.split(`/`).reverse();i.length;){var a=i.pop();if(a){var o=j.join2(e,a);try{z.mkdir(o)}catch(e){if(e.errno!=20)throw e}e=o}}return o},createFile(e,t,n,r,i){var a=j.join2(typeof e==`string`?e:z.getPath(e),t),o=ze(r,i);return z.create(a,o)},createDataFile(e,t,n,r,i,a){var o=t;e&&(e=typeof e==`string`?e:z.getPath(e),o=t?j.join2(e,t):e);var s=ze(r,i),c=z.create(o,s);if(n){if(typeof n==`string`){for(var l=Array(n.length),u=0,d=n.length;u<d;++u)l[u]=n.charCodeAt(u);n=l}z.chmod(c,s|146);var f=z.open(c,577);z.write(f,n,0,n.length,0,a),z.close(f),z.chmod(c,s)}},createDevice(e,t,n,r){var i=j.join2(typeof e==`string`?e:z.getPath(e),t),a=ze(!!n,!!r);z.createDevice.major??=64;var o=z.makedev(z.createDevice.major++,0);return z.registerDevice(o,{open(e){e.seekable=!1},close(e){r?.buffer?.length&&r(10)},read(e,t,r,i,a){for(var o=0,s=0;s<i;s++){var c;try{c=n()}catch{throw new z.ErrnoError(29)}if(c===void 0&&o===0)throw new z.ErrnoError(6);if(c==null)break;o++,t[r+s]=c}return o&&(e.node.atime=Date.now()),o},write(e,t,n,i,a){for(var o=0;o<i;o++)try{r(t[n+o])}catch{throw new z.ErrnoError(29)}return i&&(e.node.mtime=e.node.ctime=Date.now()),o}}),z.mkdev(i,a,o)},forceLoadFile(e){if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if(typeof XMLHttpRequest<`u`)throw Error(`Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.`);try{e.contents=p(e.url),e.usedBytes=e.contents.length}catch{throw new z.ErrnoError(29)}},createLazyFile(e,t,n,r,i){class a{lengthKnown=!1;chunks=[];get(e){if(!(e>this.length-1||e<0)){var t=e%this.chunkSize,n=e/this.chunkSize|0;return this.getter(n)[t]}}setDataGetter(e){this.getter=e}cacheLength(){var e=new XMLHttpRequest;if(e.open(`HEAD`,n,!1),e.send(null),!(e.status>=200&&e.status<300||e.status===304))throw Error(`Couldn't load `+n+`. Status: `+e.status);var t=Number(e.getResponseHeader(`Content-length`)),r,i=(r=e.getResponseHeader(`Accept-Ranges`))&&r===`bytes`,a=(r=e.getResponseHeader(`Content-Encoding`))&&r===`gzip`,o=1024*1024;i||(o=t);var s=(e,r)=>{if(e>r)throw Error(`invalid range (`+e+`, `+r+`) or no bytes requested!`);if(r>t-1)throw Error(`only `+t+` bytes available! programmer error!`);var i=new XMLHttpRequest;if(i.open(`GET`,n,!1),t!==o&&i.setRequestHeader(`Range`,`bytes=`+e+`-`+r),i.responseType=`arraybuffer`,i.overrideMimeType&&i.overrideMimeType(`text/plain; charset=x-user-defined`),i.send(null),!(i.status>=200&&i.status<300||i.status===304))throw Error(`Couldn't load `+n+`. Status: `+i.status);return i.response===void 0?I(i.responseText||``,!0):new Uint8Array(i.response||[])},c=this;c.setDataGetter(e=>{var n=e*o,r=(e+1)*o-1;if(r=Math.min(r,t-1),c.chunks[e]===void 0&&(c.chunks[e]=s(n,r)),c.chunks[e]===void 0)throw Error(`doXHR failed!`);return c.chunks[e]}),(a||!t)&&(o=t=1,t=this.getter(0).length,o=t,m(`LazyFiles on gzip forces download of the whole file when length is accessed`)),this._length=t,this._chunkSize=o,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(typeof XMLHttpRequest<`u`){if(!s)throw`Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc`;var o={isDevice:!1,contents:new a}}else var o={isDevice:!1,url:n};var c=z.createFile(e,t,o,r,i);o.contents?c.contents=o.contents:o.url&&(c.contents=null,c.url=o.url),Object.defineProperties(c,{usedBytes:{get:function(){return this.contents.length}}});var l={};Object.keys(c.stream_ops).forEach(e=>{var t=c.stream_ops[e];l[e]=(...e)=>(z.forceLoadFile(c),t(...e))});function u(e,t,n,r,i){var a=e.node.contents;if(i>=a.length)return 0;var o=Math.min(a.length-i,r);if(a.slice)for(var s=0;s<o;s++)t[n+s]=a[i+s];else for(var s=0;s<o;s++)t[n+s]=a.get(i+s);return o}return l.read=(e,t,n,r,i)=>(z.forceLoadFile(c),u(e,t,n,r,i)),l.mmap=(e,t,n,r,i)=>{z.forceLoadFile(c);var a=Me(t);if(!a)throw new z.ErrnoError(48);return u(e,y,a,t,n),{ptr:a,allocated:!0}},c.stream_ops=l,c}},B=(e,t)=>e?P(b,e,t):``,V={DEFAULT_POLLMASK:5,calculateAt(e,t,n){if(j.isAbs(t))return t;var r=e===-100?z.cwd():V.getStreamFromFD(e).path;if(t.length==0){if(!n)throw new z.ErrnoError(44);return r}return r+`/`+t},writeStat(e,t){C[e>>2]=t.dev,C[e+4>>2]=t.mode,w[e+8>>2]=t.nlink,C[e+12>>2]=t.uid,C[e+16>>2]=t.gid,C[e+20>>2]=t.rdev,E[e+24>>3]=BigInt(t.size),C[e+32>>2]=4096,C[e+36>>2]=t.blocks;var n=t.atime.getTime(),r=t.mtime.getTime(),i=t.ctime.getTime();return E[e+40>>3]=BigInt(Math.floor(n/1e3)),w[e+48>>2]=n%1e3*1e3*1e3,E[e+56>>3]=BigInt(Math.floor(r/1e3)),w[e+64>>2]=r%1e3*1e3*1e3,E[e+72>>3]=BigInt(Math.floor(i/1e3)),w[e+80>>2]=i%1e3*1e3*1e3,E[e+88>>3]=BigInt(t.ino),0},writeStatFs(e,t){C[e+4>>2]=t.bsize,C[e+40>>2]=t.bsize,C[e+8>>2]=t.blocks,C[e+12>>2]=t.bfree,C[e+16>>2]=t.bavail,C[e+20>>2]=t.files,C[e+24>>2]=t.ffree,C[e+28>>2]=t.fsid,C[e+44>>2]=t.flags,C[e+36>>2]=t.namelen},doMsync(e,t,n,r,i){if(!z.isFile(t.node.mode))throw new z.ErrnoError(43);if(r&2)return 0;var a=b.slice(e,e+n);z.msync(t,a,i,n,r)},getStreamFromFD(e){return z.getStreamChecked(e)},varargs:void 0,getStr(e){return B(e)}};function Be(e,t,n){V.varargs=n;try{var r=V.getStreamFromFD(e);switch(t){case 0:var i=Ee();if(i<0)return-28;for(;z.streams[i];)i++;return z.dupStream(r,i).fd;case 1:case 2:return 0;case 3:return r.flags;case 4:var i=Ee();return r.flags|=i,0;case 12:var i=A(),a=0;return x[i+a>>1]=2,0;case 13:case 14:return 0}return-28}catch(e){if(z===void 0||e.name!==`ErrnoError`)throw e;return-e.errno}}function Ve(e,t,n){V.varargs=n;try{var r=V.getStreamFromFD(e);switch(t){case 21509:return r.tty?0:-59;case 21505:if(!r.tty)return-59;if(r.tty.ops.ioctl_tcgets){var i=r.tty.ops.ioctl_tcgets(r),a=A();C[a>>2]=i.c_iflag||0,C[a+4>>2]=i.c_oflag||0,C[a+8>>2]=i.c_cflag||0,C[a+12>>2]=i.c_lflag||0;for(var o=0;o<32;o++)y[a+o+17]=i.c_cc[o]||0;return 0}return 0;case 21510:case 21511:case 21512:return r.tty?0:-59;case 21506:case 21507:case 21508:if(!r.tty)return-59;if(r.tty.ops.ioctl_tcsets){for(var a=A(),s=C[a>>2],c=C[a+4>>2],l=C[a+8>>2],u=C[a+12>>2],d=[],o=0;o<32;o++)d.push(y[a+o+17]);return r.tty.ops.ioctl_tcsets(r.tty,t,{c_iflag:s,c_oflag:c,c_cflag:l,c_lflag:u,c_cc:d})}return 0;case 21519:if(!r.tty)return-59;var a=A();return C[a>>2]=0,0;case 21520:return r.tty?-28:-59;case 21531:var a=A();return z.ioctl(r,t,a);case 21523:if(!r.tty)return-59;if(r.tty.ops.ioctl_tiocgwinsz){var f=r.tty.ops.ioctl_tiocgwinsz(r.tty),a=A();x[a>>1]=f[0],x[a+2>>1]=f[1]}return 0;case 21524:return r.tty?0:-59;case 21515:return r.tty?0:-59;default:return-28}}catch(e){if(z===void 0||e.name!==`ErrnoError`)throw e;return-e.errno}}function He(e,t,n,r){V.varargs=r;try{t=V.getStr(t),t=V.calculateAt(e,t);var i=r?Ee():0;return z.open(t,n,i).fd}catch(e){if(z===void 0||e.name!==`ErrnoError`)throw e;return-e.errno}}function Ue(e,t){try{return e=V.getStr(e),V.writeStat(t,z.stat(e))}catch(e){if(z===void 0||e.name!==`ErrnoError`)throw e;return-e.errno}}var We=()=>le(``),Ge=()=>{for(var e=Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);Ke=e},Ke,H=e=>{for(var t=``,n=e;b[n];)t+=Ke[b[n++]];return t},qe={},Je={},Ye={},Xe=class extends Error{constructor(e){super(e),this.name=`BindingError`}},U=e=>{throw new Xe(e)};function Ze(e,t,n={}){var r=t.name;if(e||U(`type "${r}" must have a positive integer typeid pointer`),Je.hasOwnProperty(e)){if(n.ignoreDuplicateRegistrations)return;U(`Cannot register type '${r}' twice`)}if(Je[e]=t,delete Ye[e],qe.hasOwnProperty(e)){var i=qe[e];delete qe[e],i.forEach(e=>e())}}function W(e,t,n={}){return Ze(e,t,n)}var Qe=(e,t,n)=>{switch(t){case 1:return n?e=>y[e]:e=>b[e];case 2:return n?e=>x[e>>1]:e=>S[e>>1];case 4:return n?e=>C[e>>2]:e=>w[e>>2];case 8:return n?e=>E[e>>3]:e=>ee[e>>3];default:throw TypeError(`invalid integer width (${t}): ${e}`)}},$e=(e,t,n,r,i)=>{t=H(t);let a=r===0n,o=e=>e;if(a){let e=n*8;o=t=>BigInt.asUintN(e,t),i=o(i)}W(e,{name:t,fromWireType:o,toWireType:(e,t)=>(typeof t==`number`&&(t=BigInt(t)),t),argPackAdvance:G,readValueFromPointer:Qe(t,n,!a),destructorFunction:null})},G=8,et=(e,t,n,r)=>{t=H(t),W(e,{name:t,fromWireType:function(e){return!!e},toWireType:function(e,t){return t?n:r},argPackAdvance:G,readValueFromPointer:function(e){return this.fromWireType(b[e])},destructorFunction:null})},tt=[],K=[0,1,,1,null,1,!0,1,!1,1],nt=e=>{e>9&&--K[e+1]===0&&(K[e]=void 0,tt.push(e))},rt={toValue:e=>(e||U(`Cannot use deleted val. handle = ${e}`),K[e]),toHandle:e=>{switch(e){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{let t=tt.pop()||K.length;return K[t]=e,K[t+1]=1,t}}}};function it(e){return this.fromWireType(w[e>>2])}var at={name:`emscripten::val`,fromWireType:e=>{var t=rt.toValue(e);return nt(e),t},toWireType:(e,t)=>rt.toHandle(t),argPackAdvance:G,readValueFromPointer:it,destructorFunction:null},ot=e=>W(e,at),st=(e,t)=>{switch(t){case 4:return function(e){return this.fromWireType(T[e>>2])};case 8:return function(e){return this.fromWireType(te[e>>3])};default:throw TypeError(`invalid float width (${t}): ${e}`)}},ct=(e,t,n)=>{t=H(t),W(e,{name:t,fromWireType:e=>e,toWireType:(e,t)=>t,argPackAdvance:G,readValueFromPointer:st(t,n),destructorFunction:null})},lt=(e,t,n,r,i)=>{t=H(t);let a=r===0,o=e=>e;if(a){var s=32-8*n;o=e=>e<<s>>>s,i=o(i)}W(e,{name:t,fromWireType:o,toWireType:(e,t)=>t,argPackAdvance:G,readValueFromPointer:Qe(t,n,r!==0),destructorFunction:null})},ut=(e,t,n)=>{var r=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][t];function i(e){var t=w[e>>2],n=w[e+4>>2];return new r(y.buffer,n,t)}n=H(n),W(e,{name:n,fromWireType:i,argPackAdvance:G,readValueFromPointer:i},{ignoreDuplicateRegistrations:!0})},q=(e,t,n)=>Ae(e,b,t,n),dt=(e,t)=>{t=H(t);var n=!0;W(e,{name:t,fromWireType(e){var t=w[e>>2],r=e+4,i;if(n)for(var a=r,o=0;o<=t;++o){var s=r+o;if(o==t||b[s]==0){var c=s-a,l=B(a,c);i===void 0?i=l:(i+=`\0`,i+=l),a=s+1}}else{for(var u=Array(t),o=0;o<t;++o)u[o]=String.fromCharCode(b[r+o]);i=u.join(``)}return $(e),i},toWireType(e,t){t instanceof ArrayBuffer&&(t=new Uint8Array(t));var r,i=typeof t==`string`;i||ArrayBuffer.isView(t)&&t.BYTES_PER_ELEMENT==1||U(`Cannot pass non-string to std::string`),r=n&&i?F(t):t.length;var a=Xi(4+r+1),o=a+4;if(w[a>>2]=r,i)if(n)q(t,o,r+1);else for(var s=0;s<r;++s){var c=t.charCodeAt(s);c>255&&($(a),U(`String has UTF-16 code units that do not fit in 8 bits`)),b[o+s]=c}else b.set(t,o);return e!==null&&e.push($,a),a},argPackAdvance:G,readValueFromPointer:it,destructorFunction(e){$(e)}})},ft=typeof TextDecoder<`u`?new TextDecoder(`utf-16le`):void 0,pt=(e,t)=>{for(var n=e>>1,r=n+t/2,i=n;!(i>=r)&&S[i];)++i;if(i-n>16&&ft)return ft.decode(S.subarray(n,i));for(var a=``,o=n;!(o>=r);++o){var s=S[o];if(s==0)break;a+=String.fromCharCode(s)}return a},mt=(e,t,n)=>{if(n??=2147483647,n<2)return 0;n-=2;for(var r=t,i=n<e.length*2?n/2:e.length,a=0;a<i;++a){var o=e.charCodeAt(a);x[t>>1]=o,t+=2}return x[t>>1]=0,t-r},ht=e=>e.length*2,gt=(e,t)=>{for(var n=0,r=``;!(n>=t/4);){var i=C[e+n*4>>2];if(i==0)break;if(++n,i>=65536){var a=i-65536;r+=String.fromCharCode(55296|a>>10,56320|a&1023)}else r+=String.fromCharCode(i)}return r},_t=(e,t,n)=>{if(n??=2147483647,n<4)return 0;for(var r=t,i=r+n-4,a=0;a<e.length;++a){var o=e.charCodeAt(a);if(o>=55296&&o<=57343){var s=e.charCodeAt(++a);o=65536+((o&1023)<<10)|s&1023}if(C[t>>2]=o,t+=4,t+4>i)break}return C[t>>2]=0,t-r},vt=e=>{for(var t=0,n=0;n<e.length;++n){var r=e.charCodeAt(n);r>=55296&&r<=57343&&++n,t+=4}return t},yt=(e,t,n)=>{n=H(n);var r,i,a,o;t===2?(r=pt,i=mt,o=ht,a=e=>S[e>>1]):t===4&&(r=gt,i=_t,o=vt,a=e=>w[e>>2]),W(e,{name:n,fromWireType:e=>{for(var n=w[e>>2],i,o=e+4,s=0;s<=n;++s){var c=e+4+s*t;if(s==n||a(c)==0){var l=c-o,u=r(o,l);i===void 0?i=u:(i+=`\0`,i+=u),o=c+t}}return $(e),i},toWireType:(e,r)=>{typeof r!=`string`&&U(`Cannot pass non-string to C++ string type ${n}`);var a=o(r),s=Xi(4+a+t);return w[s>>2]=a/t,i(r,s+4,a+t),e!==null&&e.push($,s),s},argPackAdvance:G,readValueFromPointer:it,destructorFunction(e){$(e)}})},bt=(e,t)=>{t=H(t),W(e,{isVoid:!0,name:t,argPackAdvance:0,fromWireType:()=>void 0,toWireType:(e,t)=>void 0})},xt=(e,t,n,r)=>{var i=new Date().getFullYear(),a=new Date(i,0,1),o=new Date(i,6,1),s=a.getTimezoneOffset(),c=o.getTimezoneOffset(),l=Math.max(s,c);w[e>>2]=l*60,C[t>>2]=Number(s!=c);var u=e=>{var t=e>=0?`-`:`+`,n=Math.abs(e);return`UTC${t}${String(Math.floor(n/60)).padStart(2,`0`)}${String(n%60).padStart(2,`0`)}`},d=u(s),f=u(c);c<s?(q(d,n,17),q(f,r,17)):(q(d,r,17),q(f,n,17))},St=()=>performance.now(),Ct=()=>Date.now(),wt=1,Tt=e=>e>=0&&e<=3,Et=9007199254740992,Dt=-9007199254740992,Ot=e=>e<Dt||e>Et?NaN:Number(e);function kt(e,t,n){if(t=Ot(t),!Tt(e))return 28;var r;if(e===0)r=Ct();else if(wt)r=St();else return 52;var i=Math.round(r*1e3*1e3);return E[n>>3]=BigInt(i),0}function At(e){n.onEarlyUpdate&&n.onEarlyUpdate(e)}var jt=[],Mt=(e,t)=>{jt.length=0;for(var n;n=b[e++];){var r=n!=105;r&=n!=112,t+=r&&t%8?4:0,jt.push(n==112?w[t>>2]:n==106?E[t>>3]:n==105?C[t>>2]:te[t>>3]),t+=r?8:4}return jt},Nt=(e,t,n)=>{var r=Mt(t,n);return Ji[e](...r)},Pt=(e,t,n)=>Nt(e,t,n),Ft=e=>h(B(e)),It=()=>2147483648,Lt=()=>It(),Rt=e=>m(B(e)),zt=(e,t)=>Math.ceil(e/t)*t,Bt=e=>{var t=(e-_.buffer.byteLength+65535)/65536|0;try{return _.grow(t),ne(),1}catch{}},Vt=e=>{var t=b.length;e>>>=0;var n=It();if(e>n)return!1;for(var r=1;r<=4;r*=2){var i=t*(1+.2/r);if(i=Math.min(i,e+100663296),Bt(Math.min(n,zt(Math.max(e,i),65536))))return!0}return!1},Ht={},Ut=()=>c||`./this.program`,Wt=()=>{if(!Wt.strings){var e={USER:`web_user`,LOGNAME:`web_user`,PATH:`/`,PWD:`/`,HOME:`/home/web_user`,LANG:(typeof navigator==`object`&&navigator.languages&&navigator.languages[0]||`C`).replace(`-`,`_`)+`.UTF-8`,_:Ut()};for(var t in Ht)Ht[t]===void 0?delete e[t]:e[t]=Ht[t];var n=[];for(var t in e)n.push(`${t}=${e[t]}`);Wt.strings=n}return Wt.strings},Gt=(e,t)=>{var n=0,r=0;for(var i of Wt()){var a=t+n;w[e+r>>2]=a,n+=q(i,a,1/0)+1,r+=4}return 0},Kt=(e,t)=>{var n=Wt();w[e>>2]=n.length;var r=0;for(var i of n)r+=F(i)+1;return w[t>>2]=r,0};function qt(e){try{var t=V.getStreamFromFD(e);return z.close(t),0}catch(e){if(z===void 0||e.name!==`ErrnoError`)throw e;return e.errno}}var Jt=(e,t,n,r)=>{for(var i=0,a=0;a<n;a++){var o=w[t>>2],s=w[t+4>>2];t+=8;var c=z.read(e,y,o,s,r);if(c<0)return-1;if(i+=c,c<s)break;r!==void 0&&(r+=c)}return i};function Yt(e,t,n,r){try{var i=Jt(V.getStreamFromFD(e),t,n);return w[r>>2]=i,0}catch(e){if(z===void 0||e.name!==`ErrnoError`)throw e;return e.errno}}function Xt(e,t,n,r){t=Ot(t);try{if(isNaN(t))return 61;var i=V.getStreamFromFD(e);return z.llseek(i,t,n),E[r>>3]=BigInt(i.position),i.getdents&&t===0&&n===0&&(i.getdents=null),0}catch(e){if(z===void 0||e.name!==`ErrnoError`)throw e;return e.errno}}var Zt=(e,t,n,r)=>{for(var i=0,a=0;a<n;a++){var o=w[t>>2],s=w[t+4>>2];t+=8;var c=z.write(e,y,o,s,r);if(c<0)return-1;if(i+=c,c<s)break;r!==void 0&&(r+=c)}return i};function Qt(e,t,n,r){try{var i=Zt(V.getStreamFromFD(e),t,n);return w[r>>2]=i,0}catch(e){if(z===void 0||e.name!==`ErrnoError`)throw e;return e.errno}}var J,$t=e=>!!(e.dibvbi=e.getExtension(`WEBGL_draw_instanced_base_vertex_base_instance`)),en=e=>!!(e.mdibvbi=e.getExtension(`WEBGL_multi_draw_instanced_base_vertex_base_instance`)),tn=e=>!!(e.extPolygonOffsetClamp=e.getExtension(`EXT_polygon_offset_clamp`)),nn=e=>!!(e.extClipControl=e.getExtension(`EXT_clip_control`)),rn=e=>!!(e.webglPolygonMode=e.getExtension(`WEBGL_polygon_mode`)),an=e=>!!(e.multiDrawWebgl=e.getExtension(`WEBGL_multi_draw`)),on=e=>{var t=`EXT_color_buffer_float.EXT_conservative_depth.EXT_disjoint_timer_query_webgl2.EXT_texture_norm16.NV_shader_noperspective_interpolation.WEBGL_clip_cull_distance.EXT_clip_control.EXT_color_buffer_half_float.EXT_depth_clamp.EXT_float_blend.EXT_polygon_offset_clamp.EXT_texture_compression_bptc.EXT_texture_compression_rgtc.EXT_texture_filter_anisotropic.KHR_parallel_shader_compile.OES_texture_float_linear.WEBGL_blend_func_extended.WEBGL_compressed_texture_astc.WEBGL_compressed_texture_etc.WEBGL_compressed_texture_etc1.WEBGL_compressed_texture_s3tc.WEBGL_compressed_texture_s3tc_srgb.WEBGL_debug_renderer_info.WEBGL_debug_shaders.WEBGL_lose_context.WEBGL_multi_draw.WEBGL_polygon_mode`.split(`.`);return(e.getSupportedExtensions()||[]).filter(e=>t.includes(e))},sn=e=>{typeof MainLoop<`u`&&MainLoop.preMainLoop.push(e)},Y={counter:1,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],stringCache:{},stringiCache:{},unpackAlignment:4,unpackRowLength:0,recordError:e=>{Y.lastError||=e},getNewId:e=>{for(var t=Y.counter++,n=e.length;n<t;n++)e[n]=null;for(;e[t];)t=Y.counter++;return t},genObject:(e,t,n,r)=>{for(var i=0;i<e;i++){var a=J[n](),o=a&&Y.getNewId(r);a?(a.name=o,r[o]=a):Y.recordError(1282),C[t+i*4>>2]=o}},MAX_TEMP_BUFFER_SIZE:2097152,numTempVertexBuffersPerSize:64,log2ceilLookup:e=>32-Math.clz32(e===0?0:e-1),generateTempBuffers:(e,t)=>{var n=Y.log2ceilLookup(Y.MAX_TEMP_BUFFER_SIZE);t.tempVertexBufferCounters1=[],t.tempVertexBufferCounters2=[],t.tempVertexBufferCounters1.length=t.tempVertexBufferCounters2.length=n+1,t.tempVertexBuffers1=[],t.tempVertexBuffers2=[],t.tempVertexBuffers1.length=t.tempVertexBuffers2.length=n+1,t.tempIndexBuffers=[],t.tempIndexBuffers.length=n+1;for(var r=0;r<=n;++r){t.tempIndexBuffers[r]=null,t.tempVertexBufferCounters1[r]=t.tempVertexBufferCounters2[r]=0;var i=Y.numTempVertexBuffersPerSize;t.tempVertexBuffers1[r]=[],t.tempVertexBuffers2[r]=[];var a=t.tempVertexBuffers1[r],o=t.tempVertexBuffers2[r];a.length=o.length=i;for(var s=0;s<i;++s)a[s]=o[s]=null}if(e){t.tempQuadIndexBuffer=J.createBuffer(),t.GLctx.bindBuffer(34963,t.tempQuadIndexBuffer);for(var c=Y.MAX_TEMP_BUFFER_SIZE>>1,l=new Uint16Array(c),r=0,u=0;l[r++]=u,!(r>=c||(l[r++]=u+1,r>=c)||(l[r++]=u+2,r>=c)||(l[r++]=u,r>=c)||(l[r++]=u+2,r>=c)||(l[r++]=u+3,r>=c));)u+=4;t.GLctx.bufferData(34963,l,35044),t.GLctx.bindBuffer(34963,null)}},getTempVertexBuffer:e=>{var t=Y.log2ceilLookup(e),n=Y.currentContext.tempVertexBuffers1[t],r=Y.currentContext.tempVertexBufferCounters1[t];Y.currentContext.tempVertexBufferCounters1[t]=Y.currentContext.tempVertexBufferCounters1[t]+1&Y.numTempVertexBuffersPerSize-1;var i=n[r];if(i)return i;var a=J.getParameter(34964);return n[r]=J.createBuffer(),J.bindBuffer(34962,n[r]),J.bufferData(34962,1<<t,35048),J.bindBuffer(34962,a),n[r]},getTempIndexBuffer:e=>{var t=Y.log2ceilLookup(e),n=Y.currentContext.tempIndexBuffers[t];if(n)return n;var r=J.getParameter(34965);return Y.currentContext.tempIndexBuffers[t]=J.createBuffer(),J.bindBuffer(34963,Y.currentContext.tempIndexBuffers[t]),J.bufferData(34963,1<<t,35048),J.bindBuffer(34963,r),Y.currentContext.tempIndexBuffers[t]},newRenderingFrameStarted:()=>{if(Y.currentContext){var e=Y.currentContext.tempVertexBuffers1;Y.currentContext.tempVertexBuffers1=Y.currentContext.tempVertexBuffers2,Y.currentContext.tempVertexBuffers2=e,e=Y.currentContext.tempVertexBufferCounters1,Y.currentContext.tempVertexBufferCounters1=Y.currentContext.tempVertexBufferCounters2,Y.currentContext.tempVertexBufferCounters2=e;for(var t=Y.log2ceilLookup(Y.MAX_TEMP_BUFFER_SIZE),n=0;n<=t;++n)Y.currentContext.tempVertexBufferCounters1[n]=0}},getSource:(e,t,n,r)=>{for(var i=``,a=0;a<t;++a){var o=r?w[r+a*4>>2]:void 0;i+=B(w[n+a*4>>2],o)}return i},calcBufLength:(e,t,n,r)=>n>0?r*n:e*Y.byteSizeByType[t-Y.byteSizeByTypeRoot]*r,usedTempBuffers:[],preDrawHandleClientVertexAttribBindings:e=>{Y.resetBufferBinding=!1;for(var t=0;t<Y.currentContext.maxVertexAttribs;++t){var n=Y.currentContext.clientBuffers[t];if(!(!n.clientside||!n.enabled)){Y.resetBufferBinding=!0;var r=Y.calcBufLength(n.size,n.type,n.stride,e),i=Y.getTempVertexBuffer(r);J.bindBuffer(34962,i),J.bufferSubData(34962,0,b.subarray(n.ptr,n.ptr+r)),n.vertexAttribPointerAdaptor.call(J,t,n.size,n.type,n.normalized,n.stride,0)}}},postDrawHandleClientVertexAttribBindings:()=>{Y.resetBufferBinding&&J.bindBuffer(34962,Y.buffers[J.currentArrayBufferBinding])},createContext:(e,t)=>{if(!e.getContextSafariWebGL2Fixed){e.getContextSafariWebGL2Fixed=e.getContext;function t(t,n){var r=e.getContextSafariWebGL2Fixed(t,n);return t==`webgl`==r instanceof WebGLRenderingContext?r:null}e.getContext=t}var n=e.getContext(`webgl2`,t);return n?Y.registerContext(n,t):0},registerContext:(e,t)=>{var n=Y.getNewId(Y.contexts),r={handle:n,attributes:t,version:t.majorVersion,GLctx:e};e.canvas&&(e.canvas.GLctxObject=r),Y.contexts[n]=r,(t.enableExtensionsByDefault===void 0||t.enableExtensionsByDefault)&&Y.initExtensions(r),r.maxVertexAttribs=r.GLctx.getParameter(34921),r.clientBuffers=[];for(var i=0;i<r.maxVertexAttribs;i++)r.clientBuffers[i]={enabled:!1,clientside:!1,size:0,type:0,normalized:0,stride:0,ptr:0,vertexAttribPointerAdaptor:null};return Y.generateTempBuffers(!1,r),n},makeContextCurrent:e=>(Y.currentContext=Y.contexts[e],n.ctx=J=Y.currentContext?.GLctx,!(e&&!J)),getContext:e=>Y.contexts[e],deleteContext:e=>{Y.currentContext===Y.contexts[e]&&(Y.currentContext=null),typeof JSEvents==`object`&&JSEvents.removeAllHandlersOnTarget(Y.contexts[e].GLctx.canvas),Y.contexts[e]?.GLctx.canvas&&(Y.contexts[e].GLctx.canvas.GLctxObject=void 0),Y.contexts[e]=null},initExtensions:e=>{if(e||=Y.currentContext,!e.initExtensionsDone){e.initExtensionsDone=!0;var t=e.GLctx;an(t),tn(t),nn(t),rn(t),$t(t),en(t),e.version>=2&&(t.disjointTimerQueryExt=t.getExtension(`EXT_disjoint_timer_query_webgl2`)),(e.version<2||!t.disjointTimerQueryExt)&&(t.disjointTimerQueryExt=t.getExtension(`EXT_disjoint_timer_query`)),on(t).forEach(e=>{!e.includes(`lose_context`)&&!e.includes(`debug`)&&t.getExtension(e)})}}},cn=e=>J.activeTexture(e),ln=(e,t)=>{J.attachShader(Y.programs[e],Y.shaders[t])},un=(e,t)=>{J.beginQuery(e,Y.queries[t])},dn=(e,t,n)=>{J.bindAttribLocation(Y.programs[e],t,B(n))},fn=(e,t)=>{if(t&&!Y.buffers[t]){var n=J.createBuffer();n.name=t,Y.buffers[t]=n}e==34962?J.currentArrayBufferBinding=t:e==34963&&(J.currentElementArrayBufferBinding=t),e==35051?J.currentPixelPackBufferBinding=t:e==35052&&(J.currentPixelUnpackBufferBinding=t),J.bindBuffer(e,Y.buffers[t])},pn=(e,t,n)=>{J.bindBufferBase(e,t,Y.buffers[n])},mn=(e,t,n,r,i)=>{J.bindBufferRange(e,t,Y.buffers[n],r,i)},hn=(e,t)=>{J.bindFramebuffer(e,Y.framebuffers[t])},gn=(e,t)=>{J.bindRenderbuffer(e,Y.renderbuffers[t])},_n=(e,t)=>{J.bindSampler(e,Y.samplers[t])},vn=(e,t)=>{J.bindTexture(e,Y.textures[t])},yn=e=>{J.bindVertexArray(Y.vaos[e]);var t=J.getParameter(34965);J.currentElementArrayBufferBinding=t?t.name|0:0},bn=(e,t)=>J.blendEquationSeparate(e,t),xn=(e,t,n,r)=>J.blendFuncSeparate(e,t,n,r),Sn=(e,t,n,r,i,a,o,s,c,l)=>J.blitFramebuffer(e,t,n,r,i,a,o,s,c,l),Cn=(e,t,n,r)=>{n&&t?J.bufferData(e,b,r,n,t):J.bufferData(e,t,r)},wn=(e,t,n,r)=>{n&&J.bufferSubData(e,t,b,r,n)},Tn=e=>J.clear(e),En=(e,t,n,r)=>J.clearBufferfi(e,t,n,r),Dn=(e,t,n)=>{J.clearBufferfv(e,t,T,n>>2)},On=(e,t,n)=>{J.clearBufferiv(e,t,C,n>>2)},kn=(e,t,n)=>{J.clearBufferuiv(e,t,w,n>>2)},An=(e,t,n,r)=>J.clearColor(e,t,n,r),jn=e=>J.clearDepth(e),Mn=e=>J.clearStencil(e),Nn=(e,t,n)=>(n=Number(n),J.clientWaitSync(Y.syncs[e],t,n)),Pn=(e,t,n,r)=>{J.colorMask(!!e,!!t,!!n,!!r)},Fn=e=>{J.compileShader(Y.shaders[e])},In=(e,t,n,r,i,a,o,s,c)=>{if(J.currentPixelUnpackBufferBinding||!s){J.compressedTexSubImage2D(e,t,n,r,i,a,o,s,c);return}J.compressedTexSubImage2D(e,t,n,r,i,a,o,b,c,s)},Ln=(e,t,n,r,i,a,o,s,c,l,u)=>{J.currentPixelUnpackBufferBinding?J.compressedTexSubImage3D(e,t,n,r,i,a,o,s,c,l,u):J.compressedTexSubImage3D(e,t,n,r,i,a,o,s,c,b,u,l)},Rn=(e,t,n,r,i)=>J.copyBufferSubData(e,t,n,r,i),zn=()=>{var e=Y.getNewId(Y.programs),t=J.createProgram();return t.name=e,t.maxUniformLength=t.maxAttributeLength=t.maxUniformBlockNameLength=0,t.uniformIdCounter=1,Y.programs[e]=t,e},Bn=e=>{var t=Y.getNewId(Y.shaders);return Y.shaders[t]=J.createShader(e),t},Vn=e=>J.cullFace(e),Hn=(e,t)=>{for(var n=0;n<e;n++){var r=C[t+n*4>>2],i=Y.buffers[r];i&&(J.deleteBuffer(i),i.name=0,Y.buffers[r]=null,r==J.currentArrayBufferBinding&&(J.currentArrayBufferBinding=0),r==J.currentElementArrayBufferBinding&&(J.currentElementArrayBufferBinding=0),r==J.currentPixelPackBufferBinding&&(J.currentPixelPackBufferBinding=0),r==J.currentPixelUnpackBufferBinding&&(J.currentPixelUnpackBufferBinding=0))}},Un=(e,t)=>{for(var n=0;n<e;++n){var r=C[t+n*4>>2],i=Y.framebuffers[r];i&&(J.deleteFramebuffer(i),i.name=0,Y.framebuffers[r]=null)}},Wn=e=>{if(e){var t=Y.programs[e];if(!t){Y.recordError(1281);return}J.deleteProgram(t),t.name=0,Y.programs[e]=null}},Gn=(e,t)=>{for(var n=0;n<e;n++){var r=C[t+n*4>>2],i=Y.queries[r];i&&(J.deleteQuery(i),Y.queries[r]=null)}},Kn=(e,t)=>{for(var n=0;n<e;n++){var r=C[t+n*4>>2],i=Y.renderbuffers[r];i&&(J.deleteRenderbuffer(i),i.name=0,Y.renderbuffers[r]=null)}},qn=(e,t)=>{for(var n=0;n<e;n++){var r=C[t+n*4>>2],i=Y.samplers[r];i&&(J.deleteSampler(i),i.name=0,Y.samplers[r]=null)}},Jn=e=>{if(e){var t=Y.shaders[e];if(!t){Y.recordError(1281);return}J.deleteShader(t),Y.shaders[e]=null}},Yn=e=>{if(e){var t=Y.syncs[e];if(!t){Y.recordError(1281);return}J.deleteSync(t),t.name=0,Y.syncs[e]=null}},Xn=(e,t)=>{for(var n=0;n<e;n++){var r=C[t+n*4>>2],i=Y.textures[r];i&&(J.deleteTexture(i),i.name=0,Y.textures[r]=null)}},Zn=(e,t)=>{for(var n=0;n<e;n++){var r=C[t+n*4>>2];J.deleteVertexArray(Y.vaos[r]),Y.vaos[r]=null}},Qn=e=>J.depthFunc(e),$n=e=>{J.depthMask(!!e)},er=(e,t)=>J.depthRange(e,t),tr=(e,t)=>{J.detachShader(Y.programs[e],Y.shaders[t])},nr=e=>J.disable(e),rr=e=>{var t=Y.currentContext.clientBuffers[e];t.enabled=!1,J.disableVertexAttribArray(e)},ir=(e,t,n,r)=>{J.drawArraysInstanced(e,t,n,r)},ar=[],or=(e,t)=>{for(var n=ar[e],r=0;r<e;r++)n[r]=C[t+r*4>>2];J.drawBuffers(n)},sr=(e,t,n,r)=>{var i,a=0;if(!J.currentElementArrayBufferBinding){var o=Y.calcBufLength(1,n,0,t);if(i=Y.getTempIndexBuffer(o),J.bindBuffer(34963,i),J.bufferSubData(34963,0,b.subarray(r,r+o)),t>0)for(var s=0;s<Y.currentContext.maxVertexAttribs;++s){var c=Y.currentContext.clientBuffers[s];if(c.clientside&&c.enabled){let e;switch(n){case 5121:e=Uint8Array;break;case 5123:e=Uint16Array;break;case 5125:e=Uint32Array;break;default:Y.recordError(1282);return}a=new e(b.buffer,r,t).reduce((e,t)=>Math.max(e,t))+1;break}}r=0}Y.preDrawHandleClientVertexAttribBindings(a),J.drawElements(e,t,n,r),Y.postDrawHandleClientVertexAttribBindings(t),J.currentElementArrayBufferBinding||J.bindBuffer(34963,null)},cr=(e,t,n,r,i)=>{J.drawElementsInstanced(e,t,n,r,i)},lr=e=>J.enable(e),ur=e=>{var t=Y.currentContext.clientBuffers[e];t.enabled=!0,J.enableVertexAttribArray(e)},dr=e=>J.endQuery(e),fr=(e,t)=>{var n=J.fenceSync(e,t);if(n){var r=Y.getNewId(Y.syncs);return n.name=r,Y.syncs[r]=n,r}return 0},pr=()=>J.finish(),mr=()=>J.flush(),hr=(e,t,n,r)=>{J.framebufferRenderbuffer(e,t,n,Y.renderbuffers[r])},gr=(e,t,n,r,i)=>{J.framebufferTexture2D(e,t,n,Y.textures[r],i)},_r=(e,t,n,r,i)=>{J.framebufferTextureLayer(e,t,Y.textures[n],r,i)},vr=e=>J.frontFace(e),yr=(e,t)=>{Y.genObject(e,t,`createBuffer`,Y.buffers)},br=(e,t)=>{Y.genObject(e,t,`createFramebuffer`,Y.framebuffers)},xr=(e,t)=>{Y.genObject(e,t,`createQuery`,Y.queries)},Sr=(e,t)=>{Y.genObject(e,t,`createRenderbuffer`,Y.renderbuffers)},Cr=(e,t)=>{Y.genObject(e,t,`createSampler`,Y.samplers)},wr=(e,t)=>{Y.genObject(e,t,`createTexture`,Y.textures)},Tr=(e,t)=>{Y.genObject(e,t,`createVertexArray`,Y.vaos)},Er=e=>J.generateMipmap(e),Dr=(e,t,n,r)=>{if(!r){Y.recordError(1281);return}n&&J.getBufferSubData(e,t,b,r,n)},Or=()=>{var e=J.getError()||Y.lastError;return Y.lastError=0,e},kr=(e,t)=>{w[e>>2]=t;var n=w[e>>2];w[e+4>>2]=(t-n)/4294967296},Ar=()=>{var e=on(J);return e=e.concat(e.map(e=>`GL_`+e)),e},jr=(e,t,n)=>{if(!t){Y.recordError(1281);return}var r=void 0;switch(e){case 36346:r=1;break;case 36344:n!=0&&n!=1&&Y.recordError(1280);return;case 34814:case 36345:r=0;break;case 34466:var i=J.getParameter(34467);r=i?i.length:0;break;case 33309:if(Y.currentContext.version<2){Y.recordError(1282);return}r=Ar().length;break;case 33307:case 33308:if(Y.currentContext.version<2){Y.recordError(1280);return}r=e==33307?3:0;break}if(r===void 0){var a=J.getParameter(e);switch(typeof a){case`number`:r=a;break;case`boolean`:r=+!!a;break;case`string`:Y.recordError(1280);return;case`object`:if(a===null)switch(e){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368:case 34068:r=0;break;default:Y.recordError(1280);return}else if(a instanceof Float32Array||a instanceof Uint32Array||a instanceof Int32Array||a instanceof Array){for(var o=0;o<a.length;++o)switch(n){case 0:C[t+o*4>>2]=a[o];break;case 2:T[t+o*4>>2]=a[o];break;case 4:y[t+o]=+!!a[o];break}return}else try{r=a.name|0}catch(t){Y.recordError(1280),h(`GL_INVALID_ENUM in glGet${n}v: Unknown object returned from WebGL getParameter(${e})! (error: ${t})`);return}break;default:Y.recordError(1280),h(`GL_INVALID_ENUM in glGet${n}v: Native code calling glGet${n}v(${e}) and it returns ${a} of type ${typeof a}!`);return}}switch(n){case 1:kr(t,r);break;case 0:C[t>>2]=r;break;case 2:T[t>>2]=r;break;case 4:y[t]=+!!r;break}},Mr=(e,t)=>jr(e,t,2),Nr=(e,t)=>jr(e,t,0),Pr=(e,t,n,r,i)=>{Y.recordError(1282)},Fr=(e,t,n,r)=>{var i=J.getProgramInfoLog(Y.programs[e]);i===null&&(i=`(unknown error)`);var a=t>0&&r?q(i,r,t):0;n&&(C[n>>2]=a)},Ir=(e,t,n)=>{if(!n){Y.recordError(1281);return}if(e>=Y.counter){Y.recordError(1281);return}if(e=Y.programs[e],t==35716){var r=J.getProgramInfoLog(e);r===null&&(r=`(unknown error)`),C[n>>2]=r.length+1}else if(t==35719){if(!e.maxUniformLength)for(var i=J.getProgramParameter(e,35718),a=0;a<i;++a)e.maxUniformLength=Math.max(e.maxUniformLength,J.getActiveUniform(e,a).name.length+1);C[n>>2]=e.maxUniformLength}else if(t==35722){if(!e.maxAttributeLength)for(var o=J.getProgramParameter(e,35721),a=0;a<o;++a)e.maxAttributeLength=Math.max(e.maxAttributeLength,J.getActiveAttrib(e,a).name.length+1);C[n>>2]=e.maxAttributeLength}else if(t==35381){if(!e.maxUniformBlockNameLength)for(var s=J.getProgramParameter(e,35382),a=0;a<s;++a)e.maxUniformBlockNameLength=Math.max(e.maxUniformBlockNameLength,J.getActiveUniformBlockName(e,a).length+1);C[n>>2]=e.maxUniformBlockNameLength}else C[n>>2]=J.getProgramParameter(e,t)},Lr=(e,t,n)=>{if(!n){Y.recordError(1281);return}var r=Y.queries[e],i=J.getQueryParameter(r,t),a=typeof i==`boolean`?+!!i:i;C[n>>2]=a},Rr=(e,t,n,r)=>{var i=J.getShaderInfoLog(Y.shaders[e]);i===null&&(i=`(unknown error)`);var a=t>0&&r?q(i,r,t):0;n&&(C[n>>2]=a)},zr=(e,t,n)=>{if(!n){Y.recordError(1281);return}if(t==35716){var r=J.getShaderInfoLog(Y.shaders[e]);r===null&&(r=`(unknown error)`);var i=r?r.length+1:0;C[n>>2]=i}else if(t==35720){var a=J.getShaderSource(Y.shaders[e]),o=a?a.length+1:0;C[n>>2]=o}else C[n>>2]=J.getShaderParameter(Y.shaders[e],t)},Br=e=>{var t=F(e)+1,n=Xi(t);return n&&q(e,n,t),n},Vr=e=>{var t=Y.stringCache[e];if(!t){switch(e){case 7939:t=Br(Ar().join(` `));break;case 7936:case 7937:case 37445:case 37446:var n=J.getParameter(e);n||Y.recordError(1280),t=n?Br(n):0;break;case 7938:var r=J.getParameter(7938),i=`OpenGL ES 2.0 (${r})`;i=`OpenGL ES 3.0 (${r})`,t=Br(i);break;case 35724:var a=J.getParameter(35724),o=a.match(/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/);o!==null&&(o[1].length==3&&(o[1]+=`0`),a=`OpenGL ES GLSL ES ${o[1]} (${a})`),t=Br(a);break;default:Y.recordError(1280)}Y.stringCache[e]=t}return t},Hr=(e,t)=>J.getUniformBlockIndex(Y.programs[e],B(t)),Ur=e=>parseInt(e),Wr=e=>e.slice(-1)==`]`&&e.lastIndexOf(`[`),Gr=e=>{var t=e.uniformLocsById,n=e.uniformSizeAndIdsByName,r,i;if(!t){e.uniformLocsById=t={},e.uniformArrayNamesById={};var a=J.getProgramParameter(e,35718);for(r=0;r<a;++r){var o=J.getActiveUniform(e,r),s=o.name,c=o.size,l=Wr(s),u=l>0?s.slice(0,l):s,d=e.uniformIdCounter;for(e.uniformIdCounter+=c,n[u]=[c,d],i=0;i<c;++i)t[d]=i,e.uniformArrayNamesById[d++]=u}}},Kr=(e,t)=>{if(t=B(t),e=Y.programs[e]){Gr(e);var n=e.uniformLocsById,r=0,i=t,a=Wr(t);a>0&&(r=Ur(t.slice(a+1))>>>0,i=t.slice(0,a));var o=e.uniformSizeAndIdsByName[i];if(o&&r<o[0]&&(r+=o[1],n[r]=n[r]||J.getUniformLocation(e,t)))return r}else Y.recordError(1281);return-1},qr=(e,t)=>J.hint(e,t),Jr=(e,t,n)=>{for(var r=ar[t],i=0;i<t;i++)r[i]=C[n+i*4>>2];J.invalidateFramebuffer(e,r)},Yr=e=>{e=Y.programs[e],J.linkProgram(e),e.uniformLocsById=0,e.uniformSizeAndIdsByName={}},Xr=e=>{switch(e){case 34962:e=34964;break;case 34963:e=34965;break;case 35051:e=35053;break;case 35052:e=35055;break;case 35982:e=35983;break;case 36662:e=36662;break;case 36663:e=36663;break;case 35345:e=35368;break}var t=J.getParameter(e);return t?t.name|0:0},Zr=e=>{switch(e){case 34962:case 34963:case 36662:case 36663:case 35051:case 35052:case 35882:case 35982:case 35345:return!0;default:return!1}},Qr=(e,t,n,r)=>{if(r&33)return h(`glMapBufferRange access does not support MAP_READ or MAP_UNSYNCHRONIZED`),0;if(!(r&2))return h(`glMapBufferRange access must include MAP_WRITE`),0;if(!(r&12))return h(`glMapBufferRange access must include INVALIDATE_BUFFER or INVALIDATE_RANGE`),0;if(!Zr(e))return Y.recordError(1280),h(`GL_INVALID_ENUM in glMapBufferRange`),0;var i=Xi(n),a=Xr(e);return i?(a=Y.mappedBuffers[a]??={},a.offset=t,a.length=n,a.mem=i,a.access=r,i):0},$r=(e,t)=>{e==3317?Y.unpackAlignment=t:e==3314&&(Y.unpackRowLength=t),J.pixelStorei(e,t)},ei=(e,t)=>J.polygonOffset(e,t),ti=(e,t,n,r)=>{Y.recordError(1280)},ni=e=>(e-=5120,e==0?y:e==1?b:e==2?x:e==4?C:e==6?T:e==5||e==28922||e==28520||e==30779||e==30782?w:S),X=(e,t)=>e>>>31-Math.clz32(t.BYTES_PER_ELEMENT),ri=(e,t,n,r,i,a,o)=>{if(J.currentPixelPackBufferBinding){J.readPixels(e,t,n,r,i,a,o);return}var s=ni(a),c=X(o,s);J.readPixels(e,t,n,r,i,a,s,c)},ii=(e,t,n,r)=>J.renderbufferStorage(e,t,n,r),ai=(e,t,n,r,i)=>J.renderbufferStorageMultisample(e,t,n,r,i),oi=(e,t,n)=>{J.samplerParameterf(Y.samplers[e],t,n)},si=(e,t,n)=>{J.samplerParameteri(Y.samplers[e],t,n)},ci=(e,t,n,r)=>J.scissor(e,t,n,r),li=(e,t,n,r)=>{var i=Y.getSource(e,t,n,r);J.shaderSource(Y.shaders[e],i)},ui=(e,t,n,r)=>J.stencilFuncSeparate(e,t,n,r),di=(e,t)=>J.stencilMaskSeparate(e,t),fi=(e,t,n,r)=>J.stencilOpSeparate(e,t,n,r),pi=(e,t,n)=>{function r(e,t){return e+t-1&-t}return t*r((Y.unpackRowLength||e)*n,Y.unpackAlignment)},mi=e=>({5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4})[e-6402]||1,hi=(e,t,n,r,i,a)=>{var o=ni(e),s=pi(n,r,mi(t)*o.BYTES_PER_ELEMENT);return o.subarray(X(i,o),X(i+s,o))},gi=(e,t,n,r,i,a,o,s,c)=>{if(J.currentPixelUnpackBufferBinding){J.texImage2D(e,t,n,r,i,a,o,s,c);return}if(c){var l=ni(s),u=X(c,l);J.texImage2D(e,t,n,r,i,a,o,s,l,u);return}var d=c?hi(s,o,r,i,c,n):null;J.texImage2D(e,t,n,r,i,a,o,s,d)},_i=(e,t,n)=>J.texParameterf(e,t,n),vi=(e,t,n)=>J.texParameteri(e,t,n),yi=(e,t,n,r,i)=>J.texStorage2D(e,t,n,r,i),bi=(e,t,n,r,i,a)=>J.texStorage3D(e,t,n,r,i,a),xi=(e,t,n,r,i,a,o,s,c)=>{if(J.currentPixelUnpackBufferBinding){J.texSubImage2D(e,t,n,r,i,a,o,s,c);return}if(c){var l=ni(s);J.texSubImage2D(e,t,n,r,i,a,o,s,l,X(c,l));return}var u=c?hi(s,o,i,a,c,0):null;J.texSubImage2D(e,t,n,r,i,a,o,s,u)},Si=(e,t,n,r,i,a,o,s,c,l,u)=>{if(J.currentPixelUnpackBufferBinding)J.texSubImage3D(e,t,n,r,i,a,o,s,c,l,u);else if(u){var d=ni(l);J.texSubImage3D(e,t,n,r,i,a,o,s,c,l,d,X(u,d))}else J.texSubImage3D(e,t,n,r,i,a,o,s,c,l,null)},Z=e=>{var t=J.currentProgram;if(t){var n=t.uniformLocsById[e];return typeof n==`number`&&(t.uniformLocsById[e]=n=J.getUniformLocation(t,t.uniformArrayNamesById[e]+(n>0?`[${n}]`:``))),n}else Y.recordError(1282)},Ci=(e,t)=>{J.uniform1f(Z(e),t)},wi=(e,t,n)=>{t&&J.uniform1fv(Z(e),T,n>>2,t)},Ti=(e,t)=>{J.uniform1i(Z(e),t)},Ei=(e,t,n)=>{t&&J.uniform1iv(Z(e),C,n>>2,t)},Di=(e,t)=>{J.uniform1ui(Z(e),t)},Oi=(e,t,n)=>{t&&J.uniform2fv(Z(e),T,n>>2,t*2)},ki=(e,t,n)=>{t&&J.uniform2iv(Z(e),C,n>>2,t*2)},Ai=(e,t,n)=>{t&&J.uniform3fv(Z(e),T,n>>2,t*3)},ji=(e,t,n)=>{t&&J.uniform3iv(Z(e),C,n>>2,t*3)},Mi=(e,t,n)=>{t&&J.uniform4fv(Z(e),T,n>>2,t*4)},Ni=(e,t,n)=>{t&&J.uniform4iv(Z(e),C,n>>2,t*4)},Pi=(e,t,n)=>{e=Y.programs[e],J.uniformBlockBinding(e,t,n)},Fi=(e,t,n,r)=>{t&&J.uniformMatrix3fv(Z(e),!!n,T,r>>2,t*9)},Ii=(e,t,n,r)=>{t&&J.uniformMatrix4fv(Z(e),!!n,T,r>>2,t*16)},Li=e=>{if(!Zr(e))return Y.recordError(1280),h(`GL_INVALID_ENUM in glUnmapBuffer`),0;var t=Xr(e),n=Y.mappedBuffers[t];return!n||!n.mem?(Y.recordError(1282),h(`buffer was never mapped in glUnmapBuffer`),0):(n.access&16||J.bufferSubData(e,n.offset,b,n.mem,n.length),$(n.mem),n.mem=0,1)},Ri=e=>{e=Y.programs[e],J.useProgram(e),J.currentProgram=e},zi=(e,t,n,r,i)=>J.vertexAttrib4f(e,t,n,r,i),Bi=(e,t,n,r,i)=>J.vertexAttribI4ui(e,t,n,r,i),Vi=(e,t,n,r,i)=>{var a=Y.currentContext.clientBuffers[e];if(!J.currentArrayBufferBinding){a.size=t,a.type=n,a.normalized=!1,a.stride=r,a.ptr=i,a.clientside=!0,a.vertexAttribPointerAdaptor=function(e,t,n,r,i,a){this.vertexAttribIPointer(e,t,n,i,a)};return}a.clientside=!1,J.vertexAttribIPointer(e,t,n,r,i)},Hi=(e,t,n,r,i,a)=>{var o=Y.currentContext.clientBuffers[e];if(!J.currentArrayBufferBinding){o.size=t,o.type=n,o.normalized=r,o.stride=i,o.ptr=a,o.clientside=!0,o.vertexAttribPointerAdaptor=function(e,t,n,r,i,a){this.vertexAttribPointer(e,t,n,r,i,a)};return}o.clientside=!1,J.vertexAttribPointer(e,t,n,!!r,i,a)},Ui=(e,t,n,r)=>J.viewport(e,t,n,r);function Wi(e){n.onLateUpdate&&n.onLateUpdate(e)}function Gi(e,t){return n.onAnimationComplete(e,t)}function Ki(e,t,r){n.onPhysicsEvent&&n.onPhysicsEvent(e,t,r)}function qi(e){return n.traverseCallback(e)}z.createPreloadedFile=Le,z.staticInit(),R.doesNotExistError=new z.ErrnoError(44),R.doesNotExistError.stack=`<generic error, no stack>`,Ge(),sn(()=>Y.newRenderingFrameStarted());for(let e=0;e<32;++e)ar.push(Array(e));n.noExitRuntime&&n.noExitRuntime,n.preloadPlugins&&(Fe=n.preloadPlugins),n.print&&(m=n.print),n.printErr&&(h=n.printErr),n.wasmBinary&&(g=n.wasmBinary),n.arguments&&n.arguments,n.thisProgram&&(c=n.thisProgram),n.GL=Y,n.UTF8ToString=B,n.stringToUTF8=q;var Ji={577316:()=>{let e=window.filament_glOptions,t=window.filament_glContext,n=Y.registerContext(t,e);window.filament_contextHandle=n,Y.makeContextCurrent(n)}},Yi={a:Te,sa:Be,vb:Ve,wb:He,qb:Ue,xb:We,pa:$e,kb:et,ib:ot,oa:ct,l:lt,b:ut,jb:dt,O:yt,lb:bt,mb:xt,nb:kt,ac:At,bc:Pt,Ga:Ft,pb:Lt,P:St,La:Rt,ob:Vt,sb:Gt,tb:Kt,Q:qt,ub:Yt,rb:Xt,ra:Qt,e:cn,Qa:ln,$a:un,Pa:dn,c:fn,ia:pn,xa:mn,h:hn,_:gn,C:_n,B:vn,db:yn,la:bn,ka:xn,z:Sn,t:Cn,F:wn,Xb:Tn,$b:En,Aa:Dn,za:On,Ab:kn,_b:An,Zb:jn,Yb:Mn,Ba:Nn,L:Pn,Sa:Fn,V:In,U:Ln,Db:Rn,ea:zn,Ua:Bn,ma:Vn,N:Hn,v:Un,I:Wn,ab:Gn,Y:Kn,qa:qn,ca:Jn,S:Yn,Z:Xn,cb:Zn,J:Qn,K:$n,fa:er,da:tr,d:nr,Gb:rr,zb:ir,Fb:or,Wb:sr,ua:cr,i:lr,Hb:ur,_a:dr,Ca:fr,G:pr,j:mr,k:hr,g:gr,n:_r,na:vr,A:yr,x:br,bb:xr,$:Sr,va:Cr,o:wr,eb:Tr,Eb:Er,yb:Dr,w:Or,Tb:Mr,f:Nr,Va:Pr,Ma:Fr,u:Ir,Ya:Lr,Na:Rr,H:zr,s:Vr,Sb:Hr,R:Kr,hb:qr,Xa:Jr,Oa:Yr,Cb:Qr,r:$r,ja:ei,Wa:ti,T:ri,Da:ii,Ea:ai,ta:oi,q:si,ha:ci,Ta:li,E:ui,m:di,D:fi,ba:gi,wa:_i,p:vi,Ka:yi,aa:bi,X:xi,W:Si,Ub:Ci,Qb:wi,y:Ti,Mb:Ei,Vb:Di,Pb:Oi,Lb:ki,Ob:Ai,Kb:ji,Nb:Mi,Jb:Ni,Rb:Pi,ya:Fi,Ib:Ii,Bb:Li,M:Ri,Fa:zi,Ha:Bi,Ja:Vi,Ia:Hi,ga:Ui,gb:Wi,Za:Gi,Ra:Ki,fb:qi},Q=await ge();Q.dc,n._creatorHasPhysics=Q.ec,n._destroyEngine=Q.fc,n._init=Q.gc,n._initWithContext=Q.hc,n._isEngineValid=Q.ic,n._createSwapChain=Q.jc,n._createSwapChainHeadless=Q.kc,n._destroySwapChain=Q.lc,n._beginFrame=Q.mc,n._physicsStep=Q.nc,n._render=Q.oc,n._finishFrame=Q.pc,n._renderScene=Q.qc,n._clearRender=Q.rc,n._warmScene=Q.sc,n._setVisibleAll=Q.tc,n._warmSceneReady=Q.uc,n._setCastShadowsGlobal=Q.vc,n._setReceiveShadowsGlobal=Q.wc,n._createMesh=Q.xc,n._setCulling=Q.yc,n._setReceiveShadows=Q.zc,n._setCastShadows=Q.Ac,n._hasMesh=Q.Bc,n._createScene=Q.Cc,n._createOverlayScene=Q.Dc,n._setMultiSampleAntiAliasing=Q.Ec,n._setBloomOptions=Q.Fc,n._setViewport=Q.Gc,n._getCameraFov=Q.Hc,n._attachCameraToScene=Q.Ic,n._updateProjectionMatrix=Q.Jc,n._createARPlane=Q.Kc,n._createEntity=Q.Lc,n._setParent=Q.Mc,n._addEntityToScene=Q.Nc,n._updateProjectionMatrixAR=Q.Oc,n._openScene=Q.Pc,n._removeEntityFromScene=Q.Qc,n._getName=Q.Rc;var Xi=n._malloc=Q.Sc;n._setName=Q.Tc,n._destoryEntity=Q.Uc,n._createIblLight=Q.Vc,n._setSkybox=Q.Wc,n._createSunLight=Q.Xc,n._createPointLight=Q.Yc,n._cloneEntity=Q.Zc,n._setMaterialGlobalParameter=Q._c,n._setMatrix=Q.$c,n._setWorldMatrix=Q.ad,n._setParentNull=Q.bd,n._getParent=Q.cd,n._getChildCount=Q.dd,n._getChild=Q.ed,n._getChildrenIter=Q.fd,n._getMatrix=Q.gd,n._getWorldMatrix=Q.hd,n._getWorldMatrixInverse=Q.id,n._getCameraViewDirection=Q.jd,n._traverseEm=Q.kd,n._setMaterial=Q.ld,n._getMaterial=Q.md,n._createMaterial=Q.nd,n._createMaterialInstance=Q.od,n._importTexture=Q.pd,n._createTextureFromRGBA=Q.qd,n._updateTextureFromRGBA=Q.rd,n._setUniformRgb=Q.sd,n._setUniformRgba=Q.td,n._setUniformColor=Q.ud,n._setUniformFloat=Q.vd,n._setUniformBoolean=Q.wd,n._setUniformTexture=Q.xd,n._setUniformArray=Q.yd;var $=n._free=Q.zd;n._initGlbSupport=Q.Ad,n._loadGlb=Q.Bd,n._setGlbCulling=Q.Cd,n._glbLoadingUpdate=Q.Dd,n._getGlbChildCount=Q.Ed,n._getGlbAnimationsCount=Q.Fd,n._getGlbAnimations=Q.Gd,n._setAnimationTime=Q.Hd,n._getAnimationTime=Q.Id,n._setAnimation=Q.Jd,n._setVisible=Q.Kd,n._isVisible=Q.Ld,n._setColliderFromMesh=Q.Md,n._computeBoundingBox=Q.Nd,n._setColliderBox=Q.Od,n._setColliderSphere=Q.Pd,n._getRaycastDistance=Q.Qd,n._raycast=Q.Rd,n._physicsRaycast=Q.Sd,n._raycastView=Q.Td,n._setPosition=Q.Ud,n._getWorldDirection=Q.Vd,n._getWorldPosition=Q.Wd,n._setQuaternion=Q.Xd,n._setScale=Q.Yd,n._setEulerAngles=Q.Zd,n._createParticleSystem=Q._d,n._spawnParticles=Q.$d,n._setParticleSystemShapePoint=Q.ae,n._setParticleSystemShapeBox=Q.be,n._setParticleSystemShapeCircle=Q.ce,n._setParticleSystemVelocityValue=Q.de,n._setParticleSystemVelocitySpeedValue=Q.ee,n._setParticleSystemVelocitySpeedRange=Q.fe,n._setParticleSystemVelocityRndAngle=Q.ge,n._setParticleSystemDragValue=Q.he,n._setParticleSystemGravityValue=Q.ie,n._setParticleSystemRateValue=Q.je,n._setParticleSystemParamValue=Q.ke,n._setParticleSystemParamRange=Q.le,n._setParticleSystemParamCurveA=Q.me,n._setParticleSystemParamCurveB=Q.ne,n._setParticleSystemLifetimeValue=Q.oe,n._setParticleSystemLifetimeRange=Q.pe,n._setParticleSystemColorValue=Q.qe,n._setParticleSystemColorRange=Q.re,n._setParticleSystemColorCurveA=Q.se,n._setParticleSystemColorCurveB=Q.te,n._setParticleSystemNoise=Q.ue,n._disableParticleSystemNoise=Q.ve,n._createNoise=Q.we,n._setNoiseFrequency=Q.xe,n._setNoiseOctaves=Q.ye,n._setNoiseFractalLunacrity=Q.ze,n._setNoiseFractalGain=Q.Ae,n._getNoise2D=Q.Be,n._getNoise3D=Q.Ce,n._setPhysicsInterpolation=Q.De,n._physicsConfigure=Q.Ee,n._physicsBuildBox=Q.Fe,n._physicsBuildSphere=Q.Ge,n._physicsBuildCylinder=Q.He,n._physicsBuildCapsule=Q.Ie,n._physicsDestroyShape=Q.Je,n._physicsCreateBody=Q.Ke,n._physicsSetPickable=Q.Le,n._physicsCreateBox=Q.Me,n._physicsCreateSphere=Q.Ne,n._physicsCreateCylinder=Q.Oe,n._physicsSetLinearVelocity=Q.Pe,n._physicsGetLinearVelocity=Q.Qe,n._physicsApplyImpulse=Q.Re,n._physicsSetBodyPosition=Q.Se,n._physicsRemoveBody=Q.Te,n._characterCreate=Q.Ue,n._characterDestroy=Q.Ve,n._characterSetVelocity=Q.We,n._characterGetVelocity=Q.Xe,n._characterGetGroundState=Q.Ye,n._characterSetPosition=Q.Ze;function Zi(){if(D>0){O=Zi;return}if(re(),D>0){O=Zi;return}function e(){n.calledRun=!0,!v&&(ie(),r(n),n.onRuntimeInitialized?.(),ae())}n.setStatus?(n.setStatus(`Running...`),setTimeout(()=>{setTimeout(()=>n.setStatus(``),1),e()},1)):e()}function Qi(){if(n.preInit)for(typeof n.preInit==`function`&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.shift()()}return Qi(),Zi(),t=a,t}),C=`/assets/creator-gl-GaTBGmVI.wasm`,w=`/assets/lit-WtoZF0Yx.filamat`,T=`/assets/unlit-pnl94z8g.filamat`,E=`/assets/video-CdjDrvX4.filamat`,ee=`/assets/shadow-CnJ-PXnb.filamat`,te=`/assets/gizmo-D5xdNVjw.filamat`,ne=`/assets/matcap_porcelain_white-DRnbNWwg.jpg`,re=`/assets/neutral_ibl128-D-lzdkLN.ktx`,ie=`/assets/uberarchive-De8g3sSw.bin`,ae={backend:`opengl`,subBackend:`webgl`},D=async(e,t)=>{let n=await fetch(C).then(e=>e.arrayBuffer()),r={antialias:!1,depth:!0,alpha:!1,stencil:!1,desynchronized:!1,failIfMajorPerformanceCaveat:!1,powerPreference:`high-performance`,premultipliedAlpha:!0,preserveDrawingBuffer:t.preloads?.has(`capture`)??!1};Object.assign(r,{majorVersion:2,minorVersion:0});let i=e.getContext(`webgl2`,r);window.filament_glContext=i,window.filament_glOptions=r;let a=await S({wasmBinary:n,canvas:e});if(a._init(),a._createSwapChainHeadless(),t.preloads?.has(`uberarchive`)){let e=await fetch(ie).then(e=>e.arrayBuffer()),t=a._malloc(e.byteLength);a.HEAPU8.set(new Uint8Array(e),t),a._initGlbSupport(t,e.byteLength)}return a},O=new TextDecoder(`utf-8`),oe=async(e,t={})=>{let i=await D(e,t);t.preloads?.has(`lit.filamat`)&&r(`lit.filamat`,await(await fetch(w)).arrayBuffer()),t.preloads?.has(`unlit.filamat`)&&r(`unlit.filamat`,await(await fetch(T)).arrayBuffer()),t.preloads?.has(`video.filamat`)&&r(`video.filamat`,await(await fetch(E)).arrayBuffer()),t.preloads?.has(`shadow.filamat`)&&r(`shadow.filamat`,await(await fetch(ee)).arrayBuffer()),t.preloads?.has(`gizmo.filamat`)&&r(`gizmo.filamat`,await(await fetch(te)).arrayBuffer()),t.preloads?.has(`matcap_porcelain_white.jpg`)&&r(`matcap_porcelain_white.jpg`,await(await fetch(ne)).arrayBuffer());let o=await(await fetch(re)).arrayBuffer(),s=[],l=null,f=()=>{for(let e of s){let t=e.player;t.videoWidth===0||t.currentTime===e.lastTime||(p.bindTexture(p.TEXTURE_2D,e.glTexture),p.texImage2D(p.TEXTURE_2D,0,p.RGBA,t.videoWidth,t.videoHeight,0,p.RGBA,p.UNSIGNED_BYTE,t),e.lastTime=t.currentTime)}},p=window.filament_glContext,m=new Map,h=(e,t,n,r,a,o)=>{let s=n.length+1,c=i._malloc(s);i.stringToUTF8(n,c,s),o===void 0?a===void 0?i[e](t,c,r):i[e](t,c,r,a):i[e](t,c,r,a,o),i._free(c)},g=!1,_=()=>{g&&(i._beginFrame()?(l!==null&&l.track(!0),f(),i._render(BigInt(Date.now()))):l!==null&&l.track(!1),requestAnimationFrame(_))},v=e=>{let t=d(e),n=i.GL.getNewId(i.GL.textures),r=p.createTexture();return i.GL.textures[n]=r,p.bindTexture(p.TEXTURE_2D,r),p.pixelStorei(p.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),p.pixelStorei(p.UNPACK_FLIP_Y_WEBGL,!1),p.pixelStorei(p.UNPACK_COLORSPACE_CONVERSION_WEBGL,p.NONE),s.push({player:t,glTexture:r,lastTime:0,bindWidth:0,bindHeight:0}),i._importTexture(n,0,0)},b=i._malloc(64),x=(e,t,n)=>{n(b);let r=b>>2,a=i.HEAPF32;for(let n=0;n<t;n++)e[n]=a[r+n]};return{...ae,createScene:i._createScene,createEntity:i._createEntity,destroyEntity:i._destoryEntity,addEntityToScene:i._addEntityToScene,removeEntityFromScene:i._removeEntityFromScene,createOverlayScene:i._createOverlayScene,setMaterial:i._setMaterial,createSunLight:i._createSunLight,setSkybox:i._setSkybox,setAnimation:i._setAnimation,getAnimationTime:i._getAnimationTime,setAnimationTime:i._setAnimationTime,setVisible:i._setVisible,isVisible:i._isVisible,setCastShadowsGlobal:i._setCastShadowsGlobal,setReceiveShadowsGlobal:i._setReceiveShadowsGlobal,setReceiveShadows:i._setReceiveShadows,setCastShadows:i._setCastShadows,setSceneMultiSampleAntiAliasing:i._setMultiSampleAntiAliasing,setPosition:i._setPosition,setQuaternion:i._setQuaternion,setEulerAngles:i._setEulerAngles,setScale:i._setScale,setColliderFromMesh:i._setColliderFromMesh,setColliderBox:i._setColliderBox,setColliderSphere:i._setColliderSphere,physicsHasSupport:()=>!!i._creatorHasPhysics?.(),physicsConfigure:(e,t,n,r)=>i._physicsConfigure(e,t,n,r),setInterpolation:e=>i._setPhysicsInterpolation?.(e),physicsCreateBox:(e,t,n,r,a,o)=>i._physicsCreateBox(e,t,n,r,a,o),physicsCreateSphere:(e,t,n,r)=>i._physicsCreateSphere(e,t,n,r),physicsCreateCylinder:(e,t,n,r,a)=>i._physicsCreateCylinder(e,t,n,r,a),physicsSetLinearVelocity:(e,t,n,r)=>i._physicsSetLinearVelocity(e,t,n,r),physicsGetLinearVelocity:(e,t)=>x(t,3,t=>i._physicsGetLinearVelocity(e,t)),physicsApplyImpulse:(e,t,n,r)=>i._physicsApplyImpulse(e,t,n,r),physicsSetBodyPosition:(e,t,n,r)=>i._physicsSetBodyPosition(e,t,n,r),physicsRemoveBody:e=>i._physicsRemoveBody(e),physicsBuildBox:(e,t,n)=>i._physicsBuildBox(e,t,n),physicsBuildSphere:e=>i._physicsBuildSphere(e),physicsBuildCylinder:(e,t)=>i._physicsBuildCylinder(e,t),physicsBuildCapsule:(e,t)=>i._physicsBuildCapsule(e,t),physicsDestroyShape:e=>i._physicsDestroyShape(e),physicsCreateBody:(e,t,n,r,a,o)=>i._physicsCreateBody(e,t,n,r,a,o),physicsSetPickable:(e,t)=>i._physicsSetPickable(e,t),physicsRaycast:(e,t,n,r,a,o,s,c)=>{if(!c)return i._physicsRaycast(e,t,n,r,a,o,s,0);let l=0;return x(c,7,c=>{l=i._physicsRaycast(e,t,n,r,a,o,s,c)}),l},characterCreate:(e,t,n)=>i._characterCreate(e,t,n),characterDestroy:e=>i._characterDestroy(e),characterSetVelocity:(e,t,n,r)=>i._characterSetVelocity(e,t,n,r),characterGetVelocity:(e,t)=>x(t,3,t=>i._characterGetVelocity(e,t)),characterGetGroundState:e=>i._characterGetGroundState(e),characterSetPosition:(e,t,n,r)=>i._characterSetPosition(e,t,n,r),computeBoundingBox(e){let t=new Float32Array(6);return x(t,6,t=>i._computeBoundingBox(e,t)),t},raycastView:i._raycastView,setCulling:i._setCulling,setGlbCulling:i._setGlbCulling,hasMesh:i._hasMesh,cloneEntity:i._cloneEntity,setMaterialGlobalParameter:i._setMaterialGlobalParameter,setParent:i._setParent,setParentNull:i._setParentNull,getParent:i._getParent,getChildCount:i._getChildCount,getChild:i._getChild,getMaterial:i._getMaterial,createARPlane:i._createARPlane,updateProjectionMatrixAR:i._updateProjectionMatrixAR,getCameraFov:i._getCameraFov,createParticleSystem:i._createParticleSystem,spawnParticles:i._spawnParticles,setParticleSystemShapePoint:i._setParticleSystemShapePoint,setParticleSystemShapeBox:i._setParticleSystemShapeBox,setParticleSystemShapeCircle:i._setParticleSystemShapeCircle,setParticleSystemVelocityValue:i._setParticleSystemVelocityValue,setParticleSystemVelocitySpeedValue:i._setParticleSystemVelocitySpeedValue,setParticleSystemVelocitySpeedRange:i._setParticleSystemVelocitySpeedRange,setParticleSystemVelocityRndAngle:i._setParticleSystemVelocityRndAngle,setParticleSystemDragValue:i._setParticleSystemDragValue,setParticleSystemGravityValue:i._setParticleSystemGravityValue,setParticleSystemRateValue:i._setParticleSystemRateValue,setParticleSystemNoise:i._setParticleSystemNoise,disableParticleSystemNoise:i._disableParticleSystemNoise,setParticleSystemParamValue:i._setParticleSystemParamValue,setParticleSystemParamRange:i._setParticleSystemParamRange,setParticleSystemParamCurveA(e,t,n,r){let a=i._malloc(n.length*4);i.HEAPF32.set(n,a/4),i._setParticleSystemParamCurveA(e,t,a,n.length/2,r),i._free(a)},setParticleSystemParamCurveB(e,t,n){let r=i._malloc(n.length*4);i.HEAPF32.set(n,r/4),i._setParticleSystemParamCurveB(e,t,r,n.length/2),i._free(r)},setParticleSystemLifetimeValue:i._setParticleSystemLifetimeValue,setParticleSystemLifetimeRange:i._setParticleSystemLifetimeRange,setParticleSystemColorValue(e,t){let n=i._malloc(t.length+1);i.stringToUTF8(t,n,t.length+1),i._setParticleSystemColorValue(e,n),i._free(n)},setParticleSystemColorRange(e,t,n){let r=i._malloc(t.length+1),a=i._malloc(n.length+1);i.stringToUTF8(t,r,t.length+1),i.stringToUTF8(n,a,n.length+1),i._setParticleSystemColorRange(e,r,a),i._free(r),i._free(a)},setParticleSystemColorCurveA(e,t,n){let r=i._malloc(t.length+1);i.stringToUTF8(t,r,t.length+1);let a=i._malloc(n.length*4);i.HEAPF32.set(n,a/4),i._setParticleSystemColorCurveA(e,r,a,n.length),i._free(a),i._free(r)},setParticleSystemColorCurveB(e,t,n){let r=i._malloc(t.length+1),a=i._malloc(n.length*4);i.HEAPF32.set(n,a/4),i.stringToUTF8(t,r,t.length+1),i._setParticleSystemColorCurveB(e,r,a,n.length),i._free(a),i._free(r)},createNoise:i._createNoise,setNoiseFrequency:i._setNoiseFrequency,setNoiseOctaves:i._setNoiseOctaves,setNoiseFractalLunacrity:i._setNoiseFractalLunacrity,setNoiseFractalGain:i._setNoiseFractalGain,getNoise2D:i._getNoise2D,getNoise3D:i._getNoise3D,createARController(e,t,n,r){throw Error(`createARController is not implemented`)},launchAR(e,t,n){throw Error(`launchAR is not implemented`)},stopAR(){throw Error(`stopAR is not implemented`)},createRootAnchor(e){throw Error(`createRootAnchor is not implemented`)},createAnchor(e,t,n){throw Error(`createAnchor is not implemented`)},getSceneMaterial(e){throw Error(`getSceneMaterial is not implemented`)},getName(e){let t=i._getName(e);return t===0?``:i.UTF8ToString(t)},setName(e,t){let n=t.length+1,r=i._malloc(n);i.stringToUTF8(t,r,n),i._setName(e,r),i._free(r)},createMediaPlayerTexture:v,setOnAnimationComplete:e=>i.onAnimationComplete=e,setEarlyUpdate:e=>i.onEarlyUpdate=e,setLateUpdate:e=>i.onLateUpdate=e,setOnPhysicsEvent:e=>i.onPhysicsEvent=e,setDefaultIbl(e,t){let n=i._malloc(o.byteLength);i.HEAPU8.set(new Uint8Array(o),n),i._createIblLight(e,n,o.byteLength,t)},setBloomOptions:i._setBloomOptions,setUniformColor(e,t,n){h(`_setUniformRgb`,e,t,n)},setUniformRgb(e,t,n){h(`_setUniformRgb`,e,t,n)},setUniformRgba(e,t,n){h(`_setUniformRgba`,e,t,n)},setUniformFloat(e,t,n){h(`_setUniformFloat`,e,t,n)},setUniformBoolean(e,t,n){h(`_setUniformBoolean`,e,t,n)},setUniformTexture(e,t,n,r,i){h(`_setUniformTexture`,e,t,n,r,i)},setUniformArray(e,t,n){let r=i._malloc(n.byteLength);i.HEAPF32.set(n,r/4),h(`_setUniformArray`,e,t,r,n.length)},createMaterial:e=>{if(!m.has(e)){let t=n(e),r=i._malloc(t.byteLength);i.HEAPU8.set(new Uint8Array(t),r);let a=i._createMaterial(r,t.byteLength);m.set(e,a)}return i._createMaterialInstance(m.get(e))},setMesh(e,t,n,r,a,o,s){let c=i._malloc(n.byteLength),l=i._malloc(r.byteLength),u=i._malloc(a.byteLength),d=i._malloc(o.byteLength);i.HEAPF32.set(n,c/4),i.HEAPF32.set(r,l/4),i.HEAPU16.set(a,u/2),i.HEAPF32.set(o,d/4),i._createMesh(e,t,c,l,u,d,n.length/3,a.length,s)},attachCameraToAR(e,t,n){i._attachCameraToScene(e,t)},createGLView(){},openScene(t){g||(requestAnimationFrame(_),e.style.display=`block`),g=!0,i._openScene(t),i._setViewport(e.width,e.height)},_onResize(t,n){e.width=t,e.height=n,i._setViewport(e.width,e.height)},closeScene(){e.style.display=`none`,g=!1},traverse(e,t){i.traverseCallback=t,i._traverseEm(e)},setMatrix(e,t){let n=i._malloc(t.byteLength);i.HEAPF32.set(t,n/4),i._setMatrix(e,n),i._free(n)},setWorldMatrix(e,t){let n=i._malloc(t.byteLength);i.HEAPF32.set(t,n/4),i._setWorldMatrix(e,n),i._free(n)},getMatrix(e,t){x(t,16,t=>i._getMatrix(e,t))},getWorldMatrix(e,t){x(t,16,t=>i._getWorldMatrix(e,t))},getWorldPosition(e,t){x(t,3,t=>i._getWorldPosition(e,t))},getWorldDirection(e,t,n){x(n,3,n=>i._getWorldDirection(e,t,n))},getWorldMatrixInverse(e,t){x(t,16,t=>i._getWOrldMatrixInverse(e,t))},getCameraViewDirection(e,t,n,r){x(r,3,r=>i._getCameraViewDirection(e,t,n,r))},getDisplaySize(){return[e.width,e.height]},getChildren(e){let t=[];for(let n=0;n<256;n++){let r=i._malloc(128)/4,a=i._getChildrenIter(e,r*4,n*32,32);for(let e=0;e<a;e++)t.push(i.HEAPU32[r+e]);if(i._free(r*4),a<32)break}return t},createTexture(e,t,n){let r=c(e);createImageBitmap(r).then(e=>{let n=i.GL.getNewId(i.GL.textures),r=p.createTexture();i.GL.textures[n]=r,p.bindTexture(p.TEXTURE_2D,r),p.pixelStorei(p.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),p.pixelStorei(p.UNPACK_FLIP_Y_WEBGL,!1),p.pixelStorei(p.UNPACK_COLORSPACE_CONVERSION_WEBGL,p.NONE),p.texStorage2D(p.TEXTURE_2D,1,p.SRGB8_ALPHA8,e.width,e.height),p.texSubImage2D(p.TEXTURE_2D,0,0,0,e.width,e.height,p.RGBA,p.UNSIGNED_BYTE,e),t(i._importTexture(n,e.width,e.height),e.width,e.height)}).catch(n)},createTextureFromCanvas(e){let n=t.canvasHost?.readSurface(e);if(!n)return 0;let r=new Uint8Array(n.data.buffer,n.data.byteOffset,n.data.byteLength),a=i._malloc(r.length);i.HEAPU8.set(r,a);let o=i._createTextureFromRGBA(a,n.width,n.height);return i._free(a),o},updateTextureFromCanvas(e,n){let r=t.canvasHost?.readSurface(n);if(!r)return;let a=new Uint8Array(r.data.buffer,r.data.byteOffset,r.data.byteLength),o=i._malloc(a.length);i.HEAPU8.set(a,o),i._updateTextureFromRGBA(e,o,r.width,r.height),i._free(o)},async createGlb(e,t,r){let a=0;try{let r=n(e);a=i._malloc(r.byteLength),i.HEAPU8.set(new Uint8Array(r),a);let o=i._loadGlb(a,r.byteLength);for(let e=0;e<500&&!(i._glbLoadingUpdate()>=1);e++)await new Promise(e=>setTimeout(e,10));t(o)}catch(e){r(e)}finally{a!==0&&i._free(a)}},getGlbAnimations(e){let t=i._getGlbAnimationsCount(e);if(t===0)return[];let n=i._malloc(t*256);i._getGlbAnimations(e,t,n);let r=i.HEAPU8.buffer.slice(n,n+t*256),a=[],o=0,s=new DataView(r,0);for(let e=0;e<t;e++){let e=s.getFloat32(o,!0);o+=4,a.push({duration:e,name:``})}for(let e=0;e<t;e++){let t=s.getUint8(o);o+=1,a[e].name=O.decode(s.buffer.slice(o,o+t)),o+=t}return i._free(n),a},async loadGlb(e,t,r){let a=-1,o=-1;try{let r=n(e);a=i._malloc(r.byteLength),i.HEAPU8.set(new Uint8Array(r),a);let s=i._loadGlb(a,r.byteLength);for(let e=0;e<500&&!(i._glbLoadingUpdate()>=1);e++)await new Promise(e=>setTimeout(e,10));o=i._malloc(8192*4);let c=i._getGlbStructure(s,o);t(i.HEAPU8.buffer.slice(o,o+c))}catch(e){r(e)}finally{a!==0&&i._free(a),o!==0&&i._free(o)}},stopAllPlayers(){y()},async createEngine(){},requestCamera(e){e()},async warmRender(e,t){i._setVisibleAll(e,!0);for(let t=0;t<10&&!i._renderScene(e);t++)await new Promise(e=>setTimeout(e,10));i._setVisibleAll(e,!1),t()},async captureImage(t,n,r){let i=new OffscreenCanvas(e.width,e.height);i.getContext(`2d`).drawImage(e,0,0);let a=await i.convertToBlob({type:`image/png`});n(u(await a.arrayBuffer()),`image.png`,a.size)},_fetch:a,_getPlayer:d,_setARController(e){l=e},_raycastView(e,t){return i._raycastView(e,t)},_createGLTexture(e){let t=i.GL.getNewId(i.GL.textures),n=p.createTexture();return i.GL.textures[t]=n,p.bindTexture(p.TEXTURE_2D,n),p.pixelStorei(p.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),p.pixelStorei(p.UNPACK_FLIP_Y_WEBGL,!1),p.pixelStorei(p.UNPACK_COLORSPACE_CONVERSION_WEBGL,p.NONE),p.texStorage2D(p.TEXTURE_2D,1,p.RGBA8,e.width,e.height),{gl:p,glTexture:n,textureId:i._importTexture(t,e.width,e.height)}},_dispose(){this.closeScene(),this.stopAllPlayers();try{i._destroySwapChain?.()}catch{}p.getExtension(`WEBGL_lose_context`)?.loseContext(),window.filament_glContext===p&&(window.filament_glContext=null,window.filament_glOptions=null)}}};function se(e){let t=e.trim();/\sxmlns\s*=/.test(t)||(t=t.replace(/<svg\b/,`<svg xmlns="http://www.w3.org/2000/svg"`));let n=new TextEncoder().encode(t),r=``;for(let e of n)r+=String.fromCharCode(e);return`data:image/svg+xml;base64,${btoa(r)}`}function ce(e){let t=e.match(/viewBox\s*=\s*["']([^"']+)["']/);return t?t[1]:null}var le=[`miter`,`round`,`bevel`],ue=[`butt`,`round`,`square`],de=[`left`,`center`,`right`,`start`,`end`],fe=[`alphabetic`,`top`,`middle`,`bottom`,`hanging`,`ideographic`],pe=(e,t,n,r,i,a)=>{let o=Math.min(a,r/2,i/2);e.beginPath(),e.moveTo(t+o,n),e.arcTo(t+r,n,t+r,n+i,o),e.arcTo(t+r,n+i,t,n+i,o),e.arcTo(t,n+i,t,n,o),e.arcTo(t,n,t+r,n,o),e.closePath()},me=(e,t,n,r,i)=>{let a=0;for(;a<n;)switch(t[a++]){case 0:e.save();break;case 1:e.restore();break;case 2:e.translate(t[a++],t[a++]);break;case 3:e.scale(t[a++],t[a++]);break;case 4:e.rotate(t[a++]);break;case 5:e.globalAlpha=t[a++];break;case 6:e.fillStyle=r[t[a++]];break;case 7:e.strokeStyle=r[t[a++]];break;case 8:e.lineWidth=t[a++];break;case 9:e.lineJoin=le[t[a++]];break;case 10:e.lineCap=ue[t[a++]];break;case 11:e.font=r[t[a++]];break;case 12:e.textAlign=de[t[a++]];break;case 13:e.textBaseline=fe[t[a++]];break;case 14:e.beginPath();break;case 15:e.closePath();break;case 16:e.moveTo(t[a++],t[a++]);break;case 17:e.lineTo(t[a++],t[a++]);break;case 18:e.quadraticCurveTo(t[a++],t[a++],t[a++],t[a++]);break;case 19:e.bezierCurveTo(t[a++],t[a++],t[a++],t[a++],t[a++],t[a++]);break;case 20:e.arc(t[a++],t[a++],t[a++],t[a++],t[a++],t[a++]!==0);break;case 21:e.rect(t[a++],t[a++],t[a++],t[a++]);break;case 22:pe(e,t[a++],t[a++],t[a++],t[a++],t[a++]);break;case 23:e.fill(t[a++]?`evenodd`:`nonzero`);break;case 24:e.stroke();break;case 25:e.fillRect(t[a++],t[a++],t[a++],t[a++]);break;case 26:e.strokeRect(t[a++],t[a++],t[a++],t[a++]);break;case 27:e.clearRect(t[a++],t[a++],t[a++],t[a++]);break;case 28:{let n=r[t[a++]],i=t[a++],o=t[a++],s=t[a++];s>0?e.fillText(n,i,o,s):e.fillText(n,i,o);break}case 29:{let n=r[t[a++]],i=t[a++],o=t[a++],s=t[a++];s>0?e.strokeText(n,i,o,s):e.strokeText(n,i,o);break}case 30:{let n=i(t[a++]),r=t[a++],o=t[a++],s=t[a++],c=t[a++],l=t[a++],u=t[a++],d=t[a++],f=t[a++];n&&e.drawImage(n,r,o,s,c,l,u,d,f);break}default:return}},he=(e,t)=>{let n=typeof OffscreenCanvas<`u`,r=new Map,i=1,a=null;return{bridge:{rasterize:(e,t,a,o,s,c,l)=>{if(!n)return e;let u=Math.max(1,Math.round(t*o)),d=Math.max(1,Math.round(a*o)),f=e?r.get(e):void 0,p=e;f?(f.width!==u||f.height!==d)&&(f.width=u,f.height=d):(p=i++,f=new OffscreenCanvas(u,d),r.set(p,f));let m=f.getContext(`2d`);return m?(m.setTransform(o,0,0,o,0,0),m.clearRect(0,0,t,a),me(m,s,c,l,e=>r.get(e)??null),p):p},measureText:(e,t)=>{if(!n||(a||=new OffscreenCanvas(8,8).getContext(`2d`),!a))return new Float32Array(3);a.font=t;let r=a.measureText(e);return new Float32Array([r.width,r.actualBoundingBoxAscent??0,r.actualBoundingBoxDescent??0])},snapshot:e=>{let t=r.get(e);if(!t)return 0;let n=i++,a=new OffscreenCanvas(t.width,t.height),o=a.getContext(`2d`);return o&&o.drawImage(t,0,0),r.set(n,a),n},loadImage:(e,a,o,s)=>{if(!n){s();return}let c=(e,t,n)=>{let a=Math.max(1,Math.round(t)),c=Math.max(1,Math.round(n)),l=i++,u=new OffscreenCanvas(a,c),d=u.getContext(`2d`);if(!d){s();return}d.drawImage(e,0,0,a,c),r.set(l,u),o(l,a,c)};if(a<0){let t=new Image;t.onload=()=>{let n=t.naturalWidth,r=t.naturalHeight;if(!n||!r){let t=ce(e)?.trim().split(/\s+/).map(Number);t&&t.length===4&&t[2]>0&&t[3]>0&&(n=t[2],r=t[3])}c(t,n||300,r||150)},t.onerror=()=>s(),t.src=se(e)}else{let e=t?.(a);if(!e){s();return}createImageBitmap(new Blob([e])).then(e=>c(e,e.width,e.height)).catch(()=>s())}},toFile:(t,n,i,a)=>{let o=r.get(t);if(!o||!e){a();return}o.convertToBlob({type:n}).then(t=>t.arrayBuffer().then(n=>i(e(n),t.size))).catch(a)},destroySurface:e=>{r.delete(e)}},readSurface:e=>{let t=r.get(e);if(!t)return null;let n=t.getContext(`2d`);return n?{data:n.getImageData(0,0,t.width,t.height).data,width:t.width,height:t.height}:null},getSurface:e=>{let t=r.get(e);return t?{canvas:t,width:t.width,height:t.height}:null},surfaceToDataUrl:e=>{let t=r.get(e);if(!t)return null;let n=document.createElement(`canvas`);n.width=t.width,n.height=t.height;let i=n.getContext(`2d`);return i?(i.drawImage(t,0,0),n.toDataURL()):null}}},k=[],ge=[],_e=0,ve=!1,ye=()=>{let e=Date.now();for(let t=0;t<k.length;t++){let n=k[t],r=(e-n.startTime)*n.k;r>=1?(n.callback(1),k.splice(t,1),t--):n.callback(r)}if(k.length===0){ve=!1;return}requestAnimationFrame(ye)},be=(e,t)=>{let n=_e++;return k.push({id:n,startTime:Date.now(),callback:e,k:1/t}),ve||=(requestAnimationFrame(ye),!0),n},xe=e=>{let t=k.findIndex(t=>t.id===e);t<0||k.splice(t,1)},Se=e=>{let t=k.findIndex(t=>t.id===e);if(t<0)return;let n=k[t];n.passed=Date.now()-n.startTime,ge.push(n),k.splice(t,1)},Ce=e=>{let t=ge.findIndex(t=>t.id===e);if(t<0)return;let n=ge[t];ge.splice(t,1),n.startTime=Date.now()-n.passed,k.push(n),ve||=(requestAnimationFrame(ye),!0)},we=()=>{let e=[];return{websocketOpen:(t,n)=>{let r=new WebSocket(t);return r.addEventListener(`open`,e=>{n(`open`)}),r.addEventListener(`message`,e=>{n(`message`,e.data)}),r.addEventListener(`close`,e=>{n(`close`,e.code)}),r.addEventListener(`error`,e=>{n(`error`)}),e.push(r),e.length-1},websocketSend:(t,n)=>{e[t].send(n)},websocketClose:t=>{e[t].close()},disposeAll:()=>{for(let t of e)t.readyState===WebSocket.OPEN&&t.close();e.length=0}}},Te=(e,t,n,r)=>{try{let t=document.createElement(`input`);t.type=`file`,t.multiple=n,r&&(t.accept=r),t.onchange=async()=>{let{files:r}=t;if(n){let t=[];if(!r)return e([]);for(let e of r)t.push([u(await e.arrayBuffer()),e.name,e.size]);e(t)}else{if(!r||r.length===0)return e(null);e([[u(await r[0].arrayBuffer()),r[0].name,r[0].size]])}},window.addEventListener(`focus`,()=>{setTimeout(()=>{(!t.files||t.files.length===0)&&e(n?[]:null)},300)},{once:!0}),t.click()}catch(e){t(e)}},Ee=()=>{let e=e=>!1,{websocketOpen:n,websocketSend:r,websocketClose:u,disposeAll:d}=we(),y=`default`;return{get language(){return window.getLanguage?.()??`en`},get platform(){return`web`},get pixelRatio(){return typeof window<`u`&&window.devicePixelRatio||1},fetch:a,fetchLocal:s,disposeFetch:l,fetchToJson:t,fetchToText:o,fetchSlice:i,openFilePicker:Te,shareMedia(e,t){let n=URL.createObjectURL(c(e)),r=document.createElement(`a`);r.href=n,r.download=`image.png`,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(n)},inputKey:e,animate:be,stopAnimation:xe,pauseAnimation:Se,resumeAnimation:Ce,websocketOpen:n,websocketSend:r,websocketClose:u,createVideoPlayer:g,createAudioPlayer:b,updateMediaPlayerVolume:p,updateMediaPlayerPlaying:x,updateMediaPlayerLoop:h,getMediaPlayerTime:m,setMediaPlayerTime:f,getMediaPlayerDuration:v,removeMediaPlayer:_,localStorageSetStorage(e){y=e},localStorageSetValue(e,t){window.sessionStorage.setItem(y+`__`+e,t)},localStorageGetValue(e){return window.sessionStorage.getItem(y+`__`+e)},localStorageRemoveValue(e){window.sessionStorage.removeItem(y+`__`+e)},getLaunchUrl(){return null},_disposeWebsockets:d}},A=[`400 14px Inter`,`500 14px Inter`,`600 14px Inter`,`700 14px Inter`,`800 14px Inter`],j=async(e=A,t)=>{let n=t??(typeof document>`u`?void 0:document);if(!(!n||!n.fonts))try{await Promise.all(e.map(e=>n.fonts.load(e)))}catch{}},M=1e6,De=()=>{let e=[],t=[],n=n=>{let r=t.length;t.push(!0);let i=performance.now(),a=e=>{t[r]!==!1&&(requestAnimationFrame(a),n((e-i)*.001),i=e)};requestAnimationFrame(a);let o=r+M;return e.push(o),o},r=n=>{if(n>=M)t[n-M]=!1;else{window.clearTimeout(n);let t=e.indexOf(n);t>=0&&e.splice(t,1)}},i=(t,n)=>{let r=window.setTimeout(t,n);return e.push(r),r},a=(t,n)=>{let r=window.setInterval(t,n);return e.push(r),r},o=()=>{for(let n of e)n>=M?t[n-M]=!1:window.clearTimeout(n);e.length=0};return{globals:{setLoop:n,clearLoop:r,setTimeout:i,clearTimeout:r,setInterval:a,clearInterval:r,clearAllTimeouts:o},disposeAll:o}},N=e=>{if(typeof e==`number`||typeof e==`bigint`||typeof WebAssembly<`u`&&e instanceof WebAssembly.RuntimeError)return!0;let t=e instanceof Error?e.stack??``:``;return/\bwasm\b|wasm-function|\.wasm/i.test(t)},Oe=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,P={};for(let e=0;e<64;e++)P[Oe[e]]=e;var ke=e=>{let t=[],n=0,r=0;for(let i of e){let e=P[i];if(e===void 0)break;let a=e&32;if(r+=(e&31)<<n,a)n+=5;else{let e=r&1;r>>=1,t.push(e?-r:r),r=0,n=0}}return t},F=class{sources;lines;constructor(e){this.sources=e.sources,this.lines=[];let t=0,n=0,r=0;for(let i of e.mappings.split(`;`)){let e=[],a=0;if(i)for(let o of i.split(`,`)){let i=ke(o);i.length!==0&&(a+=i[0],i.length>=4&&(t+=i[1],n+=i[2],r+=i[3],e.push([a,t,n,r])))}this.lines.push(e)}}originalPositionFor(e,t){let n=this.lines[e-1];if(!n||n.length===0)return null;let r=null;for(let e of n)if(e[0]<=t)r=e;else break;r??=n[0];let i=this.sources[r[1]];return i===void 0?null:{source:i,line:r[2]+1,column:r[3]}}},Ae=e=>{let t=e.match(/\/\/# lecodesMap=data:application\/json;(?:charset=[^;]+;)?base64,([A-Za-z0-9+/=]+)\s*$/);if(!t)return null;try{let e=typeof atob==`function`?atob(t[1]):Buffer.from(t[1],`base64`).toString(`utf8`);return new F(JSON.parse(e))}catch{return null}},I=null,je=()=>{if(I!==null)return I;try{Function(`throw new Error('chisel-calibrate')`)()}catch(e){let t=(e.stack??``).match(/<anonymous>:(\d+):\d+/);return I=t?parseInt(t[1],10)-1:2,I}return I=2,I},L=(e,t)=>{let n=(e instanceof Error?e.stack:``)??``,r=je(),i=[];for(let e of n.split(`
|
|
4
|
+
`)){let n=e.match(/<anonymous>:(\d+):(\d+)/);if(!n)continue;let a=parseInt(n[1],10)-r,o=parseInt(n[2],10)-1;if(a<1)continue;let s=t.originalPositionFor(a,o<0?0:o);if(!s)continue;let c=e.match(/at\s+([^\s(]+)\s*\(/);i.push({fn:c?c[1]:null,source:s.source,line:s.line,column:s.column})}return i},Me=async(t,r={})=>{let i=r.engine??`gl`,a=r.preloads??new Set,o=r.ui?j(r.fonts):void 0,s=document.createElement(`canvas`);t.appendChild(s);let c,l=()=>{},d,f,p=he(u,n);if(i===`dual`){let n=document.createElement(`canvas`);t.appendChild(n),c=n;let i=t.getBoundingClientRect();for(let e of[s,n])e.width=i.width,e.height=i.height,e.style.display=`none`;let{createViewer2d:o}=await e(async()=>{let{createViewer2d:e}=await import(`./createViewer2d-CI6PFuCm.js`);return{createViewer2d:e}},__vite__mapDeps([0,1,2]));f=await o(n,{},p),d=await oe(s,{preloads:a,canvasHost:p}),r.methods&&Object.assign(d,r.methods);let l=e=>{s.style.display=e===s?`block`:`none`,n.style.display=e===n?`block`:`none`},u=d.openScene.bind(d);d.openScene=e=>(l(s),u(e));let m=f.openScene.bind(f);f.openScene=e=>(l(n),m(e))}else if(i===`2d`){let n=t.getBoundingClientRect();s.width=n.width,s.height=n.height,s.style.display=`none`;let{createViewer2d:r}=await e(async()=>{let{createViewer2d:e}=await import(`./createViewer2d-CI6PFuCm.js`);return{createViewer2d:e}},__vite__mapDeps([0,1,2]));f=await r(s,{},p),d={raycastView(){return 0},_onResize(){},_dispose(){}}}else if(i===`gl-lite`){let n=t.getBoundingClientRect();s.width=n.width,s.height=n.height,s.style.display=`none`;let{createViewerLite:i}=await e(async()=>{let{createViewerLite:e}=await import(`./createViewerLite-CoShwplA.js`);return{createViewerLite:e}},__vite__mapDeps([3,1,4]));d=await i(s,{preloads:a,canvasHost:p}),r.methods&&Object.assign(d,r.methods)}else if(i===`defer`)d={raycastView(){return 0},_onResize(){},_dispose(){}},l=async()=>{let e=t.getBoundingClientRect();s.width=e.width,s.height=e.height,s.style.display=`block`;let n=await oe(s,{preloads:a,canvasHost:p});Object.assign(d,n)};else{let e=t.getBoundingClientRect();s.width=e.width,s.height=e.height,s.style.display=`none`,d=await oe(s,{preloads:a,canvasHost:p}),r.methods&&Object.assign(d,r.methods)}let m=r.ui?await r.ui(t,p):void 0,h=Ee();m?._setCreator(d);let g=new ResizeObserver(([e])=>{d?._onResize(e.contentRect.width,e.contentRect.height),f?._onResize(e.contentRect.width,e.contentRect.height),m?._onResize(e.contentRect.width,e.contentRect.height)});g.observe(t);let _=new Set,v=e=>{_.add(e.code)},y=e=>_.delete(e.code);r.keyboard!==!1&&(window.addEventListener(`keydown`,v),window.addEventListener(`keyup`,y),h.inputKey=e=>_.has(e));let b=[],x=!1,S=(e,t,n,r)=>{if(n.length===0&&N(t)){let n=typeof t==`number`||typeof t==`bigint`?`code ${t}`:t instanceof Error?t.message||t.name:String(t),i=[r,n].filter(e=>!!e).filter((e,t,n)=>n.indexOf(e)===t).join(`
|
|
5
|
+
`);console.error(`[le.codes] native engine error — ${i||n} (see console for the engine's message)`),e.onError?.({message:`Native engine error`,detail:i,frames:[],native:!0,stack:t instanceof Error?t.stack:void 0});return}let i=t instanceof Error?t.message:String(t);if(n.length>0){let e=n[0];console.error(`[le.codes] ${i}\n at ${e.source}:${e.line}:${e.column}${e.fn?` (${e.fn})`:``}`)}else console.error(`[le.codes] ${i}`);e.onError?.({message:i,frames:n,stack:t instanceof Error?t.stack:void 0})},C=(e,t)=>{for(let n=b.length-1;n>=0;n--){let r=b[n];if(!r.sourceMap)continue;let i=L(e,r.sourceMap);if(i.length>0)return S(r,e,i,t)}if(N(e)){let n=b[b.length-1];n&&S(n,e,[],t)}},w=e=>C(e.error??e.message,e.message),T=e=>C(e.reason),E=()=>{x||(x=!0,window.addEventListener(`error`,w),window.addEventListener(`unhandledrejection`,T))};return await o,{_creator:d,_creator2d:f,_creatorUI:m,_creatorUtils:h,canvasHost:p,run:(e,t={})=>{E();let n=De(),r=Ae(e),i=!1,a=()=>{if(i)return;i=!0;let e=b.indexOf(o);e>=0&&b.splice(e,1),n.disposeAll()},o={sourceMap:r,onError:t.onError,dispose:a};b.push(o);let s={_creator:d,_creator2d:f,_creatorUI:m,_creatorUtils:h,_creatorCanvas:p.bridge,...n.globals,createEngine:l},c=Function(...Object.keys(s),e),u;try{u=c(...Object.values(s))}catch(e){throw S(o,e,r?L(e,r):[]),e}return{result:u,dispose:a}},destroy:()=>{g.disconnect();for(let e of[...b])e.dispose();x&&(window.removeEventListener(`error`,w),window.removeEventListener(`unhandledrejection`,T)),d._dispose(),f?._dispose(),m?._destroy?.(),t.removeChild(s),c&&t.removeChild(c),h._disposeWebsockets(),window.removeEventListener(`keydown`,v),window.removeEventListener(`keyup`,y)}}},R=e=>{let t=null,n=null,r=null,i=new Map,a=new Set,o=(e,t,n)=>{let r=n.getBoundingClientRect(),o=n.ownerDocument.defaultView??window,c=0;i.set(e,t);let l=e=>{let n=s.get(e.pointerId);n&&(c+=Math.abs(e.movementX)+Math.abs(e.movementY),c>4&&(s.delete(e.pointerId),t.onMove||u(),n.nodeId&&p(n.nodeId,!1))),t.onMove?.({clientX:e.clientX-r.left,clientY:e.clientY-r.top,deltaX:e.movementX,deltaY:e.movementY})},u=()=>{o.removeEventListener(`pointermove`,l),o.removeEventListener(`pointerup`,d),o.removeEventListener(`pointercancel`,f),a.delete(u)},d=e=>{u(),t.onEnd?.({clientX:e.clientX-r.left,clientY:e.clientY-r.top,deltaX:e.movementX,deltaY:e.movementY})},f=()=>{u(),t.onCancel?.()};t.onMove&&o.addEventListener(`pointermove`,l),o.addEventListener(`pointerup`,d),o.addEventListener(`pointercancel`,f),a.add(u)},s=new Map,c=n=>{let i=e??n.currentTarget,a=i.getBoundingClientRect(),c=n.clientX-a.left,l=n.clientY-a.top;if(s.set(n.pointerId,{clientX:c,clientY:l}),t){let e=r?._raycastView(c,l)??0,a=t(n.pointerId,c,l,e);a&&o(n.pointerId,a,i)}},l=t=>{let i=s.get(t.pointerId);if(!i||(s.delete(t.pointerId),i.nodeId&&p(i.nodeId,!1),n===null))return;let a=(e??t.currentTarget).getBoundingClientRect(),o=t.clientX-a.left,c=t.clientY-a.top,l=r?._raycastView(o,c)??0;n(t.pointerId,o,c,l)},u=e=>{t=e},d=e=>{console.log(`register event`),n=e},f=e=>{r=e},p=(e,t)=>{};return{onSceneTouchDown:c,onSceneTouchEnd:l,registerTouchStartEvent:u,registerTouchEndEvent:d,registerTrackHandler:o,setCreator:f,onNodeStateChanged:e=>{p=e},onUIButtonTouchStart:(t,n)=>{if(p(t._id,!0),!e){console.warn(`Root element is not defined`);return}n.stopPropagation();let r=e.getBoundingClientRect(),i=n.clientX-r.left,a=n.clientY-r.top,c=t._emitTouchStart(n.pointerId,i,a);c&&o(n.pointerId,c,e),s.set(n.pointerId,{clientX:i,clientY:a,nodeId:t._id})},onUIButtonTouchEnd:(t,n)=>{let r=s.get(n.pointerId);if(r&&r.nodeId===t._id){if(!e){console.warn(`Root element is not defined`);return}let r=e.getBoundingClientRect();t._emitClick(n.pointerId,n.clientX-r.left,n.clientY-r.top),s.delete(n.pointerId),p(t._id,!1)}},isButtonPressed:e=>{for(let t of s.values())if(t.nodeId===e)return!0;return!1},_destroy:()=>{for(let e of[...a])e();a.clear(),i.clear(),s.clear(),r=null}}},Ne=async e=>{let t=R(e),n=e=>t.onSceneTouchDown(e),r=e=>t.onSceneTouchEnd(e);e.addEventListener(`pointerdown`,n),e.addEventListener(`pointerup`,r);let i=[];return{toast(e){},registerTouchStartEvent:t.registerTouchStartEvent,registerTouchEndEvent:t.registerTouchEndEvent,registerResizeEvent(e){i.push(e)},_setCreator:t.setCreator,_onResize(e,t){for(let n of i)n(e,t)},_destroy(){e.removeEventListener(`pointerdown`,n),e.removeEventListener(`pointerup`,r),t._destroy()}}};export{Ne as createBareUI,Me as createHost};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as e}from"./fetch-yAxxs-ZQ.js";import"./fetch-CbiE4Jmm.js";var t=(async function(e={}){var t,n=e,r,i,a=new Promise((e,t)=>{r=e,i=t}),o=!0,s=!1,c=import.meta.url,l=``;function u(e){return n.locateFile?n.locateFile(e,l):l+e}var d,f;if(o||s){try{l=new URL(`.`,c).href}catch{}d=async e=>{var t=await fetch(e,{credentials:`same-origin`});if(t.ok)return t.arrayBuffer();throw Error(t.status+` : `+t.url)}}console.log.bind(console);var p=console.error.bind(console),m,h,g=!1,_,v,y,b,x,S,C,w,T;function E(){var e=h.buffer;_=new Int8Array(e),y=new Int16Array(e),n.HEAPU8=v=new Uint8Array(e),n.HEAPU16=b=new Uint16Array(e),x=new Int32Array(e),n.HEAPU32=S=new Uint32Array(e),n.HEAPF32=C=new Float32Array(e),T=new Float64Array(e),w=new BigInt64Array(e),new BigUint64Array(e)}function D(){if(n.preRun)for(typeof n.preRun==`function`&&(n.preRun=[n.preRun]);n.preRun.length;)de(n.preRun.shift());N(F)}function O(){Q.cb()}function ee(){if(n.postRun)for(typeof n.postRun==`function`&&(n.postRun=[n.postRun]);n.postRun.length;)ue(n.postRun.shift());N(P)}var k=0,A=null;function te(e){k++,n.monitorRunDependencies?.(k)}function ne(e){if(k--,n.monitorRunDependencies?.(k),k==0&&A){var t=A;A=null,t()}}function j(e){n.onAbort?.(e),e=`Aborted(`+e+`)`,p(e),g=!0,e+=`. Build with -sASSERTIONS for more info.`;var t=new WebAssembly.RuntimeError(e);throw i(t),t}var M;function re(){return n.locateFile?u(`creator2d.wasm`):new URL(`/assets/creator2d-zNxn9uSj.wasm`,``+import.meta.url).href}function ie(e){if(e==M&&m)return new Uint8Array(m);if(f)return f(e);throw`both async and sync fetching of the wasm failed`}async function ae(e){if(!m)try{var t=await d(e);return new Uint8Array(t)}catch{}return ie(e)}async function oe(e,t){try{var n=await ae(e);return await WebAssembly.instantiate(n,t)}catch(e){p(`failed to asynchronously prepare wasm: ${e}`),j(e)}}async function se(e,t,n){if(!e&&typeof WebAssembly.instantiateStreaming==`function`)try{var r=fetch(t,{credentials:`same-origin`});return await WebAssembly.instantiateStreaming(r,n)}catch(e){p(`wasm streaming compile failed: ${e}`),p(`falling back to ArrayBuffer instantiation`)}return oe(t,n)}function ce(){return{a:Wn}}async function le(){function e(e,t){return Q=e.exports,h=Q.bb,E(),ne(`wasm-instantiate`),Q}te(`wasm-instantiate`);function t(t){return e(t.instance)}var r=ce();if(n.instantiateWasm)return new Promise((t,i)=>{n.instantiateWasm(r,(n,r)=>{t(e(n,r))})});M??=re();try{return t(await se(m,M,r))}catch(e){return i(e),Promise.reject(e)}}var N=e=>{for(;e.length>0;)e.shift()(n)},P=[],ue=e=>P.push(e),F=[],de=e=>F.push(e);class fe{constructor(e){this.excPtr=e,this.ptr=e-24}set_type(e){S[this.ptr+4>>2]=e}get_type(){return S[this.ptr+4>>2]}set_destructor(e){S[this.ptr+8>>2]=e}get_destructor(){return S[this.ptr+8>>2]}set_caught(e){e=+!!e,_[this.ptr+12]=e}get_caught(){return _[this.ptr+12]!=0}set_rethrown(e){e=+!!e,_[this.ptr+13]=e}get_rethrown(){return _[this.ptr+13]!=0}init(e,t){this.set_adjusted_ptr(0),this.set_type(e),this.set_destructor(t)}set_adjusted_ptr(e){S[this.ptr+16>>2]=e}get_adjusted_ptr(){return S[this.ptr+16>>2]}}var I=0,pe=0,me=(e,t,n)=>{throw new fe(e).init(t,n),I=e,pe++,I},he=()=>j(``);function ge(e,t,r){n.onAnimEvent&&n.onAnimEvent(e,t,r)}function _e(e){n.onEarlyUpdate&&n.onEarlyUpdate(e)}function ve(e){n.onLateUpdate&&n.onLateUpdate(e)}function ye(e,t,r){n.onPhysicsEvent&&n.onPhysicsEvent(e,t,r)}var L=()=>performance.now(),be=()=>Date.now(),xe=1,Se=e=>e>=0&&e<=3,Ce=9007199254740992,we=-9007199254740992,Te=e=>e<we||e>Ce?NaN:Number(e);function Ee(e,t,n){if(t=Te(t),!Se(e))return 28;var r;if(e===0)r=be();else if(xe)r=L();else return 52;var i=Math.round(r*1e3*1e3);return w[n>>3]=BigInt(i),0}var R=[],De=(e,t)=>{R.length=0;for(var n;n=v[e++];){var r=n!=105;r&=n!=112,t+=r&&t%8?4:0,R.push(n==112?S[t>>2]:n==106?w[t>>3]:n==105?x[t>>2]:T[t>>3]),t+=r?8:4}return R},Oe=(e,t,n)=>{var r=De(t,n);return Hn[e](...r)},ke=(e,t,n)=>Oe(e,t,n),Ae=()=>2147483648,je=(e,t)=>Math.ceil(e/t)*t,Me=e=>{var t=(e-h.buffer.byteLength+65535)/65536|0;try{return h.grow(t),E(),1}catch{}},Ne=e=>{var t=v.length;e>>>=0;var n=Ae();if(e>n)return!1;for(var r=1;r<=4;r*=2){var i=t*(1+.2/r);if(i=Math.min(i,e+100663296),Me(Math.min(n,je(Math.max(e,i),65536))))return!0}return!1},z,Pe=e=>!!(e.dibvbi=e.getExtension(`WEBGL_draw_instanced_base_vertex_base_instance`)),Fe=e=>!!(e.mdibvbi=e.getExtension(`WEBGL_multi_draw_instanced_base_vertex_base_instance`)),Ie=e=>!!(e.extPolygonOffsetClamp=e.getExtension(`EXT_polygon_offset_clamp`)),Le=e=>!!(e.extClipControl=e.getExtension(`EXT_clip_control`)),Re=e=>!!(e.webglPolygonMode=e.getExtension(`WEBGL_polygon_mode`)),ze=e=>!!(e.multiDrawWebgl=e.getExtension(`WEBGL_multi_draw`)),B=e=>{var t=`EXT_color_buffer_float.EXT_conservative_depth.EXT_disjoint_timer_query_webgl2.EXT_texture_norm16.NV_shader_noperspective_interpolation.WEBGL_clip_cull_distance.EXT_clip_control.EXT_color_buffer_half_float.EXT_depth_clamp.EXT_float_blend.EXT_polygon_offset_clamp.EXT_texture_compression_bptc.EXT_texture_compression_rgtc.EXT_texture_filter_anisotropic.KHR_parallel_shader_compile.OES_texture_float_linear.WEBGL_blend_func_extended.WEBGL_compressed_texture_astc.WEBGL_compressed_texture_etc.WEBGL_compressed_texture_etc1.WEBGL_compressed_texture_s3tc.WEBGL_compressed_texture_s3tc_srgb.WEBGL_debug_renderer_info.WEBGL_debug_shaders.WEBGL_lose_context.WEBGL_multi_draw.WEBGL_polygon_mode`.split(`.`);return(e.getSupportedExtensions()||[]).filter(e=>t.includes(e))},Be=e=>{typeof MainLoop<`u`&&MainLoop.preMainLoop.push(e)},V=typeof TextDecoder<`u`?new TextDecoder:void 0,Ve=(e,t=0,n=NaN)=>{for(var r=t+n,i=t;e[i]&&!(i>=r);)++i;if(i-t>16&&e.buffer&&V)return V.decode(e.subarray(t,i));for(var a=``;t<i;){var o=e[t++];if(!(o&128)){a+=String.fromCharCode(o);continue}var s=e[t++]&63;if((o&224)==192){a+=String.fromCharCode((o&31)<<6|s);continue}var c=e[t++]&63;if(o=(o&240)==224?(o&15)<<12|s<<6|c:(o&7)<<18|s<<12|c<<6|e[t++]&63,o<65536)a+=String.fromCharCode(o);else{var l=o-65536;a+=String.fromCharCode(55296|l>>10,56320|l&1023)}}return a},H=(e,t)=>e?Ve(v,e,t):``,U={counter:1,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],stringCache:{},stringiCache:{},unpackAlignment:4,unpackRowLength:0,recordError:e=>{U.lastError||=e},getNewId:e=>{for(var t=U.counter++,n=e.length;n<t;n++)e[n]=null;for(;e[t];)t=U.counter++;return t},genObject:(e,t,n,r)=>{for(var i=0;i<e;i++){var a=z[n](),o=a&&U.getNewId(r);a?(a.name=o,r[o]=a):U.recordError(1282),x[t+i*4>>2]=o}},MAX_TEMP_BUFFER_SIZE:2097152,numTempVertexBuffersPerSize:64,log2ceilLookup:e=>32-Math.clz32(e===0?0:e-1),generateTempBuffers:(e,t)=>{var n=U.log2ceilLookup(U.MAX_TEMP_BUFFER_SIZE);t.tempVertexBufferCounters1=[],t.tempVertexBufferCounters2=[],t.tempVertexBufferCounters1.length=t.tempVertexBufferCounters2.length=n+1,t.tempVertexBuffers1=[],t.tempVertexBuffers2=[],t.tempVertexBuffers1.length=t.tempVertexBuffers2.length=n+1,t.tempIndexBuffers=[],t.tempIndexBuffers.length=n+1;for(var r=0;r<=n;++r){t.tempIndexBuffers[r]=null,t.tempVertexBufferCounters1[r]=t.tempVertexBufferCounters2[r]=0;var i=U.numTempVertexBuffersPerSize;t.tempVertexBuffers1[r]=[],t.tempVertexBuffers2[r]=[];var a=t.tempVertexBuffers1[r],o=t.tempVertexBuffers2[r];a.length=o.length=i;for(var s=0;s<i;++s)a[s]=o[s]=null}if(e){t.tempQuadIndexBuffer=z.createBuffer(),t.GLctx.bindBuffer(34963,t.tempQuadIndexBuffer);for(var c=U.MAX_TEMP_BUFFER_SIZE>>1,l=new Uint16Array(c),r=0,u=0;l[r++]=u,!(r>=c||(l[r++]=u+1,r>=c)||(l[r++]=u+2,r>=c)||(l[r++]=u,r>=c)||(l[r++]=u+2,r>=c)||(l[r++]=u+3,r>=c));)u+=4;t.GLctx.bufferData(34963,l,35044),t.GLctx.bindBuffer(34963,null)}},getTempVertexBuffer:e=>{var t=U.log2ceilLookup(e),n=U.currentContext.tempVertexBuffers1[t],r=U.currentContext.tempVertexBufferCounters1[t];U.currentContext.tempVertexBufferCounters1[t]=U.currentContext.tempVertexBufferCounters1[t]+1&U.numTempVertexBuffersPerSize-1;var i=n[r];if(i)return i;var a=z.getParameter(34964);return n[r]=z.createBuffer(),z.bindBuffer(34962,n[r]),z.bufferData(34962,1<<t,35048),z.bindBuffer(34962,a),n[r]},getTempIndexBuffer:e=>{var t=U.log2ceilLookup(e),n=U.currentContext.tempIndexBuffers[t];if(n)return n;var r=z.getParameter(34965);return U.currentContext.tempIndexBuffers[t]=z.createBuffer(),z.bindBuffer(34963,U.currentContext.tempIndexBuffers[t]),z.bufferData(34963,1<<t,35048),z.bindBuffer(34963,r),U.currentContext.tempIndexBuffers[t]},newRenderingFrameStarted:()=>{if(U.currentContext){var e=U.currentContext.tempVertexBuffers1;U.currentContext.tempVertexBuffers1=U.currentContext.tempVertexBuffers2,U.currentContext.tempVertexBuffers2=e,e=U.currentContext.tempVertexBufferCounters1,U.currentContext.tempVertexBufferCounters1=U.currentContext.tempVertexBufferCounters2,U.currentContext.tempVertexBufferCounters2=e;for(var t=U.log2ceilLookup(U.MAX_TEMP_BUFFER_SIZE),n=0;n<=t;++n)U.currentContext.tempVertexBufferCounters1[n]=0}},getSource:(e,t,n,r)=>{for(var i=``,a=0;a<t;++a){var o=r?S[r+a*4>>2]:void 0;i+=H(S[n+a*4>>2],o)}return i},calcBufLength:(e,t,n,r)=>n>0?r*n:e*U.byteSizeByType[t-U.byteSizeByTypeRoot]*r,usedTempBuffers:[],preDrawHandleClientVertexAttribBindings:e=>{U.resetBufferBinding=!1;for(var t=0;t<U.currentContext.maxVertexAttribs;++t){var n=U.currentContext.clientBuffers[t];if(!(!n.clientside||!n.enabled)){U.resetBufferBinding=!0;var r=U.calcBufLength(n.size,n.type,n.stride,e),i=U.getTempVertexBuffer(r);z.bindBuffer(34962,i),z.bufferSubData(34962,0,v.subarray(n.ptr,n.ptr+r)),n.vertexAttribPointerAdaptor.call(z,t,n.size,n.type,n.normalized,n.stride,0)}}},postDrawHandleClientVertexAttribBindings:()=>{U.resetBufferBinding&&z.bindBuffer(34962,U.buffers[z.currentArrayBufferBinding])},createContext:(e,t)=>{if(!e.getContextSafariWebGL2Fixed){e.getContextSafariWebGL2Fixed=e.getContext;function t(t,n){var r=e.getContextSafariWebGL2Fixed(t,n);return t==`webgl`==r instanceof WebGLRenderingContext?r:null}e.getContext=t}var n=e.getContext(`webgl2`,t);return n?U.registerContext(n,t):0},registerContext:(e,t)=>{var n=U.getNewId(U.contexts),r={handle:n,attributes:t,version:t.majorVersion,GLctx:e};e.canvas&&(e.canvas.GLctxObject=r),U.contexts[n]=r,(t.enableExtensionsByDefault===void 0||t.enableExtensionsByDefault)&&U.initExtensions(r),r.maxVertexAttribs=r.GLctx.getParameter(34921),r.clientBuffers=[];for(var i=0;i<r.maxVertexAttribs;i++)r.clientBuffers[i]={enabled:!1,clientside:!1,size:0,type:0,normalized:0,stride:0,ptr:0,vertexAttribPointerAdaptor:null};return U.generateTempBuffers(!1,r),n},makeContextCurrent:e=>(U.currentContext=U.contexts[e],n.ctx=z=U.currentContext?.GLctx,!(e&&!z)),getContext:e=>U.contexts[e],deleteContext:e=>{U.currentContext===U.contexts[e]&&(U.currentContext=null),typeof JSEvents==`object`&&JSEvents.removeAllHandlersOnTarget(U.contexts[e].GLctx.canvas),U.contexts[e]?.GLctx.canvas&&(U.contexts[e].GLctx.canvas.GLctxObject=void 0),U.contexts[e]=null},initExtensions:e=>{if(e||=U.currentContext,!e.initExtensionsDone){e.initExtensionsDone=!0;var t=e.GLctx;ze(t),Ie(t),Le(t),Re(t),Pe(t),Fe(t),e.version>=2&&(t.disjointTimerQueryExt=t.getExtension(`EXT_disjoint_timer_query_webgl2`)),(e.version<2||!t.disjointTimerQueryExt)&&(t.disjointTimerQueryExt=t.getExtension(`EXT_disjoint_timer_query`)),B(t).forEach(e=>{!e.includes(`lose_context`)&&!e.includes(`debug`)&&t.getExtension(e)})}}},He=e=>z.activeTexture(e),Ue=(e,t)=>{z.attachShader(U.programs[e],U.shaders[t])},We=(e,t)=>{if(t&&!U.buffers[t]){var n=z.createBuffer();n.name=t,U.buffers[t]=n}e==34962?z.currentArrayBufferBinding=t:e==34963&&(z.currentElementArrayBufferBinding=t),e==35051?z.currentPixelPackBufferBinding=t:e==35052&&(z.currentPixelUnpackBufferBinding=t),z.bindBuffer(e,U.buffers[t])},Ge=(e,t,n)=>{z.bindBufferBase(e,t,U.buffers[n])},Ke=(e,t,n,r,i)=>{z.bindBufferRange(e,t,U.buffers[n],r,i)},qe=(e,t)=>{z.bindFramebuffer(e,U.framebuffers[t])},Je=(e,t)=>{z.bindRenderbuffer(e,U.renderbuffers[t])},Ye=(e,t)=>{z.bindSampler(e,U.samplers[t])},Xe=(e,t)=>{z.bindTexture(e,U.textures[t])},Ze=e=>{z.bindVertexArray(U.vaos[e]);var t=z.getParameter(34965);z.currentElementArrayBufferBinding=t?t.name|0:0},Qe=(e,t,n,r)=>z.blendColor(e,t,n,r),$e=(e,t)=>z.blendEquationSeparate(e,t),et=(e,t,n,r)=>z.blendFuncSeparate(e,t,n,r),tt=(e,t,n,r,i,a,o,s,c,l)=>z.blitFramebuffer(e,t,n,r,i,a,o,s,c,l),nt=(e,t,n,r)=>{n&&t?z.bufferData(e,v,r,n,t):z.bufferData(e,t,r)},rt=(e,t,n,r)=>{n&&z.bufferSubData(e,t,v,r,n)},it=e=>z.checkFramebufferStatus(e),at=(e,t,n,r)=>z.clearBufferfi(e,t,n,r),ot=(e,t,n)=>{z.clearBufferfv(e,t,C,n>>2)},st=(e,t,n)=>{z.clearBufferiv(e,t,x,n>>2)},ct=(e,t,n,r)=>{z.colorMask(!!e,!!t,!!n,!!r)},lt=e=>{z.compileShader(U.shaders[e])},ut=(e,t,n,r,i,a,o,s,c)=>{if(z.currentPixelUnpackBufferBinding||!s){z.compressedTexSubImage2D(e,t,n,r,i,a,o,s,c);return}z.compressedTexSubImage2D(e,t,n,r,i,a,o,v,c,s)},dt=(e,t,n,r,i,a,o,s,c,l,u)=>{z.currentPixelUnpackBufferBinding?z.compressedTexSubImage3D(e,t,n,r,i,a,o,s,c,l,u):z.compressedTexSubImage3D(e,t,n,r,i,a,o,s,c,v,u,l)},ft=()=>{var e=U.getNewId(U.programs),t=z.createProgram();return t.name=e,t.maxUniformLength=t.maxAttributeLength=t.maxUniformBlockNameLength=0,t.uniformIdCounter=1,U.programs[e]=t,e},pt=e=>{var t=U.getNewId(U.shaders);return U.shaders[t]=z.createShader(e),t},mt=e=>z.cullFace(e),ht=(e,t)=>{for(var n=0;n<e;n++){var r=x[t+n*4>>2],i=U.buffers[r];i&&(z.deleteBuffer(i),i.name=0,U.buffers[r]=null,r==z.currentArrayBufferBinding&&(z.currentArrayBufferBinding=0),r==z.currentElementArrayBufferBinding&&(z.currentElementArrayBufferBinding=0),r==z.currentPixelPackBufferBinding&&(z.currentPixelPackBufferBinding=0),r==z.currentPixelUnpackBufferBinding&&(z.currentPixelUnpackBufferBinding=0))}},gt=(e,t)=>{for(var n=0;n<e;++n){var r=x[t+n*4>>2],i=U.framebuffers[r];i&&(z.deleteFramebuffer(i),i.name=0,U.framebuffers[r]=null)}},_t=e=>{if(e){var t=U.programs[e];if(!t){U.recordError(1281);return}z.deleteProgram(t),t.name=0,U.programs[e]=null}},vt=(e,t)=>{for(var n=0;n<e;n++){var r=x[t+n*4>>2],i=U.renderbuffers[r];i&&(z.deleteRenderbuffer(i),i.name=0,U.renderbuffers[r]=null)}},yt=(e,t)=>{for(var n=0;n<e;n++){var r=x[t+n*4>>2],i=U.samplers[r];i&&(z.deleteSampler(i),i.name=0,U.samplers[r]=null)}},bt=e=>{if(e){var t=U.shaders[e];if(!t){U.recordError(1281);return}z.deleteShader(t),U.shaders[e]=null}},xt=(e,t)=>{for(var n=0;n<e;n++){var r=x[t+n*4>>2],i=U.textures[r];i&&(z.deleteTexture(i),i.name=0,U.textures[r]=null)}},St=(e,t)=>{for(var n=0;n<e;n++){var r=x[t+n*4>>2];z.deleteVertexArray(U.vaos[r]),U.vaos[r]=null}},Ct=e=>z.depthFunc(e),wt=e=>{z.depthMask(!!e)},Tt=e=>z.disable(e),Et=e=>{var t=U.currentContext.clientBuffers[e];t.enabled=!1,z.disableVertexAttribArray(e)},Dt=(e,t,n)=>{U.preDrawHandleClientVertexAttribBindings(t+n),z.drawArrays(e,t,n),U.postDrawHandleClientVertexAttribBindings()},Ot=(e,t,n,r)=>{z.drawArraysInstanced(e,t,n,r)},W=[],kt=(e,t)=>{for(var n=W[e],r=0;r<e;r++)n[r]=x[t+r*4>>2];z.drawBuffers(n)},At=(e,t,n,r)=>{var i,a=0;if(!z.currentElementArrayBufferBinding){var o=U.calcBufLength(1,n,0,t);if(i=U.getTempIndexBuffer(o),z.bindBuffer(34963,i),z.bufferSubData(34963,0,v.subarray(r,r+o)),t>0)for(var s=0;s<U.currentContext.maxVertexAttribs;++s){var c=U.currentContext.clientBuffers[s];if(c.clientside&&c.enabled){let e;switch(n){case 5121:e=Uint8Array;break;case 5123:e=Uint16Array;break;case 5125:e=Uint32Array;break;default:U.recordError(1282);return}a=new e(v.buffer,r,t).reduce((e,t)=>Math.max(e,t))+1;break}}r=0}U.preDrawHandleClientVertexAttribBindings(a),z.drawElements(e,t,n,r),U.postDrawHandleClientVertexAttribBindings(t),z.currentElementArrayBufferBinding||z.bindBuffer(34963,null)},jt=(e,t,n,r,i)=>{z.drawElementsInstanced(e,t,n,r,i)},Mt=e=>z.enable(e),Nt=e=>{var t=U.currentContext.clientBuffers[e];t.enabled=!0,z.enableVertexAttribArray(e)},Pt=(e,t,n,r)=>{z.framebufferRenderbuffer(e,t,n,U.renderbuffers[r])},Ft=(e,t,n,r,i)=>{z.framebufferTexture2D(e,t,n,U.textures[r],i)},It=(e,t,n,r,i)=>{z.framebufferTextureLayer(e,t,U.textures[n],r,i)},Lt=e=>z.frontFace(e),Rt=(e,t)=>{U.genObject(e,t,`createBuffer`,U.buffers)},zt=(e,t)=>{U.genObject(e,t,`createFramebuffer`,U.framebuffers)},Bt=(e,t)=>{U.genObject(e,t,`createRenderbuffer`,U.renderbuffers)},Vt=(e,t)=>{U.genObject(e,t,`createSampler`,U.samplers)},Ht=(e,t)=>{U.genObject(e,t,`createTexture`,U.textures)},Ut=(e,t)=>{U.genObject(e,t,`createVertexArray`,U.vaos)},Wt=(e,t)=>z.getAttribLocation(U.programs[e],H(t)),Gt=(e,t)=>{S[e>>2]=t;var n=S[e>>2];S[e+4>>2]=(t-n)/4294967296},G=()=>{var e=B(z);return e=e.concat(e.map(e=>`GL_`+e)),e},Kt=(e,t,n)=>{if(!t){U.recordError(1281);return}var r=void 0;switch(e){case 36346:r=1;break;case 36344:n!=0&&n!=1&&U.recordError(1280);return;case 34814:case 36345:r=0;break;case 34466:var i=z.getParameter(34467);r=i?i.length:0;break;case 33309:if(U.currentContext.version<2){U.recordError(1282);return}r=G().length;break;case 33307:case 33308:if(U.currentContext.version<2){U.recordError(1280);return}r=e==33307?3:0;break}if(r===void 0){var a=z.getParameter(e);switch(typeof a){case`number`:r=a;break;case`boolean`:r=+!!a;break;case`string`:U.recordError(1280);return;case`object`:if(a===null)switch(e){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368:case 34068:r=0;break;default:U.recordError(1280);return}else if(a instanceof Float32Array||a instanceof Uint32Array||a instanceof Int32Array||a instanceof Array){for(var o=0;o<a.length;++o)switch(n){case 0:x[t+o*4>>2]=a[o];break;case 2:C[t+o*4>>2]=a[o];break;case 4:_[t+o]=+!!a[o];break}return}else try{r=a.name|0}catch(t){U.recordError(1280),p(`GL_INVALID_ENUM in glGet${n}v: Unknown object returned from WebGL getParameter(${e})! (error: ${t})`);return}break;default:U.recordError(1280),p(`GL_INVALID_ENUM in glGet${n}v: Native code calling glGet${n}v(${e}) and it returns ${a} of type ${typeof a}!`);return}}switch(n){case 1:Gt(t,r);break;case 0:x[t>>2]=r;break;case 2:C[t>>2]=r;break;case 4:_[t]=+!!r;break}},qt=(e,t)=>Kt(e,t,0),Jt=(e,t,n,r)=>{var i=z.getProgramInfoLog(U.programs[e]);i===null&&(i=`(unknown error)`);var a=t>0&&r?K(i,r,t):0;n&&(x[n>>2]=a)},Yt=(e,t,n)=>{if(!n){U.recordError(1281);return}if(e>=U.counter){U.recordError(1281);return}if(e=U.programs[e],t==35716){var r=z.getProgramInfoLog(e);r===null&&(r=`(unknown error)`),x[n>>2]=r.length+1}else if(t==35719){if(!e.maxUniformLength)for(var i=z.getProgramParameter(e,35718),a=0;a<i;++a)e.maxUniformLength=Math.max(e.maxUniformLength,z.getActiveUniform(e,a).name.length+1);x[n>>2]=e.maxUniformLength}else if(t==35722){if(!e.maxAttributeLength)for(var o=z.getProgramParameter(e,35721),a=0;a<o;++a)e.maxAttributeLength=Math.max(e.maxAttributeLength,z.getActiveAttrib(e,a).name.length+1);x[n>>2]=e.maxAttributeLength}else if(t==35381){if(!e.maxUniformBlockNameLength)for(var s=z.getProgramParameter(e,35382),a=0;a<s;++a)e.maxUniformBlockNameLength=Math.max(e.maxUniformBlockNameLength,z.getActiveUniformBlockName(e,a).length+1);x[n>>2]=e.maxUniformBlockNameLength}else x[n>>2]=z.getProgramParameter(e,t)},Xt=(e,t,n,r)=>{if(!(r>0))return 0;for(var i=n,a=n+r-1,o=0;o<e.length;++o){var s=e.charCodeAt(o);if(s>=55296&&s<=57343){var c=e.charCodeAt(++o);s=65536+((s&1023)<<10)|c&1023}if(s<=127){if(n>=a)break;t[n++]=s}else if(s<=2047){if(n+1>=a)break;t[n++]=192|s>>6,t[n++]=128|s&63}else if(s<=65535){if(n+2>=a)break;t[n++]=224|s>>12,t[n++]=128|s>>6&63,t[n++]=128|s&63}else{if(n+3>=a)break;t[n++]=240|s>>18,t[n++]=128|s>>12&63,t[n++]=128|s>>6&63,t[n++]=128|s&63}}return t[n]=0,n-i},K=(e,t,n)=>Xt(e,v,t,n),Zt=(e,t,n,r)=>{var i=z.getShaderInfoLog(U.shaders[e]);i===null&&(i=`(unknown error)`);var a=t>0&&r?K(i,r,t):0;n&&(x[n>>2]=a)},Qt=(e,t,n)=>{if(!n){U.recordError(1281);return}if(t==35716){var r=z.getShaderInfoLog(U.shaders[e]);r===null&&(r=`(unknown error)`);var i=r?r.length+1:0;x[n>>2]=i}else if(t==35720){var a=z.getShaderSource(U.shaders[e]),o=a?a.length+1:0;x[n>>2]=o}else x[n>>2]=z.getShaderParameter(U.shaders[e],t)},$t=e=>{for(var t=0,n=0;n<e.length;++n){var r=e.charCodeAt(n);r<=127?t++:r<=2047?t+=2:r>=55296&&r<=57343?(t+=4,++n):t+=3}return t},en=e=>{var t=$t(e)+1,n=Gn(t);return n&&K(e,n,t),n},tn=(e,t)=>{if(U.currentContext.version<2)return U.recordError(1282),0;var n=U.stringiCache[e];if(n)return t<0||t>=n.length?(U.recordError(1281),0):n[t];switch(e){case 7939:var r=G().map(en);return n=U.stringiCache[e]=r,t<0||t>=n.length?(U.recordError(1281),0):n[t];default:return U.recordError(1280),0}},nn=e=>parseInt(e),q=e=>e.slice(-1)==`]`&&e.lastIndexOf(`[`),rn=e=>{var t=e.uniformLocsById,n=e.uniformSizeAndIdsByName,r,i;if(!t){e.uniformLocsById=t={},e.uniformArrayNamesById={};var a=z.getProgramParameter(e,35718);for(r=0;r<a;++r){var o=z.getActiveUniform(e,r),s=o.name,c=o.size,l=q(s),u=l>0?s.slice(0,l):s,d=e.uniformIdCounter;for(e.uniformIdCounter+=c,n[u]=[c,d],i=0;i<c;++i)t[d]=i,e.uniformArrayNamesById[d++]=u}}},an=(e,t)=>{if(t=H(t),e=U.programs[e]){rn(e);var n=e.uniformLocsById,r=0,i=t,a=q(t);a>0&&(r=nn(t.slice(a+1))>>>0,i=t.slice(0,a));var o=e.uniformSizeAndIdsByName[i];if(o&&r<o[0]&&(r+=o[1],n[r]=n[r]||z.getUniformLocation(e,t)))return r}else U.recordError(1281);return-1},on=(e,t,n)=>{for(var r=W[t],i=0;i<t;i++)r[i]=x[n+i*4>>2];z.invalidateFramebuffer(e,r)},sn=e=>{e=U.programs[e],z.linkProgram(e),e.uniformLocsById=0,e.uniformSizeAndIdsByName={}},cn=(e,t)=>{e==3317?U.unpackAlignment=t:e==3314&&(U.unpackRowLength=t),z.pixelStorei(e,t)},ln=(e,t)=>z.polygonOffset(e,t),un=e=>z.readBuffer(e),dn=(e,t,n,r,i)=>z.renderbufferStorageMultisample(e,t,n,r,i),fn=(e,t,n)=>{z.samplerParameterf(U.samplers[e],t,n)},pn=(e,t,n)=>{z.samplerParameteri(U.samplers[e],t,n)},mn=(e,t,n,r)=>z.scissor(e,t,n,r),hn=(e,t,n,r)=>{var i=U.getSource(e,t,n,r);z.shaderSource(U.shaders[e],i)},gn=(e,t,n)=>z.stencilFunc(e,t,n),_n=(e,t,n,r)=>z.stencilFuncSeparate(e,t,n,r),vn=e=>z.stencilMask(e),yn=(e,t,n)=>z.stencilOp(e,t,n),bn=(e,t,n,r)=>z.stencilOpSeparate(e,t,n,r),xn=(e,t,n,r,i)=>z.texStorage2D(e,t,n,r,i),Sn=(e,t,n,r,i,a)=>z.texStorage3D(e,t,n,r,i,a),Cn=(e,t,n)=>{function r(e,t){return e+t-1&-t}return t*r((U.unpackRowLength||e)*n,U.unpackAlignment)},wn=e=>({5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4})[e-6402]||1,J=e=>(e-=5120,e==0?_:e==1?v:e==2?y:e==4?x:e==6?C:e==5||e==28922||e==28520||e==30779||e==30782?S:b),Y=(e,t)=>e>>>31-Math.clz32(t.BYTES_PER_ELEMENT),Tn=(e,t,n,r,i,a)=>{var o=J(e),s=Cn(n,r,wn(t)*o.BYTES_PER_ELEMENT);return o.subarray(Y(i,o),Y(i+s,o))},En=(e,t,n,r,i,a,o,s,c)=>{if(z.currentPixelUnpackBufferBinding){z.texSubImage2D(e,t,n,r,i,a,o,s,c);return}if(c){var l=J(s);z.texSubImage2D(e,t,n,r,i,a,o,s,l,Y(c,l));return}var u=c?Tn(s,o,i,a,c,0):null;z.texSubImage2D(e,t,n,r,i,a,o,s,u)},Dn=(e,t,n,r,i,a,o,s,c,l,u)=>{if(z.currentPixelUnpackBufferBinding)z.texSubImage3D(e,t,n,r,i,a,o,s,c,l,u);else if(u){var d=J(l);z.texSubImage3D(e,t,n,r,i,a,o,s,c,l,d,Y(u,d))}else z.texSubImage3D(e,t,n,r,i,a,o,s,c,l,null)},X=e=>{var t=z.currentProgram;if(t){var n=t.uniformLocsById[e];return typeof n==`number`&&(t.uniformLocsById[e]=n=z.getUniformLocation(t,t.uniformArrayNamesById[e]+(n>0?`[${n}]`:``))),n}else U.recordError(1282)},On=(e,t,n)=>{t&&z.uniform1fv(X(e),C,n>>2,t)},kn=(e,t)=>{z.uniform1i(X(e),t)},An=(e,t,n)=>{t&&z.uniform1iv(X(e),x,n>>2,t)},jn=(e,t,n)=>{t&&z.uniform2fv(X(e),C,n>>2,t*2)},Mn=(e,t,n)=>{t&&z.uniform2iv(X(e),x,n>>2,t*2)},Nn=(e,t,n)=>{t&&z.uniform3fv(X(e),C,n>>2,t*3)},Pn=(e,t,n)=>{t&&z.uniform3iv(X(e),x,n>>2,t*3)},Fn=(e,t,n)=>{t&&z.uniform4fv(X(e),C,n>>2,t*4)},Z=(e,t,n)=>{t&&z.uniform4iv(X(e),x,n>>2,t*4)},In=(e,t,n,r)=>{t&&z.uniformMatrix4fv(X(e),!!n,C,r>>2,t*16)},Ln=e=>{e=U.programs[e],z.useProgram(e),z.currentProgram=e},Rn=(e,t)=>{z.vertexAttribDivisor(e,t)},zn=(e,t,n,r,i)=>{var a=U.currentContext.clientBuffers[e];if(!z.currentArrayBufferBinding){a.size=t,a.type=n,a.normalized=!1,a.stride=r,a.ptr=i,a.clientside=!0,a.vertexAttribPointerAdaptor=function(e,t,n,r,i,a){this.vertexAttribIPointer(e,t,n,i,a)};return}a.clientside=!1,z.vertexAttribIPointer(e,t,n,r,i)},Bn=(e,t,n,r,i,a)=>{var o=U.currentContext.clientBuffers[e];if(!z.currentArrayBufferBinding){o.size=t,o.type=n,o.normalized=r,o.stride=i,o.ptr=a,o.clientside=!0,o.vertexAttribPointerAdaptor=function(e,t,n,r,i,a){this.vertexAttribPointer(e,t,n,r,i,a)};return}o.clientside=!1,z.vertexAttribPointer(e,t,n,!!r,i,a)},Vn=(e,t,n,r)=>z.viewport(e,t,n,r);Be(()=>U.newRenderingFrameStarted());for(let e=0;e<32;++e)W.push(Array(e));n.noExitRuntime&&n.noExitRuntime,n.print&&n.print,n.printErr&&(p=n.printErr),n.wasmBinary&&(m=n.wasmBinary),n.arguments&&n.arguments,n.thisProgram&&n.thisProgram,n.UTF8ToString=H,n.stringToUTF8=K,n.GL=U;var Hn={10124:()=>{let e=n.creator2d_glContext||typeof window<`u`&&window.creator2d_glContext,t=n.creator2d_glOptions||typeof window<`u`&&window.creator2d_glOptions||{},r=U.registerContext(e,t);U.makeContextCurrent(r)}};function Un(e,t){let n=H(t);switch(e){case 0:console.error(n);break;case 1:console.error(n);break;case 2:console.warn(n);break;default:console.info(n);break}}var Wn={K:me,Xa:he,Ea:ge,S:_e,N:ve,Ba:ye,Wa:Ee,ab:ke,Va:L,Ua:Ne,q:He,t:Ue,b:We,w:Ge,wa:Ke,g:qe,Ga:Je,p:Ye,f:Xe,v:Ze,B:Qe,C:$e,D:et,ba:tt,Qa:nt,M:rt,Ya:it,Aa:at,F:ot,za:st,n:ct,$a:lt,Y:ut,W:dt,La:ft,U:pt,A:mt,Z:ht,u:gt,k:_t,O:vt,P:yt,j:bt,o:xt,Sa:St,r:Ct,s:wt,c:Tt,y:Et,da:Dt,ea:Ot,G:kt,fa:At,ha:jt,e:Mt,sa:Nt,i:Pt,h:Ft,Za:It,z:Lt,Ra:Rt,R:zt,Ha:Bt,Ma:Vt,Pa:Ht,ga:Ut,Ia:Wt,a:qt,Ka:Jt,I:Yt,_a:Zt,Q:Qt,ra:tn,H:an,aa:on,J:sn,Ta:cn,E:ln,ca:un,Fa:dn,L:fn,d:pn,Ca:mn,T:hn,$:gn,ya:_n,m:vn,_:yn,xa:bn,Oa:xn,Na:Sn,X:En,V:Dn,qa:On,Ja:kn,ma:An,pa:jn,la:Mn,oa:Nn,ka:Pn,na:Fn,ja:Z,ia:In,l:Ln,ta:Rn,ua:zn,va:Bn,Da:Vn,x:Un},Q=await le();Q.cb,n._creator2dVersion=Q.db,n._c2dInit=Q.eb,n._c2dInitMetal=Q.fb,n._c2dInitHeadless=Q.gb,n._c2dTickHeadless=Q.hb,n._c2dReadDrawList=Q.ib,n._c2dShutdown=Q.jb,n._c2dSetViewport=Q.kb,n._c2dSetDensity=Q.lb,n._c2dSetClearColor=Q.mb,n._c2dSetGLFramebuffer=Q.nb,n._c2dResetStateCache=Q.ob,n._c2dRender=Q.pb,n._c2dRenderMetal=Q.qb,n._c2dCreateScene=Q.rb,n._c2dDestroyScene=Q.sb,n._c2dOpenScene=Q.tb,n._c2dCloseScene=Q.ub,n._c2dSceneSetClearColor=Q.vb,n._c2dAddEntityToScene=Q.wb,n._c2dRemoveEntityFromScene=Q.xb,n._c2dSetLayerYSort=Q.yb,n._c2dCameraSetPosition=Q.zb,n._c2dCameraSetZoom=Q.Ab,n._c2dCameraSetRotation=Q.Bb,n._c2dCameraScreenToWorld=Q.Cb,n._c2dCameraWorldToScreen=Q.Db,n._c2dCreateEntity=Q.Eb,n._c2dDestroyEntity=Q.Fb,n._c2dSetParent=Q.Gb,n._c2dSetPosition=Q.Hb,n._c2dSetRotation=Q.Ib,n._c2dSetScale=Q.Jb,n._c2dSetLayer=Q.Kb,n._c2dSetZ=Q.Lb,n._c2dSetVisible=Q.Mb,n._c2dGetPosition=Q.Nb,n._c2dGetParent=Q.Ob,n._c2dGetChildCount=Q.Pb,n._c2dGetChild=Q.Qb,n._c2dGetWorldPosition=Q.Rb,n._c2dGetWorldMatrix=Q.Sb,n._c2dWorldToLocal=Q.Tb,n._c2dLocalToWorld=Q.Ub,n._c2dGetLocalTransform=Q.Vb,n._c2dPickSprite=Q.Wb,n._c2dSetSprite=Q.Xb,n._c2dSetSpriteFrame=Q.Yb,n._c2dSetSpriteFramePx=Q.Zb,n._c2dSetSpriteSize=Q._b,n._c2dSetSpriteAnchor=Q.$b,n._c2dSetSpriteColor=Q.ac,n._c2dSetSpriteOpacity=Q.bc,n._c2dSetSpriteFlip=Q.cc,n._c2dSetDefaultFilter=Q.dc,n._c2dBulkSetPositions=Q.ec,n._c2dCreateTexture=Q.fc,n._c2dCreateTextureFromRGBA=Q.gc,n._c2dUpdateTextureFromRGBA=Q.hc,n._c2dGetTextureWidth=Q.ic,n._c2dGetTextureHeight=Q.jc,n._c2dDestroyTexture=Q.kc,n._c2dDefineAnimation=Q.lc,n._c2dPlayAnimation=Q.mc,n._c2dStopAnimation=Q.nc,n._c2dSetAnimationSpeed=Q.oc,n._c2dGetAnimationFrame=Q.pc,n._c2dCreateTilemap=Q.qc,n._c2dSetTile=Q.rc,n._free=Q.sc;var Gn=n._malloc=Q.tc;n._c2dPhysicsHasSupport=Q.uc,n._c2dSetInterpolation=Q.vc,n._c2dPhysicsConfigure=Q.wc,n._c2dPhysicsCreateBody=Q.xc,n._c2dPhysicsRemoveBody=Q.yc,n._c2dPhysicsAddBox=Q.zc,n._c2dPhysicsAddCircle=Q.Ac,n._c2dPhysicsAddCapsule=Q.Bc,n._c2dPhysicsAddSegment=Q.Cc,n._c2dPhysicsAddPolygon=Q.Dc,n._c2dPhysicsSetLinearVelocity=Q.Ec,n._c2dPhysicsGetLinearVelocity=Q.Fc,n._c2dPhysicsSetAngularVelocity=Q.Gc,n._c2dPhysicsApplyLinearImpulse=Q.Hc,n._c2dPhysicsApplyForce=Q.Ic,n._c2dPhysicsSetTransform=Q.Jc,n._c2dPhysicsSetFixedRotation=Q.Kc,n._c2dPhysicsSetGravityScale=Q.Lc,n._c2dPhysicsSetLinearDamping=Q.Mc,n._c2dPhysicsSetBullet=Q.Nc,n._c2dPhysicsSetEnabled=Q.Oc,n._c2dPhysicsRaycastClosest=Q.Pc,n._c2dPhysicsOverlapPoint=Q.Qc;function $(){if(k>0){A=$;return}if(D(),k>0){A=$;return}function e(){n.calledRun=!0,!g&&(O(),r(n),n.onRuntimeInitialized?.(),ee())}n.setStatus?(n.setStatus(`Running...`),setTimeout(()=>{setTimeout(()=>n.setStatus(``),1),e()},1)):e()}function Kn(){if(n.preInit)for(typeof n.preInit==`function`&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.shift()()}return Kn(),$(),t=a,t}),n=`/assets/creator2d-zNxn9uSj.wasm`,r=async(r,i={},a)=>{let o=await fetch(n).then(e=>e.arrayBuffer()),s={alpha:!1,depth:!0,stencil:!0,antialias:!1,premultipliedAlpha:!1,desynchronized:!1,powerPreference:`high-performance`,failIfMajorPerformanceCaveat:!1,majorVersion:2,minorVersion:0},c=r.getContext(`webgl2`,s);window.creator2d_glContext=c,window.creator2d_glOptions=s;let l=await t({wasmBinary:o,canvas:r});l._c2dInit(),i.linearFilter&&l._c2dSetDefaultFilter(!0),l._c2dSetViewport(r.width,r.height);let u=(e,t)=>{let n=l._malloc(e.length*4);l.HEAPF32.set(e,n/4);try{return t(n)}finally{l._free(n)}},d=l._malloc(32),f=new Float32Array(8),p=(e,t)=>{t(d);let n=d>>2,r=l.HEAPF32;for(let t=0;t<e;t++)f[t]=r[n+t];return f},m=new Set,h=!1,g=0,_=e=>{if(!h)return;let t=g===0?0:Math.min(.05,(e-g)/1e3);g=e;for(let e of m)e(t);l._c2dRender(e),requestAnimationFrame(_)},v=()=>{h||(h=!0,g=0,r.style.display=`block`,requestAnimationFrame(_))},y=()=>{h=!1},b=null,x=new Set,S=e=>{let t=r.getBoundingClientRect();return[e.clientX-t.left,e.clientY-t.top]},C=e=>{if(!b)return;x.add(e.pointerId);try{r.setPointerCapture(e.pointerId)}catch{}let[t,n]=S(e);b(0,e.pointerId,t,n)},w=e=>{if(!b||!x.has(e.pointerId))return;let[t,n]=S(e);b(1,e.pointerId,t,n)},T=e=>{if(!b||!x.delete(e.pointerId))return;let[t,n]=S(e);b(2,e.pointerId,t,n)},E=e=>{if(!b||!x.delete(e.pointerId))return;let[t,n]=S(e);b(3,e.pointerId,t,n)},D=!1,O=e=>{e!==D&&(D=e,e?(r.addEventListener(`pointerdown`,C),window.addEventListener(`pointermove`,w),window.addEventListener(`pointerup`,T),window.addEventListener(`pointercancel`,E)):(r.removeEventListener(`pointerdown`,C),window.removeEventListener(`pointermove`,w),window.removeEventListener(`pointerup`,T),window.removeEventListener(`pointercancel`,E)))};return{backend:`sokol`,subBackend:`webgl`,version:()=>l._creator2dVersion(),render:e=>l._c2dRender(e),onUpdate:e=>{m.add(e)},offUpdate:e=>{m.delete(e)},setOnAnimEvent:e=>{l.onAnimEvent=(t,n,r)=>e({entityId:t,clipId:n,type:r})},setEarlyUpdate:e=>{l.onEarlyUpdate=e},setLateUpdate:e=>{l.onLateUpdate=e},setOnPointer:e=>{b=e,O(!0)},setClearColor:(e,t,n,r)=>l._c2dSetClearColor(e,t,n,r),createScene:()=>l._c2dCreateScene(),destroyScene:e=>l._c2dDestroyScene(e),openScene:e=>{l._c2dOpenScene(e),v()},closeScene:()=>{l._c2dCloseScene(),y(),r.style.display=`none`},sceneSetClearColor:(e,t,n,r,i)=>l._c2dSceneSetClearColor(e,t,n,r,i),addEntityToScene:(e,t)=>l._c2dAddEntityToScene(e,t),removeEntityFromScene:(e,t)=>l._c2dRemoveEntityFromScene(e,t),setLayerYSort:(e,t,n)=>l._c2dSetLayerYSort(e,t,n),cameraSetPosition:(e,t,n)=>l._c2dCameraSetPosition(e,t,n),cameraSetZoom:(e,t)=>l._c2dCameraSetZoom(e,t),cameraSetRotation:(e,t)=>l._c2dCameraSetRotation(e,t),cameraScreenToWorld:(e,t,n)=>p(2,r=>l._c2dCameraScreenToWorld(e,t,n,r)),cameraWorldToScreen:(e,t,n)=>p(2,r=>l._c2dCameraWorldToScreen(e,t,n,r)),createEntity:()=>l._c2dCreateEntity(),destroyEntity:e=>l._c2dDestroyEntity(e),setPosition:(e,t,n)=>l._c2dSetPosition(e,t,n),setRotation:(e,t)=>l._c2dSetRotation(e,t),setScale:(e,t,n)=>l._c2dSetScale(e,t,n),setLayer:(e,t)=>l._c2dSetLayer(e,t),setZ:(e,t)=>l._c2dSetZ(e,t),setVisible:(e,t)=>l._c2dSetVisible(e,t),getPosition:e=>p(2,t=>l._c2dGetPosition(e,t)),setParent:(e,t,n)=>l._c2dSetParent(e,t,n),getParent:e=>l._c2dGetParent(e),getChildCount:e=>l._c2dGetChildCount(e),getChild:(e,t)=>l._c2dGetChild(e,t),getWorldPosition:e=>p(2,t=>l._c2dGetWorldPosition(e,t)),getWorldMatrix:e=>p(6,t=>l._c2dGetWorldMatrix(e,t)),worldToLocal:(e,t,n)=>p(2,r=>l._c2dWorldToLocal(e,t,n,r)),localToWorld:(e,t,n)=>p(2,r=>l._c2dLocalToWorld(e,t,n,r)),getLocalTransform:e=>p(5,t=>l._c2dGetLocalTransform(e,t)),setSprite:(e,t)=>l._c2dSetSprite(e,t),setSpriteFrame:(e,t,n,r,i)=>l._c2dSetSpriteFrame(e,t,n,r,i),setSpriteFramePx:(e,t,n,r,i)=>l._c2dSetSpriteFramePx(e,t,n,r,i),setSpriteSize:(e,t,n)=>l._c2dSetSpriteSize(e,t,n),setSpriteAnchor:(e,t,n)=>l._c2dSetSpriteAnchor(e,t,n),setSpriteColor:(e,t,n,r)=>l._c2dSetSpriteColor(e,t,n,r),setSpriteOpacity:(e,t)=>l._c2dSetSpriteOpacity(e,t),setSpriteFlip:(e,t,n)=>l._c2dSetSpriteFlip(e,t,n),createTexture:(t,n,r)=>{try{let i=e(t),a=new Uint8Array(i),o=l._malloc(a.length);l.HEAPU8.set(a,o);let s=l._c2dCreateTexture(o,a.length);if(l._free(o),s===0){r(Error(`creator-2d: texture decode failed`));return}n(s,l._c2dGetTextureWidth(s),l._c2dGetTextureHeight(s))}catch(e){r(e)}},getTextureWidth:e=>l._c2dGetTextureWidth(e),getTextureHeight:e=>l._c2dGetTextureHeight(e),destroyTexture:e=>l._c2dDestroyTexture(e),setDefaultFilter:e=>l._c2dSetDefaultFilter(e),createTextureFromCanvas:e=>{let t=a?.readSurface(e);if(!t)return 0;let n=new Uint8Array(t.data.buffer,t.data.byteOffset,t.data.byteLength),r=l._malloc(n.length);l.HEAPU8.set(n,r);let i=l._c2dCreateTextureFromRGBA(r,t.width,t.height);return l._free(r),i},updateTextureFromCanvas:(e,t)=>{let n=a?.readSurface(t);if(!n)return;let r=new Uint8Array(n.data.buffer,n.data.byteOffset,n.data.byteLength),i=l._malloc(r.length);l.HEAPU8.set(r,i),l._c2dUpdateTextureFromRGBA(e,i,n.width,n.height),l._free(i)},defineAnimation:(e,t,n,r)=>u(t,i=>l._c2dDefineAnimation(e,i,t.length/4,n,r)),playAnimation:(e,t)=>l._c2dPlayAnimation(e,t),stopAnimation:e=>l._c2dStopAnimation(e),setAnimationSpeed:(e,t)=>l._c2dSetAnimationSpeed(e,t),getAnimationFrame:e=>l._c2dGetAnimationFrame(e),createTilemap:(e,t,n,r,i,a,o,s)=>{let c=l._malloc(s.length*4);l.HEAPU32.set(new Uint32Array(s.buffer,s.byteOffset,s.length),c/4);let u=l._c2dCreateTilemap(e,t,n,r,i,a,o,c);return l._free(c),u},setTile:(e,t,n,r)=>l._c2dSetTile(e,t,n,r),bulkSetPositions:(e,t,n)=>{let r=l._malloc(e.length*4),i=l._malloc(t.length*4);l.HEAPU32.set(e,r/4),l.HEAPF32.set(t,i/4),l._c2dBulkSetPositions(r,i,n),l._free(r),l._free(i)},physicsHasSupport:()=>!!l._c2dPhysicsHasSupport&&!!l._c2dPhysicsHasSupport(),physicsConfigure:(e,t,n,r)=>l._c2dPhysicsConfigure(e,t,n,r),setInterpolation:e=>l._c2dSetInterpolation?.(e),setOnPhysicsEvent:e=>{l.onPhysicsEvent=e},physicsCreateBody:(e,t)=>l._c2dPhysicsCreateBody(e,t),physicsRemoveBody:e=>l._c2dPhysicsRemoveBody(e),physicsAddBox:(e,t,n,r,i,a,o,s,c)=>l._c2dPhysicsAddBox(e,t,n,r,i,a,o,s,c),physicsAddCircle:(e,t,n,r,i,a,o,s)=>l._c2dPhysicsAddCircle(e,t,n,r,i,a,o,s),physicsAddCapsule:(e,t,n,r,i,a,o,s,c,u)=>l._c2dPhysicsAddCapsule(e,t,n,r,i,a,o,s,c,u),physicsAddSegment:(e,t,n,r,i,a,o)=>l._c2dPhysicsAddSegment(e,t,n,r,i,a,o),physicsAddPolygon:(e,t,n,r,i,a,o)=>u(t,t=>l._c2dPhysicsAddPolygon(e,t,n,r,i,a,o)),physicsSetLinearVelocity:(e,t,n)=>l._c2dPhysicsSetLinearVelocity(e,t,n),physicsGetLinearVelocity:e=>p(2,t=>l._c2dPhysicsGetLinearVelocity(e,t)),physicsSetAngularVelocity:(e,t)=>l._c2dPhysicsSetAngularVelocity(e,t),physicsApplyLinearImpulse:(e,t,n)=>l._c2dPhysicsApplyLinearImpulse(e,t,n),physicsApplyForce:(e,t,n)=>l._c2dPhysicsApplyForce(e,t,n),physicsSetTransform:(e,t,n,r)=>l._c2dPhysicsSetTransform(e,t,n,r),physicsSetFixedRotation:(e,t)=>l._c2dPhysicsSetFixedRotation(e,t),physicsSetGravityScale:(e,t)=>l._c2dPhysicsSetGravityScale(e,t),physicsSetLinearDamping:(e,t)=>l._c2dPhysicsSetLinearDamping(e,t),physicsSetBullet:(e,t)=>l._c2dPhysicsSetBullet(e,t),physicsSetEnabled:(e,t)=>l._c2dPhysicsSetEnabled(e,t),physicsRaycastClosest:(e,t,n,r)=>p(7,i=>l._c2dPhysicsRaycastClosest(e,t,n,r,i)),physicsOverlapPoint:(e,t)=>l._c2dPhysicsOverlapPoint(e,t),pickSprite:(e,t,n)=>l._c2dPickSprite(e,t,n),_onResize(e,t){r.width=e,r.height=t,l._c2dSetViewport(e,t)},_dispose(){y(),O(!1),b=null,l._c2dCloseScene();try{l._c2dShutdown()}catch{}c.getExtension(`WEBGL_lose_context`)?.loseContext(),window.creator2d_glContext===c&&(window.creator2d_glContext=null,window.creator2d_glOptions=null)}}};export{r as createViewer2d};
|