Page MenuHomePhabricator

D8390.diff
No OneTemporary

D8390.diff

diff --git a/.eslintignore b/.eslintignore
--- a/.eslintignore
+++ b/.eslintignore
@@ -7,6 +7,7 @@
web/flow-typed
web/node_modules
web/opaque-ke-wasm/pkg
+web/database/_generated
keyserver/app_compiled
keyserver/landing_compiled
keyserver/dist
diff --git a/.gitignore b/.gitignore
--- a/.gitignore
+++ b/.gitignore
@@ -9,6 +9,7 @@
web/node_modules
web/dist
+web/database/_generated/comm-query-executor.js.bak
keyserver/dist
keyserver/node_modules
diff --git a/web/database/_generated/comm-query-executor.js b/web/database/_generated/comm-query-executor.js
new file mode 100644
--- /dev/null
+++ b/web/database/_generated/comm-query-executor.js
@@ -0,0 +1,150 @@
+// @generated
+
+var Module = (() => {
+ var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;
+ if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;
+ return (
+function(Module) {
+ Module = Module || {};
+
+
+var e;e||(e=typeof Module !== 'undefined' ? Module : {});var aa,ba;e.ready=new Promise(function(a,b){aa=a;ba=b});var ca=Object.assign({},e),da="./this.program",ea="object"==typeof window,fa="function"==typeof importScripts,ha="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,m="",ia,ja,ka,fs,la,ma;
+if(ha)m=fa?require("path").dirname(m)+"/":__dirname+"/",ma=()=>{la||(fs=require("fs"),la=require("path"))},ia=function(a,b){ma();a=la.normalize(a);return fs.readFileSync(a,b?void 0:"utf8")},ka=a=>{a=ia(a,!0);a.buffer||(a=new Uint8Array(a));return a},ja=(a,b,c)=>{ma();a=la.normalize(a);fs.readFile(a,function(d,f){d?c(d):b(f.buffer)})},1<process.argv.length&&(da=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),e.inspect=function(){return"[Emscripten Module object]"};else if(ea||fa)fa?m=self.location.href:
+"undefined"!=typeof document&&document.currentScript&&(m=document.currentScript.src),_scriptDir&&(m=_scriptDir),0!==m.indexOf("blob:")?m=m.substr(0,m.replace(/[?#].*/,"").lastIndexOf("/")+1):m="",ia=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.send(null);return b.responseText},fa&&(ka=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),ja=(a,b,c)=>{var d=new XMLHttpRequest;d.open("GET",a,!0);d.responseType="arraybuffer";
+d.onload=()=>{200==d.status||0==d.status&&d.response?b(d.response):c()};d.onerror=c;d.send(null)};var na=e.print||console.log.bind(console),r=e.printErr||console.warn.bind(console);Object.assign(e,ca);ca=null;e.thisProgram&&(da=e.thisProgram);var oa;e.wasmBinary&&(oa=e.wasmBinary);var noExitRuntime=e.noExitRuntime||!0;"object"!=typeof WebAssembly&&x("no native wasm support detected");var pa,qa=!1,ra="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;
+function sa(a,b,c){var d=b+c;for(c=b;a[c]&&!(c>=d);)++c;if(16<c-b&&a.buffer&&ra)return ra.decode(a.subarray(b,c));for(d="";b<c;){var f=a[b++];if(f&128){var g=a[b++]&63;if(192==(f&224))d+=String.fromCharCode((f&31)<<6|g);else{var k=a[b++]&63;f=224==(f&240)?(f&15)<<12|g<<6|k:(f&7)<<18|g<<12|k<<6|a[b++]&63;65536>f?d+=String.fromCharCode(f):(f-=65536,d+=String.fromCharCode(55296|f>>10,56320|f&1023))}}else d+=String.fromCharCode(f)}return d}function y(a,b){return a?sa(z,a,b):""}
+function ta(a,b,c,d){if(!(0<d))return 0;var f=c;d=c+d-1;for(var g=0;g<a.length;++g){var k=a.charCodeAt(g);if(55296<=k&&57343>=k){var h=a.charCodeAt(++g);k=65536+((k&1023)<<10)|h&1023}if(127>=k){if(c>=d)break;b[c++]=k}else{if(2047>=k){if(c+1>=d)break;b[c++]=192|k>>6}else{if(65535>=k){if(c+2>=d)break;b[c++]=224|k>>12}else{if(c+3>=d)break;b[c++]=240|k>>18;b[c++]=128|k>>12&63}b[c++]=128|k>>6&63}b[c++]=128|k&63}}b[c]=0;return c-f}
+function ua(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}var va,A,z,C,wa,D,E,xa,ya;function za(){var a=pa.buffer;va=a;e.HEAP8=A=new Int8Array(a);e.HEAP16=C=new Int16Array(a);e.HEAP32=D=new Int32Array(a);e.HEAPU8=z=new Uint8Array(a);e.HEAPU16=wa=new Uint16Array(a);e.HEAPU32=E=new Uint32Array(a);e.HEAPF32=xa=new Float32Array(a);e.HEAPF64=ya=new Float64Array(a)}var Aa,Ca=[],Da=[],Ea=[];
+function Fa(){var a=e.preRun.shift();Ca.unshift(a)}var F=0,Ga=null,Ha=null;function Ia(){F++;e.monitorRunDependencies&&e.monitorRunDependencies(F)}function Ja(){F--;e.monitorRunDependencies&&e.monitorRunDependencies(F);if(0==F&&(null!==Ga&&(clearInterval(Ga),Ga=null),Ha)){var a=Ha;Ha=null;a()}}function x(a){if(e.onAbort)e.onAbort(a);a="Aborted("+a+")";r(a);qa=!0;a=new WebAssembly.RuntimeError(a+". Build with -sASSERTIONS for more info.");ba(a);throw a;}var Ka;Ka="comm-query-executor.wasm";
+if(!Ka.startsWith("data:application/octet-stream;base64,")){var La=Ka;Ka=e.locateFile?e.locateFile(La,m):m+La}
+function Ma(a){var b=Ka;try{a:{try{if(b==Ka&&oa){var c=new Uint8Array(oa);break a}if(ka){c=ka(b);break a}throw"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)";}catch(g){x(g)}c=void 0}var d=new WebAssembly.Module(c);var f=new WebAssembly.Instance(d,a)}catch(g){throw a=g.toString(),r("failed to compile wasm module: "+a),(a.includes("imported Memory")||a.includes("memory import"))&&r("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."),
+g;}return[f,d]}var H,J;function Na(a){for(;0<a.length;)a.shift()(e)}function Oa(a){this.ta=a-24;this.od=function(b){E[this.ta+4>>2]=b};this.cd=function(b){E[this.ta+8>>2]=b};this.dd=function(){D[this.ta>>2]=0};this.Pb=function(){A[this.ta+12>>0]=0};this.kd=function(){A[this.ta+13>>0]=0};this.cb=function(b,c){this.Ea();this.od(b);this.cd(c);this.dd();this.Pb();this.kd()};this.Ea=function(){E[this.ta+16>>2]=0}}
+var Pa=0,Qa=(a,b)=>{for(var c=0,d=a.length-1;0<=d;d--){var f=a[d];"."===f?a.splice(d,1):".."===f?(a.splice(d,1),c++):c&&(a.splice(d,1),c--)}if(b)for(;c;c--)a.unshift("..");return a},K=a=>{var b="/"===a.charAt(0),c="/"===a.substr(-1);(a=Qa(a.split("/").filter(d=>!!d),!b).join("/"))||b||(a=".");a&&c&&(a+="/");return(b?"/":"")+a},Ra=a=>{var b=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(a).slice(1);a=b[0];b=b[1];if(!a&&!b)return".";b&&(b=b.substr(0,b.length-1));return a+b},M=
+a=>{if("/"===a)return"/";a=K(a);a=a.replace(/\/$/,"");var b=a.lastIndexOf("/");return-1===b?a:a.substr(b+1)},Sa=(a,b)=>K(a+"/"+b);function Ta(){if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var a=new Uint8Array(1);return()=>{crypto.getRandomValues(a);return a[0]}}if(ha)try{var b=require("crypto");return()=>b.randomBytes(1)[0]}catch(c){}return()=>x("randomDevice")}
+function N(){for(var a="",b=!1,c=arguments.length-1;-1<=c&&!b;c--){b=0<=c?arguments[c]:O.cwd();if("string"!=typeof b)throw new TypeError("Arguments to path.resolve must be strings");if(!b)return"";a=b+"/"+a;b="/"===b.charAt(0)}a=Qa(a.split("/").filter(d=>!!d),!b).join("/");return(b?"/":"")+a||"."}
+var Ua=(a,b)=>{function c(k){for(var h=0;h<k.length&&""===k[h];h++);for(var n=k.length-1;0<=n&&""===k[n];n--);return h>n?[]:k.slice(h,n-h+1)}a=N(a).substr(1);b=N(b).substr(1);a=c(a.split("/"));b=c(b.split("/"));for(var d=Math.min(a.length,b.length),f=d,g=0;g<d;g++)if(a[g]!==b[g]){f=g;break}d=[];for(g=f;g<a.length;g++)d.push("..");d=d.concat(b.slice(f));return d.join("/")};function Va(a,b){var c=Array(ua(a)+1);a=ta(a,c,0,c.length);b&&(c.length=a);return c}var Wa=[];
+function Xa(a,b){Wa[a]={input:[],output:[],gb:b};O.Tb(a,Ya)}
+var Ya={open:function(a){var b=Wa[a.node.rdev];if(!b)throw new O.oa(43);a.tty=b;a.seekable=!1},close:function(a){a.tty.gb.flush(a.tty)},flush:function(a){a.tty.gb.flush(a.tty)},read:function(a,b,c,d){if(!a.tty||!a.tty.gb.lc)throw new O.oa(60);for(var f=0,g=0;g<d;g++){try{var k=a.tty.gb.lc(a.tty)}catch(h){throw new O.oa(29);}if(void 0===k&&0===f)throw new O.oa(6);if(null===k||void 0===k)break;f++;b[c+g]=k}f&&(a.node.timestamp=Date.now());return f},write:function(a,b,c,d){if(!a.tty||!a.tty.gb.Qb)throw new O.oa(60);
+try{for(var f=0;f<d;f++)a.tty.gb.Qb(a.tty,b[c+f])}catch(g){throw new O.oa(29);}d&&(a.node.timestamp=Date.now());return f}},Za={lc:function(a){if(!a.input.length){var b=null;if(ha){var c=Buffer.alloc(256),d=0;try{d=fs.readSync(process.stdin.fd,c,0,256,-1)}catch(f){if(f.toString().includes("EOF"))d=0;else throw f;}0<d?b=c.slice(0,d).toString("utf-8"):b=null}else"undefined"!=typeof window&&"function"==typeof window.prompt?(b=window.prompt("Input: "),null!==b&&(b+="\n")):"function"==typeof readline&&
+(b=readline(),null!==b&&(b+="\n"));if(!b)return null;a.input=Va(b,!0)}return a.input.shift()},Qb:function(a,b){null===b||10===b?(na(sa(a.output,0)),a.output=[]):0!=b&&a.output.push(b)},flush:function(a){a.output&&0<a.output.length&&(na(sa(a.output,0)),a.output=[])}},$a={Qb:function(a,b){null===b||10===b?(r(sa(a.output,0)),a.output=[]):0!=b&&a.output.push(b)},flush:function(a){a.output&&0<a.output.length&&(r(sa(a.output,0)),a.output=[])}};
+function ab(a){a=65536*Math.ceil(a/65536);var b=bb(65536,a);if(!b)return 0;z.fill(0,b,b+a);return b}
+var P={La:null,ya:function(){return P.createNode(null,"/",16895,0)},createNode:function(a,b,c,d){if(O.Sc(c)||O.isFIFO(c))throw new O.oa(63);P.La||(P.La={dir:{node:{Ia:P.qa.Ia,Ba:P.qa.Ba,lookup:P.qa.lookup,Pa:P.qa.Pa,rename:P.qa.rename,unlink:P.qa.unlink,rmdir:P.qa.rmdir,readdir:P.qa.readdir,symlink:P.qa.symlink},stream:{Ja:P.sa.Ja}},file:{node:{Ia:P.qa.Ia,Ba:P.qa.Ba},stream:{Ja:P.sa.Ja,read:P.sa.read,write:P.sa.write,ib:P.sa.ib,Xa:P.sa.Xa,fb:P.sa.fb}},link:{node:{Ia:P.qa.Ia,Ba:P.qa.Ba,readlink:P.qa.readlink},
+stream:{}},Zb:{node:{Ia:P.qa.Ia,Ba:P.qa.Ba},stream:O.Bc}});c=O.createNode(a,b,c,d);O.Aa(c.mode)?(c.qa=P.La.dir.node,c.sa=P.La.dir.stream,c.ra={}):O.isFile(c.mode)?(c.qa=P.La.file.node,c.sa=P.La.file.stream,c.xa=0,c.ra=null):O.eb(c.mode)?(c.qa=P.La.link.node,c.sa=P.La.link.stream):O.rb(c.mode)&&(c.qa=P.La.Zb.node,c.sa=P.La.Zb.stream);c.timestamp=Date.now();a&&(a.ra[b]=c,a.timestamp=c.timestamp);return c},wd:function(a){return a.ra?a.ra.subarray?a.ra.subarray(0,a.xa):new Uint8Array(a.ra):new Uint8Array(0)},
+ic:function(a,b){var c=a.ra?a.ra.length:0;c>=b||(b=Math.max(b,c*(1048576>c?2:1.125)>>>0),0!=c&&(b=Math.max(b,256)),c=a.ra,a.ra=new Uint8Array(b),0<a.xa&&a.ra.set(c.subarray(0,a.xa),0))},jd:function(a,b){if(a.xa!=b)if(0==b)a.ra=null,a.xa=0;else{var c=a.ra;a.ra=new Uint8Array(b);c&&a.ra.set(c.subarray(0,Math.min(b,a.xa)));a.xa=b}},qa:{Ia:function(a){var b={};b.dev=O.rb(a.mode)?a.id:1;b.ino=a.id;b.mode=a.mode;b.nlink=1;b.uid=0;b.gid=0;b.rdev=a.rdev;O.Aa(a.mode)?b.size=4096:O.isFile(a.mode)?b.size=a.xa:
+O.eb(a.mode)?b.size=a.link.length:b.size=0;b.atime=new Date(a.timestamp);b.mtime=new Date(a.timestamp);b.ctime=new Date(a.timestamp);b.yc=4096;b.blocks=Math.ceil(b.size/b.yc);return b},Ba:function(a,b){void 0!==b.mode&&(a.mode=b.mode);void 0!==b.timestamp&&(a.timestamp=b.timestamp);void 0!==b.size&&P.jd(a,b.size)},lookup:function(){throw O.Fb[44];},Pa:function(a,b,c,d){return P.createNode(a,b,c,d)},rename:function(a,b,c){if(O.Aa(a.mode)){try{var d=O.Oa(b,c)}catch(g){}if(d)for(var f in d.ra)throw new O.oa(55);
+}delete a.parent.ra[a.name];a.parent.timestamp=Date.now();a.name=c;b.ra[c]=a;b.timestamp=a.parent.timestamp;a.parent=b},unlink:function(a,b){delete a.ra[b];a.timestamp=Date.now()},rmdir:function(a,b){var c=O.Oa(a,b),d;for(d in c.ra)throw new O.oa(55);delete a.ra[b];a.timestamp=Date.now()},readdir:function(a){var b=[".",".."],c;for(c in a.ra)a.ra.hasOwnProperty(c)&&b.push(c);return b},symlink:function(a,b,c){a=P.createNode(a,b,41471,0);a.link=c;return a},readlink:function(a){if(!O.eb(a.mode))throw new O.oa(28);
+return a.link}},sa:{read:function(a,b,c,d,f){var g=a.node.ra;if(f>=a.node.xa)return 0;a=Math.min(a.node.xa-f,d);if(8<a&&g.subarray)b.set(g.subarray(f,f+a),c);else for(d=0;d<a;d++)b[c+d]=g[f+d];return a},write:function(a,b,c,d,f,g){b.buffer===A.buffer&&(g=!1);if(!d)return 0;a=a.node;a.timestamp=Date.now();if(b.subarray&&(!a.ra||a.ra.subarray)){if(g)return a.ra=b.subarray(c,c+d),a.xa=d;if(0===a.xa&&0===f)return a.ra=b.slice(c,c+d),a.xa=d;if(f+d<=a.xa)return a.ra.set(b.subarray(c,c+d),f),d}P.ic(a,f+
+d);if(a.ra.subarray&&b.subarray)a.ra.set(b.subarray(c,c+d),f);else for(g=0;g<d;g++)a.ra[f+g]=b[c+g];a.xa=Math.max(a.xa,f+d);return d},Ja:function(a,b,c){1===c?b+=a.position:2===c&&O.isFile(a.node.mode)&&(b+=a.node.xa);if(0>b)throw new O.oa(28);return b},ib:function(a,b,c){P.ic(a.node,b+c);a.node.xa=Math.max(a.node.xa,b+c)},Xa:function(a,b,c,d,f){if(!O.isFile(a.node.mode))throw new O.oa(43);a=a.node.ra;if(f&2||a.buffer!==va){if(0<c||c+b<a.length)a.subarray?a=a.subarray(c,c+b):a=Array.prototype.slice.call(a,
+c,c+b);c=!0;b=ab(b);if(!b)throw new O.oa(48);A.set(a,b)}else c=!1,b=a.byteOffset;return{ta:b,Xb:c}},fb:function(a,b,c,d,f){if(!O.isFile(a.node.mode))throw new O.oa(43);if(f&2)return 0;P.sa.write(a,b,0,d,c,!1);return 0}}};function cb(a,b,c){var d="al "+a;ja(a,f=>{f||x('Loading data file "'+a+'" failed (no arrayBuffer).');b(new Uint8Array(f));d&&Ja(d)},()=>{if(c)c();else throw'Loading data file "'+a+'" failed.';});d&&Ia(d)}
+var O={root:null,mb:[],fc:{},streams:[],Xc:1,Ka:null,dc:"/",Jb:!1,pc:!0,oa:null,Fb:{},Lc:null,xb:0,wa:(a,b={})=>{a=N(O.cwd(),a);if(!a)return{path:"",node:null};b=Object.assign({Db:!0,Sb:0},b);if(8<b.Sb)throw new O.oa(32);a=Qa(a.split("/").filter(k=>!!k),!1);for(var c=O.root,d="/",f=0;f<a.length;f++){var g=f===a.length-1;if(g&&b.parent)break;c=O.Oa(c,a[f]);d=K(d+"/"+a[f]);O.Va(c)&&(!g||g&&b.Db)&&(c=c.lb.root);if(!g||b.Da)for(g=0;O.eb(c.mode);)if(c=O.readlink(d),d=N(Ra(d),c),c=O.wa(d,{Sb:b.Sb+1}).node,
+40<g++)throw new O.oa(32);}return{path:d,node:c}},Ra:a=>{for(var b;;){if(O.tb(a))return a=a.ya.rc,b?"/"!==a[a.length-1]?a+"/"+b:a+b:a;b=b?a.name+"/"+b:a.name;a=a.parent}},Ib:(a,b)=>{for(var c=0,d=0;d<b.length;d++)c=(c<<5)-c+b.charCodeAt(d)|0;return(a+c>>>0)%O.Ka.length},nc:a=>{var b=O.Ib(a.parent.id,a.name);a.Ya=O.Ka[b];O.Ka[b]=a},oc:a=>{var b=O.Ib(a.parent.id,a.name);if(O.Ka[b]===a)O.Ka[b]=a.Ya;else for(b=O.Ka[b];b;){if(b.Ya===a){b.Ya=a.Ya;break}b=b.Ya}},Oa:(a,b)=>{var c=O.Uc(a);if(c)throw new O.oa(c,
+a);for(c=O.Ka[O.Ib(a.id,b)];c;c=c.Ya){var d=c.name;if(c.parent.id===a.id&&d===b)return c}return O.lookup(a,b)},createNode:(a,b,c,d)=>{a=new O.uc(a,b,c,d);O.nc(a);return a},Cb:a=>{O.oc(a)},tb:a=>a===a.parent,Va:a=>!!a.lb,isFile:a=>32768===(a&61440),Aa:a=>16384===(a&61440),eb:a=>40960===(a&61440),rb:a=>8192===(a&61440),Sc:a=>24576===(a&61440),isFIFO:a=>4096===(a&61440),isSocket:a=>49152===(a&49152),Mc:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},Wc:a=>{var b=O.Mc[a];if("undefined"==typeof b)throw Error("Unknown file open mode: "+
+a);return b},jc:a=>{var b=["r","w","rw"][a&3];a&512&&(b+="w");return b},Ta:(a,b)=>{if(O.pc)return 0;if(!b.includes("r")||a.mode&292){if(b.includes("w")&&!(a.mode&146)||b.includes("x")&&!(a.mode&73))return 2}else return 2;return 0},Uc:a=>{var b=O.Ta(a,"x");return b?b:a.qa.lookup?0:2},Ob:(a,b)=>{try{return O.Oa(a,b),20}catch(c){}return O.Ta(a,"wx")},vb:(a,b,c)=>{try{var d=O.Oa(a,b)}catch(f){return f.ua}if(a=O.Ta(a,"wx"))return a;if(c){if(!O.Aa(d.mode))return 54;if(O.tb(d)||O.Ra(d)===O.cwd())return 10}else if(O.Aa(d.mode))return 31;
+return 0},Vc:(a,b)=>a?O.eb(a.mode)?32:O.Aa(a.mode)&&("r"!==O.jc(b)||b&512)?31:O.Ta(a,O.jc(b)):44,vc:4096,Yc:(a=0,b=O.vc)=>{for(;a<=b;a++)if(!O.streams[a])return a;throw new O.oa(33);},Sa:a=>O.streams[a],cc:(a,b,c)=>{O.pb||(O.pb=function(){this.Ea={}},O.pb.prototype={},Object.defineProperties(O.pb.prototype,{object:{get:function(){return this.node},set:function(d){this.node=d}},flags:{get:function(){return this.Ea.flags},set:function(d){this.Ea.flags=d}},position:{get:function(){return this.Ea.position},
+set:function(d){this.Ea.position=d}}}));a=Object.assign(new O.pb,a);b=O.Yc(b,c);a.fd=b;return O.streams[b]=a},Cc:a=>{O.streams[a]=null},Bc:{open:a=>{a.sa=O.Pc(a.node.rdev).sa;a.sa.open&&a.sa.open(a)},Ja:()=>{throw new O.oa(70);}},Nb:a=>a>>8,Ad:a=>a&255,Wa:(a,b)=>a<<8|b,Tb:(a,b)=>{O.fc[a]={sa:b}},Pc:a=>O.fc[a],kc:a=>{var b=[];for(a=[a];a.length;){var c=a.pop();b.push(c);a.push.apply(a,c.mb)}return b},tc:(a,b)=>{function c(k){O.xb--;return b(k)}function d(k){if(k){if(!d.Kc)return d.Kc=!0,c(k)}else++g>=
+f.length&&c(null)}"function"==typeof a&&(b=a,a=!1);O.xb++;1<O.xb&&r("warning: "+O.xb+" FS.syncfs operations in flight at once, probably just doing extra work");var f=O.kc(O.root.ya),g=0;f.forEach(k=>{if(!k.type.tc)return d(null);k.type.tc(k,a,d)})},ya:(a,b,c)=>{var d="/"===c,f=!c;if(d&&O.root)throw new O.oa(10);if(!d&&!f){var g=O.wa(c,{Db:!1});c=g.path;g=g.node;if(O.Va(g))throw new O.oa(10);if(!O.Aa(g.mode))throw new O.oa(54);}b={type:a,Dd:b,rc:c,mb:[]};a=a.ya(b);a.ya=b;b.root=a;d?O.root=a:g&&(g.lb=
+b,g.ya&&g.ya.mb.push(b));return a},Hd:a=>{a=O.wa(a,{Db:!1});if(!O.Va(a.node))throw new O.oa(28);a=a.node;var b=a.lb,c=O.kc(b);Object.keys(O.Ka).forEach(d=>{for(d=O.Ka[d];d;){var f=d.Ya;c.includes(d.ya)&&O.Cb(d);d=f}});a.lb=null;a.ya.mb.splice(a.ya.mb.indexOf(b),1)},lookup:(a,b)=>a.qa.lookup(a,b),Pa:(a,b,c)=>{var d=O.wa(a,{parent:!0}).node;a=M(a);if(!a||"."===a||".."===a)throw new O.oa(28);var f=O.Ob(d,a);if(f)throw new O.oa(f);if(!d.qa.Pa)throw new O.oa(63);return d.qa.Pa(d,a,b,c)},create:(a,b)=>
+O.Pa(a,(void 0!==b?b:438)&4095|32768,0),mkdir:(a,b)=>O.Pa(a,(void 0!==b?b:511)&1023|16384,0),Bd:(a,b)=>{a=a.split("/");for(var c="",d=0;d<a.length;++d)if(a[d]){c+="/"+a[d];try{O.mkdir(c,b)}catch(f){if(20!=f.ua)throw f;}}},wb:(a,b,c)=>{"undefined"==typeof c&&(c=b,b=438);return O.Pa(a,b|8192,c)},symlink:(a,b)=>{if(!N(a))throw new O.oa(44);var c=O.wa(b,{parent:!0}).node;if(!c)throw new O.oa(44);b=M(b);var d=O.Ob(c,b);if(d)throw new O.oa(d);if(!c.qa.symlink)throw new O.oa(63);return c.qa.symlink(c,b,
+a)},rename:(a,b)=>{var c=Ra(a),d=Ra(b),f=M(a),g=M(b);var k=O.wa(a,{parent:!0});var h=k.node;k=O.wa(b,{parent:!0});k=k.node;if(!h||!k)throw new O.oa(44);if(h.ya!==k.ya)throw new O.oa(75);var n=O.Oa(h,f);a=Ua(a,d);if("."!==a.charAt(0))throw new O.oa(28);a=Ua(b,c);if("."!==a.charAt(0))throw new O.oa(55);try{var q=O.Oa(k,g)}catch(p){}if(n!==q){b=O.Aa(n.mode);if(f=O.vb(h,f,b))throw new O.oa(f);if(f=q?O.vb(k,g,b):O.Ob(k,g))throw new O.oa(f);if(!h.qa.rename)throw new O.oa(63);if(O.Va(n)||q&&O.Va(q))throw new O.oa(10);
+if(k!==h&&(f=O.Ta(h,"w")))throw new O.oa(f);O.oc(n);try{h.qa.rename(n,k,g)}catch(p){throw p;}finally{O.nc(n)}}},rmdir:a=>{var b=O.wa(a,{parent:!0}).node;a=M(a);var c=O.Oa(b,a),d=O.vb(b,a,!0);if(d)throw new O.oa(d);if(!b.qa.rmdir)throw new O.oa(63);if(O.Va(c))throw new O.oa(10);b.qa.rmdir(b,a);O.Cb(c)},readdir:a=>{a=O.wa(a,{Da:!0}).node;if(!a.qa.readdir)throw new O.oa(54);return a.qa.readdir(a)},unlink:a=>{var b=O.wa(a,{parent:!0}).node;if(!b)throw new O.oa(44);a=M(a);var c=O.Oa(b,a),d=O.vb(b,a,!1);
+if(d)throw new O.oa(d);if(!b.qa.unlink)throw new O.oa(63);if(O.Va(c))throw new O.oa(10);b.qa.unlink(b,a);O.Cb(c)},readlink:a=>{a=O.wa(a).node;if(!a)throw new O.oa(44);if(!a.qa.readlink)throw new O.oa(28);return N(O.Ra(a.parent),a.qa.readlink(a))},stat:(a,b)=>{a=O.wa(a,{Da:!b}).node;if(!a)throw new O.oa(44);if(!a.qa.Ia)throw new O.oa(63);return a.qa.Ia(a)},lstat:a=>O.stat(a,!0),chmod:(a,b,c)=>{a="string"==typeof a?O.wa(a,{Da:!c}).node:a;if(!a.qa.Ba)throw new O.oa(63);a.qa.Ba(a,{mode:b&4095|a.mode&
+-4096,timestamp:Date.now()})},lchmod:(a,b)=>{O.chmod(a,b,!0)},fchmod:(a,b)=>{a=O.Sa(a);if(!a)throw new O.oa(8);O.chmod(a.node,b)},chown:(a,b,c,d)=>{a="string"==typeof a?O.wa(a,{Da:!d}).node:a;if(!a.qa.Ba)throw new O.oa(63);a.qa.Ba(a,{timestamp:Date.now()})},lchown:(a,b,c)=>{O.chown(a,b,c,!0)},fchown:(a,b,c)=>{a=O.Sa(a);if(!a)throw new O.oa(8);O.chown(a.node,b,c)},truncate:(a,b)=>{if(0>b)throw new O.oa(28);a="string"==typeof a?O.wa(a,{Da:!0}).node:a;if(!a.qa.Ba)throw new O.oa(63);if(O.Aa(a.mode))throw new O.oa(31);
+if(!O.isFile(a.mode))throw new O.oa(28);var c=O.Ta(a,"w");if(c)throw new O.oa(c);a.qa.Ba(a,{size:b,timestamp:Date.now()})},Nc:(a,b)=>{a=O.Sa(a);if(!a)throw new O.oa(8);if(0===(a.flags&2097155))throw new O.oa(28);O.truncate(a.node,b)},ud:(a,b,c)=>{a=O.wa(a,{Da:!0}).node;a.qa.Ba(a,{timestamp:Math.max(b,c)})},open:(a,b,c)=>{if(""===a)throw new O.oa(44);b="string"==typeof b?O.Wc(b):b;c=b&64?("undefined"==typeof c?438:c)&4095|32768:0;if("object"==typeof a)var d=a;else{a=K(a);try{d=O.wa(a,{Da:!(b&131072)}).node}catch(g){}}var f=
+!1;if(b&64)if(d){if(b&128)throw new O.oa(20);}else d=O.Pa(a,c,0),f=!0;if(!d)throw new O.oa(44);O.rb(d.mode)&&(b&=-513);if(b&65536&&!O.Aa(d.mode))throw new O.oa(54);if(!f&&(c=O.Vc(d,b)))throw new O.oa(c);b&512&&!f&&O.truncate(d,0);b&=-131713;d=O.cc({node:d,path:O.Ra(d),flags:b,seekable:!0,position:0,sa:d.sa,td:[],error:!1});d.sa.open&&d.sa.open(d);!e.logReadFiles||b&1||(O.Rb||(O.Rb={}),a in O.Rb||(O.Rb[a]=1));return d},close:a=>{if(O.kb(a))throw new O.oa(8);a.Hb&&(a.Hb=null);try{a.sa.close&&a.sa.close(a)}catch(b){throw b;
+}finally{O.Cc(a.fd)}a.fd=null},kb:a=>null===a.fd,Ja:(a,b,c)=>{if(O.kb(a))throw new O.oa(8);if(!a.seekable||!a.sa.Ja)throw new O.oa(70);if(0!=c&&1!=c&&2!=c)throw new O.oa(28);a.position=a.sa.Ja(a,b,c);a.td=[];return a.position},read:(a,b,c,d,f)=>{if(0>d||0>f)throw new O.oa(28);if(O.kb(a))throw new O.oa(8);if(1===(a.flags&2097155))throw new O.oa(8);if(O.Aa(a.node.mode))throw new O.oa(31);if(!a.sa.read)throw new O.oa(28);var g="undefined"!=typeof f;if(!g)f=a.position;else if(!a.seekable)throw new O.oa(70);
+b=a.sa.read(a,b,c,d,f);g||(a.position+=b);return b},write:(a,b,c,d,f,g)=>{if(0>d||0>f)throw new O.oa(28);if(O.kb(a))throw new O.oa(8);if(0===(a.flags&2097155))throw new O.oa(8);if(O.Aa(a.node.mode))throw new O.oa(31);if(!a.sa.write)throw new O.oa(28);a.seekable&&a.flags&1024&&O.Ja(a,0,2);var k="undefined"!=typeof f;if(!k)f=a.position;else if(!a.seekable)throw new O.oa(70);b=a.sa.write(a,b,c,d,f,g);k||(a.position+=b);return b},ib:(a,b,c)=>{if(O.kb(a))throw new O.oa(8);if(0>b||0>=c)throw new O.oa(28);
+if(0===(a.flags&2097155))throw new O.oa(8);if(!O.isFile(a.node.mode)&&!O.Aa(a.node.mode))throw new O.oa(43);if(!a.sa.ib)throw new O.oa(138);a.sa.ib(a,b,c)},Xa:(a,b,c,d,f)=>{if(0!==(d&2)&&0===(f&2)&&2!==(a.flags&2097155))throw new O.oa(2);if(1===(a.flags&2097155))throw new O.oa(2);if(!a.sa.Xa)throw new O.oa(43);return a.sa.Xa(a,b,c,d,f)},fb:(a,b,c,d,f)=>a&&a.sa.fb?a.sa.fb(a,b,c,d,f):0,Cd:()=>0,qc:(a,b,c)=>{if(!a.sa.qc)throw new O.oa(59);return a.sa.qc(a,b,c)},readFile:(a,b={})=>{b.flags=b.flags||0;
+b.encoding=b.encoding||"binary";if("utf8"!==b.encoding&&"binary"!==b.encoding)throw Error('Invalid encoding type "'+b.encoding+'"');var c,d=O.open(a,b.flags);a=O.stat(a).size;var f=new Uint8Array(a);O.read(d,f,0,a,0);"utf8"===b.encoding?c=sa(f,0):"binary"===b.encoding&&(c=f);O.close(d);return c},writeFile:(a,b,c={})=>{c.flags=c.flags||577;a=O.open(a,c.flags,c.mode);if("string"==typeof b){var d=new Uint8Array(ua(b)+1);b=ta(b,d,0,d.length);O.write(a,d,0,b,void 0,c.Ac)}else if(ArrayBuffer.isView(b))O.write(a,
+b,0,b.byteLength,void 0,c.Ac);else throw Error("Unsupported data type");O.close(a)},cwd:()=>O.dc,chdir:a=>{a=O.wa(a,{Da:!0});if(null===a.node)throw new O.oa(44);if(!O.Aa(a.node.mode))throw new O.oa(54);var b=O.Ta(a.node,"x");if(b)throw new O.oa(b);O.dc=a.path},Fc:()=>{O.mkdir("/tmp");O.mkdir("/home");O.mkdir("/home/web_user")},Ec:()=>{O.mkdir("/dev");O.Tb(O.Wa(1,3),{read:()=>0,write:(b,c,d,f)=>f});O.wb("/dev/null",O.Wa(1,3));Xa(O.Wa(5,0),Za);Xa(O.Wa(6,0),$a);O.wb("/dev/tty",O.Wa(5,0));O.wb("/dev/tty1",
+O.Wa(6,0));var a=Ta();O.Ha("/dev","random",a);O.Ha("/dev","urandom",a);O.mkdir("/dev/shm");O.mkdir("/dev/shm/tmp")},Hc:()=>{O.mkdir("/proc");var a=O.mkdir("/proc/self");O.mkdir("/proc/self/fd");O.ya({ya:()=>{var b=O.createNode(a,"fd",16895,73);b.qa={lookup:(c,d)=>{var f=O.Sa(+d);if(!f)throw new O.oa(8);c={parent:null,ya:{rc:"fake"},qa:{readlink:()=>f.path}};return c.parent=c}};return b}},{},"/proc/self/fd")},Ic:()=>{e.stdin?O.Ha("/dev","stdin",e.stdin):O.symlink("/dev/tty","/dev/stdin");e.stdout?
+O.Ha("/dev","stdout",null,e.stdout):O.symlink("/dev/tty","/dev/stdout");e.stderr?O.Ha("/dev","stderr",null,e.stderr):O.symlink("/dev/tty1","/dev/stderr");O.open("/dev/stdin",0);O.open("/dev/stdout",1);O.open("/dev/stderr",1)},hc:()=>{O.oa||(O.oa=function(a,b){this.node=b;this.ld=function(c){this.ua=c};this.ld(a);this.message="FS error"},O.oa.prototype=Error(),O.oa.prototype.constructor=O.oa,[44].forEach(a=>{O.Fb[a]=new O.oa(a);O.Fb[a].stack="<generic error, no stack>"}))},nd:()=>{O.hc();O.Ka=Array(4096);
+O.ya(P,{},"/");O.Fc();O.Ec();O.Hc();O.Lc={MEMFS:P}},cb:(a,b,c)=>{O.cb.Jb=!0;O.hc();e.stdin=a||e.stdin;e.stdout=b||e.stdout;e.stderr=c||e.stderr;O.Ic()},Ed:()=>{O.cb.Jb=!1;for(var a=0;a<O.streams.length;a++){var b=O.streams[a];b&&O.close(b)}},Gb:(a,b)=>{var c=0;a&&(c|=365);b&&(c|=146);return c},vd:(a,b)=>{a=O.Ab(a,b);return a.exists?a.object:null},Ab:(a,b)=>{try{var c=O.wa(a,{Da:!b});a=c.path}catch(f){}var d={tb:!1,exists:!1,error:0,name:null,path:null,object:null,Zc:!1,ad:null,$c:null};try{c=O.wa(a,
+{parent:!0}),d.Zc=!0,d.ad=c.path,d.$c=c.node,d.name=M(a),c=O.wa(a,{Da:!b}),d.exists=!0,d.path=c.path,d.object=c.node,d.name=c.node.name,d.tb="/"===c.path}catch(f){d.error=f.ua}return d},ac:(a,b)=>{a="string"==typeof a?a:O.Ra(a);for(b=b.split("/").reverse();b.length;){var c=b.pop();if(c){var d=K(a+"/"+c);try{O.mkdir(d)}catch(f){}a=d}}return d},Gc:(a,b,c,d,f)=>{a="string"==typeof a?a:O.Ra(a);b=K(a+"/"+b);return O.create(b,O.Gb(d,f))},qb:(a,b,c,d,f,g)=>{var k=b;a&&(a="string"==typeof a?a:O.Ra(a),k=b?
+K(a+"/"+b):a);a=O.Gb(d,f);k=O.create(k,a);if(c){if("string"==typeof c){b=Array(c.length);d=0;for(f=c.length;d<f;++d)b[d]=c.charCodeAt(d);c=b}O.chmod(k,a|146);b=O.open(k,577);O.write(b,c,0,c.length,0,g);O.close(b);O.chmod(k,a)}return k},Ha:(a,b,c,d)=>{a=Sa("string"==typeof a?a:O.Ra(a),b);b=O.Gb(!!c,!!d);O.Ha.Nb||(O.Ha.Nb=64);var f=O.Wa(O.Ha.Nb++,0);O.Tb(f,{open:g=>{g.seekable=!1},close:()=>{d&&d.buffer&&d.buffer.length&&d(10)},read:(g,k,h,n)=>{for(var q=0,p=0;p<n;p++){try{var t=c()}catch(w){throw new O.oa(29);
+}if(void 0===t&&0===q)throw new O.oa(6);if(null===t||void 0===t)break;q++;k[h+p]=t}q&&(g.node.timestamp=Date.now());return q},write:(g,k,h,n)=>{for(var q=0;q<n;q++)try{d(k[h+q])}catch(p){throw new O.oa(29);}n&&(g.node.timestamp=Date.now());return q}});return O.wb(a,b,f)},Eb:a=>{if(a.Kb||a.Tc||a.link||a.ra)return!0;if("undefined"!=typeof XMLHttpRequest)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.");
+if(ia)try{a.ra=Va(ia(a.url),!0),a.xa=a.ra.length}catch(b){throw new O.oa(29);}else throw Error("Cannot load without read() or XMLHttpRequest.");},$b:(a,b,c,d,f)=>{function g(){this.Mb=!1;this.Ea=[]}function k(p,t,w,l,u){p=p.node.ra;if(u>=p.length)return 0;l=Math.min(p.length-u,l);if(p.slice)for(var v=0;v<l;v++)t[w+v]=p[u+v];else for(v=0;v<l;v++)t[w+v]=p.get(u+v);return l}g.prototype.get=function(p){if(!(p>this.length-1||0>p)){var t=p%this.chunkSize;return this.mc(p/this.chunkSize|0)[t]}};g.prototype.Pb=
+function(p){this.mc=p};g.prototype.Yb=function(){var p=new XMLHttpRequest;p.open("HEAD",c,!1);p.send(null);if(!(200<=p.status&&300>p.status||304===p.status))throw Error("Couldn't load "+c+". Status: "+p.status);var t=Number(p.getResponseHeader("Content-length")),w,l=(w=p.getResponseHeader("Accept-Ranges"))&&"bytes"===w;p=(w=p.getResponseHeader("Content-Encoding"))&&"gzip"===w;var u=1048576;l||(u=t);var v=this;v.Pb(B=>{var L=B*u,I=(B+1)*u-1;I=Math.min(I,t-1);if("undefined"==typeof v.Ea[B]){var Ba=
+v.Ea;if(L>I)throw Error("invalid range ("+L+", "+I+") or no bytes requested!");if(I>t-1)throw Error("only "+t+" bytes available! programmer error!");var G=new XMLHttpRequest;G.open("GET",c,!1);t!==u&&G.setRequestHeader("Range","bytes="+L+"-"+I);G.responseType="arraybuffer";G.overrideMimeType&&G.overrideMimeType("text/plain; charset=x-user-defined");G.send(null);if(!(200<=G.status&&300>G.status||304===G.status))throw Error("Couldn't load "+c+". Status: "+G.status);L=void 0!==G.response?new Uint8Array(G.response||
+[]):Va(G.responseText||"",!0);Ba[B]=L}if("undefined"==typeof v.Ea[B])throw Error("doXHR failed!");return v.Ea[B]});if(p||!t)u=t=1,u=t=this.mc(0).length,na("LazyFiles on gzip forces download of the whole file when length is accessed");this.xc=t;this.wc=u;this.Mb=!0};if("undefined"!=typeof XMLHttpRequest){if(!fa)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var h=new g;Object.defineProperties(h,{length:{get:function(){this.Mb||
+this.Yb();return this.xc}},chunkSize:{get:function(){this.Mb||this.Yb();return this.wc}}});h={Kb:!1,ra:h}}else h={Kb:!1,url:c};var n=O.Gc(a,b,h,d,f);h.ra?n.ra=h.ra:h.url&&(n.ra=null,n.url=h.url);Object.defineProperties(n,{xa:{get:function(){return this.ra.length}}});var q={};Object.keys(n.sa).forEach(p=>{var t=n.sa[p];q[p]=function(){O.Eb(n);return t.apply(null,arguments)}});q.read=(p,t,w,l,u)=>{O.Eb(n);return k(p,t,w,l,u)};q.Xa=(p,t,w)=>{O.Eb(n);var l=ab(t);if(!l)throw new O.oa(48);k(p,A,l,t,w);
+return{ta:l,Xb:!0}};n.sa=q;return n},bc:(a,b,c,d,f,g,k,h,n,q)=>{function p(l){function u(v){q&&q();h||O.qb(a,b,v,d,f,n);g&&g();Ja(w)}db.xd(l,t,u,()=>{k&&k();Ja(w)})||u(l)}var t=b?N(K(a+"/"+b)):a,w="cp "+t;Ia(w);"string"==typeof c?cb(c,l=>p(l),k):p(c)},indexedDB:()=>window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB,Vb:()=>"EM_FS_"+window.location.pathname,Wb:20,hb:"FILE_DATA",Fd:(a,b,c)=>{b=b||(()=>{});c=c||(()=>{});var d=O.indexedDB();try{var f=d.open(O.Vb(),O.Wb)}catch(g){return c(g)}f.onupgradeneeded=
+()=>{na("creating db");f.result.createObjectStore(O.hb)};f.onsuccess=()=>{var g=f.result.transaction([O.hb],"readwrite"),k=g.objectStore(O.hb),h=0,n=0,q=a.length;a.forEach(p=>{p=k.put(O.Ab(p).object.ra,p);p.onsuccess=()=>{h++;h+n==q&&(0==n?b():c())};p.onerror=()=>{n++;h+n==q&&(0==n?b():c())}});g.onerror=c};f.onerror=c},zd:(a,b,c)=>{b=b||(()=>{});c=c||(()=>{});var d=O.indexedDB();try{var f=d.open(O.Vb(),O.Wb)}catch(g){return c(g)}f.onupgradeneeded=c;f.onsuccess=()=>{var g=f.result;try{var k=g.transaction([O.hb],
+"readonly")}catch(t){c(t);return}var h=k.objectStore(O.hb),n=0,q=0,p=a.length;a.forEach(t=>{var w=h.get(t);w.onsuccess=()=>{O.Ab(t).exists&&O.unlink(t);O.qb(Ra(t),M(t),w.result,!0,!0,!0);n++;n+q==p&&(0==q?b():c())};w.onerror=()=>{q++;n+q==p&&(0==q?b():c())}});k.onerror=c};f.onerror=c}};function Q(a,b,c){if("/"===b.charAt(0))return b;if(-100===a)a=O.cwd();else{a=O.Sa(a);if(!a)throw new O.oa(8);a=a.path}if(0==b.length){if(!c)throw new O.oa(44);return a}return K(a+"/"+b)}
+function eb(a,b,c){try{var d=a(b)}catch(f){if(f&&f.node&&K(b)!==K(O.Ra(f.node)))return-54;throw f;}D[c>>2]=d.dev;D[c+4>>2]=0;D[c+8>>2]=d.ino;D[c+12>>2]=d.mode;D[c+16>>2]=d.nlink;D[c+20>>2]=d.uid;D[c+24>>2]=d.gid;D[c+28>>2]=d.rdev;D[c+32>>2]=0;J=[d.size>>>0,(H=d.size,1<=+Math.abs(H)?0<H?(Math.min(+Math.floor(H/4294967296),4294967295)|0)>>>0:~~+Math.ceil((H-+(~~H>>>0))/4294967296)>>>0:0)];D[c+40>>2]=J[0];D[c+44>>2]=J[1];D[c+48>>2]=4096;D[c+52>>2]=d.blocks;J=[Math.floor(d.atime.getTime()/1E3)>>>0,(H=
+Math.floor(d.atime.getTime()/1E3),1<=+Math.abs(H)?0<H?(Math.min(+Math.floor(H/4294967296),4294967295)|0)>>>0:~~+Math.ceil((H-+(~~H>>>0))/4294967296)>>>0:0)];D[c+56>>2]=J[0];D[c+60>>2]=J[1];D[c+64>>2]=0;J=[Math.floor(d.mtime.getTime()/1E3)>>>0,(H=Math.floor(d.mtime.getTime()/1E3),1<=+Math.abs(H)?0<H?(Math.min(+Math.floor(H/4294967296),4294967295)|0)>>>0:~~+Math.ceil((H-+(~~H>>>0))/4294967296)>>>0:0)];D[c+72>>2]=J[0];D[c+76>>2]=J[1];D[c+80>>2]=0;J=[Math.floor(d.ctime.getTime()/1E3)>>>0,(H=Math.floor(d.ctime.getTime()/
+1E3),1<=+Math.abs(H)?0<H?(Math.min(+Math.floor(H/4294967296),4294967295)|0)>>>0:~~+Math.ceil((H-+(~~H>>>0))/4294967296)>>>0:0)];D[c+88>>2]=J[0];D[c+92>>2]=J[1];D[c+96>>2]=0;J=[d.ino>>>0,(H=d.ino,1<=+Math.abs(H)?0<H?(Math.min(+Math.floor(H/4294967296),4294967295)|0)>>>0:~~+Math.ceil((H-+(~~H>>>0))/4294967296)>>>0:0)];D[c+104>>2]=J[0];D[c+108>>2]=J[1];return 0}var fb=void 0;function gb(){fb+=4;return D[fb-4>>2]}function R(a){a=O.Sa(a);if(!a)throw new O.oa(8);return a}
+function hb(a){return E[a>>2]+4294967296*D[a+4>>2]}function ib(a){switch(a){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+a);}}var jb=void 0;function S(a){for(var b="";z[a];)b+=jb[z[a++]];return b}var kb={},lb={},mb={};function nb(a){if(void 0===a)return"_unknown";a=a.replace(/[^a-zA-Z0-9_]/g,"$");var b=a.charCodeAt(0);return 48<=b&&57>=b?"_"+a:a}
+function ob(a,b){a=nb(a);return(new Function("body","return function "+a+'() {\n "use strict"; return body.apply(this, arguments);\n};\n'))(b)}function pb(a){var b=Error,c=ob(a,function(d){this.name=a;this.message=d;d=Error(d).stack;void 0!==d&&(this.stack=this.toString()+"\n"+d.replace(/^Error(:[^\n]*)?\n/,""))});c.prototype=Object.create(b.prototype);c.prototype.constructor=c;c.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message};return c}
+var qb=void 0;function T(a){throw new qb(a);}var rb=void 0;function sb(a){throw new rb(a);}function tb(a,b,c){function d(h){h=c(h);h.length!==a.length&&sb("Mismatched type converter count");for(var n=0;n<a.length;++n)U(a[n],h[n])}a.forEach(function(h){mb[h]=b});var f=Array(b.length),g=[],k=0;b.forEach((h,n)=>{lb.hasOwnProperty(h)?f[n]=lb[h]:(g.push(h),kb.hasOwnProperty(h)||(kb[h]=[]),kb[h].push(()=>{f[n]=lb[h];++k;k===g.length&&d(f)}))});0===g.length&&d(f)}
+function U(a,b,c={}){if(!("argPackAdvance"in b))throw new TypeError("registerType registeredInstance requires argPackAdvance");var d=b.name;a||T('type "'+d+'" must have a positive integer typeid pointer');if(lb.hasOwnProperty(a)){if(c.Rc)return;T("Cannot register type '"+d+"' twice")}lb[a]=b;delete mb[a];kb.hasOwnProperty(a)&&(b=kb[a],delete kb[a],b.forEach(f=>f()))}function ub(a){T(a.pa.za.va.name+" instance already deleted")}var vb=!1;function wb(){}
+function xb(a){--a.count.value;0===a.count.value&&(a.Ca?a.Fa.Za(a.Ca):a.za.va.Za(a.ta))}function yb(a,b,c){if(b===c)return a;if(void 0===c.Ga)return null;a=yb(a,b,c.Ga);return null===a?null:c.Jc(a)}var zb={},Ab=[];function Bb(){for(;Ab.length;){var a=Ab.pop();a.pa.bb=!1;a["delete"]()}}var Cb=void 0,Db={};function Eb(a,b){for(void 0===b&&T("ptr should not be undefined");a.Ga;)b=a.ob(b),a=a.Ga;return Db[b]}
+function Fb(a,b){b.za&&b.ta||sb("makeClassHandle requires ptr and ptrType");!!b.Fa!==!!b.Ca&&sb("Both smartPtrType and smartPtr must be specified");b.count={value:1};return Gb(Object.create(a,{pa:{value:b}}))}function Gb(a){if("undefined"===typeof FinalizationRegistry)return Gb=b=>b,a;vb=new FinalizationRegistry(b=>{xb(b.pa)});Gb=b=>{var c=b.pa;c.Ca&&vb.register(b,{pa:c},b);return b};wb=b=>{vb.unregister(b)};return Gb(a)}function V(){}
+function Hb(a,b,c){if(void 0===a[b].Qa){var d=a[b];a[b]=function(){a[b].Qa.hasOwnProperty(arguments.length)||T("Function '"+c+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+a[b].Qa+")!");return a[b].Qa[arguments.length].apply(this,arguments)};a[b].Qa=[];a[b].Qa[d.Bb]=d}}
+function Ib(a,b){e.hasOwnProperty(a)?(T("Cannot register public name '"+a+"' twice"),Hb(e,a,a),e.hasOwnProperty(void 0)&&T("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),e[a].Qa[void 0]=b):e[a]=b}function Jb(a,b,c,d,f,g,k,h){this.name=a;this.constructor=b;this.jb=c;this.Za=d;this.Ga=f;this.Oc=g;this.ob=k;this.Jc=h}
+function Kb(a,b,c){for(;b!==c;)b.ob||T("Expected null or instance of "+c.name+", got an instance of "+b.name),a=b.ob(a),b=b.Ga;return a}function Lb(a,b){if(null===b)return this.Lb&&T("null is not a valid "+this.name),0;b.pa||T('Cannot pass "'+Mb(b)+'" as a '+this.name);b.pa.ta||T("Cannot pass deleted object as a pointer of type "+this.name);return Kb(b.pa.ta,b.pa.za.va,this.va)}
+function Nb(a,b){if(null===b){this.Lb&&T("null is not a valid "+this.name);if(this.ub){var c=this.ed();null!==a&&a.push(this.Za,c);return c}return 0}b.pa||T('Cannot pass "'+Mb(b)+'" as a '+this.name);b.pa.ta||T("Cannot pass deleted object as a pointer of type "+this.name);!this.sb&&b.pa.za.sb&&T("Cannot convert argument of type "+(b.pa.Fa?b.pa.Fa.name:b.pa.za.name)+" to parameter type "+this.name);c=Kb(b.pa.ta,b.pa.za.va,this.va);if(this.ub)switch(void 0===b.pa.Ca&&T("Passing raw pointer to smart pointer is illegal"),
+this.md){case 0:b.pa.Fa===this?c=b.pa.Ca:T("Cannot convert argument of type "+(b.pa.Fa?b.pa.Fa.name:b.pa.za.name)+" to parameter type "+this.name);break;case 1:c=b.pa.Ca;break;case 2:if(b.pa.Fa===this)c=b.pa.Ca;else{var d=b.clone();c=this.gd(c,Ob(function(){d["delete"]()}));null!==a&&a.push(this.Za,c)}break;default:T("Unsupporting sharing policy")}return c}
+function Pb(a,b){if(null===b)return this.Lb&&T("null is not a valid "+this.name),0;b.pa||T('Cannot pass "'+Mb(b)+'" as a '+this.name);b.pa.ta||T("Cannot pass deleted object as a pointer of type "+this.name);b.pa.za.sb&&T("Cannot convert argument of type "+b.pa.za.name+" to parameter type "+this.name);return Kb(b.pa.ta,b.pa.za.va,this.va)}function Qb(a){return this.fromWireType(D[a>>2])}
+function W(a,b,c,d){this.name=a;this.va=b;this.Lb=c;this.sb=d;this.ub=!1;this.Za=this.gd=this.ed=this.sc=this.md=this.bd=void 0;void 0!==b.Ga?this.toWireType=Nb:(this.toWireType=d?Lb:Pb,this.Na=null)}function Rb(a,b){e.hasOwnProperty(a)||sb("Replacing nonexistant public symbol");e[a]=b;e[a].Bb=void 0}
+function Sb(a,b){var c=[];return function(){c.length=0;Object.assign(c,arguments);if(a.includes("j")){var d=e["dynCall_"+a];d=c&&c.length?d.apply(null,[b].concat(c)):d.call(null,b)}else d=Aa.get(b).apply(null,c);return d}}function Tb(a,b){a=S(a);var c=a.includes("j")?Sb(a,b):Aa.get(b);"function"!=typeof c&&T("unknown function pointer with signature "+a+": "+b);return c}var Ub=void 0;function Vb(a){a=Wb(a);var b=S(a);X(a);return b}
+function Xb(a,b){function c(g){f[g]||lb[g]||(mb[g]?mb[g].forEach(c):(d.push(g),f[g]=!0))}var d=[],f={};b.forEach(c);throw new Ub(a+": "+d.map(Vb).join([", "]));}function Yb(a){var b=Function;if(!(b instanceof Function))throw new TypeError("new_ called with constructor type "+typeof b+" which is not a function");var c=ob(b.name||"unknownFunctionName",function(){});c.prototype=b.prototype;c=new c;a=b.apply(c,a);return a instanceof Object?a:c}
+function Zb(a){for(;a.length;){var b=a.pop();a.pop()(b)}}
+function $b(a,b,c,d){var f=b.length;2>f&&T("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var g=null!==b[1]&&!1,k=!1,h=1;h<b.length;++h)if(null!==b[h]&&void 0===b[h].Na){k=!0;break}var n="void"!==b[0].name,q="",p="";for(h=0;h<f-2;++h)q+=(0!==h?", ":"")+"arg"+h,p+=(0!==h?", ":"")+"arg"+h+"Wired";a="return function "+nb(a)+"("+q+") {\nif (arguments.length !== "+(f-2)+") {\nthrowBindingError('function "+a+" called with ' + arguments.length + ' arguments, expected "+
+(f-2)+" args!');\n}\n";k&&(a+="var destructors = [];\n");var t=k?"destructors":"null";q="throwBindingError invoker fn runDestructors retType classParam".split(" ");c=[T,c,d,Zb,b[0],b[1]];g&&(a+="var thisWired = classParam.toWireType("+t+", this);\n");for(h=0;h<f-2;++h)a+="var arg"+h+"Wired = argType"+h+".toWireType("+t+", arg"+h+"); // "+b[h+2].name+"\n",q.push("argType"+h),c.push(b[h+2]);g&&(p="thisWired"+(0<p.length?", ":"")+p);a+=(n?"var rv = ":"")+"invoker(fn"+(0<p.length?", ":"")+p+");\n";if(k)a+=
+"runDestructors(destructors);\n";else for(h=g?1:2;h<b.length;++h)f=1===h?"thisWired":"arg"+(h-2)+"Wired",null!==b[h].Na&&(a+=f+"_dtor("+f+"); // "+b[h].name+"\n",q.push(f+"_dtor"),c.push(b[h].Na));n&&(a+="var ret = retType.fromWireType(rv);\nreturn ret;\n");q.push(a+"}\n");return Yb(q).apply(null,c)}function ac(a,b){for(var c=[],d=0;d<a;d++)c.push(E[b+4*d>>2]);return c}
+var bc=[],Y=[{},{value:void 0},{value:null},{value:!0},{value:!1}],Ob=a=>{switch(a){case void 0:return 1;case null:return 2;case !0:return 3;case !1:return 4;default:var b=bc.length?bc.pop():Y.length;Y[b]={hd:1,value:a};return b}};function Mb(a){if(null===a)return"null";var b=typeof a;return"object"===b||"array"===b||"function"===b?a.toString():""+a}
+function cc(a,b){switch(b){case 2:return function(c){return this.fromWireType(xa[c>>2])};case 3:return function(c){return this.fromWireType(ya[c>>3])};default:throw new TypeError("Unknown float type: "+a);}}
+function dc(a,b,c){switch(b){case 0:return c?function(d){return A[d]}:function(d){return z[d]};case 1:return c?function(d){return C[d>>1]}:function(d){return wa[d>>1]};case 2:return c?function(d){return D[d>>2]}:function(d){return E[d>>2]};default:throw new TypeError("Unknown integer type: "+a);}}var ec="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;
+function fc(a,b){var c=a>>1;for(var d=c+b/2;!(c>=d)&&wa[c];)++c;c<<=1;if(32<c-a&&ec)return ec.decode(z.subarray(a,c));c="";for(d=0;!(d>=b/2);++d){var f=C[a+2*d>>1];if(0==f)break;c+=String.fromCharCode(f)}return c}function gc(a,b,c){void 0===c&&(c=2147483647);if(2>c)return 0;c-=2;var d=b;c=c<2*a.length?c/2:a.length;for(var f=0;f<c;++f)C[b>>1]=a.charCodeAt(f),b+=2;C[b>>1]=0;return b-d}function hc(a){return 2*a.length}
+function ic(a,b){for(var c=0,d="";!(c>=b/4);){var f=D[a+4*c>>2];if(0==f)break;++c;65536<=f?(f-=65536,d+=String.fromCharCode(55296|f>>10,56320|f&1023)):d+=String.fromCharCode(f)}return d}function jc(a,b,c){void 0===c&&(c=2147483647);if(4>c)return 0;var d=b;c=d+c-4;for(var f=0;f<a.length;++f){var g=a.charCodeAt(f);if(55296<=g&&57343>=g){var k=a.charCodeAt(++f);g=65536+((g&1023)<<10)|k&1023}D[b>>2]=g;b+=4;if(b+4>c)break}D[b>>2]=0;return b-d}
+function kc(a){for(var b=0,c=0;c<a.length;++c){var d=a.charCodeAt(c);55296<=d&&57343>=d&&++c;b+=4}return b}function lc(a){var b=ua(a)+1,c=mc(b);c&&ta(a,A,c,b);return c}
+function nc(a,b,c){function d(n){return(n=n.toTimeString().match(/\(([A-Za-z ]+)\)$/))?n[1]:"GMT"}var f=(new Date).getFullYear(),g=new Date(f,0,1),k=new Date(f,6,1);f=g.getTimezoneOffset();var h=k.getTimezoneOffset();D[a>>2]=60*Math.max(f,h);D[b>>2]=Number(f!=h);a=d(g);b=d(k);a=lc(a);b=lc(b);h<f?(E[c>>2]=a,E[c+4>>2]=b):(E[c>>2]=b,E[c+4>>2]=a)}function oc(a,b,c){oc.zc||(oc.zc=!0,nc(a,b,c))}var pc;pc=ha?()=>{var a=process.hrtime();return 1E3*a[0]+a[1]/1E6}:()=>performance.now();var qc={};
+function rc(){if(!sc){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:da||"./this.program"},b;for(b in qc)void 0===qc[b]?delete a[b]:a[b]=qc[b];var c=[];for(b in a)c.push(b+"="+a[b]);sc=c}return sc}var sc;function tc(a){return 0===a%4&&(0!==a%100||0===a%400)}var uc=[31,29,31,30,31,30,31,31,30,31,30,31],vc=[31,28,31,30,31,30,31,31,30,31,30,31];
+function wc(a,b,c,d){function f(l,u,v){for(l="number"==typeof l?l.toString():l||"";l.length<u;)l=v[0]+l;return l}function g(l,u){return f(l,u,"0")}function k(l,u){function v(L){return 0>L?-1:0<L?1:0}var B;0===(B=v(l.getFullYear()-u.getFullYear()))&&0===(B=v(l.getMonth()-u.getMonth()))&&(B=v(l.getDate()-u.getDate()));return B}function h(l){switch(l.getDay()){case 0:return new Date(l.getFullYear()-1,11,29);case 1:return l;case 2:return new Date(l.getFullYear(),0,3);case 3:return new Date(l.getFullYear(),
+0,2);case 4:return new Date(l.getFullYear(),0,1);case 5:return new Date(l.getFullYear()-1,11,31);case 6:return new Date(l.getFullYear()-1,11,30)}}function n(l){var u=l.$a;for(l=new Date((new Date(l.ab+1900,0,1)).getTime());0<u;){var v=l.getMonth(),B=(tc(l.getFullYear())?uc:vc)[v];if(u>B-l.getDate())u-=B-l.getDate()+1,l.setDate(1),11>v?l.setMonth(v+1):(l.setMonth(0),l.setFullYear(l.getFullYear()+1));else{l.setDate(l.getDate()+u);break}}v=new Date(l.getFullYear()+1,0,4);u=h(new Date(l.getFullYear(),
+0,4));v=h(v);return 0>=k(u,l)?0>=k(v,l)?l.getFullYear()+1:l.getFullYear():l.getFullYear()-1}var q=D[d+40>>2];d={rd:D[d>>2],qd:D[d+4>>2],yb:D[d+8>>2],Ub:D[d+12>>2],zb:D[d+16>>2],ab:D[d+20>>2],Ma:D[d+24>>2],$a:D[d+28>>2],Gd:D[d+32>>2],pd:D[d+36>>2],sd:q?y(q):""};c=y(c);q={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d",
+"%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var p in q)c=c.replace(new RegExp(p,"g"),q[p]);var t="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),w="January February March April May June July August September October November December".split(" ");q={"%a":function(l){return t[l.Ma].substring(0,3)},"%A":function(l){return t[l.Ma]},"%b":function(l){return w[l.zb].substring(0,3)},"%B":function(l){return w[l.zb]},
+"%C":function(l){return g((l.ab+1900)/100|0,2)},"%d":function(l){return g(l.Ub,2)},"%e":function(l){return f(l.Ub,2," ")},"%g":function(l){return n(l).toString().substring(2)},"%G":function(l){return n(l)},"%H":function(l){return g(l.yb,2)},"%I":function(l){l=l.yb;0==l?l=12:12<l&&(l-=12);return g(l,2)},"%j":function(l){for(var u=0,v=0;v<=l.zb-1;u+=(tc(l.ab+1900)?uc:vc)[v++]);return g(l.Ub+u,3)},"%m":function(l){return g(l.zb+1,2)},"%M":function(l){return g(l.qd,2)},"%n":function(){return"\n"},"%p":function(l){return 0<=
+l.yb&&12>l.yb?"AM":"PM"},"%S":function(l){return g(l.rd,2)},"%t":function(){return"\t"},"%u":function(l){return l.Ma||7},"%U":function(l){return g(Math.floor((l.$a+7-l.Ma)/7),2)},"%V":function(l){var u=Math.floor((l.$a+7-(l.Ma+6)%7)/7);2>=(l.Ma+371-l.$a-2)%7&&u++;if(u)53==u&&(v=(l.Ma+371-l.$a)%7,4==v||3==v&&tc(l.ab)||(u=1));else{u=52;var v=(l.Ma+7-l.$a-1)%7;(4==v||5==v&&tc(l.ab%400-1))&&u++}return g(u,2)},"%w":function(l){return l.Ma},"%W":function(l){return g(Math.floor((l.$a+7-(l.Ma+6)%7)/7),2)},
+"%y":function(l){return(l.ab+1900).toString().substring(2)},"%Y":function(l){return l.ab+1900},"%z":function(l){l=l.pd;var u=0<=l;l=Math.abs(l)/60;return(u?"+":"-")+String("0000"+(l/60*100+l%60)).slice(-4)},"%Z":function(l){return l.sd},"%%":function(){return"%"}};c=c.replace(/%%/g,"\x00\x00");for(p in q)c.includes(p)&&(c=c.replace(new RegExp(p,"g"),q[p](d)));c=c.replace(/\0\0/g,"%");p=Va(c,!1);if(p.length>b)return 0;A.set(p,a);return p.length-1}
+function xc(a,b,c,d){a||(a=this);this.parent=a;this.ya=a.ya;this.lb=null;this.id=O.Xc++;this.name=b;this.mode=c;this.qa={};this.sa={};this.rdev=d}Object.defineProperties(xc.prototype,{read:{get:function(){return 365===(this.mode&365)},set:function(a){a?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146===(this.mode&146)},set:function(a){a?this.mode|=146:this.mode&=-147}},Tc:{get:function(){return O.Aa(this.mode)}},Kb:{get:function(){return O.rb(this.mode)}}});O.uc=xc;O.nd();var db;
+e.FS_createPath=O.ac;e.FS_createDataFile=O.qb;e.FS_createPreloadedFile=O.bc;e.FS_unlink=O.unlink;e.FS_createLazyFile=O.$b;e.FS_createDevice=O.Ha;for(var yc=Array(256),zc=0;256>zc;++zc)yc[zc]=String.fromCharCode(zc);jb=yc;qb=e.BindingError=pb("BindingError");rb=e.InternalError=pb("InternalError");
+V.prototype.isAliasOf=function(a){if(!(this instanceof V&&a instanceof V))return!1;var b=this.pa.za.va,c=this.pa.ta,d=a.pa.za.va;for(a=a.pa.ta;b.Ga;)c=b.ob(c),b=b.Ga;for(;d.Ga;)a=d.ob(a),d=d.Ga;return b===d&&c===a};
+V.prototype.clone=function(){this.pa.ta||ub(this);if(this.pa.nb)return this.pa.count.value+=1,this;var a=Gb,b=Object,c=b.create,d=Object.getPrototypeOf(this),f=this.pa;a=a(c.call(b,d,{pa:{value:{count:f.count,bb:f.bb,nb:f.nb,ta:f.ta,za:f.za,Ca:f.Ca,Fa:f.Fa}}}));a.pa.count.value+=1;a.pa.bb=!1;return a};V.prototype["delete"]=function(){this.pa.ta||ub(this);this.pa.bb&&!this.pa.nb&&T("Object already scheduled for deletion");wb(this);xb(this.pa);this.pa.nb||(this.pa.Ca=void 0,this.pa.ta=void 0)};
+V.prototype.isDeleted=function(){return!this.pa.ta};V.prototype.deleteLater=function(){this.pa.ta||ub(this);this.pa.bb&&!this.pa.nb&&T("Object already scheduled for deletion");Ab.push(this);1===Ab.length&&Cb&&Cb(Bb);this.pa.bb=!0;return this};e.getInheritedInstanceCount=function(){return Object.keys(Db).length};e.getLiveInheritedInstances=function(){var a=[],b;for(b in Db)Db.hasOwnProperty(b)&&a.push(Db[b]);return a};e.flushPendingDeletes=Bb;e.setDelayFunction=function(a){Cb=a;Ab.length&&Cb&&Cb(Bb)};
+W.prototype.Qc=function(a){this.sc&&(a=this.sc(a));return a};W.prototype.ec=function(a){this.Za&&this.Za(a)};W.prototype.argPackAdvance=8;W.prototype.readValueFromPointer=Qb;W.prototype.deleteObject=function(a){if(null!==a)a["delete"]()};
+W.prototype.fromWireType=function(a){function b(){return this.ub?Fb(this.va.jb,{za:this.bd,ta:c,Fa:this,Ca:a}):Fb(this.va.jb,{za:this,ta:a})}var c=this.Qc(a);if(!c)return this.ec(a),null;var d=Eb(this.va,c);if(void 0!==d){if(0===d.pa.count.value)return d.pa.ta=c,d.pa.Ca=a,d.clone();d=d.clone();this.ec(a);return d}d=this.va.Oc(c);d=zb[d];if(!d)return b.call(this);d=this.sb?d.Dc:d.pointerType;var f=yb(c,this.va,d.va);return null===f?b.call(this):this.ub?Fb(d.va.jb,{za:d,ta:f,Fa:this,Ca:a}):Fb(d.va.jb,
+{za:d,ta:f})};Ub=e.UnboundTypeError=pb("UnboundTypeError");e.count_emval_handles=function(){for(var a=0,b=5;b<Y.length;++b)void 0!==Y[b]&&++a;return a};e.get_first_emval=function(){for(var a=5;a<Y.length;++a)if(void 0!==Y[a])return Y[a];return null};
+var Bc={b:function(a){return mc(a+24)+24},c:function(a,b,c){(new Oa(a)).cb(b,c);Pa++;throw a;},R:function(a,b){try{return a=y(a),O.chmod(a,b),0}catch(c){if("undefined"==typeof O||!(c instanceof O.oa))throw c;return-c.ua}},W:function(a,b,c){try{b=y(b);b=Q(a,b);if(c&-8)return-28;var d=O.wa(b,{Da:!0}).node;if(!d)return-44;a="";c&4&&(a+="r");c&2&&(a+="w");c&1&&(a+="x");return a&&O.Ta(d,a)?-2:0}catch(f){if("undefined"==typeof O||!(f instanceof O.oa))throw f;return-f.ua}},T:function(a,b){try{return O.fchmod(a,
+b),0}catch(c){if("undefined"==typeof O||!(c instanceof O.oa))throw c;return-c.ua}},Q:function(a,b,c){try{return O.fchown(a,b,c),0}catch(d){if("undefined"==typeof O||!(d instanceof O.oa))throw d;return-d.ua}},e:function(a,b,c){fb=c;try{var d=R(a);switch(b){case 0:var f=gb();return 0>f?-28:O.cc(d,f).fd;case 1:case 2:return 0;case 3:return d.flags;case 4:return f=gb(),d.flags|=f,0;case 5:return f=gb(),C[f+0>>1]=2,0;case 6:case 7:return 0;case 16:case 8:return-28;case 9:return D[Ac()>>2]=28,-1;default:return-28}}catch(g){if("undefined"==
+typeof O||!(g instanceof O.oa))throw g;return-g.ua}},P:function(a,b){try{var c=R(a);return eb(O.stat,c.path,b)}catch(d){if("undefined"==typeof O||!(d instanceof O.oa))throw d;return-d.ua}},t:function(a,b,c){try{b=c+2097152>>>0<4194305-!!b?(b>>>0)+4294967296*c:NaN;if(isNaN(b))return-61;O.Nc(a,b);return 0}catch(d){if("undefined"==typeof O||!(d instanceof O.oa))throw d;return-d.ua}},K:function(a,b){try{if(0===b)return-28;var c=O.cwd(),d=ua(c)+1;if(b<d)return-68;ta(c,z,a,b);return d}catch(f){if("undefined"==
+typeof O||!(f instanceof O.oa))throw f;return-f.ua}},N:function(a,b){try{return a=y(a),eb(O.lstat,a,b)}catch(c){if("undefined"==typeof O||!(c instanceof O.oa))throw c;return-c.ua}},G:function(a,b,c){try{return b=y(b),b=Q(a,b),b=K(b),"/"===b[b.length-1]&&(b=b.substr(0,b.length-1)),O.mkdir(b,c,0),0}catch(d){if("undefined"==typeof O||!(d instanceof O.oa))throw d;return-d.ua}},M:function(a,b,c,d){try{b=y(b);var f=d&256;b=Q(a,b,d&4096);return eb(f?O.lstat:O.stat,b,c)}catch(g){if("undefined"==typeof O||
+!(g instanceof O.oa))throw g;return-g.ua}},D:function(a,b,c,d){fb=d;try{b=y(b);b=Q(a,b);var f=d?gb():0;return O.open(b,c,f).fd}catch(g){if("undefined"==typeof O||!(g instanceof O.oa))throw g;return-g.ua}},B:function(a,b,c,d){try{b=y(b);b=Q(a,b);if(0>=d)return-28;var f=O.readlink(b),g=Math.min(d,ua(f)),k=A[c+g];ta(f,z,c,d+1);A[c+g]=k;return g}catch(h){if("undefined"==typeof O||!(h instanceof O.oa))throw h;return-h.ua}},j:function(a){try{return a=y(a),O.rmdir(a),0}catch(b){if("undefined"==typeof O||
+!(b instanceof O.oa))throw b;return-b.ua}},O:function(a,b){try{return a=y(a),eb(O.stat,a,b)}catch(c){if("undefined"==typeof O||!(c instanceof O.oa))throw c;return-c.ua}},k:function(a,b,c){try{return b=y(b),b=Q(a,b),0===c?O.unlink(b):512===c?O.rmdir(b):x("Invalid flags passed to unlinkat"),0}catch(d){if("undefined"==typeof O||!(d instanceof O.oa))throw d;return-d.ua}},y:function(a,b,c){try{b=y(b);b=Q(a,b,!0);if(c){var d=hb(c),f=D[c+8>>2];g=1E3*d+f/1E6;c+=16;d=hb(c);f=D[c+8>>2];k=1E3*d+f/1E6}else var g=
+Date.now(),k=g;O.ud(b,g,k);return 0}catch(h){if("undefined"==typeof O||!(h instanceof O.oa))throw h;return-h.ua}},u:function(){},q:function(a,b,c,d,f){var g=ib(c);b=S(b);U(a,{name:b,fromWireType:function(k){return!!k},toWireType:function(k,h){return h?d:f},argPackAdvance:8,readValueFromPointer:function(k){if(1===c)var h=A;else if(2===c)h=C;else if(4===c)h=D;else throw new TypeError("Unknown boolean type size: "+b);return this.fromWireType(h[k>>g])},Na:null})},S:function(a,b,c,d,f,g,k,h,n,q,p,t,w){p=
+S(p);g=Tb(f,g);h&&(h=Tb(k,h));q&&(q=Tb(n,q));w=Tb(t,w);var l=nb(p);Ib(l,function(){Xb("Cannot construct "+p+" due to unbound types",[d])});tb([a,b,c],d?[d]:[],function(u){u=u[0];if(d){var v=u.va;var B=v.jb}else B=V.prototype;u=ob(l,function(){if(Object.getPrototypeOf(this)!==L)throw new qb("Use 'new' to construct "+p);if(void 0===I.Ua)throw new qb(p+" has no accessible constructor");var G=I.Ua[arguments.length];if(void 0===G)throw new qb("Tried to invoke ctor of "+p+" with invalid number of parameters ("+
+arguments.length+") - expected ("+Object.keys(I.Ua).toString()+") parameters instead!");return G.apply(this,arguments)});var L=Object.create(B,{constructor:{value:u}});u.prototype=L;var I=new Jb(p,u,L,w,v,g,h,q);v=new W(p,I,!0,!1);B=new W(p+"*",I,!1,!1);var Ba=new W(p+" const*",I,!1,!0);zb[a]={pointerType:B,Dc:Ba};Rb(l,u);return[v,B,Ba]})},z:function(a,b,c,d,f,g,k){var h=ac(c,d);b=S(b);g=Tb(f,g);tb([],[a],function(n){function q(){Xb("Cannot call "+p+" due to unbound types",h)}n=n[0];var p=n.name+
+"."+b;b.startsWith("@@")&&(b=Symbol[b.substring(2)]);var t=n.va.constructor;void 0===t[b]?(q.Bb=c-1,t[b]=q):(Hb(t,b,p),t[b].Qa[c-1]=q);tb([],h,function(w){w=[w[0],null].concat(w.slice(1));w=$b(p,w,g,k);void 0===t[b].Qa?(w.Bb=c-1,t[b]=w):t[b].Qa[c-1]=w;return[]});return[]})},I:function(a,b,c,d,f,g){0<b||x();var k=ac(b,c);f=Tb(d,f);tb([],[a],function(h){h=h[0];var n="constructor "+h.name;void 0===h.va.Ua&&(h.va.Ua=[]);if(void 0!==h.va.Ua[b-1])throw new qb("Cannot register multiple constructors with identical number of parameters ("+
+(b-1)+") for class '"+h.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");h.va.Ua[b-1]=()=>{Xb("Cannot construct "+h.name+" due to unbound types",k)};tb([],k,function(q){q.splice(1,0,null);h.va.Ua[b-1]=$b(n,q,f,g);return[]});return[]})},p:function(a,b){b=S(b);U(a,{name:b,fromWireType:function(c){c||T("Cannot use deleted val. handle = "+c);var d=Y[c].value;4<c&&0===--Y[c].hd&&(Y[c]=void 0,bc.push(c));return d},toWireType:function(c,d){return Ob(d)},
+argPackAdvance:8,readValueFromPointer:Qb,Na:null})},o:function(a,b,c){c=ib(c);b=S(b);U(a,{name:b,fromWireType:function(d){return d},toWireType:function(d,f){return f},argPackAdvance:8,readValueFromPointer:cc(b,c),Na:null})},d:function(a,b,c,d,f){b=S(b);-1===f&&(f=4294967295);f=ib(c);var g=h=>h;if(0===d){var k=32-8*c;g=h=>h<<k>>>k}c=b.includes("unsigned")?function(h,n){return n>>>0}:function(h,n){return n};U(a,{name:b,fromWireType:g,toWireType:c,argPackAdvance:8,readValueFromPointer:dc(b,f,0!==d),
+Na:null})},a:function(a,b,c){function d(g){g>>=2;var k=E;return new f(va,k[g+1],k[g])}var f=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][b];c=S(c);U(a,{name:c,fromWireType:d,argPackAdvance:8,readValueFromPointer:d},{Rc:!0})},h:function(a,b){b=S(b);var c="std::string"===b;U(a,{name:b,fromWireType:function(d){var f=E[d>>2],g=d+4;if(c)for(var k=g,h=0;h<=f;++h){var n=g+h;if(h==f||0==z[n]){k=y(k,n-k);if(void 0===q)var q=k;else q+=String.fromCharCode(0),
+q+=k;k=n+1}}else{q=Array(f);for(h=0;h<f;++h)q[h]=String.fromCharCode(z[g+h]);q=q.join("")}X(d);return q},toWireType:function(d,f){f instanceof ArrayBuffer&&(f=new Uint8Array(f));var g="string"==typeof f;g||f instanceof Uint8Array||f instanceof Uint8ClampedArray||f instanceof Int8Array||T("Cannot pass non-string to std::string");var k=c&&g?ua(f):f.length;var h=mc(4+k+1),n=h+4;E[h>>2]=k;if(c&&g)ta(f,z,n,k+1);else if(g)for(g=0;g<k;++g){var q=f.charCodeAt(g);255<q&&(X(n),T("String has UTF-16 code units that do not fit in 8 bits"));
+z[n+g]=q}else for(g=0;g<k;++g)z[n+g]=f[g];null!==d&&d.push(X,h);return h},argPackAdvance:8,readValueFromPointer:Qb,Na:function(d){X(d)}})},f:function(a,b,c){c=S(c);if(2===b){var d=fc;var f=gc;var g=hc;var k=()=>wa;var h=1}else 4===b&&(d=ic,f=jc,g=kc,k=()=>E,h=2);U(a,{name:c,fromWireType:function(n){for(var q=E[n>>2],p=k(),t,w=n+4,l=0;l<=q;++l){var u=n+4+l*b;if(l==q||0==p[u>>h])w=d(w,u-w),void 0===t?t=w:(t+=String.fromCharCode(0),t+=w),w=u+b}X(n);return t},toWireType:function(n,q){"string"!=typeof q&&
+T("Cannot pass non-string to C++ string type "+c);var p=g(q),t=mc(4+p+b);E[t>>2]=p>>h;f(q,t+4,p+b);null!==n&&n.push(X,t);return t},argPackAdvance:8,readValueFromPointer:Qb,Na:function(n){X(n)}})},r:function(a,b){b=S(b);U(a,{yd:!0,name:b,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},m:function(){return Date.now()},U:function(a,b){a=new Date(1E3*hb(a));D[b>>2]=a.getSeconds();D[b+4>>2]=a.getMinutes();D[b+8>>2]=a.getHours();D[b+12>>2]=a.getDate();D[b+16>>2]=a.getMonth();D[b+20>>
+2]=a.getFullYear()-1900;D[b+24>>2]=a.getDay();var c=new Date(a.getFullYear(),0,1);D[b+28>>2]=(a.getTime()-c.getTime())/864E5|0;D[b+36>>2]=-(60*a.getTimezoneOffset());var d=(new Date(a.getFullYear(),6,1)).getTimezoneOffset();c=c.getTimezoneOffset();D[b+32>>2]=(d!=c&&a.getTimezoneOffset()==Math.min(c,d))|0},E:function(a,b,c,d,f,g){try{var k=O.Sa(d);if(!k)return-8;var h=O.Xa(k,a,f,b,c),n=h.ta;D[g>>2]=h.Xb;return n}catch(q){if("undefined"==typeof O||!(q instanceof O.oa))throw q;return-q.ua}},F:function(a,
+b,c,d,f,g){try{var k=O.Sa(f);if(k&&c&2){var h=z.slice(a,a+b);O.fb(k,h,g,b,d)}}catch(n){if("undefined"==typeof O||!(n instanceof O.oa))throw n;return-n.ua}},V:oc,i:function(){x("")},A:function(){return 2147483648},l:pc,g:function(a){var b=z.length;a>>>=0;if(2147483648<a)return!1;for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);var f=Math;d=Math.max(a,d);f=f.min.call(f,2147483648,d+(65536-d%65536)%65536);a:{try{pa.grow(f-va.byteLength+65535>>>16);za();var g=1;break a}catch(k){}g=void 0}if(g)return!0}return!1},
+H:function(a,b){var c=0;rc().forEach(function(d,f){var g=b+c;f=E[a+4*f>>2]=g;for(g=0;g<d.length;++g)A[f++>>0]=d.charCodeAt(g);A[f>>0]=0;c+=d.length+1});return 0},J:function(a,b){var c=rc();E[a>>2]=c.length;var d=0;c.forEach(function(f){d+=f.length+1});E[b>>2]=d;return 0},n:function(a){try{var b=R(a);O.close(b);return 0}catch(c){if("undefined"==typeof O||!(c instanceof O.oa))throw c;return c.ua}},x:function(a,b){try{var c=R(a);A[b>>0]=c.tty?2:O.Aa(c.mode)?3:O.eb(c.mode)?7:4;return 0}catch(d){if("undefined"==
+typeof O||!(d instanceof O.oa))throw d;return d.ua}},C:function(a,b,c,d){try{a:{var f=R(a);a=b;for(var g=b=0;g<c;g++){var k=E[a>>2],h=E[a+4>>2];a+=8;var n=O.read(f,A,k,h,void 0);if(0>n){var q=-1;break a}b+=n;if(n<h)break}q=b}D[d>>2]=q;return 0}catch(p){if("undefined"==typeof O||!(p instanceof O.oa))throw p;return p.ua}},s:function(a,b,c,d,f){try{b=c+2097152>>>0<4194305-!!b?(b>>>0)+4294967296*c:NaN;if(isNaN(b))return 61;var g=R(a);O.Ja(g,b,d);J=[g.position>>>0,(H=g.position,1<=+Math.abs(H)?0<H?(Math.min(+Math.floor(H/
+4294967296),4294967295)|0)>>>0:~~+Math.ceil((H-+(~~H>>>0))/4294967296)>>>0:0)];D[f>>2]=J[0];D[f+4>>2]=J[1];g.Hb&&0===b&&0===d&&(g.Hb=null);return 0}catch(k){if("undefined"==typeof O||!(k instanceof O.oa))throw k;return k.ua}},L:function(a){try{var b=R(a);return b.sa&&b.sa.fsync?-b.sa.fsync(b):0}catch(c){if("undefined"==typeof O||!(c instanceof O.oa))throw c;return c.ua}},w:function(a,b,c,d){try{a:{var f=R(a);a=b;for(var g=b=0;g<c;g++){var k=E[a>>2],h=E[a+4>>2];a+=8;var n=O.write(f,A,k,h,void 0);if(0>
+n){var q=-1;break a}b+=n}q=b}E[d>>2]=q;return 0}catch(p){if("undefined"==typeof O||!(p instanceof O.oa))throw p;return p.ua}},v:function(a,b,c,d){return wc(a,b,c,d)}},Z=function(){function a(c){e.asm=c.exports;pa=e.asm.X;za();Aa=e.asm.aa;Da.unshift(e.asm.Y);Ja("wasm-instantiate")}var b={a:Bc};Ia("wasm-instantiate");if(e.instantiateWasm)try{return e.instantiateWasm(b,a)}catch(c){return r("Module.instantiateWasm callback failed with error: "+c),!1}b=Ma(b);a(b[0]);return e.asm}();
+e.___wasm_call_ctors=Z.Y;var mc=e._malloc=Z.Z,Ac=e.___errno_location=Z._,X=e._free=Z.$,Wb=e.___getTypeName=Z.ba;e.___embind_register_native_and_builtin_types=Z.ca;var bb=e._emscripten_builtin_memalign=Z.da;e.___cxa_is_pointer_type=Z.ea;e.dynCall_iiiij=Z.fa;e.dynCall_iij=Z.ga;e.dynCall_iijii=Z.ha;e.dynCall_iiji=Z.ia;e.dynCall_iiiiiij=Z.ja;e.dynCall_viijii=Z.ka;e.dynCall_iiiiij=Z.la;e.dynCall_iiiiijj=Z.ma;e.dynCall_iiiiiijj=Z.na;e.addRunDependency=Ia;e.removeRunDependency=Ja;e.FS_createPath=O.ac;
+e.FS_createDataFile=O.qb;e.FS_createPreloadedFile=O.bc;e.FS_createLazyFile=O.$b;e.FS_createDevice=O.Ha;e.FS_unlink=O.unlink;e.FS=O;var Cc;Ha=function Dc(){Cc||Ec();Cc||(Ha=Dc)};
+function Ec(){function a(){if(!Cc&&(Cc=!0,e.calledRun=!0,!qa)){e.noFSInit||O.cb.Jb||O.cb();O.pc=!1;Na(Da);aa(e);if(e.onRuntimeInitialized)e.onRuntimeInitialized();if(e.postRun)for("function"==typeof e.postRun&&(e.postRun=[e.postRun]);e.postRun.length;){var b=e.postRun.shift();Ea.unshift(b)}Na(Ea)}}if(!(0<F)){if(e.preRun)for("function"==typeof e.preRun&&(e.preRun=[e.preRun]);e.preRun.length;)Fa();Na(Ca);0<F||(e.setStatus?(e.setStatus("Running..."),setTimeout(function(){setTimeout(function(){e.setStatus("")},
+1);a()},1)):a())}}if(e.preInit)for("function"==typeof e.preInit&&(e.preInit=[e.preInit]);0<e.preInit.length;)e.preInit.pop()();Ec();
+
+
+ return Module
+}
+);
+})();
+export default Module;
\ No newline at end of file
diff --git a/web/database/_generated/comm_query_executor.wasm b/web/database/_generated/comm_query_executor.wasm
new file mode 100755
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/web/scripts/run_emscripten.sh b/web/scripts/run_emscripten.sh
new file mode 100755
--- /dev/null
+++ b/web/scripts/run_emscripten.sh
@@ -0,0 +1,103 @@
+#!/usr/bin/env bash
+
+set -Eeuo pipefail
+
+if ! command -v emcc > /dev/null; then
+ echo "Please install emscripten or run 'nix develop'" >&2
+ exit 1
+fi
+
+# directories
+SCRIPT_DIR=$(cd "$(dirname "$0")"; pwd -P)
+NATIVE_CPP_DIR="${SCRIPT_DIR}/../../native/cpp/"
+INPUT_DIR="${NATIVE_CPP_DIR}CommonCpp/DatabaseManagers/"
+SQLITE_DIR="${SCRIPT_DIR}/../database/sqlite/"
+OUTPUT_DIR="${SCRIPT_DIR}/../database/_generated/"
+
+# files
+SQLITE_SOURCE="${SQLITE_DIR}sqlite3.c"
+SQLITE_BITCODE_FILE="${SQLITE_DIR}sqlite3.bc"
+OUTPUT_FILE_NAME="comm-query-executor"
+OUTPUT_FILE="${OUTPUT_DIR}${OUTPUT_FILE_NAME}.js"
+
+# SQLite resources
+SQLITE_AMALGAMATION="sqlite-amalgamation-3390300"
+SQLITE_AMALGAMATION_URL="https://www.sqlite.org/2022/${SQLITE_AMALGAMATION}.zip"
+SQLITE_AMALGAMATION_FILE="${SQLITE_DIR}${SQLITE_AMALGAMATION}.zip"
+
+SQLITE_COMPILATION_FLAGS=(
+ -Oz
+ -DSQLITE_OMIT_LOAD_EXTENSION
+ -DSQLITE_DISABLE_LFS
+ -DSQLITE_ENABLE_FTS3
+ -DSQLITE_ENABLE_FTS3_PARENTHESIS
+ -DSQLITE_THREADSAFE=0
+ -DSQLITE_ENABLE_NORMALIZE
+)
+
+download_sqlite() {
+ mkdir -p "$SQLITE_DIR"
+
+ curl "${SQLITE_AMALGAMATION_URL}" --output "${SQLITE_AMALGAMATION_FILE}"
+
+ unzip -jo "${SQLITE_AMALGAMATION_FILE}" -d "${SQLITE_DIR}"
+ rm -f "${SQLITE_AMALGAMATION_FILE}"
+}
+
+if [ ! -f "$SQLITE_BITCODE_FILE" ]; then
+ echo "SQLite engine not found. Downloading."
+ download_sqlite
+
+ emcc "${SQLITE_COMPILATION_FLAGS[@]}" \
+ -c "$SQLITE_SOURCE" \
+ -o "$SQLITE_BITCODE_FILE"
+fi
+
+
+EMCC_FLAGS=(
+ # WASM files and bindings
+ --memory-init-file 0
+ -s WASM=1
+ -s ALLOW_MEMORY_GROWTH=1
+ -s ALLOW_TABLE_GROWTH=1
+ -s FORCE_FILESYSTEM=1
+ -s SINGLE_FILE=0
+ -s EXPORTED_RUNTIME_METHODS=["FS"]
+
+ # node/babel/webpack helpers
+ -s NODEJS_CATCH_EXIT=0
+ -s NODEJS_CATCH_REJECTION=0
+ -s WASM_ASYNC_COMPILATION=0
+ -s EXPORT_ES6=1
+ -s USE_ES6_IMPORT_META=0
+ -s MODULARIZE=1
+
+ # optimization
+ -Oz
+ -flto
+ --closure 1
+)
+
+CFLAGS=(
+ -I "$INPUT_DIR"
+ -I "$SQLITE_DIR"
+ -I "${NATIVE_CPP_DIR}third-party/sqlite_orm/"
+ -I "${NATIVE_CPP_DIR}CommonCpp/Tools/"
+)
+
+INPUT_FILES=(
+ "${INPUT_DIR}CommQueryExecutor.cpp"
+ "$SQLITE_BITCODE_FILE"
+)
+
+mkdir -p "$OUTPUT_DIR"
+
+emcc -lembind \
+ "${EMCC_FLAGS[@]}" \
+ "${CFLAGS[@]}" \
+ "${INPUT_FILES[@]}" \
+ -o "${OUTPUT_FILE}"
+
+sed -i.bak -e '1i\/\/ \@generated' "${OUTPUT_FILE}"
+
+mv -f "${OUTPUT_DIR}${OUTPUT_FILE_NAME}.wasm" "${OUTPUT_DIR}comm_query_executor.wasm"

File Metadata

Mime Type
text/plain
Expires
Sun, Oct 6, 8:27 AM (21 h, 44 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2248550
Default Alt Text
D8390.diff (63 KB)

Event Timeline