nodehammer-web 0.2.0rc3__py3-none-any.whl

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.
@@ -0,0 +1,154 @@
1
+ var h;h||=typeof Module != 'undefined' ? Module : {};var aa=!!globalThis.window,ba=!!globalThis.WorkerGlobalScope,ca=globalThis.process?.versions?.node&&"renderer"!=globalThis.process?.type,da=[],ea="./this.program",fa=(a,b)=>{throw b;},ha=globalThis.document?.currentScript?.src;"undefined"!=typeof __filename?ha=__filename:ba&&(ha=self.location.href);var ia="",ja,ka;
2
+ if(ca){var fs=require("node:fs");ia=__dirname+"/";ka=a=>{a=la(a)?new URL(a):a;return fs.readFileSync(a)};ja=async a=>{a=la(a)?new URL(a):a;return fs.readFileSync(a,void 0)};1<process.argv.length&&(ea=process.argv[1].replace(/\\/g,"/"));da=process.argv.slice(2);"undefined"!=typeof module&&(module.exports=h);fa=(a,b)=>{process.exitCode=a;throw b;}}else if(aa||ba){try{ia=(new URL(".",ha)).href}catch{}ba&&(ka=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)});
3
+ ja=async a=>{if(la(a))return new Promise((c,d)=>{var e=new XMLHttpRequest;e.open("GET",a,!0);e.responseType="arraybuffer";e.onload=()=>{200==e.status||0==e.status&&e.response?c(e.response):d(e.status)};e.onerror=d;e.send(null)});var b=await fetch(a,{credentials:"same-origin"});if(b.ok)return b.arrayBuffer();throw Error(b.status+" : "+b.url);}}var ma=console.log.bind(console),na=console.error.bind(console),oa,qa=!1,ra,la=a=>a.startsWith("file://"),sa=!1;
4
+ function ta(){var a=ua.buffer;k=new Int8Array(a);t=new Int16Array(a);h.HEAPU8=u=new Uint8Array(a);va=new Uint16Array(a);w=new Int32Array(a);y=new Uint32Array(a);wa=new Float32Array(a);z=new Float64Array(a);B=new BigInt64Array(a);new BigUint64Array(a)}function D(a){h.onAbort?.(a);a=`Aborted(${a})`;na(a);qa=!0;a+=". Build with -sASSERTIONS for more info.";sa&&xa();throw new WebAssembly.RuntimeError(a);}var ya;
5
+ async function za(a){if(!oa)try{var b=await ja(a);return new Uint8Array(b)}catch{}if(a==ya&&oa)a=new Uint8Array(oa);else if(ka)a=ka(a);else throw"both async and sync fetching of the wasm failed";return a}async function Aa(a,b){try{var c=await za(a);return await WebAssembly.instantiate(c,b)}catch(d){na(`failed to asynchronously prepare wasm: ${d}`),D(d)}}
6
+ async function Ba(a){var b=ya;if(!oa&&!la(b)&&!ca)try{var c=fetch(b,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(c,a)}catch(d){na(`wasm streaming compile failed: ${d}`),na("falling back to ArrayBuffer instantiation")}return Aa(b,a)}class Ca{name="ExitStatus";constructor(a){this.message=`Program terminated with exit(${a})`;this.status=a}}
7
+ var t,w,B,k,wa,z,va,y,u,Da=a=>{for(;0<a.length;)a.shift()(h)},Ea=[],Fa=[],Ga=()=>{var a=h.preRun.shift();Fa.push(a)},Ha=0,Ia=null,Ja=()=>{Ha--;h.monitorRunDependencies?.(Ha);if(0==Ha&&Ia){var a=Ia;Ia=null;a()}},Ka=()=>{Ha++;h.monitorRunDependencies?.(Ha)},La=!0,Ma=(a,b)=>{for(var c=0,d=a.length-1;0<=d;d--){var e=a[d];"."===e?a.splice(d,1):".."===e?(a.splice(d,1),c++):c&&(a.splice(d,1),c--)}if(b)for(;c;c--)a.unshift("..");return a},Na=a=>{var b="/"===a.charAt(0),c="/"===a.slice(-1);(a=Ma(a.split("/").filter(d=>
8
+ !!d),!b).join("/"))||b||(a=".");a&&c&&(a+="/");return(b?"/":"")+a},Oa=a=>{var b=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(a).slice(1);a=b[0];b=b[1];if(!a&&!b)return".";b&&=b.slice(0,-1);return a+b},Pa=a=>a&&a.match(/([^\/]+|\/)\/*$/)[1],Ra=()=>{if(ca){var a=require("node:crypto");return b=>a.randomFillSync(b)}return b=>(crypto.getRandomValues(b),0)},Ta=a=>(Ta=Ra())(a),Ua=(...a)=>{for(var b="",c=!1,d=a.length-1;-1<=d&&!c;d--){c=0<=d?a[d]:"/";if("string"!=typeof c)throw new TypeError("Arguments to path.resolve must be strings");
9
+ if(!c)return"";b=c+"/"+b;c="/"===c.charAt(0)}b=Ma(b.split("/").filter(e=>!!e),!c).join("/");return(c?"/":"")+b||"."},Va=(a,b)=>{function c(g){for(var m=0;m<g.length&&""===g[m];m++);for(var n=g.length-1;0<=n&&""===g[n];n--);return m>n?[]:g.slice(m,n-m+1)}a=Ua(a).slice(1);b=Ua(b).slice(1);a=c(a.split("/"));b=c(b.split("/"));for(var d=Math.min(a.length,b.length),e=d,f=0;f<d;f++)if(a[f]!==b[f]){e=f;break}d=[];for(f=e;f<a.length;f++)d.push("..");d=d.concat(b.slice(e));return d.join("/")},Wa=new TextDecoder,
10
+ Xa=(a,b,c)=>{for(c=b+c;a[b]&&!(b>=c);)++b;return b},Ya=a=>{var b=Xa(a,0);return Wa.decode(a.buffer?a.subarray(0,b):new Uint8Array(a.slice(0,b)))},Za=[],$a=a=>{for(var b=0,c=0;c<a.length;++c){var d=a.charCodeAt(c);127>=d?b++:2047>=d?b+=2:55296<=d&&57343>=d?(b+=4,++c):b+=3}return b},G=(a,b,c,d)=>{if(!(0<d))return 0;var e=c;d=c+d-1;for(var f=0;f<a.length;++f){var g=a.codePointAt(f);if(127>=g){if(c>=d)break;b[c++]=g}else if(2047>=g){if(c+1>=d)break;b[c++]=192|g>>6;b[c++]=128|g&63}else if(65535>=g){if(c+
11
+ 2>=d)break;b[c++]=224|g>>12;b[c++]=128|g>>6&63;b[c++]=128|g&63}else{if(c+3>=d)break;b[c++]=240|g>>18;b[c++]=128|g>>12&63;b[c++]=128|g>>6&63;b[c++]=128|g&63;f++}}b[c]=0;return c-e},ab=a=>{var b=Array($a(a)+1);a=G(a,b,0,b.length);b.length=a;return b},bb=[];function cb(a,b){bb[a]={input:[],output:[],ad:b};db(a,eb)}
12
+ var eb={open(a){var b=bb[a.node.rdev];if(!b)throw new H(43);a.tty=b;a.seekable=!1},close(a){a.tty.ad.fsync(a.tty)},fsync(a){a.tty.ad.fsync(a.tty)},read(a,b,c,d){if(!a.tty||!a.tty.ad.Od)throw new H(60);for(var e=0,f=0;f<d;f++){try{var g=a.tty.ad.Od(a.tty)}catch(m){throw new H(29);}if(void 0===g&&0===e)throw new H(6);if(null===g||void 0===g)break;e++;b[c+f]=g}e&&(a.node.atime=Date.now());return e},write(a,b,c,d){if(!a.tty||!a.tty.ad.Bd)throw new H(60);try{for(var e=0;e<d;e++)a.tty.ad.Bd(a.tty,b[c+e])}catch(f){throw new H(29);
13
+ }d&&(a.node.mtime=a.node.ctime=Date.now());return e}},fb={Od(){a:{if(!Za.length){var a=null;if(ca){var b=Buffer.alloc(256),c=0,d=process.stdin.fd;try{c=fs.readSync(d,b,0,256)}catch(e){if(e.toString().includes("EOF"))c=0;else throw e;}0<c&&(a=b.slice(0,c).toString("utf-8"))}else globalThis.window?.prompt&&(a=window.prompt("Input: "),null!==a&&(a+="\n"));if(!a){a=null;break a}Za=ab(a)}a=Za.shift()}return a},Bd(a,b){null===b||10===b?(ma(Ya(a.output)),a.output=[]):0!=b&&a.output.push(b)},fsync(a){0<a.output?.length&&
14
+ (ma(Ya(a.output)),a.output=[])},ge(){return{ue:25856,we:5,te:191,ve:35387,se:[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]}},he(){return 0},ie(){return[24,80]}},gb={Bd(a,b){null===b||10===b?(na(Ya(a.output)),a.output=[]):0!=b&&a.output.push(b)},fsync(a){0<a.output?.length&&(na(Ya(a.output)),a.output=[])}},J={Vc:null,Sc(){return J.createNode(null,"/",16895,0)},createNode(a,b,c,d){if(24576===(c&61440)||4096===(c&61440))throw new H(63);J.Vc||(J.Vc={dir:{node:{Zc:J.sc.Zc,
15
+ Wc:J.sc.Wc,lookup:J.sc.lookup,jd:J.sc.jd,rename:J.sc.rename,unlink:J.sc.unlink,rmdir:J.sc.rmdir,readdir:J.sc.readdir,symlink:J.sc.symlink},stream:{Uc:J.tc.Uc}},file:{node:{Zc:J.sc.Zc,Wc:J.sc.Wc},stream:{Uc:J.tc.Uc,read:J.tc.read,write:J.tc.write,xd:J.tc.xd,Sd:J.tc.Sd}},link:{node:{Zc:J.sc.Zc,Wc:J.sc.Wc,readlink:J.sc.readlink},stream:{}},Md:{node:{Zc:J.sc.Zc,Wc:J.sc.Wc},stream:hb}});c=ib(a,b,c,d);M(c.mode)?(c.sc=J.Vc.dir.node,c.tc=J.Vc.dir.stream,c.uc={}):32768===(c.mode&61440)?(c.sc=J.Vc.file.node,
16
+ c.tc=J.Vc.file.stream,c.Cc=0,c.uc=J.ee??(J.ee=new Uint8Array(0))):40960===(c.mode&61440)?(c.sc=J.Vc.link.node,c.tc=J.Vc.link.stream):8192===(c.mode&61440)&&(c.sc=J.Vc.Md.node,c.tc=J.Vc.Md.stream);c.atime=c.mtime=c.ctime=Date.now();a&&(a.uc[b]=c,a.atime=a.mtime=a.ctime=c.atime);return c},sc:{Zc(a){var b={};b.dev=8192===(a.mode&61440)?a.id:1;b.ino=a.id;b.mode=a.mode;b.nlink=1;b.uid=0;b.gid=0;b.rdev=a.rdev;M(a.mode)?b.size=4096:32768===(a.mode&61440)?b.size=a.Cc:40960===(a.mode&61440)?b.size=a.link.length:
17
+ b.size=0;b.atime=new Date(a.atime);b.mtime=new Date(a.mtime);b.ctime=new Date(a.ctime);b.blksize=4096;b.blocks=Math.ceil(b.size/b.blksize);return b},Wc(a,b){for(var c of["mode","atime","mtime","ctime"])null!=b[c]&&(a[c]=b[c]);void 0!==b.size&&(b=b.size,a.Cc!=b&&(c=a.uc,a.uc=new Uint8Array(b),a.uc.set(c.subarray(0,Math.min(b,a.Cc))),a.Cc=b))},lookup(){J.qd||(J.qd=new H(44),J.qd.stack="<generic error, no stack>");throw J.qd;},jd(a,b,c,d){return J.createNode(a,b,c,d)},rename(a,b,c){try{var d=jb(b,c)}catch(f){}if(d){if(M(a.mode))for(var e in d.uc)throw new H(55);
18
+ kb(d)}delete a.parent.uc[a.name];b.uc[c]=a;a.name=c;b.ctime=b.mtime=a.parent.ctime=a.parent.mtime=Date.now()},unlink(a,b){delete a.uc[b];a.ctime=a.mtime=Date.now()},rmdir(a,b){var c=jb(a,b),d;for(d in c.uc)throw new H(55);delete a.uc[b];a.ctime=a.mtime=Date.now()},readdir(a){return[".","..",...Object.keys(a.uc)]},symlink(a,b,c){a=J.createNode(a,b,41471,0);a.link=c;return a},readlink(a){if(40960!==(a.mode&61440))throw new H(28);return a.link}},tc:{read(a,b,c,d,e){if(e>=a.node.Cc)return 0;d=Math.min(a.node.Cc-
19
+ e,d);b.set(a.node.uc.subarray(e,e+d),c);return d},write(a,b,c,d,e,f){b.buffer===k.buffer&&(f=!1);if(!d)return 0;a=a.node;a.mtime=a.ctime=Date.now();if(f)a.uc=b.subarray(c,c+d),a.Cc=d;else if(0===a.Cc&&0===e)a.uc=b.slice(c,c+d),a.Cc=d;else{f=e+d;var g=a.uc.length;g>=f||(f=Math.max(f,g*(1048576>g?2:1.125)>>>0),g&&(f=Math.max(f,256)),g=a.uc.subarray(0,a.Cc),a.uc=new Uint8Array(f),a.uc.set(g));a.uc.set(b.subarray(c,c+d),e);a.Cc=Math.max(a.Cc,e+d)}return d},Uc(a,b,c){1===c?b+=a.position:2===c&&32768===
20
+ (a.node.mode&61440)&&(b+=a.node.Cc);if(0>b)throw new H(28);return b},xd(a,b,c,d,e){if(32768!==(a.node.mode&61440))throw new H(43);a=a.node.uc;if(e&2||a.buffer!==k.buffer){d=!0;D();e=void 0;if(!e)throw new H(48);if(a){if(0<c||c+b<a.length)a.subarray?a=a.subarray(c,c+b):a=Array.prototype.slice.call(a,c,c+b);k.set(a,e)}}else d=!1,e=a.byteOffset;return{Le:e,ed:d}},Sd(a,b,c,d){J.tc.write(a,b,0,d,c,!1);return 0}}},lb=(a,b)=>{var c=0;a&&(c|=365);b&&(c|=146);return c},mb=async a=>{a=await ja(a);return new Uint8Array(a)},
21
+ nb=[],ob=async(a,b)=>{"undefined"!=typeof Browser&&Browser.He();for(var c of nb)if(c.canHandle(b))return c.handle(a,b);return a},pb=null,qb={},rb=[],sb=1,tb=null,ub=!1,vb=!0,H=class{name="ErrnoError";constructor(a){this.Bc=a}},wb=class{Fc={};node=null;get flags(){return this.Fc.flags}set flags(a){this.Fc.flags=a}get position(){return this.Fc.position}set position(a){this.Fc.position=a}},xb=class{sc={};tc={};dd=null;constructor(a,b,c,d){a||=this;this.parent=a;this.Sc=a.Sc;this.id=sb++;this.name=b;
22
+ this.mode=c;this.rdev=d;this.atime=this.mtime=this.ctime=Date.now()}get read(){return 365===(this.mode&365)}set read(a){a?this.mode|=365:this.mode&=-366}get write(){return 146===(this.mode&146)}set write(a){a?this.mode|=146:this.mode&=-147}get ke(){return M(this.mode)}get je(){return 8192===(this.mode&61440)}};
23
+ function N(a,b={}){if(!a)throw new H(44);b.sd??(b.sd=!0);"/"===a.charAt(0)||(a="//"+a);var c=0;a:for(;40>c;c++){a=a.split("/").filter(m=>!!m);for(var d=pb,e="/",f=0;f<a.length;f++){var g=f===a.length-1;if(g&&b.parent)break;if("."!==a[f])if(".."===a[f])if(e=Oa(e),d===d.parent){a=e+"/"+a.slice(f+1).join("/");c--;continue a}else d=d.parent;else{e=Na(e+"/"+a[f]);try{d=jb(d,a[f])}catch(m){if(44===m?.Bc&&g&&b.me)return{path:e};throw m;}!d.dd||g&&!b.sd||(d=d.dd.root);if(40960===(d.mode&61440)&&(!g||b.hd)){if(!d.sc.readlink)throw new H(52);
24
+ d=d.sc.readlink(d);"/"===d.charAt(0)||(d=Oa(e)+"/"+d);a=d+"/"+a.slice(f+1).join("/");continue a}}}return{path:e,node:d}}throw new H(32);}function yb(a){for(var b;;){if(a===a.parent)return a=a.Sc.Rd,b?"/"!==a[a.length-1]?`${a}/${b}`:a+b:a;b=b?`${a.name}/${b}`:a.name;a=a.parent}}function zb(a,b){for(var c=0,d=0;d<b.length;d++)c=(c<<5)-c+b.charCodeAt(d)|0;return(a+c>>>0)%tb.length}function Ab(a){var b=zb(a.parent.id,a.name);a.gd=tb[b];tb[b]=a}
25
+ function kb(a){var b=zb(a.parent.id,a.name);if(tb[b]===a)tb[b]=a.gd;else for(b=tb[b];b;){if(b.gd===a){b.gd=a.gd;break}b=b.gd}}function jb(a,b){var c=M(a.mode)?(c=Bb(a,"x"))?c:a.sc.lookup?0:2:54;if(c)throw new H(c);for(c=tb[zb(a.id,b)];c;c=c.gd){var d=c.name;if(c.parent.id===a.id&&d===b)return c}return a.sc.lookup(a,b)}function ib(a,b,c,d){a=new xb(a,b,c,d);Ab(a);return a}function M(a){return 16384===(a&61440)}
26
+ function Bb(a,b){return vb?0:b.includes("r")&&!(a.mode&292)||b.includes("w")&&!(a.mode&146)||b.includes("x")&&!(a.mode&73)?2:0}function Cb(a,b){if(!M(a.mode))return 54;try{return jb(a,b),20}catch(c){}return Bb(a,"wx")}function Db(a,b,c){try{var d=jb(a,b)}catch(e){return e.Bc}if(a=Bb(a,"wx"))return a;if(c){if(!M(d.mode))return 54;if(d===d.parent||"/"===yb(d))return 10}else if(M(d.mode))return 31;return 0}function Eb(a){if(!a)throw new H(63);return a}
27
+ function Fb(a){a=rb[a];if(!a)throw new H(8);return a}function Gb(a,b=-1){a=Object.assign(new wb,a);if(-1==b)a:{for(b=0;4096>=b;b++)if(!rb[b])break a;throw new H(33);}a.fd=b;return rb[b]=a}function Hb(a,b=-1){a=Gb(a,b);a.tc?.De?.(a);return a}function Ib(a,b){var c=null?.tc.Wc,d=c?null:a;c??=a.sc.Wc;Eb(c);c(d,b)}var hb={open(a){a.tc=qb[a.node.rdev].tc;a.tc.open?.(a)},Uc(){throw new H(70);}};function db(a,b){qb[a]={tc:b}}
28
+ function Jb(a,b){var c="/"===b;if(c&&pb)throw new H(10);if(!c&&b){var d=N(b,{sd:!1});b=d.path;d=d.node;if(d.dd)throw new H(10);if(!M(d.mode))throw new H(54);}b={type:a,Je:{},Rd:b,le:[]};a=a.Sc(b);a.Sc=b;b.root=a;c?pb=a:d&&(d.dd=b,d.Sc&&d.Sc.le.push(b))}function Kb(a,b,c){var d=N(a,{parent:!0}).node;a=Pa(a);if(!a)throw new H(28);if("."===a||".."===a)throw new H(20);var e=Cb(d,a);if(e)throw new H(e);if(!d.sc.jd)throw new H(63);return d.sc.jd(d,a,b,c)}
29
+ function Lb(a,b=438){return Kb(a,b&4095|32768,0)}function Mb(a){return Kb(a,16895,0)}function Nb(a,b,c){"undefined"==typeof c&&(c=b,b=438);return Kb(a,b|8192,c)}function Ob(a,b){if(!Ua(a))throw new H(44);var c=N(b,{parent:!0}).node;if(!c)throw new H(44);b=Pa(b);var d=Cb(c,b);if(d)throw new H(d);if(!c.sc.symlink)throw new H(63);c.sc.symlink(c,b,a)}
30
+ function Pb(a){var b=N(a,{parent:!0}).node;a=Pa(a);var c=jb(b,a),d=Db(b,a,!0);if(d)throw new H(d);if(!b.sc.rmdir)throw new H(63);if(c.dd)throw new H(10);b.sc.rmdir(b,a);kb(c)}function Qb(a){var b=N(a,{parent:!0}).node;if(!b)throw new H(44);a=Pa(a);var c=jb(b,a),d=Db(b,a,!1);if(d)throw new H(d);if(!b.sc.unlink)throw new H(63);if(c.dd)throw new H(10);b.sc.unlink(b,a);kb(c)}function Rb(a,b){a="string"==typeof a?N(a,{hd:!0}).node:a;Ib(a,{mode:b&4095|a.mode&-4096,ctime:Date.now(),Ce:void 0})}
31
+ function Sb(a,b,c=438){if(""===a)throw new H(44);if("string"==typeof b){var d={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[b];if("undefined"==typeof d)throw Error(`Unknown file open mode: ${b}`);b=d}c=b&64?c&4095|32768:0;if("object"==typeof a)d=a;else{var e=a.endsWith("/");var f=N(a,{hd:!(b&131072),me:!0});d=f.node;a=f.path}f=!1;if(b&64)if(d){if(b&128)throw new H(20);}else{if(e)throw new H(31);d=Kb(a,c|511,0);f=!0}if(!d)throw new H(44);8192===(d.mode&61440)&&(b&=-513);if(b&65536&&!M(d.mode))throw new H(54);
32
+ if(!f&&(d?40960===(d.mode&61440)?e=32:(e=["r","w","rw"][b&3],b&512&&(e+="w"),e=M(d.mode)&&("r"!==e||b&576)?31:Bb(d,e)):e=44,e))throw new H(e);if(b&512&&!f){e=d;e="string"==typeof e?N(e,{hd:!0}).node:e;if(M(e.mode))throw new H(31);if(32768!==(e.mode&61440))throw new H(28);if(a=Bb(e,"w"))throw new H(a);Ib(e,{size:0,timestamp:Date.now()})}b=Gb({node:d,path:yb(d),flags:b&-131713,seekable:!0,position:0,tc:d.tc,oe:[],error:!1});b.tc.open&&b.tc.open(b);f&&Rb(d,c&511);return b}
33
+ function Tb(a){if(null===a.fd)throw new H(8);a.ud&&(a.ud=null);try{a.tc.close&&a.tc.close(a)}catch(b){throw b;}finally{rb[a.fd]=null}a.fd=null}function Ub(a,b,c){if(null===a.fd)throw new H(8);if(!a.seekable||!a.tc.Uc)throw new H(70);if(0!=c&&1!=c&&2!=c)throw new H(28);a.position=a.tc.Uc(a,b,c);a.oe=[]}
34
+ function Vb(a,b,c,d,e,f){if(0>d||0>e)throw new H(28);if(null===a.fd)throw new H(8);if(0===(a.flags&2097155))throw new H(8);if(M(a.node.mode))throw new H(31);if(!a.tc.write)throw new H(28);a.seekable&&a.flags&1024&&Ub(a,0,2);var g="undefined"!=typeof e;if(!g)e=a.position;else if(!a.seekable)throw new H(70);b=a.tc.write(a,b,c,d,e,f);g||(a.position+=b);return b}
35
+ function Wb(a,b){a="string"==typeof a?a:yb(a);for(b=b.split("/").reverse();b.length;){var c=b.pop();if(c){var d=Na(a+"/"+c);try{Mb(d)}catch(e){if(20!=e.Bc)throw e;}a=d}}return d}function Xb(a,b,c,d){a=Na(("string"==typeof a?a:yb(a))+"/"+b);return Lb(a,lb(c,d))}function Yb(a,b,c,d,e,f){var g=b;a&&(a="string"==typeof a?a:yb(a),g=b?Na(a+"/"+b):a);a=lb(d,e);g=Lb(g,a);c&&("string"==typeof c&&(c=ab(c)),c.subarray||(c=new Uint8Array(c)),Rb(g,a|146),b=Sb(g,577),Vb(b,c,0,c.length,0,f),Tb(b),Rb(g,a))}
36
+ function Zb(a,b,c,d){a=Na(("string"==typeof a?a:yb(a))+"/"+b);b=lb(!!c,!!d);Zb.Qd??(Zb.Qd=64);var e=Zb.Qd++<<8|0;db(e,{open(f){f.seekable=!1},close(){d?.buffer?.length&&d(10)},read(f,g,m,n){for(var p=0,r=0;r<n;r++){try{var l=c()}catch(q){throw new H(29);}if(void 0===l&&0===p)throw new H(6);if(null===l||void 0===l)break;p++;g[m+r]=l}p&&(f.node.atime=Date.now());return p},write(f,g,m,n){for(var p=0;p<n;p++)try{d(g[m+p])}catch(r){throw new H(29);}n&&(f.node.mtime=f.node.ctime=Date.now());return p}});
37
+ return Nb(a,b,e)}function $b(a){if(!(a.je||a.ke||a.link||a.uc))if(globalThis.XMLHttpRequest)D("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.");else try{a.uc=ka(a.url)}catch(b){throw new H(29);}}
38
+ function ac(a,b,c,d,e){class f{Fd=!1;Fc=[];nd=void 0;Jd=0;Id=0;get(p){if(!(p>this.length-1||0>p)){var r=p%this.chunkSize;return this.nd(p/this.chunkSize|0)[r]}}be(p){this.nd=p}Kd(){var p=new XMLHttpRequest;p.open("HEAD",c,!1);p.send(null);200<=p.status&&300>p.status||304===p.status||D("Couldn't load "+c+". Status: "+p.status);var r=Number(p.getResponseHeader("Content-length")),l,q=(l=p.getResponseHeader("Accept-Ranges"))&&"bytes"===l;p=(l=p.getResponseHeader("Content-Encoding"))&&"gzip"===l;var v=
39
+ 1048576;q||(v=r);var x=this;x.be(C=>{var F=C*v,I=(C+1)*v-1;I=Math.min(I,r-1);if("undefined"==typeof x.Fc[C]){var Q=x.Fc;F>I&&D("invalid range ("+F+", "+I+") or no bytes requested!");I>r-1&&D("only "+r+" bytes available! programmer error!");var L=new XMLHttpRequest;L.open("GET",c,!1);r!==v&&L.setRequestHeader("Range","bytes="+F+"-"+I);L.responseType="arraybuffer";L.overrideMimeType&&L.overrideMimeType("text/plain; charset=x-user-defined");L.send(null);200<=L.status&&300>L.status||304===L.status||D("Couldn't load "+
40
+ c+". Status: "+L.status);F=void 0!==L.response?new Uint8Array(L.response||[]):ab(L.responseText||"");Q[C]=F}"undefined"==typeof x.Fc[C]&&D("doXHR failed!");return x.Fc[C]});if(p||!r)v=r=1,v=r=this.nd(0).length,ma("LazyFiles on gzip forces download of the whole file when length is accessed");this.Jd=r;this.Id=v;this.Fd=!0}get length(){this.Fd||this.Kd();return this.Jd}get chunkSize(){this.Fd||this.Kd();return this.Id}}if(globalThis.XMLHttpRequest){ba||D("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc");
41
+ var g=new f;var m=void 0}else m=c,g=void 0;var n=Xb(a,b,d,e);g?n.uc=g:m&&(n.uc=null,n.url=m);Object.defineProperties(n,{Cc:{get:function(){return this.uc.length}}});a={};for(const [p,r]of Object.entries(n.tc))a[p]=(...l)=>{$b(n);return r(...l)};a.read=(p,r,l,q,v)=>{$b(n);p=p.node.uc;if(v>=p.length)r=0;else{q=Math.min(p.length-v,q);if(p.slice)for(var x=0;x<q;x++)r[l+x]=p[v+x];else for(x=0;x<q;x++)r[l+x]=p.get(v+x);r=q}return r};a.xd=()=>{$b(n);D();throw new H(48);};n.tc=a;return n}
42
+ var O={},P=(a,b)=>a?Wa.decode(u.subarray(a,Xa(u,a,b))):"";function bc(a,b){if("/"===b.charAt(0))return b;a=-100===a?"/":Fb(a).path;if(0==b.length)throw new H(44);return a+"/"+b}
43
+ var cc=void 0,dc=()=>{var a=w[+cc>>2];cc+=4;return a},ec=0,R=a=>-9007199254740992>a||9007199254740992<a?NaN:Number(a),fc=a=>0===a%4&&(0!==a%100||0===a%400),gc=[0,31,60,91,121,152,182,213,244,274,305,335],hc=[0,31,59,90,120,151,181,212,243,273,304,334],ic={},jc=a=>{a instanceof Ca||"unwind"==a||fa(1,a)},kc=a=>{ra=a;La||0<ec||(h.onExit?.(a),qa=!0);fa(a,new Ca(a))},lc=()=>{if(!(La||0<ec))try{var a=ra;ra=a;kc(a)}catch(b){jc(b)}},mc=a=>{if(!qa)try{a()}catch(b){jc(b)}finally{lc()}},wc=(a,b)=>{nc=a;oc=b;
44
+ if(pc)if(qc||=!0,0==a)rc=function(){setTimeout(sc,Math.max(0,tc+b-performance.now())|0)};else if(1==a)rc=function(){uc(sc)};else{if(!vc)if(globalThis.setImmediate)vc=setImmediate;else{var c=[];addEventListener("message",d=>{if("setimmediate"===d.data||"setimmediate"===d.data.target)d.stopPropagation(),c.shift()()},!0);vc=d=>{c.push(d);if(ba){let e;(e=h).setImmediates??(e.setImmediates=[]);h.setImmediates.push(d);postMessage({target:"setimmediate"})}else postMessage("setimmediate","*")}}rc=function(){vc(sc)}}},
45
+ Fc=(a,b,c,d,e)=>{function f(){return g<xc?(lc(),!1):!0}pc=a;yc=d;var g=xc;qc=!1;sc=function(){if(!qa)if(0<zc.length){var m=zc.shift();m.Fe(m.pe);if(Ac){var n=Ac,p=0==n%1?n-1:Math.floor(n);Ac=m.xe?p:(8*n+(p+.5))/9}h.setStatus&&(m=h.statusMessage||"Please wait...",n=Ac??0,p=Bc.Ee??0,n?n<p?h.setStatus("{message} ({expected - remaining}/{expected})"):h.setStatus(m):h.setStatus(""));f()&&setTimeout(sc,0)}else if(f())if(Cc=Cc+1|0,1==nc&&1<oc&&0!=Cc%oc)rc();else{0==nc&&(tc=performance.now());a:if(!qa){for(m of Dc)if(!1===
46
+ m())break a;mc(a);for(n of Ec)n()}f()&&rc()}};e||(0<b?wc(0,1E3/b):wc(1,1),rc());if(c)throw"unwind";},qc=!1,rc=null,xc=0,pc=null,yc=0,nc=0,oc=0,Cc=0,zc=[],Dc=[],Ec=[];function Gc(){rc=null;xc++}var Hc=0;function uc(a){if(globalThis.requestAnimationFrame)requestAnimationFrame(a);else{var b=Date.now();if(0===Hc)Hc=b+1E3/60;else for(;b+2>=Hc;)Hc+=1E3/60;setTimeout(a,Math.max(Hc-b,0))}}
47
+ var Bc={},tc,sc,vc,Ac,Ic=[0,globalThis.document??0,globalThis.window??0],S=a=>{a=2<a?P(a):a;return Ic[a]||globalThis.document?.querySelector(a)},Jc=a=>0>Ic.indexOf(a)?a.getBoundingClientRect():{left:0,top:0};function Kc(a){var b=T.Dc[a];b.target.removeEventListener(b.Ec,b.Nd,b.Xc);T.Dc.splice(a,1)}function Lc(){if(navigator.userActivation?navigator.userActivation.isActive:T.vd&&T.de.pd){var a=T.cd;T.cd=[];for(var b of a)b.Dd(...b.Ld)}}
48
+ function Mc(a){if(!a.target)return-4;if(a.Rc)a.Nd=function(c){++T.vd;T.de=a;Lc();a.$c(c);Lc();--T.vd},a.target.addEventListener(a.Ec,a.Nd,a.Xc),T.Dc.push(a);else for(var b=0;b<T.Dc.length;++b)T.Dc[b].target==a.target&&T.Dc[b].Ec==a.Ec&&Kc(b--);return 0}function Nc(a){return a?a==window?"#window":a==screen?"#screen":a?.nodeName||"":""}
49
+ var T={qe:0,Ge:0,wd:0,kd:0,Hd:0,Gd:0,rd:0,Be:0,Ke:0,Ae:0,td:0,zd:0,We:0,Ed:0,Me(){for(;T.Dc.length;)Kc(T.Dc.length-1);T.cd=[]},vd:0,cd:[],ze(a,b,c){function d(f,g){if(f.length!=g.length)return!1;for(var m in f)if(f[m]!=g[m])return!1;return!0}for(var e of T.cd)if(e.Dd==a&&d(e.Ld,c))return;T.cd.push({Dd:a,Ud:b,Ld:c});T.cd.sort((f,g)=>f.Ud-g.Ud)},Oe(a){T.cd=T.cd.filter(b=>b.Dd!=a)},Dc:[],Ne:(a,b)=>{for(var c=0;c<T.Dc.length;++c)T.Dc[c].target!=a||b&&b!=T.Dc[c].Ec||Kc(c--)},Pe(a){let b=!1;for(let c=0;c<
50
+ T.Dc.length;++c){const d=T.Dc[c];d.target===a.target&&d.Tc===a.Tc&&d.Rc===a.Rc&&d.Yc===a.Yc&&(Kc(c--),b=!0)}return b?0:-5},fullscreenEnabled(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}},Oc=(a,b,c,d,e,f)=>{T.rd||(T.rd=U(256));a={target:S(a),Ec:f,Tc:e,Yc:b,Rc:d,$c:g=>{var m=g.target.id?g.target.id:"",n=T.rd;G(Nc(g.target),u,n+0,128);G(m,u,n+128,128);V.get(d)(e,n,b)&&g.preventDefault()},Xc:c};return Mc(a)},Pc=(a,b,c,d,e)=>{T.td||(T.td=U(276));return Mc({target:a,Ec:e,Tc:19,
51
+ Yc:b,Rc:d,$c:f=>{var g=T.td,m=document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement||document.msFullscreenElement,n=!!m;k[g]=n;k[g+1]=T.fullscreenEnabled();var p=n?m:T.ne,r=p?.id||"";G(Nc(p),u,g+2,128);G(r,u,g+130,128);w[g+260>>2]=p?p.clientWidth:0;w[g+264>>2]=p?p.clientHeight:0;w[g+268>>2]=screen.width;w[g+272>>2]=screen.height;n&&(T.ne=m);V.get(d)(19,g,b)&&f.preventDefault()},Xc:c})},Qc=(a,b,c,d,e,f)=>{T.wd||(T.wd=U(160));
52
+ a={target:S(a),Ec:f,Tc:e,Yc:b,Rc:d,$c:g=>{var m=T.wd;z[m>>3]=g.timeStamp;var n=m>>2;w[n+2]=g.location;k[m+12]=g.ctrlKey;k[m+13]=g.shiftKey;k[m+14]=g.altKey;k[m+15]=g.metaKey;k[m+16]=g.repeat;w[n+5]=g.charCode;w[n+6]=g.keyCode;w[n+7]=g.which;G(g.key||"",u,m+32,32);G(g.code||"",u,m+64,32);G(g.char||"",u,m+96,32);G(g.locale||"",u,m+128,32);V.get(d)(e,m,b)&&g.preventDefault()},Xc:c};return Mc(a)},Rc=(a,b,c)=>{z[a>>3]=b.timeStamp;var d=a>>2;w[d+2]=b.screenX;w[d+3]=b.screenY;w[d+4]=b.clientX;w[d+5]=b.clientY;
53
+ k[a+24]=b.ctrlKey;k[a+25]=b.shiftKey;k[a+26]=b.altKey;k[a+27]=b.metaKey;t[2*d+14]=b.button;t[2*d+15]=b.buttons;w[d+8]=b.movementX;w[d+9]=b.movementY;a=Jc(c);w[d+10]=b.clientX-(a.left|0);w[d+11]=b.clientY-(a.top|0)},Sc=(a,b,c,d,e,f)=>{T.kd||(T.kd=U(64));a=S(a);return Mc({target:a,pd:"mousemove"!=f&&"mouseenter"!=f&&"mouseleave"!=f,Ec:f,Tc:e,Yc:b,Rc:d,$c:g=>{Rc(T.kd,g,a);V.get(d)(e,T.kd,b)&&g.preventDefault()},Xc:c})},Tc=(a,b,c,d)=>{T.zd||(T.zd=U(257));return Mc({target:a,Ec:"pointerlockchange",Tc:20,
54
+ Yc:b,Rc:d,$c:e=>{var f=T.zd,g=document.pointerLockElement;k[f]=!!g;var m=g?.id||"";G(Nc(g),u,f+1,128);G(m,u,f+129,128);V.get(d)(20,f,b)&&e.preventDefault()},Xc:c})},Uc=(a,b,c,d)=>Mc({target:a,Ec:"pointerlockerror",Tc:38,Yc:b,Rc:d,$c:e=>{V.get(d)(38,0,b)&&e.preventDefault()},Xc:c}),Vc=(a,b,c,d)=>{T.Gd||(T.Gd=U(36));a=S(a);return Mc({target:a,Ec:"resize",Tc:10,Yc:b,Rc:d,$c:e=>{if(e.target==a){var f=document.body;if(f){var g=T.Gd;w[g>>2]=0;w[g+4>>2]=f.clientWidth;w[g+8>>2]=f.clientHeight;w[g+12>>2]=
55
+ innerWidth;w[g+16>>2]=innerHeight;w[g+20>>2]=outerWidth;w[g+24>>2]=outerHeight;w[g+28>>2]=pageXOffset|0;w[g+32>>2]=pageYOffset|0;V.get(d)(10,g,b)&&e.preventDefault()}}},Xc:c})},Wc=(a,b,c,d,e,f)=>{T.Ed||(T.Ed=U(1552));a=S(a);return Mc({target:a,pd:"touchstart"==f||"touchend"==f,Ec:f,Tc:e,Yc:b,Rc:d,$c:g=>{var m={},n=g.touches;for(var p of n)p.Pd=p.Td=0,m[p.identifier]=p;for(var r of g.changedTouches)r.Pd=1,m[r.identifier]=r;for(var l of g.targetTouches)m[l.identifier].Td=1;n=T.Ed;z[n>>3]=g.timeStamp;
56
+ k[n+12]=g.ctrlKey;k[n+13]=g.shiftKey;k[n+14]=g.altKey;k[n+15]=g.metaKey;p=n+16;r=Jc(a);l=0;for(let q of Object.values(m))if(m=p>>2,w[m]=q.identifier,w[m+1]=q.screenX,w[m+2]=q.screenY,w[m+3]=q.clientX,w[m+4]=q.clientY,w[m+5]=q.pageX,w[m+6]=q.pageY,k[p+28]=q.Pd,k[p+29]=q.Td,w[m+8]=q.clientX-(r.left|0),w[m+9]=q.clientY-(r.top|0),p+=48,31<++l)break;w[n+8>>2]=l;V.get(d)(e,n,b)&&g.preventDefault()},Xc:c})},Xc=(a,b,c,d)=>{T.Hd||(T.Hd=U(96));return Mc({target:a,pd:!0,Ec:"wheel",Tc:9,Yc:b,Rc:d,$c:e=>{var f=
57
+ T.Hd;Rc(f,e,a);z[f+64>>3]=e.deltaX;z[f+72>>3]=e.deltaY;z[f+80>>3]=e.deltaZ;w[f+88>>2]=e.deltaMode;V.get(d)(9,f,b)&&e.preventDefault()},Xc:c})};function Yc(a){var b=Zc,c=b.Fc.pop()||b.ed.length;b.ed[c]=a;return c}class $c{ed=[void 0];Fc=[];get(a){return this.ed[a]}has(a){return void 0!==this.ed[a]}}
58
+ async function ad(){return new Promise((a,b)=>{try{var c=indexedDB.open("emscripten_filesystem",1)}catch(d){return b(d)}c.onupgradeneeded=d=>{d=d.target.result;d.objectStoreNames.contains("FILES")&&d.deleteObjectStore("FILES");d.createObjectStore("FILES")};c.onsuccess=d=>a(d.target.result);c.onerror=b})}var Zc,bd;
59
+ function cd(a,b,c,d,e){function f(){var K=0,E=0;A.response&&I&&0===y[a+12>>2]&&(E=A.response.byteLength);0<E&&(K=dd(y[a+12>>2],E),u.set(new Uint8Array(A.response),K));y[a+12>>2]=K;W(a+16,E);W(a+24,0);(K=A.response?A.response.byteLength:0)&&W(a+32,K);t[a+40>>1]=A.readyState;t[a+42>>1]=A.status;A.statusText&&G(A.statusText,u,a+44,64);L&&(K=ed(A.responseURL),y[a+200>>2]=K)}var g=y[a+8>>2];if(g){var m=P(g),n=a+108,p=P(n+0);p||="GET";var r=y[n+56>>2],l=y[n+68>>2],q=y[n+72>>2];g=y[n+76>>2];var v=y[n+80>>
60
+ 2],x=y[n+84>>2],C=y[n+88>>2],F=y[n+52>>2],I=!!(F&1),Q=!!(F&2),L=!!(F&64);l=l?P(l):void 0;q=q?P(q):void 0;var A=new XMLHttpRequest;A.withCredentials=!!u[n+60];A.Fc=Q;A.open(p,m,!L,l,q);L||(A.timeout=r);A.nd=m;A.responseType="arraybuffer";v&&(m=P(v),A.overrideMimeType(m));if(g)for(;;){n=y[g>>2];if(!n)break;m=y[g+4>>2];if(!m)break;g+=8;n=P(n);m=P(m);A.setRequestHeader(n,m)}var pa=Yc(A);y[a>>2]=pa;g=x&&C?u.slice(x,x+C):null;A.onload=K=>{Zc.has(pa)&&(f(),200<=A.status&&300>A.status?b(a,A,K):c(a,K))};A.onerror=
61
+ K=>{Zc.has(pa)&&(f(),c(a,K))};A.ontimeout=K=>{Zc.has(pa)&&c(a,K)};A.onprogress=K=>{if(Zc.has(pa)){var E=I&&Q&&A.response?A.response.byteLength:0,Qa=0;0<E&&I&&Q&&(Qa=dd(y[a+12>>2],E),u.set(new Uint8Array(A.response),Qa));y[a+12>>2]=Qa;W(a+16,E);W(a+24,K.loaded-E);W(a+32,K.total);t[a+40>>1]=A.readyState;E=A.status;3<=A.readyState&&0===A.status&&0<K.loaded&&(E=200);t[a+42>>1]=E;A.statusText&&G(A.statusText,u,a+44,64);d(a,K)}};A.onreadystatechange=K=>{if(Zc.has(pa)){t[a+40>>1]=A.readyState;2<=A.readyState&&
62
+ (t[a+42>>1]=A.status);if(!L&&2===A.readyState&&0<A.responseURL.length){var E=ed(A.responseURL);y[a+200>>2]=E}e(a,K)}};try{A.send(g)}catch(K){c(a,K)}}else c(a,"no url specified!")}var W=(a,b)=>{y[a>>2]=b;y[a+4>>2]=(b-y[a>>2])/4294967296},ed=a=>{var b=$a(a)+1,c=U(b);c&&G(a,u,c,b);return c};
63
+ function fd(a,b,c,d){var e=bd;if(e){var f=y[a+108+64>>2];f||=y[a+8>>2];var g=P(f);try{var m=e.transaction(["FILES"],"readwrite").objectStore("FILES").put(b,g);m.onsuccess=()=>{t[a+40>>1]=4;t[a+42>>1]=200;G("OK",u,a+44,64);c(a,0,g)};m.onerror=n=>{t[a+40>>1]=4;t[a+42>>1]=413;G("Payload Too Large",u,a+44,64);d(a,0,n)}}catch(n){d(a,0,n)}}else d(a,0,"IndexedDB not available!")}
64
+ function gd(a,b,c){var d=bd;if(d){var e=y[a+108+64>>2];e||=y[a+8>>2];e=P(e);try{var f=d.transaction(["FILES"],"readonly").objectStore("FILES").get(e);f.onsuccess=g=>{if(g.target.result){g=g.target.result;var m=g.byteLength||g.length,n=U(m);u.set(new Uint8Array(g),n);y[a+12>>2]=n;W(a+16,m);W(a+24,0);W(a+32,m);t[a+40>>1]=4;t[a+42>>1]=200;G("OK",u,a+44,64);b(a,0,g)}else t[a+40>>1]=4,t[a+42>>1]=404,G("Not Found",u,a+44,64),c(a,0,"no data")};f.onerror=g=>{t[a+40>>1]=4;t[a+42>>1]=404;G("Not Found",u,a+
65
+ 44,64);c(a,0,g)}}catch(g){c(a,0,g)}}else c(a,0,"IndexedDB not available!")}function hd(a,b,c){var d=bd;if(d){var e=y[a+108+64>>2];e||=y[a+8>>2];e=P(e);try{var f=d.transaction(["FILES"],"readwrite").objectStore("FILES").delete(e);f.onsuccess=g=>{g=g.target.result;y[a+12>>2]=0;W(a+16,0);W(a+24,0);W(a+32,0);t[a+40>>1]=4;t[a+42>>1]=200;G("OK",u,a+44,64);b(a,0,g)};f.onerror=g=>{t[a+40>>1]=4;t[a+42>>1]=404;G("Not Found",u,a+44,64);c(a,0,g)}}catch(g){c(a,0,g)}}else c(a,0,"IndexedDB not available!")}
66
+ var kd=a=>{var b=$a(a)+1,c=jd(b);G(a,u,c,b);return c},X=[],ld=(a,b)=>{X[a>>>0]=b},md=[],Y=a=>{if(a)return X[a>>>0]},nd=a=>P(y[a>>2],y[a+4>>2]),Z=a=>{var b=y[a>>2];a=y[a+4>>2];if(b)return P(b,a);if(0===a)return""},od=a=>({r:z[a>>3],g:z[a+8>>3],b:z[a+16>>3],a:z[a+24>>3]}),pd=a=>({width:y[a>>2],height:y[a+4>>2],depthOrArrayLayers:y[a+8>>2]}),rd=a=>{var b=a+8;return{texture:Y(y[a>>2]),mipLevel:y[a+4>>2],origin:{x:y[b>>2],y:y[b+4>>2],z:y[b+8>>2]},aspect:qd[y[a+20>>2]]}},sd=a=>{var b=y[a+8>>2],c=y[a+12>>
67
+ 2];return{offset:4294967296*y[a+4>>2]+y[a>>2],bytesPerRow:4294967295===b?void 0:b,rowsPerImage:4294967295===c?void 0:c}},td=a=>{if(0!==a)return{querySet:Y(y[a+4>>2]),beginningOfPassWriteIndex:y[a+8>>2],endOfPassWriteIndex:y[a+12>>2]}},ud=(a,b)=>{if(a){for(var c={},d=0;d<a;++d){var e=b+24*d,f=nd(e+4);c[f]=z[e+16>>3]}return c}},vd=a=>a?Y(a):"auto",Hd=a=>{function b(d){if(d)return{operation:wd[y[d>>2]],srcFactor:xd[y[d+4>>2]],dstFactor:xd[y[d+8>>2]]}}function c(d){return{compare:yd[y[d>>2]],failOp:zd[y[d+
68
+ 4>>2]],depthFailOp:zd[y[d+8>>2]],passOp:zd[y[d+12>>2]]}}return{label:Z(a+4),layout:vd(y[a+12>>2]),vertex:function(d){if(d){var e=Y(y[d+4>>2]),f=ud(y[d+16>>2],y[d+20>>2]);var g=y[d+24>>2];var m=y[d+28>>2];if(g){for(var n=[],p=0;p<g;++p){var r=n,l=r.push;var q=m+24*p;if(q){var v=y[q+4>>2],x=y[q+16>>2];if(0===v&&0===x)var C=null;else{C=4294967296*y[q+4+8>>2]+y[q+8>>2];v=Ad[v];q=y[q+20>>2];for(var F=[],I=0;I<x;++I){var Q=F,L=q+24*I;Q.push.call(Q,{format:Bd[y[L+4>>2]],offset:4294967296*y[L+4+8>>2]+y[L+
69
+ 8>>2],shaderLocation:y[L+16>>2]})}C={arrayStride:C,stepMode:v,attributes:F}}}else C=void 0;l.call(r,C)}g=n}else g=void 0;return{module:e,constants:f,buffers:g,entryPoint:Z(d+8)}}}(a+16),primitive:function(d){if(d)return{topology:Cd[y[d+4>>2]],stripIndexFormat:Dd[y[d+8>>2]],frontFace:Ed[y[d+12>>2]],cullMode:Fd[y[d+16>>2]],unclippedDepth:!!y[d+20>>2]}}(a+48),depthStencil:function(d){if(d)return{format:Gd[y[d+4>>2]],depthWriteEnabled:!!y[d+8>>2],depthCompare:yd[y[d+12>>2]],stencilFront:c(d+16),stencilBack:c(d+
70
+ 32),stencilReadMask:y[d+48>>2],stencilWriteMask:y[d+52>>2],depthBias:w[d+56>>2],depthBiasSlopeScale:wa[d+60>>2],depthBiasClamp:wa[d+64>>2]}}(y[a+72>>2]),multisample:function(d){if(d)return{count:y[d+4>>2],mask:y[d+8>>2],alphaToCoverageEnabled:!!y[d+12>>2]}}(a+76),fragment:function(d){if(d){for(var e=Y(y[d+4>>2]),f=ud(y[d+16>>2],y[d+20>>2]),g=y[d+24>>2],m=y[d+28>>2],n=[],p=0;p<g;++p){var r=n,l=r.push,q=m+24*p,v=y[q+4>>2];if(0===v)q=void 0;else{v=Gd[v];var x=(x=y[q+8>>2])?{alpha:b(x+12),color:b(x+0)}:
71
+ void 0;q={format:v,blend:x,writeMask:y[q+16>>2]}}l.call(r,q)}return{module:e,constants:f,targets:n,entryPoint:Z(d+8)}}}(y[a+92>>2])}},Id=(a,b)=>{function c(d,e){w[b+e>>2]=a[d]}c("maxTextureDimension1D",4);c("maxTextureDimension2D",8);c("maxTextureDimension3D",12);c("maxTextureArrayLayers",16);c("maxBindGroups",20);c("maxBindGroupsPlusVertexBuffers",24);c("maxBindingsPerBindGroup",28);c("maxDynamicUniformBuffersPerPipelineLayout",32);c("maxDynamicStorageBuffersPerPipelineLayout",36);c("maxSampledTexturesPerShaderStage",
72
+ 40);c("maxSamplersPerShaderStage",44);c("maxStorageBuffersPerShaderStage",48);c("maxStorageTexturesPerShaderStage",52);c("maxUniformBuffersPerShaderStage",56);c("minUniformBufferOffsetAlignment",80);c("minStorageBufferOffsetAlignment",84);B[b+64>>3]=BigInt(a.maxUniformBufferBindingSize);B[b+72>>3]=BigInt(a.maxStorageBufferBindingSize);c("maxVertexBuffers",88);B[b+96>>3]=BigInt(a.maxBufferSize);c("maxVertexAttributes",104);c("maxVertexBufferArrayStride",108);c("maxInterStageShaderVariables",112);c("maxColorAttachments",
73
+ 116);c("maxColorAttachmentBytesPerSample",120);c("maxComputeWorkgroupStorageSize",124);c("maxComputeInvocationsPerWorkgroup",128);c("maxComputeWorkgroupSizeX",132);c("maxComputeWorkgroupSizeY",136);c("maxComputeWorkgroupSizeZ",140);c("maxComputeWorkgroupsPerDimension",144);void 0!==a.Ie&&c("maxImmediateSize",148)},Jd=[,"clamp-to-edge","repeat","mirror-repeat"],xd=[,"zero","one","src","one-minus-src","src-alpha","one-minus-src-alpha","dst","one-minus-dst","dst-alpha","one-minus-dst-alpha","src-alpha-saturated",
74
+ "constant","one-minus-constant","src1","one-minus-src1","src1alpha","one-minus-src1alpha"],wd=[,"add","subtract","reverse-subtract","min","max"],Kd=["binding-not-used",,"uniform","storage","read-only-storage"],yd=[,"never","less","equal","less-equal","greater","not-equal","greater-equal","always"],Ld=[,"opaque","premultiplied","unpremultiplied","inherit"],Fd=[,"none","front","back"],Md=[,"compatibility","core"],Nd={1:"core-features-and-limits",2:"depth-clip-control",3:"depth32float-stencil8",4:"texture-compression-bc",
75
+ 5:"texture-compression-bc-sliced-3d",6:"texture-compression-etc2",7:"texture-compression-astc",8:"texture-compression-astc-sliced-3d",9:"timestamp-query",10:"indirect-first-instance",11:"shader-f16",12:"rg11b10ufloat-renderable",13:"bgra8unorm-storage",14:"float32-filterable",15:"float32-blendable",16:"clip-distances",17:"dual-source-blending",18:"subgroups",19:"texture-formats-tier1",20:"texture-formats-tier2",21:"primitive-index",327692:"chromium-experimental-unorm16-texture-formats",327693:"chromium-experimental-snorm16-texture-formats",
76
+ 327732:"chromium-experimental-multi-draw-indirect"},Od=[,"nearest","linear"],Ed=[,"ccw","cw"],Dd=[,"uint16","uint32"],Pd=[,"load","clear"],Qd=[,"nearest","linear"],Rd=[,"low-power","high-performance"],Sd=[,"srgb","display-p3"],Cd=[,"point-list","line-list","line-strip","triangle-list","triangle-strip"],Td=["binding-not-used",,"filtering","non-filtering","comparison"],zd=[,"keep","zero","replace","invert","increment-clamp","decrement-clamp","increment-wrap","decrement-wrap"],Ud=["binding-not-used",
77
+ ,"write-only","read-only","read-write"],Vd=[,"store","discard"],qd=[,"all","stencil-only","depth-only"],Wd=[,"1d","2d","3d"],Gd=[,"r8unorm","r8snorm","r8uint","r8sint","r16unorm","r16snorm","r16uint","r16sint","r16float","rg8unorm","rg8snorm","rg8uint","rg8sint","r32float","r32uint","r32sint","rg16unorm","rg16snorm","rg16uint","rg16sint","rg16float","rgba8unorm","rgba8unorm-srgb","rgba8snorm","rgba8uint","rgba8sint","bgra8unorm","bgra8unorm-srgb","rgb10a2uint","rgb10a2unorm","rg11b10ufloat","rgb9e5ufloat",
78
+ "rg32float","rg32uint","rg32sint","rgba16unorm","rgba16snorm","rgba16uint","rgba16sint","rgba16float","rgba32float","rgba32uint","rgba32sint","stencil8","depth16unorm","depth24plus","depth24plus-stencil8","depth32float","depth32float-stencil8","bc1-rgba-unorm","bc1-rgba-unorm-srgb","bc2-rgba-unorm","bc2-rgba-unorm-srgb","bc3-rgba-unorm","bc3-rgba-unorm-srgb","bc4-r-unorm","bc4-r-snorm","bc5-rg-unorm","bc5-rg-snorm","bc6h-rgb-ufloat","bc6h-rgb-float","bc7-rgba-unorm","bc7-rgba-unorm-srgb","etc2-rgb8unorm",
79
+ "etc2-rgb8unorm-srgb","etc2-rgb8a1unorm","etc2-rgb8a1unorm-srgb","etc2-rgba8unorm","etc2-rgba8unorm-srgb","eac-r11unorm","eac-r11snorm","eac-rg11unorm","eac-rg11snorm","astc-4x4-unorm","astc-4x4-unorm-srgb","astc-5x4-unorm","astc-5x4-unorm-srgb","astc-5x5-unorm","astc-5x5-unorm-srgb","astc-6x5-unorm","astc-6x5-unorm-srgb","astc-6x6-unorm","astc-6x6-unorm-srgb","astc-8x5-unorm","astc-8x5-unorm-srgb","astc-8x6-unorm","astc-8x6-unorm-srgb","astc-8x8-unorm","astc-8x8-unorm-srgb","astc-10x5-unorm","astc-10x5-unorm-srgb",
80
+ "astc-10x6-unorm","astc-10x6-unorm-srgb","astc-10x8-unorm","astc-10x8-unorm-srgb","astc-10x10-unorm","astc-10x10-unorm-srgb","astc-12x10-unorm","astc-12x10-unorm-srgb","astc-12x12-unorm","astc-12x12-unorm-srgb"],Xd=["binding-not-used",,"float","unfilterable-float","depth","sint","uint"],Yd=[,"1d","2d","2d-array","cube","cube-array","3d"],Zd=[,"standard","extended"],Bd=[,"uint8","uint8x2","uint8x4","sint8","sint8x2","sint8x4","unorm8","unorm8x2","unorm8x4","snorm8","snorm8x2","snorm8x4","uint16","uint16x2",
81
+ "uint16x4","sint16","sint16x2","sint16x4","unorm16","unorm16x2","unorm16x4","snorm16","snorm16x2","snorm16x4","float16","float16x2","float16x4","float32","float32x2","float32x3","float32x4","uint32","uint32x2","uint32x3","uint32x4","sint32","sint32x2","sint32x3","sint32x4","unorm10-10-10-2","unorm8x4-bgra"],Ad=[,"vertex","instance"],$d={undefined:1,unknown:1,destroyed:2},ae=()=>{var a="getMappedRange size=0 no longer means WGPU_WHOLE_MAP_SIZE";ae.Cd||(ae.Cd={});ae.Cd[a]||(ae.Cd[a]=1,ca&&(a="warning: "+
82
+ a),na(a))},be={rgba8unorm:22,bgra8unorm:27},ce={},ee=()=>{if(!de){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(globalThis.navigator?.language??"C").replace("-","_")+".UTF-8",_:ea||"./this.program"},b;for(b in ce)void 0===ce[b]?delete a[b]:a[b]=ce[b];var c=[];for(b in a)c.push(`${b}=${a[b]}`);de=c}return de},de,he=a=>{var b=fe();a();ge(b)};tb=Array(4096);Jb(J,"/");Mb("/tmp");Mb("/home");Mb("/home/web_user");
83
+ (function(){Mb("/dev");db(259,{read:()=>0,write:(d,e,f,g)=>g,Uc:()=>0});Nb("/dev/null",259);cb(1280,fb);cb(1536,gb);Nb("/dev/tty",1280);Nb("/dev/tty1",1536);var a=new Uint8Array(1024),b=0,c=()=>{0===b&&(Ta(a),b=a.byteLength);return a[--b]};Zb("/dev","random",c);Zb("/dev","urandom",c);Mb("/dev/shm");Mb("/dev/shm/tmp")})();
84
+ (function(){Mb("/proc");var a=Mb("/proc/self");Mb("/proc/self/fd");Jb({Sc(){var b=ib(a,"fd",16895,73);b.tc={Uc:J.tc.Uc};b.sc={lookup(c,d){c=+d;var e=Fb(c);c={parent:null,Sc:{Rd:"fake"},sc:{readlink:()=>e.path},id:c+1};return c.parent=c},readdir(){return Array.from(rb.entries()).filter(([,c])=>c).map(([c])=>c.toString())}};return b}},"/proc/self/fd")})();h.requestAnimationFrame=uc;h.pauseMainLoop=Gc;h.resumeMainLoop=function(){xc++;var a=nc,b=oc,c=pc;pc=null;Fc(c,0,!1,yc,!0);wc(a,b);rc()};
85
+ h.preMainLoop&&Dc.push(h.preMainLoop);h.postMainLoop&&Ec.push(h.postMainLoop);(async function(){Zc=new $c;Ka("library_fetch_init");try{bd=await ad()}catch(a){bd=!1}finally{Ja("library_fetch_init")}})();h.noExitRuntime&&(La=h.noExitRuntime);h.preloadPlugins&&(nb=h.preloadPlugins);h.print&&(ma=h.print);h.printErr&&(na=h.printErr);h.wasmBinary&&(oa=h.wasmBinary);h.arguments&&(da=h.arguments);h.thisProgram&&(ea=h.thisProgram);if(h.preInit)for("function"==typeof h.preInit&&(h.preInit=[h.preInit]);0<h.preInit.length;)h.preInit.shift()();
86
+ h.addRunDependency=Ka;h.removeRunDependency=Ja;h.ccall=(a,b,c,d)=>{var e={string:p=>{var r=0;null!==p&&void 0!==p&&0!==p&&(r=kd(p));return r},array:p=>{var r=jd(p.length);k.set(p,r);return r}};a=h["_"+a];var f=[],g=0;if(d)for(var m=0;m<d.length;m++){var n=e[c[m]];n?(0===g&&(g=fe()),f[m]=n(d[m])):f[m]=d[m]}c=a(...f);return c=function(p){0!==g&&ge(g);return"string"===b?P(p):"boolean"===b?!!p:p}(c)};
87
+ h.FS_preloadFile=async(a,b,c,d,e,f,g,m)=>{var n=b?Ua(Na(a+"/"+b)):a,p=`cp ${n}`;Ka(p);try{var r=c;"string"==typeof c&&(r=await mb(c));r=await ob(r,n);m?.();f||Yb(a,b,r,d,e,g)}finally{Ja(p)}};h.FS_unlink=(...a)=>Qb(...a);h.FS_createPath=(...a)=>Wb(...a);h.FS_createDevice=(...a)=>Zb(...a);h.FS_createDataFile=(...a)=>Yb(...a);h.FS_createLazyFile=(...a)=>ac(...a);
88
+ function ie(){h.__nhIdbOpen||(h.__nhIdbOpen=function(){return new Promise(function(a,b){var c=indexedDB.open("nodehammer",1);c.onupgradeneeded=function(){var d=c.result;d.objectStoreNames.contains("blobs")||d.createObjectStore("blobs")};c.onsuccess=function(){a(c.result)};c.onerror=function(){b(c.error)}})})}
89
+ var je,U,dd,ke,le,me,ne,oe,pe,qe,re,se,te,ue,ve,we,xe,ye,ze,Ae,Be,Ce,De,Ee,Fe,Ge,He,Ie,Je,Ke,xa,ge,jd,fe,ua,V,Le={mb:function(a,b){try{var c=Fb(a);if(c.fd===b)return-28;if(0>b||4096<=b)return-8;var d=rb[b];d&&Tb(d);return Hb(c,b).fd}catch(e){if("undefined"==typeof O||"ErrnoError"!==e.name)throw e;return-e.Bc}},l:function(a,b,c){cc=c;try{var d=Fb(a);switch(b){case 0:var e=dc();if(0>e)break;for(;rb[e];)e++;return Hb(d,e).fd;case 1:case 2:return 0;case 3:return d.flags;case 4:return e=dc(),d.flags|=
90
+ e,0;case 12:return e=dc(),t[e+0>>1]=2,0;case 13:case 14:return 0}return-28}catch(f){if("undefined"==typeof O||"ErrnoError"!==f.name)throw f;return-f.Bc}},qb:function(a,b,c){cc=c;try{var d=Fb(a);switch(b){case 21509:return d.tty?0:-59;case 21505:if(!d.tty)return-59;if(d.tty.ad.ge){a=[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];var e=dc();w[e>>2]=25856;w[e+4>>2]=5;w[e+8>>2]=191;w[e+12>>2]=35387;for(var f=0;32>f;f++)k[e+f+17]=a[f]||0}return 0;case 21510:case 21511:case 21512:return d.tty?
91
+ 0:-59;case 21506:case 21507:case 21508:if(!d.tty)return-59;if(d.tty.ad.he)for(e=dc(),a=[],f=0;32>f;f++)a.push(k[e+f+17]);return 0;case 21519:if(!d.tty)return-59;e=dc();return w[e>>2]=0;case 21520:return d.tty?-28:-59;case 21537:case 21531:e=dc();if(!d.tc.fe)throw new H(59);return d.tc.fe(d,b,e);case 21523:if(!d.tty)return-59;d.tty.ad.ie&&(f=[24,80],e=dc(),t[e>>1]=f[0],t[e+2>>1]=f[1]);return 0;case 21524:return d.tty?0:-59;case 21515:return d.tty?0:-59;default:return-28}}catch(g){if("undefined"==typeof O||
92
+ "ErrnoError"!==g.name)throw g;return-g.Bc}},m:function(a,b,c,d){cc=d;try{b=P(b);b=bc(a,b);var e=d?dc():0;return Sb(b,c,e).fd}catch(f){if("undefined"==typeof O||"ErrnoError"!==f.name)throw f;return-f.Bc}},bb:function(a,b,c,d){try{b=P(b);d=P(d);b=bc(a,b);d=bc(c,d);a=b;var e=Oa(a),f=Oa(d),g=Pa(a),m=Pa(d);var n=N(a,{parent:!0});var p=n.node;n=N(d,{parent:!0});var r=n.node;if(!p||!r)throw new H(44);if(p.Sc!==r.Sc)throw new H(75);var l=jb(p,g),q=Va(a,f);if("."!==q.charAt(0))throw new H(28);q=Va(d,e);if("."!==
93
+ q.charAt(0))throw new H(55);try{var v=jb(r,m)}catch(F){}if(l!==v){var x=M(l.mode),C=Db(p,g,x);if(C)throw new H(C);if(C=v?Db(r,m,x):Cb(r,m))throw new H(C);if(!p.sc.rename)throw new H(63);if(l.dd||v&&v.dd)throw new H(10);if(r!==p&&(C=Bb(p,"w")))throw new H(C);kb(l);try{p.sc.rename(l,r,m),l.parent=r}catch(F){throw F;}finally{Ab(l)}}return 0}catch(F){if("undefined"==typeof O||"ErrnoError"!==F.name)throw F;return-F.Bc}},cb:function(a){try{return a=P(a),Pb(a),0}catch(b){if("undefined"==typeof O||"ErrnoError"!==
94
+ b.name)throw b;return-b.Bc}},ab:function(a,b){try{a=P(a);var c=N(a,{hd:!0}).node;var d=Eb(c.sc.Zc)(c);y[b>>2]=d.dev;y[b+4>>2]=d.mode;y[b+8>>2]=d.nlink;y[b+12>>2]=d.uid;y[b+16>>2]=d.gid;y[b+20>>2]=d.rdev;B[b+24>>3]=BigInt(d.size);w[b+32>>2]=4096;w[b+36>>2]=d.blocks;var e=d.atime.getTime(),f=d.mtime.getTime(),g=d.ctime.getTime();B[b+40>>3]=BigInt(Math.floor(e/1E3));y[b+48>>2]=e%1E3*1E6;B[b+56>>3]=BigInt(Math.floor(f/1E3));y[b+64>>2]=f%1E3*1E6;B[b+72>>3]=BigInt(Math.floor(g/1E3));y[b+80>>2]=g%1E3*1E6;
95
+ B[b+88>>3]=BigInt(d.ino);return 0}catch(m){if("undefined"==typeof O||"ErrnoError"!==m.name)throw m;return-m.Bc}},W:function(a,b,c){try{b=P(b);b=bc(a,b);if(c)if(512===c)Pb(b);else return-28;else Qb(b);return 0}catch(d){if("undefined"==typeof O||"ErrnoError"!==d.name)throw d;return-d.Bc}},vb:()=>D(""),fb:()=>{La=!1;ec=0},$a:a=>{if(ca){if(!a)return 1;a=P(a);if(!a.length)return 0;a=require("node:child_process").Se(a,[],{Qe:!0,stdio:"inherit"});var b=(c,d)=>c<<8|d;return null===a.status?b(0,(c=>{switch(c){case "SIGHUP":return 1;
96
+ case "SIGQUIT":return 3;case "SIGFPE":return 8;case "SIGKILL":return 9;case "SIGALRM":return 14;case "SIGTERM":return 15;default:return 2}})(a.signal)):a.status<<8|0}return a?-52:0},gb:function(a,b){a=R(a);a=new Date(1E3*a);w[b>>2]=a.getUTCSeconds();w[b+4>>2]=a.getUTCMinutes();w[b+8>>2]=a.getUTCHours();w[b+12>>2]=a.getUTCDate();w[b+16>>2]=a.getUTCMonth();w[b+20>>2]=a.getUTCFullYear()-1900;w[b+24>>2]=a.getUTCDay();w[b+28>>2]=(a.getTime()-Date.UTC(a.getUTCFullYear(),0,1,0,0,0,0))/864E5|0},hb:function(a,
97
+ b){a=R(a);a=new Date(1E3*a);w[b>>2]=a.getSeconds();w[b+4>>2]=a.getMinutes();w[b+8>>2]=a.getHours();w[b+12>>2]=a.getDate();w[b+16>>2]=a.getMonth();w[b+20>>2]=a.getFullYear()-1900;w[b+24>>2]=a.getDay();w[b+28>>2]=(fc(a.getFullYear())?gc:hc)[a.getMonth()]+a.getDate()-1|0;w[b+36>>2]=-(60*a.getTimezoneOffset());var c=(new Date(a.getFullYear(),6,1)).getTimezoneOffset(),d=(new Date(a.getFullYear(),0,1)).getTimezoneOffset();w[b+32>>2]=(c!=d&&a.getTimezoneOffset()==Math.min(d,c))|0},ib:function(a){var b=new Date(w[a+
98
+ 20>>2]+1900,w[a+16>>2],w[a+12>>2],w[a+8>>2],w[a+4>>2],w[a>>2],0),c=w[a+32>>2],d=b.getTimezoneOffset(),e=(new Date(b.getFullYear(),6,1)).getTimezoneOffset(),f=(new Date(b.getFullYear(),0,1)).getTimezoneOffset(),g=Math.min(f,e);0>c?w[a+32>>2]=Number(e!=f&&g==d):0<c!=(g==d)&&(e=Math.max(f,e),b.setTime(b.getTime()+6E4*((0<c?g:e)-d)));w[a+24>>2]=b.getDay();w[a+28>>2]=(fc(b.getFullYear())?gc:hc)[b.getMonth()]+b.getDate()-1|0;w[a>>2]=b.getSeconds();w[a+4>>2]=b.getMinutes();w[a+8>>2]=b.getHours();w[a+12>>
99
+ 2]=b.getDate();w[a+16>>2]=b.getMonth();w[a+20>>2]=b.getYear();a=b.getTime();return BigInt(isNaN(a)?-1:a/1E3)},Za:(a,b)=>{ic[a]&&(clearTimeout(ic[a].id),delete ic[a]);if(!b)return 0;var c=setTimeout(()=>{delete ic[a];mc(()=>Je(a,performance.now()))},b);ic[a]={id:c,Ue:b};return 0},jb:function(a){var b=new Date(Date.UTC(w[a+20>>2]+1900,w[a+16>>2],w[a+12>>2],w[a+8>>2],w[a+4>>2],w[a>>2],0));w[a+24>>2]=b.getUTCDay();w[a+28>>2]=(b.getTime()-Date.UTC(b.getUTCFullYear(),0,1,0,0,0,0))/864E5|0;return BigInt(b.getTime()/
100
+ 1E3)},kb:(a,b,c,d)=>{var e=(new Date).getFullYear(),f=(new Date(e,0,1)).getTimezoneOffset();e=(new Date(e,6,1)).getTimezoneOffset();y[a>>2]=60*Math.max(f,e);w[b>>2]=Number(f!=e);b=g=>{var m=Math.abs(g);return`UTC${0<=g?"-":"+"}${String(Math.floor(m/60)).padStart(2,"0")}${String(m%60).padStart(2,"0")}`};a=b(f);b=b(e);e<f?(G(a,u,c,17),G(b,u,d,17)):(G(a,u,d,17),G(b,u,c,17))},ub:function(a,b,c){if(!(0<=a&&3>=a))return 28;B[c>>3]=BigInt(Math.round(1E6*(0===a?Date.now():performance.now())));return 0},da:()=>
101
+ {Gc();pc=null},tb:()=>Date.now(),Ib:function(a){if(Zc.has(a)){var b=Zc.get(a),c=Zc;c.ed[a]=void 0;c.Fc.push(a);0<b.readyState&&4>b.readyState&&b.abort()}},P:()=>globalThis.devicePixelRatio??1,R:(a,b,c)=>{a=S(a);if(!a)return-4;a=Jc(a);z[b>>3]=a.width;z[c>>3]=a.height;return 0},j:()=>performance.now(),wb:()=>0,Kb:()=>!ba,ea:()=>performance.now(),Ha:(a,b)=>{function c(d){V.get(a)(d,b)&&requestAnimationFrame(c)}return requestAnimationFrame(c)},_a:a=>{var b=u.length;a>>>=0;if(2147483648<a)return!1;for(var c=
102
+ 1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);a:{d=(Math.min(2147483648,65536*Math.ceil(Math.max(a,d)/65536))-ua.buffer.byteLength+65535)/65536|0;try{ua.grow(d);ta();var e=1;break a}catch(f){}e=void 0}if(e)return!0}return!1},w:(a,b,c,d)=>Oc(a,b,c,d,12,"blur"),O:(a,b,c)=>{a=S(a);if(!a)return-4;a.width=b;a.height=c;return 0},x:(a,b,c,d)=>Oc(a,b,c,d,13,"focus"),v:(a,b,c,d)=>{if(!T.fullscreenEnabled())return-1;a=S(a);if(!a)return-4;Pc(a,b,c,d,"webkitfullscreenchange");return Pc(a,b,c,d,"fullscreenchange")},
103
+ G:(a,b,c,d)=>Qc(a,b,c,d,2,"keydown"),E:(a,b,c,d)=>Qc(a,b,c,d,1,"keypress"),F:(a,b,c,d)=>Qc(a,b,c,d,3,"keyup"),Ia:(a,b,c)=>{a=V.get(a);Fc(a,b,c)},N:(a,b,c,d)=>Sc(a,b,c,d,5,"mousedown"),K:(a,b,c,d)=>Sc(a,b,c,d,33,"mouseenter"),J:(a,b,c,d)=>Sc(a,b,c,d,34,"mouseleave"),L:(a,b,c,d)=>Sc(a,b,c,d,8,"mousemove"),M:(a,b,c,d)=>Sc(a,b,c,d,6,"mouseup"),z:(a,b,c,d)=>document.body?.requestPointerLock?(a=S(a))?Tc(a,b,c,d):-4:-1,y:(a,b,c,d)=>document.body?.requestPointerLock?(a=S(a))?Uc(a,b,c,d):-4:-1,Q:(a,b,c,d)=>
104
+ Vc(a,b,c,d),A:(a,b,c,d)=>Wc(a,b,c,d,25,"touchcancel"),B:(a,b,c,d)=>Wc(a,b,c,d,23,"touchend"),C:(a,b,c,d)=>Wc(a,b,c,d,24,"touchmove"),D:(a,b,c,d)=>Wc(a,b,c,d,22,"touchstart"),H:(a,b,c,d)=>(a=S(a))?"undefined"!=typeof a.onwheel?Xc(a,b,c,d):-1:-4,Jb:function(a,b,c,d,e){function f(E){q?E():mc(E)}var g=a+108,m=y[g+36>>2],n=y[g+40>>2],p=y[g+44>>2],r=y[g+48>>2],l=y[g+52>>2],q=!!(l&64),v=E=>{f(()=>{m?V.get(m)(E):b?.(E)})},x=E=>{f(()=>{p?V.get(p)(E):d?.(E)})},C=E=>{f(()=>{n?V.get(n)(E):c?.(E)})},F=E=>{f(()=>
105
+ {r?V.get(r)(E):e?.(E)})},I=E=>{cd(E,v,C,x,F)},Q=(E,Qa)=>{fd(E,Qa.response,Sa=>{f(()=>{m?V.get(m)(Sa):b?.(Sa)})},Sa=>{f(()=>{m?V.get(m)(Sa):b?.(Sa)})})},L=E=>{cd(E,Q,C,x,F)},A=P(g+0),pa=!!(l&16),K=!!(l&4);l=!!(l&32);if("EM_IDB_STORE"===A)I=y[g+84>>2],fd(a,u.slice(I,I+y[g+88>>2]),v,C);else if("EM_IDB_DELETE"===A)hd(a,v,C);else if(pa){if(l)return 0;cd(a,K?Q:v,C,x,F)}else gd(a,v,l?C:K?L:I);return a},Cb:function(a,b,c,d,e,f){b=R(b);c=R(c);a=Y(a);var g={};if(f){var m=y[f+12>>2];if(m){var n=y[f+16>>2];g.requiredFeatures=
106
+ Array.from(y.subarray(n>>2,n+4*m>>2),l=>Nd[l])}var p=y[f+20>>2];if(p){var r={};function l(v,x,C=!1){x=y[p+x>>2];4294967295==x||C&&0==x||(r[v]=x)}function q(v,x){x=p+x;var C=y[x+4>>2];if(4294967295!=y[x>>2]||4294967295!=C)r[v]=4294967296*y[x+4>>2]+y[x>>2]}l("maxTextureDimension1D",4);l("maxTextureDimension2D",8);l("maxTextureDimension3D",12);l("maxTextureArrayLayers",16);l("maxBindGroups",20);l("maxBindGroupsPlusVertexBuffers",24);l("maxDynamicUniformBuffersPerPipelineLayout",32);l("maxDynamicStorageBuffersPerPipelineLayout",
107
+ 36);l("maxSampledTexturesPerShaderStage",40);l("maxSamplersPerShaderStage",44);l("maxStorageBuffersPerShaderStage",48);l("maxStorageTexturesPerShaderStage",52);l("maxUniformBuffersPerShaderStage",56);l("minUniformBufferOffsetAlignment",80);l("minStorageBufferOffsetAlignment",84);q("maxUniformBufferBindingSize",64);q("maxStorageBufferBindingSize",72);l("maxVertexBuffers",88);q("maxBufferSize",96);l("maxVertexAttributes",104);l("maxVertexBufferArrayStride",108);l("maxInterStageShaderVariables",112);
108
+ l("maxColorAttachments",116);l("maxColorAttachmentBytesPerSample",120);l("maxComputeWorkgroupStorageSize",124);l("maxComputeInvocationsPerWorkgroup",128);l("maxComputeWorkgroupSizeX",132);l("maxComputeWorkgroupSizeY",136);l("maxComputeWorkgroupSizeZ",140);l("maxComputeWorkgroupsPerDimension",144);l("maxImmediateSize",148,!0);g.requiredLimits=r}if(m=y[f+24>>2])m={label:Z(m+4)},g.defaultQueue=m;g.label=Z(f+4)}a.requestDevice(g).then(l=>{mc(()=>{X[e>>>0]=l.queue;X[d>>>0]=l;l.lost.then(q=>{mc(()=>{l.onuncapturederror=
109
+ ()=>{};var v=fe(),x=kd(q.message);Ee(c,$d[q.reason],x);ge(v)})});l.onuncapturederror=q=>{var v=5;q.error instanceof GPUValidationError?v=2:q.error instanceof GPUOutOfMemoryError?v=3:q.error instanceof GPUInternalError&&(v=4);var x=fe();q=kd(q.error.message);Ie(d,v,q);ge(x)};He(b,1,d,0)})},l=>{mc(()=>{var q=fe(),v=kd(l.message);He(b,3,d,v);c&&Ee(c,4,v);ge(q)})})},Hb:(a,b,c)=>{var d=Y(a);0===c&&ae();-1==c&&(c=void 0);try{var e=d.getMappedRange(b,c)}catch(g){return 0}var f=Ke(16,e.byteLength);u.set(new Uint8Array(e),
110
+ f);md[a].push(()=>ke(f));return f},Gb:(a,b,c)=>{var d=Y(a);0===c&&ae();-1==c&&(c=void 0);try{var e=d.getMappedRange(b,c)}catch(g){return 0}var f=Ke(16,e.byteLength);u.fill(0,f,e.byteLength);md[a].push(()=>{(new Uint8Array(e)).set(u.subarray(f,f+e.byteLength));ke(f)});return f},Fb:function(a,b,c,d,e){b=R(b);c=R(c);var f=Y(a);md[a]=[];-1==e&&(e=void 0);f.mapAsync(c,d,e).then(()=>{mc(()=>{Fe(b,1,0)})},g=>{mc(()=>{fe();var m=kd(g.message);Fe(b,"AbortError"===g.name?4:"OperationError"===g.name?3:0,m);
111
+ delete md[a]})})},Eb:a=>{var b=Y(a),c=md[a];if(c){for(var d=0;d<c.length;++d)c[d]();delete md[a];b.unmap()}},a:a=>{delete X[a]},Bb:(a,b,c)=>{var d=!!y[b+32>>2];b={label:Z(b+4),usage:y[b+16>>2],size:4294967296*y[b+4+24>>2]+y[b+24>>2],mappedAtCreation:d};a=Y(a);try{var e=a.createBuffer(b)}catch(f){return!1}X[c>>>0]=e;d&&(md[c]=[]);return!0},Ab:(a,b,c)=>{var d=y[b>>2],e=y[d+4>>2];b={label:Z(b+4),code:""};switch(e){case 2:b.code=nd(d+8)}a=Y(a).createShaderModule(b);X[c>>>0]=a},Db:a=>{a=Y(a);a.onuncapturederror=
112
+ null;a.destroy()},yb:()=>{var a=navigator.gpu.getPreferredCanvasFormat();return be[a]},zb:function(a,b,c,d){b=R(b);if(c){var e={featureLevel:Md[y[c+4>>2]],powerPreference:Rd[y[c+8>>2]],forceFallbackAdapter:!!y[c+12>>2]};a=y[c>>2];0!==a&&(e.Xe=!!y[a+8>>2])}"gpu"in navigator?navigator.gpu.requestAdapter(e).then(f=>{mc(()=>{if(f)X[d>>>0]=f,Ge(b,1,d,0);else{var g=fe(),m=kd("WebGPU not available on this browser (requestAdapter returned null)");Ge(b,3,d,m);ge(g)}})},f=>{mc(()=>{var g=fe(),m=kd(f.message);
113
+ Ge(b,4,d,m);ge(g)})}):(e=fe(),a=kd("WebGPU not available on this browser (navigator.gpu is not available)"),Ge(b,3,d,a),ge(e))},rb:(a,b)=>{var c=0,d=0,e;for(e of ee()){var f=b+c;y[a+d>>2]=f;c+=G(e,u,f,Infinity)+1;d+=4}return 0},sb:(a,b)=>{var c=ee();y[a>>2]=c.length;a=0;for(var d of c)a+=$a(d)+1;y[b>>2]=a;return 0},_:a=>{ra=a;kc(a)},i:function(a){try{var b=Fb(a);Tb(b);return 0}catch(c){if("undefined"==typeof O||"ErrnoError"!==c.name)throw c;return c.Bc}},ob:function(a,b,c,d){try{a:{var e=Fb(a);a=
114
+ b;for(var f,g=b=0;g<c;g++){var m=y[a>>2],n=y[a+4>>2];a+=8;var p=e,r=m,l=n,q=f,v=k;if(0>l||0>q)throw new H(28);if(null===p.fd)throw new H(8);if(1===(p.flags&2097155))throw new H(8);if(M(p.node.mode))throw new H(31);if(!p.tc.read)throw new H(28);var x="undefined"!=typeof q;if(!x)q=p.position;else if(!p.seekable)throw new H(70);var C=p.tc.read(p,v,r,l,q);x||(p.position+=C);var F=C;if(0>F){var I=-1;break a}b+=F;if(F<n)break;"undefined"!=typeof f&&(f+=F)}I=b}y[d>>2]=I;return 0}catch(Q){if("undefined"==
115
+ typeof O||"ErrnoError"!==Q.name)throw Q;return Q.Bc}},lb:function(a,b,c,d){b=R(b);try{if(isNaN(b))return 61;var e=Fb(a);Ub(e,b,c);B[d>>3]=BigInt(e.position);e.ud&&0===b&&0===c&&(e.ud=null);return 0}catch(f){if("undefined"==typeof O||"ErrnoError"!==f.name)throw f;return f.Bc}},nb:function(a,b,c,d){try{a:{var e=Fb(a);a=b;for(var f,g=b=0;g<c;g++){var m=y[a>>2],n=y[a+4>>2];a+=8;var p=Vb(e,k,m,n,f);if(0>p){var r=-1;break a}b+=p;if(p<n)break;"undefined"!=typeof f&&(f+=p)}r=b}y[d>>2]=r;return 0}catch(l){if("undefined"==
116
+ typeof O||"ErrnoError"!==l.name)throw l;return l.Bc}},Ua:function(a,b){var c=new URL(window.location.href),d=c.searchParams;b=P(b).split(",");for(var e=0;e<b.length;++e)b[e]&&d.delete(b[e]);(new URLSearchParams(P(a))).forEach(function(f,g){d.set(g,f)});history.replaceState(null,"",c)},T:function(a,b,c,d){a=P(a);c=new Uint8Array(u.subarray(c,c+d));b=new Blob([c],{type:P(b)});var e=URL.createObjectURL(b);b=document.createElement("a");b.href=e;b.download=a;b.style.display="none";document.body.appendChild(b);
117
+ b.click();document.body.removeChild(b);setTimeout(function(){URL.revokeObjectURL(e)},1E3)},Qa:function(a){var b=P(a);ie();h.__nhIdbOpen().then(function(c){c.transaction("blobs","readwrite").objectStore("blobs").delete(b)}).catch(function(c){console.warn("nodehammer: IDB delete failed",c)})},Sa:function(a){var b=P(a);ie();h.__nhIdbOpen().then(function(c){var d=c.transaction("blobs","readonly").objectStore("blobs").get(b);d.onsuccess=function(){var e=d.result;if(e){e=new Uint8Array(e);var f=h._malloc(e.length);
118
+ h.HEAPU8.set(e,f);h._nh_viewer_project_blob_loaded(f,e.length);h._free(f)}else h._nh_viewer_project_blob_loaded(0,0)};d.onerror=function(){h._nh_viewer_project_blob_loaded(0,0)}}).catch(function(c){console.warn("nodehammer: IDB get failed",c);h._nh_viewer_project_blob_loaded(0,0)})},Ra:function(a,b,c){var d=P(a),e=new Uint8Array(u.subarray(b,b+c));ie();h.__nhIdbOpen().then(function(f){f.transaction("blobs","readwrite").objectStore("blobs").put(e,d)}).catch(function(f){console.warn("nodehammer: IDB put failed",
119
+ f)})},Ya:function(a){function b(l){l=l.dataTransfer&&l.dataTransfer.types;if(!l)return!1;for(var q=0;q<l.length;++q)if("Files"===l[q])return!0;return!1}function c(l,q){var v=h,x=v._nh_viewer_platform_set_drag_hover,C=q?q.clientX:0,F=q?q.clientY:0;var I=q?(I=q.dataTransfer&&q.dataTransfer.items)?I.length:0:0;x.call(v,a,l?1:0,C,F,I,q&&b(q)?1:0)}function d(){h._nh_viewer_save_persistent_state()}function e(l,q,v){h._nh_viewer_platform_push_pinch(a,l,q,v?v.clientX:0,v?v.clientY:0,v?(v.shiftKey?1:0)|(v.ctrlKey?
120
+ 2:0)|(v.altKey?4:0)|(v.metaKey?8:0):0)}function f(l){if(!l||2>l.length)return 0;var q=l[0].clientX-l[1].clientX;l=l[0].clientY-l[1].clientY;return Math.sqrt(q*q+l*l)}function g(l){return{clientX:.5*(l[0].clientX+l[1].clientX),clientY:.5*(l[0].clientY+l[1].clientY),ctrlKey:!1,shiftKey:!1,altKey:!1,metaKey:!1}}if(!h.__nhWindowObserversInstalled){h.__nhWindowObserversInstalled=!0;var m=h.canvas||document.getElementById("canvas");if(m){var n=0;m.addEventListener("dragenter",function(l){++n;c(!0,l)});
121
+ m.addEventListener("dragover",function(l){b(l)&&l.preventDefault();c(!0,l)});m.addEventListener("dragleave",function(l){n=Math.max(0,n-1);0===n&&c(!1,l)});m.addEventListener("drop",function(l){n=0;c(!1,l)});window.addEventListener("blur",function(l){n=0;c(!1,l)});window.addEventListener("beforeunload",d);window.addEventListener("pagehide",d);document.addEventListener("visibilitychange",function(){"hidden"===document.visibilityState&&d()});var p=1;m.addEventListener("wheel",function(l){if(l.ctrlKey||
122
+ l.metaKey)l.preventDefault(),e(1,Math.exp(.01*-l.deltaY),l)},{passive:!1});m.addEventListener("gesturestart",function(l){p=l.scale||1;l.preventDefault();e(0,1,l)},{passive:!1});m.addEventListener("gesturechange",function(l){var q=l.scale||p,v=0!==p?q/p:1;p=q;l.preventDefault();e(1,v,l)},{passive:!1});m.addEventListener("gestureend",function(l){l.preventDefault();e(2,1,l)},{passive:!1});var r=0;m.addEventListener("touchstart",function(l){2===l.touches.length&&(r=f(l.touches),l.preventDefault(),e(0,
123
+ 1,g(l.touches)))},{passive:!1});m.addEventListener("touchmove",function(l){if(2===l.touches.length&&0<r){var q=f(l.touches);l.preventDefault();e(1,q/r,g(l.touches));r=q}},{passive:!1});m.addEventListener("touchend",function(l){0<r&&2>l.touches.length&&(r=0,e(2,1,l.changedTouches&&l.changedTouches[0]?l.changedTouches[0]:l))},{passive:!1});m.addEventListener("touchcancel",function(l){0<r&&(r=0,e(3,1,l.changedTouches&&l.changedTouches[0]?l.changedTouches[0]:l))},{passive:!1})}}},Xa:function(a){try{var b=
124
+ "nodehammer.viewer."+P(a),c=window.localStorage.getItem(b);if(null===c)return 0;var d=$a(c)+1,e=U(d);G(c,u,e,d);return e}catch(f){return console.warn("nodehammer: failed to load persistent text",f),0}},Na:function(){var a=document.createElement("input");a.type="file";a.accept=".nhproj";a.style.display="none";a.addEventListener("change",async function(b){b=Array.from(b.target.files);document.body.removeChild(a);if(0!==b.length){b=await b[0].arrayBuffer();b=new Uint8Array(b);var c=h._malloc(b.length);
125
+ h.HEAPU8.set(b,c);h._nh_viewer_open_archive(c,b.length);h._free(c)}});document.body.appendChild(a);a.click()},Oa:function(){var a=document.createElement("input");a.type="file";a.multiple=!0;a.accept=".nhproj,.toml,.lua,.nhb,.zst,.gltf,.glb,.gdml,.root,.fb,.json,.xml";a.style.display="none";a.addEventListener("change",async function(b){b=Array.from(b.target.files);document.body.removeChild(a);if(0!==b.length){for(var c=await Promise.all(b.map(function(r){return r.arrayBuffer()})),d=h._nh_viewer_begin_upload_batch(),
126
+ e=new TextEncoder,f=0;f<b.length;++f){var g=new Uint8Array(c[f]),m=g.length,n=h._malloc(m);h.HEAPU8.set(g,n);g=e.encode(b[f].name);var p=h._malloc(g.length+1);h.HEAPU8.set(g,p);h.HEAPU8[p+g.length]=0;h._nh_viewer_add_upload(d,p,n,m);h._free(p);h._free(n)}h._nh_viewer_end_upload_batch(d)}});document.body.appendChild(a);a.click()},Ta:function(a){(a=P(a))&&window.open(a,"_blank","noopener,noreferrer")},Pa:function(){var a=window.location.pathname,b=a.slice(0,a.lastIndexOf("/")+1),c=new TextEncoder;Promise.all("index.html nodehammer-gles3.js nodehammer-gles3.wasm nodehammer-wgpu.js nodehammer-wgpu.wasm nodehammer-compute.js nodehammer-compute.wasm".split(" ").map(function(d){return fetch(b+
127
+ d,{cache:"no-store"}).then(function(e){return e.ok?e.arrayBuffer().then(function(f){return{name:d,ce:f}}):null}).catch(function(){return null})})).then(function(d){for(var e=0;e<d.length;++e){var f=d[e];if(f){var g=new Uint8Array(f.ce),m=h._malloc(g.length);h.HEAPU8.set(g,m);f=c.encode(f.name);var n=h._malloc(f.length+1);h.HEAPU8.set(f,n);h.HEAPU8[n+f.length]=0;h._nh_viewer_publish_add_file(n,m,g.length);h._free(n);h._free(m)}}h._nh_viewer_publish_finalize()})},Va:function(a,b){try{var c="nodehammer.viewer."+
128
+ P(a);window.localStorage.setItem(c,P(b))}catch(d){console.warn("nodehammer: failed to save persistent text",d)}},xa:function(){try{if(h.__nhWorker&&h.__nhWorker.worker)return 1;var a={worker:null,status:0,md:0,ld:0,error:"",fatal:0,yd:0,Ad:0,total:0},b=new Worker("compute_worker.js");b.onmessage=function(c){c=c.data||{};if("progress"===c.nh)a.yd=c.phase,a.Ad=c.processed,a.total=c.total;else if("error"===c.nh)a.error=c.message||"compute worker error",c.fatal&&(a.fatal=1),a.status=3;else if("result"===
129
+ c.nh){c=new Uint8Array(c.buffer);var d=U(c.length);u.set(c,d);a.md=d;a.ld=c.length;a.status=2}};b.onerror=function(c){a.error="compute worker error: "+(c&&c.message?c.message:c);a.fatal=1;a.status=3};a.worker=b;h.__nhWorker=a;return 1}catch(c){return 0}},ga:function(){var a=h.__nhWorker;return a&&a.fatal?1:0},g:function(){var a=h.__nhWorker;return a?a.yd:0},q:function(a,b,c,d,e,f,g,m){var n=h.__nhWorker;n.status=1;n.error="";n.md=0;n.ld=0;n.yd=1;n.Ad=0;n.total=0;a={nh:"build",epoch:a>>>0,wedge:e?
130
+ {startDeg:f,endDeg:g,margin:m}:null};e=[];b&&(b=u.slice(b,b+c).buffer,a.sceneBytes=b,a.configToml=d?P(d):"",e.push(b));n.worker.postMessage(a,e)},Fa:function(){var a="";try{a=((new URLSearchParams(self.location.search)).get("compute")||"").toLowerCase()}catch(b){}return"main"===a||"cooperative"===a?0:"function"===typeof Worker?1:0},U:function(){var a=h.__nhWorker;return a?a.Ad:0},n:function(){var a=h.__nhWorker;a&&(a.status=0,a.md=0,a.ld=0,a.error="")},eb:function(){var a=h.__nhWorker;return a?a.ld:
131
+ 0},pb:function(){var a=h.__nhWorker;return a?a.md:0},xb:function(){var a=h.__nhWorker;return a?a.status:0},Y:function(){var a=h.__nhWorker;a=a&&a.error?a.error:"";var b=$a(a)+1,c=U(b);G(a,u,c,b);return c},V:function(){var a=h.__nhWorker;return a?a.total:0},db:kc,La:function(){h.Vd=a=>{0!=me()&&(a.preventDefault(),a.returnValue=" ")};window.addEventListener("beforeunload",h.Vd)},Ka:function(){h.ae=a=>{const b=a.clipboardData.getData("text");he(()=>{const c=kd(b);le(c)})};window.addEventListener("paste",
132
+ h.ae)},Ja:function(){h.Re=[];h.Wd=b=>{b.stopPropagation();b.preventDefault()};h.Xd=b=>{b.stopPropagation();b.preventDefault()};h.Yd=b=>{b.stopPropagation();b.preventDefault()};h.Zd=b=>{b.stopPropagation();b.preventDefault();const c=b.dataTransfer.files;h.$d=c;ne(c.length);for(let e=0;e<c.length;e++)he(()=>{const f=kd(c[e].name);oe(e,f)});let d=0;b.shiftKey&&(d|=1);b.ctrlKey&&(d|=2);b.altKey&&(d|=4);b.metaKey&&(d|=8);pe(b.clientX,b.clientY,d)};const a=h.bd;a.addEventListener("dragenter",h.Wd,!1);a.addEventListener("dragleave",
133
+ h.Xd,!1);a.addEventListener("dragover",h.Yd,!1);a.addEventListener("drop",h.Zd,!1)},Da:function(){const a=document.getElementById("sokol-app-favicon");a&&document.head.removeChild(a)},Ga:function(a){h.od&&(URL.revokeObjectURL(h.od[a].re),h.od[a]=null)},t:function(a){const b=h.$d;return 0>a||a>=b.length?0:b[a].size},Ba:function(a,b,c,d,e){const f=new FileReader;f.onload=g=>{g=g.target.result;g.byteLength>d?qe(a,0,1,b,0,c,d,e):(u.set(new Uint8Array(g),c),qe(a,1,0,b,g.byteLength,c,d,e))};f.onerror=()=>
134
+ {qe(a,0,2,b,0,c,d,e)};f.readAsArrayBuffer(h.$d[a])},Ma:function(a,b){0!==b&&(document.title=P(b));a=P(a);void 0!==h.canvas&&("object"===typeof h.canvas?Ic[a]=h.canvas:console.warn("sokol_app.h: Module['canvas'] is set but is not an object"));h.bd=S(a);h.bd||console.warn("sokol_app.h: can't find html5_canvas_selector ",a);h.bd.requestPointerLock||console.warn("sokol_app.h: target doesn't support requestPointerLock: ",a)},ca:function(){window.removeEventListener("beforeunload",h.Vd)},ba:function(){window.removeEventListener("paste",
135
+ h.ae)},aa:function(){const a=h.bd;a.removeEventListener("dragenter",h.Wd);a.removeEventListener("dragleave",h.Xd);a.removeEventListener("dragover",h.Yd);a.removeEventListener("drop",h.Zd)},o:function(){h.bd&&h.bd.requestPointerLock&&h.bd.requestPointerLock()},u:function(a,b,c){if(h.bd){if(0===b)a="none";else if(0!=c)a=h.od[a].ye;else switch(a){case 0:a="auto";break;case 1:a="default";break;case 2:a="text";break;case 3:a="crosshair";break;case 4:a="pointer";break;case 5:a="ew-resize";break;case 6:a=
136
+ "ns-resize";break;case 7:a="nwse-resize";break;case 8:a="nesw-resize";break;case 9:a="all-scroll";break;case 10:a="not-allowed";break;default:a="auto"}h.bd.style.cursor=a}},Ca:function(a,b,c){const d=document.createElement("canvas");d.width=a;d.height=b;const e=d.getContext("2d"),f=e.createImageData(a,b);f.data.set(u.subarray(c,c+a*b*4));e.putImageData(f,0,0);a=document.createElement("link");a.id="sokol-app-favicon";a.rel="shortcut icon";a.href=d.toDataURL();document.head.appendChild(a)},Ea:function(a){a=
137
+ P(a);const b=document.createElement("textarea");b.setAttribute("autocomplete","off");b.setAttribute("autocorrect","off");b.setAttribute("autocapitalize","off");b.setAttribute("spellcheck","false");b.style.left="-100px";b.style.top="-100px";b.style.height=1;b.style.width=1;b.value=a;document.body.appendChild(b);b.select();document.execCommand("copy");document.body.removeChild(b)},X:function(){return navigator.userAgent.includes("Macintosh")?1:0},p:function(a,b){b=P(b);switch(a){case 0:console.error(b);
138
+ break;case 1:console.error(b);break;case 2:console.warn(b);break;default:console.info(b)}},Mb:(a,b)=>{Id(Y(a).limits,b);return 1},c:(a,b)=>Y(a).features.has(Nd[b]),ta:(a,b)=>{var c;b&&(c={label:Z(b+4),timestampWrites:td(y[b+12>>2])});b=Y(a);a=ve(0);c=b.beginComputePass(c);X[a>>>0]=c;return a},sa:(a,b)=>{var c=y[b>>2],d=void 0;0!==c&&(d=4294967296*y[c+12>>2]+y[c+8>>2]);c=Z(b+4);for(var e=y[b+12>>2],f=y[b+16>>2],g=[],m=0;m<e;++m){var n=g,p=n.push;var r=f+56*m;var l=y[r+4>>2];if(0!==l){var q=w[r+8>>
139
+ 2];-1==q&&(q=void 0);r={view:Y(l),depthSlice:q,resolveTarget:Y(y[r+12>>2]),clearValue:od(r+24),loadOp:Pd[y[r+16>>2]],storeOp:Vd[y[r+20>>2]]}}else r=void 0;p.call(n,r)}e=y[b+20>>2];e=0!==e?{view:Y(y[e+4>>2]),depthClearValue:wa[e+16>>2],depthLoadOp:Pd[y[e+8>>2]],depthStoreOp:Vd[y[e+12>>2]],depthReadOnly:!!y[e+20>>2],stencilClearValue:y[e+32>>2],stencilLoadOp:Pd[y[e+24>>2]],stencilStoreOp:Vd[y[e+28>>2]],stencilReadOnly:!!y[e+36>>2]}:void 0;b={label:c,colorAttachments:g,depthStencilAttachment:e,occlusionQuerySet:Y(y[b+
140
+ 24>>2]),timestampWrites:td(y[b+28>>2]),maxDrawCount:d};d=Y(a);a=ye(0);b=d.beginRenderPass(b);X[a>>>0]=b;return a},Wa:(a,b,c,d)=>{d=pd(d);a=Y(a);var e=a.copyTextureToBuffer;b=rd(b);var f=sd(c+0);f.buffer=Y(y[c+16>>2]);e.call(a,b,f,d)},S:a=>{var b=Y(a);a=te(0);b=b.finish();X[a>>>0]=b;return a},fa:a=>{Y(a).end()},e:(a,b,c,d,e)=>{a=Y(a);c=Y(c);0==d?a.setBindGroup(b,c):a.setBindGroup(b,c,y,e>>2,d)},pa:(a,b)=>{Y(a).setPipeline(Y(b))},r:(a,b)=>{var c=Z(b+4),d=Y(y[b+12>>2]),e=y[b+16>>2];b=y[b+20>>2];for(var f=
141
+ [],g=0;g<e;++g){var m=f,n=m.push;var p=b+40*g;var r=y[p+8>>2],l=y[p+32>>2],q=y[p+36>>2],v=y[p+4>>2];r?(l=p+24,l=y[l>>2]+4294967296*w[l+4>>2],-1==l&&(l=void 0),p={binding:v,resource:{buffer:Y(r),offset:4294967296*y[p+4+16>>2]+y[p+16>>2],size:l}}):p=l?{binding:v,resource:Y(l)}:{binding:v,resource:Y(q)};n.call(m,p)}c={label:c,layout:d,entries:f};d=Y(a);a=re(0);c=d.createBindGroup(c);X[a>>>0]=c;return a},s:(a,b)=>{var c=Z(b+4),d=y[b+12>>2];b=y[b+16>>2];for(var e=[],f=0;f<d;++f){var g=e,m=g.push,n=b+88*
142
+ f,p=y[n+4>>2],r=y[n+8>>2];var l=n+24;var q=y[l+4>>2];l=q?{type:Kd[q],hasDynamicOffset:!!y[l+8>>2],minBindingSize:4294967296*y[l+4+16>>2]+y[l+16>>2]}:void 0;q=(q=y[n+48+4>>2])?{type:Td[q]}:void 0;var v=n+56;var x=y[v+4>>2];v=x?{sampleType:Xd[x],viewDimension:Yd[y[v+8>>2]],multisampled:!!y[v+12>>2]}:void 0;n+=72;n=(x=y[n+4>>2])?{access:Ud[x],format:Gd[y[n+8>>2]],viewDimension:Yd[y[n+12>>2]]}:void 0;m.call(g,{binding:p,visibility:r,buffer:l,sampler:q,texture:v,storageTexture:n})}c={label:c,entries:e};
143
+ d=Y(a);a=se(0);c=d.createBindGroupLayout(c);X[a>>>0]=c;return a},Z:(a,b)=>{var c;b&&(c={label:Z(b+4)});b=Y(a);a=ue(0);c=b.createCommandEncoder(c);X[a>>>0]=c;return a},va:(a,b)=>{var c=Z(b+4);var d=vd(y[b+12>>2]);b=(b+=16)?{module:Y(y[b+4>>2]),constants:ud(y[b+16>>2],y[b+20>>2]),entryPoint:Z(b+8)}:void 0;c={label:c,layout:d,compute:b};d=Y(a);a=we(0);c=d.createComputePipeline(c);X[a>>>0]=c;return a},wa:(a,b)=>{for(var c=y[b+12>>2],d=y[b+16>>2],e=[],f=0;f<c;++f)e.push(Y(y[d+4*f>>2]));b={label:Z(b+4),
144
+ bindGroupLayouts:e};c=Y(a);a=xe(0);b=c.createPipelineLayout(b);X[a>>>0]=b;return a},ua:(a,b)=>{b=Hd(b);var c=Y(a);a=ze(0);b=c.createRenderPipeline(b);X[a>>>0]=b;return a},ya:(a,b)=>{var c;b&&(c={label:Z(b+4),addressModeU:Jd[y[b+12>>2]],addressModeV:Jd[y[b+16>>2]],addressModeW:Jd[y[b+20>>2]],magFilter:Od[y[b+24>>2]],minFilter:Od[y[b+28>>2]],mipmapFilter:Qd[y[b+32>>2]],lodMinClamp:wa[b+36>>2],lodMaxClamp:wa[b+40>>2],compare:yd[y[b+44>>2]],maxAnisotropy:va[b+48>>1]});b=Y(a);a=Ae(0);c=b.createSampler(c);
145
+ X[a>>>0]=c;return a},h:(a,b)=>{var c={label:Z(b+4),size:pd(b+28),mipLevelCount:y[b+44>>2],sampleCount:y[b+48>>2],dimension:Wd[y[b+24>>2]],format:Gd[y[b+40>>2]],usage:y[b+16>>2]},d=y[b+52>>2];d&&(b=y[b+56>>2],c.viewFormats=Array.from(w.subarray(b>>2,b+4*d>>2),e=>Gd[e]));a=Y(a);d=Ce(0);ld(d,a.createTexture(c));return d},za:(a,b)=>{Id(Y(a).limits,b);return 1},b:(a,b)=>Y(a).features.has(Nd[b]),$:(a,b)=>{a=S(y[y[b>>2]+8>>2]).getContext("webgpu");if(!a)return 0;a.Te=Z(b+4);b=Be(0);X[b>>>0]=a;return b},
146
+ I:(a,b,c)=>{a=Y(a);b=Array.from(w.subarray(c>>2,c+4*b>>2),d=>Y(d));a.submit(b)},k:function(a,b,c,d,e){c=R(c);Y(a).writeBuffer(Y(b),c,u.subarray(d,d+e),0,e)},Lb:(a,b,c,d,e,f)=>{Y(a).writeTexture(rd(b),u.subarray(c,c+d),sd(e),pd(f))},ia:(a,b,c,d,e)=>{Y(a).draw(b,c,d>>>0,e>>>0)},ja:(a,b,c,d,e,f)=>{Y(a).drawIndexed(b,c,d>>>0,e,f>>>0)},ha:a=>{Y(a).end()},d:(a,b,c,d,e)=>{a=Y(a);c=Y(c);0==d?a.setBindGroup(b,c):a.setBindGroup(b,c,y,e>>2,d)},na:(a,b)=>{Y(a).setBlendConstant(od(b))},la:function(a,b,c,d,e){d=
147
+ R(d);e=R(e);a=Y(a);b=Y(b);-1==e&&(e=void 0);a.setIndexBuffer(b,Dd[c],d,e)},oa:(a,b)=>{Y(a).setPipeline(Y(b))},qa:(a,b,c,d,e)=>{Y(a).setScissorRect(b,c,d,e)},ma:(a,b)=>{Y(a).setStencilReference(b>>>0)},ka:function(a,b,c,d,e){d=R(d);e=R(e);a=Y(a);c=Y(c);-1==e&&(e=void 0);a.setVertexBuffer(b,c,d,e)},ra:(a,b,c,d,e,f,g)=>{Y(a).setViewport(b,c,d,e,f,g)},Nb:(a,b)=>{var c=y[b+4>>2];a=Y(a);var d=[y[b+24>>2],y[b+28>>2]];0!==d[0]&&(a.canvas.width=d[0]);0!==d[1]&&(a.canvas.height=d[1]);c={device:Y(c),format:Gd[y[b+
148
+ 8>>2]],usage:y[b+16>>2],alphaMode:Ld[y[b+40>>2]]};if(d=y[b+32>>2]){var e=y[b+36>>2];c.viewFormats=Array.from(w.subarray(e>>2,e+4*d>>2),f=>Gd[f])}b=y[b>>2];0!==b&&(c.colorSpace=Sd[y[b+8>>2]],c.Ve={mode:Zd[y[b+12>>2]]});a.configure(c)},Aa:(a,b)=>{a=Y(a);try{var c=Ce(0),d=a.getCurrentTexture();X[c>>>0]=d;y[b+4>>2]=c;w[b+8>>2]=1}catch(e){y[b+4>>2]=0,w[b+8>>2]=6}},f:(a,b)=>{if(b){var c=y[b+24>>2];var d=y[b+32>>2];c={label:Z(b+4),format:Gd[y[b+12>>2]],dimension:Yd[y[b+16>>2]],baseMipLevel:y[b+20>>2],mipLevelCount:4294967295===
149
+ c?void 0:c,baseArrayLayer:y[b+28>>2],arrayLayerCount:4294967295===d?void 0:d,aspect:qd[y[b+36>>2]]}}b=Y(a);a=De(0);b=b.createView(c);X[a>>>0]=b;return a}};function Me(a=[]){var b=je;a.unshift(ea);var c=a.length,d=jd(4*(c+1)),e=d,f;for(f of a)y[e>>2]=kd(f),e+=4;y[e>>2]=0;try{var g=b(c,d);ra=g;kc(g)}catch(m){jc(m)}}
150
+ function Ne(a=da){function b(){h.calledRun=!0;if(!qa){sa=!0;if(!h.noFSInit&&!ub){var c,d;ub=!0;c??=h.stdin;d??=h.stdout;e??=h.stderr;c?Zb("/dev","stdin",c):Ob("/dev/tty","/dev/stdin");d?Zb("/dev","stdout",null,d):Ob("/dev/tty","/dev/stdout");e?Zb("/dev","stderr",null,e):Ob("/dev/tty1","/dev/stderr");Sb("/dev/stdin",0);Sb("/dev/stdout",1);Sb("/dev/stderr",1)}Oe.Pb();vb=!1;h.onRuntimeInitialized?.();h.noInitialRun||Me(a);if(h.postRun)for("function"==typeof h.postRun&&(h.postRun=[h.postRun]);h.postRun.length;){var e=
151
+ h.postRun.shift();Ea.push(e)}Da(Ea)}}if(0<Ha)Ia=Ne;else{if(h.preRun)for("function"==typeof h.preRun&&(h.preRun=[h.preRun]);h.preRun.length;)Ga();Da(Fa);0<Ha?Ia=Ne:h.setStatus?(h.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>h.setStatus(""),1);b()},1)):b()}}var Oe;
152
+ (async function(){function a(c){c=Oe=c.exports;h._nh_viewer_start=c.Qb;je=h._main=c.Rb;U=h._malloc=c.Tb;dd=c.Ub;ke=h._free=c.Vb;h._nh_viewer_begin_upload_batch=c.Wb;h._nh_viewer_add_upload=c.Xb;h._nh_viewer_end_upload_batch=c.Yb;h._nh_viewer_open_archive=c.Zb;h._nh_viewer_publish_add_file=c._b;h._nh_viewer_publish_finalize=c.$b;h._nh_viewer_platform_set_drag_hover=c.ac;h._nh_viewer_platform_push_pinch=c.bc;h._nh_viewer_save_persistent_state=c.cc;h._nh_viewer_project_blob_loaded=c.dc;le=h.__sapp_emsc_onpaste=
153
+ c.ec;me=h.__sapp_html5_get_ask_leave_site=c.fc;ne=h.__sapp_emsc_begin_drop=c.gc;oe=h.__sapp_emsc_drop=c.hc;pe=h.__sapp_emsc_end_drop=c.ic;qe=h.__sapp_emsc_invoke_fetch_cb=c.jc;h.__sapp_emsc_set_fullscreen_flag=c.kc;re=c.lc;se=c.mc;te=c.nc;ue=c.oc;ve=c.pc;we=c.qc;xe=c.rc;ye=c.vc;ze=c.wc;Ae=c.xc;Be=c.yc;Ce=c.zc;De=c.Ac;Ee=c.Gc;Fe=c.Hc;Ge=c.Ic;He=c.Jc;Ie=c.Kc;Je=c.Lc;Ke=c.Mc;xa=c.Nc;ge=c.Oc;jd=c.Pc;fe=c.Qc;ua=c.Ob;V=c.Sb;ta();Ja("wasm-instantiate");return Oe}Ka("wasm-instantiate");var b={a:Le};if(h.instantiateWasm)return new Promise(c=>
154
+ {h.instantiateWasm(b,(d,e)=>{c(a(d,e))})});ya??=h.locateFile?h.locateFile("nodehammer-wgpu.wasm",ia):ia+"nodehammer-wgpu.wasm";return a((await Ba(b)).instance)})();Ne();
@@ -0,0 +1,47 @@
1
+ Metadata-Version: 2.4
2
+ Name: nodehammer-web
3
+ Version: 0.2.0rc3
4
+ Summary: The nodehammer web viewer runtime: WebAssembly bundles and their shell
5
+ Author: Paul Gessinger
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/paulgessinger/nodehammer
8
+ Classifier: Programming Language :: Python :: 3 :: Only
9
+ Classifier: Topic :: Scientific/Engineering :: Physics
10
+ Classifier: Topic :: Scientific/Engineering :: Visualization
11
+ Requires-Python: >=3.12
12
+ Description-Content-Type: text/markdown
13
+ License-File: LICENSE
14
+ Dynamic: license-file
15
+
16
+ # nodehammer-web
17
+
18
+ The WebAssembly viewer runtime for [nodehammer](https://github.com/paulgessinger/nodehammer).
19
+
20
+ This package is a payload, not a program: it carries the Emscripten build of the
21
+ nodehammer viewer — the bundles, the worker script and the page that loads them —
22
+ and one function that says where they are.
23
+
24
+ ```python
25
+ import nodehammer_web
26
+
27
+ nodehammer_web.runtime_dir() # -> .../site-packages/nodehammer_web/runtime
28
+ ```
29
+
30
+ You do not normally call that. Installing this package alongside `nodehammer` is
31
+ what makes
32
+
33
+ ```console
34
+ $ nodehammer viewer --web
35
+ ```
36
+
37
+ open the viewer in a browser: the command stages a servable directory from this
38
+ runtime, serves it on loopback and opens a tab. Without it, that command reports
39
+ that it could not find a runtime and lists where it looked.
40
+
41
+ It is a separate distribution because it is built by a different toolchain than
42
+ the platform wheel — no native build can produce WebAssembly — and because a
43
+ headless install has no use for 7 MB of it.
44
+
45
+ Versions move together with `nodehammer`, and the two are checked against each
46
+ other at load time rather than only by the resolver: the runtime carries a schema
47
+ id, and the library refuses one it was not built against.
@@ -0,0 +1,15 @@
1
+ nodehammer_web/__init__.py,sha256=wnTgvVWuEb2DaWMI7T27We4x_QH_azcNemk2SFl9Vh4,3702
2
+ nodehammer_web/runtime/compute_worker.js,sha256=v7QQblMhcnFmRpfDz1TbB9i28z4dN2gN2q77EDAIjvo,4104
3
+ nodehammer_web/runtime/index.html,sha256=Ud1vJN3QcAYvJ6peajUge0UyKBypd7jcnn5RbtM-aSU,10406
4
+ nodehammer_web/runtime/nh_runtime.json,sha256=g11wEM92ey3aolJseWaERJsumKZ1zv2WEGqvR1FIUQc,43
5
+ nodehammer_web/runtime/nodehammer-compute.js,sha256=y-MA39at3ZnwJs1TYijVbVEc-Uo1gdwOYpWurVRdLy0,21994
6
+ nodehammer_web/runtime/nodehammer-compute.wasm,sha256=aIokN6m-khDFlIV1Za2EZ_xguX4nXH45fCVSc7wIcSo,1287070
7
+ nodehammer_web/runtime/nodehammer-gles3.js,sha256=Af5P4gjBBGNss_lEWdCp8XFs6ofdKzIsy7vbUNj3iEY,69733
8
+ nodehammer_web/runtime/nodehammer-gles3.wasm,sha256=a-nWNZWleis2oGauqZDPsCfXhEl_FGpQE3rTKC2i648,3219457
9
+ nodehammer_web/runtime/nodehammer-wgpu.js,sha256=rnCuejZ6KV9Kp4ufEuh8ipTSCyrm0nhycPerhWcxttU,74052
10
+ nodehammer_web/runtime/nodehammer-wgpu.wasm,sha256=K0bVsaRlhWACKE_1PX_yNDRTRF-46pSLRHEvuP10c4w,3252597
11
+ nodehammer_web-0.2.0rc3.dist-info/licenses/LICENSE,sha256=sgEG3Ap5RZMfo65kgT7ZkIASrsIiH7xuqpS1x-kseqg,1071
12
+ nodehammer_web-0.2.0rc3.dist-info/METADATA,sha256=CvEUz0ELAajhk_HTsv7bVIuUfcHLBHflrbKf6ignA2A,1756
13
+ nodehammer_web-0.2.0rc3.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
14
+ nodehammer_web-0.2.0rc3.dist-info/top_level.txt,sha256=ORLDKrK1EkDH1VQ1ZCz5OELDseK6OcOS3MzAWcDSXBc,15
15
+ nodehammer_web-0.2.0rc3.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (84.0.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Paul Gessinger
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1 @@
1
+ nodehammer_web