From 5486f9f7783ab1b7bca5c64a6545e76f553bf313 Mon Sep 17 00:00:00 2001 From: Tom Wilson Date: Mon, 8 Apr 2024 21:47:38 +0000 Subject: [PATCH 1/5] feat: wasm64 work in progress --- dev-cli/container/Dockerfile | 4 +- dev-cli/container/src/emcc-lua | 9 +- .../src/formats/wasm64-unknown-emscripten.cjs | 5852 +++++++++++++++++ loader/src/index.cjs | 3 + loader/test/process64/process.lua | 32 + loader/test/process64/process.wasm | Bin 0 -> 310998 bytes loader/test/wasm64.test.js | 248 + 7 files changed, 6142 insertions(+), 6 deletions(-) create mode 100644 loader/src/formats/wasm64-unknown-emscripten.cjs create mode 100644 loader/test/process64/process.lua create mode 100755 loader/test/process64/process.wasm create mode 100644 loader/test/wasm64.test.js diff --git a/dev-cli/container/Dockerfile b/dev-cli/container/Dockerfile index 95310b13f..990403dfd 100644 --- a/dev-cli/container/Dockerfile +++ b/dev-cli/container/Dockerfile @@ -1,4 +1,4 @@ -FROM emscripten/emsdk:3.1.14 +FROM emscripten/emsdk:3.1.55 LABEL maintainer "tom wilson " # The working directory used by the base image is /src, so we can mount volumes to there @@ -50,7 +50,7 @@ RUN npm --version # And, re-compile lua with "generic WASM" RUN cd /lua-${LUA_VERSION} && \ make clean && \ - make generic CC='emcc -s WASM=1 -U LUA_32BITS' + make generic CC='emcc -s WASM=1 -s MEMORY64=1 -s SUPPORT_LONGJMP=1' ############################# ##### Install Commands ###### diff --git a/dev-cli/container/src/emcc-lua b/dev-cli/container/src/emcc-lua index 053b86f4b..de4e1436a 100644 --- a/dev-cli/container/src/emcc-lua +++ b/dev-cli/container/src/emcc-lua @@ -164,7 +164,8 @@ def main(): # Finally, compile to wasm debug_print('Start to compile as WASM') - cmd = ['emcc', '-Os', + cmd = ['emcc', '-O0', + '-s', 'MEMORY64=1', '-s', 'ALLOW_MEMORY_GROWTH=1', '-s', 'INITIAL_MEMORY=6291456', '-s', 'MAXIMUM_MEMORY=524288000', @@ -186,9 +187,9 @@ def main(): shell_exec(*cmd) # add metering library - meter_cmd = ['node', '/opt/node/apply-metering.cjs'] - shell_exec(*meter_cmd) - shell_exec(*['rm', '/src/process.js']) + # meter_cmd = ['node', '/opt/node/apply-metering.cjs'] + # shell_exec(*meter_cmd) + # shell_exec(*['rm', '/src/process.js']) if __name__ == '__main__': main() diff --git a/loader/src/formats/wasm64-unknown-emscripten.cjs b/loader/src/formats/wasm64-unknown-emscripten.cjs new file mode 100644 index 000000000..bc7cf3fd5 --- /dev/null +++ b/loader/src/formats/wasm64-unknown-emscripten.cjs @@ -0,0 +1,5852 @@ +const DEFAULT_GAS_LIMIT = 9_000_000_000_000_000; + +/* eslint-disable */ +const Module = (() => { + let _scriptDir = + typeof document !== "undefined" && document.currentScript + ? document.currentScript.src + : undefined; + if (typeof __filename !== "undefined") _scriptDir = _scriptDir || __filename; + return function (binaryOrInstantiate, { computeLimit, memoryLimit, extensions, format }) { + var Module = Module || {}; + if (typeof binaryOrInstantiate === "function") + Module.instantiateWasm = binaryOrInstantiate; + else Module.wasmBinary = binaryOrInstantiate; + + /** + * Expose gas on the module + * + * This is how we track the amount of ops this WASM module has used, + * and also how we refill the gas on each invocation of the WASM. + */ + Module.gas = { + limit: computeLimit || DEFAULT_GAS_LIMIT, + used: 0, + use: (amount) => { + Module.gas.used += amount; + }, + refill: (amount) => { + if (!amount) Module.gas.used = 0; + else Module.gas.used = Math.max(Module.gas.used - amount, 0); + }, + isEmpty: () => Module.gas.used > Module.gas.limit, + }; + + /** + * See this issue with emscripten https://github.com/emscripten-core/emscripten/issues/12740 + * + * We need to manually cleanup any listeners that are setup as part of the WASM module, + * so that they can be deregistered later and the associated WASM memory can be garbage collected + * + * This is custom code we've added to the emscripten module code. + */ + const _listeners_ = []; + Module.cleanupListeners = function () { + /** + * Deregister any listeners that did not exist before this + * WASM module was bootstrapped + */ + _listeners_.forEach(([name, l]) => process.removeListener(name, l)); + }; + function uncaughtException(ex) { + if (!(ex instanceof ExitStatus)) { + throw ex; + } + } + function unhandledRejection(reason) { + throw reason; + } + _listeners_.push( + ["uncaughtException", uncaughtException], + ["unhandledRejection", unhandledRejection] + ); + + // include: shell.js + // The Module object: Our interface to the outside world. We import + // and export values on it. There are various ways Module can be used: + // 1. Not defined. We create it here + // 2. A function parameter, function(Module) { ..generated code.. } + // 3. pre-run appended it, var Module = {}; ..generated code.. + // 4. External script tag defines var Module. + // We need to check if Module already exists (e.g. case 3 above). + // Substitution will be replaced with actual code on later stage of the build, + // this way Closure Compiler will not mangle it (e.g. case 4. above). + // Note that if you want to run closure, and also to use Module + // after the generated code, you will need to define var Module = {}; + // before the code. Then that object will be used in the code, and you + // can continue to use Module afterwards as well. + var Module = typeof Module != 'undefined' ? Module : {}; + + // Set up the promise that indicates the Module is initialized + var readyPromiseResolve, readyPromiseReject; + Module['ready'] = new Promise((resolve, reject) => { + readyPromiseResolve = resolve; + readyPromiseReject = reject; + }); + ["_memory", "_handle", "___indirect_function_table", "_main", "onRuntimeInitialized"].forEach((prop) => { + if (!Object.getOwnPropertyDescriptor(Module['ready'], prop)) { + Object.defineProperty(Module['ready'], prop, { + get: () => abort('You are getting ' + prop + ' on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js'), + set: () => abort('You are setting ' + prop + ' on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js'), + }); + } + }); + + // --pre-jses are emitted after the Module integration code, so that they can + // refer to Module (if they choose; they can also define Module) + // include: /opt/pre.js + /* eslint-disable */ + + Module.locateFile = (url) => { + //console.log('file', url) + return url + } + + // Module.getBinaryPromise = (f) => { + // conosle.log(f) + // console.log('hyperbeam', Module['hyperbeam']) + // return Promise.resolve('foo') + // } + // end include: /opt/pre.js + + + // Sometimes an existing Module object exists with properties + // meant to overwrite the default module functionality. Here + // we collect those properties and reapply _after_ we configure + // the current environment's defaults to avoid having to be so + // defensive during initialization. + var moduleOverrides = Object.assign({}, Module); + + var arguments_ = []; + var thisProgram = './this.program'; + var quit_ = (status, toThrow) => { + throw toThrow; + }; + + // Determine the runtime environment we are in. You can customize this by + // setting the ENVIRONMENT setting at compile time (see settings.js). + + // Attempt to auto-detect the environment + var ENVIRONMENT_IS_WEB = typeof window == 'object'; + var ENVIRONMENT_IS_WORKER = typeof importScripts == 'function'; + // N.b. Electron.js environment is simultaneously a NODE-environment, but + // also a web environment. + var ENVIRONMENT_IS_NODE = typeof process == 'object' && typeof process.versions == 'object' && typeof process.versions.node == 'string'; + var ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; + + if (Module['ENVIRONMENT']) { + throw new Error('Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)'); + } + + // `/` should be present at the end if `scriptDirectory` is not empty + var scriptDirectory = ''; + function locateFile(path) { + if (Module['locateFile']) { + return Module['locateFile'](path, scriptDirectory); + } + return scriptDirectory + path; + } + + // Hooks that are implemented differently in different runtime environments. + var read_, + readAsync, + readBinary; + + if (ENVIRONMENT_IS_NODE) { + if (typeof process == 'undefined' || !process.release || process.release.name !== 'node') throw new Error('not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)'); + + var nodeVersion = process.versions.node; + var numericVersion = nodeVersion.split('.').slice(0, 3); + numericVersion = (numericVersion[0] * 10000) + (numericVersion[1] * 100) + (numericVersion[2].split('-')[0] * 1); + var minVersion = 160000; + if (numericVersion < 160000) { + throw new Error('This emscripten-generated code requires node v16.0.0 (detected v' + nodeVersion + ')'); + } + + // `require()` is no-op in an ESM module, use `createRequire()` to construct + // the require()` function. This is only necessary for multi-environment + // builds, `-sENVIRONMENT=node` emits a static import declaration instead. + // TODO: Swap all `require()`'s with `import()`'s? + // These modules will usually be used on Node.js. Load them eagerly to avoid + // the complexity of lazy-loading. + var fs = require('fs'); + var nodePath = require('path'); + + if (ENVIRONMENT_IS_WORKER) { + scriptDirectory = nodePath.dirname(scriptDirectory) + '/'; + } else { + scriptDirectory = __dirname + '/'; + } + + // include: node_shell_read.js + read_ = (filename, binary) => { + // We need to re-wrap `file://` strings to URLs. Normalizing isn't + // necessary in that case, the path should already be absolute. + filename = isFileURI(filename) ? new URL(filename) : nodePath.normalize(filename); + return fs.readFileSync(filename, binary ? undefined : 'utf8'); + }; + + readBinary = (filename) => { + var ret = read_(filename, true); + if (!ret.buffer) { + ret = new Uint8Array(ret); + } + assert(ret.buffer); + return ret; + }; + + readAsync = (filename, onload, onerror, binary = true) => { + // See the comment in the `read_` function. + filename = isFileURI(filename) ? new URL(filename) : nodePath.normalize(filename); + fs.readFile(filename, binary ? undefined : 'utf8', (err, data) => { + if (err) onerror(err); + else onload(binary ? data.buffer : data); + }); + }; + // end include: node_shell_read.js + if (!Module['thisProgram'] && process.argv.length > 1) { + thisProgram = process.argv[1].replace(/\\/g, '/'); + } + + arguments_ = process.argv.slice(2); + + // MODULARIZE will export the module in the proper place outside, we don't need to export here + + quit_ = (status, toThrow) => { + process.exitCode = status; + throw toThrow; + }; + + } else + if (ENVIRONMENT_IS_SHELL) { + + if ((typeof process == 'object' && typeof require === 'function') || typeof window == 'object' || typeof importScripts == 'function') throw new Error('not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)'); + + if (typeof read != 'undefined') { + read_ = read; + } + + readBinary = (f) => { + if (typeof readbuffer == 'function') { + return new Uint8Array(readbuffer(f)); + } + let data = read(f, 'binary'); + assert(typeof data == 'object'); + return data; + }; + + readAsync = (f, onload, onerror) => { + setTimeout(() => onload(readBinary(f))); + }; + + if (typeof clearTimeout == 'undefined') { + globalThis.clearTimeout = (id) => { }; + } + + if (typeof setTimeout == 'undefined') { + // spidermonkey lacks setTimeout but we use it above in readAsync. + globalThis.setTimeout = (f) => (typeof f == 'function') ? f() : abort(); + } + + if (typeof scriptArgs != 'undefined') { + arguments_ = scriptArgs; + } else if (typeof arguments != 'undefined') { + arguments_ = arguments; + } + + if (typeof quit == 'function') { + quit_ = (status, toThrow) => { + // Unlike node which has process.exitCode, d8 has no such mechanism. So we + // have no way to set the exit code and then let the program exit with + // that code when it naturally stops running (say, when all setTimeouts + // have completed). For that reason, we must call `quit` - the only way to + // set the exit code - but quit also halts immediately. To increase + // consistency with node (and the web) we schedule the actual quit call + // using a setTimeout to give the current stack and any exception handlers + // a chance to run. This enables features such as addOnPostRun (which + // expected to be able to run code after main returns). + setTimeout(() => { + if (!(toThrow instanceof ExitStatus)) { + let toLog = toThrow; + if (toThrow && typeof toThrow == 'object' && toThrow.stack) { + toLog = [toThrow, toThrow.stack]; + } + err(`exiting due to exception: ${toLog}`); + } + quit(status); + }); + throw toThrow; + }; + } + + if (typeof print != 'undefined') { + // Prefer to use print/printErr where they exist, as they usually work better. + if (typeof console == 'undefined') console = /** @type{!Console} */({}); + console.log = /** @type{!function(this:Console, ...*): undefined} */ (print); + console.warn = console.error = /** @type{!function(this:Console, ...*): undefined} */ (typeof printErr != 'undefined' ? printErr : print); + } + + } else + + // Note that this includes Node.js workers when relevant (pthreads is enabled). + // Node.js workers are detected as a combination of ENVIRONMENT_IS_WORKER and + // ENVIRONMENT_IS_NODE. + if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { + if (ENVIRONMENT_IS_WORKER) { // Check worker, not web, since window could be polyfilled + scriptDirectory = self.location.href; + } else if (typeof document != 'undefined' && document.currentScript) { // web + scriptDirectory = document.currentScript.src; + } + // When MODULARIZE, this JS may be executed later, after document.currentScript + // is gone, so we saved it, and we use it here instead of any other info. + if (_scriptDir) { + scriptDirectory = _scriptDir; + } + // blob urls look like blob:http://site.com/etc/etc and we cannot infer anything from them. + // otherwise, slice off the final part of the url to find the script directory. + // if scriptDirectory does not contain a slash, lastIndexOf will return -1, + // and scriptDirectory will correctly be replaced with an empty string. + // If scriptDirectory contains a query (starting with ?) or a fragment (starting with #), + // they are removed because they could contain a slash. + if (scriptDirectory.startsWith('blob:')) { + scriptDirectory = ''; + } else { + scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, '').lastIndexOf('/') + 1); + } + + if (!(typeof window == 'object' || typeof importScripts == 'function')) throw new Error('not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)'); + + // Differentiate the Web Worker from the Node Worker case, as reading must + // be done differently. + { + // include: web_or_worker_shell_read.js + read_ = (url) => { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + xhr.send(null); + return xhr.responseText; + } + + if (ENVIRONMENT_IS_WORKER) { + readBinary = (url) => { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + xhr.responseType = 'arraybuffer'; + xhr.send(null); + return new Uint8Array(/** @type{!ArrayBuffer} */(xhr.response)); + }; + } + + readAsync = (url, onload, onerror) => { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, true); + xhr.responseType = 'arraybuffer'; + xhr.onload = () => { + if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0 + onload(xhr.response); + return; + } + onerror(); + }; + xhr.onerror = onerror; + xhr.send(null); + } + + // end include: web_or_worker_shell_read.js + } + } else { + throw new Error('environment detection error'); + } + + var out = Module['print'] || console.log.bind(console); + var err = Module['printErr'] || console.error.bind(console); + + // Merge back in the overrides + Object.assign(Module, moduleOverrides); + // Free the object hierarchy contained in the overrides, this lets the GC + // reclaim data used. + moduleOverrides = null; + checkIncomingModuleAPI(); + + // Emit code to handle expected values on the Module object. This applies Module.x + // to the proper local x. This has two benefits: first, we only emit it if it is + // expected to arrive, and second, by using a local everywhere else that can be + // minified. + + if (Module['arguments']) arguments_ = Module['arguments']; legacyModuleProp('arguments', 'arguments_'); + + if (Module['thisProgram']) thisProgram = Module['thisProgram']; legacyModuleProp('thisProgram', 'thisProgram'); + + if (Module['quit']) quit_ = Module['quit']; legacyModuleProp('quit', 'quit_'); + + // perform assertions in shell.js after we set up out() and err(), as otherwise if an assertion fails it cannot print the message + // Assertions on removed incoming Module JS APIs. + assert(typeof Module['memoryInitializerPrefixURL'] == 'undefined', 'Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead'); + assert(typeof Module['pthreadMainPrefixURL'] == 'undefined', 'Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead'); + assert(typeof Module['cdInitializerPrefixURL'] == 'undefined', 'Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead'); + assert(typeof Module['filePackagePrefixURL'] == 'undefined', 'Module.filePackagePrefixURL option was removed, use Module.locateFile instead'); + assert(typeof Module['read'] == 'undefined', 'Module.read option was removed (modify read_ in JS)'); + assert(typeof Module['readAsync'] == 'undefined', 'Module.readAsync option was removed (modify readAsync in JS)'); + assert(typeof Module['readBinary'] == 'undefined', 'Module.readBinary option was removed (modify readBinary in JS)'); + assert(typeof Module['setWindowTitle'] == 'undefined', 'Module.setWindowTitle option was removed (modify emscripten_set_window_title in JS)'); + assert(typeof Module['TOTAL_MEMORY'] == 'undefined', 'Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY'); + legacyModuleProp('asm', 'wasmExports'); + legacyModuleProp('read', 'read_'); + legacyModuleProp('readAsync', 'readAsync'); + legacyModuleProp('readBinary', 'readBinary'); + legacyModuleProp('setWindowTitle', 'setWindowTitle'); + var IDBFS = 'IDBFS is no longer included by default; build with -lidbfs.js'; + var PROXYFS = 'PROXYFS is no longer included by default; build with -lproxyfs.js'; + var WORKERFS = 'WORKERFS is no longer included by default; build with -lworkerfs.js'; + var FETCHFS = 'FETCHFS is no longer included by default; build with -lfetchfs.js'; + var ICASEFS = 'ICASEFS is no longer included by default; build with -licasefs.js'; + var JSFILEFS = 'JSFILEFS is no longer included by default; build with -ljsfilefs.js'; + var OPFS = 'OPFS is no longer included by default; build with -lopfs.js'; + + var NODEFS = 'NODEFS is no longer included by default; build with -lnodefs.js'; + + assert(!ENVIRONMENT_IS_SHELL, 'shell environment detected but not enabled at build time. Add `shell` to `-sENVIRONMENT` to enable.'); + + // end include: shell.js + + // include: preamble.js + // === Preamble library stuff === + + // Documentation for the public APIs defined in this file must be updated in: + // site/source/docs/api_reference/preamble.js.rst + // A prebuilt local version of the documentation is available at: + // site/build/text/docs/api_reference/preamble.js.txt + // You can also build docs locally as HTML or other formats in site/ + // An online HTML version (which may be of a different version of Emscripten) + // is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html + + var wasmBinary; + if (Module['wasmBinary']) wasmBinary = Module['wasmBinary']; legacyModuleProp('wasmBinary', 'wasmBinary'); + + if (typeof WebAssembly != 'object') { + abort('no native wasm support detected'); + } + + // Wasm globals + + var wasmMemory; + + //======================================== + // Runtime essentials + //======================================== + + // whether we are quitting the application. no code should run after this. + // set in exit() and abort() + var ABORT = false; + + // set by exit() and abort(). Passed to 'onExit' handler. + // NOTE: This is also used as the process return code code in shell environments + // but only when noExitRuntime is false. + var EXITSTATUS; + + // In STRICT mode, we only define assert() when ASSERTIONS is set. i.e. we + // don't define it at all in release modes. This matches the behaviour of + // MINIMAL_RUNTIME. + // TODO(sbc): Make this the default even without STRICT enabled. + /** @type {function(*, string=)} */ + function assert(condition, text) { + if (!condition) { + abort('Assertion failed' + (text ? ': ' + text : '')); + } + } + + // We used to include malloc/free by default in the past. Show a helpful error in + // builds with assertions. + function _malloc() { + abort('malloc() called but not included in the build - add `_malloc` to EXPORTED_FUNCTIONS'); + } + function _free() { + // Show a helpful error since we used to include free by default in the past. + abort('free() called but not included in the build - add `_free` to EXPORTED_FUNCTIONS'); + } + + // Memory management + + var HEAP, + /** @type {!Int8Array} */ + HEAP8, + /** @type {!Uint8Array} */ + HEAPU8, + /** @type {!Int16Array} */ + HEAP16, + /** @type {!Uint16Array} */ + HEAPU16, + /** @type {!Int32Array} */ + HEAP32, + /** @type {!Uint32Array} */ + HEAPU32, + /** @type {!Float32Array} */ + HEAPF32, + /* BigInt64Array type is not correctly defined in closure + /** not-@type {!BigInt64Array} */ + HEAP64, + /* BigUInt64Array type is not correctly defined in closure + /** not-t@type {!BigUint64Array} */ + HEAPU64, + /** @type {!Float64Array} */ + HEAPF64; + + // include: runtime_shared.js + function updateMemoryViews() { + var b = wasmMemory.buffer; + Module['HEAP8'] = HEAP8 = new Int8Array(b); + Module['HEAP16'] = HEAP16 = new Int16Array(b); + Module['HEAPU8'] = HEAPU8 = new Uint8Array(b); + Module['HEAPU16'] = HEAPU16 = new Uint16Array(b); + Module['HEAP32'] = HEAP32 = new Int32Array(b); + Module['HEAPU32'] = HEAPU32 = new Uint32Array(b); + Module['HEAPF32'] = HEAPF32 = new Float32Array(b); + Module['HEAPF64'] = HEAPF64 = new Float64Array(b); + Module['HEAP64'] = HEAP64 = new BigInt64Array(b); + Module['HEAPU64'] = HEAPU64 = new BigUint64Array(b); + } + // end include: runtime_shared.js + assert(!Module['STACK_SIZE'], 'STACK_SIZE can no longer be set at runtime. Use -sSTACK_SIZE at link time') + + assert(typeof Int32Array != 'undefined' && typeof Float64Array !== 'undefined' && Int32Array.prototype.subarray != undefined && Int32Array.prototype.set != undefined, + 'JS engine does not provide full typed array support'); + + // If memory is defined in wasm, the user can't provide it, or set INITIAL_MEMORY + assert(!Module['wasmMemory'], 'Use of `wasmMemory` detected. Use -sIMPORTED_MEMORY to define wasmMemory externally'); + assert(!Module['INITIAL_MEMORY'], 'Detected runtime INITIAL_MEMORY setting. Use -sIMPORTED_MEMORY to define wasmMemory dynamically'); + + // include: runtime_stack_check.js + // Initializes the stack cookie. Called at the startup of main and at the startup of each thread in pthreads mode. + function writeStackCookie() { + var max = _emscripten_stack_get_end(); + assert((max & 3) == 0); + // If the stack ends at address zero we write our cookies 4 bytes into the + // stack. This prevents interference with SAFE_HEAP and ASAN which also + // monitor writes to address zero. + if (max == 0) { + max += 4; + } + // The stack grow downwards towards _emscripten_stack_get_end. + // We write cookies to the final two words in the stack and detect if they are + // ever overwritten. + HEAPU32[((max) / 4)] = 0x02135467; + HEAPU32[(((max) + (4)) / 4)] = 0x89BACDFE; + // Also test the global address 0 for integrity. + HEAPU32[((0) / 4)] = 1668509029; + } + + function checkStackCookie() { + if (ABORT) return; + var max = _emscripten_stack_get_end(); + // See writeStackCookie(). + if (max == 0) { + max += 4; + } + var cookie1 = HEAPU32[((max) / 4)]; + var cookie2 = HEAPU32[(((max) + (4)) / 4)]; + if (cookie1 != 0x02135467 || cookie2 != 0x89BACDFE) { + abort(`Stack overflow! Stack cookie has been overwritten at ${ptrToString(max)}, expected hex dwords 0x89BACDFE and 0x2135467, but received ${ptrToString(cookie2)} ${ptrToString(cookie1)}`); + } + // Also test the global address 0 for integrity. + if (HEAPU32[((0) / 4)] != 0x63736d65 /* 'emsc' */) { + abort('Runtime error: The application has corrupted its heap memory area (address zero)!'); + } + } + // end include: runtime_stack_check.js + // include: runtime_assertions.js + // Endianness check + (function () { + var h16 = new Int16Array(1); + var h8 = new Int8Array(h16.buffer); + h16[0] = 0x6373; + if (h8[0] !== 0x73 || h8[1] !== 0x63) throw 'Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)'; + })(); + + // end include: runtime_assertions.js + var __ATPRERUN__ = []; // functions called before the runtime is initialized + var __ATINIT__ = []; // functions called during startup + var __ATMAIN__ = []; // functions called when main() is to be run + var __ATEXIT__ = []; // functions called during shutdown + var __ATPOSTRUN__ = []; // functions called after the main() is called + + var runtimeInitialized = false; + + function preRun() { + if (Module['preRun']) { + if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']]; + while (Module['preRun'].length) { + addOnPreRun(Module['preRun'].shift()); + } + } + callRuntimeCallbacks(__ATPRERUN__); + } + + function initRuntime() { + assert(!runtimeInitialized); + runtimeInitialized = true; + + checkStackCookie(); + + + if (!Module['noFSInit'] && !FS.init.initialized) + FS.init(); + FS.ignorePermissions = false; + + TTY.init(); + callRuntimeCallbacks(__ATINIT__); + } + + function preMain() { + checkStackCookie(); + + callRuntimeCallbacks(__ATMAIN__); + } + + function postRun() { + checkStackCookie(); + + if (Module['postRun']) { + if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']]; + while (Module['postRun'].length) { + addOnPostRun(Module['postRun'].shift()); + } + } + + callRuntimeCallbacks(__ATPOSTRUN__); + } + + function addOnPreRun(cb) { + __ATPRERUN__.unshift(cb); + } + + function addOnInit(cb) { + __ATINIT__.unshift(cb); + } + + function addOnPreMain(cb) { + __ATMAIN__.unshift(cb); + } + + function addOnExit(cb) { + } + + function addOnPostRun(cb) { + __ATPOSTRUN__.unshift(cb); + } + + // include: runtime_math.js + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul + + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/fround + + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/clz32 + + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc + + assert(Math.imul, 'This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill'); + assert(Math.fround, 'This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill'); + assert(Math.clz32, 'This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill'); + assert(Math.trunc, 'This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill'); + // end include: runtime_math.js + // A counter of dependencies for calling run(). If we need to + // do asynchronous work before running, increment this and + // decrement it. Incrementing must happen in a place like + // Module.preRun (used by emcc to add file preloading). + // Note that you can add dependencies in preRun, even though + // it happens right before run - run will be postponed until + // the dependencies are met. + var runDependencies = 0; + var runDependencyWatcher = null; + var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled + var runDependencyTracking = {}; + + function getUniqueRunDependency(id) { + var orig = id; + while (1) { + if (!runDependencyTracking[id]) return id; + id = orig + Math.random(); + } + } + + function addRunDependency(id) { + runDependencies++; + + Module['monitorRunDependencies']?.(runDependencies); + + if (id) { + assert(!runDependencyTracking[id]); + runDependencyTracking[id] = 1; + if (runDependencyWatcher === null && typeof setInterval != 'undefined') { + // Check for missing dependencies every few seconds + runDependencyWatcher = setInterval(() => { + if (ABORT) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + return; + } + var shown = false; + for (var dep in runDependencyTracking) { + if (!shown) { + shown = true; + err('still waiting on run dependencies:'); + } + err(`dependency: ${dep}`); + } + if (shown) { + err('(end of list)'); + } + }, 10000); + } + } else { + err('warning: run dependency added without ID'); + } + } + + function removeRunDependency(id) { + runDependencies--; + + Module['monitorRunDependencies']?.(runDependencies); + + if (id) { + assert(runDependencyTracking[id]); + delete runDependencyTracking[id]; + } else { + err('warning: run dependency removed without ID'); + } + if (runDependencies == 0) { + if (runDependencyWatcher !== null) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null; + } + if (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback(); // can add another dependenciesFulfilled + } + } + } + + /** @param {string|number=} what */ + function abort(what) { + Module['onAbort']?.(what); + + what = 'Aborted(' + what + ')'; + // TODO(sbc): Should we remove printing and leave it up to whoever + // catches the exception? + err(what); + + ABORT = true; + EXITSTATUS = 1; + + // Use a wasm runtime error, because a JS error might be seen as a foreign + // exception, which means we'd run destructors on it. We need the error to + // simply make the program stop. + // FIXME This approach does not work in Wasm EH because it currently does not assume + // all RuntimeErrors are from traps; it decides whether a RuntimeError is from + // a trap or not based on a hidden field within the object. So at the moment + // we don't have a way of throwing a wasm trap from JS. TODO Make a JS API that + // allows this in the wasm spec. + + // Suppress closure compiler warning here. Closure compiler's builtin extern + // definition for WebAssembly.RuntimeError claims it takes no arguments even + // though it can. + // TODO(https://github.com/google/closure-compiler/pull/3913): Remove if/when upstream closure gets fixed. + /** @suppress {checkTypes} */ + var e = new WebAssembly.RuntimeError(what); + + readyPromiseReject(e); + // Throw the error whether or not MODULARIZE is set because abort is used + // in code paths apart from instantiation where an exception is expected + // to be thrown when abort is called. + throw e; + } + + // include: memoryprofiler.js + // end include: memoryprofiler.js + // include: URIUtils.js + // Prefix of data URIs emitted by SINGLE_FILE and related options. + var dataURIPrefix = 'data:application/octet-stream;base64,'; + + /** + * Indicates whether filename is a base64 data URI. + * @noinline + */ + var isDataURI = (filename) => filename.startsWith(dataURIPrefix); + + /** + * Indicates whether filename is delivered via file protocol (as opposed to http/https) + * @noinline + */ + var isFileURI = (filename) => filename.startsWith('file://'); + // end include: URIUtils.js + function createExportWrapper(name) { + return (...args) => { + assert(runtimeInitialized, `native function \`${name}\` called before runtime initialization`); + var f = wasmExports[name]; + assert(f, `exported native function \`${name}\` not found`); + return f(...args); + }; + } + + // include: runtime_exceptions.js + // end include: runtime_exceptions.js + var wasmBinaryFile; + wasmBinaryFile = 'process.wasm'; + if (!isDataURI(wasmBinaryFile)) { + wasmBinaryFile = locateFile(wasmBinaryFile); + } + + function getBinarySync(file) { + if (file == wasmBinaryFile && wasmBinary) { + return new Uint8Array(wasmBinary); + } + if (readBinary) { + return readBinary(file); + } + throw 'both async and sync fetching of the wasm failed'; + } + + function getBinaryPromise(binaryFile) { + // If we don't have the binary yet, try to load it asynchronously. + // Fetch has some additional restrictions over XHR, like it can't be used on a file:// url. + // See https://github.com/github/fetch/pull/92#issuecomment-140665932 + // Cordova or Electron apps are typically loaded from a file:// url. + // So use fetch if it is available and the url is not a file, otherwise fall back to XHR. + if (!wasmBinary + && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) { + if (typeof fetch == 'function' + && !isFileURI(binaryFile) + ) { + return fetch(binaryFile, { credentials: 'same-origin' }).then((response) => { + if (!response['ok']) { + throw `failed to load wasm binary file at '${binaryFile}'`; + } + return response['arrayBuffer'](); + }).catch(() => getBinarySync(binaryFile)); + } + else if (readAsync) { + // fetch is not available or url is file => try XHR (readAsync uses XHR internally) + return new Promise((resolve, reject) => { + readAsync(binaryFile, (response) => resolve(new Uint8Array(/** @type{!ArrayBuffer} */(response))), reject) + }); + } + } + + // Otherwise, getBinarySync should be able to get it synchronously + return Promise.resolve().then(() => getBinarySync(binaryFile)); + } + + function instantiateArrayBuffer(binaryFile, imports, receiver) { + return getBinaryPromise(binaryFile).then((binary) => { + return WebAssembly.instantiate(binary, imports); + }).then(receiver, (reason) => { + err(`failed to asynchronously prepare wasm: ${reason}`); + + // Warn on some common problems. + if (isFileURI(wasmBinaryFile)) { + err(`warning: Loading from a file URI (${wasmBinaryFile}) is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing`); + } + abort(reason); + }); + } + + function instantiateAsync(binary, binaryFile, imports, callback) { + if (!binary && + typeof WebAssembly.instantiateStreaming == 'function' && + !isDataURI(binaryFile) && + // Don't use streaming for file:// delivered objects in a webview, fetch them synchronously. + !isFileURI(binaryFile) && + // Avoid instantiateStreaming() on Node.js environment for now, as while + // Node.js v18.1.0 implements it, it does not have a full fetch() + // implementation yet. + // + // Reference: + // https://github.com/emscripten-core/emscripten/pull/16917 + !ENVIRONMENT_IS_NODE && + typeof fetch == 'function') { + return fetch(binaryFile, { credentials: 'same-origin' }).then((response) => { + // Suppress closure warning here since the upstream definition for + // instantiateStreaming only allows Promise rather than + // an actual Response. + // TODO(https://github.com/google/closure-compiler/pull/3913): Remove if/when upstream closure is fixed. + /** @suppress {checkTypes} */ + var result = WebAssembly.instantiateStreaming(response, imports); + + return result.then( + callback, + function (reason) { + // We expect the most common failure cause to be a bad MIME type for the binary, + // in which case falling back to ArrayBuffer instantiation should work. + err(`wasm streaming compile failed: ${reason}`); + err('falling back to ArrayBuffer instantiation'); + return instantiateArrayBuffer(binaryFile, imports, callback); + }); + }); + } + return instantiateArrayBuffer(binaryFile, imports, callback); + } + + // Create the wasm instance. + // Receives the wasm imports, returns the exports. + function createWasm() { + // prepare imports + var info = { + 'env': wasmImports, + 'wasi_snapshot_preview1': wasmImports, + }; + // Load the wasm module and create an instance of using native support in the JS engine. + // handle a generated wasm instance, receiving its exports and + // performing other necessary setup + /** @param {WebAssembly.Module=} module*/ + function receiveInstance(instance, module) { + wasmExports = instance.exports; + + wasmExports = applySignatureConversions(wasmExports); + + + + wasmMemory = wasmExports['memory']; + + assert(wasmMemory, 'memory not found in wasm exports'); + // This assertion doesn't hold when emscripten is run in --post-link + // mode. + // TODO(sbc): Read INITIAL_MEMORY out of the wasm file in post-link mode. + //assert(wasmMemory.buffer.byteLength === 6291456); + updateMemoryViews(); + + wasmTable = wasmExports['__indirect_function_table']; + + assert(wasmTable, 'table not found in wasm exports'); + + addOnInit(wasmExports['__wasm_call_ctors']); + + removeRunDependency('wasm-instantiate'); + return wasmExports; + } + // wait for the pthread pool (if any) + addRunDependency('wasm-instantiate'); + + // Prefer streaming instantiation if available. + // Async compilation can be confusing when an error on the page overwrites Module + // (for example, if the order of elements is wrong, and the one defining Module is + // later), so we save Module and check it later. + var trueModule = Module; + function receiveInstantiationResult(result) { + // 'result' is a ResultObject object which has both the module and instance. + // receiveInstance() will swap in the exports (to Module.asm) so they can be called + assert(Module === trueModule, 'the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?'); + trueModule = null; + // TODO: Due to Closure regression https://github.com/google/closure-compiler/issues/3193, the above line no longer optimizes out down to the following line. + // When the regression is fixed, can restore the above PTHREADS-enabled path. + receiveInstance(result['instance']); + } + + // User shell pages can write their own Module.instantiateWasm = function(imports, successCallback) callback + // to manually instantiate the Wasm module themselves. This allows pages to + // run the instantiation parallel to any other async startup actions they are + // performing. + // Also pthreads and wasm workers initialize the wasm instance through this + // path. + if (Module['instantiateWasm']) { + + try { + return Module['instantiateWasm'](info, receiveInstance); + } catch (e) { + err(`Module.instantiateWasm callback failed with error: ${e}`); + // If instantiation fails, reject the module ready promise. + readyPromiseReject(e); + } + } + + // If instantiation fails, reject the module ready promise. + instantiateAsync(wasmBinary, wasmBinaryFile, info, receiveInstantiationResult).catch(readyPromiseReject); + return {}; // no exports yet; we'll fill them in later + } + + // include: runtime_debug.js + function legacyModuleProp(prop, newName, incoming = true) { + if (!Object.getOwnPropertyDescriptor(Module, prop)) { + Object.defineProperty(Module, prop, { + configurable: true, + get() { + let extra = incoming ? ' (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)' : ''; + abort(`\`Module.${prop}\` has been replaced by \`${newName}\`` + extra); + + } + }); + } + } + + function ignoredModuleProp(prop) { + if (Object.getOwnPropertyDescriptor(Module, prop)) { + abort(`\`Module.${prop}\` was supplied but \`${prop}\` not included in INCOMING_MODULE_JS_API`); + } + } + + // forcing the filesystem exports a few things by default + function isExportedByForceFilesystem(name) { + return name === 'FS_createPath' || + name === 'FS_createDataFile' || + name === 'FS_createPreloadedFile' || + name === 'FS_unlink' || + name === 'addRunDependency' || + // The old FS has some functionality that WasmFS lacks. + name === 'FS_createLazyFile' || + name === 'FS_createDevice' || + name === 'removeRunDependency'; + } + + function missingGlobal(sym, msg) { + if (typeof globalThis !== 'undefined') { + Object.defineProperty(globalThis, sym, { + configurable: true, + get() { + warnOnce(`\`${sym}\` is not longer defined by emscripten. ${msg}`); + return undefined; + } + }); + } + } + + missingGlobal('buffer', 'Please use HEAP8.buffer or wasmMemory.buffer'); + missingGlobal('asm', 'Please use wasmExports instead'); + + function missingLibrarySymbol(sym) { + if (typeof globalThis !== 'undefined' && !Object.getOwnPropertyDescriptor(globalThis, sym)) { + Object.defineProperty(globalThis, sym, { + configurable: true, + get() { + // Can't `abort()` here because it would break code that does runtime + // checks. e.g. `if (typeof SDL === 'undefined')`. + var msg = `\`${sym}\` is a library symbol and not included by default; add it to your library.js __deps or to DEFAULT_LIBRARY_FUNCS_TO_INCLUDE on the command line`; + // DEFAULT_LIBRARY_FUNCS_TO_INCLUDE requires the name as it appears in + // library.js, which means $name for a JS name with no prefix, or name + // for a JS name like _name. + var librarySymbol = sym; + if (!librarySymbol.startsWith('_')) { + librarySymbol = '$' + sym; + } + msg += ` (e.g. -sDEFAULT_LIBRARY_FUNCS_TO_INCLUDE='${librarySymbol}')`; + if (isExportedByForceFilesystem(sym)) { + msg += '. Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you'; + } + warnOnce(msg); + return undefined; + } + }); + } + // Any symbol that is not included from the JS library is also (by definition) + // not exported on the Module object. + unexportedRuntimeSymbol(sym); + } + + function unexportedRuntimeSymbol(sym) { + if (!Object.getOwnPropertyDescriptor(Module, sym)) { + Object.defineProperty(Module, sym, { + configurable: true, + get() { + var msg = `'${sym}' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the Emscripten FAQ)`; + if (isExportedByForceFilesystem(sym)) { + msg += '. Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you'; + } + abort(msg); + } + }); + } + } + + // Used by XXXXX_DEBUG settings to output debug messages. + function dbg(...args) { + // TODO(sbc): Make this configurable somehow. Its not always convenient for + // logging to show up as warnings. + console.warn(...args); + } + // end include: runtime_debug.js + // === Body === + // end include: preamble.js + + + /** @constructor */ + function ExitStatus(status) { + this.name = 'ExitStatus'; + this.message = `Program terminated with exit(${status})`; + this.status = status; + } + + var callRuntimeCallbacks = (callbacks) => { + while (callbacks.length > 0) { + // Pass the module as the first argument. + callbacks.shift()(Module); + } + }; + + + /** + * @param {number} ptr + * @param {string} type + */ + function getValue(ptr, type = 'i8') { + if (type.endsWith('*')) type = '*'; + switch (type) { + case 'i1': return HEAP8[ptr]; + case 'i8': return HEAP8[ptr]; + case 'i16': return HEAP16[((ptr) / 2)]; + case 'i32': return HEAP32[((ptr) / 4)]; + case 'i64': return HEAP64[((ptr) / 8)]; + case 'float': return HEAPF32[((ptr) / 4)]; + case 'double': return HEAPF64[((ptr) / 8)]; + case '*': return Number(HEAPU64[((ptr) / 8)]); + default: abort(`invalid type for getValue: ${type}`); + } + } + + var noExitRuntime = Module['noExitRuntime'] || true; + + var ptrToString = (ptr) => { + assert(typeof ptr === 'number'); + return '0x' + ptr.toString(16).padStart(8, '0'); + }; + + + /** + * @param {number} ptr + * @param {number} value + * @param {string} type + */ + function setValue(ptr, value, type = 'i8') { + if (type.endsWith('*')) type = '*'; + switch (type) { + case 'i1': HEAP8[ptr] = value; break; + case 'i8': HEAP8[ptr] = value; break; + case 'i16': HEAP16[((ptr) / 2)] = value; break; + case 'i32': HEAP32[((ptr) / 4)] = value; break; + case 'i64': HEAP64[((ptr) / 8)] = BigInt(value); break; + case 'float': HEAPF32[((ptr) / 4)] = value; break; + case 'double': HEAPF64[((ptr) / 8)] = value; break; + case '*': HEAPU64[((ptr) / 8)] = BigInt(value); break; + default: abort(`invalid type for setValue: ${type}`); + } + } + + var warnOnce = (text) => { + warnOnce.shown ||= {}; + if (!warnOnce.shown[text]) { + warnOnce.shown[text] = 1; + if (ENVIRONMENT_IS_NODE) text = 'warning: ' + text; + err(text); + } + }; + + var PATH = { + isAbs: (path) => path.charAt(0) === '/', + splitPath: (filename) => { + var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; + return splitPathRe.exec(filename).slice(1); + }, + normalizeArray: (parts, allowAboveRoot) => { + // if the path tries to go above the root, `up` ends up > 0 + var up = 0; + for (var i = parts.length - 1; i >= 0; i--) { + var last = parts[i]; + if (last === '.') { + parts.splice(i, 1); + } else if (last === '..') { + parts.splice(i, 1); + up++; + } else if (up) { + parts.splice(i, 1); + up--; + } + } + // if the path is allowed to go above the root, restore leading ..s + if (allowAboveRoot) { + for (; up; up--) { + parts.unshift('..'); + } + } + return parts; + }, + normalize: (path) => { + var isAbsolute = PATH.isAbs(path), + trailingSlash = path.substr(-1) === '/'; + // Normalize the path + path = PATH.normalizeArray(path.split('/').filter((p) => !!p), !isAbsolute).join('/'); + if (!path && !isAbsolute) { + path = '.'; + } + if (path && trailingSlash) { + path += '/'; + } + return (isAbsolute ? '/' : '') + path; + }, + dirname: (path) => { + var result = PATH.splitPath(path), + root = result[0], + dir = result[1]; + if (!root && !dir) { + // No dirname whatsoever + return '.'; + } + if (dir) { + // It has a dirname, strip trailing slash + dir = dir.substr(0, dir.length - 1); + } + return root + dir; + }, + basename: (path) => { + // EMSCRIPTEN return '/'' for '/', not an empty string + if (path === '/') return '/'; + path = PATH.normalize(path); + path = path.replace(/\/$/, ""); + var lastSlash = path.lastIndexOf('/'); + if (lastSlash === -1) return path; + return path.substr(lastSlash + 1); + }, + join: (...paths) => PATH.normalize(paths.join('/')), + join2: (l, r) => PATH.normalize(l + '/' + r), + }; + + var initRandomFill = () => { + if (typeof crypto == 'object' && typeof crypto['getRandomValues'] == 'function') { + // for modern web browsers + return (view) => crypto.getRandomValues(view); + } else + if (ENVIRONMENT_IS_NODE) { + // for nodejs with or without crypto support included + try { + var crypto_module = require('crypto'); + var randomFillSync = crypto_module['randomFillSync']; + if (randomFillSync) { + // nodejs with LTS crypto support + return (view) => crypto_module['randomFillSync'](view); + } + // very old nodejs with the original crypto API + var randomBytes = crypto_module['randomBytes']; + return (view) => ( + view.set(randomBytes(view.byteLength)), + // Return the original view to match modern native implementations. + view + ); + } catch (e) { + // nodejs doesn't have crypto support + } + } + // we couldn't find a proper implementation, as Math.random() is not suitable for /dev/random, see emscripten-core/emscripten/pull/7096 + abort('no cryptographic support found for randomDevice. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: (array) => { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };'); + }; + var randomFill = (view) => { + // Lazily init on the first invocation. + return (randomFill = initRandomFill())(view); + }; + + + + var PATH_FS = { + resolve: (...args) => { + var resolvedPath = '', + resolvedAbsolute = false; + for (var i = args.length - 1; i >= -1 && !resolvedAbsolute; i--) { + var path = (i >= 0) ? args[i] : FS.cwd(); + // Skip empty and invalid entries + if (typeof path != 'string') { + throw new TypeError('Arguments to path.resolve must be strings'); + } else if (!path) { + return ''; // an invalid portion invalidates the whole thing + } + resolvedPath = path + '/' + resolvedPath; + resolvedAbsolute = PATH.isAbs(path); + } + // At this point the path should be resolved to a full absolute path, but + // handle relative paths to be safe (might happen when process.cwd() fails) + resolvedPath = PATH.normalizeArray(resolvedPath.split('/').filter((p) => !!p), !resolvedAbsolute).join('/'); + return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; + }, + relative: (from, to) => { + from = PATH_FS.resolve(from).substr(1); + to = PATH_FS.resolve(to).substr(1); + function trim(arr) { + var start = 0; + for (; start < arr.length; start++) { + if (arr[start] !== '') break; + } + var end = arr.length - 1; + for (; end >= 0; end--) { + if (arr[end] !== '') break; + } + if (start > end) return []; + return arr.slice(start, end - start + 1); + } + var fromParts = trim(from.split('/')); + var toParts = trim(to.split('/')); + var length = Math.min(fromParts.length, toParts.length); + var samePartsLength = length; + for (var i = 0; i < length; i++) { + if (fromParts[i] !== toParts[i]) { + samePartsLength = i; + break; + } + } + var outputParts = []; + for (var i = samePartsLength; i < fromParts.length; i++) { + outputParts.push('..'); + } + outputParts = outputParts.concat(toParts.slice(samePartsLength)); + return outputParts.join('/'); + }, + }; + + + var UTF8Decoder = typeof TextDecoder != 'undefined' ? new TextDecoder('utf8') : undefined; + + /** + * Given a pointer 'idx' to a null-terminated UTF8-encoded string in the given + * array that contains uint8 values, returns a copy of that string as a + * Javascript String object. + * heapOrArray is either a regular array, or a JavaScript typed array view. + * @param {number} idx + * @param {number=} maxBytesToRead + * @return {string} + */ + var UTF8ArrayToString = (heapOrArray, idx, maxBytesToRead) => { + var endIdx = idx + maxBytesToRead; + var endPtr = idx; + // TextDecoder needs to know the byte length in advance, it doesn't stop on + // null terminator by itself. Also, use the length info to avoid running tiny + // strings through TextDecoder, since .subarray() allocates garbage. + // (As a tiny code save trick, compare endPtr against endIdx using a negation, + // so that undefined means Infinity) + while (heapOrArray[endPtr] && !(endPtr >= endIdx)) ++endPtr; + + if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) { + return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr)); + } + var str = ''; + // If building with TextDecoder, we have already computed the string length + // above, so test loop end condition against that + while (idx < endPtr) { + // For UTF8 byte structure, see: + // http://en.wikipedia.org/wiki/UTF-8#Description + // https://www.ietf.org/rfc/rfc2279.txt + // https://tools.ietf.org/html/rfc3629 + var u0 = heapOrArray[idx++]; + if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; } + var u1 = heapOrArray[idx++] & 63; + if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; } + var u2 = heapOrArray[idx++] & 63; + if ((u0 & 0xF0) == 0xE0) { + u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; + } else { + if ((u0 & 0xF8) != 0xF0) warnOnce('Invalid UTF-8 leading byte ' + ptrToString(u0) + ' encountered when deserializing a UTF-8 string in wasm memory to a JS string!'); + u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | (heapOrArray[idx++] & 63); + } + + if (u0 < 0x10000) { + str += String.fromCharCode(u0); + } else { + var ch = u0 - 0x10000; + str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); + } + } + return str; + }; + + var FS_stdin_getChar_buffer = []; + + var lengthBytesUTF8 = (str) => { + var len = 0; + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code + // unit, not a Unicode code point of the character! So decode + // UTF16->UTF32->UTF8. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + var c = str.charCodeAt(i); // possibly a lead surrogate + if (c <= 0x7F) { + len++; + } else if (c <= 0x7FF) { + len += 2; + } else if (c >= 0xD800 && c <= 0xDFFF) { + len += 4; ++i; + } else { + len += 3; + } + } + return len; + }; + + var stringToUTF8Array = (str, heap, outIdx, maxBytesToWrite) => { + assert(typeof str === 'string', `stringToUTF8Array expects a string (got ${typeof str})`); + // Parameter maxBytesToWrite is not optional. Negative values, 0, null, + // undefined and false each don't write out any bytes. + if (!(maxBytesToWrite > 0)) + return 0; + + var startIdx = outIdx; + var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator. + for (var i = 0; i < str.length; ++i) { + // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code + // unit, not a Unicode code point of the character! So decode + // UTF16->UTF32->UTF8. + // See http://unicode.org/faq/utf_bom.html#utf16-3 + // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description + // and https://www.ietf.org/rfc/rfc2279.txt + // and https://tools.ietf.org/html/rfc3629 + var u = str.charCodeAt(i); // possibly a lead surrogate + if (u >= 0xD800 && u <= 0xDFFF) { + var u1 = str.charCodeAt(++i); + u = 0x10000 + ((u & 0x3FF) << 10) | (u1 & 0x3FF); + } + if (u <= 0x7F) { + if (outIdx >= endIdx) break; + heap[outIdx++] = u; + } else if (u <= 0x7FF) { + if (outIdx + 1 >= endIdx) break; + heap[outIdx++] = 0xC0 | (u >> 6); + heap[outIdx++] = 0x80 | (u & 63); + } else if (u <= 0xFFFF) { + if (outIdx + 2 >= endIdx) break; + heap[outIdx++] = 0xE0 | (u >> 12); + heap[outIdx++] = 0x80 | ((u >> 6) & 63); + heap[outIdx++] = 0x80 | (u & 63); + } else { + if (outIdx + 3 >= endIdx) break; + if (u > 0x10FFFF) warnOnce('Invalid Unicode code point ' + ptrToString(u) + ' encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF).'); + heap[outIdx++] = 0xF0 | (u >> 18); + heap[outIdx++] = 0x80 | ((u >> 12) & 63); + heap[outIdx++] = 0x80 | ((u >> 6) & 63); + heap[outIdx++] = 0x80 | (u & 63); + } + } + // Null-terminate the pointer to the buffer. + heap[outIdx] = 0; + return outIdx - startIdx; + }; + /** @type {function(string, boolean=, number=)} */ + function intArrayFromString(stringy, dontAddNull, length) { + var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1; + var u8array = new Array(len); + var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); + if (dontAddNull) u8array.length = numBytesWritten; + return u8array; + } + var FS_stdin_getChar = () => { + if (!FS_stdin_getChar_buffer.length) { + var result = null; + if (ENVIRONMENT_IS_NODE) { + // we will read data by chunks of BUFSIZE + var BUFSIZE = 256; + var buf = Buffer.alloc(BUFSIZE); + var bytesRead = 0; + + // For some reason we must suppress a closure warning here, even though + // fd definitely exists on process.stdin, and is even the proper way to + // get the fd of stdin, + // https://github.com/nodejs/help/issues/2136#issuecomment-523649904 + // This started to happen after moving this logic out of library_tty.js, + // so it is related to the surrounding code in some unclear manner. + /** @suppress {missingProperties} */ + var fd = process.stdin.fd; + + try { + bytesRead = fs.readSync(fd, buf); + } catch (e) { + // Cross-platform differences: on Windows, reading EOF throws an exception, but on other OSes, + // reading EOF returns 0. Uniformize behavior by treating the EOF exception to return 0. + if (e.toString().includes('EOF')) bytesRead = 0; + else throw e; + } + + if (bytesRead > 0) { + result = buf.slice(0, bytesRead).toString('utf-8'); + } else { + result = null; + } + } else + if (typeof window != 'undefined' && + typeof window.prompt == 'function') { + // Browser. + result = window.prompt('Input: '); // returns null on cancel + if (result !== null) { + result += '\n'; + } + } else if (typeof readline == 'function') { + // Command line. + result = readline(); + if (result !== null) { + result += '\n'; + } + } + if (!result) { + return null; + } + FS_stdin_getChar_buffer = intArrayFromString(result, true); + } + return FS_stdin_getChar_buffer.shift(); + }; + var TTY = { + ttys: [], + init() { + // https://github.com/emscripten-core/emscripten/pull/1555 + // if (ENVIRONMENT_IS_NODE) { + // // currently, FS.init does not distinguish if process.stdin is a file or TTY + // // device, it always assumes it's a TTY device. because of this, we're forcing + // // process.stdin to UTF8 encoding to at least make stdin reading compatible + // // with text files until FS.init can be refactored. + // process.stdin.setEncoding('utf8'); + // } + }, + shutdown() { + // https://github.com/emscripten-core/emscripten/pull/1555 + // if (ENVIRONMENT_IS_NODE) { + // // inolen: any idea as to why node -e 'process.stdin.read()' wouldn't exit immediately (with process.stdin being a tty)? + // // isaacs: because now it's reading from the stream, you've expressed interest in it, so that read() kicks off a _read() which creates a ReadReq operation + // // inolen: I thought read() in that case was a synchronous operation that just grabbed some amount of buffered data if it exists? + // // isaacs: it is. but it also triggers a _read() call, which calls readStart() on the handle + // // isaacs: do process.stdin.pause() and i'd think it'd probably close the pending call + // process.stdin.pause(); + // } + }, + register(dev, ops) { + TTY.ttys[dev] = { input: [], output: [], ops: ops }; + FS.registerDevice(dev, TTY.stream_ops); + }, + stream_ops: { + open(stream) { + var tty = TTY.ttys[stream.node.rdev]; + if (!tty) { + throw new FS.ErrnoError(43); + } + stream.tty = tty; + stream.seekable = false; + }, + close(stream) { + // flush any pending line data + stream.tty.ops.fsync(stream.tty); + }, + fsync(stream) { + stream.tty.ops.fsync(stream.tty); + }, + read(stream, buffer, offset, length, pos /* ignored */) { + if (!stream.tty || !stream.tty.ops.get_char) { + throw new FS.ErrnoError(60); + } + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = stream.tty.ops.get_char(stream.tty); + } catch (e) { + throw new FS.ErrnoError(29); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(6); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset + i] = result; + } + if (bytesRead) { + stream.node.timestamp = Date.now(); + } + return bytesRead; + }, + write(stream, buffer, offset, length, pos) { + if (!stream.tty || !stream.tty.ops.put_char) { + throw new FS.ErrnoError(60); + } + try { + for (var i = 0; i < length; i++) { + stream.tty.ops.put_char(stream.tty, buffer[offset + i]); + } + } catch (e) { + throw new FS.ErrnoError(29); + } + if (length) { + stream.node.timestamp = Date.now(); + } + return i; + }, + }, + default_tty_ops: { + get_char(tty) { + return FS_stdin_getChar(); + }, + put_char(tty, val) { + if (val === null || val === 10) { + out(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } else { + if (val != 0) tty.output.push(val); // val == 0 would cut text output off in the middle. + } + }, + fsync(tty) { + if (tty.output && tty.output.length > 0) { + out(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } + }, + ioctl_tcgets(tty) { + // typical setting + return { + c_iflag: 25856, + c_oflag: 5, + c_cflag: 191, + c_lflag: 35387, + c_cc: [ + 0x03, 0x1c, 0x7f, 0x15, 0x04, 0x00, 0x01, 0x00, 0x11, 0x13, 0x1a, 0x00, + 0x12, 0x0f, 0x17, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ] + }; + }, + ioctl_tcsets(tty, optional_actions, data) { + // currently just ignore + return 0; + }, + ioctl_tiocgwinsz(tty) { + return [24, 80]; + }, + }, + default_tty1_ops: { + put_char(tty, val) { + if (val === null || val === 10) { + err(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } else { + if (val != 0) tty.output.push(val); + } + }, + fsync(tty) { + if (tty.output && tty.output.length > 0) { + err(UTF8ArrayToString(tty.output, 0)); + tty.output = []; + } + }, + }, + }; + + + var zeroMemory = (address, size) => { + HEAPU8.fill(0, address, address + size); + return address; + }; + + var alignMemory = (size, alignment) => { + assert(alignment, "alignment argument is required"); + return Math.ceil(size / alignment) * alignment; + }; + var mmapAlloc = (size) => { + abort('internal error: mmapAlloc called but `emscripten_builtin_memalign` native symbol not exported'); + }; + var MEMFS = { + ops_table: null, + mount(mount) { + return MEMFS.createNode(null, '/', 16384 | 511 /* 0777 */, 0); + }, + createNode(parent, name, mode, dev) { + if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { + // no supported + throw new FS.ErrnoError(63); + } + 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 node = FS.createNode(parent, name, mode, dev); + if (FS.isDir(node.mode)) { + node.node_ops = MEMFS.ops_table.dir.node; + node.stream_ops = MEMFS.ops_table.dir.stream; + node.contents = {}; + } else if (FS.isFile(node.mode)) { + node.node_ops = MEMFS.ops_table.file.node; + node.stream_ops = MEMFS.ops_table.file.stream; + node.usedBytes = 0; // The actual number of bytes used in the typed array, as opposed to contents.length which gives the whole capacity. + // When the byte data of the file is populated, this will point to either a typed array, or a normal JS array. Typed arrays are preferred + // for performance, and used by default. However, typed arrays are not resizable like normal JS arrays are, so there is a small disk size + // penalty involved for appending file writes that continuously grow a file similar to std::vector capacity vs used -scheme. + node.contents = null; + } else if (FS.isLink(node.mode)) { + node.node_ops = MEMFS.ops_table.link.node; + node.stream_ops = MEMFS.ops_table.link.stream; + } else if (FS.isChrdev(node.mode)) { + node.node_ops = MEMFS.ops_table.chrdev.node; + node.stream_ops = MEMFS.ops_table.chrdev.stream; + } + node.timestamp = Date.now(); + // add the new node to the parent + if (parent) { + parent.contents[name] = node; + parent.timestamp = node.timestamp; + } + return node; + }, + getFileDataAsTypedArray(node) { + if (!node.contents) return new Uint8Array(0); + if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); // Make sure to not return excess unused bytes. + return new Uint8Array(node.contents); + }, + expandFileStorage(node, newCapacity) { + var prevCapacity = node.contents ? node.contents.length : 0; + if (prevCapacity >= newCapacity) return; // No need to expand, the storage was already large enough. + // Don't expand strictly to the given requested limit if it's only a very small increase, but instead geometrically grow capacity. + // For small filesizes (<1MB), perform size*2 geometric increase, but for large sizes, do a much more conservative size*1.125 increase to + // avoid overshooting the allocation cap by a very large margin. + var CAPACITY_DOUBLING_MAX = 1024 * 1024; + newCapacity = Math.max(newCapacity, (prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2.0 : 1.125)) >>> 0); + if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); // At minimum allocate 256b for each file when expanding. + var oldContents = node.contents; + node.contents = new Uint8Array(newCapacity); // Allocate new storage. + if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0); // Copy old data over to the new storage. + }, + resizeFileStorage(node, newSize) { + if (node.usedBytes == newSize) return; + if (newSize == 0) { + node.contents = null; // Fully decommit when requesting a resize to zero. + node.usedBytes = 0; + } else { + var oldContents = node.contents; + node.contents = new Uint8Array(newSize); // Allocate new storage. + if (oldContents) { + node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); // Copy old data over to the new storage. + } + node.usedBytes = newSize; + } + }, + node_ops: { + getattr(node) { + var attr = {}; + // device numbers reuse inode numbers. + attr.dev = FS.isChrdev(node.mode) ? node.id : 1; + attr.ino = node.id; + attr.mode = node.mode; + attr.nlink = 1; + attr.uid = 0; + attr.gid = 0; + attr.rdev = node.rdev; + if (FS.isDir(node.mode)) { + attr.size = 4096; + } else if (FS.isFile(node.mode)) { + attr.size = node.usedBytes; + } else if (FS.isLink(node.mode)) { + attr.size = node.link.length; + } else { + attr.size = 0; + } + attr.atime = new Date(node.timestamp); + attr.mtime = new Date(node.timestamp); + attr.ctime = new Date(node.timestamp); + // NOTE: In our implementation, st_blocks = Math.ceil(st_size/st_blksize), + // but this is not required by the standard. + attr.blksize = 4096; + attr.blocks = Math.ceil(attr.size / attr.blksize); + return attr; + }, + setattr(node, attr) { + if (attr.mode !== undefined) { + node.mode = attr.mode; + } + if (attr.timestamp !== undefined) { + node.timestamp = attr.timestamp; + } + if (attr.size !== undefined) { + MEMFS.resizeFileStorage(node, attr.size); + } + }, + lookup(parent, name) { + throw FS.genericErrors[44]; + }, + mknod(parent, name, mode, dev) { + return MEMFS.createNode(parent, name, mode, dev); + }, + rename(old_node, new_dir, new_name) { + // if we're overwriting a directory at new_name, make sure it's empty. + if (FS.isDir(old_node.mode)) { + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) { + } + if (new_node) { + for (var i in new_node.contents) { + throw new FS.ErrnoError(55); + } + } + } + // do the internal rewiring + delete old_node.parent.contents[old_node.name]; + old_node.parent.timestamp = Date.now() + old_node.name = new_name; + new_dir.contents[new_name] = old_node; + new_dir.timestamp = old_node.parent.timestamp; + old_node.parent = new_dir; + }, + unlink(parent, name) { + delete parent.contents[name]; + parent.timestamp = Date.now(); + }, + rmdir(parent, name) { + var node = FS.lookupNode(parent, name); + for (var i in node.contents) { + throw new FS.ErrnoError(55); + } + delete parent.contents[name]; + parent.timestamp = Date.now(); + }, + readdir(node) { + var entries = ['.', '..']; + for (var key of Object.keys(node.contents)) { + entries.push(key); + } + return entries; + }, + symlink(parent, newname, oldpath) { + var node = MEMFS.createNode(parent, newname, 511 /* 0777 */ | 40960, 0); + node.link = oldpath; + return node; + }, + readlink(node) { + if (!FS.isLink(node.mode)) { + throw new FS.ErrnoError(28); + } + return node.link; + }, + }, + stream_ops: { + read(stream, buffer, offset, length, position) { + var contents = stream.node.contents; + if (position >= stream.node.usedBytes) return 0; + var size = Math.min(stream.node.usedBytes - position, length); + assert(size >= 0); + if (size > 8 && contents.subarray) { // non-trivial, and typed array + buffer.set(contents.subarray(position, position + size), offset); + } else { + for (var i = 0; i < size; i++) buffer[offset + i] = contents[position + i]; + } + return size; + }, + write(stream, buffer, offset, length, position, canOwn) { + // The data buffer should be a typed array view + assert(!(buffer instanceof ArrayBuffer)); + // If the buffer is located in main memory (HEAP), and if + // memory can grow, we can't hold on to references of the + // memory buffer, as they may get invalidated. That means we + // need to do copy its contents. + if (buffer.buffer === HEAP8.buffer) { + canOwn = false; + } + + if (!length) return 0; + var node = stream.node; + node.timestamp = Date.now(); + + if (buffer.subarray && (!node.contents || node.contents.subarray)) { // This write is from a typed array to a typed array? + if (canOwn) { + assert(position === 0, 'canOwn must imply no weird position inside the file'); + node.contents = buffer.subarray(offset, offset + length); + node.usedBytes = length; + return length; + } else if (node.usedBytes === 0 && position === 0) { // If this is a simple first write to an empty file, do a fast set since we don't need to care about old data. + node.contents = buffer.slice(offset, offset + length); + node.usedBytes = length; + return length; + } else if (position + length <= node.usedBytes) { // Writing to an already allocated and used subrange of the file? + node.contents.set(buffer.subarray(offset, offset + length), position); + return length; + } + } + + // Appending to an existing file and we need to reallocate, or source data did not come as a typed array. + MEMFS.expandFileStorage(node, position + length); + if (node.contents.subarray && buffer.subarray) { + // Use typed array write which is available. + node.contents.set(buffer.subarray(offset, offset + length), position); + } else { + for (var i = 0; i < length; i++) { + node.contents[position + i] = buffer[offset + i]; // Or fall back to manual write if not. + } + } + node.usedBytes = Math.max(node.usedBytes, position + length); + return length; + }, + llseek(stream, offset, whence) { + var position = offset; + if (whence === 1) { + position += stream.position; + } else if (whence === 2) { + if (FS.isFile(stream.node.mode)) { + position += stream.node.usedBytes; + } + } + if (position < 0) { + throw new FS.ErrnoError(28); + } + return position; + }, + allocate(stream, offset, length) { + MEMFS.expandFileStorage(stream.node, offset + length); + stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length); + }, + mmap(stream, length, position, prot, flags) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + var ptr; + var allocated; + var contents = stream.node.contents; + // Only make a new copy when MAP_PRIVATE is specified. + if (!(flags & 2) && contents.buffer === HEAP8.buffer) { + // We can't emulate MAP_SHARED when the file is not backed by the + // buffer we're mapping to (e.g. the HEAP buffer). + allocated = false; + ptr = contents.byteOffset; + } else { + // Try to avoid unnecessary slices. + if (position > 0 || position + length < contents.length) { + if (contents.subarray) { + contents = contents.subarray(position, position + length); + } else { + contents = Array.prototype.slice.call(contents, position, position + length); + } + } + allocated = true; + ptr = mmapAlloc(length); + if (!ptr) { + throw new FS.ErrnoError(48); + } + HEAP8.set(contents, ptr); + } + return { ptr, allocated }; + }, + msync(stream, buffer, offset, length, mmapFlags) { + MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); + // should we check if bytesWritten and length are the same? + return 0; + }, + }, + }; + + /** @param {boolean=} noRunDep */ + var asyncLoad = (url, onload, onerror, noRunDep) => { + var dep = !noRunDep ? getUniqueRunDependency(`al ${url}`) : ''; + readAsync(url, (arrayBuffer) => { + assert(arrayBuffer, `Loading data file "${url}" failed (no arrayBuffer).`); + onload(new Uint8Array(arrayBuffer)); + if (dep) removeRunDependency(dep); + }, (event) => { + if (onerror) { + onerror(); + } else { + throw `Loading data file "${url}" failed.`; + } + }); + if (dep) addRunDependency(dep); + }; + + + var FS_createDataFile = (parent, name, fileData, canRead, canWrite, canOwn) => { + FS.createDataFile(parent, name, fileData, canRead, canWrite, canOwn); + }; + + var preloadPlugins = Module['preloadPlugins'] || []; + var FS_handledByPreloadPlugin = (byteArray, fullname, finish, onerror) => { + // Ensure plugins are ready. + if (typeof Browser != 'undefined') Browser.init(); + + var handled = false; + preloadPlugins.forEach((plugin) => { + if (handled) return; + if (plugin['canHandle'](fullname)) { + plugin['handle'](byteArray, fullname, finish, onerror); + handled = true; + } + }); + return handled; + }; + var FS_createPreloadedFile = (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) => { + // TODO we should allow people to just pass in a complete filename instead + // of parent and name being that we just join them anyways + var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent; + var dep = getUniqueRunDependency(`cp ${fullname}`); // might have several active requests for the same fullname + function processData(byteArray) { + function finish(byteArray) { + preFinish?.(); + if (!dontCreateFile) { + FS_createDataFile(parent, name, byteArray, canRead, canWrite, canOwn); + } + onload?.(); + removeRunDependency(dep); + } + if (FS_handledByPreloadPlugin(byteArray, fullname, finish, () => { + onerror?.(); + removeRunDependency(dep); + })) { + return; + } + finish(byteArray); + } + addRunDependency(dep); + if (typeof url == 'string') { + asyncLoad(url, processData, onerror); + } else { + processData(url); + } + }; + + var FS_modeStringToFlags = (str) => { + var flagModes = { + 'r': 0, + 'r+': 2, + 'w': 512 | 64 | 1, + 'w+': 512 | 64 | 2, + 'a': 1024 | 64 | 1, + 'a+': 1024 | 64 | 2, + }; + var flags = flagModes[str]; + if (typeof flags == 'undefined') { + throw new Error(`Unknown file open mode: ${str}`); + } + return flags; + }; + + var FS_getMode = (canRead, canWrite) => { + var mode = 0; + if (canRead) mode |= 292 | 73; + if (canWrite) mode |= 146; + return mode; + }; + + + + + var ERRNO_MESSAGES = { + 0: "Success", + 1: "Arg list too long", + 2: "Permission denied", + 3: "Address already in use", + 4: "Address not available", + 5: "Address family not supported by protocol family", + 6: "No more processes", + 7: "Socket already connected", + 8: "Bad file number", + 9: "Trying to read unreadable message", + 10: "Mount device busy", + 11: "Operation canceled", + 12: "No children", + 13: "Connection aborted", + 14: "Connection refused", + 15: "Connection reset by peer", + 16: "File locking deadlock error", + 17: "Destination address required", + 18: "Math arg out of domain of func", + 19: "Quota exceeded", + 20: "File exists", + 21: "Bad address", + 22: "File too large", + 23: "Host is unreachable", + 24: "Identifier removed", + 25: "Illegal byte sequence", + 26: "Connection already in progress", + 27: "Interrupted system call", + 28: "Invalid argument", + 29: "I/O error", + 30: "Socket is already connected", + 31: "Is a directory", + 32: "Too many symbolic links", + 33: "Too many open files", + 34: "Too many links", + 35: "Message too long", + 36: "Multihop attempted", + 37: "File or path name too long", + 38: "Network interface is not configured", + 39: "Connection reset by network", + 40: "Network is unreachable", + 41: "Too many open files in system", + 42: "No buffer space available", + 43: "No such device", + 44: "No such file or directory", + 45: "Exec format error", + 46: "No record locks available", + 47: "The link has been severed", + 48: "Not enough core", + 49: "No message of desired type", + 50: "Protocol not available", + 51: "No space left on device", + 52: "Function not implemented", + 53: "Socket is not connected", + 54: "Not a directory", + 55: "Directory not empty", + 56: "State not recoverable", + 57: "Socket operation on non-socket", + 59: "Not a typewriter", + 60: "No such device or address", + 61: "Value too large for defined data type", + 62: "Previous owner died", + 63: "Not super-user", + 64: "Broken pipe", + 65: "Protocol error", + 66: "Unknown protocol", + 67: "Protocol wrong type for socket", + 68: "Math result not representable", + 69: "Read only file system", + 70: "Illegal seek", + 71: "No such process", + 72: "Stale file handle", + 73: "Connection timed out", + 74: "Text file busy", + 75: "Cross-device link", + 100: "Device not a stream", + 101: "Bad font file fmt", + 102: "Invalid slot", + 103: "Invalid request code", + 104: "No anode", + 105: "Block device required", + 106: "Channel number out of range", + 107: "Level 3 halted", + 108: "Level 3 reset", + 109: "Link number out of range", + 110: "Protocol driver not attached", + 111: "No CSI structure available", + 112: "Level 2 halted", + 113: "Invalid exchange", + 114: "Invalid request descriptor", + 115: "Exchange full", + 116: "No data (for no delay io)", + 117: "Timer expired", + 118: "Out of streams resources", + 119: "Machine is not on the network", + 120: "Package not installed", + 121: "The object is remote", + 122: "Advertise error", + 123: "Srmount error", + 124: "Communication error on send", + 125: "Cross mount point (not really error)", + 126: "Given log. name not unique", + 127: "f.d. invalid for this operation", + 128: "Remote address changed", + 129: "Can access a needed shared lib", + 130: "Accessing a corrupted shared lib", + 131: ".lib section in a.out corrupted", + 132: "Attempting to link in too many libs", + 133: "Attempting to exec a shared library", + 135: "Streams pipe error", + 136: "Too many users", + 137: "Socket type not supported", + 138: "Not supported", + 139: "Protocol family not supported", + 140: "Can't send after socket shutdown", + 141: "Too many references", + 142: "Host is down", + 148: "No medium (in tape drive)", + 156: "Level 2 not synchronized", + }; + + var ERRNO_CODES = { + 'EPERM': 63, + 'ENOENT': 44, + 'ESRCH': 71, + 'EINTR': 27, + 'EIO': 29, + 'ENXIO': 60, + 'E2BIG': 1, + 'ENOEXEC': 45, + 'EBADF': 8, + 'ECHILD': 12, + 'EAGAIN': 6, + 'EWOULDBLOCK': 6, + 'ENOMEM': 48, + 'EACCES': 2, + 'EFAULT': 21, + 'ENOTBLK': 105, + 'EBUSY': 10, + 'EEXIST': 20, + 'EXDEV': 75, + 'ENODEV': 43, + 'ENOTDIR': 54, + 'EISDIR': 31, + 'EINVAL': 28, + 'ENFILE': 41, + 'EMFILE': 33, + 'ENOTTY': 59, + 'ETXTBSY': 74, + 'EFBIG': 22, + 'ENOSPC': 51, + 'ESPIPE': 70, + 'EROFS': 69, + 'EMLINK': 34, + 'EPIPE': 64, + 'EDOM': 18, + 'ERANGE': 68, + 'ENOMSG': 49, + 'EIDRM': 24, + 'ECHRNG': 106, + 'EL2NSYNC': 156, + 'EL3HLT': 107, + 'EL3RST': 108, + 'ELNRNG': 109, + 'EUNATCH': 110, + 'ENOCSI': 111, + 'EL2HLT': 112, + 'EDEADLK': 16, + 'ENOLCK': 46, + 'EBADE': 113, + 'EBADR': 114, + 'EXFULL': 115, + 'ENOANO': 104, + 'EBADRQC': 103, + 'EBADSLT': 102, + 'EDEADLOCK': 16, + 'EBFONT': 101, + 'ENOSTR': 100, + 'ENODATA': 116, + 'ETIME': 117, + 'ENOSR': 118, + 'ENONET': 119, + 'ENOPKG': 120, + 'EREMOTE': 121, + 'ENOLINK': 47, + 'EADV': 122, + 'ESRMNT': 123, + 'ECOMM': 124, + 'EPROTO': 65, + 'EMULTIHOP': 36, + 'EDOTDOT': 125, + 'EBADMSG': 9, + 'ENOTUNIQ': 126, + 'EBADFD': 127, + 'EREMCHG': 128, + 'ELIBACC': 129, + 'ELIBBAD': 130, + 'ELIBSCN': 131, + 'ELIBMAX': 132, + 'ELIBEXEC': 133, + 'ENOSYS': 52, + 'ENOTEMPTY': 55, + 'ENAMETOOLONG': 37, + 'ELOOP': 32, + 'EOPNOTSUPP': 138, + 'EPFNOSUPPORT': 139, + 'ECONNRESET': 15, + 'ENOBUFS': 42, + 'EAFNOSUPPORT': 5, + 'EPROTOTYPE': 67, + 'ENOTSOCK': 57, + 'ENOPROTOOPT': 50, + 'ESHUTDOWN': 140, + 'ECONNREFUSED': 14, + 'EADDRINUSE': 3, + 'ECONNABORTED': 13, + 'ENETUNREACH': 40, + 'ENETDOWN': 38, + 'ETIMEDOUT': 73, + 'EHOSTDOWN': 142, + 'EHOSTUNREACH': 23, + 'EINPROGRESS': 26, + 'EALREADY': 7, + 'EDESTADDRREQ': 17, + 'EMSGSIZE': 35, + 'EPROTONOSUPPORT': 66, + 'ESOCKTNOSUPPORT': 137, + 'EADDRNOTAVAIL': 4, + 'ENETRESET': 39, + 'EISCONN': 30, + 'ENOTCONN': 53, + 'ETOOMANYREFS': 141, + 'EUSERS': 136, + 'EDQUOT': 19, + 'ESTALE': 72, + 'ENOTSUP': 138, + 'ENOMEDIUM': 148, + 'EILSEQ': 25, + 'EOVERFLOW': 61, + 'ECANCELED': 11, + 'ENOTRECOVERABLE': 56, + 'EOWNERDEAD': 62, + 'ESTRPIPE': 135, + }; + var FS = { + root: null, + mounts: [], + devices: { + }, + streams: [], + nextInode: 1, + nameTable: null, + currentPath: "/", + initialized: false, + ignorePermissions: true, + ErrnoError: class extends Error { + // We set the `name` property to be able to identify `FS.ErrnoError` + // - the `name` is a standard ECMA-262 property of error objects. Kind of good to have it anyway. + // - when using PROXYFS, an error can come from an underlying FS + // as different FS objects have their own FS.ErrnoError each, + // the test `err instanceof FS.ErrnoError` won't detect an error coming from another filesystem, causing bugs. + // we'll use the reliable test `err.name == "ErrnoError"` instead + constructor(errno) { + super(ERRNO_MESSAGES[errno]); + // TODO(sbc): Use the inline member declaration syntax once we + // support it in acorn and closure. + this.name = 'ErrnoError'; + this.errno = errno; + for (var key in ERRNO_CODES) { + if (ERRNO_CODES[key] === errno) { + this.code = key; + break; + } + } + } + }, + genericErrors: { + }, + filesystems: null, + syncFSRequests: 0, + FSStream: class { + constructor() { + // TODO(https://github.com/emscripten-core/emscripten/issues/21414): + // Use inline field declarations. + this.shared = {}; + } + get object() { + return this.node; + } + set object(val) { + this.node = val; + } + get isRead() { + return (this.flags & 2097155) !== 1; + } + get isWrite() { + return (this.flags & 2097155) !== 0; + } + get isAppend() { + return (this.flags & 1024); + } + get flags() { + return this.shared.flags; + } + set flags(val) { + this.shared.flags = val; + } + get position() { + return this.shared.position; + } + set position(val) { + this.shared.position = val; + } + }, + FSNode: class { + constructor(parent, name, mode, rdev) { + if (!parent) { + parent = this; // root node sets parent to itself + } + this.parent = parent; + this.mount = parent.mount; + this.mounted = null; + this.id = FS.nextInode++; + this.name = name; + this.mode = mode; + this.node_ops = {}; + this.stream_ops = {}; + this.rdev = rdev; + this.readMode = 292/*292*/ | 73/*73*/; + this.writeMode = 146/*146*/; + } + get read() { + return (this.mode & this.readMode) === this.readMode; + } + set read(val) { + val ? this.mode |= this.readMode : this.mode &= ~this.readMode; + } + get write() { + return (this.mode & this.writeMode) === this.writeMode; + } + set write(val) { + val ? this.mode |= this.writeMode : this.mode &= ~this.writeMode; + } + get isFolder() { + return FS.isDir(this.mode); + } + get isDevice() { + return FS.isChrdev(this.mode); + } + }, + lookupPath(path, opts = {}) { + path = PATH_FS.resolve(path); + + if (!path) return { path: '', node: null }; + + var defaults = { + follow_mount: true, + recurse_count: 0 + }; + opts = Object.assign(defaults, opts) + + if (opts.recurse_count > 8) { // max recursive lookup of 8 + throw new FS.ErrnoError(32); + } + + // split the absolute path + var parts = path.split('/').filter((p) => !!p); + + // start at the root + var current = FS.root; + var current_path = '/'; + + for (var i = 0; i < parts.length; i++) { + var islast = (i === parts.length - 1); + if (islast && opts.parent) { + // stop resolving + break; + } + + current = FS.lookupNode(current, parts[i]); + current_path = PATH.join2(current_path, parts[i]); + + // jump to the mount's root node if this is a mountpoint + if (FS.isMountpoint(current)) { + if (!islast || (islast && opts.follow_mount)) { + current = current.mounted.root; + } + } + + // by default, lookupPath will not follow a symlink if it is the final path component. + // setting opts.follow = true will override this behavior. + if (!islast || opts.follow) { + var count = 0; + while (FS.isLink(current.mode)) { + var link = FS.readlink(current_path); + current_path = PATH_FS.resolve(PATH.dirname(current_path), link); + + var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count + 1 }); + current = lookup.node; + + if (count++ > 40) { // limit max consecutive symlinks to 40 (SYMLOOP_MAX). + throw new FS.ErrnoError(32); + } + } + } + } + + return { path: current_path, node: current }; + }, + getPath(node) { + var path; + while (true) { + if (FS.isRoot(node)) { + var mount = node.mount.mountpoint; + if (!path) return mount; + return mount[mount.length - 1] !== '/' ? `${mount}/${path}` : mount + path; + } + path = path ? `${node.name}/${path}` : node.name; + node = node.parent; + } + }, + hashName(parentid, name) { + var hash = 0; + + for (var i = 0; i < name.length; i++) { + hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0; + } + return ((parentid + hash) >>> 0) % FS.nameTable.length; + }, + hashAddNode(node) { + var hash = FS.hashName(node.parent.id, node.name); + node.name_next = FS.nameTable[hash]; + FS.nameTable[hash] = node; + }, + hashRemoveNode(node) { + var hash = FS.hashName(node.parent.id, node.name); + if (FS.nameTable[hash] === node) { + FS.nameTable[hash] = node.name_next; + } else { + var current = FS.nameTable[hash]; + while (current) { + if (current.name_next === node) { + current.name_next = node.name_next; + break; + } + current = current.name_next; + } + } + }, + lookupNode(parent, name) { + var errCode = FS.mayLookup(parent); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + var hash = FS.hashName(parent.id, name); + for (var node = FS.nameTable[hash]; node; node = node.name_next) { + var nodeName = node.name; + if (node.parent.id === parent.id && nodeName === name) { + return node; + } + } + // if we failed to find it in the cache, call into the VFS + return FS.lookup(parent, name); + }, + createNode(parent, name, mode, rdev) { + assert(typeof parent == 'object') + var node = new FS.FSNode(parent, name, mode, rdev); + + FS.hashAddNode(node); + + return node; + }, + destroyNode(node) { + FS.hashRemoveNode(node); + }, + isRoot(node) { + return node === node.parent; + }, + isMountpoint(node) { + return !!node.mounted; + }, + isFile(mode) { + return (mode & 61440) === 32768; + }, + isDir(mode) { + return (mode & 61440) === 16384; + }, + isLink(mode) { + return (mode & 61440) === 40960; + }, + isChrdev(mode) { + return (mode & 61440) === 8192; + }, + isBlkdev(mode) { + return (mode & 61440) === 24576; + }, + isFIFO(mode) { + return (mode & 61440) === 4096; + }, + isSocket(mode) { + return (mode & 49152) === 49152; + }, + flagsToPermissionString(flag) { + var perms = ['r', 'w', 'rw'][flag & 3]; + if ((flag & 512)) { + perms += 'w'; + } + return perms; + }, + nodePermissions(node, perms) { + if (FS.ignorePermissions) { + return 0; + } + // return 0 if any user, group or owner bits are set. + if (perms.includes('r') && !(node.mode & 292)) { + return 2; + } else if (perms.includes('w') && !(node.mode & 146)) { + return 2; + } else if (perms.includes('x') && !(node.mode & 73)) { + return 2; + } + return 0; + }, + mayLookup(dir) { + if (!FS.isDir(dir.mode)) return 54; + var errCode = FS.nodePermissions(dir, 'x'); + if (errCode) return errCode; + if (!dir.node_ops.lookup) return 2; + return 0; + }, + mayCreate(dir, name) { + try { + var node = FS.lookupNode(dir, name); + return 20; + } catch (e) { + } + return FS.nodePermissions(dir, 'wx'); + }, + mayDelete(dir, name, isdir) { + var node; + try { + node = FS.lookupNode(dir, name); + } catch (e) { + return e.errno; + } + var errCode = FS.nodePermissions(dir, 'wx'); + if (errCode) { + return errCode; + } + if (isdir) { + if (!FS.isDir(node.mode)) { + return 54; + } + if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { + return 10; + } + } else { + if (FS.isDir(node.mode)) { + return 31; + } + } + return 0; + }, + mayOpen(node, flags) { + if (!node) { + return 44; + } + if (FS.isLink(node.mode)) { + return 32; + } else if (FS.isDir(node.mode)) { + if (FS.flagsToPermissionString(flags) !== 'r' || // opening for write + (flags & 512)) { // TODO: check for O_SEARCH? (== search for dir only) + return 31; + } + } + return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); + }, + MAX_OPEN_FDS: 4096, + nextfd() { + for (var fd = 0; fd <= FS.MAX_OPEN_FDS; fd++) { + if (!FS.streams[fd]) { + return fd; + } + } + throw new FS.ErrnoError(33); + }, + getStreamChecked(fd) { + var stream = FS.getStream(fd); + if (!stream) { + throw new FS.ErrnoError(8); + } + return stream; + }, + getStream: (fd) => FS.streams[fd], + createStream(stream, fd = -1) { + + // clone it, so we can return an instance of FSStream + stream = Object.assign(new FS.FSStream(), stream); + if (fd == -1) { + fd = FS.nextfd(); + } + stream.fd = fd; + FS.streams[fd] = stream; + return stream; + }, + closeStream(fd) { + FS.streams[fd] = null; + }, + dupStream(origStream, fd = -1) { + var stream = FS.createStream(origStream, fd); + stream.stream_ops?.dup?.(stream); + return stream; + }, + chrdev_stream_ops: { + open(stream) { + var device = FS.getDevice(stream.node.rdev); + // override node's stream ops with the device's + stream.stream_ops = device.stream_ops; + // forward the open call + stream.stream_ops.open?.(stream); + }, + llseek() { + throw new FS.ErrnoError(70); + }, + }, + major: (dev) => ((dev) >> 8), + minor: (dev) => ((dev) & 0xff), + makedev: (ma, mi) => ((ma) << 8 | (mi)), + registerDevice(dev, ops) { + FS.devices[dev] = { stream_ops: ops }; + }, + getDevice: (dev) => FS.devices[dev], + getMounts(mount) { + var mounts = []; + var check = [mount]; + + while (check.length) { + var m = check.pop(); + + mounts.push(m); + + check.push(...m.mounts); + } + + return mounts; + }, + syncfs(populate, callback) { + if (typeof populate == 'function') { + callback = populate; + populate = false; + } + + FS.syncFSRequests++; + + if (FS.syncFSRequests > 1) { + err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`); + } + + var mounts = FS.getMounts(FS.root.mount); + var completed = 0; + + function doCallback(errCode) { + assert(FS.syncFSRequests > 0); + FS.syncFSRequests--; + return callback(errCode); + } + + function done(errCode) { + if (errCode) { + if (!done.errored) { + done.errored = true; + return doCallback(errCode); + } + return; + } + if (++completed >= mounts.length) { + doCallback(null); + } + }; + + // sync all mounts + mounts.forEach((mount) => { + if (!mount.type.syncfs) { + return done(null); + } + mount.type.syncfs(mount, populate, done); + }); + }, + mount(type, opts, mountpoint) { + if (typeof type == 'string') { + // The filesystem was not included, and instead we have an error + // message stored in the variable. + throw type; + } + var root = mountpoint === '/'; + var pseudo = !mountpoint; + var node; + + if (root && FS.root) { + throw new FS.ErrnoError(10); + } else if (!root && !pseudo) { + var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); + + mountpoint = lookup.path; // use the absolute path + node = lookup.node; + + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + + if (!FS.isDir(node.mode)) { + throw new FS.ErrnoError(54); + } + } + + var mount = { + type, + opts, + mountpoint, + mounts: [] + }; + + // create a root node for the fs + var mountRoot = type.mount(mount); + mountRoot.mount = mount; + mount.root = mountRoot; + + if (root) { + FS.root = mountRoot; + } else if (node) { + // set as a mountpoint + node.mounted = mount; + + // add the new mount to the current mount's children + if (node.mount) { + node.mount.mounts.push(mount); + } + } + + return mountRoot; + }, + unmount(mountpoint) { + var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); + + if (!FS.isMountpoint(lookup.node)) { + throw new FS.ErrnoError(28); + } + + // destroy the nodes for this mount, and all its child mounts + var node = lookup.node; + var mount = node.mounted; + var mounts = FS.getMounts(mount); + + Object.keys(FS.nameTable).forEach((hash) => { + var current = FS.nameTable[hash]; + + while (current) { + var next = current.name_next; + + if (mounts.includes(current.mount)) { + FS.destroyNode(current); + } + + current = next; + } + }); + + // no longer a mountpoint + node.mounted = null; + + // remove this mount from the child mounts + var idx = node.mount.mounts.indexOf(mount); + assert(idx !== -1); + node.mount.mounts.splice(idx, 1); + }, + lookup(parent, name) { + return parent.node_ops.lookup(parent, name); + }, + mknod(path, mode, dev) { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + if (!name || name === '.' || name === '..') { + throw new FS.ErrnoError(28); + } + var errCode = FS.mayCreate(parent, name); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.mknod) { + throw new FS.ErrnoError(63); + } + return parent.node_ops.mknod(parent, name, mode, dev); + }, + create(path, mode) { + mode = mode !== undefined ? mode : 438 /* 0666 */; + mode &= 4095; + mode |= 32768; + return FS.mknod(path, mode, 0); + }, + mkdir(path, mode) { + mode = mode !== undefined ? mode : 511 /* 0777 */; + mode &= 511 | 512; + mode |= 16384; + return FS.mknod(path, mode, 0); + }, + mkdirTree(path, mode) { + var dirs = path.split('/'); + var d = ''; + for (var i = 0; i < dirs.length; ++i) { + if (!dirs[i]) continue; + d += '/' + dirs[i]; + try { + FS.mkdir(d, mode); + } catch (e) { + if (e.errno != 20) throw e; + } + } + }, + mkdev(path, mode, dev) { + if (typeof dev == 'undefined') { + dev = mode; + mode = 438 /* 0666 */; + } + mode |= 8192; + return FS.mknod(path, mode, dev); + }, + symlink(oldpath, newpath) { + if (!PATH_FS.resolve(oldpath)) { + throw new FS.ErrnoError(44); + } + var lookup = FS.lookupPath(newpath, { parent: true }); + var parent = lookup.node; + if (!parent) { + throw new FS.ErrnoError(44); + } + var newname = PATH.basename(newpath); + var errCode = FS.mayCreate(parent, newname); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.symlink) { + throw new FS.ErrnoError(63); + } + return parent.node_ops.symlink(parent, newname, oldpath); + }, + rename(old_path, new_path) { + var old_dirname = PATH.dirname(old_path); + var new_dirname = PATH.dirname(new_path); + var old_name = PATH.basename(old_path); + var new_name = PATH.basename(new_path); + // parents must exist + var lookup, old_dir, new_dir; + + // let the errors from non existent directories percolate up + lookup = FS.lookupPath(old_path, { parent: true }); + old_dir = lookup.node; + lookup = FS.lookupPath(new_path, { parent: true }); + new_dir = lookup.node; + + if (!old_dir || !new_dir) throw new FS.ErrnoError(44); + // need to be part of the same mount + if (old_dir.mount !== new_dir.mount) { + throw new FS.ErrnoError(75); + } + // source must exist + var old_node = FS.lookupNode(old_dir, old_name); + // old path should not be an ancestor of the new path + var relative = PATH_FS.relative(old_path, new_dirname); + if (relative.charAt(0) !== '.') { + throw new FS.ErrnoError(28); + } + // new path should not be an ancestor of the old path + relative = PATH_FS.relative(new_path, old_dirname); + if (relative.charAt(0) !== '.') { + throw new FS.ErrnoError(55); + } + // see if the new path already exists + var new_node; + try { + new_node = FS.lookupNode(new_dir, new_name); + } catch (e) { + // not fatal + } + // early out if nothing needs to change + if (old_node === new_node) { + return; + } + // we'll need to delete the old entry + var isdir = FS.isDir(old_node.mode); + var errCode = FS.mayDelete(old_dir, old_name, isdir); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + // need delete permissions if we'll be overwriting. + // need create permissions if new doesn't already exist. + errCode = new_node ? + FS.mayDelete(new_dir, new_name, isdir) : + FS.mayCreate(new_dir, new_name); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!old_dir.node_ops.rename) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) { + throw new FS.ErrnoError(10); + } + // if we are going to change the parent, check write permissions + if (new_dir !== old_dir) { + errCode = FS.nodePermissions(old_dir, 'w'); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + } + // remove the node from the lookup hash + FS.hashRemoveNode(old_node); + // do the underlying fs rename + try { + old_dir.node_ops.rename(old_node, new_dir, new_name); + } catch (e) { + throw e; + } finally { + // add the node back to the hash (in case node_ops.rename + // changed its name) + FS.hashAddNode(old_node); + } + }, + rmdir(path) { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var errCode = FS.mayDelete(parent, name, true); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.rmdir) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + parent.node_ops.rmdir(parent, name); + FS.destroyNode(node); + }, + readdir(path) { + var lookup = FS.lookupPath(path, { follow: true }); + var node = lookup.node; + if (!node.node_ops.readdir) { + throw new FS.ErrnoError(54); + } + return node.node_ops.readdir(node); + }, + unlink(path) { + var lookup = FS.lookupPath(path, { parent: true }); + var parent = lookup.node; + if (!parent) { + throw new FS.ErrnoError(44); + } + var name = PATH.basename(path); + var node = FS.lookupNode(parent, name); + var errCode = FS.mayDelete(parent, name, false); + if (errCode) { + // According to POSIX, we should map EISDIR to EPERM, but + // we instead do what Linux does (and we must, as we use + // the musl linux libc). + throw new FS.ErrnoError(errCode); + } + if (!parent.node_ops.unlink) { + throw new FS.ErrnoError(63); + } + if (FS.isMountpoint(node)) { + throw new FS.ErrnoError(10); + } + parent.node_ops.unlink(parent, name); + FS.destroyNode(node); + }, + readlink(path) { + var lookup = FS.lookupPath(path); + var link = lookup.node; + if (!link) { + throw new FS.ErrnoError(44); + } + if (!link.node_ops.readlink) { + throw new FS.ErrnoError(28); + } + return PATH_FS.resolve(FS.getPath(link.parent), link.node_ops.readlink(link)); + }, + stat(path, dontFollow) { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + var node = lookup.node; + if (!node) { + throw new FS.ErrnoError(44); + } + if (!node.node_ops.getattr) { + throw new FS.ErrnoError(63); + } + return node.node_ops.getattr(node); + }, + lstat(path) { + return FS.stat(path, true); + }, + chmod(path, mode, dontFollow) { + var node; + if (typeof path == 'string') { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(63); + } + node.node_ops.setattr(node, { + mode: (mode & 4095) | (node.mode & ~4095), + timestamp: Date.now() + }); + }, + lchmod(path, mode) { + FS.chmod(path, mode, true); + }, + fchmod(fd, mode) { + var stream = FS.getStreamChecked(fd); + FS.chmod(stream.node, mode); + }, + chown(path, uid, gid, dontFollow) { + var node; + if (typeof path == 'string') { + var lookup = FS.lookupPath(path, { follow: !dontFollow }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(63); + } + node.node_ops.setattr(node, { + timestamp: Date.now() + // we ignore the uid / gid for now + }); + }, + lchown(path, uid, gid) { + FS.chown(path, uid, gid, true); + }, + fchown(fd, uid, gid) { + var stream = FS.getStreamChecked(fd); + FS.chown(stream.node, uid, gid); + }, + truncate(path, len) { + if (len < 0) { + throw new FS.ErrnoError(28); + } + var node; + if (typeof path == 'string') { + var lookup = FS.lookupPath(path, { follow: true }); + node = lookup.node; + } else { + node = path; + } + if (!node.node_ops.setattr) { + throw new FS.ErrnoError(63); + } + if (FS.isDir(node.mode)) { + throw new FS.ErrnoError(31); + } + if (!FS.isFile(node.mode)) { + throw new FS.ErrnoError(28); + } + var errCode = FS.nodePermissions(node, 'w'); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + node.node_ops.setattr(node, { + size: len, + timestamp: Date.now() + }); + }, + ftruncate(fd, len) { + var stream = FS.getStreamChecked(fd); + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(28); + } + FS.truncate(stream.node, len); + }, + utime(path, atime, mtime) { + var lookup = FS.lookupPath(path, { follow: true }); + var node = lookup.node; + node.node_ops.setattr(node, { + timestamp: Math.max(atime, mtime) + }); + }, + open(path, flags, mode) { + if (path === "") { + throw new FS.ErrnoError(44); + } + flags = typeof flags == 'string' ? FS_modeStringToFlags(flags) : flags; + mode = typeof mode == 'undefined' ? 438 /* 0666 */ : mode; + if ((flags & 64)) { + mode = (mode & 4095) | 32768; + } else { + mode = 0; + } + var node; + if (typeof path == 'object') { + node = path; + } else { + path = PATH.normalize(path); + try { + var lookup = FS.lookupPath(path, { + follow: !(flags & 131072) + }); + node = lookup.node; + } catch (e) { + // ignore + } + } + // perhaps we need to create the node + var created = false; + if ((flags & 64)) { + if (node) { + // if O_CREAT and O_EXCL are set, error out if the node already exists + if ((flags & 128)) { + throw new FS.ErrnoError(20); + } + } else { + // node doesn't exist, try to create it + node = FS.mknod(path, mode, 0); + created = true; + } + } + if (!node) { + throw new FS.ErrnoError(44); + } + // can't truncate a device + if (FS.isChrdev(node.mode)) { + flags &= ~512; + } + // if asked only for a directory, then this must be one + if ((flags & 65536) && !FS.isDir(node.mode)) { + throw new FS.ErrnoError(54); + } + // check permissions, if this is not a file we just created now (it is ok to + // create and write to a file with read-only permissions; it is read-only + // for later use) + if (!created) { + var errCode = FS.mayOpen(node, flags); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + } + // do truncation if necessary + if ((flags & 512) && !created) { + FS.truncate(node, 0); + } + // we've already handled these, don't pass down to the underlying vfs + flags &= ~(128 | 512 | 131072); + + // register the stream with the filesystem + var stream = FS.createStream({ + node, + path: FS.getPath(node), // we want the absolute path to the node + flags, + seekable: true, + position: 0, + stream_ops: node.stream_ops, + // used by the file family libc calls (fopen, fwrite, ferror, etc.) + ungotten: [], + error: false + }); + // call the new stream's open function + if (stream.stream_ops.open) { + stream.stream_ops.open(stream); + } + if (Module['logReadFiles'] && !(flags & 1)) { + if (!FS.readFiles) FS.readFiles = {}; + if (!(path in FS.readFiles)) { + FS.readFiles[path] = 1; + } + } + return stream; + }, + close(stream) { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (stream.getdents) stream.getdents = null; // free readdir state + try { + if (stream.stream_ops.close) { + stream.stream_ops.close(stream); + } + } catch (e) { + throw e; + } finally { + FS.closeStream(stream.fd); + } + stream.fd = null; + }, + isClosed(stream) { + return stream.fd === null; + }, + llseek(stream, offset, whence) { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (!stream.seekable || !stream.stream_ops.llseek) { + throw new FS.ErrnoError(70); + } + if (whence != 0 && whence != 1 && whence != 2) { + throw new FS.ErrnoError(28); + } + stream.position = stream.stream_ops.llseek(stream, offset, whence); + stream.ungotten = []; + return stream.position; + }, + read(stream, buffer, offset, length, position) { + assert(offset >= 0); + if (length < 0 || position < 0) { + throw new FS.ErrnoError(28); + } + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(8); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(31); + } + if (!stream.stream_ops.read) { + throw new FS.ErrnoError(28); + } + var seeking = typeof position != 'undefined'; + if (!seeking) { + position = stream.position; + } else if (!stream.seekable) { + throw new FS.ErrnoError(70); + } + var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position); + if (!seeking) stream.position += bytesRead; + return bytesRead; + }, + write(stream, buffer, offset, length, position, canOwn) { + assert(offset >= 0); + if (length < 0 || position < 0) { + throw new FS.ErrnoError(28); + } + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(8); + } + if (FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(31); + } + if (!stream.stream_ops.write) { + throw new FS.ErrnoError(28); + } + if (stream.seekable && stream.flags & 1024) { + // seek to the end before writing in append mode + FS.llseek(stream, 0, 2); + } + var seeking = typeof position != 'undefined'; + if (!seeking) { + position = stream.position; + } else if (!stream.seekable) { + throw new FS.ErrnoError(70); + } + var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn); + if (!seeking) stream.position += bytesWritten; + return bytesWritten; + }, + allocate(stream, offset, length) { + if (FS.isClosed(stream)) { + throw new FS.ErrnoError(8); + } + if (offset < 0 || length <= 0) { + throw new FS.ErrnoError(28); + } + if ((stream.flags & 2097155) === 0) { + throw new FS.ErrnoError(8); + } + if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + if (!stream.stream_ops.allocate) { + throw new FS.ErrnoError(138); + } + stream.stream_ops.allocate(stream, offset, length); + }, + mmap(stream, length, position, prot, flags) { + // User requests writing to file (prot & PROT_WRITE != 0). + // Checking if we have permissions to write to the file unless + // MAP_PRIVATE flag is set. According to POSIX spec it is possible + // to write to file opened in read-only mode with MAP_PRIVATE flag, + // as all modifications will be visible only in the memory of + // the current process. + if ((prot & 2) !== 0 + && (flags & 2) === 0 + && (stream.flags & 2097155) !== 2) { + throw new FS.ErrnoError(2); + } + if ((stream.flags & 2097155) === 1) { + throw new FS.ErrnoError(2); + } + if (!stream.stream_ops.mmap) { + throw new FS.ErrnoError(43); + } + return stream.stream_ops.mmap(stream, length, position, prot, flags); + }, + msync(stream, buffer, offset, length, mmapFlags) { + assert(offset >= 0); + if (!stream.stream_ops.msync) { + return 0; + } + return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags); + }, + ioctl(stream, cmd, arg) { + if (!stream.stream_ops.ioctl) { + throw new FS.ErrnoError(59); + } + return stream.stream_ops.ioctl(stream, cmd, arg); + }, + readFile(path, opts = {}) { + opts.flags = opts.flags || 0; + opts.encoding = opts.encoding || 'binary'; + if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') { + throw new Error(`Invalid encoding type "${opts.encoding}"`); + } + var ret; + var stream = FS.open(path, opts.flags); + var stat = FS.stat(path); + var length = stat.size; + var buf = new Uint8Array(length); + FS.read(stream, buf, 0, length, 0); + if (opts.encoding === 'utf8') { + ret = UTF8ArrayToString(buf, 0); + } else if (opts.encoding === 'binary') { + ret = buf; + } + FS.close(stream); + return ret; + }, + writeFile(path, data, opts = {}) { + opts.flags = opts.flags || 577; + var stream = FS.open(path, opts.flags, opts.mode); + if (typeof data == 'string') { + var buf = new Uint8Array(lengthBytesUTF8(data) + 1); + var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length); + FS.write(stream, buf, 0, actualNumBytes, undefined, opts.canOwn); + } else if (ArrayBuffer.isView(data)) { + FS.write(stream, data, 0, data.byteLength, undefined, opts.canOwn); + } else { + throw new Error('Unsupported data type'); + } + FS.close(stream); + }, + cwd: () => FS.currentPath, + chdir(path) { + var lookup = FS.lookupPath(path, { follow: true }); + if (lookup.node === null) { + throw new FS.ErrnoError(44); + } + if (!FS.isDir(lookup.node.mode)) { + throw new FS.ErrnoError(54); + } + var errCode = FS.nodePermissions(lookup.node, 'x'); + if (errCode) { + throw new FS.ErrnoError(errCode); + } + FS.currentPath = lookup.path; + }, + createDefaultDirectories() { + FS.mkdir('/tmp'); + FS.mkdir('/home'); + FS.mkdir('/home/web_user'); + }, + createDefaultDevices() { + // create /dev + FS.mkdir('/dev'); + // setup /dev/null + FS.registerDevice(FS.makedev(1, 3), { + read: () => 0, + write: (stream, buffer, offset, length, pos) => length, + }); + FS.mkdev('/dev/null', FS.makedev(1, 3)); + // setup /dev/tty and /dev/tty1 + // stderr needs to print output using err() rather than out() + // so we register a second tty just for it. + 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)); + // setup /dev/[u]random + // use a buffer to avoid overhead of individual crypto calls per byte + var randomBuffer = new Uint8Array(1024), randomLeft = 0; + var randomByte = () => { + if (randomLeft === 0) { + randomLeft = randomFill(randomBuffer).byteLength; + } + return randomBuffer[--randomLeft]; + }; + FS.createDevice('/dev', 'random', randomByte); + FS.createDevice('/dev', 'urandom', randomByte); + // we're not going to emulate the actual shm device, + // just create the tmp dirs that reside in it commonly + FS.mkdir('/dev/shm'); + FS.mkdir('/dev/shm/tmp'); + }, + createSpecialDirectories() { + // create /proc/self/fd which allows /proc/self/fd/6 => readlink gives the + // name of the stream for fd 6 (see test_unistd_ttyname) + FS.mkdir('/proc'); + var proc_self = FS.mkdir('/proc/self'); + FS.mkdir('/proc/self/fd'); + FS.mount({ + mount() { + var node = FS.createNode(proc_self, 'fd', 16384 | 511 /* 0777 */, 73); + node.node_ops = { + lookup(parent, name) { + var fd = +name; + var stream = FS.getStreamChecked(fd); + var ret = { + parent: null, + mount: { mountpoint: 'fake' }, + node_ops: { readlink: () => stream.path }, + }; + ret.parent = ret; // make it look like a simple root node + return ret; + } + }; + return node; + } + }, {}, '/proc/self/fd'); + }, + createStandardStreams() { + // TODO deprecate the old functionality of a single + // input / output callback and that utilizes FS.createDevice + // and instead require a unique set of stream ops + + // by default, we symlink the standard streams to the + // default tty devices. however, if the standard streams + // have been overwritten we create a unique device for + // them instead. + if (Module['stdin']) { + FS.createDevice('/dev', 'stdin', Module['stdin']); + } else { + FS.symlink('/dev/tty', '/dev/stdin'); + } + if (Module['stdout']) { + FS.createDevice('/dev', 'stdout', null, Module['stdout']); + } else { + FS.symlink('/dev/tty', '/dev/stdout'); + } + if (Module['stderr']) { + FS.createDevice('/dev', 'stderr', null, Module['stderr']); + } else { + FS.symlink('/dev/tty1', '/dev/stderr'); + } + + // open default streams for the stdin, stdout and stderr devices + var stdin = FS.open('/dev/stdin', 0); + var stdout = FS.open('/dev/stdout', 1); + var stderr = FS.open('/dev/stderr', 1); + assert(stdin.fd === 0, `invalid handle for stdin (${stdin.fd})`); + assert(stdout.fd === 1, `invalid handle for stdout (${stdout.fd})`); + assert(stderr.fd === 2, `invalid handle for stderr (${stderr.fd})`); + }, + staticInit() { + // Some errors may happen quite a bit, to avoid overhead we reuse them (and suffer a lack of stack info) + [44].forEach((code) => { + FS.genericErrors[code] = new FS.ErrnoError(code); + FS.genericErrors[code].stack = ''; + }); + + FS.nameTable = new Array(4096); + + FS.mount(MEMFS, {}, '/'); + + FS.createDefaultDirectories(); + FS.createDefaultDevices(); + FS.createSpecialDirectories(); + + FS.filesystems = { + 'MEMFS': MEMFS, + }; + }, + init(input, output, error) { + 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 = true; + + // Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here + Module['stdin'] = input || Module['stdin']; + Module['stdout'] = output || Module['stdout']; + Module['stderr'] = error || Module['stderr']; + + FS.createStandardStreams(); + }, + quit() { + FS.init.initialized = false; + // force-flush all streams, so we get musl std streams printed out + _fflush(0); + // close all of our streams + for (var i = 0; i < FS.streams.length; i++) { + var stream = FS.streams[i]; + if (!stream) { + continue; + } + FS.close(stream); + } + }, + findObject(path, dontResolveLastLink) { + var ret = FS.analyzePath(path, dontResolveLastLink); + if (!ret.exists) { + return null; + } + return ret.object; + }, + analyzePath(path, dontResolveLastLink) { + // operate from within the context of the symlink's target + try { + var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); + path = lookup.path; + } catch (e) { + } + var ret = { + isRoot: false, exists: false, error: 0, name: null, path: null, object: null, + parentExists: false, parentPath: null, parentObject: null + }; + try { + var lookup = FS.lookupPath(path, { parent: true }); + ret.parentExists = true; + ret.parentPath = lookup.path; + ret.parentObject = lookup.node; + ret.name = PATH.basename(path); + lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); + ret.exists = true; + ret.path = lookup.path; + ret.object = lookup.node; + ret.name = lookup.node.name; + ret.isRoot = lookup.path === '/'; + } catch (e) { + ret.error = e.errno; + }; + return ret; + }, + createPath(parent, path, canRead, canWrite) { + parent = typeof parent == 'string' ? parent : FS.getPath(parent); + var parts = path.split('/').reverse(); + while (parts.length) { + var part = parts.pop(); + if (!part) continue; + var current = PATH.join2(parent, part); + try { + FS.mkdir(current); + } catch (e) { + // ignore EEXIST + } + parent = current; + } + return current; + }, + createFile(parent, name, properties, canRead, canWrite) { + var path = PATH.join2(typeof parent == 'string' ? parent : FS.getPath(parent), name); + var mode = FS_getMode(canRead, canWrite); + return FS.create(path, mode); + }, + createDataFile(parent, name, data, canRead, canWrite, canOwn) { + var path = name; + if (parent) { + parent = typeof parent == 'string' ? parent : FS.getPath(parent); + path = name ? PATH.join2(parent, name) : parent; + } + var mode = FS_getMode(canRead, canWrite); + var node = FS.create(path, mode); + if (data) { + if (typeof data == 'string') { + var arr = new Array(data.length); + for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i); + data = arr; + } + // make sure we can write to the file + FS.chmod(node, mode | 146); + var stream = FS.open(node, 577); + FS.write(stream, data, 0, data.length, 0, canOwn); + FS.close(stream); + FS.chmod(node, mode); + } + }, + createDevice(parent, name, input, output) { + var path = PATH.join2(typeof parent == 'string' ? parent : FS.getPath(parent), name); + var mode = FS_getMode(!!input, !!output); + if (!FS.createDevice.major) FS.createDevice.major = 64; + var dev = FS.makedev(FS.createDevice.major++, 0); + // Create a fake device that a set of stream ops to emulate + // the old behavior. + FS.registerDevice(dev, { + open(stream) { + stream.seekable = false; + }, + close(stream) { + // flush any pending line data + if (output?.buffer?.length) { + output(10); + } + }, + read(stream, buffer, offset, length, pos /* ignored */) { + var bytesRead = 0; + for (var i = 0; i < length; i++) { + var result; + try { + result = input(); + } catch (e) { + throw new FS.ErrnoError(29); + } + if (result === undefined && bytesRead === 0) { + throw new FS.ErrnoError(6); + } + if (result === null || result === undefined) break; + bytesRead++; + buffer[offset + i] = result; + } + if (bytesRead) { + stream.node.timestamp = Date.now(); + } + return bytesRead; + }, + write(stream, buffer, offset, length, pos) { + for (var i = 0; i < length; i++) { + try { + output(buffer[offset + i]); + } catch (e) { + throw new FS.ErrnoError(29); + } + } + if (length) { + stream.node.timestamp = Date.now(); + } + return i; + } + }); + return FS.mkdev(path, mode, dev); + }, + forceLoadFile(obj) { + if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true; + if (typeof XMLHttpRequest != 'undefined') { + 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."); + } else if (read_) { + // Command-line. + try { + // WARNING: Can't read binary files in V8's d8 or tracemonkey's js, as + // read() will try to parse UTF8. + obj.contents = intArrayFromString(read_(obj.url), true); + obj.usedBytes = obj.contents.length; + } catch (e) { + throw new FS.ErrnoError(29); + } + } else { + throw new Error('Cannot load without read() or XMLHttpRequest.'); + } + }, + createLazyFile(parent, name, url, canRead, canWrite) { + // Lazy chunked Uint8Array (implements get and length from Uint8Array). + // Actual getting is abstracted away for eventual reuse. + class LazyUint8Array { + constructor() { + this.lengthKnown = false; + this.chunks = []; // Loaded chunks. Index is the chunk number + } + get(idx) { + if (idx > this.length - 1 || idx < 0) { + return undefined; + } + var chunkOffset = idx % this.chunkSize; + var chunkNum = (idx / this.chunkSize) | 0; + return this.getter(chunkNum)[chunkOffset]; + } + setDataGetter(getter) { + this.getter = getter; + } + cacheLength() { + // Find length + var xhr = new XMLHttpRequest(); + xhr.open('HEAD', url, false); + xhr.send(null); + if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); + var datalength = Number(xhr.getResponseHeader("Content-length")); + var header; + var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; + var usesGzip = (header = xhr.getResponseHeader("Content-Encoding")) && header === "gzip"; + + var chunkSize = 1024 * 1024; // Chunk size in bytes + + if (!hasByteServing) chunkSize = datalength; + + // Function to get a range from the remote URL. + var doXHR = (from, to) => { + if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!"); + if (to > datalength - 1) throw new Error("only " + datalength + " bytes available! programmer error!"); + + // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available. + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); + if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to); + + // Some hints to the browser that we want binary data. + xhr.responseType = 'arraybuffer'; + if (xhr.overrideMimeType) { + xhr.overrideMimeType('text/plain; charset=x-user-defined'); + } + + xhr.send(null); + if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); + if (xhr.response !== undefined) { + return new Uint8Array(/** @type{Array} */(xhr.response || [])); + } + return intArrayFromString(xhr.responseText || '', true); + }; + var lazyArray = this; + lazyArray.setDataGetter((chunkNum) => { + var start = chunkNum * chunkSize; + var end = (chunkNum + 1) * chunkSize - 1; // including this byte + end = Math.min(end, datalength - 1); // if datalength-1 is selected, this is the last block + if (typeof lazyArray.chunks[chunkNum] == 'undefined') { + lazyArray.chunks[chunkNum] = doXHR(start, end); + } + if (typeof lazyArray.chunks[chunkNum] == 'undefined') throw new Error('doXHR failed!'); + return lazyArray.chunks[chunkNum]; + }); + + if (usesGzip || !datalength) { + // if the server uses gzip or doesn't supply the length, we have to download the whole file to get the (uncompressed) length + chunkSize = datalength = 1; // this will force getter(0)/doXHR do download the whole file + datalength = this.getter(0).length; + chunkSize = datalength; + out("LazyFiles on gzip forces download of the whole file when length is accessed"); + } + + this._length = datalength; + this._chunkSize = chunkSize; + this.lengthKnown = true; + } + get length() { + if (!this.lengthKnown) { + this.cacheLength(); + } + return this._length; + } + get chunkSize() { + if (!this.lengthKnown) { + this.cacheLength(); + } + return this._chunkSize; + } + } + + if (typeof XMLHttpRequest != 'undefined') { + if (!ENVIRONMENT_IS_WORKER) throw 'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc'; + var lazyArray = new LazyUint8Array(); + var properties = { isDevice: false, contents: lazyArray }; + } else { + var properties = { isDevice: false, url: url }; + } + + var node = FS.createFile(parent, name, properties, canRead, canWrite); + // This is a total hack, but I want to get this lazy file code out of the + // core of MEMFS. If we want to keep this lazy file concept I feel it should + // be its own thin LAZYFS proxying calls to MEMFS. + if (properties.contents) { + node.contents = properties.contents; + } else if (properties.url) { + node.contents = null; + node.url = properties.url; + } + // Add a function that defers querying the file size until it is asked the first time. + Object.defineProperties(node, { + usedBytes: { + get: function () { return this.contents.length; } + } + }); + // override each stream op with one that tries to force load the lazy file first + var stream_ops = {}; + var keys = Object.keys(node.stream_ops); + keys.forEach((key) => { + var fn = node.stream_ops[key]; + stream_ops[key] = (...args) => { + FS.forceLoadFile(node); + return fn(...args); + }; + }); + function writeChunks(stream, buffer, offset, length, position) { + var contents = stream.node.contents; + if (position >= contents.length) + return 0; + var size = Math.min(contents.length - position, length); + assert(size >= 0); + if (contents.slice) { // normal array + for (var i = 0; i < size; i++) { + buffer[offset + i] = contents[position + i]; + } + } else { + for (var i = 0; i < size; i++) { // LazyUint8Array from sync binary XHR + buffer[offset + i] = contents.get(position + i); + } + } + return size; + } + // use a custom read function + stream_ops.read = (stream, buffer, offset, length, position) => { + FS.forceLoadFile(node); + return writeChunks(stream, buffer, offset, length, position) + }; + // use a custom mmap function + stream_ops.mmap = (stream, length, position, prot, flags) => { + FS.forceLoadFile(node); + var ptr = mmapAlloc(length); + if (!ptr) { + throw new FS.ErrnoError(48); + } + writeChunks(stream, HEAP8, ptr, length, position); + return { ptr, allocated: true }; + }; + node.stream_ops = stream_ops; + return node; + }, + absolutePath() { + abort('FS.absolutePath has been removed; use PATH_FS.resolve instead'); + }, + createFolder() { + abort('FS.createFolder has been removed; use FS.mkdir instead'); + }, + createLink() { + abort('FS.createLink has been removed; use FS.symlink instead'); + }, + joinPath() { + abort('FS.joinPath has been removed; use PATH.join instead'); + }, + mmapAlloc() { + abort('FS.mmapAlloc has been replaced by the top level function mmapAlloc'); + }, + standardizePath() { + abort('FS.standardizePath has been removed; use PATH.normalize instead'); + }, + }; + + + /** + * Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the + * emscripten HEAP, returns a copy of that string as a Javascript String object. + * + * @param {number} ptr + * @param {number=} maxBytesToRead - An optional length that specifies the + * maximum number of bytes to read. You can omit this parameter to scan the + * string until the first 0 byte. If maxBytesToRead is passed, and the string + * at [ptr, ptr+maxBytesToReadr[ contains a null byte in the middle, then the + * string will cut short at that byte index (i.e. maxBytesToRead will not + * produce a string of exact length [ptr, ptr+maxBytesToRead[) N.B. mixing + * frequent uses of UTF8ToString() with and without maxBytesToRead may throw + * JS JIT optimizations off, so it is worth to consider consistently using one + * @return {string} + */ + var UTF8ToString = (ptr, maxBytesToRead) => { + assert(typeof ptr == 'number', `UTF8ToString expects a number (got ${typeof ptr})`); + return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : ''; + }; + var SYSCALLS = { + DEFAULT_POLLMASK: 5, + calculateAt(dirfd, path, allowEmpty) { + if (PATH.isAbs(path)) { + return path; + } + // relative path + var dir; + if (dirfd === -100) { + dir = FS.cwd(); + } else { + var dirstream = SYSCALLS.getStreamFromFD(dirfd); + dir = dirstream.path; + } + if (path.length == 0) { + if (!allowEmpty) { + throw new FS.ErrnoError(44);; + } + return dir; + } + return PATH.join2(dir, path); + }, + doStat(func, path, buf) { + var stat = func(path); + HEAP32[((buf) / 4)] = stat.dev; + HEAP32[(((buf) + (4)) / 4)] = stat.mode; + HEAPU64[(((buf) + (8)) / 8)] = BigInt(stat.nlink); + HEAP32[(((buf) + (16)) / 4)] = stat.uid; + HEAP32[(((buf) + (20)) / 4)] = stat.gid; + HEAP32[(((buf) + (24)) / 4)] = stat.rdev; + HEAP64[(((buf) + (32)) / 8)] = BigInt(stat.size); + HEAP32[(((buf) + (40)) / 4)] = 4096; + HEAP32[(((buf) + (44)) / 4)] = stat.blocks; + var atime = stat.atime.getTime(); + var mtime = stat.mtime.getTime(); + var ctime = stat.ctime.getTime(); + HEAP64[(((buf) + (48)) / 8)] = BigInt(Math.floor(atime / 1000)); + HEAPU64[(((buf) + (56)) / 8)] = BigInt((atime % 1000) * 1000); + HEAP64[(((buf) + (64)) / 8)] = BigInt(Math.floor(mtime / 1000)); + HEAPU64[(((buf) + (72)) / 8)] = BigInt((mtime % 1000) * 1000); + HEAP64[(((buf) + (80)) / 8)] = BigInt(Math.floor(ctime / 1000)); + HEAPU64[(((buf) + (88)) / 8)] = BigInt((ctime % 1000) * 1000); + HEAP64[(((buf) + (96)) / 8)] = BigInt(stat.ino); + return 0; + }, + doMsync(addr, stream, len, flags, offset) { + if (!FS.isFile(stream.node.mode)) { + throw new FS.ErrnoError(43); + } + if (flags & 2) { + // MAP_PRIVATE calls need not to be synced back to underlying fs + return 0; + } + var buffer = HEAPU8.slice(addr, addr + len); + FS.msync(stream, buffer, offset, len, flags); + }, + varargs: undefined, + get() { + assert(SYSCALLS.varargs != undefined); + // the `+` prepended here is necessary to convince the JSCompiler that varargs is indeed a number. + var ret = HEAP32[((+SYSCALLS.varargs) / 4)]; + SYSCALLS.varargs += 4; + return ret; + }, + getp() { + assert(SYSCALLS.varargs != undefined); + var ret = Number(HEAPU64[((SYSCALLS.varargs) / 8)]); + SYSCALLS.varargs += 8; + return ret; + }, + getStr(ptr) { + var ret = UTF8ToString(ptr); + return ret; + }, + getStreamFromFD(fd) { + var stream = FS.getStreamChecked(fd); + return stream; + }, + }; + function ___syscall_dup3(fd, newfd, flags) { + try { + + var old = SYSCALLS.getStreamFromFD(fd); + assert(!flags); + if (old.fd === newfd) return -28; + var existing = FS.getStream(newfd); + if (existing) FS.close(existing); + return FS.dupStream(old, newfd).fd; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return -e.errno; + } + } + + + var MAX_INT53 = 9007199254740992; + + var MIN_INT53 = -9007199254740992; + var bigintToI53Checked = (num) => (num < MIN_INT53 || num > MAX_INT53) ? NaN : Number(num); + function ___syscall_fcntl64(fd, cmd, varargs) { + varargs = bigintToI53Checked(varargs);; + + + SYSCALLS.varargs = varargs; + try { + + var stream = SYSCALLS.getStreamFromFD(fd); + switch (cmd) { + case 0: { + var arg = SYSCALLS.get(); + if (arg < 0) { + return -28; + } + while (FS.streams[arg]) { + arg++; + } + var newStream; + newStream = FS.dupStream(stream, arg); + return newStream.fd; + } + case 1: + case 2: + return 0; // FD_CLOEXEC makes no sense for a single process. + case 3: + return stream.flags; + case 4: { + var arg = SYSCALLS.get(); + stream.flags |= arg; + return 0; + } + case 5: { + var arg = SYSCALLS.getp(); + var offset = 0; + // We're always unlocked. + HEAP16[(((arg) + (offset)) / 2)] = 2; + return 0; + } + case 6: + case 7: + return 0; // Pretend that the locking is successful. + } + return -28; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return -e.errno; + } + ; + } + + + function ___syscall_ioctl(fd, op, varargs) { + varargs = bigintToI53Checked(varargs);; + + + SYSCALLS.varargs = varargs; + try { + + var stream = SYSCALLS.getStreamFromFD(fd); + switch (op) { + case 21509: { + if (!stream.tty) return -59; + return 0; + } + case 21505: { + if (!stream.tty) return -59; + if (stream.tty.ops.ioctl_tcgets) { + var termios = stream.tty.ops.ioctl_tcgets(stream); + var argp = SYSCALLS.getp(); + HEAP32[((argp) / 4)] = termios.c_iflag || 0; + HEAP32[(((argp) + (4)) / 4)] = termios.c_oflag || 0; + HEAP32[(((argp) + (8)) / 4)] = termios.c_cflag || 0; + HEAP32[(((argp) + (12)) / 4)] = termios.c_lflag || 0; + for (var i = 0; i < 32; i++) { + HEAP8[(argp + i) + (17)] = termios.c_cc[i] || 0; + } + return 0; + } + return 0; + } + case 21510: + case 21511: + case 21512: { + if (!stream.tty) return -59; + return 0; // no-op, not actually adjusting terminal settings + } + case 21506: + case 21507: + case 21508: { + if (!stream.tty) return -59; + if (stream.tty.ops.ioctl_tcsets) { + var argp = SYSCALLS.getp(); + var c_iflag = HEAP32[((argp) / 4)]; + var c_oflag = HEAP32[(((argp) + (4)) / 4)]; + var c_cflag = HEAP32[(((argp) + (8)) / 4)]; + var c_lflag = HEAP32[(((argp) + (12)) / 4)]; + var c_cc = [] + for (var i = 0; i < 32; i++) { + c_cc.push(HEAP8[(argp + i) + (17)]); + } + return stream.tty.ops.ioctl_tcsets(stream.tty, op, { c_iflag, c_oflag, c_cflag, c_lflag, c_cc }); + } + return 0; // no-op, not actually adjusting terminal settings + } + case 21519: { + if (!stream.tty) return -59; + var argp = SYSCALLS.getp(); + HEAP32[((argp) / 4)] = 0; + return 0; + } + case 21520: { + if (!stream.tty) return -59; + return -28; // not supported + } + case 21531: { + var argp = SYSCALLS.getp(); + return FS.ioctl(stream, op, argp); + } + case 21523: { + // TODO: in theory we should write to the winsize struct that gets + // passed in, but for now musl doesn't read anything on it + if (!stream.tty) return -59; + if (stream.tty.ops.ioctl_tiocgwinsz) { + var winsize = stream.tty.ops.ioctl_tiocgwinsz(stream.tty); + var argp = SYSCALLS.getp(); + HEAP16[((argp) / 2)] = winsize[0]; + HEAP16[(((argp) + (2)) / 2)] = winsize[1]; + } + return 0; + } + case 21524: { + // TODO: technically, this ioctl call should change the window size. + // but, since emscripten doesn't have any concept of a terminal window + // yet, we'll just silently throw it away as we do TIOCGWINSZ + if (!stream.tty) return -59; + return 0; + } + case 21515: { + if (!stream.tty) return -59; + return 0; + } + default: return -28; // not supported + } + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return -e.errno; + } + ; + } + + + function ___syscall_openat(dirfd, path, flags, varargs) { + path = bigintToI53Checked(path);; + varargs = bigintToI53Checked(varargs);; + + + SYSCALLS.varargs = varargs; + try { + + path = SYSCALLS.getStr(path); + path = SYSCALLS.calculateAt(dirfd, path); + var mode = varargs ? SYSCALLS.get() : 0; + return FS.open(path, flags, mode).fd; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return -e.errno; + } + ; + } + + + var stringToUTF8 = (str, outPtr, maxBytesToWrite) => { + assert(typeof maxBytesToWrite == 'number', 'stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); + return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite); + }; + + + function ___syscall_readlinkat(dirfd, path, buf, bufsize) { + path = bigintToI53Checked(path);; + buf = bigintToI53Checked(buf);; + bufsize = bigintToI53Checked(bufsize);; + + + try { + + path = SYSCALLS.getStr(path); + path = SYSCALLS.calculateAt(dirfd, path); + if (bufsize <= 0) return -28; + var ret = FS.readlink(path); + + var len = Math.min(bufsize, lengthBytesUTF8(ret)); + var endChar = HEAP8[buf + len]; + stringToUTF8(ret, buf, bufsize + 1); + // readlink is one of the rare functions that write out a C string, but does never append a null to the output buffer(!) + // stringToUTF8() always appends a null byte, so restore the character under the null byte after the write. + HEAP8[buf + len] = endChar; + return len; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return -e.errno; + } + ; + } + + + function ___syscall_renameat(olddirfd, oldpath, newdirfd, newpath) { + oldpath = bigintToI53Checked(oldpath);; + newpath = bigintToI53Checked(newpath);; + + + try { + + oldpath = SYSCALLS.getStr(oldpath); + newpath = SYSCALLS.getStr(newpath); + oldpath = SYSCALLS.calculateAt(olddirfd, oldpath); + newpath = SYSCALLS.calculateAt(newdirfd, newpath); + FS.rename(oldpath, newpath); + return 0; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return -e.errno; + } + ; + } + + + function ___syscall_rmdir(path) { + path = bigintToI53Checked(path);; + + + try { + + path = SYSCALLS.getStr(path); + FS.rmdir(path); + return 0; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return -e.errno; + } + ; + } + + + function ___syscall_unlinkat(dirfd, path, flags) { + path = bigintToI53Checked(path);; + + + try { + + path = SYSCALLS.getStr(path); + path = SYSCALLS.calculateAt(dirfd, path); + if (flags === 0) { + FS.unlink(path); + } else if (flags === 512) { + FS.rmdir(path); + } else { + abort('Invalid flags passed to unlinkat'); + } + return 0; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return -e.errno; + } + ; + } + + var nowIsMonotonic = 1; + var __emscripten_get_now_is_monotonic = () => nowIsMonotonic; + + + function __emscripten_system(command) { + command = bigintToI53Checked(command);; + + + if (ENVIRONMENT_IS_NODE) { + if (!command) return 1; // shell is available + + var cmdstr = UTF8ToString(command); + if (!cmdstr.length) return 0; // this is what glibc seems to do (shell works test?) + + var cp = require('child_process'); + var ret = cp.spawnSync(cmdstr, [], { shell: true, stdio: 'inherit' }); + + var _W_EXITCODE = (ret, sig) => ((ret) << 8 | (sig)); + + // this really only can happen if process is killed by signal + if (ret.status === null) { + // sadly node doesn't expose such function + var signalToNumber = (sig) => { + // implement only the most common ones, and fallback to SIGINT + switch (sig) { + case 'SIGHUP': return 1; + case 'SIGINT': return 2; + case 'SIGQUIT': return 3; + case 'SIGFPE': return 8; + case 'SIGKILL': return 9; + case 'SIGALRM': return 14; + case 'SIGTERM': return 15; + } + return 2; // SIGINT + } + return _W_EXITCODE(0, signalToNumber(ret.signal)); + } + + return _W_EXITCODE(ret.status, 0); + } + // int system(const char *command); + // http://pubs.opengroup.org/onlinepubs/000095399/functions/system.html + // Can't call external programs. + if (!command) return 0; // no shell available + return -52; + ; + } + + var __emscripten_throw_longjmp = () => { + throw Infinity; + }; + + function __gmtime_js(time, tmPtr) { + time = bigintToI53Checked(time);; + tmPtr = bigintToI53Checked(tmPtr);; + + + var date = new Date(time * 1000); + HEAP32[((tmPtr) / 4)] = date.getUTCSeconds(); + HEAP32[(((tmPtr) + (4)) / 4)] = date.getUTCMinutes(); + HEAP32[(((tmPtr) + (8)) / 4)] = date.getUTCHours(); + HEAP32[(((tmPtr) + (12)) / 4)] = date.getUTCDate(); + HEAP32[(((tmPtr) + (16)) / 4)] = date.getUTCMonth(); + HEAP32[(((tmPtr) + (20)) / 4)] = date.getUTCFullYear() - 1900; + HEAP32[(((tmPtr) + (24)) / 4)] = date.getUTCDay(); + var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0); + var yday = ((date.getTime() - start) / (1000 * 60 * 60 * 24)) | 0; + HEAP32[(((tmPtr) + (28)) / 4)] = yday; + ; + } + + var isLeapYear = (year) => year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); + + var MONTH_DAYS_LEAP_CUMULATIVE = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335]; + + var MONTH_DAYS_REGULAR_CUMULATIVE = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]; + var ydayFromDate = (date) => { + var leap = isLeapYear(date.getFullYear()); + var monthDaysCumulative = (leap ? MONTH_DAYS_LEAP_CUMULATIVE : MONTH_DAYS_REGULAR_CUMULATIVE); + var yday = monthDaysCumulative[date.getMonth()] + date.getDate() - 1; // -1 since it's days since Jan 1 + + return yday; + }; + + function __localtime_js(time, tmPtr) { + time = bigintToI53Checked(time);; + tmPtr = bigintToI53Checked(tmPtr);; + + + var date = new Date(time * 1000); + HEAP32[((tmPtr) / 4)] = date.getSeconds(); + HEAP32[(((tmPtr) + (4)) / 4)] = date.getMinutes(); + HEAP32[(((tmPtr) + (8)) / 4)] = date.getHours(); + HEAP32[(((tmPtr) + (12)) / 4)] = date.getDate(); + HEAP32[(((tmPtr) + (16)) / 4)] = date.getMonth(); + HEAP32[(((tmPtr) + (20)) / 4)] = date.getFullYear() - 1900; + HEAP32[(((tmPtr) + (24)) / 4)] = date.getDay(); + + var yday = ydayFromDate(date) | 0; + HEAP32[(((tmPtr) + (28)) / 4)] = yday; + HEAP64[(((tmPtr) + (40)) / 8)] = BigInt(-(date.getTimezoneOffset() * 60)); + + // Attention: DST is in December in South, and some regions don't have DST at all. + var start = new Date(date.getFullYear(), 0, 1); + var summerOffset = new Date(date.getFullYear(), 6, 1).getTimezoneOffset(); + var winterOffset = start.getTimezoneOffset(); + var dst = (summerOffset != winterOffset && date.getTimezoneOffset() == Math.min(winterOffset, summerOffset)) | 0; + HEAP32[(((tmPtr) + (32)) / 4)] = dst; + ; + } + + + var __mktime_js = function (tmPtr) { + tmPtr = bigintToI53Checked(tmPtr);; + + var ret = (() => { + var date = new Date(HEAP32[(((tmPtr) + (20)) / 4)] + 1900, + HEAP32[(((tmPtr) + (16)) / 4)], + HEAP32[(((tmPtr) + (12)) / 4)], + HEAP32[(((tmPtr) + (8)) / 4)], + HEAP32[(((tmPtr) + (4)) / 4)], + HEAP32[((tmPtr) / 4)], + 0); + + // There's an ambiguous hour when the time goes back; the tm_isdst field is + // used to disambiguate it. Date() basically guesses, so we fix it up if it + // guessed wrong, or fill in tm_isdst with the guess if it's -1. + var dst = HEAP32[(((tmPtr) + (32)) / 4)]; + var guessedOffset = date.getTimezoneOffset(); + var start = new Date(date.getFullYear(), 0, 1); + var summerOffset = new Date(date.getFullYear(), 6, 1).getTimezoneOffset(); + var winterOffset = start.getTimezoneOffset(); + var dstOffset = Math.min(winterOffset, summerOffset); // DST is in December in South + if (dst < 0) { + // Attention: some regions don't have DST at all. + HEAP32[(((tmPtr) + (32)) / 4)] = Number(summerOffset != winterOffset && dstOffset == guessedOffset); + } else if ((dst > 0) != (dstOffset == guessedOffset)) { + var nonDstOffset = Math.max(winterOffset, summerOffset); + var trueOffset = dst > 0 ? dstOffset : nonDstOffset; + // Don't try setMinutes(date.getMinutes() + ...) -- it's messed up. + date.setTime(date.getTime() + (trueOffset - guessedOffset) * 60000); + } + + HEAP32[(((tmPtr) + (24)) / 4)] = date.getDay(); + var yday = ydayFromDate(date) | 0; + HEAP32[(((tmPtr) + (28)) / 4)] = yday; + // To match expected behavior, update fields from date + HEAP32[((tmPtr) / 4)] = date.getSeconds(); + HEAP32[(((tmPtr) + (4)) / 4)] = date.getMinutes(); + HEAP32[(((tmPtr) + (8)) / 4)] = date.getHours(); + HEAP32[(((tmPtr) + (12)) / 4)] = date.getDate(); + HEAP32[(((tmPtr) + (16)) / 4)] = date.getMonth(); + HEAP32[(((tmPtr) + (20)) / 4)] = date.getYear(); + + var timeMs = date.getTime(); + if (isNaN(timeMs)) { + return -1; + } + // Return time in microseconds + return timeMs / 1000; + })(); + return BigInt(ret); + }; + + + function __tzset_js(timezone, daylight, std_name, dst_name) { + timezone = bigintToI53Checked(timezone);; + daylight = bigintToI53Checked(daylight);; + std_name = bigintToI53Checked(std_name);; + dst_name = bigintToI53Checked(dst_name);; + + + // TODO: Use (malleable) environment variables instead of system settings. + var currentYear = new Date().getFullYear(); + var winter = new Date(currentYear, 0, 1); + var summer = new Date(currentYear, 6, 1); + var winterOffset = winter.getTimezoneOffset(); + var summerOffset = summer.getTimezoneOffset(); + + // Local standard timezone offset. Local standard time is not adjusted for + // daylight savings. This code uses the fact that getTimezoneOffset returns + // a greater value during Standard Time versus Daylight Saving Time (DST). + // Thus it determines the expected output during Standard Time, and it + // compares whether the output of the given date the same (Standard) or less + // (DST). + var stdTimezoneOffset = Math.max(winterOffset, summerOffset); + + // timezone is specified as seconds west of UTC ("The external variable + // `timezone` shall be set to the difference, in seconds, between + // Coordinated Universal Time (UTC) and local standard time."), the same + // as returned by stdTimezoneOffset. + // See http://pubs.opengroup.org/onlinepubs/009695399/functions/tzset.html + HEAPU64[((timezone) / 8)] = BigInt(stdTimezoneOffset * 60); + + HEAP32[((daylight) / 4)] = Number(winterOffset != summerOffset); + + function extractZone(date) { + var match = date.toTimeString().match(/\(([A-Za-z ]+)\)$/); + return match ? match[1] : "GMT"; + }; + var winterName = extractZone(winter); + var summerName = extractZone(summer); + if (summerOffset < winterOffset) { + // Northern hemisphere + stringToUTF8(winterName, std_name, 7); + stringToUTF8(summerName, dst_name, 7); + } else { + stringToUTF8(winterName, dst_name, 7); + stringToUTF8(summerName, std_name, 7); + } + ; + } + + var _abort = () => { + abort('native code called abort()'); + }; + + var _emscripten_date_now = () => Date.now(); + + var _emscripten_get_now; + // Modern environment where performance.now() is supported: + // N.B. a shorter form "_emscripten_get_now = performance.now;" is + // unfortunately not allowed even in current browsers (e.g. FF Nightly 75). + _emscripten_get_now = () => deterministicNow(); + ; + + function _emscripten_memcpy_js(dest, src, num) { + dest = bigintToI53Checked(dest);; + src = bigintToI53Checked(src);; + num = bigintToI53Checked(num);; + + return HEAPU8.copyWithin(dest, src, src + num); + } + + var getHeapMax = () => + 524288000; + + var growMemory = (size) => { + var b = wasmMemory.buffer; + var pages = (size - b.byteLength + 65535) / 65536; + try { + // round size grow request up to wasm page size (fixed 64KB per spec) + wasmMemory.grow(pages); // .grow() takes a delta compared to the previous size + updateMemoryViews(); + return 1 /*success*/; + } catch (e) { + err(`growMemory: Attempted to grow heap from ${b.byteLength} bytes to ${size} bytes, but got error: ${e}`); + } + // implicit 0 return to save code size (caller will cast "undefined" into 0 + // anyhow) + }; + + function _emscripten_resize_heap(requestedSize) { + requestedSize = bigintToI53Checked(requestedSize);; + + + var oldSize = HEAPU8.length; + // With multithreaded builds, races can happen (another thread might increase the size + // in between), so return a failure, and let the caller retry. + assert(requestedSize > oldSize); + + // Memory resize rules: + // 1. Always increase heap size to at least the requested size, rounded up + // to next page multiple. + // 2a. If MEMORY_GROWTH_LINEAR_STEP == -1, excessively resize the heap + // geometrically: increase the heap size according to + // MEMORY_GROWTH_GEOMETRIC_STEP factor (default +20%), At most + // overreserve by MEMORY_GROWTH_GEOMETRIC_CAP bytes (default 96MB). + // 2b. If MEMORY_GROWTH_LINEAR_STEP != -1, excessively resize the heap + // linearly: increase the heap size by at least + // MEMORY_GROWTH_LINEAR_STEP bytes. + // 3. Max size for the heap is capped at 2048MB-WASM_PAGE_SIZE, or by + // MAXIMUM_MEMORY, or by ASAN limit, depending on which is smallest + // 4. If we were unable to allocate as much memory, it may be due to + // over-eager decision to excessively reserve due to (3) above. + // Hence if an allocation fails, cut down on the amount of excess + // growth, in an attempt to succeed to perform a smaller allocation. + + // A limit is set for how much we can grow. We should not exceed that + // (the wasm binary specifies it, so if we tried, we'd fail anyhow). + var maxHeapSize = getHeapMax(); + if (requestedSize > maxHeapSize) { + err(`Cannot enlarge memory, requested ${requestedSize} bytes, but the limit is ${maxHeapSize} bytes!`); + return false; + } + + var alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple; + + // Loop through potential heap size increases. If we attempt a too eager + // reservation that fails, cut down on the attempted size and reserve a + // smaller bump instead. (max 3 times, chosen somewhat arbitrarily) + for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { + var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown); // ensure geometric growth + // but limit overreserving (default to capping at +96MB overgrowth at most) + overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296); + + var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536)); + + var replacement = growMemory(newSize); + if (replacement) { + + return true; + } + } + err(`Failed to grow the heap from ${oldSize} bytes to ${newSize} bytes, not enough memory!`); + return false; + ; + } + + var ENV = { + }; + + var getExecutableName = () => { + return thisProgram || './this.program'; + }; + var getEnvStrings = () => { + if (!getEnvStrings.strings) { + // Default values. + // Deterministic language detection, ignore the browser's language. + var lang = 'C.UTF-8'; + var env = { + 'USER': 'web_user', + 'LOGNAME': 'web_user', + 'PATH': '/', + 'PWD': '/', + 'HOME': '/home/web_user', + 'LANG': lang, + '_': getExecutableName() + }; + // Apply the user-provided values, if any. + for (var x in ENV) { + // x is a key in ENV; if ENV[x] is undefined, that means it was + // explicitly set to be so. We allow user code to do that to + // force variables with default values to remain unset. + if (ENV[x] === undefined) delete env[x]; + else env[x] = ENV[x]; + } + var strings = []; + for (var x in env) { + strings.push(`${x}=${env[x]}`); + } + getEnvStrings.strings = strings; + } + return getEnvStrings.strings; + }; + + var stringToAscii = (str, buffer) => { + for (var i = 0; i < str.length; ++i) { + assert(str.charCodeAt(i) === (str.charCodeAt(i) & 0xff)); + HEAP8[buffer++] = str.charCodeAt(i); + } + // Null-terminate the string + HEAP8[buffer] = 0; + }; + + var _environ_get = function (__environ, environ_buf) { + __environ = bigintToI53Checked(__environ);; + environ_buf = bigintToI53Checked(environ_buf);; + + + var bufSize = 0; + getEnvStrings().forEach((string, i) => { + var ptr = environ_buf + bufSize; + HEAPU64[(((__environ) + (i * 8)) / 8)] = BigInt(ptr); + stringToAscii(string, ptr); + bufSize += string.length + 1; + }); + return 0; + ; + }; + + + var _environ_sizes_get = function (penviron_count, penviron_buf_size) { + penviron_count = bigintToI53Checked(penviron_count);; + penviron_buf_size = bigintToI53Checked(penviron_buf_size);; + + + var strings = getEnvStrings(); + HEAPU64[((penviron_count) / 8)] = BigInt(strings.length); + var bufSize = 0; + strings.forEach((string) => bufSize += string.length + 1); + HEAPU64[((penviron_buf_size) / 8)] = BigInt(bufSize); + return 0; + ; + }; + + + var runtimeKeepaliveCounter = 0; + var keepRuntimeAlive = () => noExitRuntime || runtimeKeepaliveCounter > 0; + var _proc_exit = (code) => { + EXITSTATUS = code; + if (!keepRuntimeAlive()) { + Module['onExit']?.(code); + ABORT = true; + } + quit_(code, new ExitStatus(code)); + }; + + /** @suppress {duplicate } */ + /** @param {boolean|number=} implicit */ + var exitJS = (status, implicit) => { + EXITSTATUS = status; + + checkUnflushedContent(); + + // if exit() was called explicitly, warn the user if the runtime isn't actually being shut down + if (keepRuntimeAlive() && !implicit) { + var msg = `program exited (with status: ${status}), but keepRuntimeAlive() is set (counter=${runtimeKeepaliveCounter}) due to an async operation, so halting execution but not exiting the runtime or preventing further async execution (you can use emscripten_force_exit, if you want to force a true shutdown)`; + readyPromiseReject(msg); + err(msg); + } + + _proc_exit(status); + }; + var _exit = exitJS; + + function _fd_close(fd) { + try { + + var stream = SYSCALLS.getStreamFromFD(fd); + FS.close(stream); + return 0; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return e.errno; + } + } + + /** @param {number=} offset */ + var doReadv = (stream, iov, iovcnt, offset) => { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = Number(HEAPU64[((iov) / 8)]); + var len = Number(HEAPU64[(((iov) + (8)) / 8)]); + iov += 16; + var curr = FS.read(stream, HEAP8, ptr, len, offset); + if (curr < 0) return -1; + ret += curr; + if (curr < len) break; // nothing more to read + if (typeof offset !== 'undefined') { + offset += curr; + } + } + return ret; + }; + + + function _fd_read(fd, iov, iovcnt, pnum) { + iov = bigintToI53Checked(iov);; + iovcnt = bigintToI53Checked(iovcnt);; + pnum = bigintToI53Checked(pnum);; + + + try { + + var stream = SYSCALLS.getStreamFromFD(fd); + var num = doReadv(stream, iov, iovcnt); + HEAPU64[((pnum) / 8)] = BigInt(num); + return 0; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return e.errno; + } + ; + } + + + function _fd_seek(fd, offset, whence, newOffset) { + offset = bigintToI53Checked(offset);; + newOffset = bigintToI53Checked(newOffset);; + + + try { + + if (isNaN(offset)) return 61; + var stream = SYSCALLS.getStreamFromFD(fd); + FS.llseek(stream, offset, whence); + HEAP64[((newOffset) / 8)] = BigInt(stream.position); + if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state + return 0; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return e.errno; + } + ; + } + + /** @param {number=} offset */ + var doWritev = (stream, iov, iovcnt, offset) => { + var ret = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = Number(HEAPU64[((iov) / 8)]); + var len = Number(HEAPU64[(((iov) + (8)) / 8)]); + iov += 16; + var curr = FS.write(stream, HEAP8, ptr, len, offset); + if (curr < 0) return -1; + ret += curr; + if (typeof offset !== 'undefined') { + offset += curr; + } + } + return ret; + }; + + + function _fd_write(fd, iov, iovcnt, pnum) { + iov = bigintToI53Checked(iov);; + iovcnt = bigintToI53Checked(iovcnt);; + pnum = bigintToI53Checked(pnum);; + + + try { + + var stream = SYSCALLS.getStreamFromFD(fd); + var num = doWritev(stream, iov, iovcnt); + HEAPU64[((pnum) / 8)] = BigInt(num); + return 0; + } catch (e) { + if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e; + return e.errno; + } + ; + } + + + var arraySum = (array, index) => { + var sum = 0; + for (var i = 0; i <= index; sum += array[i++]) { + // no-op + } + return sum; + }; + + + var MONTH_DAYS_LEAP = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; + + var MONTH_DAYS_REGULAR = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; + var addDays = (date, days) => { + var newDate = new Date(date.getTime()); + while (days > 0) { + var leap = isLeapYear(newDate.getFullYear()); + var currentMonth = newDate.getMonth(); + var daysInCurrentMonth = (leap ? MONTH_DAYS_LEAP : MONTH_DAYS_REGULAR)[currentMonth]; + + if (days > daysInCurrentMonth - newDate.getDate()) { + // we spill over to next month + days -= (daysInCurrentMonth - newDate.getDate() + 1); + newDate.setDate(1); + if (currentMonth < 11) { + newDate.setMonth(currentMonth + 1) + } else { + newDate.setMonth(0); + newDate.setFullYear(newDate.getFullYear() + 1); + } + } else { + // we stay in current month + newDate.setDate(newDate.getDate() + days); + return newDate; + } + } + + return newDate; + }; + + + + + var writeArrayToMemory = (array, buffer) => { + assert(array.length >= 0, 'writeArrayToMemory array must have a length (should be an array or typed array)') + HEAP8.set(array, buffer); + }; + + + var _strftime = function (s, maxsize, format, tm) { + s = bigintToI53Checked(s);; + maxsize = bigintToI53Checked(maxsize);; + format = bigintToI53Checked(format);; + tm = bigintToI53Checked(tm);; + + var ret = (() => { + // size_t strftime(char *restrict s, size_t maxsize, const char *restrict format, const struct tm *restrict timeptr); + // http://pubs.opengroup.org/onlinepubs/009695399/functions/strftime.html + + var tm_zone = Number(HEAPU64[(((tm) + (48)) / 8)]); + + var date = { + tm_sec: HEAP32[((tm) / 4)], + tm_min: HEAP32[(((tm) + (4)) / 4)], + tm_hour: HEAP32[(((tm) + (8)) / 4)], + tm_mday: HEAP32[(((tm) + (12)) / 4)], + tm_mon: HEAP32[(((tm) + (16)) / 4)], + tm_year: HEAP32[(((tm) + (20)) / 4)], + tm_wday: HEAP32[(((tm) + (24)) / 4)], + tm_yday: HEAP32[(((tm) + (28)) / 4)], + tm_isdst: HEAP32[(((tm) + (32)) / 4)], + tm_gmtoff: HEAP64[(((tm) + (40)) / 8)], + tm_zone: tm_zone ? UTF8ToString(tm_zone) : '' + }; + date.tm_gmtoff = Number(date.tm_gmtoff); + + var pattern = UTF8ToString(format); + + // expand format + var EXPANSION_RULES_1 = { + '%c': '%a %b %d %H:%M:%S %Y', // Replaced by the locale's appropriate date and time representation - e.g., Mon Aug 3 14:02:01 2013 + '%D': '%m/%d/%y', // Equivalent to %m / %d / %y + '%F': '%Y-%m-%d', // Equivalent to %Y - %m - %d + '%h': '%b', // Equivalent to %b + '%r': '%I:%M:%S %p', // Replaced by the time in a.m. and p.m. notation + '%R': '%H:%M', // Replaced by the time in 24-hour notation + '%T': '%H:%M:%S', // Replaced by the time + '%x': '%m/%d/%y', // Replaced by the locale's appropriate date representation + '%X': '%H:%M:%S', // Replaced by the locale's appropriate time representation + // Modified Conversion Specifiers + '%Ec': '%c', // Replaced by the locale's alternative appropriate date and time representation. + '%EC': '%C', // Replaced by the name of the base year (period) in the locale's alternative representation. + '%Ex': '%m/%d/%y', // Replaced by the locale's alternative date representation. + '%EX': '%H:%M:%S', // Replaced by the locale's alternative time representation. + '%Ey': '%y', // Replaced by the offset from %EC (year only) in the locale's alternative representation. + '%EY': '%Y', // Replaced by the full alternative year representation. + '%Od': '%d', // Replaced by the day of the month, using the locale's alternative numeric symbols, filled as needed with leading zeros if there is any alternative symbol for zero; otherwise, with leading characters. + '%Oe': '%e', // Replaced by the day of the month, using the locale's alternative numeric symbols, filled as needed with leading characters. + '%OH': '%H', // Replaced by the hour (24-hour clock) using the locale's alternative numeric symbols. + '%OI': '%I', // Replaced by the hour (12-hour clock) using the locale's alternative numeric symbols. + '%Om': '%m', // Replaced by the month using the locale's alternative numeric symbols. + '%OM': '%M', // Replaced by the minutes using the locale's alternative numeric symbols. + '%OS': '%S', // Replaced by the seconds using the locale's alternative numeric symbols. + '%Ou': '%u', // Replaced by the weekday as a number in the locale's alternative representation (Monday=1). + '%OU': '%U', // Replaced by the week number of the year (Sunday as the first day of the week, rules corresponding to %U ) using the locale's alternative numeric symbols. + '%OV': '%V', // Replaced by the week number of the year (Monday as the first day of the week, rules corresponding to %V ) using the locale's alternative numeric symbols. + '%Ow': '%w', // Replaced by the number of the weekday (Sunday=0) using the locale's alternative numeric symbols. + '%OW': '%W', // Replaced by the week number of the year (Monday as the first day of the week) using the locale's alternative numeric symbols. + '%Oy': '%y', // Replaced by the year (offset from %C ) using the locale's alternative numeric symbols. + }; + for (var rule in EXPANSION_RULES_1) { + pattern = pattern.replace(new RegExp(rule, 'g'), EXPANSION_RULES_1[rule]); + } + + var WEEKDAYS = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']; + var MONTHS = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']; + + function leadingSomething(value, digits, character) { + var str = typeof value == 'number' ? value.toString() : (value || ''); + while (str.length < digits) { + str = character[0] + str; + } + return str; + } + + function leadingNulls(value, digits) { + return leadingSomething(value, digits, '0'); + } + + function compareByDay(date1, date2) { + function sgn(value) { + return value < 0 ? -1 : (value > 0 ? 1 : 0); + } + + var compare; + if ((compare = sgn(date1.getFullYear() - date2.getFullYear())) === 0) { + if ((compare = sgn(date1.getMonth() - date2.getMonth())) === 0) { + compare = sgn(date1.getDate() - date2.getDate()); + } + } + return compare; + } + + function getFirstWeekStartDate(janFourth) { + switch (janFourth.getDay()) { + case 0: // Sunday + return new Date(janFourth.getFullYear() - 1, 11, 29); + case 1: // Monday + return janFourth; + case 2: // Tuesday + return new Date(janFourth.getFullYear(), 0, 3); + case 3: // Wednesday + return new Date(janFourth.getFullYear(), 0, 2); + case 4: // Thursday + return new Date(janFourth.getFullYear(), 0, 1); + case 5: // Friday + return new Date(janFourth.getFullYear() - 1, 11, 31); + case 6: // Saturday + return new Date(janFourth.getFullYear() - 1, 11, 30); + } + } + + function getWeekBasedYear(date) { + var thisDate = addDays(new Date(date.tm_year + 1900, 0, 1), date.tm_yday); + + var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4); + var janFourthNextYear = new Date(thisDate.getFullYear() + 1, 0, 4); + + var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear); + var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear); + + if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) { + // this date is after the start of the first week of this year + if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) { + return thisDate.getFullYear() + 1; + } + return thisDate.getFullYear(); + } + return thisDate.getFullYear() - 1; + } + + var EXPANSION_RULES_2 = { + '%a': (date) => WEEKDAYS[date.tm_wday].substring(0, 3), + '%A': (date) => WEEKDAYS[date.tm_wday], + '%b': (date) => MONTHS[date.tm_mon].substring(0, 3), + '%B': (date) => MONTHS[date.tm_mon], + '%C': (date) => { + var year = date.tm_year + 1900; + return leadingNulls((year / 100) | 0, 2); + }, + '%d': (date) => leadingNulls(date.tm_mday, 2), + '%e': (date) => leadingSomething(date.tm_mday, 2, ' '), + '%g': (date) => { + // %g, %G, and %V give values according to the ISO 8601:2000 standard week-based year. + // In this system, weeks begin on a Monday and week 1 of the year is the week that includes + // January 4th, which is also the week that includes the first Thursday of the year, and + // is also the first week that contains at least four days in the year. + // If the first Monday of January is the 2nd, 3rd, or 4th, the preceding days are part of + // the last week of the preceding year; thus, for Saturday 2nd January 1999, + // %G is replaced by 1998 and %V is replaced by 53. If December 29th, 30th, + // or 31st is a Monday, it and any following days are part of week 1 of the following year. + // Thus, for Tuesday 30th December 1997, %G is replaced by 1998 and %V is replaced by 01. + + return getWeekBasedYear(date).toString().substring(2); + }, + '%G': getWeekBasedYear, + '%H': (date) => leadingNulls(date.tm_hour, 2), + '%I': (date) => { + var twelveHour = date.tm_hour; + if (twelveHour == 0) twelveHour = 12; + else if (twelveHour > 12) twelveHour -= 12; + return leadingNulls(twelveHour, 2); + }, + '%j': (date) => { + // Day of the year (001-366) + return leadingNulls(date.tm_mday + arraySum(isLeapYear(date.tm_year + 1900) ? MONTH_DAYS_LEAP : MONTH_DAYS_REGULAR, date.tm_mon - 1), 3); + }, + '%m': (date) => leadingNulls(date.tm_mon + 1, 2), + '%M': (date) => leadingNulls(date.tm_min, 2), + '%n': () => '\n', + '%p': (date) => { + if (date.tm_hour >= 0 && date.tm_hour < 12) { + return 'AM'; + } + return 'PM'; + }, + '%S': (date) => leadingNulls(date.tm_sec, 2), + '%t': () => '\t', + '%u': (date) => date.tm_wday || 7, + '%U': (date) => { + var days = date.tm_yday + 7 - date.tm_wday; + return leadingNulls(Math.floor(days / 7), 2); + }, + '%V': (date) => { + // Replaced by the week number of the year (Monday as the first day of the week) + // as a decimal number [01,53]. If the week containing 1 January has four + // or more days in the new year, then it is considered week 1. + // Otherwise, it is the last week of the previous year, and the next week is week 1. + // Both January 4th and the first Thursday of January are always in week 1. [ tm_year, tm_wday, tm_yday] + var val = Math.floor((date.tm_yday + 7 - (date.tm_wday + 6) % 7) / 7); + // If 1 Jan is just 1-3 days past Monday, the previous week + // is also in this year. + if ((date.tm_wday + 371 - date.tm_yday - 2) % 7 <= 2) { + val++; + } + if (!val) { + val = 52; + // If 31 December of prev year a Thursday, or Friday of a + // leap year, then the prev year has 53 weeks. + var dec31 = (date.tm_wday + 7 - date.tm_yday - 1) % 7; + if (dec31 == 4 || (dec31 == 5 && isLeapYear(date.tm_year % 400 - 1))) { + val++; + } + } else if (val == 53) { + // If 1 January is not a Thursday, and not a Wednesday of a + // leap year, then this year has only 52 weeks. + var jan1 = (date.tm_wday + 371 - date.tm_yday) % 7; + if (jan1 != 4 && (jan1 != 3 || !isLeapYear(date.tm_year))) + val = 1; + } + return leadingNulls(val, 2); + }, + '%w': (date) => date.tm_wday, + '%W': (date) => { + var days = date.tm_yday + 7 - ((date.tm_wday + 6) % 7); + return leadingNulls(Math.floor(days / 7), 2); + }, + '%y': (date) => { + // Replaced by the last two digits of the year as a decimal number [00,99]. [ tm_year] + return (date.tm_year + 1900).toString().substring(2); + }, + // Replaced by the year as a decimal number (for example, 1997). [ tm_year] + '%Y': (date) => date.tm_year + 1900, + '%z': (date) => { + // Replaced by the offset from UTC in the ISO 8601:2000 standard format ( +hhmm or -hhmm ). + // For example, "-0430" means 4 hours 30 minutes behind UTC (west of Greenwich). + var off = date.tm_gmtoff; + var ahead = off >= 0; + off = Math.abs(off) / 60; + // convert from minutes into hhmm format (which means 60 minutes = 100 units) + off = (off / 60) * 100 + (off % 60); + return (ahead ? '+' : '-') + String("0000" + off).slice(-4); + }, + '%Z': (date) => date.tm_zone, + '%%': () => '%' + }; + + // Replace %% with a pair of NULLs (which cannot occur in a C string), then + // re-inject them after processing. + pattern = pattern.replace(/%%/g, '\0\0') + for (var rule in EXPANSION_RULES_2) { + if (pattern.includes(rule)) { + pattern = pattern.replace(new RegExp(rule, 'g'), EXPANSION_RULES_2[rule](date)); + } + } + pattern = pattern.replace(/\0\0/g, '%') + + var bytes = intArrayFromString(pattern, false); + if (bytes.length > maxsize) { + return 0; + } + + writeArrayToMemory(bytes, s); + return bytes.length - 1; + })(); + return BigInt(ret); + }; + + + var handleException = (e) => { + // Certain exception types we do not treat as errors since they are used for + // internal control flow. + // 1. ExitStatus, which is thrown by exit() + // 2. "unwind", which is thrown by emscripten_unwind_to_js_event_loop() and others + // that wish to return to JS event loop. + if (e instanceof ExitStatus || e == 'unwind') { + return EXITSTATUS; + } + checkStackCookie(); + if (e instanceof WebAssembly.RuntimeError) { + if (_emscripten_stack_get_current() <= 0) { + err('Stack overflow detected. You can try increasing -sSTACK_SIZE (currently set to 65536)'); + } + } + quit_(1, e); + }; + + var wasmTableMirror = []; + + var wasmTable; + var getWasmTableEntry = (funcPtr) => { + // Function pointers are 64-bit, but wasmTable.get() requires a Number. + // https://github.com/emscripten-core/emscripten/issues/18200 + funcPtr = Number(funcPtr); + var func = wasmTableMirror[funcPtr]; + if (!func) { + if (funcPtr >= wasmTableMirror.length) wasmTableMirror.length = funcPtr + 1; + wasmTableMirror[funcPtr] = func = wasmTable.get(funcPtr); + } + assert(wasmTable.get(funcPtr) == func, 'JavaScript-side Wasm function table mirror is out of date!'); + return func; + }; + + var getCFunc = (ident) => { + var func = Module['_' + ident]; // closure exported function + assert(func, 'Cannot call unknown function ' + ident + ', make sure it is exported'); + return func; + }; + + + + + var stringToUTF8OnStack = (str) => { + var size = lengthBytesUTF8(str) + 1; + var ret = stackAlloc(size); + stringToUTF8(str, ret, size); + return ret; + }; + + + + + + /** + * @param {string|null=} returnType + * @param {Array=} argTypes + * @param {Arguments|Array=} args + * @param {Object=} opts + */ + var ccall = (ident, returnType, argTypes, args, opts) => { + // For fast lookup of conversion functions + var toC = { + 'pointer': (p) => BigInt(p), + 'string': (str) => { + var ret = 0; + if (str !== null && str !== undefined && str !== 0) { // null string + // at most 4 bytes per UTF-8 code point, +1 for the trailing '\0' + ret = stringToUTF8OnStack(str); + } + return BigInt(ret); + }, + 'array': (arr) => { + var ret = stackAlloc(arr.length); + writeArrayToMemory(arr, ret); + return BigInt(ret); + } + }; + + function convertReturnValue(ret) { + if (returnType === 'string') { + ret = Number(ret); + return UTF8ToString(ret); + } + if (returnType === 'pointer') return Number(ret); + if (returnType === 'boolean') return Boolean(ret); + return ret; + } + + var func = getCFunc(ident); + var cArgs = []; + var stack = 0; + assert(returnType !== 'array', 'Return type should not be "array".'); + if (args) { + for (var i = 0; i < args.length; i++) { + var converter = toC[argTypes[i]]; + if (converter) { + if (stack === 0) stack = stackSave(); + cArgs[i] = converter(args[i]); + } else { + cArgs[i] = args[i]; + } + } + } + var ret = func(...cArgs); + function onDone(ret) { + if (stack !== 0) stackRestore(stack); + return convertReturnValue(ret); + } + + ret = onDone(ret); + return ret; + }; + + /** + * @param {string=} returnType + * @param {Array=} argTypes + * @param {Object=} opts + */ + var cwrap = (ident, returnType, argTypes, opts) => { + return (...args) => ccall(ident, returnType, argTypes, args, opts); + }; + + FS.createPreloadedFile = FS_createPreloadedFile; + FS.staticInit();; + function checkIncomingModuleAPI() { + ignoredModuleProp('fetchSettings'); + } + var wasmImports = { + /** @export */ + __syscall_dup3: ___syscall_dup3, + /** @export */ + __syscall_fcntl64: ___syscall_fcntl64, + /** @export */ + __syscall_ioctl: ___syscall_ioctl, + /** @export */ + __syscall_openat: ___syscall_openat, + /** @export */ + __syscall_readlinkat: ___syscall_readlinkat, + /** @export */ + __syscall_renameat: ___syscall_renameat, + /** @export */ + __syscall_rmdir: ___syscall_rmdir, + /** @export */ + __syscall_unlinkat: ___syscall_unlinkat, + /** @export */ + _emscripten_get_now_is_monotonic: __emscripten_get_now_is_monotonic, + /** @export */ + _emscripten_system: __emscripten_system, + /** @export */ + _emscripten_throw_longjmp: __emscripten_throw_longjmp, + /** @export */ + _gmtime_js: __gmtime_js, + /** @export */ + _localtime_js: __localtime_js, + /** @export */ + _mktime_js: __mktime_js, + /** @export */ + _tzset_js: __tzset_js, + /** @export */ + abort: _abort, + /** @export */ + emscripten_date_now: _emscripten_date_now, + /** @export */ + emscripten_get_now: _emscripten_get_now, + /** @export */ + emscripten_memcpy_js: _emscripten_memcpy_js, + /** @export */ + emscripten_resize_heap: _emscripten_resize_heap, + /** @export */ + environ_get: _environ_get, + /** @export */ + environ_sizes_get: _environ_sizes_get, + /** @export */ + exit: _exit, + /** @export */ + fd_close: _fd_close, + /** @export */ + fd_read: _fd_read, + /** @export */ + fd_seek: _fd_seek, + /** @export */ + fd_write: _fd_write, + /** @export */ + invoke_vjj: invoke_vjj, + /** @export */ + strftime: _strftime + }; + var wasmExports = createWasm(); + var ___wasm_call_ctors = createExportWrapper('__wasm_call_ctors'); + var _handle = Module['_handle'] = createExportWrapper('handle'); + var _main = Module['_main'] = createExportWrapper('main'); + var _fflush = createExportWrapper('fflush'); + var _sbrk = createExportWrapper('sbrk'); + var _setThrew = createExportWrapper('setThrew'); + var _emscripten_stack_init = () => (_emscripten_stack_init = wasmExports['emscripten_stack_init'])(); + var _emscripten_stack_get_free = () => (_emscripten_stack_get_free = wasmExports['emscripten_stack_get_free'])(); + var _emscripten_stack_get_base = () => (_emscripten_stack_get_base = wasmExports['emscripten_stack_get_base'])(); + var _emscripten_stack_get_end = () => (_emscripten_stack_get_end = wasmExports['emscripten_stack_get_end'])(); + var stackSave = createExportWrapper('stackSave'); + var stackRestore = createExportWrapper('stackRestore'); + var stackAlloc = createExportWrapper('stackAlloc'); + var _emscripten_stack_get_current = () => (_emscripten_stack_get_current = wasmExports['emscripten_stack_get_current'])(); + + function invoke_vjj(index, a1, a2) { + var sp = stackSave(); + try { + getWasmTableEntry(Number(index))(a1, a2); + } catch (e) { + stackRestore(sp); + if (e !== e + 0) throw e; + _setThrew(1, 0); + } + } + + // Argument name here must shadow the `wasmExports` global so + // that it is recognised by metadce and minify-import-export-names + // passes. + function applySignatureConversions(wasmExports) { + // First, make a copy of the incoming exports object + wasmExports = Object.assign({}, wasmExports); + var makeWrapper___PP = (f) => function (a0, a1, a2) { return f(a0, BigInt(a1 ? a1 : 0), BigInt(a2 ? a2 : 0)) }; + var makeWrapper__p = (f) => function (a0) { return f(BigInt(a0)) }; + var makeWrapper_pP = (f) => function (a0) { return Number(f(BigInt(a0 ? a0 : 0))) }; + var makeWrapper_p = (f) => function () { return Number(f()) }; + var makeWrapper_pp = (f) => function (a0) { return Number(f(BigInt(a0))) }; + + wasmExports['main'] = makeWrapper___PP(wasmExports['main']); + wasmExports['fflush'] = makeWrapper__p(wasmExports['fflush']); + wasmExports['sbrk'] = makeWrapper_pP(wasmExports['sbrk']); + wasmExports['setThrew'] = makeWrapper__p(wasmExports['setThrew']); + wasmExports['emscripten_stack_get_base'] = makeWrapper_p(wasmExports['emscripten_stack_get_base']); + wasmExports['emscripten_stack_get_end'] = makeWrapper_p(wasmExports['emscripten_stack_get_end']); + wasmExports['stackSave'] = makeWrapper_p(wasmExports['stackSave']); + wasmExports['stackRestore'] = makeWrapper__p(wasmExports['stackRestore']); + wasmExports['stackAlloc'] = makeWrapper_pp(wasmExports['stackAlloc']); + wasmExports['emscripten_stack_get_current'] = makeWrapper_p(wasmExports['emscripten_stack_get_current']); return wasmExports; + } + + // include: postamble.js + // === Auto-generated postamble setup entry stuff === + + // include: deterministic.js + var MAGIC = 0; + Math.random = () => { + MAGIC = Math.pow(MAGIC + 1.8912, 3) % 1; + return MAGIC; + }; + + var TIME = 10000; + function deterministicNow() { + return TIME++; + } + + Date.now = deterministicNow; + + // Setting performance.now to deterministicNow doesn't work so we instead + // use a helper function in parseTools (getPerformanceNow()) to call it + // directly. + // if (typeof performance == 'object') performance.now = Date.now; + + Module['thisProgram'] = 'thisProgram'; // for consistency between different builds than between runs of the same build + + function hashMemory(id) { + var ret = 0; + var len = _sbrk(0); + for (var i = 0; i < len; i++) { + ret = (ret * 17 + HEAPU8[i]) | 0; + } + return id + ':' + ret; + } + + function hashString(s) { + var ret = 0; + for (var i = 0; i < s.length; i++) { + ret = (ret * 17 + s.charCodeAt(i)) | 0; + } + return ret; + } + + // end include: deterministic.js + Module['cwrap'] = cwrap; + var missingLibrarySymbols = [ + 'writeI53ToI64', + 'writeI53ToI64Clamped', + 'writeI53ToI64Signaling', + 'writeI53ToU64Clamped', + 'writeI53ToU64Signaling', + 'readI53FromI64', + 'readI53FromU64', + 'convertI32PairToI53', + 'convertI32PairToI53Checked', + 'convertU32PairToI53', + 'inetPton4', + 'inetNtop4', + 'inetPton6', + 'inetNtop6', + 'readSockaddr', + 'writeSockaddr', + 'getCallstack', + 'emscriptenLog', + 'convertPCtoSourceLocation', + 'readEmAsmArgs', + 'jstoi_q', + 'listenOnce', + 'autoResumeAudioContext', + 'getDynCaller', + 'dynCall', + 'runtimeKeepalivePush', + 'runtimeKeepalivePop', + 'callUserCallback', + 'maybeExit', + 'asmjsMangle', + 'HandleAllocator', + 'getNativeTypeSize', + 'STACK_SIZE', + 'STACK_ALIGN', + 'POINTER_SIZE', + 'ASSERTIONS', + 'uleb128Encode', + 'sigToWasmTypes', + 'generateFuncType', + 'convertJsFunctionToWasm', + 'getEmptyTableSlot', + 'updateTableMap', + 'getFunctionAddress', + 'addFunction', + 'removeFunction', + 'reallyNegative', + 'unSign', + 'strLen', + 'reSign', + 'formatString', + 'intArrayToString', + 'AsciiToString', + 'UTF16ToString', + 'stringToUTF16', + 'lengthBytesUTF16', + 'UTF32ToString', + 'stringToUTF32', + 'lengthBytesUTF32', + 'stringToNewUTF8', + 'registerKeyEventCallback', + 'maybeCStringToJsString', + 'findEventTarget', + 'getBoundingClientRect', + 'fillMouseEventData', + 'registerMouseEventCallback', + 'registerWheelEventCallback', + 'registerUiEventCallback', + 'registerFocusEventCallback', + 'fillDeviceOrientationEventData', + 'registerDeviceOrientationEventCallback', + 'fillDeviceMotionEventData', + 'registerDeviceMotionEventCallback', + 'screenOrientation', + 'fillOrientationChangeEventData', + 'registerOrientationChangeEventCallback', + 'fillFullscreenChangeEventData', + 'registerFullscreenChangeEventCallback', + 'JSEvents_requestFullscreen', + 'JSEvents_resizeCanvasForFullscreen', + 'registerRestoreOldStyle', + 'hideEverythingExceptGivenElement', + 'restoreHiddenElements', + 'setLetterbox', + 'softFullscreenResizeWebGLRenderTarget', + 'doRequestFullscreen', + 'fillPointerlockChangeEventData', + 'registerPointerlockChangeEventCallback', + 'registerPointerlockErrorEventCallback', + 'requestPointerLock', + 'fillVisibilityChangeEventData', + 'registerVisibilityChangeEventCallback', + 'registerTouchEventCallback', + 'fillGamepadEventData', + 'registerGamepadEventCallback', + 'registerBeforeUnloadEventCallback', + 'fillBatteryEventData', + 'battery', + 'registerBatteryEventCallback', + 'setCanvasElementSize', + 'getCanvasElementSize', + 'jsStackTrace', + 'stackTrace', + 'checkWasiClock', + 'wasiRightsToMuslOFlags', + 'wasiOFlagsToMuslOFlags', + 'createDyncallWrapper', + 'safeSetTimeout', + 'setImmediateWrapped', + 'clearImmediateWrapped', + 'polyfillSetImmediate', + 'getPromise', + 'makePromise', + 'idsToPromises', + 'makePromiseCallback', + 'ExceptionInfo', + 'findMatchingCatch', + 'Browser_asyncPrepareDataCounter', + 'setMainLoop', + 'getSocketFromFD', + 'getSocketAddress', + 'FS_unlink', + 'FS_mkdirTree', + '_setNetworkCallback', + 'heapObjectForWebGLType', + 'toTypedArrayIndex', + 'webgl_enable_ANGLE_instanced_arrays', + 'webgl_enable_OES_vertex_array_object', + 'webgl_enable_WEBGL_draw_buffers', + 'webgl_enable_WEBGL_multi_draw', + 'emscriptenWebGLGet', + 'computeUnpackAlignedImageSize', + 'colorChannelsInGlTextureFormat', + 'emscriptenWebGLGetTexPixelData', + 'emscriptenWebGLGetUniform', + 'webglGetUniformLocation', + 'webglPrepareUniformLocationsBeforeFirstUse', + 'webglGetLeftBracePos', + 'emscriptenWebGLGetVertexAttrib', + '__glGetActiveAttribOrUniform', + 'writeGLArray', + 'registerWebGlEventCallback', + 'runAndAbortIfError', + 'ALLOC_NORMAL', + 'ALLOC_STACK', + 'allocate', + 'writeStringToMemory', + 'writeAsciiToMemory', + 'setErrNo', + 'demangle', + ]; + missingLibrarySymbols.forEach(missingLibrarySymbol) + + var unexportedSymbols = [ + 'run', + 'addOnPreRun', + 'addOnInit', + 'addOnPreMain', + 'addOnExit', + 'addOnPostRun', + 'addRunDependency', + 'removeRunDependency', + 'FS_createFolder', + 'FS_createPath', + 'FS_createLazyFile', + 'FS_createLink', + 'FS_createDevice', + 'FS_readFile', + 'out', + 'err', + 'callMain', + 'abort', + 'wasmMemory', + 'wasmExports', + 'stackAlloc', + 'stackSave', + 'stackRestore', + 'getTempRet0', + 'setTempRet0', + 'writeStackCookie', + 'checkStackCookie', + 'MAX_INT53', + 'MIN_INT53', + 'bigintToI53Checked', + 'ptrToString', + 'zeroMemory', + 'exitJS', + 'getHeapMax', + 'growMemory', + 'ENV', + 'MONTH_DAYS_REGULAR', + 'MONTH_DAYS_LEAP', + 'MONTH_DAYS_REGULAR_CUMULATIVE', + 'MONTH_DAYS_LEAP_CUMULATIVE', + 'isLeapYear', + 'ydayFromDate', + 'arraySum', + 'addDays', + 'ERRNO_CODES', + 'ERRNO_MESSAGES', + 'DNS', + 'Protocols', + 'Sockets', + 'initRandomFill', + 'randomFill', + 'timers', + 'warnOnce', + 'UNWIND_CACHE', + 'readEmAsmArgsArray', + 'jstoi_s', + 'getExecutableName', + 'handleException', + 'keepRuntimeAlive', + 'asyncLoad', + 'alignMemory', + 'mmapAlloc', + 'wasmTable', + 'noExitRuntime', + 'getCFunc', + 'ccall', + 'freeTableIndexes', + 'functionsInTableMap', + 'setValue', + 'getValue', + 'PATH', + 'PATH_FS', + 'UTF8Decoder', + 'UTF8ArrayToString', + 'UTF8ToString', + 'stringToUTF8Array', + 'stringToUTF8', + 'lengthBytesUTF8', + 'intArrayFromString', + 'stringToAscii', + 'UTF16Decoder', + 'stringToUTF8OnStack', + 'writeArrayToMemory', + 'JSEvents', + 'specialHTMLTargets', + 'findCanvasEventTarget', + 'currentFullscreenStrategy', + 'restoreOldWindowedStyle', + 'ExitStatus', + 'getEnvStrings', + 'doReadv', + 'doWritev', + 'promiseMap', + 'uncaughtExceptionCount', + 'exceptionLast', + 'exceptionCaught', + 'Browser', + 'getPreloadedImageData__data', + 'wget', + 'SYSCALLS', + 'preloadPlugins', + 'FS_createPreloadedFile', + 'FS_modeStringToFlags', + 'FS_getMode', + 'FS_stdin_getChar_buffer', + 'FS_stdin_getChar', + 'FS', + 'FS_createDataFile', + 'MEMFS', + 'TTY', + 'PIPEFS', + 'SOCKFS', + 'tempFixedLengthArray', + 'miniTempWebGLFloatBuffers', + 'miniTempWebGLIntBuffers', + 'GL', + 'AL', + 'GLUT', + 'EGL', + 'GLEW', + 'IDBStore', + 'SDL', + 'SDL_gfx', + 'allocateUTF8', + 'allocateUTF8OnStack', + ]; + unexportedSymbols.forEach(unexportedRuntimeSymbol); + + + + var calledRun; + + dependenciesFulfilled = function runCaller() { + // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false) + if (!calledRun) run(); + if (!calledRun) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled + }; + + function callMain() { + assert(runDependencies == 0, 'cannot call main when async dependencies remain! (listen on Module["onRuntimeInitialized"])'); + assert(__ATPRERUN__.length == 0, 'cannot call main when preRun functions remain to be called'); + + var entryFunction = _main; + + var argc = 0; + var argv = 0; + + try { + + var ret = entryFunction(argc, BigInt(argv)); + + // if we're not running an evented main loop, it's time to exit + exitJS(ret, /* implicit = */ true); + return ret; + } + catch (e) { + return handleException(e); + } + } + + function stackCheckInit() { + // This is normally called automatically during __wasm_call_ctors but need to + // get these values before even running any of the ctors so we call it redundantly + // here. + _emscripten_stack_init(); + // TODO(sbc): Move writeStackCookie to native to to avoid this. + writeStackCookie(); + } + + function run() { + + if (runDependencies > 0) { + return; + } + + stackCheckInit(); + + preRun(); + + // a preRun added a dependency, run will be called later + if (runDependencies > 0) { + return; + } + + function doRun() { + // run may have just been called through dependencies being fulfilled just in this very frame, + // or while the async setStatus time below was happening + if (calledRun) return; + calledRun = true; + Module['calledRun'] = true; + + if (ABORT) return; + + initRuntime(); + + preMain(); + + readyPromiseResolve(Module); + if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized'](); + + if (shouldRunNow) callMain(); + + postRun(); + } + + if (Module['setStatus']) { + Module['setStatus']('Running...'); + setTimeout(function () { + setTimeout(function () { + Module['setStatus'](''); + }, 1); + doRun(); + }, 1); + } else { + doRun(); + } + checkStackCookie(); + } + + function checkUnflushedContent() { + // Compiler settings do not allow exiting the runtime, so flushing + // the streams is not possible. but in ASSERTIONS mode we check + // if there was something to flush, and if so tell the user they + // should request that the runtime be exitable. + // Normally we would not even include flush() at all, but in ASSERTIONS + // builds we do so just for this check, and here we see if there is any + // content to flush, that is, we check if there would have been + // something a non-ASSERTIONS build would have not seen. + // How we flush the streams depends on whether we are in SYSCALLS_REQUIRE_FILESYSTEM=0 + // mode (which has its own special function for this; otherwise, all + // the code is inside libc) + var oldOut = out; + var oldErr = err; + var has = false; + out = err = (x) => { + has = true; + } + try { // it doesn't matter if it fails + _fflush(0); + // also flush in the JS FS layer + ['stdout', 'stderr'].forEach(function (name) { + var info = FS.analyzePath('/dev/' + name); + if (!info) return; + var stream = info.object; + var rdev = stream.rdev; + var tty = TTY.ttys[rdev]; + if (tty?.output?.length) { + has = true; + } + }); + } catch (e) { } + out = oldOut; + err = oldErr; + if (has) { + warnOnce('stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the Emscripten FAQ), or make sure to emit a newline when you printf etc.'); + } + } + + if (Module['preInit']) { + if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']]; + while (Module['preInit'].length > 0) { + Module['preInit'].pop()(); + } + } + + // shouldRunNow refers to calling main(), not run(). + var shouldRunNow = true; + + if (Module['noInitialRun']) shouldRunNow = false; + + run(); + + /** + * Expose the ability to resize the WASM heap. + * + * The WASM heap is set to auto-grow, but starts with an initial small size. + * If we try to load a previously obtained heap, that is larger than the initial size + * due to it having been auto-grown, we will receive an RangeError due to the initial + * size being too small to store our heap + * + * Exposing resize_heap allows us to expand the initial size, if needed, before loading in our heap. + */ + Module.resizeHeap = _emscripten_resize_heap; + + return Module.ready; + }; +})(); + +module.exports = Module \ No newline at end of file diff --git a/loader/src/index.cjs b/loader/src/index.cjs index b05269151..cb63614b6 100644 --- a/loader/src/index.cjs +++ b/loader/src/index.cjs @@ -1,5 +1,6 @@ const Emscripten = require('./formats/emscripten.cjs') const Emscripten2 = require('./formats/emscripten2.cjs') +const Wasm64Emscripten = require('./formats/wasm64-unknown-emscripten.cjs') /* eslint-enable */ @@ -91,6 +92,8 @@ module.exports = async function (binary, options) { instance = await Emscripten(binary, options) } else if (options.format === "wasm32-unknown-emscripten2") { instance = await Emscripten2(binary, options) + } else if (options.format === "wasm64-unknown-emscripten") { + instance = await Wasm64Emscripten(binary, options) } /** diff --git a/loader/test/process64/process.lua b/loader/test/process64/process.lua new file mode 100644 index 000000000..d2f4cd01a --- /dev/null +++ b/loader/test/process64/process.lua @@ -0,0 +1,32 @@ +local process = {_version = "0.0.1"} + +Log = {} +Count = 0 + +function process.handle(msg, ao) + local action = "" + for _, o in ipairs(msg.Tags) do + if o.name == "Action" then action = o.value end + end + if action == "echo" then return {Output = msg.Data} end + if action == "inc" then + Count = Count + 1 + return {Output = Count} + end + if action == "Date" then return {Output = os.date("%Y-%m-%d")} end + if action == "Random" then return {Output = math.random(1, 10)} end + if action == "Memory" then + while true do table.insert(Log, 'Hello World') end + end + if action == "Directory" then + Files = {} + local command = string.format('ls %s', '/') + local p = io.popen(command) + for file in p:lines() do table.insert(Files, file) end + p:close() + return {Output = Files} + end + while true do Count = Count + 1 end +end + +return process diff --git a/loader/test/process64/process.wasm b/loader/test/process64/process.wasm new file mode 100755 index 0000000000000000000000000000000000000000..0a72630645645c5e4cde4ac80f9348fccab62f27 GIT binary patch literal 310998 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

WdfcOtGh30_ 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

p$A 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 z z9H5B1j~2TkMNIQf5#u1!W62TLbx9H1TNthoc+qT#>q$x#>qt~C2kvnlAvn^cig7CC zC$c=qWHp$QCrk5Q5qCw3m{DU22u0js_K)$RJlU)iF;dzoVpau3idY2*VDxRPiLojD}@Cj%yit$n* zLxMG^+k-5!N)q$=f1F|Qicx}Tg-qe+1Ge8j;g#^pJS zRNJZ^j$UA1m`c<>tf~A(B#lKQHHeqO%yK!qY|*2TASsY~&&>`~i6WjP7d|hT8AXPx zjT%wSE3{8K!k{T0ngf_n>Uc#nHR!i)keKH?Rb*4-l0ygf*k&6teN z+-R0?*n{1z_8^iS2F4z=PP3fX7A>i}R5Uu&V+gc5S(6|e&p`&HLRR>jX|hVuUMr(U>#uAbrl(g&$S45Et;~wE$u_0-%Km->G|I zKqR#5+!KIEk{l4J?mHk-2`M1p3^P%L2(u9)Mv2%#p&Cix+pzQ#q2~tD753}D`J^?=|KFOx}1RTYD z;(N4`PaFzX3h6ZMMZ+$0IV}oT;T|YsHU5Ey9OcN2;XZM5PdNPR3VhfsG@ayarVDdV za(8e~So$uCAQ(~5QtyoTtU%}aQFtGw(hocvxhEKr#0hWbo@DOeo`3?mCrlm4J+Zgd z+!IVh{ZIXP$Ic1*k-CwjG9)Zch;UlXJwctUbWey_3G?Qj82^nVG6SJu` zLaBCS+<83l1A?5JVmOpdq(s-xQ3sjFXd$2fNBNE{=DYrB^}0V0;1)CV?e{G4A04sn z*IM1o@@6;jk%a&bV&^qoLCsXF3UF>LcQ2kxJ&%Q52M0y9fKG2LkIRG+n7lnh96Wh@ zYLM_Z?Q~*i_*B}bs?-~KWPP~L;j%etGRG*E(-oTOa_KiK$Bq*FPvu-0Y>rfsmzNFG zK1G-LiYvm*%iuHnvQMUli!U#O3XWEh5(;@RgAjSwRF?(+_}=Ael{~a3s}h$S?hD|IYfXY*8N>E!XkFUeUd71%^-w}JcHI{gjxa*BZn z7}$cEG>*xo?TFN_+pj#-qLm(M@A0+wq-*av!4jqRvb)KCh&gP3e?5ZbG8FUhmE{Q4 zZOeSdV!RA$Ngk5^%3Y?v8V`$MciMdyMl`)An3>S_8Mu201?<+-x0i1M76&x5BPQ%Q z;kroc+!jV6OP_w*oLXQYoW707ffc}6h4VCA*OzHd*w2vFb5Pt+GR`K@Mo{U+dD5WgVf9=j=5#{*>T({XYz_{ z?uZ>lvI-f~xBDx^b_1E>yIO z8{JmdGqp?64;8-f0RgzI;2xe30gr}Ekoz+%gYjM+WbZ$(&3WbG0eU~R1{n7 zfH-$pe&fv$uz?#D)PUlf@e4fNth1yhxEh_KJxo8?Bz%@}ij$C@FL4M_=~GJ= zI93A2MjW^llDPvz1DH7&w?RwLL2qj0$5@87f^u8}8dq0EQv+H$0@>9NDRa@@7`3<5 z5Q#9=5aytNtA(RFQW=e0oPXa`0fN^}=DD4xOG{Ge00NsgOEcIys##I`1O#7m@|lL6 zI`^5(NC2=fyUfm+=6YPl+cYKof({n0*?&8=tQplq2-(7DA%`3uEap+6d9OnAX%(7h zD>~V~l$F4gHsE@atQbG009W4)>cj4^e;o&lebm?I>+6f_W1V*Xcxhh84YZd(@2Z4z ziO*(bmUI5JYAN4$CE@d6nM3~iFE11QW!*ae-T0GV{?z{oK})Fxh2M2L)hBk0f0AK|nrY~jY1oWoLjD{m zZb2A|B8HkOU3pb{HN%uQ7>v?n19YI-Xf*T8b@t^aXj&pqhM{VzT3bQ7PaOA)bEt5h zgLX5QIrft0B@eMmnvO1VlkVkZ?GpIRrvZF`OCD&iGvXY`W1R}GS9;q8&P>4`yIkC; zS3yZH;+}K<<<2Y1+(fkViVoN<2xe|T<3}jzSCL*0DdG6bvFjmM)fvO|U*eEb0aes- z!hjN`c9M0itAtD4I0c}ezqF5?7*)b;lwpBtmpLLp50_Q>S~XkX)CqATwGV`yDh3X% zLbc63#No!WPHy4*29h^hskpthfK6LEr&DbqeyKyDagJ}`x0fc7$@C9k+SD9pnyQzf z5ZUG+XybT_Y`Eb9$mA>ol~yUduCePbALmz40Y{4qZY6Wz6?PWCP>)Fxsc>Y;`f$@S zr*Ao{Toxs#b$Zgyl<&LjKDa?(Zy^@AEl0U-n?O09CVLJoC&qP%k*68lkYVlpab zl&Ti1%rd5`{RBP0h<4Qinya>xYVmb8N&;$jaTNp8iBc&Y%VRlMfOwhVhFpd+9Qo#~ zK-cM=ShH;PCxdxUR_1$kYKRxz046^`CMiWvMCPa508S7Eh+Bbof5?d)PPc@WU34_% z5U|-I5^a$~VA&I5rc4MX0nxBJ3WkjI8EM^b$;zzrvRKSMw)0aHzEqoKBDB5h8+{$dkfTl~$H7F=!Vq6!^oCQKunj8(?6WM7XjHhLgXAcgHA$t<7d2FuC2 z#WO@@AI!cHXUgZlkjb=Nkep|)QJk#35E#oz0!{Kx8_pc&JST9cxnELX+j1Lx&FUDc z(NqlN_Q5Q>S*?tHN0fjFAi zAtj^BoxF&EJ}x0J+?X$&aj4+iUpV2>R(|NR7Cdq6W|U{?A)F+jqN2DQM>E>=tjkSE zFv=}k4u8yN_ePk8$8G?V>|pTDUgP$g`y#IMcUwhd7`$BiuCK6?_k_6ITss*$Y^6ej z`e0j3v-INPrDc(y=DJ;v^M9GKi>>1GE?bfD%M7HD(Rq?1O{l>Rv3TpRJGElJ?RxpH z%TdQ~?qoJvl;wM)%wO%qLdNS#vbi3o^O@)&bm!I((C6#w^if*-{aDnj?DTgMb87RQ zW~rn)P29znG>geN6jbdmojGaxpry}0gqM5!;ZGtH^aN^V!cJ#~wKq7FLHmxWom~od zgziU{pk9LxGc^qeewx7wv4WR48rn1>pUNb6u(giH3fKS#ksM}@76Gym1rJu@OAuuo zMDGNKwxAT`?axX-Tl|fm&4Nt^&DPDBpPlu7_GJ(zKiiZK!^yQvCKp_1&CmYTe7l{p z${6%SzS^6sgjLN~Tj8E1vDKZIv`6*|yZBQMTaTDHi#$mjwtS1j)=Rw2T(~<6x)*~PF%8cBEfzNmh72@blD1f+Qc`GFX_hfH9fL#tY{mnt9n3<>+hyc>}9s$)K7F=FCM*Amfo*70h*;H_gW zpuy11?kXw3&7$_V0x2;IaqH|}1;vx_aU5li;>l);+8Mu*Q4A*A!hH0GK`Y8CEbA{Z z@;DSO1|d2=KoWZi%}nGmj^Z+maRArMNn~m^?^!I4;ffI9C#-j@VyxR`MQ_7_gW%vI z5kJr6VDzGiC&@_7baPdOIVQ^6luNR}rjwB%;GFy_K{PjGMk^;xhiDZivssHEi&dBi=$$dNb*sQ*h3tseY0v?bl2|7 zVzdPLXKD34q8TsP1wg$o$W6&T_ z4`c}@*8gt7?g@D5moJ{vi7Gl+0=N}nmO;xhRsSD&;KEUtdr8|iDI2{a$FTOa3?Lpu zOQN_hu*9)W@@OpD9vO?l!MK1#`&iSPkw5}X1P3cZe3f5~%+4qQ3l&5~X73l?`WNzz zp+Th)3dP*{Z~oeDf|TWGqvN`^Gph0?p$wLhmEO8?F}766mn*%5b=n^Jkv2`MNnD7{ zM#PZS2C|~2MKrd?fgCZ57z2U)2xo>usn!;c9t-Cxb2U=tYSqfZI1dvuRsD=FEU0|APz%q_RA#5b@yU9v z(Fn)G-8&}7XJ^BS+G2G|InPdwpAAmy&v{`c`<8R(_Dt^Cz30rH=k}c4^RWX{2Py|1Kd|q>+<_+#96qpk;OPU; z95{X8*#l>T(KB0SXU_!lf}~yrkXkrdo134loC%H`sa8(URHy9G{mxYB^~_YbIM455 zC3LBC<7a{$?+e3l^tn-p7(Mg8(K8`QM~=+bPJ^R`%F#+atevXVr)Npn z9X1xmCr=~^U~Q&)G@Pwek1iZbk{8A&W-H0-Vzn`Iv|5=;Qb2m8dWvRdre^e`ztgkT z!wZYSLgmatP}QF!`wkqbEiTM2y2qKSo*D~Nqy-ZTmBvCa)0pCK<7AybHU3PEFN_1C z!6d{qjwyA#(WvkJP& z7U+3xd?7eBUY`-(c6e+~*Xna5MvlXjK>ICN!$ksV`Jwol6x1QS_9A`dN)J6hA&W zS%KE8wdxMK-e3q9!igEOjLg?-`UEsH^W!shJ-FZL#p>k3OsyK$>S5)~JasnoR;^T~ z8b-SYp<}=bC`oLI{ zX}mfW&dyBK;r8&@_$e`$m0y?<^@HU~eP%LTI6F@PMtX+kXMiu5JhoUpL5UOs+=tm3 zB7{aA9W;X4yoj+8%-0$-4vC8k8a9(L)H%@zwluahbpW8pW61e5yEtB(uT+olxQl;} z@Ncd*wFrD$w=}jglnddsB-Vp`pe#cKiB_hzhoGE#lvZU(^cdrqwBgyAxtRq?(=Aim z=(oPFf<|(lo#K$u&0}H z$7+l9V3L1G0!l(@6K87m0QLxHkci_8yfn^2B4(d1H@US9y8ah z_`=iI6vIU4__{bh&tHV47lfc7dYXgnopcOp6UV_>Bm+T-`Z-<&D<(aIY10#i?v)=I zpCkKx#w}AjCeAL1jGWk=s#RQN(?WF>27F?1JdAQL)EplJ->hT< zUJ??CH$ER6oENo)Tjmk*NRmL}B)E66QNPzX?p~PqUb=Pfw~oC3-kl?j+J|rRO(cqr zSB??On5KDDn4p+AYjP>5)`A&Ysw`k=)Pkv6FkS;7q({}z=GAvFHv<-+y{*r04acV; zI{0$S^j3yDjItbW)T%+G1#0sW1i?O}b$!t!E8|b*NZiyMFJxF#|;vf?QJqG%*<6nr%yr;0yG)d z1nG)2j=>&`Lw$z~Fh7&W=vh#yPR$?&r9;!nSXZVL(`n#c3cV@cyd*h9M_r1pQsaG;=y4Y@D5&sLck`i?g%AnR!{i7-XpCS$o7VQHtIf zbDq?+-lZIk*QGwHBu!TMBdI(qQ>k)taeNl`0eiD*-dI$OYn5xXtH9^SK(wAWB~Vgf;h#fy92%(cqm>caG>OKFplU$&sOzJFvow%3?%^1ejv_fKTu;v&#fq$u3%F$rU$bBC;Dq=l_gb_hT)wnH7EL0^tCge3Ox09h1UR%Do|Xw1;Uam_ z7biC@-9I9KT;3JbgM1hd#RoIhMJJSHAK`XYCKvfVjaaS(7>}r;N-*nx$&YMDNsuO& z%YLCVUU3f%y!mlpLXc_{$TVByuSN%nslO33cm<5~GOHf}rjUV=Z5i%drF}_LCS9M=Mn+L|Iph)tQs144LDW3FA&hP9Gyd z73c$oj{V3|vIkEjhGX~{h8wTro+)dps}ehmv~*qBv3ElocM?T*v`YMCfYY8p)8@1xL=I(W~su}id-EKX zJz)+l%n*1pVg1aLjc|&nmb~ZSSmg|Q%?;1g%u)QX$Y{b^@&S>ARpW0Meettgy*O{2 z>Z~U$Sx+PJ2RClKfUO97dd)P-YG#|a2qAI3kxA(^ReO%fjx(?4SA z=0L=CBKuA73j4C~klnMY@2ux*l$Pgyx*270EKiuHVS;R`!tj7UXM$p$O$D(8#aaTV z8n^K&<(R^mt0)cYSM5Ly{Q3Bn(f8}`R7`tbREN&w+_HsF5n57?BnD@AYQ{UH3Oc#? zh@6Ip*v(%K`QW$_^3KRStyoD8;121gr<6C~(w zeZo43s}s~ukEgxU23~e0<)325rybOm&-Y4;j>uAB9C>EXp~L$Q><{*r_6JYwK2mz(iD1h< ztK(p4>~VY8ZBIuY3!W(Le=OLye{WFP6C8QsKIVx|5_ z@R0L`d2sBg`;6Lb^d4Z!zHYJ}TYcTB#IcYnrNUQIwx07mh|1PI_o0EjYTX-_$c$bd1Dn2tm z?{$vgN*p=E8+^)XMJ#~=GY7EaDdzg`-c5 zMBJw$(473$XGzj+ff})hJQX&@cyXd*9S{zKJ7>|6ngrvvr7dKOsHzrVG3T=>V^8-m zWEIB-8oX?SSmU`hL4zSjc^51nmIWc5qH)<4Xh{8I68((K_2J0Ai-^Gd8NzB4l)OXs ztuL(p9b>_Vv8h8@qLAJBt;zF?TVpyuQIQWBZq*#t*4t0HSRP_lOigVKw%*ynwY)Yx zl{DibfnZ^aoOLzm7%a)*sT3L&?!EqVp*9P`h+nrlcWJA}SGbLP5m!%ItS>Ex=|hGl ztrElI1RE8-0}g^wVPg_jk~FcPjjP#9cWeWz#$FlLcrHRwOj!<1U;tj^E8|H`&Y&GE zM7k=dF(#yk<_W`0J3*X`lW8IK+Y6(pmy=1yTfTtY7$+K0B7_zmR3%aA=eDM4H;Ni= zt!~*e3Sxujy|GrLBFuhgJr4P4NwKyI)C~pTFVu|95#!ZILI%a=NP@7pr>{GY=~-Rq zaX}1Cob;q3d=i*M^N45Qp?MRN?~$?Tzra9}^^vi1)M9C8)hw+>!NH#3-kuNl?Ccrp z+0hdmEbZU7`$2`mVxKCOzSbrKE@e|XxX@N5GrX-Qxa-q>J$Ls6 znPA6`a7^Le#$s*J>N8U~Z#09sz@!i8eYSM?$sR{QuyP}OID8Q~ao#5hPZJpX zbogP(`^NM4z0lL65Zs6}A4!h-Puom(;}9$U9*&NDYX|^`TyV?HP-&jj@eA?f@HErB zJ@9=G+4fa!u0b8C)Lnu>rfzRnbjbSeI)YL=J)=bc6$x4wY9zvHvpSv#7$P*8Eg(qs zz%20*)jmcjcRM@;N?en!M!dt?EK`h3FL<7jT(>F6ir|(Xi{0mO6ZJbhGGox&FjVTp zrV9)e4y{xLmJ&FgSB4j4+_$8KBO^>0$h6%0f|Z|{HcCx_^ zIt`(xOByn8gdhFuaa7@S#BgL0JE~}CkfNkGVzE8Ee|yWAZ|m_?6|Q2QM}3QkcBX1m znWtu0&JwX=L{k<}f4HUgVPdl)l_sNq>o(YMrV7)k={;xUILE9=Gz|ukvyPn9_XsCO za{4$NrC5AvJES+VO&LQI3MaOQrzEg!dBHH=CzYe%rfM!r2-ry3;S;`yXW}T?=YM|d zu?llQM^4x3vr}7N@OfRy_cS%%^r`8KQEa-Jzin3Ifu^drSyiq>X-18pZ_50F%h$q? z&Da<&KIs%KY&p}YZnb!Xg)8e{n(-&Y`BT`S$HcAn$(~UaF5swqZ zk<44fpp_Bw?%IbbXu<*G5Hnpx9>6#w(^Z%3@j$w<*zF)9zqC$D8@@Y8ESB%Md%C(U z6e1!7z6~x?EhiD4ch|T>LntM-Tig_5Hv%Dzp~MPCf4a3t!}mF^I`8s%@iSc=b^^!E zdkx109WjWLg6Kboe9cUQejfx6i+V456@((U#X_mi(JG;0&v-3eY`j+N>4`x1M$GVB zPSN}YmW#AS(Ua3x(P)||CuO4mMKGYvOP zuDCgcm^7UbPO^}qHV4sSh+y;7HKXc-pauo-QZ-e$nM-DA1VCJmH^4krti+BT{zp1r z($?@brx~bY_1bAIAu&aSl41H8vscz5b0IY*;AYQC{u7Z;Cq>mAu7#(Wejs`#NVWJw zQ?5MH5hkLki-7K8)qzC3Ps?xc<1kDn7AGw0vC3RjnP1;XA#1;0n|B6NqlWo`Pr>A+ z*~82&VaF|CIyI8ITl>kP1o;OujqQTaBDSj7_kF}8$(9V+eDW~5Rd9I0d!Mm#}*dm8xP)l@9ER06*C*D)sNnb^>^k;$f0Yf@nQtOWr89jfy!mJZ?WfRyU zbhzL5h4&?&R@85KK;a$0qxs71z^gSzH0?E9-14y#ouWjy-;3m_G5)6`4h+u_8hM|=0;nv4xriIU%nYJxK=WPb%QKn)i zS^syowVl1h70iG1SQF+PHTig$ae$T$k9bdI>#P}S2|zZEoKrCVvB8J#Og%Hhv& z*VE%`^bD71cBkPzt4U42=%8q2=noXPyALcbhaaLh&HE{$lS&$2WUh{>dad6Q@B4B` z>Xm8UNBt`zYoc~W8Dc&nYxty_XY?h*!}H^(S^2AK=sf@LS;ga>oLyvMknm+=!K2W3 zHWD+#gy>Spb)B^p&8pfK0VJsR;zhN6l*nEpWUT%s0i%&ZOeg?|go#Q>z$DcvkN%6B z6ZNnBY)g%rlVhT{;_?rzBK~-r*H>u*E$XorG$eeZ0{%I+VTC3fDlQ($I$Gu#9*ZH(&GXTE4XTYeCpd-ZU6rJnYozT7SWK4*F++- z$kgloQ$>O@%HjzsCZ&~@u_45B*E>?)8Vv$kp1r+X67KciR%zTF2Z>VFSc@RR{fySp zR~PiSmv!X&CJQ@$cP_DB$B060^>WD7Mtz4W(?_Db`aN)(l`wiJRnh(SG=_^*u?Ez* z)r8TpH5r2Q+lHORvCU{wmcjEb;RP7t_O?bebd96&fTR(rIGpoR42Lj@To>f9q^@hp zCol}BMtsLd_F?NwY&iH_saRgeMHA>(8Jl!T6BY2@|=)3uhuF$jF%Bj@uk@ns$}gYb>i;^Gfr!rnOojt$1=B^o4^$O4#FoHDUEGIZfqjnq>Ns*NJkudS! z^qBhML=WE*dF&hBmdYi@Y;I5V@}l#6!eW!4L|i+E2mU7x6B%bJp#S1RUYIs#9~s*( z$1c@$QyGcXbOCS6-M&CtOs5Lc#hIzwwqk|6oJl$(v^Z1rwgn~NQ>{cZu)`5XJzc9y z{?Y7By+gKeQ#vGsS?EGStYeUDB2pxK|7gPv`bvYxC@pR7P+^OLD>}*mMjJEzIs(v> z23f!Aei1!`?b9q01!og0`e>Co#@pkOl^MqTku3I8c=|Et8-uD2I@L`SfSfi>A! ze2HwuD938>tRkk9>}h1EHT`#o4%AY>Dr*d|y=ZDD?u$}Z9f4JX1j?)b?$C0?6t_d2 ziZ??O8S5!rLPD%#i$aK^mPi7wXdQxd-$o*DXnRx+9Jp>q7K4*Et7?OWd?(FC;h#~# z>hjONI;-AUccL*@CUmPcLktb9QXll48Y+JMVpQx@oeT{?DrSq0mVdgAd2WO}qo)-j z)|G1#uq`4~enN5ofk#VYrN~hgmjBBZr{1jlyCP0kh~WQU{5HuDqtgF!g>M@C|2IW% zy4`Q2;B`Xdor&GU7IoV01XQcYwTf01xHFBhIFRjMVO@ok{@0L?ybf$ah!eh|k?*op`8T zbl)^1sn&f~ini3&>d-{R6N4i5K7397y{Rgfma>f_MchuID%O$xiK<8=0 z!!=&(37AXNT&_)jG6AI*OW0kTKU=ru+QXCE!uv<>9}VkgX5!BWD|K7V$b1SaUBNKc z7qR||Kp2Z_*w1Zi__WRYC?*3#pk-35+t9pkZ9=CoXn~COXw5SrIc-ha(xpaidf~JV zQqbHS4pwb)hAD?BqNS5|6os2JRFIq%q8jAlVPB%ilphVTn4iO1h?~+YeUCodI< z*!FOWaBqEv)e0oCJYPF4nU}EH$a@)P=F!>JTAPRItVZH-X(-*SCEWm5+J)~>W)sJ! zkHL=Vyu$o6%hKG&GIiYn*{E5|wjhU86`5u`Ta5!=j?y$UubKyIJgD{!hB0!CPssn! zaJW&&qtG5vje?Df!Q+qMaG%&dKv!^WePGSjhmvGfx*p1U0tZYHGW%?sKUvUA(~3f- zdoq%M^7x+c@PWN!&z27D3HKci4<0)3%s!URu|9h>smePfRwczTSLbcYU=_K$rm zJg_$`?f+Q#(S7?L-5&0FjwSYo4~GX185sMXJov=EJ*4m3zx#=&AKkbAv9L_p{RhUv zC-yzLZ;Xn^4uoSg>Z{wghq8OaC-)rM{W!Ik%KM(!H})}j5o+4IZ*0Hn-h1FsSPBo8 z4vp>G{qz&1L*c=v53!|S4`4h>)%#iWe~6a$Jh^B8*a$6?7Vde5m+cP`}4!yZ;}kJL;92A{Y36j>xv!9g#phGRJl^?{hpK7C-*+ zVyKv|9!%ydjbN-x^V4HWoA7B9Nw#U9G@T?>eNr_^s{5pRlC_0ehd#eEDsCTBdIOm-(hNwI&!0zA^2E)-oBl z+Z~AAIU3A*DXpS#5H7w{2AT`yq^J}|E?cEt9S$8@_~mExjEc}7eodw@pPCj0QVXrN zOyMOk39gE4yy0TB*T#n7K@Pt-gUtYXqjb%zsxp@0I#`+lEdr?;#%m{HqZA0LnizZ! zkfm^OyH;Ia9eSd6;<`XrBy|M0x<2Dqr24fdE!}VO0ihvQa~Y8ipNdG#cO`BjMJ6_U zuBQ?2JYUpWY*(w>yCGwmAkB8DhA+hzpmG(l)y*phU51-%3Rmk&0nh?|%jo%-P!kq! zhsSq0dbdRsVK&E$*1ZR<|6d;tUwk_pp0}k%HX`;%7p0Shi4 z)E3X-tT6LA_Brvq<0jR6%fS+C>CsB?}EJz4i+q+NU;lw z6>KaZh^V;#%uE(nAD`>*zW2VL_dm*JzB#EUCnqPFnFK$;#xojlzo& z`{o;`75Vy0z1bIHeyO}um@{cf&eSGaoUqiBWw~tHgya8gHa1OZb8)?hYocbZHw!g4 zf0XvEUkA`W&3cPf@3L+7ziQW!xy&f;E#Lo(mK_<-{?V=7+0jwxg1^vVKTzaU^FN1w zPV3{Q!tcD17pnDoU|D7(G!J}ODLYB2c!c0+tWZhcyZNj7u_cMEKKzT#LHrxQb~!#Gw|(7zBO;FO%%-u3{lSBXG#wcgg-h^j0azoK zwI%WMQ9Z29^sq52(8K1dKo1+N0zIxwT=BwxrbqUeVr%n{3b9P#l3-s~;*w#lHCz;F zVMyfP^Z^%*@2l*sw2N{taPb|KyOsKLCLkZ2*BYeH@_cLV1g!bQ@ehBx8iLmrJfhfU z4#V%Yu-n`SIhl}307vYB!!@@%9x!oW_LILMtmel}@6*?r)xmu1Uq(*SkA3*DSlWB} zhed?OrOlZ%&As)v;_`31yYQXPjlbM$Y((J)utT+R)ZjlTeo}RI8cNDVzRYQk^Os1TeF6kV0`q}= zS!>x6e=~+R@WhZsrWRa9e@)O6Uo!3Z>yXYBgHLgwv86eirm5*bynKi==_O#je&%Ir z@z=aejQ`WzOwCPA26A;U9cV1gkN3nmO3Q+4#3=w?@BH@rpO=yEm3%MzUG}8Y6Z|~} zH~KeA5B`=pN*_xh{z3?I_1}6hHx}XD_PEF{yx#2-$~6NomH{U0z(Mx=>>~)}Gz;#b z1Mym^z{H$QTPjKcrhf=Jn0q%H|B#^UG<6!@J}QvaXWXn!Iz`3Nf0}=!nVW0V+!y-b z0vTf2^sq2C?knhr?*-gu zZ6Vj$u0sT)xfLfqV|D?Btsnb~?QFJa>=1+JNAp-k&GCUvkFE1OX`NXQzB=xtI&2(V zHnu`6k((!A8s=O0ugY2)5$|S1qGBcG?%hXkj+4hIXD16wH@vaAbFZjgQL|@hbLS=yY+#vqTo>Rags+>d2$~J#>cEMh9xH-)Mu}JYd6r69@k_q{Dv6}4foy0M=}uunmP!|^_E+#1Z!_9kga4aa7yj&E`@ zhsMEKyNoTu&#wNv-G?6nu{%NYrnF30whKyYjElt?Nit-16{=ZR^IDup3i%|J6Ul!{ z1zSU@K$B@UKf&fY`=2M(0XX}==}KZc|5I7Ao%%nmGyYJT{mkQ!)h4x*+V@UuSlMpy zUsshxBZAN6^RH_NGP3|am;a#p+$!fkE6>X>znaU70NZYy6#C$s<{^V0A$}UcL|k~` zWkddxgEBKW{3sL8ONds%Dt$D2^aQp|u#mD{iYps8^pf>qnK=Wekez>3$iI|~?b0$| ziEwhy`r&M*vfH?Y1^P-?eenc_jmmWaSypfZiciTj z_=)z<1bTEdC<%=ij2ZiPLZeAf25Je z*ngzq2U$Pa$c=>36!GJkpA=rjVG>!a;fKM%#yLu*md?_ zeNutJ%Eal3@*DX7S3nAL_zCw86eC=h%no%`=1M0gbDvw9oJi z{>{w!qe|n8i&qW*X%%s6sDIRfxO(hDqjU!TQy2dmckx!3K6shWOF;G-=EstM4CylC zIT`2Kha242%|S8N{8!HGuPS@}gwi`r#b2+s%@^_4{||p$gNNHso;=%+(x&YF7Rp?%`101HX*&Luy}kC_xr%e! zOqtvc+P0D7n$kv-cSWkatEbJo@hy2*i-glB{_@Jae?K+eZAs!SC*d!v^Zr*gcsGr> zZRL5aM&g$coIv6~Bk{bn_;B$go>MCxn|0vbVZ^0~ySqK_zk|5@h`XJ*2Z_6dxOa#f zNn9auort@LxB%%D4w9u_C0V%1WX1l9!j`i}zb9|Aft( z6BE)_!Urk;J`(;^2l5GyQsLdtEqHgh4)03aMH;S5m-kmCe3s^1gZDIKuQ$Y9*_Ova zt$Ftm$lErC;&H7j&=n55V>hj@Mn^52ZD16y(7W%6!`o)5gbJ5oe6$O z>feRnERug4f#mTi{P`Q zyuAr7A$-**SdGX@AA;RTf9@;Aq&)oyHYf5=AZY%ErT$Vkn8=9+DOWskI}*2AN+
z0BJud{pxS=rT$WP2C0Xs)Z;I%g!JcuB%C&BuR#P$2p`M|{z&*XnBYdjKMR7pk$z=K z@EFohh7kO_Q%cesN(hPsQv?qt{1`^?AcCz3ZcECK2sS0yn&20tKMW`Mcc(MqmklBK zlJv(Ae3ir>OK^rF-yg>je4F%-@dTeE;U^HBOXw2`en#5QmS8u+?@3Zj%40|HJyM^^ z1pn^*TluGufYS0#C0LsOG=kfb`q~pLB;%z6!P5Mv6D-xojs&X^`ItfQpB!m_VQKS8 z`xX+tCmqM7@z{RFUOblpLdf_qoAk@agg<;JfKH_RGl_>Xq0b_?9pSGN!M6!NXA?Y~ zl*gIiWYT_f2$ss13&DLzdaeXdBl7J=a3?~aOR#`ocY=R+Slz+u5%yBVf3mz{{Y0eR z4W!(zq<)r!LvcjkNb_am$X+){JWt{|o%B~Pg5MMDO|UxYzdi(CA^e#~u!!*6m*9;g ze?Nks5PA0}Scm9)e!>8-gv1Xd^m>wi5W#Io{elVJPSOt{*qo#nO0ZNvgb{p=$Zt5o zQhgCY@bAt&(w`#<;R(^VQ3OvU^_frbD}omgyp6O^G{L1L{z8JCNO=|!>`&^unBXy_ zJ~0G;C;dW1@FikDEFsvIv_~w#8wfw+2-YI<8&9w^DeqE(SCaB15L`s`(K3Sjllm+t zIFry53AQEatsuCJ-}$4-@ZZ#|aE$E*sW4JBbV#XKWNnFol&J2{u6RDeJI|)Nd<^F`xAR zZ3LH+_T5f!6v;20;7f#_L2xIcXLb-QwNG~voI=vyMer2T{<{e_Ao^qv!G0wCUV`tE z{Pq!imf-zTO!Vggf)hymg9KBgzK00@n-fFQm(K5`W9l*;TjX1(_=p|bO<7c5r^ zA~=PT#v?9M+}$i@;Ujr#;^zF8pNJ2qW=-52cC2H^Irfho`{EjR!l+3B@V&1t6glcc z*}!_3`y>abwDmANc_g?``2iQ69)dG&xiBQ4CluR`fN{#@p!RM6bY5Eo@4NhfzQ;O4 zrPV&D9~29tE)0OJZ{y))?;sey*ahyVSi-b8OW0ax2`gRVp-*EreCak6o=P@?)+Qxr zWh4gmSu4T6n?KxHYz}Jq`e0*s2DW=5Fns3%=k>$k_515EEV>37ELC9b)D`f}_Z@UQ z<^rnDtHD@dIz)fBf$BrPAfWGndEI7sd7ul-aZ3T!PH$jonh-MDxWH;_ZxB6{fPSbg zC@Y&l-gI5Kxjz)5U$}zrsvPKWbqw70x&msIr7$zDAFPbH3VSPnp`C68-Pk07QD-+=j;|k)dx53X`4V=+kX#4a5 z%ozF|9PeLWUm|+Xo@=QVXWm_m;ln?E4Cc~#L`=EWf6AWlQ5aM*^Lflw6 zs9)m*N3vp|>)TowJANc+dzHY!vWIZgWdzJ~D**LAyP+iQBq;B#h1roYu5bFw5btjI`~7#zGU#N=msYF8(@Ch@i2V; z3#faR2$iWD;l-PHNHf_8%RlG_klK^_ds7|8#pUYhLb~|z`KZCSk~AM#`!LSF8b$TgHK<$cIz-4X=4w`FXqAW zM~TosWHKo3z6g;jsqo1dTZP~C;a%{4@Vq<@Jj#c`#1%YV+gC#F2R)}k&rO+7L~?P?GV*$cZJU7!s*1|o~~a7!Qu!DR_>^XX||T|P4I$8RAoQP}2x$c` z;lAJ;_|7>9R{gd@E0)nEW4yBND?LKI9*Z>`a&VtW+59mG170}cw zh-sw-b*Eav_xySoNE_n6DyVe61!Z$w!E4PHSZgMRo9)hm+l(#n+>wSUao6CXl{S-k3^QO_JKj_85cx>9hcJP5J9 zEg-LA3ruOT8`8{d;_ny z--U7CtU)sUEp*n(gWQ=bAoZ&Olw8UMt=v2CWY$p_lbZlbN6v-r2}7a({8Z3(TL%3m zMuVt-M;OWI!1CV75Je@z{;RLx^^<70I^;6+u6qX!URVa!G9cV#0K?WDgY1PGuzN}= z=$E;J&+{_aoZ12Q_gxR(1${v6<4G8mE`Uj!@*pVI9TqR_0b1uwVPE|kXfwS6y4R?} zDQwdOF1Cd|9j3sk#zPSM>^^KLbAz_#@;J|Qh}*dXLO%L~?Za}&oe~X zJK!r9r5Lok)l)mTY3Q-Ds@X+BW(J&bNmwkbYz zJPySVnY5++fddK8=LS%X0+{6;?S^il2AO?3FzmA!IhQ`%+S)akb`wQfZT=ueMV`yF z7tBefm&OEC>b?}C)}OrwO)XwUg)P-B$$BJ4U)MDD5EZPXpMEau>su&BZa3bzO=@tZ zZfpr}Kl-{DrInaDz1o#b#eKS#XLV7G{G;QX_io-uX(cxL%{V1S-^ER9JDyrYHH--{ zSbG@fx78?U*hMR9XHkjihh1W%5s;iXP+=b3spLnd=N2()nQhc>>h$&W6epcRxpiXX z@NUv7v1l@V%fv4ydxaRat-E)w$ITSF-0;BB&9P#X=`j24%MuYaWzC)&n-+-C*mZl} z>2?y)(Nh*tXG6qjnCVl8>TXH&yVa{K8s~`-Gp#jRmAH}$&kua>V8V#{(_^_Eec+T5onY|covq;E~tw^G~Jo>IT*;b5JU)eiqc;E`^{;Ijl zhuVnIBE?r(N()5PhSEhTO@KI{(0s!TV~e&>F)joxZ4~(Vh>L{EvR9LdE8(R+UA;bVK^Y3i(g$w{L9vQc7>2&cwY>tI!IcJ_}rR*3q3shZRRZu0l?U?ZzhU zn?d&*(9m7|eiiDpd7Rgl{tM}i`zJrDFRDVV4qtZt=suD%OmuTqEvQ0b59Oh1o*O7f z=<;!RUKN_Ju;cObTLDxdb?Ma3YgNctM+>cytfQWmJgDw>r3z(bF1S#T96{;#Gr#wk zsX~$E_V2U1tfN|#HKiS=aea0L!@$%edSCx-5y#I}p>ey`mEL-~j2_{6XXoS7RmjCc zEBo5hC_2_|+jN7IRp|5V=npnJ3AEN)=e*s=aQp{N?Ue?tqaN#@G9Qy!g_O3eFgmj- znrgbf@vhF1Dx_xL`NebhWU8vXiT*T?l8ICyByX`gj;>w<}CiI^W$W>=vJYdjzL5?F_>)k@+-0=zwR5!RttxcSa7&nXXN2 zp}NdYjP|Jv+q-mE7`1Hox6<}A#7IleTChDOmfjS1v+YY)od4QO_a@I;LoGFZqVUE? zj3)TX9iBNPo^m}Y_o+KxH|u6~Ql0%)i&1q-Ns>-O68$)N_s-1SSpSFhc(Li| zYP!a2jp5i#F;W#A98Oyf4>cs#nDVmmZ3l6siDeaWQ?F-pAUI{cE-G^!>z$>8!Q zF|s1-<4N7*I3wVH>c;$Xu}KQBJ=1_-r+C13rHWyeajbn)!CX`vQmS_SDf(s<;<{{o5s$d!v`0!{U8~*|G%Bh+Q|2iq6Obv%O zuejPZ!YvPN+2=tc-RsQwPSy5B@mCRL(SP5o#LJ9l)vP{7Cvwo2!^eF4^u*=Kx?Sa> z_MF*qtJt&Q`DX-$5!tEn<;;q^#w~~K!1zn$(UEfH%u>HX(+_SKTWgr-{&>oK+0<(N z*B%&`pXvChsf_WHzq8w^q8{N%ujWxnDRb7Y`z)oy7-uxKvQR8#x(2k>`WTFH`4Cet zjVH{YFB&t|EHTb9oMoi@m?=Br_R&rbW7jXUV!A(K3ZuuaIh$99(+keBHGarc*_oZR zT#s@2fyTt)4;Y_&na}cFS$c<41`hX`Y3E)|@-)O)d&|xqzW12D54*II`}PUv@1iA) zyUUo*&^)vLCW}80e!H!N8Q*kzeCITbT~|-ralV*2l~%5~#s_2TJnOheMa=Pv*0HaK zU|eoJWa-yJ=2-U94jo!xY+PZwwM!xMAozG*uku72m zEoO55!v0yyG0tc+QK5G}^V&AmU2hJ?<#tA$7v5x!=_U-DJ`iINA^H2)8H-G-mo^$K zU8&vjFKRH|@ojzTRmRv-W5)Ok7-y9CeARfF0lk>`X{i|JG|ieh_Yy-r zxR;|GfUzh$eDhX@x%}$P7?-guz0t`rnr4cY!jTz0SbCk-HP>^DzTPyg>L1lO{nKM! zOgzmb4JnKiJi*vn?sybB!8{Vpy#MA5#yKN8F0#mCR$E8^uv*WCKc%`h@E{X6G&iqT zD2pTQ)-Tx2%F^i-6_MVr*bYFa;m$o*GD<6IlL^8hn z@){TCh%uggY}$_m6kqeXL^uj#k=FBDop+!Z?f7&Rtmi?ra@BX+!>DrB#>4w;zo!a^BCet-`S&Z=AdCesB1fuRM-w&W?F`D^|VD-y)35i|3tf zaSJ7x4G1t7u(%*oJ-z^0PVU<~DEA%C-|M9M{6bV_qEE~DW1J)Bt#r5ut*k+GNn4D| zf81^Lq!=Cf;We)4@>?7}can|rT_m5juzaos_1uip8!3!kpF7Cye}we3uSt~ZDscRg zfc6(3UKcujxnw!@GBvGS(yam= zi*?brZdyTUx16a9t`%r_T#u9CO(FC>C!r2xRGDWxO4Mz0?asOee`>Ptss>4VC2CqfPHmdv8roAA zFL0GtqS4XUFMd*7L62_7ypVKzizq=$>w#Y*>7w-6wWnQ;Ewv zssoD>D1+5=@+9f+(9_lvPu+}Vho}Lr?{4VKplpY=sF8GgkG4kXA1V8~ zhMv{7dx6B|JsPZYtwX!~X;j#o$&V!ISY8TJhd*ivr84(#Z4Kq`QO*|U?pM{rskCP{ zP9XSzZeDsjZEuw?b+qA}HMo92_k+gkr>iWaS2Q`yg^UlV+r-KUYmEi8v)aT*l4l># zgHxLu%^H_eckYKbO1gbS7oWR$s`j5juj@R0r^MwW`n0}yOCQB(T63k|Hc9$NWWG~t z;1u~~RNKY05XwIy&4;_&c9jdKQ^tIj2SF7opDR`~5+za(_dak0S8Vq*XwC@NSWIi? zeAEYQm$uq8S}iVq6}>RO-Ve&FP+f%XdVNt6eQS|H6kxj~XOw-$E`Op}ZQksm@h0i%p^H&u4y- zbgMy^&x<@Sd|gQ&NwIw`aj8M#ioxx4Vz$xG%@4PNj2a}VZ>yvZTdA=lZghb18kFJu z_|>=AWIABZ4=oVXqLJUWPAqI%PNzIf$K|g@u|=u#`~6r&J$|#dFJ#oB+?8{JL*;{L zORK)+l4rH3aqscRmJ7E~vDKvwl5U@n{nXL`vzkSe>&jWx5|>Zty~*u~(-pSUw~n?P z02!Z9nZn8^62+?edP|*O0K5oiL{$2{f6@EaEDxmUm+=HBH3jZ z94?<*hq=ROmaR`q!{PRg_QL+TjPcV^yLyhhjD*8R?3PFvChvZ~KJmdcl6Ys0e4loX zSz4Ic5WD0Ix;?rmy!F&mO#0LEE7b$BJ(B!pe$1^0Ot-iF=S8)~7+PGe3Vgt1ocgNj zTFcrSQ(C`l{eW4ts&%)$MHol*v2Z$jpD8+-t1<2vi$%!}&i9$~nnq@0QZR=05ry*i znI0qb+NTF&oSdAHxBnjVsOz3IyQvsYR+v80?jCcsXVSsxW*A%hUK#xPF4LxTo9~G> zEPa2|zHN7ziLoG7=^~6pHsTj=igF-f1Wz4PVVX0PEz zjCG%s;RW@r6J!!vZb0M>$SNWBgofw~WpZaD@Au}-kZcnA< z7*{8Z)_Z@4(J<`LslXrOtajn!$J}A;+gp}Anuf8l_OMaA3z%8)Cr9ZIVd-y2wU94h zzJ1XhehSMkR7dvR>3W+vR%i7%Rt4ka^@?&ix0s|Kj?PI{*k003oZeS(i+MXyBjeFM z7B5-dZb?34a7jDIH5=o?l3O=ln}`tkL@qxo)L>ebD5$8 z9pu&TvG{UQbm>*5U(=cWjTc#at$0d*o2$&BPMQlkA7F7Dy&~%hV|=QOYsfklkMm9I zbcLzk;pq5v5ysZLlkJyXW|*N}ww&bi?L_|o$bglTfP@}5y)X|ZM{Kt@I^*r ztnIkE57@r5ZnWCeE}QWYCQYq>h;hclNnVW?n1zcSTlL7r*wsidzw|uwws(Hm!egvG z*r(!3&N=3E$Nrjf+cC}wIbpN+ER!8{Iy!3w#&GzA-0CyTX`7)~vFYxX2;+=-wvWtCFpnFxLss_3*fsad ze8F+XAU;X$9Q;^=z zS@{)fKQ4Xsfj-1^-_zfHR58XmI@XCh4lo@zy;!&}hsE+{GnVgTip;OY8D(NDy6-h7 zcn@RQI%Ct5Z7dd!TQPeV^Q>ZO=Al&>TkCqf9Jhn{)@PDYdNfOaADa`ho#~J?Xw|8C zES@^G#$hwlzwyJKs+lZaa%b+a4NP+XqTA!fVGIXXee1K9IdG)<+BFLnHwvOnRxt-m z=eHL2;ponTI>a+$L*ME5Y|r8kmlbrPnDxinC@ZS6xaWK|MOUWd*WL}?%2|6jIsTJ4 z5QV*SyWDvPi-!#wUb+koNL!Mnjn`d4bouJ8f_3Qjkt*tQFP5Iz=2H3=RM9#`;l^8R zA498xhgmz&p=0?`qN5n+$Q3%R*n_rcZrj;0jJ2m9TF1>kfKH{U$E6Hmv7>mN{t+~N zv#VOU92rLTVXw!wr*K&E-eipQNSwHPKQb<{-QM(pnuvl3(;3O)T{mt|6Y>aap zm(5f@jkZ0VbFjZYOP@C=;xX3i{e7(hYO#Io+IiB*L+6nE{Czw9FS5ABh3iolkiY6+ z|K2NE`@6!l^~h|bIKw$Rbp}g+8f>D@pjGJ?%ue;j*gC~P*DD91iVszB_1K=uS{u7` z%q4Vb!;|o)s~8*S-45t|8TA>TpxJdj#*=gRK2W%V`df)}UkEYQHlwaQyMk6Ozv(r0 zFvg+L&^R6V{H9J-u%K%R8+gJb%q?q z(7*G?m3gQW^`vL|1J=Hmn?1!TA0;2VuGH%&#yRvYufDgCQNhOA0ZTD<9eZ!k=UXUz z!tSc`vst>$!0b!6k;T}GZPx~3Tz==Q+^PcfW~!HwT?>qp+vTV^+(FwONY+e!gXaTh zyXp9~EJO?8R(b)0apAg_XM+n-%PSWj=cHjAl(60RZXx>CuE#y__<}-tG@vW)`EqyUN{ry}x= z=@^$Ay{t05i+oSp$$|D8L^+K}@snRntv_k20LE|7aAz3%j#*7b-A!!)li#2-d+sOf z!}j};z)30)^af4rW$*j$yBl>>>)8)U(i_y&a^^(+#S3XV*Ifm&-XOWhrDMG>t)M?& zn%xx&-=J3O#%=42;wY=nO7A7&H)xvSi;jw-#k6Q+LQBxDKvUppA`uEyGB6stt)T(nJVFn)_7^Nwok`Q?}L!p!zLRcUrE05UrqF^bS2a^l(_j@FaSw+04$6 z{0`|vT#lD#*3c8I?D|30JLG~Slwy+)UDWmH1Ie9t=wwi`PK8x09i=#>N+N!Tc0Fxb zZlyera%v%bBGGz}&Z&2^xS>3Ya?CsULt^wEb)kBMb(Nb>m!4n$NMiRMrT0tl)|Skt zw+grSgrN7x$}XXBv;?m^wq4dJNqUbOuUy^``C}nvm#e3|~S|i#YXMqV)lFn0F@Ckg;QM`v|51iNA&o5kWccZMCz*6{C5&NJb(N#BX@Ai8T9LAr2`=7 zBO0Z3$@ab|hCUcu+8vTVqS>>XQj->j(Q)#=4<(r&(PFpmxm{vbQI=!;`aVEHqWD*VLs z!>=|zmn7kJ@rua0qD7I^;+N&P{qb|jT?;pNkPD=@zl!V(cwPF~;erWOOM)qrE9DIm zu^7!-79=-VDS!@e71l|#s?lTh&f|_OUO~@Tknl-jRE^4yf4|}rvypDs;(L?Ct{OR| z<`4YAY@}jsZ!17hHOimP$D z;mBDHsK)dA;l`7vNS4x>FBW{0XnjK4`pj7#3`^)3m&3UKe?q!v&LC$=3O(IxuO>|X zgtB8->cz&ar@A+MYXw1{(5-tduAT=GbFpegW0~WESp!pHSA+W1jvoo2a@>Q(e%mLp_&va2fo?i|V^_ z4A%d3XylaAkT-I1l>5o`6%xBTG%NA=SszIvRUWR0<-ZQu*IwRoEN4AkaVbzNNvcC3 z{f5-4S#O~f_g#D~$*e=87qwu{NK)yi`r7TFunrBIR~qb*lSaR=s@8()I@EdEQjNrz zja1QuQXSB)N9MadgN2H&)B=5_wqRV3)J%I66fhg;i9t_3NbKs-gB?mrA@Ygz0ecs* zB(NUoc-(CHhS@^tXuoL($@M5%oVg@-@p5Xd)lCJ+sz*7RjJoRZbeirkt_u{_qrPK$ zee1Vm6P>u=Y=uNzj}(1Aiq0%f{l|KQbe+MKTW5I9u5Hn(bA@RPT>9yVk86pFds)ld=cK9&KEyRK$4B zQfj)ozc(L0M~0pp`l9EqLZ+oc-Qp@=O`e`1LoYm;+RM6-i7~9(e%8F2Z@<6MMKbZN z=lHijcZXRH2+9-0n;-xVe6UR20YzbhF;w-Kt;cR(Uu^4J0tvp zBzp;D=s9-2-DlrsI(g?^NIBn~j}J2RjLp{@l5XMkoOExy`TGAE9j`++^Do&jEa7rK zlXPaKN!FweeEb|4dX8w)%};rZXYy_2KIuF!e|TN9IeylQZgh`4=G`TmQjb-=`11da zE|Q5qxo+#MsW+LIcP}YED(c6_ca@po)Cza%tPX&DZ92vSO-_OAIDnmsLa=WD2ZWtHsZ*;saElnPhy9&MsUtxyW>)R$o z)$r{jlA%|3`!aR?Wk&UCa69AGJ^B1yW$3O(_xhc=#BA8rs{L-!fd7ncEfYVvaN*(y zIZT~XU{bCMi^RMF0JbZY>kP zywipU!%r~JS~uQ$Jf}ZtpTE!rGIY_dDs$m6Mr~J8#GHj~2>)g2t#XXjGnte%=5gC+ z8vbW={2ZsbeMB9C%SIexCI;Pqy&$$TAOCOk9GUnzrk`ho?PIET)DE=y-anh~KYyWT z$kKnDTef`{bMQy+`ZMzNM8ExoE|Q@`RLd=~>C7v&#S43j`ttezjqWNFUvy8U)47d| z<=(IB>{s{U<6Fzn;d|EpoFr!J-jdG?yFTN`r@zq!vhlTj`<2HqudE-pKrcG*>Hm!m zvhkZ+O6KM-^c;3wQhFtZ>uQTorNOo|-|Ixbie%`bbu*?5l2LKP3uUKLseL6whnszR zjoX9wBsvezK+_)7%+6^gH;l_Q2d`r`UjyzQ_1um6G-Zc}wk7f* zlA-6Mw>g-)A1&%Vt8o2%!XIl{dfDyJ{KNRU+QTum-W>`5Wa-K|Chv}-=%F|5tXj3? z>G(NobM~$_MMF0pLtD1DnC@&U9Uo=rT)YwrdFQF3d({P?-ElnmCi+>GTkDmgssT9J*^K9r#g)Z;9#Uqt1j-(-5{81nJ0 zW$5KkEK@2O)TF+{?*2fjewU@|$F6C23Dv3?7DS1=^X0?O$(!@9?y=b5;3YIL&0^G= zeS|+5GIUXbrd!cvwBzKGe7|i9e0-4%Jy|#FyYLE144KelztJ_GKh`qzEVH;_DOXX{ z=_dR6aYX+MWa&Fzz1Gh~*BAM`t~4X{FK5?v$)&yO;v~mwC~5%Jf8`yi{Uk#V3SX&H zeGNVDzV-F$R?_yDp-&#Qbamo&q%<-mNZV67|B#`B<@?NwH&9Xkw+HQqsSy6k(i=)= z&AN#KB^fjN)T;3H2N`<#3hLv!Jmk}T`s9%zM8A~dbvWr&=;Zj&Bp)4oet6RALBu}J zk)f9lwOCe|k522@&%8Q;v@d?ILK+>ktFL_vyoHJlHspqUsNwaKs|-E)Zq~44x6z<1 z-G+V=(toXG=-L&MmeUH5aouoNeVxmE`v_#{Q1wsPMe;Q65p-PO&@@MJ%rB|GJgfKRGgV*OKQoZA#Et zs(ZghdpFJTwJ%0^`Iev?ku_Pj16q;(AwxGdi=2A71kKJ?K5aj=Jx_O)p;zAP zak9f*w5>e(gZV2}o^CBezY%`=NTLM8N=_ z4l?u%3zegK_t4Di9!r8Q4&c+r?-@0hzwpMihUj}pZ0%h2@d&Yha%AYPGoNMOyN61J zyH)#XsFU;op6V#BXVYN65|Lgk&bYw8>ClD+_!>FD!QRG@{ru#=z9x=z8EHRr@@O^` zzMtfPj{+Tsze>UP_Ty|hZ}xtq-NcE*?J>mnwsw<7+Yg^Qle@yoIYUfIFcICgGjr-2`D_^I`JOGkHCP0X{+xu*0Xe@<-XS`^|GlxQ5}w zba5PfEUUY>fIUW+-Q(E9Cj{@09vCvenGzHd=q?Nm1sgVmFbbb(8w%68v%A6q0|oey zLVN@myCtuOTNut9?+MApWcO(l_z6A31o)U=4`Bp8K^E|7#_VpA{z88?eO!&e@DLno zZg}W?7>ADw4hablVh{KYosSQ^_7}M06J&pe!ahNPA#Nc)_*m!g0JjLdfuq}8KOv5Y zcdo@}4TcJZzA!Q*Ff`PV&yGE@#TUnS^DyMjg63+-Ck>;dwd8l-XLrEvv2jLrq;aL~LF$0{>c&Td5qN7&U&2aU!r*XRho9|7 zSj>yS&qf@FPqdL~Q+swJZjKQg(?>@M-PyLovPZI)a#OndCkzkq;tpHJ+{D%6T0Aho z3#QHYpBsn|H0GF$_rDJe;^ZU1&0qL4kUf?UfA+NJKzv#amn~O$(gwJuTuD6ei31@% zL0IN+S(}@61m1o8H!>?%?%qCr9s;RIvVo-Rv0=rtSt6l1Z&nII*{Cf0WOHbiKYUEI z2glpUz;K*+pu2l`2uurOk2PWY3hod1Jme6r2`7hONe&Fhrxr&B;Bz=Ue(hQAZn&@d z;YP8+$Ifwr#K!mW5AqZG<37r_mOmB&e6$bS5pd1fHsm|aINVXgd^~+{vLU#GMBvb) zxNgH0!j0X2Rp{o=R)p(lKRHE0v9ifZCh25+@K9Eixn33u6EPzM-uTSUxkB6;p+a0I zoX6ylz_38}q$6(sS713xO2~KkpRL2n?OaU8=O~7;eVo-b_)KnJVHhrGXqZm`uU<%d z{FG2~WVuY+H0K!^f@O)TKBqxQYRzPpdq3;>i+5;v5Y`4POQ&%~;1gjZ{G_l&{E3>Q zd%F3vI^@@|(!Tj8BBuxlo0>cEuVtGg48x}m_%?TcDVFX2f6^}jd^}lo;x?DB7jEde z;hy;PSAO4b8AgyAV^xDshGA9KPcE>f`sq2+Er6>f-q)6FIL>oe5b7Ns#;K{Fqk@|s z7B7$aY$FHZGksV^C8PLceR0pgJ&o&|-uR$Mtk|YvdBvUOrxKfj&(v_kV}-j==z$A| ztAh2WPq;sB=wH z_bTRepcHe0je988s~*65M&dvrLiVIm+{>^!4;6-R1Ceyx-y`n?)pDnlRw?z8i&O5R zkg6zw>k1|c8p^a>l3a{Jo}vLfR?dVG3X>E{50;F`L4>N<(ERNyq`j#Vhwy!Xs`4L9xF^#wwI5V+oq6>w|%3W0~RmQ2z!8!T8S?8)yaJB$BlZyK@tNbpUnf z(4hkhlz1OC*3sba0Xje{bxc=KR{=Rt)4<88DPy7rD6?@$Ole@&Z7Bsf$yayL3M zuoZjH{iyNY_!s~0hEb{9C(T z|8M3aZPyzl-lhi9uK!ZcKeakrPgWoO-?*gnw`vK=d9{-wYxv?#hVanI&Xoq>fyZC& z;H(GApu~;ma_ab0COj;;M9iBfuZnFmPu5&hP{h-zFvT`Pf8GKX2Dsq4k$cd5mwBN| ztz~?%#V2$L2#iz~xXAc=3By=V7oSiU|3Ey@2jav3RCN9sKvmnt1>4;0bjpRb#NEQw zTK)9#bPovgGasm~_0!8I&^^pg1AE|V__%m_xI~8F<5DzR{`6pNg%&aa*u%7hEpY&8 zJ|5vgW?Jn@1Ytmg4<7PeLVXqpLtSvOwRL`@V82!}$+L4g9d#FfUzSUl8LeBmaOVmT z*hbyO%b(oq;-sXRh6k|5zFSyZnYx7dfAv#u`urt+$?_Bww>o6)CKdJ6$clN|LoK{ zw5u|2ICWFS2SJCq_=UR(lsy7jdUss%zz`oVY)t#%)7N|g^wja;qkQO)9x8tL_&+>9 z?WyD!8WtGTOOXxHyCsf~&leNo*-e<6yRW{Q7tWo#?W4w$qS(nqUk&!wEiA|l3rRl? zVEaE5CuX3@QRd>q&^&}u{nc57n**nB$lc?LJJvM@|BpRu*VcY|Q<{P(Q?}EZZ zz4078Txh}(ScA@#OO(B1nQf-U2J;DZm!45Ekc;PovkVh@2}1^Pp?yO6b5P6)!o38a z&@h-oA#Rb_9CY)u;7aZu=#NkE5L)W6$@0OZhoueSQkJ5qp&WC<0!cu(0Lq>4LV)=m21Rlx7jCM0yJ$aw8%~6QQxaJ`4Y~KqH5sq&TLMk^wSDK2SkC%6t zv?3FmGvljb%T)!pxR+nxTsOZ-Ts>I{Oj zGCVGcChl(Vpf3ch#@iyLo_G)@HUE~u0QmS0mB4?H^+67Gf~?GcriLS#herR!ISg_t z_~H#e%KYD|C@^&2|B$Ug&^BB*L5@g}^+7OYJWuR0Qe)IPCuUUKrcywbgP73?vN_1X z-f_?|3C#|^sOq{%gN;pae+D?ByT>K|P6`leumz(YNeDSUakoOdvR$$)6NJzJr>1l# zCdlysCv3;;luDkI;Gzt`r!=Ad%aaonj{y$Xd5Ul~z$ph}o~On|l9^@Z=fTt#fk)_La36(;HkKE#YF}jh?TN618KQL3@LG|q*H$&yw+y&k3`#qi6N{9L+)EenlYm$Tgbk-(lSNc1`Mcj8?f(N-j*sHFW-R#d9g2)D$ zoV3QrhUDCAOxz=F#U^7uNKgOGt!zp(gx%nldDP9ig$MS*km4oWk}wDLA2wubBEt`p z`pBudvl;1Suoq41lkNbbRHI4V*+kxZ4FP#CMcXnozhhD?OmmgV&Swb#^WMzXM};r zF(u^Rn?dy%>HawUNU&HHb#WH^4Yfec@vLr+{Z<^D6OPavCZ<&Giq31=)bbY+CN6NQ z7ZZJO*x^39%BQ)MNQWK8GP;y6ixd{bJ=D(273>@RH;7azU8Z)kpybnnQ*`7GS5@7{b%Bz3R@PvkjaY%r8(!F^uVL%|5gUy!Y1k$Uw- z-S7z<vbNQ-G8WeqWQp z2C2_>g&%0XfC*q`+~`9&CsHf{`Xte()|ll_ z^&qUq9S1OgTK@Z3TGZ!%WUNGFxiG08jSd~v3{=^0HwSgzF+Q2X2glK_ zG9j66gSschiOI$g3G!kUIp%74QZkbb!(v;BH!YKs+%+;b1<^K@BhK;EWP=RO{?n38 z;7|pXSorBlGZz$kW+eM$v8Z9>C{i=Qx@clFnUze7+ljrIoz%xwzCk`GnZgYkyU$HF zAiM2)9AF;WaG@(*jQHj!)3E5$e*x&=b_gODE=)Eka|QB?l1;Uta84E{>8(6S6@xv9 zmLzHZ9>hvT$mREcc&RM+gAVOS|A&|9TIF%{e|Wi+X`hsbzamM8Nwrp(r-VFP$kwb( zHh7FenH*RJ#u>~*HDS|MCzVG`%o-uv>bOt(r8dlLt<<$T$i%m=OVa64FymfSuNNL$ z>7Ky+Z4e$>Va;Km^0*OoH|p+m0X7Lgtz?KH(dH!GFEobQi(EAtY~+?2MMkt+leEav zXPf2>-Me@>wp~a+Bt--C+*EINClTbcadAGHl4nBpqE{|=YW_g~O3h4n=Z z(1$;iCnP64nWd>UA7P zXm3#$Z)kemw61UJuDpArv+qZ5X$)Cbn75ORQCfJEYJu)M8iz%$;oglohnp#f=Dm8p z1oM8fp%$%uAX1{a4$3@AALU^qXmr>vysGu;Q2 z72@-H!djrd=p9~TzSON?>dL%2rQZ1}*`O3qE~tK;wD50R{u|vBZi8m>TRk8!IEqmD z-{~gYKDDmjC+XC;h})?!B>zLab%lbsvOnrFho`Lkq*;o~?DMl8jClm^Wc3#qGB}6G zYSDK6nly1b2L7g(g{{;*aCL;in%0qq+F`)lO%an(1`PzZ2Zxx*(FT=c3sVeZ3@QMK zXrL!MR=0&TP$t8126cA}H4KcbWM#(dCi<0$H^HD8Koc~WsOunLVj?CPDc_;)$WJyb zNiR+@7(i)R(OE`kszHlJ3xjwpbf+0~82ZuBx|L|UK_%Buotha2SGpgLH9YBjq`%NQ zQ+Fr?T(en5MgcIg(QH|eew;u}yyxiV#d5Y-3FjIO3V>;yXEX?oP3Oy8`oRxSTd_dq zsmcqDJKJ3Nip4yPMHYH-k*=g?xL7kRl$OK=uKrS^QRx$jtCz)95UOao9xYC0uFyQ9 zjD32lw}gqT>@8uRR_PL)53I;)J>UA{yhhWG74X_xSqbzy%{))wdQGh=EN(F99mvMu z%~l7Vrfh_q<)h9`#$6$eH8hWdBgHk^Y&6wSEnV3yMy6Kmzty<2w@^V|dz+C0hw%Q} zw__E2S!BPM+kw#$xxiQP6+C)@ zL%L5-I3FmlVSla6)7t4CFqlYG@Ig5elrUs>N;vLM*BVo#yTU_yh4MjnC0jl$q6=B= zsU1 z6C!0cd0xj%(ndOns`J@$gnNiFW{Py6(Z-sH`~U^rZe^T;rO$ZP0#5G7@$W24)6E zkuXkhGfhTa%7vL_){GMB+Gm?-{y5oOILB;IU_J=v#xSVNi{U6+ny+CdycX!LXueQ` z1-EUH1`&)dHZwv{a@0$7!Gk8OEY)N@IH=2X2e@|2HHcK&3JrEXr-HXxLFXE?uMDe7I1z=lx+x~JPE!b++Z;G22 zOYNKEHrZ197TvWRbZ?C(R>73F>4MMre0y97+V1dpb?=fva5URaq26xdFXg|D6+-Ihx0NLDc(gTt+frz=Q?SPpsE#yodHSbgW<7OW{h)R2$ zkS=vsF(=I?G|-4*;gnFod}~admhpihH)mx0SSLIaH?9qLR)%ADHQcj8y%vU?>s^gp zF}lC`yxEXLd?9hq1=9jtDqQ3*o()_w%^WVBFSA$;DpyQ9=R}AKuCfoaV7PR?Mx>8K z`*kx7KaV!ayYIpLv2j0Ws}_`HdC2ncXWf#h8nLcCy_SxDB4 zX5x{T074{R2KWjm>Gu@J7`YcG@Bg6 zt#R=!Gc6eh4EwfeIgpz09kKx>?39Z^vm?*f-z9|@^&Z=SllM&ntv@hRV7giknm;s6 z9)gb`S6bzNY^ELkVB-@FVnaS<53wAdnYQClkAH6BT3=9^&N!pq^RQWBvgj)9__Ny#jskyvzBPLWr;c1WBq;I7#`9s zRaw2g7M|dgRhH7}6f~E8pY;#FN2^1=pKP5!VXN-k9jVpgtrq{JDO%9gHJDzt#WU#*|gHLe7_e7=ivuUi=?0A09Y)hmvh*6q6DmSw9W z^PE-pb_{!7E*74b%?I!TR~$GeD!*vm&1^?)<9LDbl4XVTI$pL+{=8z@%JY4d0KM4P zESs0!xzg)aBesQBA?WBTzkz-@Px&{w9ey6>rxZH;8;ZBMG#pQD?%P&FY#!ZrEQXrm z#m1hW47mI0Oifo0;~_7AOeh)aEHhmU}P^YgLw$J=BcItW1xRd(op zV&NHEovi9Q?)ax5A0cq9d?up`SnBdWSLn|27cm-{49EWxOri73PQ?wPm>-gV+UtRcKn!^qHL5P*|o#h`D*|1#tNuYAB(($u21L_wAM3rBy zJMk9^^s-18|NUm&#Z%_ip+?w!@jky&hZ$-2L9gy?kM1xVnAM{cs>4j+oIn0C*T+6#-C_oqo8WD5jvD6*_eGX4B^eY zlkGGvKc#AloyMiQfK!DsFQcZ}T=giZPS-$T2FHpY0pfCRCMx7l$Y$BF`Ru&SHAY_qk$rHfEHsW+ndI{KxDkbd1 zQu`jq8LkZqP8Xb02;4HeQArq+4DNE8~5ImB611ZltciLtM0o;X+ z^EqUY-)-aJf(z@1D3j$qwq5XH5Z%3YLxF#ELgYRhuNivagGmXwaa`K(w|U`;iyK#! z4^ZTw2P5zPgA^BBJK>K;?thvx=_5>TK12xIc+H2|6gnPFk6?OkGz_BNebmnII=$76 z@GSF~ouQMf3dij~)J;e~+&p17vM2r=luD804D|i_2bZ(BhTc0o d{n6 { + it('load wasm and evaluate message', async () => { + const handle = await AoLoader(wasmBinary, { format: 'wasm64-unknown-emscripten' }) + const mainResult = await handle(null, + { + Owner: 'tom', + Target: 'FOO', + Tags: [ + { name: 'Action', value: 'echo' } + ], + Data: 'Hello World' + }, + { + Process: { Id: 'ctr-id-456', Tags: [] } + } + ) + + assert.ok(mainResult.Memory) + assert.ok(mainResult.hasOwnProperty('Messages')) + assert.ok(mainResult.hasOwnProperty('Spawns')) + assert.ok(mainResult.hasOwnProperty('Error')) + assert.equal(mainResult.Output, 'Hello World') + // assert.equal(mainResult.GasUsed, 463918939) + assert.ok(true) + }) + + it('should use separately instantiated WebAssembly.Instance', async () => { + /** + * Non-blocking! + */ + const wasmModuleP = WebAssembly.compileStreaming( + /** + * Could just be a fetch call result, but demonstrating + * that any Response will do + */ + new Response( + Readable.toWeb(createReadStream('./test/process/process.wasm')), + { headers: { 'Content-Type': 'application/wasm' } } + ) + ) + + const handle = await AoLoader((info, receiveInstance) => { + assert.ok(info) + assert.ok(receiveInstance) + wasmModuleP + /** + * Non-Blocking + */ + .then((mod) => WebAssembly.instantiate(mod, info)) + .then((instance) => receiveInstance(instance)) + }, { format: 'wasm32-unknown-emscripten2' }) + const result = await handle(null, + { Owner: 'tom', Target: '1', Tags: [{ name: 'Action', value: 'inc' }], Data: '' }, + { Process: { Id: '1', Tags: [] } } + ) + + assert.equal(result.Output, 1) + + const result2 = await handle(result.Memory, + { Owner: 'tom', Target: '1', Tags: [{ name: 'Action', value: 'inc' }], Data: '' }, + { Process: { Id: '1', Tags: [] } } + ) + assert.equal(result2.Output, 2) + }) + + it('should load previous memory', async () => { + const handle = await AoLoader(wasmBinary, { format: 'wasm64-unknown-emscripten' }) + const result = await handle(null, + { Owner: 'tom', Target: '1', Tags: [{ name: 'Action', value: 'inc' }], Data: '' }, + { Process: { Id: '1', Tags: [] } } + ) + assert.equal(result.Output, 1) + // assert.equal(result.GasUsed, 460321799) + + const result2 = await handle(result.Memory, + { Owner: 'tom', Target: '1', Tags: [{ name: 'Action', value: 'inc' }], Data: '' }, + { Process: { Id: '1', Tags: [] } } + ) + assert.equal(result2.Output, 2) + // assert.equal(result2.GasUsed, 503515860) + assert.ok(true) + }) + + it.skip('should refill the gas on every invocation', async () => { + const handle = await AoLoader(wasmBinary, { format: 'wasm64-unknown-emscripten' }) + + const result = await handle(null, + { Owner: 'tom', Target: '1', Tags: [{ name: 'Action', value: 'inc' }], Data: '' }, + { Process: { Id: '1', Tags: [] } } + ) + + const result2 = await handle(null, + { Owner: 'tom', Target: '1', Tags: [{ name: 'Action', value: 'inc' }], Data: '' }, + { Process: { Id: '1', Tags: [] } } + ) + + /** + * Some setup done by WASM consumes some ops, so the amounts won't quite match, + * but they should be within ~75k of each other, effectively meaning the gas is not + * "stacking" and being refilled every time + */ + assert.ok(Math.abs(result.GasUsed - result2.GasUsed) < 600000) + }) + + it.skip('should run out of gas', async () => { + const handle = await AoLoader(wasmBinary, { format: 'wasm64-unknown-emscripten', computeLimit: 9_000_000_000 }) + try { + await handle(null, + { Owner: 'tom', Target: '1', Tags: [{ name: 'Action', value: 'foo' }], Data: '' }, + { Process: { Id: '1', Tags: [] } } + ) + } catch (e) { + assert.equal(e.message, 'out of gas!') + } + + // console.log(result.GasUsed) + assert.ok(true) + }) + + it.skip('should resize the initial heap to accomodate the larger incoming buffer', async () => { + const wasmBinary = fs.readFileSync('./test/aos/process.wasm') + + const handle = await AoLoader(wasmBinary, { format: 'wasm64-unknown-emscripten', computeLimit: 9_000_000_000_000 }) + const mainResult = handle(null, + { + Owner: 'tom', + Target: 'FOO', + Tags: [ + { name: 'Action', value: 'Eval' } + ], + Module: '1234', + 'Block-Height': '1234', + Id: '1234', + Data: ` + Data = {} + for i = 1, 100000 do + table.insert(Data, "Hello") + end + ` + }, + { + Process: { Owner: 'tom', Id: 'ctr-id-456', Tags: [{ name: 'Module', value: '1234' }], Module: '1234', 'Block-Height': '1234' } + } + ) + + assert.ok(mainResult.Memory) + assert.ok(mainResult.hasOwnProperty('Messages')) + assert.ok(mainResult.hasOwnProperty('Spawns')) + assert.ok(mainResult.hasOwnProperty('Error')) + // assert.equal(mainResult.Output, 'Hello World') + // assert.equal(mainResult.GasUsed, 463918939) + assert.ok(true) + + const nextHandle = await AoLoader(wasmBinary, { format: 'wasm64-unknown-emscripten' }) + const nextResult = nextHandle(mainResult.Memory, + { + Owner: 'tom', + Target: 'FOO', + Tags: [ + { name: 'Action', value: 'Eval' } + ], + Data: '#Data' + }, + { + Process: { Id: 'ctr-id-456', Tags: [] } + } + ) + assert.ok(nextResult.hasOwnProperty('Output')) + assert.equal(nextResult.Output.data.output, 100000) + }) + + it('should get deterministic date', async () => { + const handle = await AoLoader(wasmBinary, { format: 'wasm64-unknown-emscripten' }) + + const result = await handle(null, + { Owner: 'tom', Target: '1', Tags: [{ name: 'Action', value: 'Date' }], Data: '' }, + { Process: { Id: '1', Tags: [] } } + ) + + assert.equal(result.Output, '1970-01-01') + + const result2 = await handle(null, + { Owner: 'tom', Target: '1', Tags: [{ name: 'Action', value: 'Date' }], Data: '' }, + { Process: { Id: '1', Tags: [] } } + ) + + assert.equal(result2.Output, '1970-01-01') + + // console.log(result.GasUsed) + assert.ok(true) + }) + + it('should get deterministic random numbers', async () => { + const handle = await AoLoader(wasmBinary, { format: 'wasm64-unknown-emscripten' }) + + const result = await handle(null, + { Owner: 'tom', Target: '1', Tags: [{ name: 'Action', value: 'Random' }], Data: '' }, + { Process: { Id: '1', Tags: [] } } + ) + + assert.equal(result.Output, 0.5) + + const result2 = await handle(null, + { Owner: 'tom', Target: '1', Tags: [{ name: 'Action', value: 'Random' }], Data: '' }, + { Process: { Id: '1', Tags: [] } } + ) + + assert.equal(result2.Output, 0.5) + + // console.log(result.GasUsed) + assert.ok(true) + }) + + it('should not list files', async () => { + const handle = await AoLoader(wasmBinary, { format: 'wasm64-unknown-emscripten' }) + try { + // eslint-disable-next-line + const result = await handle(null, + { Owner: 'tom', Target: '1', Tags: [{ name: 'Action', value: 'Directory' }], Data: '' }, + { Process: { Id: '1', Tags: [] } } + ) + } catch (e) { + assert.equal(e, '[string ".process"]:47: \'popen\' not supported') + assert.ok(true) + } + + assert.ok(true) + }) +}) From 57298d6706b63e9ae57878c38e767714ec36d8ac Mon Sep 17 00:00:00 2001 From: Tom Wilson Date: Tue, 9 Apr 2024 12:57:37 +0000 Subject: [PATCH 2/5] feat: wasm64 working with no metering --- .../src/formats/wasm64-unknown-emscripten.cjs | 1 + loader/test/aos64/process.wasm | Bin 0 -> 580033 bytes loader/test/wasm64.test.js | 7 ++++--- 3 files changed, 5 insertions(+), 3 deletions(-) create mode 100755 loader/test/aos64/process.wasm diff --git a/loader/src/formats/wasm64-unknown-emscripten.cjs b/loader/src/formats/wasm64-unknown-emscripten.cjs index bc7cf3fd5..44cb10050 100644 --- a/loader/src/formats/wasm64-unknown-emscripten.cjs +++ b/loader/src/formats/wasm64-unknown-emscripten.cjs @@ -893,6 +893,7 @@ const Module = (() => { var info = { 'env': wasmImports, 'wasi_snapshot_preview1': wasmImports, + 'metering': { usegas: function (gas) { Module.gas.use(gas); if (Module.gas.isEmpty()) throw Error('out of gas!') } } }; // Load the wasm module and create an instance of using native support in the JS engine. // handle a generated wasm instance, receiving its exports and diff --git a/loader/test/aos64/process.wasm b/loader/test/aos64/process.wasm new file mode 100755 index 0000000000000000000000000000000000000000..37f4cfce9dab513d1af66095f02da24c9ed9c2ac GIT binary patch literal 580033 zcmdp<37{QCmG`^4``&loyD!Nlfso_@*1bdw8YC*R37GB~AgH6Lpv=toeE~5Jgf)xE z%)Bhf4uXIi?g1AN5=BHs5s3nd3W&RoI)mekd_xqpf?%Ve*fgpaL`d;$x z?e3~mr%s(ZTb-(oj$3nzi=xQAu5s+KZoS)ZY`lJbbZoMIgTANh`KdnFbDK;1*uY0~ z{rCoccpj;S>bVWkv5_0+Kb1EGAjyURYeRtLRDpZ?pe_E=EHEjpN)!T)9;lsA%Ie4V zoMvc(?}lUeO39Rx23Jjv2lUqiSVhM}ccNn(6cX^J3R}w!wN`epsIQ)>wlrPyuTSxRnGRUjL-W zqetlVxY1se8xO@*tLUX6T(zcJcHvZqKkJW;$Mu!cftK;OI-87-Z{V&5guffCux?O8 z5AC*t#Ibc$btq<4Y(zt&1}IR6;TPu=1Re@s=o8=U2dG92;j?~S6o0F+YqH|hGaARe zpYnGpK z+Nr0lJ?+#JkB>%GZ1&_*p?+ui@-=_E=J?}IK6&|Rr>{8mxV6y?mEWO%`(?+Uy7uIK z_laie{;dA}6HhyS?a9&1xvw~G&56s`oO;~pYfdt!!p{)*Kn zu3Zt$nx@1MC04IE?xoWf5QyVXK5fm4sH3K5_M3j`%TIq=w8J!TccAQvt4}+1`I-~| zZpE7A&?K5YP0@B)bX$dl=b9BOP6~t>S$@h%8a)lo9HBL1`N^k2zVe>ay^-aAbIQPt z*?rt!e(K35o_Z2=-f;pwSD*6I6IVx(?$(O0W=u|5Q4Y)O`e-w5Yge2SYV6o=Kr}6y zm?dDt%h&$h8W;nFchdFT8Y`?`AtEh5Va0K$2RQTV4Xiz3HOzGKX{Y|p%2Q5r;+uh{}doNh9w{y{wJrehnVYln9Zmyf-77aUoyc=$G$L4gqvxmE5?x|_F)9E~I zpU&LbuF)9o?&=map5C3^jTV69>}d8b^Y>j4?Y0XD@43s)V`H-y&t3qG1q)_7H+y*4 z?Y*xX-fzk7`|m$?z=4aq-Lc)fdyhFD?(UxW4CfBmQ)PEO$kEyyP@v7dBk*g?b#vz~ zp8Lec+?^T=crbTv)b-7|2S4TMPiPFgIkWdZrXI zpY6QgeaSw4m$7Fq-PO#nc@19#M4 z%~{Nc{kZ6mgJvHx{KU>*|F2ySdhVR)FP1HvlhICV-rPO@_i%JrbMD+d7Z1537B5a3 z9X~$?zAlLLa~OwAE{(U7IHycj`+| zUJ>nge;$`I8<#31 zaY*VfH0MoObH%AIjlS3%wl-dP+!-sPFEvN);sq<#(5V&CmzyJYot=z0jlR;{WlAu| zzkD?Uac%U~=J1t?i!#^#oa^nr@Ch%u++E?`;6CWCim#6UEBRhTOg@<0ntV99Ir(UEOY*VgEwCz9KfJCZw-PbHsD?n>@XzLNY?^7Z7N zE>PdBAkrB|o#NZ*;hD}8r*O?qwmp7gr(`gC); zC4F!DzVwFl!|9Fb2hy9;52hbVKbC$Z{b+hidTaXe^tNFwzq>7D7P(od&% zrJqSZm)@P;lir(tKD{sfLi)w@OX-)>ucTj1FG=2$d??wPd@lL-HE{0)6b?C zHZE#h+_)ki<6LsT!NjLGaPu6u)pDwhUKK0RliRZ)Zm(0tfZo@bBOg3Hr z20c}!CijMX(+@qr+sa&b*th)fs_sa<)Q=oGBkEjuwhFZ=H0novd%s#$?#=Ks27t}< zGdph=*afOF%g-8k+Q~P)`y6W)kURK}-=TAl6{hTLKYO6;oNPmPM?c5!*m=L9xl`8c z&hwNWGp~B@ZewP90yJk^$ zH@~ajt+PeY^ULq7YCjHAJ#N2b(Wp}wy!QhYyFT4B@!g*9`d;T#CGxxb-3Ll7RH=F0 z$NPo;@%>VJ_&o+nJt2#`i|EUqAoE1pdXj&FU*z}nPxMdnPwITfy1kh0EoL0@Z}j`O z7iFL9_wrBf_it~%_Wg|xz&I@jjlayza+}PXZ**dIJl^bm?Z zllx2kA^w?uX@P78_-wzV!-L%C0~P)Zr2gFhng8>El!)Ew9!mK`3v_D3c^J13<91u6 z7IhD2iY(*SvhnT_{)mO3wlVUD&uTxgaMf@zom@4o+y+gxKi2)eR==emWM0j+*#)OE%Wh39zpB~Np!?U_W`E_sLxlym%VuXf$Ln1`7 zqw~-!sVM=%h)aa$7MEQnG>^o;%Ds}@4_q$ zNOTx;6B!7NFWaaYs+AY8D_4GqOQTK8A zJ6@Y~z2D70&iesST|o8njptUNc9&4`yVpT2%r{Zoy?FFPK=Wpxdw72Ap-@6WJNq*n$6{M%+ zXMMUaX6lrB8ld*c-*82R)YJXbkTp-QgW5O0|Dp@a?(LV~+U)KxS>yK~K9hm?2 zjTNM4_ybI`)JE^1eADF>q=WN2N4tmkgZ#n%kO4@~1k%#{XBSqGG6@`?)p5%62i{si z`m_8u`ygs^6E^kU9SWqw@(cTr4)=%p!~EfONXzmEzF0vzBELE9KFcrjNBCzA;Ph-D zJqMe%!s##kv;A}YU(_KzH^1R)6{P3oH~H?7{<;2n{>TAH&j->A^4l(`AidB(-@m}W zuny^{{DEIqkdDsZvP1Vp{wRO6f6)M>7X#^-{8xRP{?fnLALIYB4(YG*%PzdA9J{~H zKfP!7fBC=if9?O*0Hps7r2muus86Tm{(t-bG;>X2TRZ~RaN>2LCfy4@4}%lzN?69yoi2&9$yZ5LN`I?12t zSNfCckWS7we!YTpO1}9l*FDvr>`(Eh4uCohP^ag={9pxYl|Rj&?pM`8tFL} z*5nsm=DKVBYQM&>9RT%mK%J3){KFNfSNNCvGyE&+pw7&<{`;#+P=A|$>y57acm7QO zxBl-2K>avA)e#%`_HXFp6l|rJhgkC^XE8!uJh*&LOowlFL3!gZm7C@q4VcE ze}VHC4nVyKfA8iB>cv3)X4HL^^A|aPvGcDQ1bd0VUh4AO&ac3}+WAYIzts6x4}iVQ z<(ppf>azcryZjfQiMm%ff0^@_JAcI>*w+Z`YhC`+vnsH!bN)5Xzt;KJ4S;<;V82~~ zeS^ziRVlYgYUl0 z`L{U#R_EU~2=(oPy2<7L(}#MM^KW;4lk-;%K)u=_=`Jft@D7*1a!L1{&R^~PJDh*# zAk=pW>bqV3{YxqeT;u$^oPW3T*9<_tmhrl`g8Cllu}k+l=dX4CJPNx# zmI~@EF8^ku`!VM~>ijLve{2xyt%CY-m%qP1yKZy-R_8zN{A~kJw?fxXR8T+R^6MYh z{iO3-o&SXMpB#jGyP)1dk-jjw)A`$-zr*=E2cUimO5R^V{j|$Jv7~#K^Ph75)6U;D z2=z09`dOEMwJ%pb=lo}!|E%+$8-RK@xL$rmN!NQ^{@W*Z?{)re=kIa;-a)9J7u5S) zetRG47o7jR^Y=Obg#oBv1nS2ss9$pVXZGxV+4(Oz|0U_7 z{v)_-=|||7YjFI{@`x;H+CK zsQ>EnAMV}#p7a0W{J%Q?y+Nq|CaB*>X7zFXcjy1j`R_ab?*mYO;PT6UTtWSz%g=S) zA36U6=YQz@j|QRsSWtiB@(26;`XA2!*!iD0{~rTT9{|^%R8W8F@~`aL{ZHo~aQ>&x z|K}jop9$)JL8Lwfe(wCwoc}N9e?9>97tr-puPy2NOP7Cfe)mD=f8qQuoquo;>VFIB z|G50-z8v_K^Z)Jq|2Y4v0jR%5bG@sA`Wu&{?SJe1ubuym^S>R0`jDV*jPnc6t2pbd z*gxd_#@L?~*Y)8md zpBMY{2cTXM=Nqr9pk5f~n|JG86#ENee_`w|8iabWpuQ^3&+F^0OJaX<>|Yi8O9r4` z8s|6MRY84qEJy0H*k2m^SI7RcL8zAt>J@SRralE;6Z^|!e?{zHGXV9qalZAw3hL|P z{Qeo;*T?>~v436cUq1--4T5@QoNsz%MS(ZQ{tdCeGWKsAfchp1{bL37&2j$oxcipa zzbW=_j{RE(p}tj6-xlZJ>+|c|WB=CJzb*D}AAq_EsNboeUIpgO?$xp16#J`UPjtC% z{J%p`-x=p;U0vb&uGqgL_V0}Sy9S`Xn?C?t5duIrdv(|K35U?-SG;;{47&XT3l6 z?~DBnv48&n)EnW~O|L8G)(7JJ+Iyq!O|ic*_8*A-O@m-RD6k)j^WXNtemM3YjQxjV z|KS0!H^;d1ABldivA;K7DDp=B?s!)F@??k9qB4%aZV2Xvh>gC- z#l0e8lK?0MPP(p3__hGjP{d}QZ+N$Fydxj9+)-?IUbpF+oy|tzA>UXO@7Qg5LNg~> zlxBF}xD`r`9KsbX_Gc%m}< zCD&E~WrCWsb4V0^qV62UV>gyO6U7+}?PX$n8R58u{+5 z_Vw{_LclLspIV$f3{NoxQQqk~A9=T~8~b7$p_zr-K@aSSnhiuL8{BKsO7jKXA?Rmg zu&O&8FO8S_VHlIzBR=*c)F#UHXanutS%8}*KL2oEZiInRe7%Z*Pl~TIC?zNF2pT&E zG(c)6u6E+8?PC#ZE*;;QTRV?4KJyA<&7IZ0s4=F62@y#V)9`=D7ABfp2ObU!6?&!x zi@@iPI0^~T0u579u@D18OoO3H2!z-pQOD2jg$Gt4!$QPi-JO7AYY?lT$j%x5Mcq0RceBTH;Ut6*TnB8(ewFRD$JA)@HphoT~@+V!qeFTbT|L*o2!yN zuO*1EeiEA89n2TzSN4lM-tVqxVdwJ#Rv@$o6XFRJT;%sqkg%957E9feM^DuHLlIWD zn@FZwH40n%x(JMk+Q*v#vrcOmapsnBKi<+ya(6az*{Nw0CDh{SVQMM=?L!YeG;}s&9M(XS zWGO^9P)#89TI0RpJrmGD73QsRKg^%v+8M-N10>a6BcC@ODpIG#MOn?aC}9^J7*SYo z-D{{$Gsh%=0(|rkXfK!%wOOG$62xjajQ3#2J_gN+7=-rQ?J?)p3xRn({%m!OG^E*& zZyuo((dXz$DTpioqqOd3ahu|MCil7a6IH-v8&+mt|5<*7=qYOQ$J4fruy-rFuI*iW z=ZOzb9~TF-k8?}x;EnGT`Xeq40r z(notmBhLl{#yLNIybGZ~BsQ9XT&&{jx9D2^1q}{`n>HtrlK&4{Y4T){S~QnF22 zA5!D74xE!t;2d#a$voAwiOi!1HE4{V8tTd7oy0uGR_Qd%lLqEV;Rc4MkZ^{yF%DC! z){Mj`*nxBukdCv0-3@7zlrUiVY$DQnP=luV70^a)PDa~0lo;CaAkW7q`6Qs-Xd~9j z@iA#?oU5wvtHAFSMcLM9m8>vu^gIxqxILVuc2~7~P+>SrLMb|#cHUtM!GuN$Ui@Jb zBLHuI-&G@SA_+xYmlybj(+zww#i%EbV#w7*4_kUN?d-|J4!L?7I%D&`);S+!Wg#R# z>tcs)Hv)EJbrQ-3{>Dzj{HS#`km9Hr4!hM#)fuD^iE&^MCjmAf67`^hSV=-FXM#@s zHEAccKY^jU)*iuyN;0GSvJDKOQE1kxZh|@0UcjJi&Xe=<%YIo(@Notf$n7tvtWkAfKk1efH#GM=Nt(#|$xjpU85A z0pP^WXJvHDE~?q8u6^&H#z@Xum91Nu#YeQ?@u#3K8NT1Y#>`-bpe9Sx(A9;I>9fFW zlhtHl8b*r3Iplj^IGTeqc%92?jXL+0{0GzZ2Pv&fL}`uEsA<%I6g~zLu~CZnDa3#E zY@+zrgBmnB(UOSGspgpMwq9d`4k#sJqqGi$bbpWx?ZT|7(;|4CHCt>-v!<}c;z?Rd z4+4FKQ(9mfV{w>f9y^r|0Au@{1lTls)d)jd4s0@OWR^CJW_zTQTCr({Vx_(>_Tn{Wk?C zRL>@I!ereTC^!`-*pr8qwuW?&wK6#{WS^8o2PDc&c8ni1kn0nKZ_lYjjtSY)kjRdS zMJEeopk|XNDWXD&DwfcIW&`@^Pl{r53W~wrBFO;7vZ(VpG1$Y>Oi?INwW3+n{ulR0 zZg3ToF_>L5<2Vu{5l_k@GJi!U1vf5A;f!EA4>$;QLuKlzQ+a<=Or7f4#HphPbs<`K zhSR%P59=m`UNQ+xw3!B<3AaaW0$farBWDl*)MQ~rEI3S^Pe`^<0kJ|XXkPAKC@ItV zfH_qaDay#o|64+oN_4y9D{_%d4u~E>GofBvS!yoKQ=+yxz9ve$2nn16NMhOH5urQX zirR0D|HwI>AvfPB@I)|PpSdaRe>ws9Vm1r@>lXIj|hVhsqF7u>AcqrLd9CB;(Xk>KHM<&1Szky1wD{-+ZwG_ z6Lr{tg^#BY>@jk#{r7aCoCfqOG|$X0I$N|_AmIc_A$?n^;-l82lhh0$7Aew-NYgjZ zl7ouTqfbiHbdglkVcLEkXihe8iDhBoJVGEfTPALQD0Zw8E~Uj-^j5D3=|RYBZnq$H z+QBW*GE>X9fyAr2^)%yKHK~U=ycC!4hPnM$d15x(wpN&P(&S^U*LBXxo)6 z3Nr`0%_4Jmnt%%t&(6nGx+l}Bh%bwkWzMKg1#_@>tHr$v(;ht5v3VfM88^uDuJe8< z%eaSyK!Cy4L;*T?t3{)W$=CeMahaR5R<%DG_oLCqhQ<0rJvKXaI4l7bSZ>O2SoLh8 zm8l1HD>DRvw-LMyf&9sfS4AK{kuhnOh1SqpSs=4nhQ8kb_dVpp@)106%)V=8tH z-hs%cg_Eh-m6_dVSJJ^$nva^OF4#4$*cDRqJHW13gK3}S|MZ$Et>a+T8=X4MqppuSeZXlb4ixvQr96i#RL>~|Ii@idV;xJql;3T#RCvrcV{ z#FU1^g9MmXzN$hc56@OSMnJZ)Jn#qYbsGT?Z^hgVOr?uT)@jBT*9C)U$=&P-iBOcn z`!&lZTRBFRw5}zrkz&!L9)SG)1a!*~>3|C^6dpdH>yym1zZq)fw6HV;q)p(D(lj#t zt2N<48db?P(5Q<_g=9r^(}`p!8ryVkHaj3_k6wy8l4-&$7V$%~fz$;Nqh~2Rs6-L7 zRI$8Z*Bb>xsug-qwwBws_BnLgDf$PkvDJ6$ziF;ntFZ9@ekE~fb9^*Q@pKU|4)0@u#MALF4u=1^?CURczI-D?Z;Ygx(a!09kIOQAN6#gz13onx9@eOBkdG z(OTAoiubTht9%KBGPmjp6Rz_vIX2dzuA)BROk@z*B@0aeDw*Y~`B<=m3}CY;_}G?3 z!G!WL;F#w31RK~I$&ZyCY)#WCC>6E8(`O91Qib9J9rb%#3&Rk_$T(}z9JX#1*%=dx zlxom;Iwz^C|GaJ-rxk;16ei|&1=gQN9~S1Zh-&t080XFXb-6!IgY}VGPj$X*4DzMv z3zp7GzEqys1inn`d`YTM#g~?oHjOT=__FZ`Ot449kYDcGx__L49^SLbgXHey$BuVC z6g)AT7@FZFB~9bjtP)kqq64E5_+NE<@!${!&hHPQ=J$jlOzJ~uGd%_a1Y-NTzWV&* zoCBKC5=p`Grt6&#imubpY9hN&L8}3FFKBhT(ds9E@^)Zp0zN|4oQBAjDM|7`DO08( za$^dHG$Pk5$@U$6`8@56|AY3v%&e=XEFmV_?q+e!f+nb46|#cU*?&^(i)?`qdfQ~L z$!oNIKjl)P8B4jeVrD~_y1PzxMQK3_97*^`&TzjQxXCuCSs;ZOA*YjeurP1=qnF!8 z^B`X^>rA-n$hNqQ#B8@{o+eS&q=qN)8^so0+jzTUt( z#v+D`ZF8KN(ekamU7r2qp=6b|B;4&*XPwp0a5)8r%keA={Rf4@BRafD)iWBNIJ}7C z`tUZ2Jv>b;|H5TY+B?ES+5y8K=vlDIJt1MaV1Xs;dX1tytferg1D|h{%GPe>KfdXl zk|dm6cH|goRIe8~dd*@vCrlq@j_d3(b-(U{5vF3Yd5tT;`H;sWXUEGZDy~&Ro?g@| zTpe5Ep(Y)&RXUuTcN?FB(~`1}&Gx~uwn1i2saH1I><|ipu1|&KR*Ku?HqTl68L= zkt(7kDVi9?bZ1NigdGMWZ0Tx*a)BC?Ln}o+sN()|MjCKh6yN03qNV`nus9*HD89M4 zm!YPzMb8@BmpkE^5ES_WvPWk_hqc=fvh!QGB#PQU>^qs$YWP3!=z}Oqj~FMIr*nhG z6ap1@xaZxNBsm#OFDE7@K0(OD+S>$YcfO$V@|6lHu9dI)Dl=?i%gQ~A-B?&-%Ee^O z`7oCzqzSdZ^(R1LQJ2~HMVl}sX-z*qE)qQ@pP@Odji^)bqWB)QpKJOPLcgyZ7(fvc z`*hgh78cCw5T~OfQfSe5`|W*;G%1GC_A(j|6hV~DAH1bf3235Y z0whE)y9ZS|AwNNyqD!0$QKN9C*8~2U0ju$vVsjFYr5ox)hbU@apJKCU^#54bE6M?y za(G-Ao|4YR@WA=%vE+}$1o;pB(Spv42G%1RP}f8j)EgK@1JT24lYBv=(n#sSxv-_u zJUZ>}QiF_Da5ZW`5c0+c!6TPh+2;dHhRK6Jam+0QLP~JIKTY+=jE&mvTJ~Ot;ji;n zosW20>xm3uE$IZ?AT4c!q8BcEc)vU)brD%XR$RgM87>QBEm^{^@CvQCooG$_$HvVjlrm7D_;FWPc!CPn+) zw93^8E>Y1_g&)cYb+d+BVdLX}Ox$Ix*;8&Dte#Em=`bI9VE=+&A7Tsm15V^hrXU zkHW(0=oU9R0S@pEnXvZ%bXh??zF5?TIkLx!70n=aFi`l4y$?{D~hU+`v z$wIkS5$(zm$z0uk-ygtsz>Q(Ef3IooC31i)HyK0{3PBpwQweMCkAo(a^AqEUTpe5= z*`_!vMLOS}$(izt@Wnd66fV6Gg;4Ks3K-ieqt2YRNz2BJw4xf5yMXJdE`S9*B!ceW zi>wP8tO@s$6VpK3wq61!x#p(=ZfPJXad#5EbOHxY4lI( z#m||c##6I!!e0OJE(hLKrVBf_Xn^{tFQIs8GldI|xp&1kef(xc#G&KA~C(bOz6!(zb z-c-TkR!Q|Dt0007lZf;E$2nX|@r&Yk8Vf)q1=Fg@@GE;O>b0|*Hmsca#G$7BMB$_U zH#~98)NUqm!+46;oAQFtEiD=HLNMR3U%WW~;0G!$8s%R9l3-N+gDPCponf8Ie^lL( zAfDIb{ShbhMrEUq9y!(<4ROyIi{eGS_P+6A7@qHo_l=k2-@dVIr*`y7T2EbGls?>O#E(~BESuiehe zH90ur#GjwX=P84;i!6;jh%JKm41P1rIHOH0>Wmy1?Nd7_7f+gX=AiG z)EXUaw?{`uM@HK@$JC8-d{8_4+m&1RI@Hc*^U-YQbNFbq^OTRYozLZiRMrL`aXa6U z4_%niHaO8 z!cK;Am7`_ZBy~J7G%d5-K9Dqk;1oqOR$;RgD@XQ=TrDQ!J~75tScx?sLSjFp~%Nt$i&={1bs(B>D8bz3qWMzWYk&zeEJc;FEnW%V&w2JWNafiRrSJY!|{ z%8h5P>dUy{E!)8Fg|N-sGXG15cCrz%CX{tiECzltv0q8^_M_t zjQOzoWL^!M$JkpKVi@LSNto2+B-PMN)MCLUDMUi4jiT(k5o$u#6_E&AI7{uUuD4uY z%G6oyynm6uyW&b%?I)G$?K~jCFa~obwWfvdF-E0HU8b@8fvfs$g#K#@jFXpA+pW+% zqsy9tb$K{+*LL`q-38+y9tG-k=S~DQ5?H=Q%1P8SAHEMxvIzPCPAka;&2XDann}mz zpYE$RW;_Os5s>orev6U=C1J<*i;0dGR-9kgD|{WAah*?C=$5QeTE@900=MZ6G>tyx_`~?GZ+d2A3hOvl12p68#t|actg0v(7HVt2*z_w=mtbS*pfT zU7g}5mqA;F6f?(t{lcvk`Qpy)=Kq;S^yL~_(*A)<6f&zeecd0`#)?kr1TBq*_GLMi z2m3q7ux|6hwkzlf#>#3uq1!-2%YNo!S#L<{6A{-Z$5e)1Vb|F_O%&49A%CTDsacX_ z&wPgS;yakebQu#u%eE|mQ9g9|noFtJo#4X!xiL0Y9yl>$`D z+LBYuoUc|XsTCr!BJ;HAn~+HbYg?4$hG(u=fh9T-ch1#FMD0B(Dpqj`mVT_qnfIWEtY%xPM zMFQaBcmoEJnbp!57_v~QHC`TXFsAGVQ|z5;5=Z&ZUt9K|KW)eRjrGL=O~F<{ATVVh zNAW!l0+yZ?Zg7;p?V`y*OWw3X9HN*%_^N&(7^RdMwZ_HZ6$NSEPO#7hLz|d&j!O%U zlbIEKappqEcUSpI9G4bT3_C9;a1=&~y}n;enwnrSNAiYcX6=~W8lpxajHP)Ni}3Yd z?+#VLyWrHUwJJ-_Sk+6Qhcho>$j5RX(#%5p%+UOkWK`I~BV47>mO-u;a%CaO`ZT-E zQVk+4B1aiUOy^>A;{td)Zj1`dSp`9YB-Hdq1?}G(DqRO#c<0tKglMk?a@b>~GeHO= z7AvLlry80Ri+aPygo9eVwyGf`bS49Ju!5%c{uH6{sp)Ix4UA$q3V*{44NjUx5jtb` z;zrR&lIty;6AIOfluy;;Kp$yT^XXB-fB@9jQir`ziCF6A<4Or!|a$rhL#W1Y<~8MCx= zo9cFlI=9;=Ve5D)IzLr#Q6|LwufI~Aqzt?V0Xj^JjXc@2_C#mf4wi+PhvN|R$eDiM zuYmLd|I=NW6`ieyIH!>_x}8tzqFo?@3t$_Rcmo8hFCz=ujVcst@MswvKebUJaTeu4NRPU;+%s;d)l#Mfy1fKoC%B`_?R9UTV`%; zFSc`_?eDTNM%HmOG+LA|&l>BTui;dHC2N+mi|-elcW`)uEP3tOl`M%$MfqORn>b+J z8t=M5Cy#hDIx$&WJvf739o0!oB2-)uin}6>h2&98;M>Srrxa^o#&qhLEw6OmDi1)y zKkB?qUlngjvyYy0u=b0w#IX_pAL5K_`@3u`8{tM^T%!yeZry9Q!PgGCUm7S_ouJLi zz~eYOyI}T$rb4`rVv^k=YBC`dm6%M;Bx|mux2%qo)GVkXxmfH#-){Q;OU-%N*cWTU zJ`np_q`zqiWeQ4lg0NRux)t2v{aN4>XE4_i$%QldAa!ezW~_uEZ#`INqKHDID6Y#t zA5WqKj=ek)_~}|v0C_nz1za|N0zVZ^>vY*xzEy!MgsftvylRTIK!r%tBDWC%cg+qa zJL!Y+*{q1j&t&C%Wlcm$XwoM&CClo+3K@{H^EZ~_ZM&)b{gF7?&|2@^ligA{=^Glq!3+mH#>%mEP8U{*NN0 z9A`wQ=k<_vGeCw9#dW3nXCVLlO#T$tj{2Q*dNU}YCj?EY(tkWtZ;-Z%D(D|+!6oPP z)O3I-f!l{TqdMdo4Dq4~y{6;6QQr;{Sz2QNe^xDozfyXI|EOTrzzs>0Adm+%Nx~XU z$gG!ff|L-Y5f6}3t9+A5nPwF!Igua8S;0X4B;-eTcQ0&6gYmQ&Hh!6l2I z;jFk`WRzr)68m{p=uJV|E4s@SCmJykONApqjnd~L{s!344SZ`3M8f!am2A5OnUb|r zC41UC3&0CQ*9a9%pWls6W*lvUP8dhqpc6>DZ0F8ak)~(M=)|{JMsKLw(w`85U;q=O za8$8yOdD9#t(IcYAf=FG34931LPhZg1SuR$OG>FN!!dsXoKdYwZJ+78-NhNoue|Xb z^A$HnWlYUGxlH|EAsvRLmsqlgcwFo=Ox&U;xnbs+#;Tyrv^?DmJnf7Q`crrYsjOx5 z3}nkT#nw$@Yx@gZOHsgK%g(F)cffYYp{jRzi1FJ)G)(-PD0mbE5kTYv!Pj>=IT-p>vP`(0eaAhI{4=49o{Kw|NV{lYJ6|*3 zyaKvmr9jFX%deOsc2F0f*Y&Zv0~JTbJCIwyf8;_NG$~x~cx1SKp_S_8c^vIMIqQre z#k(#NYdmMRBC~U8BX#8t%%T|KaLvp(;@DqfENDaQ|M?cA(aZ>0ee1MZN5UCTzw(Ys zW!Qm}A=rx((+~El6I2a4ju*DkKEUnXByhiaG~kNRJP}W`U^1t1wQ!7g3Z{yELhP|= zj8m}9G${0WA)K}Lhhk4z%i0_!FxqFE?X1Z?>dv!1qPih~JHXmhKPf{L*uc~t7y zgaQ=NthO~hM2%DQt)o0E^VOZA^F=k%zle4eVR{*6vBlrxG-0v9I*75yq~`R7&f7H+ z%4Uj!QLI3Hs^(DC#OiVTnNYsSYSy8k8Z8P;6|0}3F#R!TwzfD;dXX@Lfjl2tj1qxi zCOWC5%YusZ3RBX;EY5Tiuv&y#biQAUXr1LQ5w{4@y3l4}6jPD$RJ z+e*j4OhGK# zmCPKsKS@{;ffA-HtF&~>Z1>;|*_xF^2$fhH-cU$fIuRtUBrFYfxuMwFD5!E>@FnbK zgJe8jWX6YTbc(@)#4P2QYR~ARtWN@Q2=a}Qyix#_GAWqS8jHB_C}@}ciC1VG+U>8! zvAr1=kbmercUcwwxh*FBAzjL`9V?$2-e#o3QTSdrEq9=%3DPih|YN+MFv zKLYejigvy##aRw#7|k9XHt)MV%oE#t-oC-vRtNPcY)0pa$(6h4JK5#*@XB|V>VlCe zGGJ^7@kJTPsOd(ehWarWJap8`X5%sYlIOzm($sUhkUf*cbBY^$~sYK$5L ztU1&0NMAonz*1nU89zl~DGaq~0+vxUH&fZ$%>OcIDmEN4*=Zf}T%!N(U;un9ApqIT z4Sv4xgoQo{WvznP-ym3_a9^-C z`+^l_MXI(q{YS4TDeahAt^+->F)D2_WiV(DL(pFI?-;nlsAnv5BsL=c$#c**6rszy zIw)KrP;|98T+Is~Ozr%FzCaHuE%2oN-r$N;6zG7_Pk-jY(zfa-5~>|wi9^l07E7o5 zknir!D~l}%b!mT}_@I0q$7zS^#eJ~cCw|U^`=Qgp8l;haUPiP1o!E8@PEI8glMtYg zr-rqs6~xHIi%C_x-;x!`ebnn-h*jG^kaWJTSz!i_)&h%q%1KAnkCh$p;eqm#b2D=uSigBpdz!RNVuxky*{-!~^1iY6 zcupF1QcPsgH0&S?edOQjZ$5w@eSA%?xx?9}!+KO)$U^>?(2R>960W&w;9xBp&!x;J z7F4;1D^&o=FTC@dz{63_yJ9DSN*@6z7Cj$PsmBu5BWf{!a5M9J0x5{3OzdSIDDc@^ zwlX6hzPJp7&Nh3@crhh%4G~t}8;vtb==N5D$krFq zmXIZj;vGXe)gvKAK{YCoDRyX|7&1+KQ<-7Y(6FHXjy=ohoY=wXC@&dFWKm(s<`!Eh zb*L%`C8Jko{9_zq?vsb`OdKOT$-pMfK4R0d33%*cJNDs>cxm~I*dZ)K&isxMTa^d* z5O6GvdO?H6kWHeDb&^dnNa92V6n$ExZZ?&_CJGh&3tLa*IMu=Wp$?@a&YKf>ewsSs zc)=~0Uh`2otl>r2MwV&{bZii|V*+er7>==F=%wsiKt^c8BWC|qnB)rbZX%eFn0CN;lsp!pgsW`ZAnJ`DE#d3g=E!;dn`p)+DeOsd+xLL9Iavqhfhk-}ylrezzcL$8i z&bnUQS7q2Y7I=%LyJkp%?!qiKXC27-3~4TmIzl`(&83-N#O+W7_19~ar$^h`7{;1r zwjv*rT9~}QwQwaC_Ce81Ys>Ux)!NJ{TQe4rp43kI1EX1!keoGrH6|I*g}i#xn%tEz z!6oM~u5Gbb&Z!u)sHH_zj8=z6BTiP z5`&l@iDZNlLvvpwQ<|S72MNOqSAj3ei-jr-5@JNYvqU}PMQ7QI5?+~pleQ@UX)77s zu??am52t`bpx~3>c7_!aJa7ylHmJ}G)(%)!wY_vzvA;rxldMIvmbx^6oH>7{EvvtOz&kU%qJUL@I(8az}SA~RaI+v&_uHj^(;a<_a%(CA>iuw3%jXlF7 zQZX7K)UrejGE5po$r>S^Mp*3`4i2HAEW#%&2A8qD+6fwrN3?C9cper@g<7}|x9k&p zMsLD>432%`9kDqk++U{qyG(|I6x}CYIJrDBW}mn-@jgAM;I>a8wy5ND8D|T7iKX$_ zKFMT@fbzoJDFzg+>B14hbF$5rFFPt}-H# zwsX>{_~}e7J9VPE!2BzpERkJTUM$l*C@)T@OPYwMx7&-LJ#BZnHpH@DDdayKik=xV zohf-{`zaAUn=oo1#+@h}TCZcDG>|TIv)$fjB4~!EAgWC~7*hZ@0p9BE$Jh3A%)Jjd zAq#Tgv5{#D>=EKR2rQUGTq&8XxK0X90$AoZN&1wK3^|6mcL2dq8Uf9gUhbtp5S<8f zS$BcKgbgwSq1&Gj?aw)jqk7xRV{F(`ekZ3%j<8!s-!cozndExFb#7Cr1aS&@@H?6e z0BteN67e=6gemx0(&$*ZoDs|`L|o^3Q#OPEpRdIwto{9xWBF7jRyU?p+%sxZKvPMT zjE>d<9&G43)I33b7U#8W; z^-fJ6uIa(=})WEkA_<{l6+|k=NauiEE@$IkiSchWcNNZ!y!20qb0)uCwny zG&Isv_=NklG0~v_T$5XZBqBqCl1hIIwzF*{VAl_e=Qh$K(vBlR9dM6xQLAwtuE7+h zBicHwG&=GgINaqS$F2lvO*Kz7#4>Zc3=1;z?0$l3l|-#SveopY^AT}^C5q6kO?F}H zfEMMOr;t(w%p!G3XNwAzVB3h9ehDV9(12As1NWKB%2Yu#`i2RrgiJDH2OU()u^upt zA3_Nii*rcbFFDt+$QShCy zXyjuWk}p`n5m%X;D-+^ME%u1V+2OZE!yIlF3YF=N$@(Hbk^`fo=q=&VFcB1kb>jWO z8=GAJM*HVUirzviQ~_#s0v2|05LQOKD@lPjl&@sTMA#Q%0=17n=q06b>3?bBDPAhB z7@Wb>DQ0jZd!SH9STt0ZVMFy|Q`I~wLk<}MagnJO)Bvhd+cE9b7eKvO>m0VOLGW7r zCzCzV=Zl3jOR9x4&Ju!Rvi&v0@Hn_GYTUNJtG&K411FjKfj3ox3lF>@CDLz)D@eP+V^)j z)kh|a+kh}|qB+=YxD!ebuP3JD~h} zLI3Mz)mI;DksvuQEPr8dYCE39Y|wm6i$e2(4~k-0X-iUa>C^@3?fcX_RnSB+i#%D% z<&=0^_s#<>xKbFdr=TNmA$4A+f%{;QTeq9rG|P> z|4n@jNzo#Omda0Y`F+SHTNlBJz$De6q37f@s7#Tmp}GVM17~udGxoytH0wl0sc!VK zZA)6!Ia7I}muvqDE3Ps40Gd>mmVk z>jLm#Ck`ZW$V@ht5P38XPkgiUehn>M%N#|vjY`o2-$Ip1Sx|Z-_c}KUM7X}Jc5NB~ z6omP(J}z_Y%Ckz{c8N$ui9m=G%7K&87#KJisZt`cIc>0PhB@;IG;H|KHhK!B3{V(` z!)d%hGn%%U5J7ivX$%o2T8)!zfXl%Ol?tZ*|4nn@e?i!JWfK}D(eAaf$Kj7ixTAzK z=UZzx=Z*8&U2H|*TU*Z-|5CK@MCl@@+Xj~Hk~W68Ev4xw0d>lw8$;>g5hK8#fCyr zy%`*wLJ*kZnAKf$l#ayn0z{gYT2o{xF*ATDmGB9ss%Dm1ISZ=b)n(WUOQ^`lWz{*T zMl?~f)S!S6k$a*;PRmKb6dZSK(aN-D1)8tQjnWEaa08hPgyPysh@i(?EE1qmGHcj3 zN#sM`K)i_~#1hDMjM0>hTOuhGZ48XcR7ESQ7fRhdJsvF*LBZ8a)N)U{;_MPmZ7wS}gL#%T6X+~~{>82r=c z1J$CvEi-^@X#n(e{#Rw`m~lQ`cdHeRo^cvLEiwZp@YO&sz_Aw>Sc>Q1&u+8Ak|dn% z;RnTs>imG|M1;t=!oC4Z@SV8TuvjJs06xc6+K+Wr?rBFo6TAqlLKf(}KXle0IjhM% zrh?|K@>q>?8G(u}^~p&kU>395>d2ASD&gcgn6;2wCG7pR3UG6g!ccIr8Hj_G1rmQs znWB8d@#0gR35zq%U{g6vY7Mm4U~LZEEV&?*n5Hng0W9Cnf+M)dlRiO|_ZCg>8B zK{-q#KRVL^^-})pM#cMfZ6M}J$hCVwhSsz`QJs7RrETIBRB6Sce`>`30SMss>B|+uXCf-L%w+sV!{rn+PJ1_LmrZ*Yk`a9V(IU%DlUlwaWT%YZh9>NR28 zYbur4(BUv5LIFWcNj>w<6{sCFGF$%CinJ_C3pnOle7!Sn_H8#ECxaY_k>U`}1~nNR z)KmpDn6fhJld{ymS}i1Pxv)1()VD&9?QD^uih7)6gv254_fCsc2xtf-@PMHyoZ3P` zH)^9C-fr#tB6Og|x)3$i>$eEXYOxTiqP{xe;Zx;}Afu{PVSrTTmkP+wu5@v*fJB`o zn7OgV=-NM0(gvFz;6F_gJI#<8q1R=JOvQU1?{XUh*P00JCF|{kMxE055FAjyNH%a< ztQkz`;unLaAe#>qb>1t2VQcZ^Xlz`#f>?Nd)hREedmLH9a+D5OMN^TvRbJ9rlk|iO z=$mE!F3SHU+6Yg9%T2g?bzJJ0#2bBb^w_%aez34A8Z^L${4TeC;I(05ui$~91|jMV ztST`H;TgCIM9p_=4Ek=xrp~ISoU@`TJwxcN4RFx!Tkj~EYk!L+VjK>mw5;b4rbhm- z!T^BajY1vPv24{j4q*W~^>*GtUJDD@XfgPZvYice9ncD@VZnfRLGJ}(5MEjaWf6pC zL8*>xa?KFYd2RO4`c(sUc%oYNfH9m{QHa|B>8(qXn$jXdt%jDkokDa|AY??->PkJv zA(0Zsm|kytjHCJ(hZg|SMZKArwVd#t$V+285Ue_wmAs_pLR$q8UutZT*-$P%MM;%> z)A1_Ugqm6$%cL-1lwbF;D*oTBwxnePsDDT%H>NU z2C%~q1v_S}u%lwYuF;+++FthdlD0&Di|syVIhRPJM_G%_yG%uA7Y{{$Vf;q+)5@;n z=`3x;OV8*6JbP#sYuVarZ$)+C5jIFmSPw-OD(v=b6b>X_nYlB1iR!5i&&if*t@KHD z=E~Jwac{dDh4#f25j(tDtL8H~gY=QLp~Q>8F`#B8Nh^t1!Lt3~CO56!R%n;K$j?Ud z(H{<(rr9Jk>&d&?`qT2XYaMmHvi;*m8Uhl@c(I89mTiRbQ|BiBg8U3Rn=zSn3c|*J zidKn(vn6Z>WqzS#IAwL_4ij>B(^zNugSZv2b5Fymmn=+6!yv*~vMbL#J=D(IptM}T ztSD_7ixdDm)eIi36*h*I`i?w@r-;qs&aEc>Vaf0^b;PQw>Ku;}3p>^oEJAK@AB%8` z>!CA>19J@rE1QI4!yD|rqWyj`KLm(w>(8U&hZTdylQ>RnB+w3uk!ur24g@)>u5-`1 zOiFtGQ9vUqdnQM38`uXUF96vF_TaQ_ z?Cayt>p5r8jiEH*Ky!YYgwyH5COX41JKwJ28=)w^UClSF&(J|T&ArxhFxP{(P)0O) z6QA$^w>syEHXPhu5pyF_X87ugw8xLp7)P7m+QlT-atTLn1j?11!5ou-f#}VZojVj! zg-n%1YG3OJWadRotlqc&cX~OKUM8cQ+s?ZfhDX|jMhWo}0vGIcd~l`ssI}GkvKpzb zzEoUM?1qmp&yB^R+EldEv9WP56d7iUMVWD@(;*?TtdWplpi zKdQ-#fyDe}58_yRGXr8ChAXG={TzH(E&E&AWMccNkO?WZdW|hpfKqJG4zEJW3XgV(T!u+FshcIkJXA3-VfSqVtIuCehyS`2?+C#$FYzg zb}$7Z>??;f82+(@sSdUDjjhNUh|w&G(b)3IDQZHE%{n9#EESbAt2m|8+ic4E3XVE$v8Tdri zG^g(`4_ahiU*v4(y7kWy4VDM)x^Yf=5;d}C^3@gZ1_9S~N_cVCXjjZeM`{yohhcYl z^Mank5W%vDx9IeyT;ukD3i$KZ@rEDxUe7nI!EoGiP8X-=nxG>SARYvyxczI#hA^#2 z6slj_Sqr%l@T>GM))XX`c^VVo%b%KGUcJr%M)-k-U~@RcOU?y!lm zENst1q3?aLV!K}pltkN%s6MiApuj0y&dZg@vn3)06DLqa;-zrjtx)|9z~);hc&L*j z08(vGZNFi-q27o8H3}pPZ3e{RK$kr}a3oQ#L(Mh}TT$~R$}zInrLfd516OHEvOiEg z>x%XjJix}s0j=7PIv2?>5$wsoCJtB?{Ogr7pEqP0cH4jA+T&*Jd#e?>R#M$SSr4PB zi69Yult&ozyib9eZB7Lop zF(1f=cMnG!od{gDc%#l;3zo$(h{o1@j`fs{vOz z7EB)jT?`?F2s51*#E`eiHhxB+Y*@z|lUlQ}+<73lL%n#i06;$I_|8HA5HLG~@v92} zCQ1+hN?Yb7HKhQ+#4;SLZyX96q(DJG{5C&y2Pe-Hs0(9kN2%ahP99@hV+drA^51;2 zq)^2j+o*}X2WM=xgSqmreWI+2T~zpD`Q^7%H%ro3q|?ctgMSTQ31Myo^-!N}NT130 z7R-Pl$SZ}qQn$qTYBRf^{sC~-)@(AD=Nsc7Um!NI+e#-5(|n4yr(AdAI-F&*}fK3?5=hTW3-0Vwt^0txmuqS3I&;pQ}u{-nTb7O z!y;fs*HGcxAE@JN6~0;Bf&}g3EF?nz`foeR)4;@?Ys6}p4Ngi$xNBYSf$9xaT5l=N zfQmy|P!D?}4~j^DYM=p?PSAjpf5gok@~PUIi%EVX^5Wqb`H5N%y-CA$_K)jUX4+|BmsDD2r+fFBuq-;7_&}%E65}h( zg`%O8;T1rNFF*6IcrO`tIFGO#k!Z4aA*x99c*+- zaf*a3cBzB{erBko`8}^XN0tw?Wolbv+KvbDYiCtN`7hpFmLddGjNFwDk!3}hOb!k* z6+-YUB>ND$C%q{4)Vi6ikNrQxDH%#*;PhnEH;6)1=l4!v>Y~<19oF)zZe-Y z*Z$BRUF;4;HWl z&d7uW0E5 zQy0-)A&sX;P;=%+;z8w)i=2zfi~gsZF`^6mLx6CIw^|lI!!sIbvtMxXw`B6IiFaDO zDK+ZcV=N%m#S(qb-k44H4k`>9f^T^JSbw?(CE7$QGVY_M@fzV|8C}nu2Fx^o1STv| z7BDO@Z!DGVg^WzIy$%Y0Vdt|hbE{@N3R?BlzRfd2pLPyUxMMMJ2Enj_EyC-)J+rFw zc_Em+3!dV2rl4));FXCZuwmT#`vkB7yP;TT=%gK4W`m%Ma9Aeu*rOat5M&xZHms4oB_No+EzS-?Rvy&3Pvjp1YdoOGs1akR#}w-~3+q-p zdwZN60@jE0u|}zGH`ddz!`{XYdmlcdx&0ugVTU&eZ)II>@90f~;%~$3fVPe8hdB+7 zZxxO>w~rN$2O1d?=B_0QyYygW*xJ^$yoR>JVAnlP;2?+eMGgDYA+Qmb~fMyp3_*nZ0b ztdG^$69x%Xn)&AE<1V0ERSsiduRVbqUiBh$p}r5fB1McLHZM+B>d(sd(g#8 z81=GEg9)qVx6|?4`FE$UXFtnh)^ndswc@7}VOeTWioq}eJr>83&c{XY&Aj@JHGn%J zCBHE=W~cu?M`g>kQ;Z4?C)scQAMnJzQ}e`QBgqTyu?g&lx9}!;Egj&EjdZq()|k|! znc_Ncu~#zKqozW&atD$LBD${5Mk;k?DUc&|bynxU5r(#=&PLE#g*sy||J3S?m+TRe z6aOJljz(9@1yUXXNp8brofM9e$ufn!5k=BIHcf)0lE;Lf{TPvOO73mJy~W;0P+iLZFWNatW~_-{juSh+QhJ6g3h70*a>!{S*F{HA?~o9Lu!^O?u1#Z z3L`R=Ih0Qh_XJ_`NR5T<#XxW;1Tr5ZRth}C{8rou`?z2r7-##Z%B=0A>r}mZEG>RR z2Sd+#qAYGLi}2aP>MLTP@u2tKO45QkAx_yFPSx@lXkR-N#V($&hI{HScBX&mM!OU)8qd-9`-p-cnxO5D)^ z)52Iw+%lnX~O5fs@+Dr`=?YNV~fpan|xRy_+V`a1&t4xAQr)&?s zEtFW&TTxtP5l2}1O2}zuig4?qE^8|c9!bwEK>EA&EIary>>2s0gbT1ZvV-9te8HiN zy#yGt?(nfSCQG(MG;AGVi;GqoC#R?wOVD|kO8KyTzK}`8n~_+6C+sS|7#3g1V8RPU zP!3PQ7ka8Q?CO3nFGC7`aMKUVh^pW!&8w+(c}3a=!n#;10HX2!YbJ&?5AA+HO0|aM zx!XK!KKwi^Tvc0Q3*9U`Tdj>w4D?FNqkrX(hjh^-zvSFh2P1w#q1#%`UJ{S@o4AuFdjw(mCi4R(Ze1MfT*t{TD>`?H5;K~Iw-e5#|2X@V3naBrz zDlWh*hYz&UsdW?fK-x;Dt|gTvcDECZ3G*5li}!EGWFsnKE2}<6CV_%vE`oXjMgMqb zmhp$p3@B?VM9F^Su*B%3&166#IAABYc5{(bD=8LONADmN3oz1R0h_{QHmcFb03K=&k&M4AVTSyQnz*vO zce_8~tvI$_wtOp&xe;WvM43~XcicWNp&6ZXUDMNn#Q&GQcLBHTs_H%0V?WM0d!JLQ zUP)0EWSvc^Cy-!4hfpT8)LKG}+U*Sr8tJw>irREV`%+16Zr%G;r3&((KrjIngCfR6 ztX!>v_&^ds69|uhis;pAz*lIz7!eWWDxnq9zyBC>uC?|)`&23rMZeEekhS(&bIm#C znBz6a9COS^rOUp2TG}!tL@h0A+G5otQ|3*jv};7~;xa_qU50ox#=-n%X}7h1`qEtwXKuTy;+Shrmx}moSW|QUpMwSzACr0J~MKN+y zZ`j{u+PUlp-?lLcA$n9q8bOQ+j&2g)o&>2wS5>jj;zPzVKsC-qwzOI}MyOd7Or zss4o~+`ChNk^hq>fV230&C_?GXJj2x+oC_QD8%|hO{}Xw-Ptb0%%@pC`yw$KY|MWm zjF$88iJ2a>qY0aURB1<_>t3w1vTjl-${L!m-CnslX{?+0H>L0ev>$piwVvNMMPP3w za;5Mik?7#)KqTfp>olZIfELH7_56;LX_iPHb(h>%c50BjqwvLo9G7GjCQ9h!-6AlZ zGQbpy07$$HY1pL7+eYV9w`J9>@PD=SqFo#E_G2}v<=IwAmx#{W2mUB@>a;=E~{siYM~_Iz2YHBhHr3wbrT+IH(Og{aQF zn)#ezmr0!Bxi!NpIS&?2|eY~udT?gNqTv8=2cX7-BAwj zL~{IdBC#r98+~kFdqgysEU^H*)d%Mi{69o&-PMU&axp5~ zp5o>K@MHwZrV2Q>5vP0gjjxZ)Uc68EPDX!__653wFQlxk0;~-ymp2^!!ox!+3mLR@ z&22F6qYPU+CETf8ydN^1;Ax-qy?E_W{EjIjL}$p_!FqyTOi_Oi>i?>S`nLqxCr(D@?MCLkFYU+NjxHB@ z$D1(P(JTdb6B~ID7%^g_4PG`F?NA(TVA$YiXS5l9Y}+}boozVUbPRsn7%3l3Lq-Ut zISSxQWZ4u{__F>6if#I194tAebs4DlvFwkwPS5X;dQqmlMBZdBZ$!|K)Wy$b!*;A( zDyyS`aN(3736Z*Slq7T?PA{^9zmcF$w+qm%N3rp#IcNiNtdz3U>Y_g1pU0=}1AzOr17C4q&9@XmOa zcZe^DB4^~|ot7gbLaH+&+?a|sV!8cHN)aUut|c(5dy@U8d5{hf-^%=nyW8;$Hwuqg zb+_=4OFxMqf;bEe0tHOLHu`2EXmFLpsVL;(O}6jJ$OTTt?;E=3zjn5J0Ei}2T-sG;bqqH7xTLxSabrxPy*5 zoovIeqiXPvrk=3{k$z&LjaG~v%%>cOi^`58VPG}q^|nKG!MHyBg!&~dp3O$EbgHTq zcc2O@7YpXkq6~uJiOEPRs9Zb&ca09$!)qtY%pU86q2~>Rx5Ta~p!SSsO3uLcbKhlG zF53pXlHB5l>x0Z?+S2SO#dAm=0E`#iF>)Bj@osN(cVE)na+*hcPty2!%NY!QE2N?9 z#@;0PQ4Ez38Ka}Y)$!VlB86nW>IwfqqM0O&2$MBfORL6OW?JN=9^LBe?nwlolQF$b zM1k!%dTy7XI>(3Ll2aOWqboL6`5*-jQ>!xD=l{&)sjiGEaRS3D zS=xdbJE<3V_~E064$#huj88HsVX+_&8#@J~NtR;gE7__3>D^XTIscxC%oxDyn6Euq zJJg3Qt-)vN1nZLSiAP_6b@?r4F{xgdp2BgbVB!A~;CJYcYyfJ-Z~abwn<%rG`0^4fL}?q3-uY1Z%OJ$%*PxQjCJB_?}6 z3N!}Eswz|IZXgioPf3;U_^3s%fv5{~beYi)NF(W#Fi;I-&xwqPtwP+B_6;qsvOHR{ zou7u|P#nbRxke$o!Wv-gHiRKS3{0~G@Fk+_w$#r>1DfI!FM+7zK-sFMgjUmU?~SG0 zn(l}QM~1!n&*!d{CcQu~xe*MLOwAyTV7Rj9hQ7!U(fPH-C)M)CQv1Y$S=2ry^e>CQ z>H<5GL14g|u}>$w8;D|QVnzxsmbJw)8zKnNJh9_{+2JZpxzH%bU`sRMHRagY(!?%w zZRr8$ST(k^64YT2kQ-upuApp9%u3j97#u$HCJPOm0-y7SHRV6zx`bCV(6hvfSoT?t zuNYEd){yFBNLi<5%qY!@wC=YMEGQ;9qMc|KkoiEf2rQwgo&yZ?|6slbBsv(5zyO9H zdt7(yxd;ZQVoh0d1_tXqy#NNbk-9q#jN@Hx6AR=Zgb@K0#v0V>F|J7e=dxvFBdz%s zBsg!rrCkLg2bx>7dP;@$qEZ|3z}Q6G{j-sX#3w39Gav3Gd?DCtNnH~rhznEi_3CK! zDX5RlxAcZIL;AVq6rZ+Tn%kYFX52TTcvc)Ypm@#(bBbSDNAX&(n?H91*hS`1r{ILp z9mQ4%8Da;?4APth$A})u?TzjUa~If4A{xzp#5`E0QbxbmHy6Flz+;LpG;_WiU2#-G zyODH}eB#x}NC@1&GEUNz1D`BUOy5qH(>P&XaGCN$IX7zZVr~Z`Yft&#I-q(}4k%L{ z=77qA1B%FCP06Kg%?Cw*GQH&g-z5JNNqEcb;$0IY4$7iex&LWkGlA%T@}uR<4vz$~ z(>B~0QAtaZM3Zl`i*{X6<s8G4v%2?ld?=2sWJR_`XVoN#Lq#cLD5+L zTJ|NK(E=hPSB}0N=z@i>Wv!xV1k*~UkN)F^HGY~?v}o(Wr)&|5lgH8=er9pmK7R5B zyTxU{oU^QxvHjC&T*NGtZQNb?GhHS&*2~10GV!UGjfeRNF-=7JhGQt$1Qm5l`OD&p zZo*d0i>|e38V$qI7i1PHj%b>Ejbtr>tl77i9L6R5XPd-1GYd>VGecZ)qmW$N+AFt! zHd6d~&%3)A)IF&Jyq_AWwD^=vf}J{*)C#n*By8DC>Oh_7S8 z4(xPPHjg@7S*i$)wv1&_Qw;QsgXMvmk;a+){4G+qW4${XvEB0|wVbF%Bu?&{G-Gx? z0*QhNA-=URnRXc^z;^Zq9=xJj41mdaH^rJ2e|Y^;2{=!0Yht6qf(XS%Z1`90s9 ze3>8T?cLCSom2i30ympSCL$6B9C?BJc$fIeQGqJca#T`HMDpw4FA-8vS{5 zqMl(d5;Oy(`Bm9>ZiS!~gGoTWQ8bRlN#;Ign>VM;EW+khDFZyS#wLZKHK?%0mf?Tz z%$seEjg(o_^JeCTQC6&9T>C)YxB_h5XvUUzWTSUSNDL7Ie-aszW`16RI5`cRjQwWb zaO?%AAkLgM&Tcpv?7+#0i4E4?Lcehe+N_zMV2`y$^kcW*Giz_w?+rK^t$ZqffqKHp zGl6_<#jM*0n*n~A`v56E!c5P&ecR}Qlp#!QY%WkbHW9Jw-3wDDbrR6{T6Io_28{#B z;nBs5c3l91j}1E^6Fz$Ej7_rClravx{Us+G{(a2O7xY3&_KtH)W=_h<&VcXL{i z^@CB-@7T>#b}w8a4H;D7YRU-6`N*ha(V000<6K-O=Vhe?4?4&;hMIUI{i|Tf_I3Zc zD)nh+0?F$5x-2(S5nNh$tr=c1uvUDjETGD$CiNF$8`i16q12x(7pF6B81XNF4;3}0 zMTAEErH%Tt{mv4BxlH^N4q+l717a9NpnLW-S+!LhhEIzx8bvA$CccZnXeq#n+%Dkz zce9Nl$3Z&BrD(-KagnAW)Z&84b|3ZLHbFtD+Lp&zA0vVvC!KHN61|hK4`fW5~+lQl(K}=G_)Deg267dh^!5v&F76Q zXSXx5hKaadswLUDUYd8Horcvg2Tulp252VGqCj51qW12bOlsJ#hw#qw{}2+n=kTQG z^Qg+tYEoa-;cZk`rDOu$8U})AiH>c|u<+S0y*lIr5x%<-2y&D;fLHQs^HR%N%QC0fg}a|QUCN_KErV$NbCs52SFe-%BwYBKV38Q7OzJ*f4ctX%rFyI9p) z-1Y1v{C$rFRp}F*h{Wtx0BK4uXj%Ru*D}exir>&0o$YEPW{3U3>M17MRt>)nvTF;G zS=?BU!sbM&2#qxw5b=4zfZg7e9M>l7f5x!+>#F@Li&@Y9lGL0s zS@A!jm4qn$Z0A0%BG|y%)P=j#VEK8HW_k^QK$cTTny`idytLQQntq5hs_Ywm>uAt0 zp1U>vIK}eSXBTrBSiR1y)X~!Zw@g>Iw|R>4yup<1ipX8y8}W1A8lu3La1nysqhrFP zVGv9#&QtD~Snbk;6_{j1O%m0hRP|~wb%FH+78P<_R!jjeU3N8E#M!U)j6IU}G| zB8?F9MthIDoaru~oqFK3#--0vq0Oq5jMZ)9x>W9nMUI7vObiZQY+fdm5c8xbR3eHc zpM2RVn|z;gqEVG9+M#)F^`_MpJ@1r9eN`iu(=rGpU6?3piY|#Te@5#i3QgxXDq+vp zYhVqXX#)%|X%0Epo8N>yho?vDvd3FFG3P7UiLj=Q{G2t-0o2e5CnEm>)a20WI6^V+NdFJI

cM;t%x}K8M(zMw7`Sk;kYQaqy)=LhuI8*UdPfZUN5#+xDaH= zLic;kVH`Gr#T5UD`r=NRE{Y(!36Y?(i{?t!22q6-QNoU55bBFtRHw@BKmyrYa0Xkv z$?Cv`{36NDXK-vESJDR`!<>|-n)M)E*8HMx2K7CO5}dOqq4fq(Cx0AoKCCye@9%L{)A#B3fMZtJP`86Bk-=yNfq5ry zDrEm1D#@DUJyuc&;PU$pj#+t$Ftn2&bi4Qsby!+I+gCD4yJWId{o~>NXyV74d0G*` zdsX$aqsLrHLAaJV!9IPd>amXqj4YSf==u#vNw4-=duNmylbQ_b_Dq!_QosvZC6)uh zervbvb^10LeTIb*%)#`?NU?{o;Dr;5=WI+uae)Hwu^Y-<-hBi#M5Adbmg%Kt>?+zU zt$*wl*B!OL#N*MQ!COogeVSW%r^@@51-~o%CniHvF!>4gy$&tnY{?_e*z#(puR?VS z?$ThO3>9%kP^R|Df(sA-B6`gu&gko>lS8XZTsb#D`yuNOaUDAjR+qW%IkdXMg_D>! zaVZY17C8fAO-x3ik)n)uo0_|o=5D#UBSbEIF>LOLRBb>d`V5wG7-2iZte;|}xIdc{ zat_@^7bIBgu6&svs+VZ23z9`f1DiO;rm;5B9A_J`&mzKY#z?9=$P5z{7s7Rz2C_I0ni>T-FS%-@yH?4NRr}Z>fO$!&FV+AH#nAaNDUYRWid(pFRU}{@oId6Lt{t- z;<*$IcfkdTvh1UIq54bZWI=EsrX)A8(N*$md5_vS&x`Gl=t3nB*pozJlKSoNLa1Q|+lWtVk^sEi3264XRR0@pviN9%NUYl0cJsI0EfO;*Bq#>vk?-iWX*UdiVv$RvZIE@pBN3y z^gCf-qxg!%b-fnag(lS~G#T|oQh5wV^GoTt5p!n%HBi-kX?<-gI0J)5z(v~}Oz`qZ zI!?aN+rP3UQg0yQG&SG1#N?U?P64)Q@d~34%Sy+%?WvZ<53(R7y@?Rrs~L`XTT?5G zE3F7A)f9)^u4PjHllX-ob+g>O71y_Up>Mk1M!NR^gZBoLe{ z6x3F2UGSY;=o3J}Ui^?Cm&-@Ivqn&CrGt2}Lp6D^-W@3(6iBgzb&XJ)nI7)39-_n5 z!+i&;uTcrGlKOC#px(sP$H)AH0O4ZR8_lp{{YmZ>YlL?^y7g7tge90wL9a<4i;QGEnp zuN3Mv(&Fx006LA(5}@_RRu+{jXjm#L4OGtOB)VG8-9`0>Eqi1qIpe+*8Z!|ZV+PD3G|^jES?0wL z8xVRg)(6w3)urxSH27&Fs5-%KXITs4^Y$~fIlT_JUlhbR=o;+!stW|{y+EaYMa z8OB|QmsF$Bz=`6W4YQ;RDyF@Y;>BP5980!6W&=h)egiJ6@Q z$vi5lh7^P9JIGhELGQgdSCU3PD4v&marqQ76~qA>lb9B5H+;^r7BakGe*AJR#dZ*H zW%V)x59{CLf^Dh}K}1(^)wy^8GiB4R_zYpf)v zvCguF6b9rHZW*r3o#DiD0R%WrX&CaP0k6tv*Q2a9w z|J(8#6fz}lrbU&^mI2WmQ-9I=p1@p+YNCqz<4v-NdQ`k$eT*`Tmw$Vzm!EoDR5kU| z%$JSalW-uBSyv`%1e$^B42r9L6DJ56fScl&4Zkpn6ThNEr}vc(v3D&<@8=hpB4 zSO49KV<;{DOt<1Vd6^j1;zvbhiZbj~uf+V-VoiPGWJEyRqdcon{^wSoROht!(grpJ z%Qggm(js!x3?h^IlW&iW%o(3++n38TUxp#5{Cr1~-eXDcgf#U%{rI22MKjNEPZKrzNjCV+|<1Y@ZXb0Fly(05q%_s9^d_ zkd6-W#=U9KUm3f$dZW+zU?0=4(e5%bpA}CZHI=;~tB$qOVh|>CavM)e>{qU{0E|M> zH^{ZeYLfazNxUeGtS{F#eX*2avx2B)x4aSZGlRiEn6ZCq2^kcF1SPw7O+T#H4yU0T zB=lXX(XKJ;wbP~)<8R_K;Mm2d905^$qVCNRz;&J@z{Mv%Od}km=NE|)=r{@MoX9n~-n^JYne?l@G}c1TI|_e1U1_*Y;f|B%ll4%|4jI1jmiAYyX?9oa7j z5S?lc=N$b(mgV@7^x59k)W6nlN@z5zuqnbkDQlFM>2jtC=Vd#XpeeqkLu+Hnp3 zW>x{1aE!IiC`=78(2!|tXVzR`Nw%wwY06PFT1g?}A3lOHATinAFPt`jrCK%BVA~EePYV*T{m;v0<{3@k>NLboP@A&C7cQUR zJjYD|IG_l9MgkSw1}B9X8q-4Ac{TGCpMv2Z&?xi2ON^ctl!GBZFxljeA5C!j%o`S& z^GuY>w4GN9Ct44mER>s2%I3dXsSasl?XdpO+H zSoetK+u2eAgZR1iU@RUl$FytsSv;=8!7o5MmRw18AmZ_rbBzzuVjQB=wQC;CYIeec zrpbLNjWF;_Gz7gmZWoBpcR~$B%@C1=JP@8+^#TGnTTuSe{LNPs?TZlVZhN<{PlF073Wy-*PNR*;&7|P5NympsJ=^) z#m%{zDVF!3x}Lbr-V(V(#&Q_+>0d>FmD~rpa%dqgdkB)og2X@@heZj~iO@UNL-9FD zY&lp{u|JMEkMxRL8&#Bfmw7}||4vVe|E|xxJbDpy+Ez#%V%XH9)#>;g8@PF{$kOo@s$`iJ1pZeSCzxt!?%bPci7nim>oopS6 zTE|$`nckr*H&=FWT!fg}1Y{y~JmpexoyE0n2Ixad9<@mIs*A5~Ighu+ls`gW7$Dz?s; zlqs>>?GY_ntEP<>M(PhVW=gakek3PEe0Yt6>~2Bn9;YBD4TRGx+`NzTO3J}in!$NF zNicyn$4synW+zzQ#tg-UNORl3QmKJ5`e-4VeXGQ51G1=X-~h+w!_zLAjZ&vhWg2p$ zU{Q<4<_x#M1rRMkza-0m$WAw`DA2VGb^y;(&;*2eO9|kZW-w34z&Rn*msE@FRRAju zmchMB);rSx_`Jh10)7V+LfLCIfGMg4X@FE3fJj+sfHb2{b~(*iK7F-NecN2FEiw`t2OMr;Aj)wh20@Wx%Dlt zyUqd;jwX>r^nGC-&LHE(2JxRui+=Ty#OS}ebpOiMl(>8%^XpB}^1=d|97Se@=y zcDf(eH$qj2PB0x7iD(GOZZ?6ag-c$Tzf_Q^)L%RQL@z^`!AG5*sV{m|eA>&2T>qGZ zjT?GaC0^nol`yi6l||Y%ympqEG*wW=gQ!F>KD1>MN|F*$z;vkdGu~>a53+r-hCMB& z;E$8mZ`2v_PxRW|_?;2Yow2ih)BiNzT&NCmBE7{4*ceo{vKfK_noDNuzphu9Tg15z zI5KS__a!T5)e$w|kc0MNLrbDQUq@YnT;=nJiqQ=x;pr1BLqW>4j;bZ`!w7nTG)8uA;^f zLoP+C=Hni)!5D=*#rTbl+*lJDz`P-{_PaTrDC?q&JOAo0d|3Ih8Zx+Rg(LUn4b#n4 z>lf^!@)c^#4p>Box*qlav?CH>Dcelh#okYXO-)CciD9?k%u*&` zgHkCWlK^cs_~(fNBa}xLk~6{=t`gWW{^rMy_`{AsV^$jLJHZxNy2Giy=0}-gVg}E( z0d}ll8m}U@)EK-`yiU@K7Q%XQGoeRc_yRIZ$sfEY%2>wET@7L7_+7n$PvX-fOTjC2 zX-F7k+DxmAiYVKyh%($J%8Q28$%2`Lnenj2mR*AHV7F&7OY7sa$xc}+=14Gwm+khY za)QY?=nj06$Ba3&1(S_Dn2hP<>LQ3m5#ovo5n7t=Fhd$k=Z(ve2Wm0zo(d*Y0G)!# z;BN~iQxF*eeHKMVFqxvrN~WM(2qxRyG%*>6MmCr6u4wKyHFqn`9p2#>IM&?Z#BM+( zn2bYBV=x)9SbHbKllQ7KCJ^a0rr7*oF>nbD-)0g(AIdw?^a6Qs5VtO!bup0 zMRAC$qjE(Qv=S5G;kP+lAMylv%?Fc}@QFR)$HL6-V&*q#evRKpbx*N^A=6#o<8f(I z^@s@NW7tEmuUtfX$`vO40OWGTokDim19g5z^rtRj)DW_JF}HjRIjSz~TZl_*vi!IVc$okxC>NY5 za+r@VNH9Kh*{RmBT_tn5;-&KEkK;KtkRV9)@{pSafDz@I%o9cTruv<8mh3b$K{Ym3!YC|&O1nywmdocRBlR;H z3vF4R*i0m--<5KOjwxzE9qU?)%O1^asG2Ut&Ul$QD{X&~lSDY!Biy6q3h0r*9_lVe zIII8`@L4KFUf{Eu32|T;6}wA_gLG`A6T8GzR&=y3$iYhMrTRP-3vV6K|G#M$ z*`+bqER>E1>^)_2!xGb<34TpkDC`h}2-}(}f8aA2c~q~LQhDzGo4yd$1D2+rMpt1y zyJx!>M#s}Mj{?1&3dVu@*=Vp%#Vd(9}%(2w!g__^7(fkZy&+$8B_qjBaD2cn5R6 z-R3LF_Jy{?>37g*nJX6*?V=$|*{-%cB+IW^FJtdzAs>3X)YSLVjz3hEByGNbGL)p1=0=oY{K`X) z%8=w`JwdXEya~u!DD?2O0N`agSrT{Ip=PZ3PsxYQo0*6;y$L8|Ewm#T43ivEi65j| zgQAqU-B@^aB#}7?;ngyxCET}^I92F{yI}(06K0re29(qn45E^oDM<_?R*(9JTbCAe zC%WSkf2wq+gX^>CHmRS(x zf&?$~ElRrJ^`Z+1-lZw@S!umoniagE9t7{gaTC1E4ucF(ZvfN!{3JTdlp5@;>COSQ zm{u(z+7eX2&e@Kg-Chjru*XJDDa9I1%j#h(tA`y~O`@GCS-lWenB%HB>tntc*d5@n zo*G~~l4nqz%|qs|?&oIPP7GFqAfCi4=D00QU_fibEl%D2VJ*Hb-f#9=uM_9(>ibJO z?A)&F)~|c>b%FORw3hWH=1J!!3wGK?{dcd9Z#xBL_Ajyj%(T6D-jZNhye~8SX1XSk z9~XqfEbSxxkP)rf`@v5BY_|y(Q+K|6hxDy5YxK`?qc&uUl_+L3+?ra{z_EpCy}q*| zOm|fh3FJypv=a3oByaloA8>IYJl)_44@nsKc^!;ml)zkq?e>ybSC%Dw3&ixJ(MVvHN5{3JLTL(UWk8-!a-AnfKh*=dDAT zbbk_ce==A1D|ReI&d*}&NW_-+R_>YI?zC($4x;6(o<=j$(a>y`5@WkpGra7ENuo4N zXdVqkahFgF>1cIHMc4}1*RE>igtT=2p6mcAH@~PQyQZLhK>lmrhCRh=peAafH*sdG zg%NZE9va$~;LXh|<&*#-jRrdgNWU2aoA0vn5p{M60xc}Xh}pB8HfFkxXKBgC=v%9tq;Bod7V1)+(}dvUG4_Y8HW#M|ogibOhr+!4f(p%se~3>#02)Y&wS zrd+p;%kLLhK-p*wHn``F!UQ0$f;YO09=ruVxZSOrh*@{c{LaPywmbs$V&F8Lh^U_z zd#8fYSf2jM5oPgyB1Wq*5Vg2OYXcz&*BG>Z$%!aAqbsj;IDFlbQDBz3itd71@qmy~ zKpRd-BY~TQ93f(C1@aZr2wdT$!T-yn1Z7E#APD{mXq+Ny? z7yNM`KVn&R`IwoP`ss59$skMC0+=Azw&rTVp1F?DpH(C*j?j)qdkMNK4Fa>$3epPJ zjFkTotRgd=|39B|qRfz!20V;cd-QeoVGXj0Ec8IK)l@wxb;_41Noh{$NYPPc?w5AUwV#RXSm)Tt~ZD4v2cBe6+rtwT<;Ip`@;3k zaJ@ZTZw}XE;rbB3*!SUjf4JTku6Ks(?csWJxE>4Fhd_vZAFlU@D~Pe@VAQU+hwIJZ zdMsQI`s)|@g@IRP7yD(eU)KCW0$dI6&l~>gJ9=^rmNu9Nxg1S{9~HRdapYo@vco@y z^(pkA_BKE!y!%kb?TgFa=x0(fW2(X1Tl}=-bhgia1Qvpc@Y{qCzk^V)@#;Ye=`4GO zkwp$;VI+5#SE*4f@4T9c@|}IGZtW{ffrFiycc%FE8x}`O(!jw(a8CQ|v-wO!XXeH` z0y7t|#%ec>%jEcGslSA|gt#9s&IQQ{niUg^U6}qm*Vtu^0^s@{>8WD`B8cHBbeUfu zX!{<9(PI%lr@$D)Sh0)swHU>IG0M>6GxGa&MR+`*EAgPprcm0gPG}Kh+v{6$I``MW znykVV^(&&tr3OZ)zWr}vjz61xxHMwW5c`^7Yb3{13_&o&b&1LLb27_ibPA?7YsHh2 zkgNd*>Dv|3w;taTo*&iqSQhA}SKrj!R>KRElX`nch6PjKpA>&3VDVhDhH-v&lPWZr zA4eXHQ2VEapqp3?c~CbG_4FaS!9TQ7`k|(q^!^4>nnX02p|Ltxwow=4scJHK<)e@F zT4zu@do-ELn9j%-2?XQ|L&4CCH>|VB7rP=~?23G`EAqvz$QQdJU+ju}u`BY$t`7yI zJs7U{hwFXedS|!_$s(tSWT8dBkuP?AFkF!@_WQnYMZVZ?4VHZ$uE)alA+V|E!m6&K zFkSBpSGsGzZx7d-!}VCW9`x5Q@(c8*kBxZG&jN}9BbcPPFum3A=kjHba4a#A)SO79 zTWKMXdzmgl6IqQ5JV>IT&^wbaFTz^194xjht}NaPV&{8=KagZtEx)8;N3yx5gUCZ0 zb&C1&7JC`%&@MpLAz5bO*J=l5Xo~%ODE{l=`X133iWV{O9Z097_<2c(XXH|80PjMC zqYd%ZI!&qTsJ9>o0se&5U=J-Un~0V3vS+gJ)Ci}HuJFY~!cbo~I5;~$h=F4GJ4m6f zVFT#`Kv!7uVJj?iz5`mbGF7+vJir@4$Fsr`p$+CGFK-&xFcT(Ylz}@(o2eDqETtT{ zYhOr+NBc5jD^6u(Dv$vl1<75a3JP9O{NsOPJ{GXt0#C;XWG9amN3`?#t)(5foQ9IbBp2Qz5dm<%KP zR~G?IaX0pjdWE+W0y2oih7{KXg%a}n(hEEs!URs~ak+Tlq~IEQLu`&@c+V^uQBTZ-gob+|P-mtdpOyp?C~&iH+)G8^7v2yPa9+>; zvUk9ieitWOrg?29%REf&L4G|}?j(hdboc${7p#;k#=1CzzASGXMN#~mte*O;*`in&At zji&M}rvjNaf?&B=sxE-dich-XgU)#-eW2sen&w})`=zNYqsU(KYV9>xv--~!AfUhG z1)6U{Paq!5B^9%(Q?|``gtlqU8)-qHar3j^Dae)Y)OVp-WS9^_Fn&5_H=Z%m5u-Qu zSUTvQ*_`d8QQXg*(ot{qrRV(k%C;Y$wStiU z9Xpz9bu=q}(PWFl(?p5kd`y>ikopb_>r{x{LKRMRL^Ojf{=;GMIPcc7vnG8!c~r-a zl@oPe;&G}ruuB-Ec>)QpuTTN*I{f&rHzF=6J}*%RmIH(~+&d1V?T?e5hRwi8R>K5} zP8*|o$_XLc!AK@IwFaJmL8A{gZAjyJks<5dwN5_z%*z?2X+-1+=26V>sHn{W4d6;V zuJr-5DPjMLd8PTw<;0V7WyCRKY(Wwj!~>h?MW&scB#r}s;H8|5!Z-(uSuO_1jOGmx zX$DazsB8ceRTu{C;X1&y*MSwX;pk1|$CVd8p18AauHxwG{#U5AQ|s7ha|YqW*>LJF z$%g|rJP`S*o{YhML?AYoU$;-mDxJUCfR>j3roF!^X6HYd=o$UhW|HYd=IVT=jN(QG6-DUA}@ zKUcSrs5x{%&$5**~EZEb8knviCDx{ zWZ|kpta2?(Bs}{^MEvmD)k4qt|1!t{(L3l`{|4euWg19=qs?uJL9guT-e6}hG$^po z>>a&!BYdI7MSMGMXS?GrPB63xew0PMTxyzR+cgz<+XV<@IXGhnM=_Ip7PcIQ;9L4` zNE4{S03|@7Vg*Y&4nb)PisKq`!t{okoGOeE7DY-THKUNpa*(jgLYw}TaP8Bxv2=~~ zY4JEbW-<~b;_ zoLpTohzXR_KH6mgHz8O=x`kpXxIk$x6u)8`ba4t&2W=sMM*bzZC4jal&_v_@TYXHw zomnclEHi-@+D}-O83=RD%wJQQ=tPiZR=@4q>m)zuJ!OIheeIIgXAkwRS&aKWZz7j% z?t;b#3*gP5U*rC zPNBU?^3uY;9pUhSXvq z=FM-0XV46f2EpIZCNQ7H-~$pHnsL_w43iadtIAA~z++!y5NCXnDxXQNq)iKv)vuBLI33?hyI*cGtlCXX=3`?O+bZx0z z(Z+EeUoJC;Jvs+gH=CRwy}1|RokI5tGE%N?(KG(9M5CK9rR1wOYn>i)k^^%&;l}MZ z{bmcm6461cOMFg{ZBc3`k%>Ut&poe-Rrq2>1|#`=MXe0C(lCax+GK-7aPC#aez8?R z*~NyMkrT^q(zPSBPFfeNrzQnVto4kp6nO0#dI=;bqS^%-f#U^LX?oB#zK6#rg^Gh* zhpBKC70xG61-uk!Ba3@lWnX={iQbFflW*m#p61ISN7BK-78Zp~wJ-Xx_VwE*03I^l zfx%w&P6>yjD8OMH3ikI;Hk&14qXs#v4-kq5myJs{n9B?%1LQr!JL)HdA&K{+v$lNm zWXmpIuIyqThfvP1P5Q;yNlS?agsvgP!7bymRBq-g4Re{m{3x7qw7=XW`U;*~$rBg3 zgE=BM3nCXL%IllbLoW9?V*aJ1#qC&LnZM}N;Q0mAbC8NMTj0cHCR#l#?WEZ+XE!P0 zO0#THdNL9FOc|7-5lu^|1_O0R^=^;9lD3l%v}AS24}rzKdKR-#D_-_Y=dr6zty{fP zI!xkGtLE+0_vW_Y^8i4nS&ZhOW;-pLng!BM!`eqKzwT_qHbE=39NZD`fD&fPwlqHl zicPctMS=!gbV2DwP;x_pO(T6rp!MOo%Ycv05D+%oVWx!w69Y~ShpahhASe&(Rt@ap z>eT0{lEuQNV3_Gt@ZHd(s4+Pg^N-|s53#eY_3cBhz6#^)!wwi{6fmtNk8FpxMn&C> zRt=u5fN@I_;#0CXAfARl@~Jk!kiBzjNkcGtYNGOC!r`yu0*UMk6|cfn*O_nhY-*|c z_1@OUVGa%1pKG!lx)wPl(SkUG^tR;J!>OVulF=nivl>6gYiLIPgO0spFQHyWgmGwI z=%adX^K*10^jzbI66|t}xkA;M85(WbMT#!l=d9Xc7#lvo)9_`1M{#n@QmG84(f87R zkO=dILAQ;rICwOT{3)9gH0AFQa1dfnz#>eXL>AC`N?_XVPJ^DRr zMSt%b_ zRh!lA^y*BD2nONp_oA&B2kQO4X2GAC4R(6F&@fqb6qdw> z#L~lZC5a5}a}zna_I_X! z{fDn@`2VP=UKSLUX7xksU-TR6R{X9~#Y_B~ixS$kCpMBqjf6f{M?BtHuO$m4S0?!i z-4wHFs-1iTK`1CCN&NS7CVJPX`ZRmt^A?4M2Nu6rj;y|({A7t&lWFd%2)(KmMiIVDs|5wz!GV z3{TRgID>y~a#{6XEyvCJ*QjG&b9iEW#a_J7(4c<#duAFMgcWpz>$-+Wv80B2-$2s- z^>1-|=;E71-m#N>&4q}tQVtBdR2M)QF)|F z5?=YuAxchNGUxn#{gIOq)5U!%21D3~^=F!~o_Vq17k~QW8&tL77jJpgU%cxV9!(oB zy*`#!3|>UYXPQ=dgc1$AVW+!47v?v;tgUa){Q5Z5#W&ZUMs=_G(YCsBeswVs>*KK(D=zRi}To3tW0 zSb`*ltC*D+?-y}nc=s;ZMZEaw%R!gqh!~U!`6Z%=lJLj1#AX;g4~j~hd2a&I-k;NX z-!e9=E5`P?i{|_GJpw$uM{mq|Z!-w{9v4URzJ;%^r|>>=V}Uv8+s?gSyFEh@(_z2L zUax_PYtub5uhw-+TXygX&Q=^(u(ZUYY6;CzT-+W|XFHBi;hJ&{uU%cRM+;i!9M%uX z^?L29h2>H45*(^ynDKZ`GG9ydU3XgA$S`~KOm}frS0Sa%!)8_2qW)viW>r__vHZPU zSdaFz+kiz8TQr@uO?$(^JuFSj%-`37LpcmFHqLc$-i{fra=??vuGgh68^=k1WqU8_ zr+I(sFUwKZ?fA8I;cd0==rY!VGCp>SwMxc{aY8l+SyyB#m0{i1Hd72LVbW1~#z?A< zJYg9E2GEk6D>5D|nw|~iq5C0Fv#qx!6PA8Yhai}vh#;^)zG#B*#p?`7FF9cgU3KphQ#==c*_5lYj zh+aUQJ>f?T#Erk>c*Nf^5EnimOp`f{#p5~$(P)SeRv2#6Ml(2=wa6g#p6nIovIyiN z$oN7X4tbL3VFTiT*{}OR?AbuGQ@wssuzLbNLyoO>3|ca_xz02$+2%YWEYAX)c*igH zQS1uK&7Fa5E8POrry(qNQ!Tu4$V2~soAfK z)lCkch*+Br#XBzLmca$%Z#*cH334aOrM%03bkLOKvqBOE4I=a3hk|1g$^`$ zJ#kW6RhdoB5t8m9v6V#J!d}VQAtGKIZri!MOD45QJsxS?tSVqK7AIsbyON>P@>^QL zX#OgcvE8|r{nIeSU8$#?J#?ydC-<;;2!!x|mmTj|X?I|59$m}2zzg%e7I$lG6ff%| zkWBD?dm0vPQ6G^+RgM}BITK;5V6+hnq#oFi+*KxbySr&CM}rFoWlxqD2HMnWQh#*2 zwkB90btgu4*0p1x_sD^?vN=np{|JS$F7!edg0@$j@J3y*990Imb-_B*c0u|xUrnME z^j7ofMia$=#1<{A%8(XYKBOnT!RT$Es$nKOC zYyLVi!6!J$hp(RuzuRKjGFwhF<8}D##Qr}0tXptYv;O-{yDa25JbvKb?=NGK2fqG= zaxd#lA;22W1o)D`_YPV$hNw*{=|7~XHUCBw z`C#m%mry4cn3eExue0vsxK+fz#{Ty2->p&y3 zK0>1+N(sCXNW%cqyncEw8LZ))!Mb(cV9h7Nhk7|8=MZVy_W3_sg_)QbM9AQSW_l=Z zIsRlw4wreVUbyVk*skg~F|O(}7~#pc0hN5}VhzYXFcO9)VpM-6F}D@o>`u)6_b)3z ztMlaE?|sg)Xm~aTAHuvt^*7bRpZbkQ_^$8O^Vn`rpyEU@NM2|Q(L}Z&JG7#rp1OE$ z>Ujk4VCgCF*fXGh&jar}JiMo=83^?V6(JzM-@N!$dZmyAT7#^HRD{dKATyRxY=lQf zpx=YI~@o(jGpAe0nTjzbd&?GG-v(!0fIOY}leI$k` zVQa92czD&M%wcSDj0m|mpnjJ6Vx=s$X*Iff!qwhUql9W(@g5Uhx$>|ir9CWODqSjh zI{I}ogiKK$fNBBfOQOB+5LzP*G(+$RgF8!m4DLp>r}~>}HM0D+Vb$~4?iB5P-(yaD zu*OET_ia9IT?q9k(BAj{OQb#MV(_g7w#NTUBER%vM!{)s`wZ=|p2=ph!Plg9#gXP0 zrZwdtK{nmA)kWT#j_Hz*syw^Z%9ol{3fKIQ@mukUg{UFByzOz7;F*@t@ZM4m zrfF%-w(Q1lPSKJ_x`&qRD^5oV@Zp)A2cSissKd6tt;rWc9x$V6XWBszwEZ5#awW^P zMl4*jMr_|zY_}7?cahq4L$DL?mj?O3c6J5AWuBSsmSRRmOTp0592L(dhSn#|&leGC zs)nG~!^A`>j6Nse1D%kw%R#xl86bbV!XiB~K9S)<5y<+C;@uicPCQ!l&JBupN)uQp zIf+QEXA1-#!y$@GB_V)GExWVWfpeAOTHk}Yz%pvUtD$Vh=u(EjIVFI_BwF`)X6e<*rW9KM4d3f5jNvL z6T!&z>JW4BbSB`QQ)-|ElUB&xwUBH{++RpK^(ynFFu^+-rIXDb5kGnHYbN!uDtxaJ zChrNRpn#_8L@QEUTWuSk9jY1LXb{)GVVJ63n9KMq#D+?~DHU$!j2h4S{Y_TwaF}+}GCQ(L5!H2ledPHR;En3K<}kD2lNgR*)Uf&!Ke8UH z-_EDq+94Tg)HIqp>W{r^{TGy`#7ia~T4FVO+s}GgnO&=}K~m?PZ^6|nY9LW7;MLXh ztX4sOOmk$QOi5N!KkM6f;S(c#@nd;kV=NzxN9UDFT34=S0y6%SU|nNZl%!p*(f`l; zS9T|f7U+`czkZVS(=_e(dwOYWc1DZ}l2cF~aOc(FYNc|pEkqOGVSpKG`p#^&4doL4 z7+p4AAY}|1IPu^iC3uA~8I=k@3EgE&TxPLRQV7p6k%ICUza?L>b?CggNN7Y%JXLruU5 zh2cK0jvggPtVbt?$D`4m-!UATlPx>ayC!GTVNil(pig%j(+k%nQ=Cl3;(}~N1ie^~ z|4nk1N#xiSUDy@}Sa^>ouF*rB9FC}<*FXZA=swc^I~>Jzru6)C$@ztV>Iw3C$(DgP zG|D0cK9*P7f7XGOrzB~X_xgk3!s60syu7mMj2*?9o40J;w*7HCcb)b4uXsYaI(g#m zul%a7UOW3qPd?||^Km*D=wVPNoHy4}z*0j2sro+sU7=mQ6$Gy84{ zDh54H2OG8VKhZ`-`WxFZ37KiRe<6G)|frX`mbC^#V%%KmD2U^0e67-3Fh zS1r;M*cjSliP?wl-#_8N6|4#jUDbQ^tZ!U?YAk-xzj~2hF7?aBe%b36x}u7A_ys8I zqbyl++-fzv2#vbPnP)O-fC2D?FU(Qn77rR0&27~6J@V9wgn%kLu#20OR+_9X*S^_q zeSPd_j!r5a-BB(FCl&ZM*WgeG2+kc)TGZajWx!l2ep5UfIAQ!Xrv;0EjYRXsLqS^` zK=Bl@lnCy~H%%6W5QbSh6cMrI;w~d3c7#3x(qKRafhBK?+O`2`5hl!(D*<8h4Ki?) z=Kz+*tEVD5qcM8*w86XUXk3b3y>%cVBcbN zd#V-_#k4A^Y|!9i4B(xkp@X)+b@?1MQT&|b(fFLl0&h#;K^W=!KO?3BY0Y42*8e$+ zsmA}g)L?2!-Rocq$k9B8sikR5J()KlvECBQ=SlJCypZCYk{^&=4@^1|>fu}ynni^N zQzQ9~pq=7v!cMv9*RY>V>H(o|XR|*^je|{7W1iKPCkQgBpvW3eIu&b7HZe}Cisi@Z z?y`qEIuU!CY7HEz><-J>K4m0G0-B8=i{c$3k|xQ)#*_sx>fI)Awmi+jXP*j8ZQG6i z*0UHJ*t;xdU@#Tb8Wm>q)E|-Cz%O#BwrZ-UA-`*NvqF{B6J|Ji!d~a0Teu8ZxeR`d zMwjJa+pM`pbepDDT)0aahOo+I2_EdlWK%QS*(AexlfDJxg?1{hkX6DL>M#z9$;w^j z%H8r^umg&Py3N2DAf+qjOI}j*Td0EPzJJ+ZzRR9avWQ|D5I z@f=Q%=U4v=9Z&f48jUBC<=@7$JD#^{JQ=k(o(t3C`BkSgo~JEqO+YpHZv|A8um2`9 zO=jMvF#+>&Oh(gV@|BO>n8XE94FJY~6c3w4P*SZEKe!)V8Om?DiTf z^?iEc;h%&QjRwi6lVOcQ;y5ql{gZvl{K8yq1RSI4kJ*`<+>)E+242bA#-^&qyjvC; z=xjtoF^z`Rf7xiDU*7w}^xIJ4#^;iqbfLH9(lO>M)$?}Ql7c;1zJVvg18Zds9yBi* z)7yxL&C_@&PX`Y+8tW#&U$S++1?$|6VISz=3Jzm^YGXKei~8`%1qYCzvpw*JiYScBG`7z_1HJsqpBvuxdKo&5 zd8CH%G&Ow1=}^PzX_q)VZU&&`7!A25_x~(R{4ak{ir*3wYhXZs9GIo)fqA@%B5?_5 zobm_ZGTGRt5}hZJEnp^}Wg`&GZ80+lbHrAMH8~?XEKRS-Yhp=CQFDb7R>Fu~ugQ#y zqARvG|Ae~wcy)Ej928royLwjW>bh>ay|Uzob<1RyO|i~)c1MvMAGQ=Kx8@PEsYqrR zTiiO`;x3o-U9>JMO*Nv(7tyrUa49aLkuj7-v=D+r*h;(1z#7ANr&^g>1}T2G>!^L4 z-m4|~V4xhIvKGCC;L56w_^NY~*2)xxM2s2mbj-u%R)xI|-JI;pIA^>s%t z(_+o|Oz&%OypMw8eO!*sD>!n;`zg#>PmRWEh?amtKqE^d@(*e`%>r70Ekv03lIf%i z>7pYyf*R^!$U49t16U7ouw(4iLzX_z_)s?em~Yw%WO5&S#qtC_V^Y007HvByt5{N zSQOh|yh;li&snw)8&20^g$0+0A*4o6RVi<&mQ!OxRm}<@J-3B(-0P)$>_j;69~MfU zn)t%@z&!7E#DS--=G|IW`qnzHCP*4)7FvX3CPNA{)>>C225y)vDW|mJpqdp?TkL8P z%*&7)mHpJ^fG~4bR5LmH1ylbpV_gFMiU1`~BFTwd3`+iKmlnm=wD=s>{>vCA%4d!j zLV3C%_XE79tZfWMAoG<~|`h7qv^KNUo znOisYprof#xmrk-9HdzH;$c|S$6E9Q_U<%5o`94h3poSb@mVq zH*>Z`XzK*_$!E~{2@yj1j9{I7C-N?vI%z;f6`o>$Y)OhmnID0F(S;%vw<>f&1`+WF zC9ai1h8Gw+e7Bk5UnG7o->83M{IJ*^?8PP7ixxY{7mA(KT881ry_W0o1Go@|z=a|_ zL6_%ZR~+4uH*~V4yG!MpzV#0FtzMJq8;9@sOMbfaI$ONRfq!)G*leHT1?wEv{WuyrlupV-1bfd8lV+w zk|v1ebi3z}i5#gO&m1N(q?oBjwgu>#h$)0O+LSp?CnnDJ@v$U}%4)z=?H1$EfU=R$ zQE+-Rz*i9g@S-pED>t~Lw8zhOM6?C}NLUbS9N~*0NmB5@wrY7e7l|r)+7IlnzJ;(- z8`}wM@?+I2{jyNJRkoE&9ZSu>c+!q!u$L$4%Cbj$O_u#&K3eRCkT3z;D0*ZiMvq9J zqd=JT*!+k9T~l`rdKHN;eRVeD>K2a&v`n^D>S*CuvxWkD$cGB&uH4v{Hx7$s!0~Zf8dnl(fwU1@N~Cs>`JJS~$1! zHR|0EZm}VYP{Jd|hAdh{8VH0r5;GEP%oHblJg+kkGY`4uj1 zaIQ2W2rj@fTW2L^0y$I9`M)ydYc7txwsL54hWrJGCfkF|I75uPy)lR>xKbC_P0pZ% z-Yl2gsZ1!oy*wid8w!@ETX4^H*0k41>pEE@0$}cX4Yar#U0ZOO6y=#V#B^&LJTTP* zC4pBRp@KrSb}AH!P>pPW$)<9fQ_3PTLNoktS#~WwIyphrQ2PRBxs-(+WU~?*vVri} zLn$I#KQZoD@yd#FlO14VXH1~0#Dg4pASu6uG}fJZ6H^^6HK~r4+EhnNlIF4GgY9jT z>PUt(#`PweWXBGw5I);2Q)A=U?O?F#T%)9ZU6b~!4VmZhug-t`yYn8q5D$@>u-4RX z_-}Nj;jK}S0LfEcEo6JNH#MjOhXK`YX5uhRn zHs%s1uC6y5y|d98UnyB`b4YutqBcFfpCdwmjr!h(0h?Y^T@*uuPex{{4Heqh3|bm*jIQ?$iBFwUSiCJL;FPUjOK| zu^=S-M^e{v>D3>6OMG0s*S_RKNT3S_IIob;JRDwL?Z0>z-5XZ_VLzSg)i=YzS-#Ju zwYBq(J7+3nd%Yj$T>s^D@l~k)bJn5;&W``B?`wdez&%Z80Ew*}$5P=`T9M30=V!?O z`cJ#%_cVRy&Fu|Znr;arq1``L_eDyOM|A{z{F(r<*>Zi)Jslv)Ea>>8+%-4>-lTH6 zFHY*tCt3vRzgPjVp+=^c$~eZ;7m1OQ`e(Z}61C?wHs2oPOL}&%wt@lUu=*?8)Wy&= z*;7Ivw3EzmCBVVRD=iK@so&5+Lt8s7|JAR=zJwY?7QJ(mANQQ?^=p1@_I;T{iP{|+ zDZA`nUi^jnD$~*|uo>zIR#;$!rnoR2&-NI7FwK-bB5Xalr9JHknqug882Ka>H6w?e zQ8YS9eX>D;zX}ACuVojrKi`M}Qk8BX6^DerBwJG7)r>ydiyCzE;??ho9cIu2r_fg# zMvfNmQ$NX2Q)S*|aPa4Pgm}p7TVijJ2=7eO>`25APK>0!<(616Ctn08lj{D@)b)qk zG5Bq(pCLeof#yk0Ll1}))mL&S7)|+p{VrXSoczv)sYo^ZIW4Q$Cv4R?6h?MFfx_Wp z+~Un@nft?`jdb(_Q#pwn`3)Rt6dKvS(qxT|5ntDDxU1=89z=-A`1!J>m7$~eXXO75 zqkm63`eE3moy6=xKsrrmL?LfA`>A!!h7{`c@7~-3WK}rk0i5x?q<-Je$JfpAqB@{p zl7c)--Ey&5)k%DtY*rsJAO)n1C^2%O^Sty zA|x*Wc(TTYUY4|e-P2b{zLR+Y@c zbz&iVWU-L7hZBwd3k)9#xXqec+|Q6%?isKtky@pzDVK_9^8X?^1Q2-aLMM*p6p5Go8x(Us&LRhzgIVRpt{vi0`_xd^O7GTk!= zKJ4$I%{#)K*JsZ`Frhk&7(yY)0$!fEmQ`sqZi z3Ni;&6&#@oK}(cshQ%J^k410v^?r9J(pmzzU!5dc%nWo{#5ZGD!~1ee)Wv@H z;7sb924IE|>@Z*ubKKMPujf4L{c}AvI4&k_kAY&x?hho*Ksr7XWsHH2(hT8lvz$C+ zr$iPb8$5lD#F*ugqgD1z+xTV%kvcxNld#HDXw2SckNAl=Yb_M_fi1&GQ#(-DC_4&A zqbE%jtd1D{Fedk(h}a0DJQ{tQ*rt=^EeLprN~aaS&B#X#ix3|hZP6lm0=q4iSwk%_ z$z`q1=<X;Wd1sk-#!B}u&e2}=&?x`Q1SX7n?Z#! zAP}9pYsWhJ@U;5ou*AN7X^>3e;7!WUsQNVhhUMgu&kvWWj*->ezRVBFSipJ?It_b9 zXK$n&%!Bf^qPw`w^@0C>frMVK{?ze^8kjiDN1Z8DZGs8(Tt3m!OA0B-7P#aJ`i^U4RnFcV_J5V7lJ0@OVDHuG!%4b40);}N`H(%J9^0`9K0?5 zR-;#@+g9j{a2@HtXy9;YMewFV=_O?qM_wHpj`xdF^O=pH!|5;(fi-81O!8@e@(sO$hI80WdW8b?S2 zerF^{Pt>?Vb4ohGMefO?_ZSVP+?KM%N9R6r8NLp~Il6B^qEJ70E=(eiF1AM(1kZ!~ z7Ci|N^)2Yc`nL9P1UHRP1t9iAH~zTD7@R&MKPZum)MAB$fx5Y4shHQ!odhaSzoN-9 zSlnn-hePoo2k0oHTw`7b1D~!VcY<|-hai`4&P7FD-`GrB<@SP*%sG28&A+x|{MW4m zOqDfAmucsof}tf9rN4G+3IF{hv*^!9vBwN|Eqk%K7SGRK9Lfw%9D?Vnr3(@qI=ue@ zrFkvWOD01oWKivr4p(3Qpb?FdE(eRBvJQi!gDQTST_zsSgkxU6s?%dN;5|l6O!YWS zcTUk;EWCAn#fY?ih^PnE5gDeT>nx&iW^e5Jf_1$dSl2mu*(m@T2vv4Gfl%JZL>jOM)KG->`)IT=#*xB<1TMi%d7nPtJ*=dvU8)}09XNr~*#z(7ziMX(I$ z3&q1CfaMgGEhSbX<1E?SLh+MAqhy@Dkng8A`d@9<7-Sa)T|W#+qjrrVlKO|89;l$i zHekjdsjxj|s~n8hEZvU_a67!Owq!|u$f1c|&wDp|ev*L~sMRKmxFp z6Xg?YCZ=Anqo*2~!`y|VTs70rt!~x+3nF27q@9w&KkH|rr`dpNw0VD}l&KgN6O z`rt7kw*J`bV|~R-uccP^DjX?(RZT!0tQ5W>mS|dpjznqxPu2KzWrh5py(H~PsOaIZ zs18*K79?`LKMGb!>R)M`$}o7d@S(hcv9L|32;iacPu~(jpl~Bil=@H27_QCpQ{VeD zv0(k$+v2SidWT@y6$aJj+4Wz)E|!Roy<1kkC583gi4M{AgrevT5jYJpqCdg=Q@m5{ zyPM2c@#;6dCN>{k3Oj9XHIHb8X%y&O2gkfd0~TYeoD!xrM(nVuR-u(fFwbk1{@CQj z4KisN6#8yDa+H3K9*~Qt*Dfl~O!Knngy*wYz9M#2vS_XwUNnP2M}9~+wahNp`R}?Q zVDOd5tpUdlDKxNUN5o6;t+ArEpWyopNsm(l^vih9!W;>eVzn0Tk>ec^G%nW2Cuc^0 zeS~#*rK>-njT|(3f#d`{OsmvOrREQ;$gxEyBFjmT=(P)xRgnY#qKmL~0a^uNl9rGD zA*F8BJ9mX;rU@?<8j$yGegnPkN=;}<0~q|6JFU4Rg>gc+2SA@Svr6?O7@9MZi*{Ro zCKG7Ksc2-5W1Y70C`y74lrR23q%#^F&)TK;TO^cvfvAF$h(X8l6uq)Y==L^uJm4hI zV2M+|2ITWnRm#Pl*lbM9fv7clN`|&HObv#a{|E_lPYWW1*tT%h&0Y3 z!WTA;u`O7nf@>QN6eMUuO@f7*22I;x9e=0#qUqnj=OaCz5ecaXM&~dsM}v>ZVuR7s zO;6T0isketng28D6WR1Mg7r=QoF~P9(R(e3bGm_gW}pGqTW+xL@NvlF_N)3e<9JE~ z_R}sfFskMm_cim3Nm9T4-I0x{_tio@liK1Xels-_zMU*GQ|_`nw2>4)FE};NDYN>R z4OdeCP9q;06=MoUWZ)lYSd;oUn_~f+auS(60-q;jU;J(gA?P?6luN2`%B23}Pd6~f z6+fAj4UfN=LdJtx@w$by&;!(0IfnFyw{e@n0Fuiucwn)&tsWn|0x~nKVeQq_|PA${1v>No5(w zj{J?PTh-8pVxe_++L}U1k543Hg<&ZBqp|&_zhNyI@CsW@9^KAb67{Rj`nPY0{jTr% z$B4G#FI0)nqN{KEe0*pL7zIei;2BuQi;o*IWZ6Fb!$>6o(J;v%9{x{z6h;krskc5m zvA;{6b!(Zu^_JpZeHs?}GGDHWzv9wTI{Gdch)Uf4`oug`m|gOZdgDW3J+z@P&a7YU zl)!tp-#~)J%dje`h||umuQP=B_|X|5+>8h-^{y6Lpn2!dMWhuk(U9$gE_U;Iec!S8 zf>N((n|`fIRr%-~>koC~;1|paVoSq98e^zNVa*Szv0bD8n;IiQIY7L#_H3y0R_0U6 zgfyjmU6v7gw<-}LeBm!pXOQJkCjy3252)1Wb(jKvoJ6{6K-fFSHX1w}1^|YeK&Nx7kTq6$mGb<2N{vab>2-7=*ix^`l0`atYu3xn z^U?%wV5g+Jsp+Vphw;Y?=<-*f=Jm&0itfVPn}XThb(I!pW1)Vjj+ptu)TemZsLjv4 z1_8IeBaUqIftpK60`*CiUrarA}*+`8p#CqaEN-@KpMw{Ou0L1`FJ%pgk zeNGX^Xus1k8i8eoYoWM^jP`?qzaxxYz*v)kz|=^?{@3isy~tqILD;FPkE+5d)9HKC zBetN<-8EsHY!%F9$>?hmYD-V6EWYT=N1x2hoyZX&F(Ro;)FGe`@~Z!PJG=WWfwNOO z{r*O$ujWDWB0Eg}ceGqP$W!xIdeC*#YE7EB#Tv0AyE`v_E|>-F;8!X3G6O^mr9SrV zgS%+JYZyCJw5|c=8px{upSpK}x2vk|{numf^V%oLMtR3x*WSik6tH+N7lDd7YZ+0h zy&^uU-v0m9wtwp<*jqv=<+gboNC;6;qo4)k%E>_qYNDZP!3QS16klzukD{W+D^gG^ z(drdZ$^ZKs^Rd?6XD7V+@8|x{`6OrWwdP~Y@tR|dIp&;`wEcG1_JMkXMV?E{i)6-? zJ$9p6b_Q2NhpM@^RxsM_`0k{d-#N^HS^{oJLYuHYFx9+}g(+H3VL4lF4-*i%AYu%P zy9stJ+m)QVkXAbvtSX9wDEdiby<3f6QkcOS_MFY<*kRyrtMo;qClkks`!AmdP*J89 zaJ8D>@EyG+&7`#h6Zg^q$i1&Ax7}p!*d$S?iq7EFbt~f>>xDXX6B26>>9&5(0$M?g zw8&q)RMP)q7SJlU=NVGpd2K*>SY0hrW9v7{DY5|@@_G{KDB|MOB3(R|Cj1Z(Q@Lv6 z_Ti@77#7U1Hn~?{i1TjHHa4w!wV~d8{sn0LX5QwwVcc6q)}92)P{y^CdASjB9HDLb zTMd}~=AiJeY+svR83}xfN@L#XYw5p0(RV+pUQCjh*tOMyDNJ41TrW2hbhP4pfy~u& zSBoz5YVGRkNw%;FZr=aig}9-RT&kODEAm&8DcuiaH_*4sV^2kRjz0D5?L33zq#^H6 z3E?l_s+GE1drFbdbI3t!oI#zgVgthIE6d5}Q)X-zAKgu1likbZY?P<*U7iyO!+0RY z#M*)oK7*loCa)rs4Kqb-)AxkPGU>7GiX{&;WUa8_Yic3Lc8{GP;h*wpyeYD7G*)fZm{)U*`XmC@6F80>{f< z7en4MYfSY%zsf)eCRGlh&2#~+G+5f4l2zHGn^UOX`FTr&)a2t6mNZ|7&y|9n_M-xB zNtxMc!ICm9gsdb!l5SM(elVEy-EYzWeXL0IbJn^UJi6}1LZkIN9{bu6y#V?O9+gb{ z0GOW@nX+VE+mB$a!AiS#@>K2CMI}%6GgvemQB;T>Q52Vur-QA^?y#T1R$Fz^>XO$- z(Q<*Mq`L8);Zb#cbo#2>t_x4QA9QG`K2aCkRTtb9gMqQ&j$310$5k48^~)HI4X)>K z1ZktOu@(OK2VxT*PAmMK*l)K{`17L+*M4yW^E)C7K%_v=Xpy^QnRVF=K&0LEf`<&? z^u;c6SE9F~uZ=xm3(y1-qQyYbm!S{13V^K*1=j{zhUK{fLGyH(NF>5Za(`g9w(M!~ zXJdF4u=9a0^s9YEKhUZRM1CwLTL6<=qZ-l^^IWRK6cBSKkBivVCV?dSQqqH7 zBW3>HPs5jUcTkwbK>#{}CZwRF6{fa3rNM7?UA>@-3_3&$N5_RQRn~bFII5-KA#hX| zeC#;FR&_XHA+P&kq0Q!skd|7Gz>!vxN8!jaUJX?b6Gs>4x${GxWQrn{xOy}it1k<&&Xk!>Zia(SqV9vMS6cijo zsuzZ2HZ@tFg`yOU2aauZ-jUhmFrF5ebs+-XsxFLyJc)rzlGMQ5;HrOlW9%^`N`Amd z(Yy8;VBqUdx zZwv1jvOO|oN)KjD)a?tL7`LwSaLM^=RHqA#1wjC{81m@4B43sSwYmRTDrO8HoiK^q4O*L;r5t7BVTg(RfqG!wAG3ab|y z?$Oaj)kH7=NsF{j-z});kl-p=N;=BTvqQUce_p4V8>giHRYPE%X%d}&N!WsITo6~( zZ`w#B7Y8*1M)q^lOv3=S>VCnpdfV0wVp_-p|NAMVVg)syfpd`?G?cBfXx?qud$ey9 z6dr1Zb7qL25$0;FdNah%a|>x2)FT!%6pIYIg~m)AtVfGHn)nQM?^#N8(Y>ma4Lcli z_bhem#PzC6j5Jdg)i%_%4}-d%gypy%8&PgJs2#x=7&D^y;%S4KaVk#&Z7UM}9KhGw zQ`_d=*P`Zs@(Urg58A!TY&l^(hWhY2)9$q*A5|_+QAu2^CBkvHvYukaJ9W!=uN)D2 zQQ3kP;}S{tqi(M7_sQb$ISq`ZRjzfLYSp-ljcO4dLk48B;Y*q*=arkovd$ONgw|6q zd5s_u@~Xdoci^_5^VgZqPrKjqWl{%;mHy?`BT5^*nH#gUk5qRz>jZ{U_a*X(0l7xd z0G#|6dIyp^XCSG5FbWjFRda?=+x5Wrh~RadgBb(3`n+Hbc_<4Vm;vp))<4ya$>(HrS zePmuFly_A3XEx7kvecb)Ff<&=YQH|3ZH){*Tv+gR-3Ec^*EV4p0f=*P!?aX^aX$e= ziam<$iEEGr7yVUAkbm$M7*PgV=@N%f8tx*w>Jt|PQ3~2BGq=s>FUt0(iLA_g`Rj(u z(_b!~W08M~^9@buuB|LvzScWqp0e*{f3?DM3rZ^tj`H_w4xP^DQ?!tA*7z`IDU##w zG|WJOSM_Vzq$xdO?81cTR|A+liTcRS`8`Lntoq03K!xZ(%`lcaI+PLkVO4v#5Ggl6 zWd6Fo6e(;?QFm?<_8(B!Z@pRnt4{_r2NR_8SFBFEl!ySY_SnYQqdtegE1$Ix#+9*| zEmzfjXNpQO5Jja}*a+EXejP-BG&Xa)=^j?OHO<`(l@y?bkdEQeAz3NQ3oeskQHy0X6)g*Kv7)ax@Uq)8Ty zq0eC&b5v|l{W_}rh`^8TpB>Cs1OluUKe~QKvX1(9wC6cpdh&y#1>_$9!ogiD8yZ>7 zutx9#e%IK&q~9=$7u=NJY8?8}I|xa&a!SM~&ML@u9OjRlsrlW0Xf(5q?WepVDo zP2gZB-G%9%I#{6xA25t`ev=04?f~ZhWVL7|Z}As%fhQY04=;&~V~q+ILNLKo{e8Xf z-)%E>f<+be!mw4)j*rk-5L_mT8$^1ftRhd6J)g;oVGQ*kaUJu_JkH*>h|GfX+t~f) zWy_tzX}7tXnza@ZUyppcfqLvJ2=yp;2G|;tT#&%#<-#xSLV)v8mIJB;Yyol%3ugg= z!rQo8yh^JJt{Q2zgiuaRK&@RRlFkI3PL`kDN&pAKR(vdQn|%(rE9Vm)^f4E zALcVbRb<=y?Kr0xq}oyaS+(SBdAPtMOvT&ovs8^~y3m*WLO(R%YjtzRKY_98SZ5J7=xb33_UKe0zT)(u(f^PHPbFiP?4lu89U* z9!3XOoj@UgohXeSTC<7KLjzowokRL;4P5QJfI*#4!QH5#r=ksaXrXV?juz6$n%y+9 zsWXK7WA(5X0GS&ui%ARTRJ&qwLr_$538P=9o`zfGb);uhfSip>264>@*6o@GdaYYz z3bsK%K8$XMTcq3Ao^|UQ8-~`S+^Fwy}t>K zJLplJ1`8R&e5qa&v7NIPLJZKbbk;Dy!m8ce1q<7W;IQ7`+^9P-*v0qEI8CdY9Uy>W z@rvQidEkq&di+>4_>CK)Y72{UYpZwH+x!A-kFxVRyT_KehB}`e)%n{OJbbhxuhWHH z=WDCkHxG`M8R6N&N!ldWKMR*bn2ghTb6Z&oFmvm$;osrGy&ulyh8)cP?u=OBgQH(cpcb3^V_T{{F zKfu%UNLUS2AOE(V9E54LArj6lXZ|wAWH82pbA?sHz6zK4^c+U=zl7{zkowT1syVY6 zyxpzI53*gRiQHkWF$W zXf@=F?vn8`)-QRyZ%qeQzH`q;wRW<-5+k)!tGZ=CJ6TB##{v!RcK|EA3Q^%(1&s2c z-JfDK?N@2_<%>eyU;#5mnF`T=V#Fau5+69M zT~)Wn0Z=?!>7qNGO|t6c)HShdbZV|Uz>_ftIcl`rOK4O7I9;9(VarN_9HHl!gyVOx z0IQo~Mh8)R7D}|(r*)02%Iwq#{v)r63@RLjYG*9mwLB}#FWc?^qTmeQ{oVy=0o?<{ zfs0x-ftc?=loMgwn0Yh|W=Lqvex^<(^S0CyWxiuVUTebYYwKh0LC7x>vpp=NGP_2c z2CcUcr{wc2+_M3)Zi{4%T2sS_gELr1OcHKR|E^S6=M4u|qqR00T;gzNDM?`mHTsqf z0S^zUM$r#nms}3(&j&kWDcORVWemowT-)3f1=h)htl{o=>CiX}%Hqb!p2a{?$|@M3 zk3H6hU-fU5k6+moAeV;CK_5E6Qu2qtmxUurGuSo!(wKK=-P!v3YN>>M8+r;LTgAUb z*V67gH}XkDtxp&X5hSIWvs!2dq*kN7HsfT^iDMI1S5Mu(T7N&hZsp=9wXzXEdHt-N z5hW^eZAYH=s-^oe0Rg`vWV*y7pQ!;W|8iy7#&bdoPZ_RWwQ})d=pKF&HK&EN*2zh? zOgY#$FH<$`hvrYN;~+I&cB-$&%%|QoO)e6qAi!~i@A#@~lPI>B=BDI|bkq<>BX3__ z9(QtLes@3^4O-3O?DBpcd#TptZK-B`EopT> zB*eI5p;|u0Qhjjz4+je0j&@ZHFk$3&%hO7`q@(4o;c1mmd+wqMSvig3fMUg`x!1yt z(T{LjgjDCb;CFhy5Z*x3V+V{giXV25#UhEqB0FdN;X>K0!zkTyB|VaF>UQE)xSis1 z<98-Cw&H0co^1j}By$(()&65~_{O2>%DA65zF|0&rnMC@G_KF1o96}bFh=isfKhZF zFm0u{E@%q3p+aAG>{BS5~PQ2!nH8y_8)0~ctYzdv9Zrr6#d&}L~eK0OFByl_237~knT;>p?0;~Q^3>VjtAMB@9XR#8= zVnT|s6K_ivHzq^!^kc1tyY&t|0XO**j}pYoeQ5o)LdH| z6%RGnJ_478dGK4K=GspvB~zLCPcnz9suMZH4dBf$O7x+XWQIR1n?QM9YZJ;?z3f=`hy8`Kdn>3Fy z;fd8g7gkJuXO-WBqF@c@!uu@NaR$(~>Bx4d5SEp)ViC=4t+6jJQcei7vbZ@DgOjs^ zv}pLM3*XipW4s!(M_QdNQ98TD!Ynm)^lh^+CtMmf7D-q-*Doh zH>sL$ikX?&2lo64NNS;TnK7ykVt3iZ@s!9x12If50zzhx4NXVEWJ&zVv^}E72E%&x z(E&&xvTesBM3W8#4p(FoM%zvFs*Kgx*6K=IU)*vKlbW`ukK2;OlJ%M(H48i9!&j|x z$|S{#AzqZ8P{f{PJ~t6^l97&Buv0wLxMo+UV#taK-+hF(6&A}(ZOMm`jhbu65=Obz6 z*D6MG+(QmigY2bXGOO;2++XcpA7Y)2?b*BHLv7FQWne-TaeduVCHioS6xYxs>DG(8 z@7AmCt#CJhk}&kxaZrf?P@@FwMnJoF09u0+-gS_6zh`g)xJ~1npc|r9kAhJm2Aio- znVXI}vx5Pd)JgY#c*yjF1qdLD{tCSdS?v+15f-%83`B$?00#mgPWo{lvY+(jwWOw8 zoxc1<9p%~2mWTsnq16%kxk$edp@&0$1M0d}hwE1){LF56T6uNY$=|uU-5R&87BLTY z*HE5I^_lumH;$AiCnE%SOhv_23MN+_hU*qKLYi6JMyK(TZoUIne@cGCOqkr{!uHG) z*NQ1FvE|-%KPa|xGqr#6arXqD+fF+2iQj~VVhS={`}ml_)v7*H`xARr+w@#gPKE^y z9P=N_)G=a|Pd+)>HdDYV+TIuPeo1>_(Y3D&7J0Fau?tLY>u_BFJr{9384U^-FfN@2 z$)B#&v)ZXObc>=o1V<;HqFv;G&+9z24%I<~Gp?2=7Mf@%l%%?m?xMqZJ zKctZaFwDHy6KEla2~TcYKO-4HBkjnXpR%kZxz6s;Pvi=F`$IPcC@`69OHYhArp09S z08tOa9w^65rYj+WiRy4=7Wo?}4e{>8N=n0pb?(oXGNPOXwK(I=X+Gq6ZFNy(%&;v> zC0dOVS1nlKQHhC0iEl?;-E3pJQR1qI;kpEuf`QK%Mg^AlzcXNY_T~r?i z>6e^}l#APj8hh8sE}t+|>hhsdum^1w{j5xEUpaIQ!QHjh{DwjJI-UQBUXWUJ(J4N8 zS?&Hn%n%jCDK;&tAQOa-?UE?;R{2eC>XL$mdAb%Lv`H!+4bu5T3r_=?I&#Yd7I@QF zvn8M7S5Vcwn^Sb`wN=P`2{qq+w?!ZI-1K=D!JSPk(cp>d-N19kyxR*By{pcXn3D!e z0RA_{{?CC~-Mke8x<1M#YygjKaqE7|%JS8f<$x+5tPSYsAp%z8tCt5PSF;;OOr?7+ z3=cK&)B9a&x(4-aSEXPDLL$&t=%5_a4u@x7Bs91YQ z*p+0L_yeHTd}iEpB?tQPiA<{!g`%YFw9$gj9p#dow}eqjPMHpzC!*3+&CHI?SKA*; zEg5X#bXvGOX4=q#ZXc>!U{AX3hzLOdn>S9#UL~NbhB!aUvD7WNy-WjRVJ}k+$bN>> zY~Z-zp^(8@H?W_P{IQLsp>`hGNTvf->K2>{(Huzwiv0|uS-U$tjF2Six*AQ8*Ou!P zj;Cs^A6dyux_u%k zp%j?Nu%lnwzO|}jf>4clq2el!V@#&n8UYrLZCYsxk+y<)irMBG0w=%2Olw62?vJmD z^2UB>=|PeeP1al*TT|AoQZYzSo#xi4$1&eUex|IDh(TuI=GM|bFqQ9v6$E46tF`O1XVXnu~4uX7JQ|X|m3ilwqw%^s^w{m$}oG@y|6(bzv9fE^fO<+7{)a5iL34&s%*W09JoY zaT5iuc&UG!_d#nFjKd|TOZzRC;>RO)wK-*MnUU4|7G!X_q&V8&iZ#m;%y^@WKYxf7 z3E30`3|1@WP+L<|r{b5a?=iMsOH%`Yv{pYo2{xKDRg1QZb2MTy~Iz=lfUNE)C!giWe8~2r|viHE2cF>52p?n#{8J zaayO5H2VFulyc|q#?03f;yucD!5o=`9RwP@OyD=P0(-YK8lLQkPue_Dd3LoPAe7jU%l+V4rN8Q8Zq+SxlrXLBX!#rA$q+UR zk-NJ6V+u{m#q{^BjBzo2b#tA6_Dd;#DJF9ESe&p$e|6m-D<)oU>l(N|#=fSTiwV0h zWz2Pl6Q+?MqpCrIw_QLFi*av7fBba5isM=8Y}Oz1*fw`xB>gJG$<}?YHre z*n6X=a+frE#r%+9{dRJ|8$^nev3}D5RC;kb*z$VnWWA#Mf5-Y12k)p+dEIs(eO7iPfEB z=qW?N0S(R??8hyGnA|*dxBv0HB^*Vl@gUduFEmPb$0o=0JJrs3yrfehG=Kw{ptB~` zm3o*ok7B+0;G$d<57$K#3&6STkafc738U9dQbMJkzjQ?71FZt#cy~doG)B9S#IW3b z32Y_gLl}69S3dO(5#~!)?P`Spa;Njc>y=dxedGlR z)AlCp5jRoTG_bowVI>Id4)Et=495EqP*MRU1yHIh#Hw^dkKAM}P!|*4`&SfUAmFeo zh2fYtZm^qGtX*XDC(;d^eM)H;bJ)cij0|b<$usg@sjBSY>p<9nY}E;cLZr3by1#O2 zo(w_CC)*MBR61aPQxCsC#TP<`j}&#N;@+z1o+q-&nChYbYQDYAGJgid`J)tYMSbINt!pY_dUbBF4}HL_|)pMZ*(p? z=x~XJe#1;+OFxt4otESBNFTY>@Tp z$=0?!W0kAFluq$^q9aIx+#13i#>)Ly( zej;vxW`~){ZH5{dgfU{S_RSN}#EnSoIw8}1@P(ZLVBByYkrLBjumr0n#|2BrLN>=h zMgko+99$q`DZ*PZ@(|*dFKi^YRm1zZFg%dTS#6mCdLocwfF8#m@@sUAJl}M@yd67a z4`uS;2r#gtR0@m4h2_2%cm-#}pGQ}_kGSXGO#NA`S{6_)gG-_4r`911kclz?(}&U+ zr7tszACBXSicY2epGg5mqqh^@%ymbl=t);6pZf(4`$HPaQy2)$^UOX5UXgLaCU{QH zu!Q3wOIO_&M0+y&VyT5rTHYL`>PnV~bnh-Y!Zv;~DLWA5p{ORtXXlEk@o;{!4A1dE zrrFz?1}AVp(pwRu`Y1N78r@Sr620QN&wPfPo|5lffp&^f2QBTGd(q+`@UnFpBbSHw z&)WhE1%pe-QY6XjR<(1_3KxDbV+XIKKVeuKm(m-52CoYoMLXXnHGbGL15ROqJM@>0 zchGvbKEfQk?5_ik$G2ldm4Cgmhl9|Y;vaIRskLao0tIB`yK6=&FQb~R6oKX3Q*m1B z16YP4A?s+XdoVu7@6NcqQ&)?6liE6shFJuDe5#2`iNtr!=#ucFg&9_4M&q#s-VBs# z(Ta}x5l1;7#KF^^)XJq%EW!CRiwg3f%-h)mXS?Y}z^gOhT%?Me4%EF(Z|z2sMTT2Z zYlfvhmf#k%6)fR7EoFyqNgf#*gXoneTrgqBYH7=??e088;GzvW?*z3sVN2`fy zw=Nwb{yu&VH&&z|D1^_3p;RxWOuPHVaL#O5tak5TA$M2<>MenKVYzfMB=2`&H_%(J znI7kigrl6oEbx1R|DvK!wH()+Z4pDcnNu#Q#?9O`4XOKe`!?;H*XsI`H7wn@sQOh5 ze+AuWhyBs!{vpvzfe;|#XjGY5qaY!#S%$qN1)?r-ff&=yo=0|-FI?H+lSQS@dh#0BwP48WVq7+6^UvgYEG{E66&G z?@pbtk-9^P5MCctNGsG{h`wc=ySg~zDLQfCF~RvV_;(ilrMt%pxNIF+umvM&K@p6Z z!>fyH(yoHpu%5M;|QNTvKRa7=r$YrSlApkdNt*dPV@r|EcAhsPMB~oPSte6Dh zCO$<6TM(K}s#!uC*33(2l}9S`O~r|PRkvOc!4=T}_ih>fLJwAQe|qtM&f*WCKdc`# zs6YZ)HoE?#CR!WDoi{EVhP1hKUeaG=AU=1I7y-F86ioCxujB#f$$KPWTR3;p2R^8j z_NR-*nrb9oB5hySKuuJfpr%QWh(bC&E#qjqSad3BjEuaO8sZdI0=>Kyu(Y2UL1ftx zSzBU>;bM+&T(SUUU&Jbbuy24ch)(y?U&Rtw+hPMt21)q-Q6zMb(wR}QRX$xaZ3|_< zERh_WEYlWaLebl+*2dM?Bo%8_5LdXwJ3^aEdrel~uYDW89gLA0UMY#WyGCtnQycvb z5BifYS;XiugbHxslRj{^PUorEQK%~>g*w}3BCals&5efp8HcI~X&On*LFpGtF7tytg5S7P@Hz(mLSdP|Zhb(?Rk}r8I7N5o^ zSGYI`n(|J^(&-7vloXrj3c!O3Wq2~*h>cr73IDT!#aTfSsG>6pBxc@@+S1M#V^ssH zBcLEz1PT|#1C^@#CB2RSg1yls4o3k5WOC7>e3~R`24X6(5;uw8UbGZ#NF2va0`#UA zMAEyPg&Ygj6MHI`KYtMpF}%Ie`+%><2VAc!23WqKGuTPd5tTHB^D@$7m zcu?Ca-JkT9-V~v`N!dEmA-z;$peS~y@3f^=m_#wv@Bpcb5>hph!MuF&B7{Z~APS)J z(L`v{;1Nt=OR{YT*l2fPY>MskK;THQT$~(J^^8Rm3h%3VVQdV^0=uktIMB0D5>Hxl zH?N+aEOSbZE&yByh_nqBhEb~mDe|q3$4xY^TwvUZRif-Go-&DOtg-D7LR{!rAo8wS z#~XvvxI_djpCaxxtpFC#Nd4A!%{h>zkgl?R>!^M-D%EYrX`E`U`hy^rl0e0D<;lr1 z!`uLlggfkfd z78q;8dZ|2M^@paeo$<@MIXnO&g-ShDOr9q$ln++9 z0~t43!SL>78__HTpg<|IX8>J`zb17lML@f)xM~X^!EQ|5N@(I&Lhp530%H85338b- zD<;EW14KxW!zYo4TyNQ=-#HD??R#$9I0$xV9dyLbPSeY7q;oT@P1=a%x=dJH2MM%8 zd5YHT%gq9)-gfN5tl<>+CsT7CnD5%Czdh) zZ^{{5eKU$TFhr7S-G$Hvq{n#2?t%Iq2W zt5p8U^!9o5qR3KSuaGfH8D&mrQ@!MQQq3 ziE$%u45MW!`&B#7Ow~F=AME3^#U^6}qNei_wkM&Oj)_J5a5R3rCkqJ!P=i?CoMneAV65pU}&3qnpDdD<^>rBv_sb zSXk9tQcn0tCL7;#**at8uXHfls`4E6cLU~_N(_UD=OATc0G>_vh@Jzm@gm#bi+t3J z@v^1ij4_g44iJ1p=rt(8P%L3s`vF2YQca{vA($62qum(?1(ce|#5;xt*b+{Sreev}ZgM19T@d#OTgb4W@xs zqy)OFgFts$Yz%j?s6MhW^qoURC!zwcCGxT#i>7@f#x3-AooE5{>XnPzNva<;)BU>> zGfR`;BX^#{ZH!F9;SQA0Z32c5=?1J3&-CM5*Cf4S!BEgW;U_A|J>6O~iRoXGPV$Pz zjler1w#)I;7Nth^SWETcz0|ct?ix`p^TSV0wBW#7jzCZ}nosSM6TB>a8ap|`4bi9Z zlM_y_5O{nwDCzq=Q0Y&5RaiTWA}czK!VSi;Og=Cemxg36ph<%p(SC*^;S$9)Q%TpV z#sn8=>5B=|M774gSU%oFwOUpY?{e3)#d<^$K`MK1n5yO`DwiN8Xi6O*1rumtw3hO~ z3W!{Nd2Yj?hOd_hM`8-|#quWlN8g4RG8UUY7Be=O?VfCnzuu$py7tOV73#=&uT z00Ce>Li_&x4{1NT`~P3E>(rPNT1YQP#7B+!NDe2{qEMHK;*hw(1lYxv4CrR!3Cv;@ z7`?1JQS*QT2i5}(N|8S5i5%+z5S5DPVN5+&KI$fI{3jwnP7Ex$!Ntv45o~%rKUJ=3 zbK`k?na%4UKuc!Yjii}{sf!IM{c#SBV6ZS4x`z)W-{I}LTvW=pt7&%MTa}5T&5;qz zI1^<~%%&Lk!Ahq5YS+yav0j4pfZmhjFv(ciQnmr#$K`%cBjGgjyrrl-JHm0o9jZ*% zwDpsCF-&Mng*j?;)tSY_svbwGU=b-asv9YmxuK19?!^eIlU(Zzc5FIx?V^dO)hlI! zVIu0pY+IjBZG9T>v@+^uTv^ME-?^=ddUD~Kp`j%td4G*b078Stm82`LF-5}wzPfc7 z8B}SNi@Bl_9OFo))qNX>i-$ZB zARHaUy8Fv{pn)hGCL|`xnGFfOwuFDW)`I~vW}%zA$(ge;1Kp+cny6VQ72nYfIInJr zm&-90q(q!ZQa?*3|YOXCAA z{g2TtjSsYR-pb*zfft#cm{gOC(n6h*s2Dwx_Jweo<96As;FIP`m0Et$Rt4;F5qe?u z4D<=fI&H*|2V1Fg+H=V;UwliTalPP6acnH=F%|`3gKTMOPlR;KfzU~WbC%sW2_0}` zfm~)YMnR0aX*wFWv{@J!SIzq|N)&4tLp~c!41p!(Go7cMdB@m-c^7M0j+-;@c;?MJ zK4AsPyyKHM@A%}+J3e{yj!#YVt}XLU9EN!};mtdSg7KjhYH67Oxs3_iZrbTQlWXhD zhH~IBC~ZV0szo5;;IZp~#yLr{>-b`JT_(HEnl`(xtu;J>2_Tv!=k&>X|NerEwrBs=|>J;9s8~zdr_~>6$h((~wt4NYQvNM&C z^Q=^9%am?Skpw+9H9j#lNwP@da#ni@>&^_)GE(@WH{~C!WV!J)zOh)JsIBryeFN;I z`?nX$CQDe6Y*{W@S19kGcBwk>{BhgY6t~K88Vj&3B8oLg6uo12-&eB z0Mb_R;0EV@wL14sHV556&mZke>ei=K* zEdIB{4motcKaV^3@w`jzeZFY?(6%o*!QX@Y=R*%omP{Qwd1y90c4+I+j-D>of89fm zJQSx^=QJ{tGG!g1ldEuX?8!6-F=S;H-W?XdQDoZc$;h^Phv=Ps)4PM?H?{fr_)YH~ zH}LHseQT+ejCUNK=v&b@Xw&$%xKrAWGTUlZp1QI;m)S))wq;nBM}>YiGBNd*Q?Ij9 zD-kb=_AyB+LE~0z!sAH)c=`FuKXkXYE+T{D<)5uA|BM6HEo*?cdD%T7JDBAREQK!3 zzA0Wm2TL||7~B&^zv$l;wq*{sVi>lf)~_Bm;d{D6lu~|{wx|WXJvN-t*l4UB?;tyF z7&1cRmT!#a#~6aF=AA*$32DIq*kAnaB4Q7ZnV^2`Ic$vQ_}oQPQm3B9wXJWmQ_47# zRuz{|n39y3PMC&t&$#HtMSlZuqqt4y1JcI87sP^if39E&o^-MouAf(D6P>T5 z2*Zj*KMQtZKPhgs-m@tjTT$=CUUB%bD_-);-sFrk!ocv_>e>Zoptz=!z3UpKzF2$2 z;naOCc-l|cIjq+1c{5txCgpIVN@E9scZF5%*F)u4(E8nY3{`!wAOkg5*zHzG(fZ3T z>ZccyGUeJT?HooGauMLm9mury1gh50yI<4fv%i<$7y-)j2y5Als zzd23Q)i8&Eu$>$-vGm3E4GTj5(qh!_?5DoDJ-58ZjIr?b*?+`Wil&zjJYg8=j^=0= zAk-rv-QV!;8332|9C!xKiu-T+qa*Kp&kJVe_gDL81GWEPAj2YE=Ik#<3u%ZmHI62c z7bdTS-h2$igaf?%i;#%nb2F7;{ee}@M~2KR{~eI|9>}{kn;9l=efp)n%aB;lq)c=^ z0feC`&rK{;eK6)J#t2J7om+*2nu|j#MSA}5E63n!%YEu@ypXDqYCR!ZTxV;CR?I%V zBwna@X_^vkQ4zOTlFHz*g6@bPolk?Myi?7R0cGLN*jqnafx6Mp%pY2@o14YL%VqxM zP4Q)D5FW6Gua@nmZfNW}~?xdGw=_tOy z&2adz^047Ej01n$%2G-YC*&}0J>#C1q7{P%wsQa#@o(8R06dbecZ(Jt|D&`QW8mZ%TN}$J{pi{C1IwkWuMUxO`2!@|^j_piTp_x&s6QL>6 zBHN<>UcGdXj^>#;{&Q;Or2l!w{Hfo5>+)Kyygh5BtCa+vuI=6_{%{A|!BNke?_tfm z2+aU1P_t@JYXNNJGx{s@({0+^Mmuys%q0(y- z517*s?(ko0rJm@j8)K-h`zZ~I!()s{_il{1Za!z20}}u^7=q#Z)T?0_dU@}_sD@r% zIskn5qRaL6T= zEq5rivegJNwf*&nd3E2lk$oC+XZnFOA5E*A1VQo(+F#)*Vg}_d4o;lqq&mKnWrb_$ zkJcDR^$QX=rwx||+0~`+$q*MKC95L*i4}RxrQyR!^ z?}FNyD%-C+rB(0PcUq}Wl(ogWc%$zk@99IiZa=8 zsYgQn{JC(d^v_0kwR@hSt&=fS*biAH;!J4rX zKHFS|3JSt^&4Q(6BRy)0R^bE=ogx7QqaNvyWWWV7kot=3^obD3D;YOQ8mEXh7w0BG z<3WH3wHRmC0yJp?q$JGr97MDsKm?PBrbICruf=5YY&r{KLULjdlYF$8XqiK2K4_%` zQ6-daN42<7@pyX=hVw_XIc;lV&eP0pEyXy!RmRew*qqE<1h@O8e^U3Ww=2;>KWLAx z-Pdk1;?K*Yq_tA!oj2!Mdmv{dU1rt57p_ssoL#3^%8@P;ueSy1qv`xi+(n@ zXrY|xr`69uv-~O6Y|vE=tt8q>al-bR(N&;t8qm>=S4MJ2Ov;MnP796&A`WQ536W*o zh-lf7=aB3&QTK=5V_8YZ-l6N1xMw<3x^DbzmMI(&U6%cUbe*YQ({&^@q`rBbrUKe) zH5=>!XQd>li7=BEOsif+LR40H8X9n{bAY42yU~W*5!G*q(P5Z`OF~JG1{t$RT*j2dw1oxBQK-%b|Q5RFbSwh^ivh z?RCRr@enklm}5^X<&v?g_3==25VP+B8iL^Prhds#PP*R_fXr*4gXh{N9dDS(s;|VJ zhyd7)AT_|C9VA%HY-p&A>6*d8g`puuHW;%9VG54*$b6g>f9M!-GOX{9Ft(M`cwm@! z7{4lT@mM-@IX54>%g;UTn--Aft4323TGLX?yHs7tXIb}O?IXI0l3DjB`o<*Y;y+FU zAV<7wRqu>4ZAop_t}6mzy#r;_m)*R$Yjd#YyI)d^A}ivodWtt(qh|u8x^#VLBQPw% z{H*(VtE4KFzE)rOw6^<2_n41y=eiyn@+HjdhADC~z%4#mewSPV#azt#LV>x*RfpUF z?)&ahX8j#oFi)Y-LoYXYoA(vD10;gxNUa znjo!dlvdE?O`OPomJUO>3iz_>z9zlg79=((*}|>d6je8x?NVPnM!}T1)x|R!QI}!2 z3&(7B0>27FNHj7>WgM7IgaE3e&Agx()}ncJ<;8)skXbW(m;+SU&q3NM;8;uO0tj9? zm)E4U`!kI|WN?UNWZn+0Eq_ z4K`v5p#0$=_{V1_Hd?*;-J`1fY_Q7HlNF6B|MT^ORfLnLC(mh=xNAg-W0F%FN6p_m zv<&1R{n22zY)5R4?zZ}NwPW7AFQr<-D|^ZCq9$8{l2uMuX`S|gYt zCgarv+eOrdCK7b6CKD<5>})SZA(6wLlKzR6e2!I6E8jDW+H>0PL=H(D5=~$;)tratpJ_O+wJT zk9$R3G|NwdW+6|CXDvO8>Yj7Q%89cJB2!!YTIO0xNU$~rT~yTFxIJw5iOHD*v*0;k zw)yFI*c|$%5Qjl{O|8#s&aS>)3%p;(Z?qH+Ul;peeLN;36C?)!*L1&OFyYlRbaK{> zv`Oc^wZ6=Pzw_wzC1eiL)rRi10+naVfCyY|rSoWwV26*;ezw+xNJ!0kwnTS2wjARq z2W#kI>PFZQESeHE%iHQoSKcoKa7uugYk9Q0DI1jKurhpJ;@BAmuz6$gSeo#YY8eP! zvvK4sO$g5Ysgpg|L zV@XA}i3Pz-Wr;m(3{Ugwi7#8~Rtha#!OLuuHGWo+U9=$-%Um%{R{pXi#;;Md2)=6F#+%md-6GEC+Pvih^S8T&DZ~e&-dKO5WUrQviD3L-n z`Ib!VHaP}|wF{OsTo)9SRM{?rnuqTi7VgG)j1HbAGGU2@hLugjxu;1!nkM1o5UP!& z3CiH1Y4RYjKhc7&eiR}B=?g(5`zQ@)5{Fo{;^%zhhDfScKU`8t5#gUaa(bPKjzq&X zSfGbitdYr9I_I_kx?emnvIRaV@=cauB=QxlNVAsF%*#&DJG*o7@n=6A`S^wyK7;=* zT90<3<8a(%Qr#X+oa&36&R&$PNc>OCX+-xM&$ zmaCP1X|-wcK^6=WU*Q+ang6m9K)*`|>5B2+KlnfY$7|mDOw}rq`R><2P%^)TCSrv- zOXXBIjaEXcMnVpd?|RSj`95xhB2+AxqD*{ap^s0@&28z^3GMkBdzY&pHzL)}eQjjl z*QJ@(jm|1qzf+X~4I60g>N)PSAOrQ$qXN#f9xBc@S7*+yZGqF0Y0woeA!Vqe}vQpsV-Id z7xd?vJL|+6U5Slw1Z|B;W>&&Bvp*449rW|vJB^sb81Mc{k4NCWCwtTCcr})lAG-S! z#)uIvnr?v|hx?kcTiC&qc6_OOA!|)EHbBj75kzy;3^kq!VR<1&$t_y~&)vIx zt|ue^3f|(ZzIds9`#+7yA8gsd-t1Z5FPZ1u8PyH!U4vMBOZd0xOai|zS#Jyu@$TQ3 zybMv6zK&39ga&g`CJ|fh413FY$#xw@-rZzx<7T0f9-7&%Hb0Y|mEk z?$td)XLbldeA+A_KBfex3%Pijpn215%eJKWM(%Gkcz@(rUy+c%I3ls1y*rCUt>w-% zN#>c}Tl0N5!2PcHt=FwQX2pl+ch0Z4;@96geR)MdvPi{$Ia$Ii+88%I>+>EV@n~ z|9kO*+rIFe>-BNp`s8iPPP1%T)lo2`Y?l}-Q$eJBd!p}4C3ud8wl+-Kf z8!<|mN&2~_5X~Cd)_#k5gI2z&el(KuKb*^I7RYDbVVClzt!MjSfmIEY5IH`Ya0<&$ z$YzSM#jQL~(mV+H-p5GejP$qO&zs1yxog*ZA4UpxUPc8;WrOsE@2zZ`Uf- z=1ZEG^%Z<6OB0iJE7+V3^M{Uqfuad*>&imUZ3!@22P!XpXc)TM={<)BwwHJ*8(W;W zk`!s0xS}2qxl3MCZTZBU$lv%H2Mx+S>^lZv*VdJZjw5ypZ=u6Zm*>X2Wsk}(CJ2UK z2uZ#plJrvO$Keu5`NCBvWROznQC#5a$<=(<>AVe>YPBDxW>2Q7e&)a147#P?s$aLZ z6!{ixP5WK3`H;^YF_%8@toapx`J$T+eceqj+X?%>z}Wviu)j(%1sAz}TJhx*H+}Nn z2d=#lfxGU*H@@pfy=PH+`x#fxzHsf^J~=l}c|e`tGB?+G|G|q>GU!+lT%Gd2jyyB> zoV4f0(PulzE^9A?hO=0|I==t#KP77c0a8SeB$U^_uHbwua$$5PFb>V`8mHifLuzxK zQ82dB;f@3eu7%_%&72GMrqE+{j}n!$GU1>Dj{+FM_9kW9)#9Fk7O(Gd0&~0Cr30zq zztzR`NeFbNkO0RBDYb^pxo22D(?t2&m7EGT3AFtCou!o7&N00Cb~`eDDxWb)##vt2 z^H?#pl?EH|I9Q9s^(rOefS}W@XKoWDJex13=X%otj3o{Xu4}6S)v4~BM!#6E%HLv7 zc&}R?r#}Z3SO@psP@bz^lk{vtu14lC$S2X3?(pumQRQnpgJ@H*{pz_YVs# z+@$gJr-vGu9&Ut7-y{GUC#i)tSmEce1}YA9sNme}?zd%VY7C5Gx(LwjBKQ76z43h) zyXHssd<2t|2mc5iCw#>9TU=Xej}{jRFGn)eL&S}4e5-X90A~)1A0<);{RMvxI_FHC zMT15wx_{BrT^mQN?5TB5B2I^EOUe(URHuN6p0`LjMyv`gjnMB|{u)b|T*?arL#JDn zqz!0*JsZ`4V3q%Xt<}TYu~un)kfYUipAH1b?*dw4tbP{$fHqFWKvt5;s}Y(5ezItzkBSXqNc&CjggZak~mOa zcnb2Gp~e?U!bTgw&5Ff6JwK$Fe1YZcgyF&&#%7GT$j+9m7LUgiBVZmLP~bi$Pt9x4KkAK zS|uU1t6j}$!-35Uj`mZ8L4j2&k{b$gl@fW~Z_!%ZO0$e3$ZOtv0<@QwNBUfAXn8{n zy0tfLjIBOuT)A&S1NRfk^$#l!lL|j<%bakBPSzi!=w*O%82FnK-Xvf2Bx~*8yr*n` zJ&D+j!7`pF_};@H=Xy^7RBIqm*x~l*d@cp{rCO|T$Za2;U#mxH@r0AOio~931GWhe z9IG#Jdfr|~N&ymTq3#GCv7x{HFb&Cw_Nwq^)PrtBxD4M#)X zw1gTk`-3H?uMj6R@WyvT9DlKc+q#Z-nbbB>+nAIo{zrd!Ak^wcm9z(#^~KP!LQ8;-d8x9531 zxy7O!bz6hY{3nzpu7{bfDO0A6(^Xb$YW}9viYH&O{;yA(=k@qNYYxn03y?x{@MoY} z$bhgo&_Osi27MM=u<}eX_)7YMpYa$~+i_E}VJE>SOfbo~ch{03IwkMp8jMIMPCm*= z68E#>)b&nln9fM-=d5zRCla#N$<(L%FQzmDW`d`vxDlJlpwpjrMuoLD?WcNA@g#Y* zRZvGtSv~mN^80_u!EoAk#Uju5Hq7GSw2DjYf z@Vejo?r(gWh{0E0eG{>Rrz&D_&Hdej4m#-k<#ThuMwH*j%>YcNf3)UToMs_~+bB!y zkr+wBbX^IPVNbPF*%Uv~NY+?LKyQvzcwria7Q>r8Z$8CY~+jpUcNyxT&Y z9+`XH!p6I9y26LRBa*v!86smGGjfr5$fA^hn0D{BQkViD71HvD=%{+O-pP(x#lCC~ z>x9P$&xAJJSE%*Rs(yuwr^W*ME~aFu&X-UCw9fBl<>F|%@}TZo2gX*s@ta2;@|xlu zyXLxf2E}~+vU5$E2|o@Um-ih;$f>&N&dY{S!7y6bk_)SRy`=}a0rE|$iUrP~Qvg}xtDYiXjPqD`exXjr>e0Gf zvP@O+zS*Z{2W0_4Uai*Vzg@Psj@8#{hP_toQFU$L9m-vyH4a8SAw%Z$iIbx^bV{GN z(Q4X#;uNN?`*g6*W3so0pOERkddfZFgzO3KQ=w~G?AfvtvSsemQSPF9${lk;c8q&= z+zHun?$hxnWXHQtC!Ua<=srF3gzTBH3p?m+X#CY#gdBK=Yrr7fu1o91;7@frp>V)P zGG6;Fi#B@7HZTb`bk}!MKU{!MT4jHbJK2#>{$xi!*~yMWJsCvw1Hx%?|8yyG=hh^h zy_x3>caFOqya)l?>6CJflOyVI2XJ>u^SU&4%Gva6A@7Z85gc09T4J>WY6j z*X#S7xu&ci_NSKTU$9}~b$w1+LUju4HR2E6XI5K}^U7*dL2O`uC|R9H)p4)ji{D zKia@!Y>s&TP;=S-n`7qhJRTOgqDYHmY4;}rn5cZ`h{3}h%tEq>O{Ig*PP*M6tHQvu zv;4EK=52!bI=RG?5U`W(|2B+ZCB_qoHb2un>}O}XAtbXi?g@cL-4mDw?VT2xzK7mz zzOg`G>ML&c6*2JqlY|*qt5n(*Z9nI|$ef2zgR{B}BAJAtPMF8o#EG#)isQcuW_U8` z{?vVv2<(l480JJhxIaGV=W~55nJs7{o^N_zh}g`d5qL1$c#zD^_37EKn!tpF59-(Y zIv2m1No7SYi_fg*&G9Qm+8QjWL3`P%K346CuiR?m95xp=XmwBhoE=>-)3HR+NcdH# zx1a#2l0SE2Eyi~CK_RfuxkQOc3Ye|m`GQPA)iLC{j84cEP<{W*>R2_9V;xgIHDZ~) z%Y7NtDp;#Yphbf2{Q|*P?UGvZi^lh4fMDR;Ovx>C4KfyO7MJFHeK|*U6%1#W5>U5} zRn@!|ES~K%VYkX*(y_I|ha0+UOddLyj+wpL0txl6*lj2o=YidCy1=dDcYmoN1P^0) z<$h7yaFehZI6`eE(tRgA@L=_{jWc*`h^c?KN62Ko>6Sb1c#t(p))UI>Zo4_G;4ACF zGxZ+ol6BI{OGIhKxzGF`|K+}uzJChVJ`s5}X75RuV12B9f1`N=8Wv?9yx{2n=edXc zJUY00u;Z?o>(^?_E$ZaM>oF|h`NiF%-6KYYYAy|2qdHlihijR$V3B z&cjaZN9&Vq?{`p54#u&!O#b)lfBl9}&aXJ>jJr2}_8)d@k@5O(yzgB{{Qbf5H7?!$K zmWaWJ*ShQ8pzJg9vsBGCTCtDh8To7VwI$_e+X-+fWg&Dwr&iR)wQ2Vw8|}0ED<3R7 zyR#x?b-EskowC5Fl7Z1^1oq69lz`Bd;!!YV>s)|-tc|p-k$2~rEtJp5JjEy$RNCCW zIhrqSo0dT~_`+><2j#BD4O>G}A-0lA)(>3CB0bv*I~;?vzS{;b`2>res?Cf9XL_-z zQ>Z*qJ7SW-riL&>sk8cS9GyS}PQz+oT9I?qx{r`vg8e46sLc>rkH1mfJC&z*q%MnvtoVI0an) zVZCGa0-mg2j=3(Eo>M;YFFL)E*nN%U^(u9t3q9C{m^ z?Q*K%JY{Y()zJGBavAX3Rdig(lem3usuLdS2ovtED(H6`VNI@sdkLG=x<8aA(&;v; z%b8vMaUmY{qg&QF!{`j|D^A%^b!ML&9nQuzIK*`v?n^%^JdR>>F`ulv-oODJoaJJJ z9MkSH^pKQacNGh`#DX|7MkCfqRdhlM6~5^dA#xjkKb7w$vPv1K4Plgw8AFmr!QPdK z$f9k^`^wHoT3JhJIN+>EmE)C?x+biUI4+npli!GI=p(*5JY z-{?@;4i;A()1A;}3Ts!14kSg;L#B4wk>J|Z{XCq4!+r)m zlrNx|3GI%nT~kEy;KPA-P5HqcmUck15NwTawrKTGFQ$l^qh_=MpLZGz$GPdEIvpxK zCfYrm`Zkg}bgdKZwcL^_gd7p%=s_TjVHvsv4a2u(V*gT?Rr`P%_v=Zg*S^zgWvd;( zaf7qd2we-s?9I|;1^I@Ze&)X*WsYPyDh2eUJUVXn6rshqKXLnf#Gte3*%Y~daPQ~r zY@w&$8+^Je;UU%0dOt}{)!O+in?#8*l|T1i*&(X0-{EWLAo@BgI}c&w3|(<7=lrx< zgXfg6XqY?I2ZqscC+e7Wv?Vh|Pl0HZ=286Ns^x+|cDNazb#oFS6!BY^gY2{COQqA8IC@A_$s<93TO)SXc3-`oDS7p;^v}aytE4ti8eBnHL~yW zdL1F{JdmPd;t3!Fw4mcIoyeiXkfL+j^SPa&9c};$`7+l;9W1$`ECLM{;{W0r{}Ksd zl?|jX#kc5|1?J#VcdC@&<`g96Q0Ye@4i3Ns?YonMLt|4d? zZ0qQyINKWIZizHTgNQA=&mEe-L%ny_8IBAHdxN|9Zd7imA`c zb+MMqx|ivVX1LTD`tBH5-z&Wg^op*Dy*jmdlvIGjk05cKI{aqc%hfjWFgxq~oveF> z!GRnuO?B#qO*=4#jl4*gqGO7*bFjUW-hy0qUkwjM6IN0`q6Uuayd(3w@5v~dVKjL& zKH;(fLVQ9LDblq)Sq2otO_5nujF~^;Dr<7Vu##&rA)##ha}1e%vFn+$VFLc)DNF=U zfwri{HP@P2c)JG64Btc7(F4vnx;qChK^EOI$U}ovi#}Q3JPV_;tob~6pG^B}igea! zrzQo*nm*aTwuDwmB2p&6gysk8C7orU4#N>F!T@iU2I}YKxiB;nS~4g2&wU9WDRPS;dppAI*xu>0T!_0D!Tc;9lPc+uwIcC9e`s!uWeX(!;ofJ@)7`r?K&Y=F zl`|aaFS%ACtn-qKyu9GNl{VDiC0&FM5Tf{dmn-!J{B~|g36NW-q%sg}9JDxqDRXxR zq7b{@TVz#K`Vr=HItZ1c?=B#;pC}E>?({a=yacJLALBAU#yzb2HPAm(PPq;#D%W*R zgPny+lWrHX0|i<4Dq%+A5rY$sewsSvv->B;28we%wo;v>>UBu|jx>^#b{v)r3VlDNQWOgrGVK2aWHzCWaO)CJ@S& zc$@*@6ovL|KN$>+t~)<8vXnvCGlP%d!@#Jf^zCXJ(OoI4>M&&P2(9_gyQ^88`v`6n z?$8~K7Mn#-GfD(tq(V+3@a98!h~VbbO;SiFg%qvB*k5?7&3N`T|9gXslDfmZhz!Ht1K2#2i()iH&K;9b4Kt)1*t%OYWnM)MuZJR;WqJ`peq&-~`3EeH4~%AyrZEgkTI`?iR{yRt($YqHWffNIj7zC>9M2vcbt;4F~eB< zZ`otj#h~0woOa)@h8i<*+TCV7KK7Y-2SI~ym=Wf5vP{!`Vq=&f-K_f-eKq6?YGuOX zTssd3cX4lwc{8I)GfHTPSO18<$=RO1kro zl*1gL=N5QF_f%}Gq;^DE^< z;&BS;w+K9=#}L(_#64s{Q9ULV`9SctX0Xm72~gf25z_sPQRpz9x?36f8*fKE+Z0+^ zoW{d_$*E^|o`j|(7?uhY-P`z0PCuunyLj)xF&S{mnRe?Oc)AkCMigc5l>M|0GGSK0t!PGyoULmOlSo-MO!A z7T(xu>FDk*HR496X;nPN&+BL0(JlL~x>=VFF!uQB{^d|K_9_|kU;J`%{61H*E;(0d z(Z9&&ZQcJ1VWj;Q%a$xP3M{SlkCXU|A;_=F-4V-?5~~Nh8xP>7qx0MA2l~1zer0vr z*SR4+o7d!WbiSj0ps&})uXUZd_{`V2tbU+6o8woj11D}NSU==1y|(!~rsefHuj12k z^X%G{=c4~@9sxK9zrR83QuldiNC*A#|uNBaK z+_UH1xd4!D&uYin|75HXoOO>|p(7K=mz!XT0hXeG z=g39~<*^S_EV8)`h>*RDQKtGDR+te(5tJr&?i=Tp1SSR!9qHxe`RDmHX?q|)SbO=U zy|!{-NaBAQ(sVjxbx9M{{@h<`8b=S7|Lc=a=0G{Jnpa-mZ?8yRb=B#QU-2b!0I=x= z_o|Xy-F@uet%{9+C+}~``VCQSxP*_$h%CV)dRyvaB_@ERIOMNC_YGQ{oFj#u4D(`Y z%bbQ7faH(^MdNufMxkO-ee=8Gs!yG_d-94~Sk?dFd2jxW+g5#E2?nhP{)Te}zQ#vu zO669Z@vLt@?#DM%?pyii-tot$ep=;TaY_HuWvBh4K3-y(&fnvs$PF>K6ysawEDy$m zMvC(ZNB{Vse|_*3r&xix6<^tY#b-~v^y8;cMcF*)q|Q6WOv{ZsEqBX8Ew}mmU)|)j z+*NPi@K9P#T(|4vf#cC=0UxIIY79!R30uO7G4rNRgi6NDv+?U3sF$b(Jo3RR+#X9< zg4BlU3P*CiRUu%Nh6Q3D9_QbD&V0XkPR$zDh>Iv4?Or+Ltk8j{Y z5iIuv8&-zTA4u-Xop}lAQ>haC{ap6sTS16ltRaO%k(nNzay0p>bt=BJ^M(w?s@x0t zNkxXI=A4LZ1`LdoH;%qDFGnr++BuIg;J6%GfdHHxEDu$oFrhP7gLci~lO>1csg_j5 zB8jFys|m~GRf}ZvUa(=)=DA(7crRmWU1s9gh0J>EF2sb`_v>H&{JwAR+_!c$PJAee zLyvKq(Wga%l!Xi!<1V!qXyr>9xUGC9^xk3{w#5hpXb*X{(R%o8)iCe89=jdiTE7gz zQuNaz+2Hf=Q$dF}Zm|d5FXgko6Q!AhB_)xQq}_nRxrL0qPtZ_*03xLt0MM?%K{de; zd_)|=GnJgl6=K~hHbOvw-+h}%336H33W17K2na}7KFgPLcuTvNs3=|Rjy5wmYJ3y$ z#ZqwmjQltp?*B4W{Ze0j_QMh!~0GHTBI=Adr2Q@N67b(7|h=n*MT3u&OY)tJ>rKC=H)`TjzOXf$6({ZxaLv zcAr>PP(p6Iy!kJ+ke=SCAmoj`iEKu{%){rOwX(e6EJ8jd7s(KW+lP&3Cc}95AJi01 z$cn^%*h4dgS?drnd;fBlH{nPY&^sY0H=%E_#93PY?}SW&vqGN096PB9Q^jI?_hBn$ zzK;ZA73uuI+n3Nw^5Q>VN<9m(Ohmv6urjZmb(FWwPg7SEWP5aX3vjj?Q-y_gy$bE) zZ%kd?{i5MW&1ulFIv;%9{-mVCS*Q+NMdwx_BWOw4BKDK4XB*xm{gjX6PAZvM4t)ne z7-ib!jTlrm&MWG1-oN~1F>jBgJE4fOBHr@{3ZXDUuCf&hDa?i(MGoV9Zsv3VwQ-D; zOlvlNjf;>o9GeDBkvcTwKME`TX`2T0A|b$t%>;@IZ6zzFu@2`T&Rj9s{gT6=O#a|B z7gHT)pOQGzSqdC5Ltqxx%+Ggx(|t+jrKA$2Yr%ZV2$PTqB6D?IY{)`1diz5Y;7Dbv zl+Q&*S_U&8ORwaf$P+KK67|hDg4`A>+kaB~g}F}RB2m4~J_AL8s`?SzwJ^g6i6VI{mTv zAVHX|h~Lhly@e^YKW3@q>U&S4?^bogKy_yPf`tkGV69*l5ej4GjTQP6GG2-P<9K3e zx=)%b$^M`>)zL9pShwc5(3a}Y#V+Rc^|JVtS=tJ0j!&$>rubD>m6e!{kF3P~5h6-x zVB`F@`QQ!(Xm{R`bDk_G8d_Y%DJN4+xknCr1x$DKTaCQ}_Jm0Q#(-Iv4u&=fxKp$; z1>|BoGp?P}>=bjVIG6QCry;nLW&><4-{#?F{4)r!zD2nOgBkx04Kdpu8wq5mbNvL7 z>6;oeJNQ6J|KdmCzivcd2a^8BZe;RrxupMz{UrTQ3@81QeYSnICH|x7omxQ5$Gcya z+%ouyod75SpW`_HR7vihtsiZse?N2k0q~QR>+ep}3T(ezY0&;lH*xAWex2`rML^YJ zr7WeLQH|}5J|CeXU&*fbHL}o~X(cSM!a^1z6!?z?7j6Yukm+9yEux3H6pMzHyXxBa zhA38n()O$AIp9Xcmn#_dRQ5G?|4Ae1C=^yt|Gx!=t9xPw!ZY$s9}EqWX>o^Ykm~S( z@T_wvJK;{m__xFF#`IhQ#$u{A6?#S+{`p$Qj_q^xb&$j&K z-~Hp?dFk(e{`$G?JOWo82M> z6<|(S?~_+Q5yFH}3TwNHwjlVy!2YrPyuuq9nFF?|hadr~GZhqw2g0(D;qN!w$74g- z9Li#*>5Ip7pIw~wg?wDwt8*Weo~(Vo%V%xN!i#GM?BfGNweK1r3(fHyFP;B%>09$1 z95H4q0Xk31RxO&rTKn|>^%uX_sT&afP{^0D&K^!ev+fbD#!w=uoFsLrbM@T0sIaWX zcf@9Exz@5x`dR{QxQB=#rUI=Rh#m)zRy#Pl zoz8M%2urYRvZu2&Oa-+qEj|{%oIhMEwzLkgc*LIc=Eyt=%r5&Z*)e+m{uXzcljxq+}^6pP~L3M zUrCzL8VE~DTh^q%szeiEG{v)e>Z@DAY}r#daJe8t+@v%~=4VAkq{Ba@d zj3=G0Fj3>Bx*Xly9tf@z`?7u|>1Em6wj9{kJEWsB!t{z`(+YkV>%;Y>Zv5)+|IVlX z(FqX$Um51$W=JaAA#*g<3(|82Bjc#8#Dgu6zS)iuyCCbS?is3G0AH&alvO6wT(=uO>)mQay07hy0#; zCck=~>857HK`C`;O(#><+w&=8a%vGh+#q5I409Z%xiLgS3`la}CN{he+sE?u2 zpM@sT-|kr-)^vQT#e;$Wht>06L=raNFRa*9hFneH3SN%4y}ivNK9UnV0tGWLLj9Q^ z66|`6-+#(4Gl(Y#!)v=Q!_e>BAu!GnmfrkuU_du56K*`eL)|ej&i8=5CS7tHO@1JrA+86deVW*#PKJ>HBkRBJ_*& zEKXU?p}y3AA8>WS%Y2>`X;p%#cy&?!VZI15xG-y?hb;1^btf;O0B;a3g$7pzTM-X0 zy@jHo+9=X#A8@^KV{kF5-uJ=G1B99H2kJqhNk&y3t|wmyg8_b=G&`Y(($^7%HFLnm z+)!Xkm+(Op)ukMm!SD%D<-BE&mCTOzu&U3CF+m&t;ZQuQZ?+;+_HJ1z`{_gs<-ZiG zmi|6W*0nGq^!%lGQ0PLkd7m_CN&!M)b&eB3z_3P2Lqrb+57U5z&>39Ywq#*XVmdD& z2Cp+v%4>CM@w8hXp$aX`?UzZsNd>OM7iALwj{zm5#q|npf|ZV?U{)Y)D;Jao7z=Rm z--HVg6JzW@8*c7ITJbuleKP#O(6Yi^SHC|NwI|*k;svJWrGOtU|9305fie!)wiWen zEb)A3_r1id@35TPVI;>)vRt~)fLc$MZh{i{FD(DRq5(-V9%*c-^f#d`^um72`6xeV$g^8QCWQDNv}j$D6(^o1 zI?PeO;f2xmO^}kQM|deLpR0%NoTdx&HEE~F5P1kk4k08il5dcBK*ugkK71zqR*J^$X&UIccb`>Arzc9G; zf*(11*9mL@WmEx*)h}18cHq*CJVUnXl9y`a5;1-Zl?<4G)0Kd&FjRUafi3T0%fC5n z>VZI@c0o7{#pV?oz=(-s1Ay;i1H2(NP<<=VQm3nOCA23!v_H|s`J&a@YG zyulS=T%5oO0sxU^)M>v;j3ad0WvACOS=N2R%5{l1%}vsYjAS5~qu?8X?~|_5sMEDW z{hZs#go31jHAz9LAx3V;sR>Kq&>VyB)w@eAB2Gu<0|6 zt^uH8jon13T%|x|?Fhh5Cgv#RigJ=aDXbrJ01BR{*XHYhG2}n34FZq2mwY@|Eeuur zP7p1}s2$>Xa0aTU{8@<$$s!K+k2p8{C45VMcRe?xR{FsH0Da_L-^q#u2QyWbUcPoO zF+#GBi79GWB2aoV(lKcKQaG)~m*1MsgvnkSufSKl24pg_9NP3QC3B)nAniSIJ0sdv z&!3YLla%dBglyh+rH~mDkKrVKzI?l3;v!Ps=85- zP=|n-e`NhcC&LRB*&M%(dz?v{fI6f=sP*|ix#CQ>f*a+hoPC?7>0?v|*klNqbw~Yd zg%QQNjrNR^VuU<*B3|kj5=WvFg4Z;;oXE=|->NklfS0S%*_6)N+to*_nlrQaz|NGhbLoAIPl>MZ}Jv?I#>>{tX#cd}@M#C8r=x1+sO6MdLKpscC~k zopTS{Yy8>-EM8^H?(uN__2MZBw|wo}-v|U3qYcuoQ%k<~#TVg3eKOJTsV{S+uAti0 zR`V{+K1j-fAM%14g6g}@dO!rFp~rd7+RZH^u24@xNu>{<;^pQgBO?Qg!47ROLFD18 z;S*-k8OIo>VU4Xivf!3%KZ5;mQK4_{vc;kKSi>zUB6*AGAW)q~LPXJ+efk9rpTrtH zDxcK@vN5M737uJ^MSaPL=@d^`5H6%q<#%ImyVu#%V((lptGvY^|0Sc1j${C|%iZjA zb&FOqYZD}!K}R;F#{pN<{nS=KS$v`(W}AtGNk{!!GW;<)cGSNVcw(f@Ip-5Nu27%c znITazuEqLw)oSTZsQdCSTu!U|qE*KNWHHt`NEziod=6{_Str1BXe0&S+T~w&<$IFy zs8#JL!s+Qr20UifV5x$PTr0Vo*3fJI=m{RWxfVjGeulXynr533i9JeziI*%S0%%c8 z*lCA`Q}jfj2RV%4aF!9+eQwFryu^I+Ebia{ivl;saDW96*Z~&kSW`_aq2PcsRIyG= zUJXjZV<{+irJ(GJsUtxOa!y(Zu;4kh4(2^9LUwp|iGGW)5pg=Z75lWyB%d86QZ(WL z1CkJ&zntKds=gFxf2Vj9JjGS~>h74R>z~U|&>lxY+46B&7gw+tJ-SHj-BDi*eQ>Yz z4oT%ULU#f{LDACp_7w8E0ts8xdw3j_;6<-=qx2!enXBcrTF5RbA~yB=FDDTO!oet2 zNUuGqn1{nDsOhpQ)-^{yaS{a#LsspT0z{OvJL4oQpE0I~k=T2$pWv_-R-iO%`dOWK z76#hbTnhnZ2QhF_;oGZQy-|f$<-WtU&tpmijB7`oQ+m9Z6R?;MDX=o%1Z?M8z;Z?W z;*uM8_R48Z47!#HDt5m_okRy@a)>uO>b7+o8KhYib89-ZkP*+ul9Y!wFSFs-Z8r?9 zYiL%QMukg6SOMf887ev9R>7gDJ)^d{F*ts)Vf8AuDm;L}M(QijB zxY2c3G0ZUD8l?_1V(AHZ`u84Bo%LKBp5FSPcGh3{M2aW8IN?bv?7>qZJcbJjIS{L_g)IDQeMIX|vVOn^WqEz(`&&)Ud14*{_8WJI<)x8I6 zJqqe~*KXEVuJ!|Z$@d@FAr~a;Za7H|u0{dA_&8YyoS-G|c7nx^(P|^B z0V89_Hid!CD7<&;GdF&Fp|*$id!q6PjLR zUP9A#x`JuvyF^^E&}%z;%Uw(2g#-2cg%h5`-c<^pm0~cOOxV7F5xP)xH8XCZdd&s@@6_^ ze;3Q2HEQV;5tSqE#fmla-^ZG{Qxr;sWS5n2wxynE(u~4&29GSdEDVcpq%g>!pwYclOg0Ziw&v9F7yvEnlzC63KMt|j zh=36znhjZM-Qcy}25G%^Y89~<9$8Y5Q^*i3U%Z675z%Pmem< zsAzVxWFcjpAki^VvVaTmOUo|(%mpgb8%GQE)85v6Ep?JR>llX0dR|#6_9j`~Ylrql1;9+uW5v|I|J1=( zoUPwiJMHejqit^PfC5vNdE>Ryp3t+&qT*lF5LkrlyeniKAg%?wo_>F|IHa!RW3nEI zibK94hDH+zKp(%Y81tOZbKxa-BDSL9d=;4FA2?bC+*eM*mesC{Rm^c3;D$`arZ8xq z=B$+3U)m;la04VMQqS2b2zHs_1_8I2CkPq1>pG#-TzbiA4Q$5O+a(lxg-A?V*)^W1 z<7y7TDeAeElq)$Fzr(?CTD7aZ*Uv z`QD(-mA|0!+lwV0CvX`)^_H@k_I^t+!#e71h`#I8XYkgPyC|5@TAXCMy$36Hj+X1S zNqV~baJ7sBfISfn)VhhWQD~6A^)#VW{q#xw-n=Qhc~cNj1Y_$e)(2^*-iIn>Ek#== zgMA(E2Wx*fpom{r{e0(%XwYtqtn~3>z1*~1)Q3Y{>zO)epmCRHw2pOk48)LxQ#7Du zQ{aw~ThEeLPTk1Wx*x9QhPVlLP?rl23JreX2*nTQ79XzZFkilY|2spJxApPOMrj2u z9iFJxVFs+oMzhGyXopjVl1ugmO(vqY=+g?xhwdqN;4|7Q%(gxG1z<}Ht4MXYBQlL;k7Qg zxZb#1SMQd|M`y7Ks3c$ery4=xherfdmyEs+uS&aQ^yR$l?2?&BO}i|Qt6R?z&#{r` zg{ZP-8!yL=6GdaS^(qD4WtL9bs_Z;!eu0`Xfm}^%>F=((tUhw?C1+ywT{mYIq&+D} z1=HTd$l9bKB#l^0VUndlOXxOx>JyxuXRJCGP`tzYYC<#9zF;?U$kgdzpJO;VuWmmTSu)_-)W_Q zQDQ#rrewL%RWj-qT*oh~Kjd{F3l*1?LVlN$3_ba?-MSFcFU^?IV%#A#WZI(iWqXU) zJgPNcmgq~hxTuswM8A&n<#xXp)Qhl z1yV1Ozr?uHvZ7zr^0XX6XI;TT}R54H~ z8ya1UOz^Nj*uu*vs(tUx1@(V&HX2+O{$CWTn5tGe(`$fj=v(A;0{d}F=XAmP2mn;l z#j2DnPP6{YMFTSQdmq+knb5tpv;L7GT!x&Bz23Dm)}!Emw?jR|f>CYgHG~%S=N$Bfv0~JkDag zB*ONZZHVpjR`#EK>NDSQIn^vzwRi+yfCU3}GNzop$h5wy^+LmW76_I&55|dvO$U^b z1Fh9uO=k@VmMc`5isH+zbrW@Jgtxv*=iDGr;uH&4nNYmkQNgmqYh(+REbv?{pcVO) znhMQ7T3tVcY`hjc-Y1+XsUb@n_fc6a~S^>tO;_ivUJ>@y_G{Ld~ znrDs>k5lX{W7J62xS%8B1OH(dmHid(-UmkZy74|J#hWw;mpUpN z$-9`X_%GqRl@(v0V!=d_MO97#KW^V_?jPjBdIq24LI;TJs#C`0sje%Vqe1*s3Qz>6hLQ-*xC#eE)Owcu0D>yV3Z5Xq%EGBUR3vYb>Xa8L1PEkOP#bB+&3aJPZ zk>&_EBzEkT-Ep`JxOjnNR{yTCXhs=V!WF0B=7`kuv5j1;E&c|ry1~3c|B?p2m}%g$ zE%&gZSJZJbu4sT9F2yx)nFXYheI1{vY_|T#U6BM}bg6IigMt0yAf$u>7Sndls~z&K zXonoxb{2g*kVdA;Ea(@~Dle%@@~xQ)9=GJP7c7KWXD-fl!IDAnTO;iIZ;X z1;Om299nSfR@tzoO2}g2gNnHSa0-)YW~D@LQjs0q99M*!n`c&OH4U_@#Mo6B%9g zy(~J5Tg$uFa`m71&X<1g-~P&<{b2YsgrMHL#!_^1Dn&eHra^X7?_CK859%j(ONvF+1ZVW=*mPf=<9U~Winy)=1QLo*%9IA`4+WG&V}C?4k&WYeMQV1 zvJh{WFRj>hvl%?Fv{EVbG%SCM@u#LXZSvi&-*8JSw82i{IA-N>$86=AKISw_5{UGf zqAc>o6lFkti}6;q(j(d&mAQ#J=Rp&pg*5pc)})rvGnh8ZRQ~sl@Oe(wH|9&#AO{ZX zFTTLq6(0})jTaB0=vhN65K4n2ls|!_$n3+{;eWZ)c{}`%6KU8NV6sFKie-K;@^EeG zPyTB6Gqw)^^vBoG?`BKc%MW&a!-jW%&A)u{UOLXzpe!SNmJQo4U#J9LhcM`fPny+# zoKnJJU=NPjS$4n6{oKikdH$HosQ6&>=@brx&l? zG4Sf3vK}aZ`^|s*HM{h4|;<(FxfTH`X@e=b0D&`z=R1L2Cjbm1);uOPRFmfSVnUb|q= z#ut|ZF?m+rR?cR|?=nJ?At*S>blJ|$p<}_z6(#elZ8IZ}I=%-C9F7a4Mp7~iO1}?) zY(aGJe6mVUxl0{b{_Nt}H*^}fHT2@*l^1oATCH_BWU7g4?zNbkFX*{UwC|Q0Y>b z>qr+_vD!a$=*M*k%h#3`wX;hRR3sB$hd;Rn2>(~LOkS5 z^)x}A2euxJSK!j=&SfMpf*gr~BVQjl!v|Z#qBBeNUk*;(8%QK{oTD*q1LuGt+tl4Y z9)A?F`6riI78W>&qoDTsr9Z?qh!7fI_zyqz~{ocd3G@n_Hc?MwgZ z=dSV0Eg6c6_ANR0Q3GpkYFPdrQ4c%WFf|Zrb}R@vYrpa$qHD!{B>5Wm@`a)sIdOl? zDjJ(^NXq!rL~cfe{MM_W(U9Y>Eb>kvywzFio*S;2o1X0pm73QM0=C$nqc{IDQE z*^gc2>-9_FJz)fD{`^;d_J6*VbTwSjRgrSNcd3$-y7nE-#T~WE2JAEwvQd|A<|uzs zP}QE1qmG8)C=j|Qj|?zPU0q5Bn_&$04%zUO|N13LX~iFla{aUsYHB?>w4O>|tVd$? z(NIY{{8)E%*b=o?LW!RZgWMinNAsnmc32Xt<8#S#`RCNc&1+|SH9f=ba{BXsB!xN6 zA|}!Dr_{mBId_?Ns5B@#Ep}%Pvh?h z?Fzzt8~Ap&LD;Hle__Z&iNR-#2GQ%(2)OTKR;5q0g9=gZtaoQyy!N+fl{2~ivv}0j z)T62u8f3jCONQK4CS;IvY*zvRgZ6j%640A%Eo8uQx=iF$6q2IXzpiEp$pn}v93b*a z-u72{Q{!s7S~}{m^Cm)gn?Q3ds1N&1g}h(^@9WqhS3-3ib4QsJ@pVgqtpG8JLizi} za1JS_{c0^?EsHAKi;-NGYO|EQ4{&1l>7oM>r5Z6DV>`Xzu*dMi=`TdQU*qyh+olki z1@pY=gzfprcv5%Nbi(T&7Y>BuHvwInGK#h6u<24eQGf>NFMuQm_e-8QScEUOXtaaG z&Q}%>TjDT*7S@1qj04qDiMq)a9z{0nO*btmSlY!fCRa0b)UnQPG4T?0mi}Txhn9fl zPjxdv>&HyH7X0ii(^Cw~qZqMwa?TxJcd<N}di@ z@QYlm*<)Svv{lX1<>PVa6=_v_0khvJsNULEoo3lz8Bm^RK-=!NDiScjdq_|li4=a? z5#)$K4X~B38WQlN7@4rinWH>e?N30dmY1LHBe09~scJnE{#VrhYvmshHIexuP3wR) z>#Bmum43!mOSHmUX&6tV*V+Cd?I|S8DA(Dc$EiZBFC%t|2N?B(C-AV|2&-S4YB$tg zP|2^-?g)AU;pn}7)`)Dkc=av6ZTIwmI?79d4G7u2(fWDiqwTnkh}D+#od(l_>Zmog zq4rKdvY!L(@CrW;-ri*&?uT$BEef;Sfe?QNu>X*4$=Sws{p~^GE$wl`;rHhTV-?&w^NsHXb5Cw!XG_IiRm< zy-Taa%NH~x)s1-DeXR9>E6{XQfcswAWIbdE0$Vpn>SoGmkVG8`3K%lY6N5Q(4tbe( zDA;gg6l_|7f=$v)9KLG7q8{zW(uPrWe;uSt>sDZ`9#hiyb`!ldD3t*AL?U5jbGEM) zi`l80P(g2HL+u?EE>5f(0rl2iLfbw37=Z&Lcn1HKXv1=Kpnf;=NI#iIzm1_3WG`aV z#jP8s8@P=X6$)SIsIkH2%1!Ao7NVPMnxq#}=(X*Ac~abNw>$HD#BS^Q#QU1D z?PZKR%P(t`gs(vjrwx$uAcQnJ(P02yj}-W(!__SWP;8VDM7Cg|{(pZA1!UrkJ8d{RbKH;C20K@|*z{5YQLvhbo}9AIN^lK~{=3gQ4Kj!+q<>A^IcoycxoS z*gZ%l{5CoM6-n^d*UM5;^(E@x%S>H=wCR=V0M!mWJ9Lo_^_J@Y>=$B^_0^D5p+x<+ z$!WXz`>~1 z&3BS{)#^NKBM8nw zleW&ZPGYA0SE{r@`4Zs{-2Z(aa-Fl>k;>r1yM%UpGLem4FG;`n-Co zuScy)`a>Q9uN2*6{B^N9NUubd&kj{LnOr4wj&+r{o~z62(RTEG!}}44V2EY*!XN@N z9xxDobF_ZhqdTbWaxV#Y6k_x$ag!8;N4J?sNdaG5c09l)T8rTa>VR${I3OG!7>~9f z24x&$i!lok2f3pXySSj9SWN^`h(4i7?+m>d+U*S46OD->RCCCGsdOT+whB&%Y*2TB znnD-*B@B$ko9D4-sv2@9I=^g+p^3O8BCRk1=9O)dpf(*Q!dyz!LEs?oYPOYRQK9q) z1ps_2|IxzHgZ+cZ|Big2v#Z$MQ|j&OA1JTG8uW*Lbe*UlJ3~BCtQr6V=j3D9>nsd! zHss*~|LQ%t>%L+cLAF%=&8q#%GXQe}*d1Y8>)BWDzW%FS!F5aB-u~(wqQRJO{OM55Tz! z6lC5_SbE=@m0YZK9j@*2#k!t@xC0J0pcu=0V8pO=pM_3yFkpM@l4)YQB#@jApBZb>8^hNSx|1V|EnCG`#Hpz61u3G+J zl|95}-XyY`Iuhw#|M6s(V*N+|RbshxU>;U`hw8ug194LQKcsJaiONOc=ukbMk@>ku z4K1cRSb~c`)4^E(+6bgI!|p#S=&av*!rh_?O@|k%Ngz2Gp#y9m8qVEXMJ*8Uy_NZa zXr7tYKO|OY_mU>hghp$fi10iHixxPklo=Y-P-1mcwM_B09C16BYM)kQRNJ2jt6b1h zDXKV8U8kj5Ze$+}?BBK8SQ_RICS-m_;g7prWoR=z8?)r2K?Gri^+-|a)t9YkhK{Az#Ok6ls(z4A$vWrN@}(q*y;S=r`g_bRQy$cX9>r)q22WI4u57@D z+DIlQPLTG|hO^N|zsT-HbtAw1LNWj2)XDqFRPqntHQdO=#(eEpzj$g7QZyo28&_RnQjM3(jj8UFaTaY+6+h%sa*^WfT(?-%e#yn1XMEj&3&8|8AcSpdqUkK0Fv2|0r`jLv?j` z%vAA@FYUHw;yXBa+)T|J*1ZMCeRH%0no$5kamgN4y+a|jn?8j*7JiC)X`0^BRSj?$ z-E<)eB|ntfYvUVG*e^J9gM!^kUQ&&(fLtT#c){MNN})rzGO{5^`Ek}`VmE@cf5?z0 z)G4Ck2p}Ebz@QYNw)M{wPXvF)pCVgFB0y&}0Aw6c#`Pzt26}P231cWCI51RYUCR4O z`lk0Eu5M-#9t&1$r)#HhVL2tdqE#714lZGiqgx{!5iiv*Ye*!znTA9xbz}*|(lcis zS{|rGBPeqXf@pS55TRTZ<{M1tmgSlQuP880)g9Vq_*u>3;6!XZ2}xI3`Uf8cI3ZAw zhWBaQV_QX9A}Gb`vm4|Ri{T%fhFk|YkOu#y_GNvt{fa}&HV^4YpaDP*9yusTwbBP|;ZxhM?j=T3;%t4ijuWLeRMyj*_0kd>ecZzh z+4^Y1Qw*2(VUl7W};Qh1D7lz_#Gg$ zk=Oh8LqjEn`sqpDB=3NUaR^yC^#wO-C!#j8ELF7ql3#{JQ#rsln86F8rhi z{Az7X!xa9Qv;E{v925F54_;a6k@cEug)R6QXA1^_x*gID4LXuvq=v)+Y|^A`^9U)` z?i&lRgTX+two`}X7B!(jv><&eV^UJGZZeWlU2oE7xw_#5hi1J}U8l|IZV)-ahc)uK zg8*u+V(nZ+9(fq5gNQZJ6mlxBsE`S(R3;HD^3*0W@pgVD7-V%ugPA;9=UqH;@lY*@ z$tgm^a>#&VRtMDe-31xttZ%)=ytSyebi12D))Eo#zURQ5i-oLS>4hU*>Y(SpWDB^U zpqyq+y{9+C3rotlgYmoH2(!x~+Sk1m>R)DtnWB4#6d3xVro(xXp0FC983sL zM2EYip}+p$W zT}u@-#B9d#;X*Fexb+87h_OHm<)2b5b_q`TpF^bqsUF3<0H)3?d$sbC>FB8Q8gGjSa!4hxd4g9LtA!)nx0siM zZa{N@WD{2;DjXy^Z0Y_Cj+?rYR3zr*WPx|iJ(_!a5#{oLaW9K zHBSDmp;-^jA3pGQVb>`jDeT%P*A6|4CLQ#}4D^D*pyxpAlhy9}SJ}}psGYbk#T9*F zT7?cKujwjrCD%`0unM>v0ZpwYSXkH0HEIg7vr0CD|B9jGM-p^saj=N3rs*gK6f6)T zRA;!~Dcg@I@6KpJM3trK*`TSlcOYF|12FexJ*0Tgo%ys8o`EeL1BONP^=%0hTD*&B zK4AB)T>W^wv`dSatKB;Cg5iYWS}D(;>{_tNLzLbEMXJaG5K*YG3v6(Ai2)oF^WocsST0D!0Fv zu_!VOy}my8RIJ$DBJ@)OJB&#L#-g73z31x1Gbg~3D52{q))g?d3w1%=pt1`~o(XI) zX|4vtw`5PSb4S9?QGqLAHK*RO7J0e;KsQ>E$53VH2QTFr9p;xE9veN8KQBd28M>ki zFs}n9>Xx$P7`?3I0m(vu(Os8u-P@)-9~h$CYRUspPkVl#N!b>(^UXSX-nvss+xgl&kvny>yB*qVy4yQd4 z;YWy+$Z_B6jC)XQ-u$!n9O92aQ0 z8CcdeJ4xD!rD#$a$%q;&oNbe&hL;t35_aHh!B$oCEZ~5kP`eOyhuDdV%5GI4a*`vv zBrdl=Qzm7AfJ9i#_vuDl-C4UXSHmP!H%zS^@5|lgo}$&f?W{Xc&V+}!Cg&i>)&=r( z;E?yg2Pe>|fP)5g6$lfe3kgkN;*4ly1T z5M&TW`VRclg-dB(fG3D{XC?{mi0PV_9!@QnN8GwOEvw>tV}%P}DdBRGV5@lRixKD2 zvy49C81Up(Jy7iS^~|$&CtX?b{JHG2DtI-MpbEb9J#pi7Quo}{=g!n$|FPfwv5uGM zNs<{HLNu~}{&%okI#ESUa%z0F>kL*9C<49;3@PZZB{fz%eTS~5NoW-m@NBg%CZJUUQ+2cq6{|)@+w=%>P5d`mR{mHQ~$QYv}5KUjwV{}tR zcyTk{SZN3V*(b7bPMuLs>^SKp?tSs5BtY1h!W+(#?3E?Sr1)F2B#Sq+B<;vldT#DG z1TRYx7_cPkTM(6H+ZrH>qIKDj+8nAQoV{nLH7c56W!CX)qQcsqAzTDg4AU{QA?;}` z8?qSd$#&1Qc0-HOU~AYsB|+T-SRffqU=p9N{x(Jl$>)ETa=86 z6s$R88WT~8Yo`QWy1@^L*rJ_q1g0#N%BB?R90p~Q({bns|8SQpAhFYvSb*KmZ-JSh z+(bB0i8t5y@sDe+<=eu2z$I78v;|t&^o=y8nSrT-Fm% zyQR8ZxYG7~w1x`@)BOM8!sQ`W$9McnT(}zt!%!4$PJm$vs*OWok@tp(qqO^RMYr!p zgrn^<2nlgtk8|M6+TX&c$Y+tb#brv3eV!q-^9jwwo{BcKB-`bK((iTWx>ykhanGTf zBtfgJ_wy!vNMh&`Ij|vOe-&3(xkw(fBw0hnMJAa*Nagq{{fACwD_cs%nqzRNggGD| zt1|6CQe~Rts!aPNHBXh9grrJU&R$_S(pN4^iGH22i8&f3#O0zRTqa@OH>VVcJIS+J zbXLQsZWe?J;o)H#XzeaJQHbKj6#-=^nElUBv6WANXogk8CrLm>uzOBI)7M#$ly@Kq zv#DuDSa4Xj20>HK)+S&?g@{9>@6+`5s_DxfoTT3M7t zSuf8ZTCfM%#9YmkmO?WkWU_7Si4)ItuHXjMyx&Ft!lO6|;>b5b9qViBo7um?Lk^tDCg z>ApNksD31i6ev^YC{W#}Kxma(V+E=pOlg0$Cl0OBz6-4)8Q4)T1?O5GBoc)vOO*&%jigfh9Wf4L>iLGDI^m{ zaQj&;N0$F>(N+ykz^QmnfpXuGM&GqVmtsT-ZDJa#EW>?thz<75`(gD=HP`*tA5~0WXIq97g;nuvps+WLZ|Ma?J_7z<&@T z=>>07;RGY9GA~W2LN_>>G~v3FHfpMNnlvGcq=`j}WFPxX@B#7^kNf3~RtPwttAPxl@bjCppaHWK8r86DbTd( z6|~6t|0>UsB%k3B(pPXu{wwB?Ah$Yk$`{+Loi$AjB>IIR zZjQ6t6tVnY6fu>?ia0j=S-HdTyMDL;|rK_;uglss9Q_lmd}D`G~CDIgSar`bQoi}GZ1Qp8AUr-)e< z6f0sCAdHR7m*?slDQN15I|2EVH}9-dcEE!)^60P~0{lo2j`P_i1BdN)(%&G`8CCp( zVhq8Y;lV4QJuSw|gbWGRpl2&3ktx0h& zq~Plj7-#heq9@eik@9CO1a3=Qw6e_A;A*SdCG2&HYczU&u6~S9XB;qtafSnG^3)@5 z2x%ULRQ6w&00L{g{IjZ+B~4!_=DOKkWL`0Zs!8+Q9>6v?Ly+^E#a=lJ%Q<<=bJ0h% ztv02ZowmG)`VHB9l)9KZm_8ZAMB0*2!Z)Owv!&nhOKVWw1*(Qe#k zs##3gRLtqis2A5R*U7~l=a4!#Pqro;T7c)2uh0d^P@E72J^N^xDAyOwr^q6&nRy;X z!U}&D7^f#Gko1HaQ}{dvbyN+P>v?sqEl-dfb#lOi28XYc6$@7J#tAbDu=t2aWLozM znda?5vTVU*bmm68gu@=}UTF^^*x=Tg7Dm{iktCKYevhfTA!*`o^ zY2`G@Nk&R$6(o@Z6x6kS_%-A;U#x`_%QUhQWFv<|6vM4FF4T+jDQp~x; zwhb){s5znLYg4DGFC)Oh`st;6*6>IfMH;J6jKb(hcnZhx-R zVl?o$^F*D<$$Q5o?;RIdIuO_5%G=-r`N?V^PEQFMLZAcrSj9Sf45@LByA}(pycD&w zMO?-FnJmHVV!iA5D3plJE??Lj41Qzz36?h}J~Ac57i5T!^cBR%tWZLHa!lSL@nswn zCuai9?%dchxiRsrbWE76%$Qw4miX{lIJnk1CcZ~8jitorP{2~NcH)z_hu6i52Su`w z6c`v1y{UjgndQA>!W%Ce&C-#kLjairNoQh?cfO#nG<8oH?o|pxhEgijMGtK%LkcLX z1rWP204s>_t-2=$L`u8PJpqU`$pMk+z5^nYkO2bDFcU?HFdHFel$ae9s*wb~9y`D} zWbq6^pWd7y7_T*OF1bKOF`xK4a}v@Hgtx{g;wo_iAB zz&!y4a!;5#kb7cJYq=+wi26_cc+1WS`jNVkq%tHdPKamnnZtb7pH{E? z0|BlvL*H?W+o95SeY%_Y$Uy*mvGdxlpk}I71vodByBAMnem@fx_YR3_0iE7h9+wFt zFnxNCIC%Q>)DYos+Udg1@Tn}XrmD;nd1QUK*U^$WX)?zsme&=U*>c$@E60u!`=@fQ z3^qrm$V*FxX`iCYe5F;Q@Fnn>d&wtL!|9inKm|vuNC`#!FoO_z*H)JW|9D??wMrh^ zFRK!lNtK>4K@~mf1YjRXcpJ{PS{_YGpQ&+HK(e zwoZRTy_{ko0tU9Arj3U*q_Yd-d+QBq(Mk`s_xRd-vbFadVu?~m-Q8qgVGi5hUyoop z3&q@bZYf4}VTspRjAubD$rb6Z{8{>|@vs!FcMk%^c&{X0t4an?L-c&0M06$r{P*&qB&)ENw`XM-jUHF;Ax#E z5V^TQoquhuL-tT6n0_e&X;2G1&eKVP2Rv)JS@D@=Ie2ae->^HgEtyS06dN zvM6++qD5|WTjMp_UdIQNKQC}Nw#~F!z!xe*qE4N2V;X_j9 z@xR~%ZR+^04II&@|F_Vit#^6WJMj)X+;TIL0K(9=N(H+5^UQ1Mk4a;jNLKJ zzCu(KTkU{2|Fk|N{FU;O9!wAqXfvqgdQNH2`drqlG?()fU-vz9$721j(8D+HopQW+ z&t6^EQP9afDC$zY#q3IY{19y5Mg=vX_-66|Pq*tVsR^z|=V%Yp4>k#(W1NyCr00tq zLR9m^EgggGYKWD& zXzv+nUr|FW!c;?)hyJY=j_Sx{G;(qNeOmZ?%v5`h0zTNqwx-E*-4R>9~Q8 z`m3%=I2SiKC$pUMr&UY+_H!wp2TL6CH*j`|=r4@A9l!+oeox6kJ`~1v1bXL#wZmGHH!klAguP zdGhB$@d|{YC=#ft(v?@G7ec1I!C;&w8=w=-Mx)_#%k0Zf(X>dOkfCa;T3bQ74;}Q2 zbEt5RgLcES9DB*{MGvt`nvSk=lkV9i?GpIp#{qnhOCD&iE9M-?W4#J*P08b!mqp2Gou0JA`t4`k3pWVtEyM!1-w5t}-T(wT^?YZ#bLluGGX9?QW3#Ip=Hjm%}==joFEDi*8=bUkP|zcZV4-U z=xD|vV6#Om+G2;mvZusMnFve*qG5Fx7&6jlq;+QmARM!O_!Q$P*%p&xUQPXLA*%@EJak3 za)_E#={-X;^aD#!B^|#PtaVom*+DT`+|2tXmL{u=WyxMiE;hO=P#}fvA?Yli<_7EO zv&Az+W$(*)kc~0O?bHAj(w)Fyh&FUDc z(NqlN_P!juS*?t{N0fJOzf76( z&spAl`89n*d~xZ{(o>k*g;QvFrbQ#Wku|q$9#e;wh=C-*#;$y}+`1q^S7dVq9cq(s zJ|Q8@d|(*P;gw+T`-4Bq|3*!fzmK5`NC4Zp;^tIaKiOFP!iw)bBm31y3Bi8RuEN7bgj*s3v9tk zjC0GD!yoh6y%DD2u^Yf7I~cs<7rFiB_L%GZ-BvLf1~1jV?MtlWJtQtS*G`5GTdB~X zJ_wf3EWJ2=W=Z6yxo+3v(qDyku~l;3PJatAr-JV^ zOC{B5;x4wNnemP|6jbdm9y@IMU`3z54=?xn!=FYb=n2%!gq_X|>u7Q)gZ3R$JG&Ha z2;KKDLcInZW@;7?{4|3VVg)Zrl(KC^J{G2Tu&o@8Rj>gLA~_28R{^pa2M<=`OAv() zqPGG=A*cl<`&jK~i@))+S+L2V*}56?vvc0hJ`2L+XPfe2IJtJok$*@kSD3bR$Ae(^%8G07w!fQTVKp! zrXsRWD?_VYU$Mj1m37#%O|>~}&Pfwhdj}1R0dEXaO6*A!Cob7Jkzm0U5a0RQ7#}XF z%Bir>WKzdvl9PrVv%1FEne1CKEn)4(4YVa8%N0;{cYhOeb>0=5G-*^}L=M;7%Yk9X z+3e%OslADJML4xL8}N*WRyNlf9-FL`eCo0FQ)j=gvp=a5)3N_ht$fhpsO-fwF=6(K zsSDf&?mb^z{IV=n7#&)Y6+Qs`{OTh?l8<*G7N#s=_O-P4#98E7n74tkcRJF`Z(Zs@1weu7wx3eXfeBB(;896Oc#Cf!`oE2yF z^9HrJS?lp}MhSW-wKwffcAc@M_ zrjL!t5SegNn=zfEBH6+He&KNH+RxqMm`MTWOqB#}~QGRyX?xTi$$<&E{@o z%y3Vcf!kiJ0ISxt<6G=LNAwcASq;mGRl7Wxxk&JCP}ZxC`INfezjFeL*WUP5 z`Nq(o(g=lO?)kRRjBP>6hRmUhy0&diew!;3Sxf?|{$9Or0O#2RN5b;!hs(ha)#Tj`_w!~J zsk&6{oSQ?9cvwP}b9qWX{p0I%YPV3j^26(Q&doPkt>eMuOsg?}WMnFuY(|agIZK(C zoSEdu{zhxQv467Jnm-=Q%(kM&%|Xk3RX>lhaRr@X4p2TzK-?C!c%r=#w9QGHq&Xa_&H5 ze&@{W{IOuyv8_{6$AUS*K0gEKv(eb>^xRbASUY3~NZ7Y;rg3y~X54=NoekzV_`Ko1GcsM|1KU8~a+pJNeZbX)QEY z_8g8RQS>`KGIKl{ncu%4gf@et^Ro=s%)<1jNNpnXhMEo6nPQ9{I45ELxEo}6c&q^r z&&iH90#I&CW-SV@R21Q%^IE#(2}{ z#vpWpr9ru!2S#Sbr}V4Y7?~e~H=DuC!dx?$8X0X&HE-KL+nVK_qdS0ZjX-PBH#QJ1 z!N?dNNv~(13-}-gfNJJO=0~P!LPMEpX@`4$0M~(HGARp7KXXnwxD-I>axuG}I<l6JLNjk%;sfCf*xyH;se(vG#e*UIs#}@#3+t%hbhQAd}NP6GR3(7LA(0XJ1)`-EO z9;MANc>0-)25G}nlhczeX_l?y+d+liuYp-|9-TzO@pf!vMvalOwRyJ^_}V&dzZ&!N zP!!BGF51k3H!(ju9ZgJnXz%Xnrrd$qh52BNzZHn0Tw~{0YhI#`8ll?JW3%%C{1;84 z14ddrG>=1M$0BP`?CahuE5G*bYaW;nkk^g*gnOsNW1d3C8BsdT+l9F~KG6nJu}FGQ z6aSh<6#2y2(SzVJ7V@A<{U4bDTdvTA=~5ep)h`*heUJH!TgP{d9&d@_tY9=g+i;al zXb5Id%a1RNL~-uctdj}AHznZ%-}r=WJZ^)CHFDDnP52$MZhr}z&0X)EgzTh|tTf`P z3Iy>JCXJx^k@?^_WCKnchl7cE$SRmZzs@l@vva|=RO4=o$PE36xP zR@1$2mhaxJ&HJMfunp5elZI=g$>g}YXf^E|Uzk?=jXB9+#OKIduy;;m7;T+Hi6M*v zNu=Pmh35Qi#+|pp@VC*g+upnL-M8)D*_^%SI`2fg7(&Xi(=sN+IX5ycs@^H7mgNvM zw_qDRZt^aenGGgszR{YTnV1d6$vO*^h@TllrZ;1P=}B+{MQ;1ZwrFGmQiO}QPHck+ zqBzUJ=Il%mE1%gpiH+bf^uhds$!@5E%&{O17G})kfP{pdXg^{r^Vak1LKA7RbLY-& z5hjF3DRK){lvdaXv;SzxepP!uaTpeC$OVFTL<{S z82N^$fVB&tW>9EqUQ1G(b=hBVqt13I5sC=0^1ZbV9I`C zBPm7C&;h>$j-I7)O)5wM&5$(K;6w6zD%jZoR@rWi!wdYt89)vS2;*q6nEx>~JIafv z?cIUd*+Y6|-&lCK32Q*_<{^X2eFfp(>3<6p+A<~pwzX5_~<4?wQI z00?aZ*0hropvZrp3AGc0z0K*bRXH?JBl{aWWgDd$E{3WJL!jRG2hL(a3b`L<=PDgs zPfYH|t-#$iG>`J+yy}b?ai#8#Mny46w(-XPVC&A?-?LxDdIZ@cf{d+)*$GfP!JDax z0K2v^IUzG{B3LO5?v6(0=5~6MeCx!mChE+7MZrnqV17;D6^|W~ya-&!;zm~36NNeLGLw;7B7#3`9?ZM*Q~X=;Sz7V2n^VsuXY*P%7eQ8vBu^s%d@!;Lv}# zo+f&Pi}XQnoJ6&B{}ajN^2UatNuk3F4eDA&Pza8ZNUSkAv*0ASOf3A-#@GViN0H%; z0J{{u)d;5iH~CQnXcW@q7TPzY$0IJZK|D7Cm`Gg>44I~8`P6_RUiBIChu7AKHS;l$ zYzaljN%IJ>$$9FKPZ68Xk}4=id2P*wCIWsO9$x=vMk zrkaKMd1Q!esdP{i&l8F@?L3`%nUQu5#9(}KVnWIzXid+_`2{ETm0BG88#B_LGSC)g zCK)HQ^eq$ip^6+mfRI%MasjZ4>`S(m{qS^SIEKa1LnHI}h{~Gjsw5F3t%2|_omVRI zLP?_r(Iz6J^Z_-Myoej2(0)}UJJCEOf@N{xj3FNzXov<;MC5AU7K@d{56(&#muIqR zgJRGCnklIUf)?NoEbNDVoPppFZ9-#;5orY8NHP1_667UV*e^|Tg=9E-hEHET`^>{T z?s9ySsdT(CHi_Dd8cnFts|H^=R=mtWNq1B~0IZbJF4g?+_KePkXe&E9B0Z6<4JMw( z;z0(Rl+w2k!0aEHAJrqHgQu5pQrm;;jr?c=TMP4JX*S=JCQQ|sA$=!qhrYdL3LXN( zROM<%WVfI{%z<%KZ4=gVB0@d`aTfW@UUtRa8-3U@JF&wYb6)Wt)}*pgs4^fDIUd;P zx>B(@I5{3{Gb_#c;Z591^lM|B9?#D&%;^{QQfrc^rOENuDu<;l?j{bgyrVE4a;-OI~A^DNeK^ zwRJ$6It5|deK-|(F_Saf(!_hk{P$bBc^yfes095Z{8zYqM5PK_LD+(Ao6N3u?MlW0OCiE8WkO(oG zc|@uCXTyq?d3k4Xm}c~m+i%@E{?XvRk38_vpr;!WaoQx-7@hz>B0=-fp!(6^*z>{T z&(`WsJ|FCT^6AH(5B5Fu#B)m7_r#O>we{KHkq>A1owpZfDLkprDY_?zSG?SLBrtgyP18t{f>9P=e_T{ z^RBNA7FrW`tt3j~rnld5SMb12(+O+5z2m*_OHw@nLP~e+TO)mX{Jkr)PLIEbi4N4) z`}l63zo3?P2m9W;@7)2!5)nEwU;Bgz5Q$Nz{_gAJAIc0 z_r15@5!(hM%|nPi#0gVZ`)ADA5@9kWh0Tt>UaNxJcH1^Y%n0dV6IU1uFv? z+iPlMe{;JZ&v-cq2 zv01Hl-=4*y6&Z1AB7GGb=vj}|DZXLF)qP*R={h^_pB3QP?v&E-R(=_ByyMN&4Dk)V z-s#-+)i`qQ5%^SS0Sy5P%tFK4qL}Nyk0zVnf_5{Qd_%BEtD*Xl9%8la!F|IPA;9>b zW=>{22F))N;LaJ@q^2R(?OCVA;^e9YSS&=)ma(UM z7_v&@I87e5!xYJ^vY^4Xro5Xi8J41wde^vY4>Y9yXByLvJ*eT>pR}M3Wr;(sC%2`)ziC@S=Z6~d^rLN>dfj&YNjb|y%#j(@ZNau1haoJl z&8nu&xJWKo*s73<8gvYn=I~SsjSBbP6dC7-x531(+nfixP2(%vCcQ|iCoM5uEQgsU z3{BQLi4GDhR`eA(2qs3&F<40w#=I6+v)5&qX;zIrGOWqW6L6V@)&>UP#Ssmh+p$S> zp@q2D1U12gwC)_ivI(bl(s44KtA2Z76!&s0?f8l}AUDB@MwAGzg?Cj+T>ANKS=x=G zzT0NDZruf9gO7N-xk^QNV$P7S_}O%^whOdY0`M1Uer})f>irReVl!ev)Z5e7UBU~P zY4x~JlcvdfG7(w{Oro)xU5(=5;(cuQ`!_I<@C%Eb3eLXk# z1YywrZ^w@483pf~WAl@&D&g1Y{Ny;^HH~5_G2sWYKU{nIgFTL%VC-geU-V5#jgvk} zSR2I)qx<(s`Zqsv`$v0v6gJ)I;?X3>*Z>k%Y!I=~Y)Z6i=X)an_>c=oy4gw1t2^#t zb|5;+Duo`TKo8j-o3Z&Mb*nM&5)3jS;Z{ZT3>&T^sJNq(S`5>W*mdDy;^j7T=ShMA zL$BFFnoJMOMcS#_pCK@RD;xz%T$8Rw-1pfjW}KNU@*E^7Z!^*gb`!rsShjY0+{FEk z_Dve}HYknxVbctT3Wrvz0!t|zA5n&n%IjK@7VX^0^pDKyZ6CGrlM_Z)sz6f-F=~ga z9y)}J=+5SqtK08(Eauv0mSsGyLvbxh`t8wu_eI-0?^=zPLxbiZHKlN?qNW0vu~4a7 zovKT+0+dr80x3z&jJ&-~UMMD)JSdmZ`S5Vn(YsoaMUwPL9N69$18DoL(Jn_{R)_DL zi_qF)fV6}0xFEf=5PG_#Ap=MF(O-|F3a2rKV{gDwMN@+mCnX`JTcbN}T`}g{dpuP| zYq%zH-(sSjoU!TZBaYR^yRhYCb7q?biY(5Q(sNs-4g%4$qfJ-cDw;k8(;AU_ zg0@kLah+|{L5_GFCD3P{vNuWIUi&ZwO*mj2VkTyg2Qbdgi5Zvd@j$w<*!3VHzqC$9 zH@-bcZ2rY@_r%QhNQj6L_$Ii>w48?C-d^Jl4Uv@C1LCFxyD76R>occ&9lATG7}vap^gvxt}@(0jmp@C9c7h zbeUKQOFCcD*6=m0S;GVKvq!Z|$P^JuhQ$OJ!LlWpteR!gbn3X|KT{^z zq`11LXQQLc4-wWBq*~yk$#Qwj1zr8N z5?~nJD!4p_j?OZJr~>kK7u@JW5-vw`jwO%uwHb+Cb{bNpPCy(JIPeGyLuNojQe0~s zwCcgiD~yi6c>uh(X5+s5K~oV!(u(dp-2ik`X9rrXx#r!s-FEcoQN;^)&d%?@4eRf= zyLP^3=YiJrlofO&=s>@fE_s0Ob9E$I&)cf0?2U%o@guqtTfmme1Ye?P^$S!muOaRr zya;<_T8YGMv>d58Z$_TIETj@(EWyLvM7?~qNc3T{Pz1U0VFaji;Kke*mFjYNLD3)Kp+qs0s-X5!?$?SfmUks$^FC} zq^E==FGV_GYHDL+4F3?eVK|Jayq}#$+^ae|+eT^u=3V~76D%B}in~9)ZD~D5TZArt z;kNm~DHbTm(;oDZvZKAbQ|Ig){sKpHaPn3?JyXi5f@0H=kehvp>1x&fDS|0XJOX1* z!16Kon;|g>#+h=c76+%#kI*w@iI@>zZu8L31}kGhtCYc$>FRN=F^jd^{ytMUqz8_e zOo6rllEGUb;IgeN)$q)w&=2UBD*u@x!4b%s5v<44u%{)esV_lNt)ysmm6 zl0N+o$s)+T$6|y$a(2A`2z&OYZ_c*)=ys}g8{^@$iLOh}pCa(Py14peb^T9zV$#fh zt4xCbv%2nwt4k}-Uasgf1p#cx)xXyBT)Z)#g!0H_Hl{T}ZB4WC)YL01)A-Nw5ZnOU z^r?QB<`eGb4@f0P+*3lDzU27^n;E&e+x|O`{It z22Tx>YTr)l|C`iZu@bG` zPgdM?hXzza1m@*8zxhp4aA?@o4VfiM^h4ng^^Es7=k%4d-xzcx*C<3TpbT{$eT;^1A!nyPLjO&_ zgUE*t#FXE|!tLbVJboctRI_WUM-3oM`S=YG>E$q6nzCMlctXtuc>D+31`$E^V+<7Lc^F{ zFriUn2j8oUb5Zq{C2>8PCuf!e7)(E`&de+r-->|qWDo_gWovMymU?LpR4RE~+5q;IgZ zweyBS8p|6;%>Yrb2e16K#7;Vg= zNbQHFu*j@GS&x0w>{}twwBaVK_^1seR+`A*N zOpp%FPF52Ws%2^Iwx!r3Tv*(`NC-P7cRLJSkc@2eTLKbX41TF}dPy7V#_Dms_Fw`!g*MOg|06Icv2 zaYl^l{R}{4?Op0`ecs8sT+0EgVH%N*_cJ4Pwdq9}4R+kvdIdOl!ak&j+k8l)0p*pR z?YLs`WY^u)1^|H&9bTp8zc={+tWZCA(E2`u?@eVsll5jOOR+7cAsMQhMLS!F0?Dgm zeN}Cr_y+RX)|9mgCm)(m4yNFyL+_WI@+HG2^-9Zd*;qLvq2UY6M_8&Mw1<3;#5)%= z*=0xysmru`DE>Ow;IPrujs6=O^Um_&-YKF<2tXjT`5r+K1wpZ23 z9|S6pXb!H%X-2ub#F?h6r%8^vvEY;57l`pVif1X%vCQY~Q7_;hu>dg55g*x1tH z(T8JY7WQ^-RdX}556ZC4*w~Byv2sxmcE_*~6Ye9pg#B`cv=~-E90oBM>h{-IA0pz* zZEZxc7^gqn=Gkic$~^RNgaGm$b{Mq@pGZZei@e3doq@8ob`N)S&fM`VMs|?g0|i)( zzl;{+P#@?8DY3X=0s$2krZRxH8alicCKg%bGN*T@u9Jb42R&ig9{*i=GIScwQaDQJ8fs{aJLe1w35fMa8z zOo^W(%fKG=;b~Zti9LfA4iV`u#{z2aA$7p#jW}YUcXFscwPT7$tiOi?A&0m|;x(5! zyE?CZf>_@=ing|q@21gsg0b_&6IUd;CP7%lVR{!KhY;8!d~cc|l8CiF9*vE8M6_)f zGa|PKI+M$tP(<0VGu#{~n0WoimFng5$Ll{YtgTe5FRK@8&;PKBG|p;#;U&J0PgXy# zuK)P_r*&jDtgS6PTmMt_{BgDL>`&G2SD!6URx5u*y64N6)$_HnvDK$9o~*9m;p(%c zCqFH(KKr3sM8jv#!N;rMWt*^{S@YUL03QoZ~UiL2}j za`h7iutpTCrROjHw6^-gkL%Ts&!1o&`?6YG0d5P6PgdL)#0j;RoWk zRy_w843G5``UFjWT;VhJxPbpl>qwa8NS2;ITVKQ1NepytJ-7XN_2tTBwXnAOk~Dd| z_WUWvNSdMv-~$R8K3g#u(pyBz(}F4_+D{mF!Ul`ig(m=pIeO+%rrN)3OVLs^sCdZ9IM#Upoq^jZz^x}qtzZwWk2nJPH{_(TDS)vo z9DKliGt_AUg<4Iq&+;BBL8K8W`u#h_LL5+=%~wLiR@w08!4cp3zdu|dL^G#g^K zh}tkxb$r(i6e&xnInRy}t?y$RQ3a|8dQk@&c=W1%VnqT)%qH)!p>%=~tsWpj4to{Y zAG1(ue~hO_Umx(4F2`p@u#XEznD7G%Dv~d>^eH5H0Ns_w168XXHvw_~QOpK)FoaY(D6fUW#AP=M{XaXyPT41`LFd1C@7O^gtrre;-~ zN;$?^FKo7;GEZ2)>Eq%MRXI7+MI+c{RFB%U47FGE2^6_kc>qlfD~x1%T$}(<;GV$& zj=`PaJT-T6kowU-K0+oJgZn5a0n#=P39@&l1FnS~X&O1Z01f(Mz9@Q0xc-}K$SW&D z>C7%&2!Z_!Wmt{Sg=1r%r3~|QVfJp?N#iC}&UN4iI;z;OAKO3M!Y&-x5c``*Bb=Va zhq-&V|IgV0w(I8R$HrE6&u{|quv$b4G|KwBXWMsCv9YvQT8rVoN~mYxW#1yzV|@+ooQ#1+Dr-zJHqr#bQz1qHvmvy zjg2kiuqJc|#-=l&@32jIVXyTS3lz!N2Gzk9Xao4&k~(O0`Ek?(fW{-y5Lt|qwt&c^ zfcXOO%J+3E5l_=hF(ZnCj_uBlUDZ>b9;5T>JzP3~2T00*#`35{FsW476KOXnu>Rg2 zwplegR7Bp_+f0kS!8vS`H`fwYV`Fm6m>Li52+}vNdN9Sl`l?#)^Lj2^l!KGKB;q<0 zp*Fg4WH1$Q#3DwX966cLb-3q&28>7jaG+224Bk6Ze&MJCC0SIgO!oTN)q+-+{X$|o zPsB1MBDwQWu1Dq)XhvE#o@!L%+SK^^WHEVtJGu@&jKA|i!Pyq?ZW~-Ed8mr zR}-J%KoecfolINWIt*>=bZjiu$%i_y_Ck8N4@$y-#w})vz9_&95ADa}7A6|j*rrD% z7;hZ(K>olnlEzN}C-uX-Q*=neoAmN~btsdxMc+u^N4m!u_(!LzPd}io?6W4jXe4pa zEnaa84lj2&e1{Xh99lmgi-n({T7pC4g%p|-+%5s%!v($U41hD>cKDDWCWOptsXaVE-cP;}E|H?9(%9H93@%zOh#^J-ba-9{$5`F(0<;Q? zD1&v&I@h7a*DBo)^PtfTXUx{~wLl>nAQi2c^?`^>>YHLl!(IG2nHGT~x0WFBPE=IB9#Qn)k2 zK?vC!lCk@zzhL9Fx_4*l&dkGm92eY@)jciyQ_@sTbDa5PwiVA`Ck8y#rjq( z!wI1HAz2Bu4=H0l67WZ?fvY}VqOwgS-XW=+LZ{or8l&0yKxUV8VNY1+Aa;C!P=~7} z#ZW*$@t8C<&to`S@RtrW44er)+h^L8t`E?B%WC;NY+iyh+ev4CNQ1f-7TY|cp`_qU z2=F~zTxL5_adKK5&4JR$L3;}wM1mn5&Fv26Q`Zf! zuSpS$*2CplVb&z*ndjl}&?Qe}+`7;$Diwvu&MT zPW&uVqGA>gJm8GtL<#;$jwnJ&RM;Qo+!ip#qstEq%Sv*c(p*O6!rBxzq3sEv!=EX( z?2guCmtskuz}_n@QBu;p8^_v)7h9sI^uXzl_G7Oj)u)FYG7YMD%7T568id0O$+aQ9 zsXs1|?0hj`!DSZ%#a0%K3U2TSAEYhg>3Y8=Ku&{Q6eKq(y)iEpO5Os;H`Rl1u{6`^ zrkBJTWt;laq-K}tS|zq)n`#y(VaPCtk%9`+K{0*^&paq-X9n4xK=VWs4L@ZY@%axr zctwV#J`PnI_#!I6L|!s_Iyw1g*5sULG;m^I40T9k+BrFXp*V8WyA;^hEF*2O0&^0SHwJw-&oQ|f&iDSdO_{eK%`<&Fm zbpP<5CrQ4vEl1<(Li1V zT>JTm^3wVy2)jH04W01&WIL#Ob99^iF`tlz1 zGdAW_Wb6U1>0~HoCtsy3mpE9I9qBf}g5F|O0P${pVkFK;;JHZ%JO%=dm`*VsU;_;M z`pg+Z?g9^2@nQsis+gw0vIC}=VvieNkd$D9ethl*Jc%X`Z(~C ztN3fPijPm_D*j4ti;2QTc_?(cI|7&0Qd*KEpNqSlT!3Y3M!^cA<=s85gmt|Ihy z&@dq&N8B?n9~ir-*q7L2M2lxZf-8e`Eh)|;@39AXe1WW-8`lK@^{(U70j(7IDAXU2 z2RF(nGT|{JyFCpbWxWLJ_U&p;T>$l`U=wZ>(VGZ{sD+Ych?$;)kJQ08AR5#~0*c7N z9^x+V4mbEqHD7Up4y<#eKU&3Eo1p7I@U;h6CBt=>F%l7~uQPZaFF?*e_(uvZS+(}; z3N;J?$AJ@|xo;AR)o;J!91sK`@oB1_xg|{)C%RO;(QN@%G{7+eCJAP&64U8BRCUw~B6Y+)!BjHz-25PyhGSQ)c@1enaqi>uGpHy2meUj{oh zpZ{qc`{Ti9V9*DR(x0ENEl0~l*GBov)qh<<E={lNB{1(?)_i!KrzZ2?+cvi@GdjvWg7SV5l zc#7Mxo~|M#VSVL?m9i}Q^EbNA#zC^0S_?XJ#4_Dv{)+GMAwoDsML_t_D+ zW9@x))X#B$2l_-Fb{fXqmkxt#{}=^6*5cspX#JUZ7-rRH6~G>puDp0os0UM zo3u8MM{a?gYC9(K(4q)Bn$LN1oZA9%Y+RES{m@|}%-Vg6rd5T;a^XH@3iz-eJE3jc-d;+0`XL

LR+V=!;8xG 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

Ki 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 z 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 C_Y1oK literal 310998 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

WdfcOtGh30_ zg|v}|avx?V5-Q+#U7hRIG$`40bxK3 zM=>JBeq<6s7Fah05l#04!B;Oa>uX!4P)~S5n_CSPRE#9a12-qp=9mH$5m(!q9-<~x z^et7MmHFzSqVv8Q>0d-Ue3)K_S!D6|D2Z8YumNK1!PK1IkiJQbP8s%Eee2dU+bFQJ_ONTvfD7H2Zs9bxxgxqYBjK+OtysO5b zB4}TH;6jKwLzMMNAPzykH;`9KL#0e|rnKfF@*V~KBF)5mXV8JhND%3cM))h6^jw+u^}$IPj$A0k1?N^|B)X&!lMjB`MBw zI^Asc8L)ZZ-40J|?|Jv0(6%~gL~b)WPfV`d&)CT>XN13VXDQ$7idNKt)KFM;TpW&h zsG7D1oz~DLg<*kba!I)rYYy2*#%f3@aNGu&-3wPY-BDx3$M-Jm`i(L1_Qci)?m_!y zv}v2%oi-%%N?~ioPYps1EDM=B$J*|IQUf%L33AL6u?0ZV~V z96zG46o&dV0n03!^{wn}_`eLAiVRyOJ8eK2m*~Iyn1C#j5CCoF27pA=ixx_mPL_(Z z5Xs7VzfpC$4r0Ak@diX|>&Qhb?ucInVWCe#S*sxS*9lfIJP@qSfnbGLk*aM@|IsT- zN;{^O>%d5Cj!Iih84TLP;ItRxdoI*r*fWy37#k7)H_k{iw1qNXF)1OI5+EyKfLiIyiqENH0MbgPxtTey{@WAIZWRm84m51nO>+A7P15|nId~jzSiUi#akC-iGk2O zu2v1L;v^N{cGI9DLA9ZZaEVX2s@Hv6VsFUvD6Sni!6Nn9QI_F3Y1T z-2e8Qy**e!k6CnAzj@qEro;MFT+2fK=h2MQAPLu8HE^(|XA3E_`2|((aHV`B#f$H) zy5(K53z|xfpeYtTkEqnKZ0m@6EWW)D{+@>lA}RAnSvbUh;tvnNk%uoX!yrB6h?y@~ zqRxjMH_(^}WigWsN~l2#)cVuDtE8TWUL9^Wca*-?F$q=0w6R3%wD&mZtwC4y)(}l2 zTXPlJGD8l+QB<*=D+{YE2D5r06sNJy@8!@{#*elNNVc(%wuCI1j*fTfR7Zjek2NZh zDfZ+6GMKSVSyP!|i{Q{>|MiJGk_m9Eu^szRMzp#7MeGokA!q*hfUU~Idk8odMx&rZBgiIE#yZMI zOp+*30mUrwshdsZuL(n*ej)4m6sI~^Kh&X=#CdZb%`Z|%6t8wY(Tg9I!|GmyZD^@j zAhk(23I;gDG(6X)p`WmC0U4zkm_N58@X{BLx@p8Hp=#%7NO*W?p0LQ(HpX7i{Rq;c z^WhO;n)F0ikkw|!<1)id3V}{1&OA1qfv-rOqcxLO5--H=kh2a1FRG4ExELGNkOmN2 z4$Vpnx?elgeXT8{{t+0k2^hwKvJgBDE-vS^Mo(_GFd7M6wjaqbjcHx|ag#ptcyv)H zhX~oi%|ob9k9O>bnteyjip7_FRQB#B9<5Wx0J?uQWL&1Z`_Vv^Vc%HbEt2kbEU~^! zPgcDx8QGhWfb^tx(w`eFT>#|L#jC+&v@YN^n)bq>I0l!T!??D^UOA^COkYcjz>w4^ z901V($tPh9dFqZ=yS)P^UW4rSk zcok;MIxA;5WGuR8b|!cF4J<=4U}<)%rT)qxwM|sS{YeahKVr!UC59H6Po^|KNe&W* z7p?+dlotzDm?XrAd}oPz=8M6y7sb6Y{oSD*c~cx9qdT%ml;q(Qa1i8t65LL=LV^d5 zA;bn1M#0(v%c{1Qt}6Dk=x~y?=+;t~hJZ8Y&(sB=quEFwlO?VdGyue*WJ;VzNcR`p z$p)DjUo3r}#z6}kxe43q%mupW{(9)pVz3Sp2IWWrZAeuqGki%K5#QN5W6@_OG^;#0 zBRRmuzSB?zgl#&PsPflPvf=RbU^2JtcYuN)e_M0U^axeVh6}Z95P@_^gD6SE#nT9@ zJu!qr=qL~H3H{_Uw{H&B8iYr*?W|}Li=_h1-G^GviZW(z-hB*?v!dg%Ip*EpqWfzW zwu2NsD_Xm-JTm62D4lxRH0=$=hGYIL%X*tsMRS)0p*@81%> zDIdx%eHJf?7ejRNZ-?7=oEvnyUmy^HDQ`C&6>HwzFJOfTmj4L1_ld-JXkWn{M$+Q6 z8x_H-Cn^4vpqY%d+GEvESbZzMG}yGOrV{lDSTK>1KsH;fg3~gCul86%m9Y#St8ej* zx%NqU9+F0wxDomR%&%4TqMB2{DP{pr@wd~Z1>H_nx ze6m4yU3sxZd{ACo&yd83*LS~_zZ-!#+Xk!p+wVXDD9XkO^yiI zxtsySD?q~ZZKiAp0X|)eOIZ6G<4gHeCRQ(^RMa|U#^9PzfMXq339Z8APUT!gbY>e+Snm}3aLpJxDz-ConXXPF zX!*$%82nXHi@cuFjKf9}l&m#2)*5{E-y+zJ2}|$P(AoFzIvVRMe8TM`I8Xb8L9PV;3WLJW; zrn;vZVj12p!-8<0-H%bNlBo4ZwwfNNe;`V*L=lE{hh5k@phfv66;i4ivq)W>?pL9* z*)C#cPyz-P7?4UjbRS+;rV64lYnY&l$s{v!&_T5v>jA-JEtIfdoI~nB-0Pxa;wmg$`yUDcd?eMR6cACPj^P5K^D=Ge8H+6QI)y5G9hl) zVvlH?9e(>Y&F-dGsIWIC>$CZY&kdf%XbF!xMoAKbptsNpRe+kE zfZi^4!pe|$J1Ou6^6e~{2zoCjQ2Y3UnWQu>{lA%biZ+WXhB=rzo`W0tH@!N-qM^DB z8>;(FRg+W(9WnwUpQ+~50IE{kG40eBntG1bIc!~n;I+n2CVQ;U=Ll$)RJ}9K5`to~ zgEd6=*tst1+_t}~zkx9WC7JqxHdTU)jP_crW954zmq}l|#0BJ-ivonJ42uhakEbJ3 zRR^@F&cXjI&kt@oFtdihGy_+wFO0aI+pz+l{%!18{rF@RK@t1oquds8F|-{ZrHo9N z!rNUz@#%M!Rgv>`YckVfuX7T>j`9lC>d16U=JrG7mh0hk1T2^HG`Vsw}w3=fNtFi9PGpaB_T4CjU_}Ljl$!s znf{)pmZ9Y#MGg&$A3@eel}TApdN23Vcd7|@eOv9?Gy)(9@{T@k3)z)tm3rM0kO~tH z5m%HGC#5koaWYb+L}YW?WEqEr<`Zbz@Skn=6iOMwFa(Fwc#k-mzF`QbJGeB0aEw-? zB%9!JvRoxk)c@T$7yP%noma-tD2Z;rou7<9BH@k_&cm#|YhTg0h26zg1iH2LY|$@8 zy(h{LIo;NgY>%`t#BC`}#|fx2l?_M2LN<3me9mjFCZ$-3dqL31%|5udP=Na0z*3_l zZ-=qle$c@z$v5i`lW#UwUZ=lfHWXxTdU~f!2__(et4uS*Ic_0xEQ9pTr0~Wz1~ys< z!N+1Gct&GRBU4x?pXJTrV27KRx-f~#&>BWREqsw9x5Y==>|8Yv?pASmZ_~x+6Uv&P zwlk${2Za@tm2-(K?_<)q=}>lDXyF(*a#jG3UE_%VND@g6qw}p{jZj)o`prCa(^K9< z*N{#Ro^5-MRS+6?nr1p;x7&1d9z>m7<1)Cg8Lmn1wn;P0sxzjihC^=Tm>jk7m?1gn zLUK~N0_j8?Vj8K@AAg#{LhK%Qc4nK@1Oz1=P!-PTQf1uOgpBsyxVj`XtSpCpMQe|A zXimxoiZbK~f9L-}J$J-T&ebFkJT_2z6uJBGMeaF#k@p?G$brKbx&QD*9z1-JhYnxl z;X@Vae%o#1QR;}>&Lc*=9yug5_I&_F(>M6lqqbgb*bl;H><%xiA8T0q9+|U+XxxCl zRSPl!rj1hzGe5ZlX^wHs1p+b7Vf@qLZ+kag4vsI4$TSKrV;7|b$B|N!)81_7Y$y}j z3L^L8{Odk@LJ`IMU(1X5X0uY9qH;kLfN+vlCdqgnTx7|;jIs*?OcMYH5d<_rcyr)QN4)(%i8tqTsk= zi&iEzE6{vZZj@Falk3oAO(?D%y9j!;-y#8;C9{UJCW(B=8<01DhFAhQia8qDxh0Z< z(ZrCCtt~V@8YAwZxZ#-{F!-lWr&Wvgw#@*tr2$Fe1;+Ve!>v{{ z`bKFqYLOWrfv$!|0gU~~Ln)erK6}jyN|JDnh8`3js?!6e6A>b#3j0P|YCjaU8WdaP z06^!sN*h^M<(_ub!{9!!3R=MPCh)9D3auvhUq>>nSsgztTQK-Xw!4G)sZ8u zRlrHn!8#3b+SGDlvfD|97}4uL=C{r!GPN#2>6F7F@*`cW(QHJcl6y6tQ7CDoP|6l- zbS-hK`H)_GgpjUv;@dc@VZ)dFv#wZY*rkg#`ZGC`N4q#<6NGV&hCb67)<G!Wa7&1I{` z2inTe=f(g-t-9DIZ$|@)B)U1XwKJqOC zpiow0P1QyyIWXj5@Gi9lNwOUBpvbQ%Z z4%2ocwzEZA74|sENI+3sEDzL63l}9=%W% z_BDtMI#u2XGOAh?rjd#!R6u@qrHh>fB@-6-La)mb zn*4hn?+^Dnsx=YXkN4OKjXI_AAk$O7i03#h)(j?e@pAxEEt?M%q;HoP#@6D=CD^!7 z1+nnr&TF2@@Hn!Baf%yiS}mk zB~!cI`@!6*sM7#*#r@%)q1T3qyqpJy8U(5Lu&M+TLNibkfST{t81~)#rp~ISoHJjQ zks*GtQ40&$ zY%%$uvYWShA+33=VZi{m$M)3pS6W1<)zA`ms1V%39`vLa`RdGARrg6nDS3ivKsOy`LNd ztkV=&hsfDuE;Gl_OT3WqD90ve@t!^@F!qUqfdswlI5iUlCQ;0gr{loa|PvJ&?pwAd?8oPVH7{opDRZNW(yIV12nEXPxd#Lk_8R zkYfI-1I0CD30KfHfXARi<2mSfJRiD6Dwi*b7=jKz6zJesK}SUgU86fG+`fBozF)Pk z_Jv^>OQZ*Ro6WnhVrUl!gP$^bBl~Hl7xHweHsU2W^k_UkxRkYQZMCnnMHK-%yjiQ}GrocJkzKCD zvw_ipW+h2030T3h{oy7zt>3omm%Ye8f#hR695PL}vFkP?@9LgEeUZo!y3kSAGu>}A z5*Lt&X9s(88v~Nn0PDX1Kfz#gm|3SF?EQ;iyC^u{z-CbR3njxTt4ofXm%E!pI?Erx zt$>|->Q236VOkmn5yp~TdFJVp?Ys?2%LUARY13Gw0NAN!&}gl&5vZ*c}_*VD}aM4~k_in&`EE zJn%oP7&IQsabjZ*Z(xjEn+ z!G|_1nM4X`1m(!&=p6!jXXLp?4gozd9UA)KxnDBDFj`5>f#&=)38yoJI~WYh?0mbE zZ-k=w_GZ3eeYyeKY3{X=1Gyf&o-)G8Yx#7@NN*8tIJmt+=3b;s=gk#rFQ1|_j`sdw z50hNWB^^@$^2i4Or`T`L$D&AdQauKOz zaur@A*`C?>}2sA66WB>0y-h*RBtOo(|HVadV|bMRfY>~Cq4 zvF)cqCM4AAH};QcO0hvZyb3APa_E4|E-BAWX ztCvu4f7@OY%PR!%bHI9Ajlh3Ajsyg;gAstRuN>51_(u|^I@B_296;89jAn_9#{NGV zQ4?(J(;=Basi>S;#R-ExWLGw32oSgyEvF5yCH$h*R^FPiD2hC%#sNSxBf4EY@S1mh zP5;O7KmfhEJb=l~BwoDpZiVV^05;!3!9$%KK_d^B2ZwiG-Dzm_?tcvf@mgUrh&D$u36j+ZAcV2qGR zcE*Qcm4`)Zwz%;ood{}$lmzArNoEN3wL(UG0OtzDN}Ix~(cF97GfS#N>Q(w-&4ug~ zkm5UWWS#*l!<{Z(bX!T8+{rxgBDkvwS2-3;j{q+Q5JCh_=LIq3ZL*D@87Mo}@y4Xq z>@9a5sNGgSS||XJ4?4cn3jhLUH!y#70RW>o0id*HUQ$yE08A}|!N$g+uucki{NcA{ zt@}86o?O(&vM}$+ZuyIdr*Am10{wk>NrGA>^&&sfE~WmlR7pZ(f1;p?!sqCt32G{-d^sA*5&^7B(N))1iwtqb~j?94xBMBjzptM z)h$raz05))jBoI^ zqatxcoZcl;!)yqpR0O-$^&YO?P^I-2e+E?K$^yFE8+l$Z#Y)3+IBb@Le*jaYq_(Hg>-^7m z&*a)^V3$za+`u^a4 zggyqma)>#aTk21N25VG8ffN8SCqX>NEe;}F5PjJ~YgVz2nt?Jb&F{!h4YQ)78jP3HpvS)=R2)A}-z8Ge9D--J)>t+oj7ON;>JIcnL5i5C>Rbn|g!!F@ zW-K-}YYVO$cxX9nVL`Kd(~S`_VkD#5t`Z|l(HDIi4W{MBMA!jCVhiKW1O{y|?C#GQ zl8l5I5VXqxGr%CMO(!}Eiw_pC)SRIS3CNvlV_sk&yI6y2@S3X!G<-(Y{rAW5VvmST zEkiH%7;K9*I@F@FC5Z{=^MB*bG+%0s`40!z0vb<`pyraj;gX5+Ck(<w>M^!y@Lt^halO#er&+5 zPKh?rip=}CX}pFzSw`1O7HMXYhSZE(qV#Q8VBSb7KOGsFU%&m}vD)S{SWJ}ojg|~&^46%7 zB1exVTO2OYq$LrD`SY!-^Dmm{9DS3cF`vIy!*CAELK=I7GYNnuHjYJu`Rg5k`5UAB zJVfSs>4QT56j0*<9ZUK)*Csjzi6U)^i3{8 z4zCv6%DOyS#$E)(?>g=Pw~eE3a}gNdAQ*9Oj}?sP8XC{N2n*?`n_L9MI|QO%8lp{a zsoC~J%q>}J&B{`1O8PXbHFqpEJTa+YGuE0s!dPqheX*>i$|94orq_@<>2GfbfE&z! z(|T)*&1B}M9PKQQ9**R#-li5v^y(M!`xU~af&Y%mTpA3{$m4`f!C4@s%?v!y2X z-%RU3%SLs@9_$bnu^10YVpQ?#ibp?%#~*_!{Fh@ng+}1taRkorQ0=HQZ1T?uAIC~Y zh(R8DU&SB;Mko=#ug4yA(Go_zY*S~#s{5mK{8oPN_|4eQa?D1a#iLgIbRsNE4N5WS z5YS_BEKWZpgzw|kZ>#~_7by8Ha=5_s`~JU*Eiq7wJ{=IrMGgY;4QJ z#So7>$|*I=6nDa`RfQ2@We(+&!#z)!9I3r`v=FG>d4bGhL`sf^;BUo^u#Y_fK{!Xx zDoc+NucJnFEG>Qm2Sd+BVn;l&EW&3StIx+k<%t-*w0sPd*QQE@^D!?5YRz11g|#?& zh!`mC4Pu~;c`;BUBlSolF8HYaTpUJ8;X{b8>!w4wT6M%fLRTw4;}O|Li#W_@NX-&n zJL3_>P!?(QcHB|driImxg&@gaBNrD%%lnW{ZCHavyU#l(!Z?0(;ZSEbIM?zK zunueSm9zW^9l%HEERRO^=rQW31T#uD)w#-8>IaOUeoM4sEQ~}W16KR&coj8)PZZ-0 z=G?7G919xabN zT{mk6@BomfW!U=bVeGPqoaq{BIySRo#8TqoavegDX)~$a=PW+-t*mWJs5B0V{PFfx z7~4d3lGjXRR-??vJ~r)3?x2*ll%q4>6Cl*9e0dY8$<*TIFR2DwE%bHwa(J4KPGeVz zeC<#`8la{E8L}H1sepXvqz?HzLWDp4r0(w+qBsgci)ZLa`8%->-?550bWUc~uI1C| zSQ)LxDwCknDMy2E3niBLRuorR#4Kl8LQXSRgj*MNSzAGHBqOr`>Gw9W{QP4$GV)ak z7hrMZ=R-gEf~}mr1O!0Ci>7v(EIA6%aA1rrE?Q|^n4)4N!Qde(<--o>LM9P!Mq&Y; zu&d~zBf5~mgcpjS?2MobJ=Ga@bw8MwAvr&|nRR4DRqZOxtEqK)McRhKx>zeTMCXIo zOti#@cHaS|S}l3*#)r+r^PzWDZHdhdvm9)-Hab7hD=m-yl|Sy%MdRWFH<$cX{A(2f z&d74o$N;eTo54Py*saI2LR(6mM~GZAY&a|adq8eJW~Axebr#N_;TA32Dx_8%lKg*J zmM{`UyNu?6N>;@zIsSk^&SXUgEzv=%P6u^RIkHW3(Dw2HQr2Yif?SbF1%4STM*P5|-|4}d-Q4w2N%_3wH zAV}sSsOMqyhnKUAK8!QKtf>$s`;o&Ep_BHJ0g2#%oWfoEd{V8Xm?Is%gH$BIOp64J zh0API!;dw1u@ydyKLsfc{Hf+Ve~J*l>#_2u)E_~m${ssf3A)WPz|k-f45BGT4kM9_ zzARye{EC{mvb=Y@KkuzLwq3S-D~`DlWV8f%s5I}WdrM3=30XNcJ?&6@RJts*+4=9# z(soipsikF2Tdta9$|zS#yGHb^40wn2Wr(9O4n}uN_r*U}Iqx;=57*7Y?~4+_8$wPS zue0nS&~F(Qjk*v#1o~x5`oqL6U8rieW+dSwI3sCM@P5DD&;~%4I5be{K4;KTk43cI z5C)P*TQV&fUvKrTWI5lkoEFG(KMXxZFqWTANtLIS&dJ{r_ZI`!Pn4O5{jIPoWU3!tm9N}IV>j>R<(+8G z=C1s}!C?Cic1pP2dnmG=)VYT!tWD16vgu5P1>MUcQd+hb1K_s6s9S7{mk?P4s!08yT(n zk{j|D?!8g@oK~EnbFhG2$~lnRHMcXvaK={5Pkuo^*_kC*F>`HRKAwqwmh2(|z!@sr zcW{?54}b?Y5>4pfMZk4rZ`ZZSd}14hdD8tiHH zGp2cv4kf;I@+aYLhiAA^ zc#QIUg@;)BNd)1=p=S^%Uwsrd%ZYml&_9Z%z&{C@|ZY? z5yr+W{mL|&%OB3d*HJUXM?-gF3nG1AUmLBMJ(y2t9Cma%j)Z}=92dvW7Af<3@Z{po0iMl9 zu;WzKD&asC)>$l=KOGqat$qEjR8ZF02X}RM7p)UuIC69i>DLIR^maMc$|Wn*9sPM)C=w@9Crv7z7~?y@4SJ8dCMlf6k!!? z(7iX^ArHsN47vup%~~KzjydK5gUtk7m~$F8X5Ib>W1~dgpx+y3mb8K}YBb`6Shefi zi8ApeCVQh4XiSndm4(vXKp@c12zB1^UdvtsQRnK_Wkx?BjYFq|fxIbuPGm%G72=*_ z-_Y_Z%dIin`Dr-z#X+3zYZjs%)&X<3C=4EAV46<=-y^!-61w-I0ZsaMFNCPeiLzBq z39V|}ZZvk}*6=_?I5O-teyYb#)+e4|Vj~!wOnHz-FnqG-hOx*H(fe!DzgN$TOYMDa zv#6a*=xV0lr~})TL14g|vCkmfFc8Jk#LN_2ENhEpHbfAjxo@xkWrwRYWxG<2-j>GU zHRV{@(&R4GZRsZOv8rro9Z-ioz}XPPzJg9`!Yg6Bp%3_sauzB$1wQW^mdiiqbP12< zLC+E^V%d2)ZpDxi^9`v6hLjCzo*5;tNb7!WZ$aVYh;~Y|fRhj8MPLaHjT~U`|GoL@ zk?6p12=rjM*B%!&d#(h7w_*)ha|QqVtj};b^}5l% zBfxg>qYl9demKgl5HiFLk{KL?<^vd_BpIoRGnau%Jk76XIK-bIYf`P9(>3ip*Te> zE#PMsm+j-{++b&M*_Gog8)Vu4k#sI%7RnYMuHu3IF#XI7 zaf%y-!{BPPYld9b)dDM89l2PblbmsmzYBVjHz_vAT}KLwwgZ=etIOf%;VR4ie8 zJO_pFjYb!OJ|lTPC<$b)Ub72j$@m)ML3~{ntijGe|9|%01>TaYuJ^3Rew=gmIj5^Touo;F)ZVn$4kXwxA+!l2 zT_s@D87I6XGUH4Xbuu0ONQB|$`so)*Co~X9%Z2L&7%%iwpD~iTgI}e zDJFWx!SY1SNaHv^|A^G>SnrNTZ1+4#ZBJAq5+`>#&6u6{L84$nh;J=S+%BU8*v{U- zgTGiU2Eb&zn_|t1e-JT&Co|Fsx^Nl{U06VVmg)DVav4IvT795*k%hB8-yn>mdr>q5 zd8j0kaG({c0(Kk;k^6o26lN5-(X9gazW&1eI&I}7~~$V1fn{QW5*$Wf%l&BKB*%3?@(4vAI%lw7iTp5qtMC*iv!piEJxI zvru?8T8u8ILOR>Yr0V?2j-0Ny98y=IJ-)^gH^^!fWg5H}g>&9*+9| zJ~_F12qM!M5Y}senI9niJIn(1WTZPXB<9YgaTKn6B1V6nPt-H)MS^C4 zIhZ8W8$}aXoMawjHorM-ya@BFQU-Wtj!gc-*kf)H{n+jI%-oyxdmTrA0Wm1 z@brw^w~o$98N$@Y<{WLuCL(sddv1zTCjm{YRp(@A&^VAB9$kFG_H#h+kzprg!bgvl zu}PMiGA4kxx6JAzpSnUW-=RZE@y}vutsP3M2iT_X(G2kD=CmT~2cx3jv74vtUbsXW zGN{6F$_Oa<$f#q{nK=gIoL44iWu*iUI>;7=ns{UTSHY6)>Hg=c)ZNYmlGX8bS#G8x zxU}?IGrVGAt@u*AfNDoIslSlhutxn2rT%QXIGqW@h<^cmsH`zfA~fnRZPcHwca{ju zW#XrB2#$aZh+zDpC(^4ic}a(d>4VyQh*b=T_E=FW*b9JfOJks(TaiO zYWq4!wu-h2^(qSAq5vKLg#exAVr@GO@tEWaxS~%q+cgz7ge&S!L*Po8G-)#fnT8oi zMoR%>p|=r^kh>f{Xt@;DKX!7j9jtaYKy=Z!39w==Sai8x=XDcLw* zns=a`hSe|!PX>VoXeQ92Kwdkec3aL)YS^#)h|co=kP^9T|D@-BROM$isjuqrR;sH~ zb^<;r3-9ov{;;j>VIUEI&`uOwS>Z$Z`Tn6XpA{YVSP&;Uwx(_&}ZIe;%%5Rt->^-q%3hiZt|irj;C@`u;_D5Mrg{=gq7>wEMh)iDR3UK<8(OHF<~HUb9(Mu7g!83D}_X@u|_?LFag++999 z@xW=0OP{4en^h|rtJ@}Ysl6i>ITk81F*tapMVU}S_(>10L=;QzeAy|Re4lcnQI#s& zp?Plgrqvcb@03SC!+{(uFH!y>S_#Xq9H zxJjmqGKj80B&h77g_5;ERB1(&u%j4+`rh z_Q6LmCl#q?K1i3He$h9B`qo4noUgMl$z#apQLee2*2vmReX@(^NZNZhJv!gX zEv8RN)htBgR9J~Yt4DKy-0BQndv`4d5Sl1HOC_)4oDc+qk`SOn2T~2)36Q#eT)iRZW~o1gV78E^CsR@$o?Buk~zs+t)vdX z<@b#ov+`VF=rn%N?c&4gu(W=*r^HD+f3j44ZU0_0@q^4ftw`W~cJ;hNM_frkxVCeG zeR`Sdv5!cMESFg5`h!SGul90#XOtQ@H5t_HnJPo1fETn%Y!3wct<|!J^=&fx5)&hs zgXzJMat~p_b0?P1*_edl0wvyKH=x&D%&irUv}j1A^S@_AN|q1 z#bnW^xutiiyf0bsyRv_5GBgE~A7kC?&@#@JJmZWduXg$>RHx)F4F<|k8D}JAYMm^& z@boXT*F58lzJ4*;H(uh(xdB=aS>M5R*>Nyl;ks+zc$Et$F>m5h>>C$317b}~Mxl|S zjCY%wyVd4yrMV+TE_^X;?#NVaKqdPOmU0+jJHxD>Vx+u3^9ebJ?g{54SnIBQ@ekEY zG}bxEBBOy#9COo{n`n-+jo4=r;kCv{syoOG6BOsdb(jXSN@m983Lo@8+_9h`*Z+0M zi*_xDGKJmc(yS^fH6=OlhpshJi{)p#vL3QLmH6JrDV8s&PlY(KAIP* zzd%721P5YDaswM(CBKjNsExC{*fxnSR03I!5*q-xGrOQTBIpE#q(F-nwoS~=G1 z$T6ldB*y~Gg39io|t=CfbE2 z)hIL>^+Zy+A4l_B>9`SdX8<)&)$M70St~dLgGRtb+Z;^r{75=ZzE9b^x+PL?AmTK& z*tf*wP7$0EY}4WeMjy5-9pkpES`k0Uf|T?oLv*)19PzeXE6XdbNGX+z!``kX>v~_< zNc7*=NPuDZ38=$J8A;pb-&6P|QqpTld}t(+8HrSBnMDF2xI#fK)z*dB$+_+T3ijfK zf?OdV@y$JxLY8_64o_RZDxA7%X)|oR}c4GQhm2N2W`RCw)Tn7 z{i7;vs&)s|mqvMG#owx_@Krg~L?V6`Hu5Lzx$yx~3o|E3E#}0-ZG(sEbuNuqQBS0( zd28sLEbvsWqUqKPCX4iWGW48m^jVJ+#L7jEPH&PL^LpC>bO<9^4xR{$<?)yNBQ5T}4xrNrEeTqm zw6dsNLBmv0X`pgGC)w2s?k=i7EZJjsk~8+z+aRj6zUg_fv9L}Jd$BYO9%H4lIzr0* z+1WB**%DR}n8rs#ZALn;&q)gERt5@2rEq%xiBWZhP=Y}s9Bex?DQHgd2kRvvNZoBM&pE}F73NwUuwHk8*8ZvC2rC$8y^0_1}J4W4T={Dw{CIT9tDApv%iA*v*EX{{*J%$U_v0VR1&6L^C-+5evDP!A7NLdlxl?>=H6a8EtMO zktIC|buk3^&is-bx~9byJ28PPEh8j};v8kMp5@rti;0;X2gy7tsfH~E)pwAu%?7>q z;#^4@#h`dz^2Nnd$W#&sY|O^AXuIL#S2U5~1@og9Ybv&bcq^-y8F*OxCTEYuNq!W1 zvfXW`>8VRxk!ZZDzpSnb_l=4Jw+}}q19`7vcY6`BA>}1jl2h7*Dl@+D6*={?!Ic&B zH^o1?h=kfG@~`^g8H{aBCb66x8~K8zc~0{563GV6C(Gv~7wF#6X%^UIeygE zP6;sc6fcMkb{=8yACIo}}9!W~w<#8Vr0R)=g5qJga_L>xf?J zh%hX4%u-inrlC^hR*BMt7Q;la)OKd1_JDBg{jp{rq-MA;i%$!42u(Mk?D??xl;Jko zff7_R)&(@!U~&K^9gi@lS+X!NmMrW(ABz+-EK-LI><)fh1jT<_euF}$#Lcv*lG!pK zn`7!PTHh0xOIb}+QGd4CETSG2A5%?Y*>t4Z(^H!6#ZoZkj=4Qh)Ak zv5`6B^W663%FLHx2r56{(WLjXq<6wL^*!WWPqI5AtC8U|GzEBZC`}D8DpCVfWFEk< zI=}`1tU?1P9Y0cqddO+XtIk*hN-x{v1S~+LbRqx^YX&Nq{t~34gS>HX8uVAjuC3na zb3WK-G;FlHg3M>e(??BZugt0=t+W^fXHH?`X^DN+8VkTE6n%qSyT6>&Z%X1tVPt)| zyy=T=2{tQ;T6W7DAwM%141^i`Czg;wF-TCdde`*BTJ5j_-5{awQjK}%J{1Uv;uCdmfdH=a0s$^QiD4SyAU(e+90$5U;0N~@uh_-DVf_^i);p?UIrz3AOd2D6R&K?*`?o!FEn5e4v46d;(FI4snC6I(#_o!^iDUK?;i)$>)3zgkvTUa;* zD9W?49airn)7_nVc~NE$Pj_oMOQ`n(l`X97Ba(AFWqF}9{>}}l-ehRABv+J=;^cpp z*Mm=Hr}vFUKhz#q*;&GDXr`JH1}Z)v`C?uj=HvBmh>{sI#QeIb23|$#F+=;d zv$=`H<2+Dtwnxvms4UpsU4P)(*gv1Xkj1Zn9#(oOP8ZFS%~OsSOo5BNshZ0f^2Ga0 zZ4SnEI0d{SCl?F+1Wqo;QIu9EO3j*y&g7EPleQfo-pnij4#%?Q8HK4K1{yMr<;?O0 zmSnr?n5G;>qnQ+T{3AxN3`jWJ+a?PFYCybs9FC2Uw+c!d&r@!QJWsfXDHr!V^`&q8 zrCQ}`uxtm<(~<;i{qu^Mc}5e2It{TC)TXTPg^MQy&k0ii4k$vOv4IL<2&gBaYE73XN*fnAFKSk#C)E~8@+?6SyW`Pew+>}^fPt63Vv-cN`m z8L7K-tu8C}A~I3nC=~*={b(A3NI+ExOsqnt6Sa(BRBDf(2%Mr84Q0uAZAnTUS3HBY zn-mez2`XA>kg%_KxvWh>aO0C(jgHj&O7wuyaU#7JHt?ABChrSbL((W zeO0p$1CFlZucyPTILC^==G?3ihg&5fX@Q;(s-IA1adWO_ise11t{`u-x5VBd%L*9u z>0d>HmBI(P_RvCH_7EhE1&M*S93~}9CqnO755-p{u@zuV#r_25Jku*KZB$YGE{lky z{+*r_f2q&BJbDpy+EPdzV%XH9+3ENk8@PF{%+mNAf1!Df6WToYe1%=2EVzC2cn*=n zpRUeCe^b7=vu%B~^OZ~tl+Y{86)}4w1m4w%A;iN1mSIXki)1VFp@BhpY5_JHOdghR zBY%xr-3&K8S0{V&-}<9G`zDV1|Gszi>G|-KQ%=cFJ|#V+&rS2U>6FdQ{rsEW{Kw(x z!YPYJ6C5|Z`rs`mPyLExu5sC9XZk<0St5pGX^xfoS_E}OKg zK%Y}q*-W6%L_wwHD3IAA7dvOIuXEN${NkLoWiFhv#ySsTDIC7m#|x}hx%5ZXCN4ep z%i)rbsx4fg(v!GArCXs=lScjH2+R7qCTp7AG|o&=t(xEMGmFFk88LVKF$9k2xA+$k z0)wtx6U|VjPT`{aP{dyii?6Aq#tyxy`Sp`cmaEtrV^XHX4!1`%X|0;pn;5B&yyURW zG9OB!_3+Z16!9S|Bf^9whOBgtQ;?Ge!s!KW-bcR@>j|!s2j}G^!35eIGr?Y%onZSm zW+*O1n%f4pl^Q6ckCvj@w@S=5U>CJ@0^rzuMA{{@QR>vGorc^fSk$Dk1;Z_I0YppC zFUc|>v(pVL3Un=lZNRe>Gy!SeQUU~~8O&ocaE=M}CDkH(mB31aWeBgb>z!!;V%}I1 z(g4IAPzYtO)c~fb7Nh}EX#g^1r2*0yj*^yJaNEKXD?6U+7xS<-TjpFaJ3G6k*jSl? zu&X;+)TagyIrgia&`TU02u@PSXL#|DPp@`j=Y>F<=q{`dG0Lq!^om&$(f5T#ID?EA z8^r%yTJ)=rCr1C(1$$RdO3BM7GvEI8e|ij4pVNAu!0dFtveW&zz8!5kYKah-vx~*C z$kLJJtt1jPtZly*swGH@d$NPhOf1WqZ`mjtFF~|MdeJ$_7EDi!t&=K?Z})727d1h# zho=QAtzlLeX0mX;vcHMc50vW1r{|`HzG>fTW*!2VJBu1e47n7knvZ+H24fT+6yrBG za$`+s0P}{(+VAE>qO6N9?)Uz}w z(}75YrED|pF7`n-*pxepCx+eb^UfwUcTF%R6xYptwJI|l9&y*!3lN|&h%`waCJI_j za6&!se`-Myyw$~CHiNxv7JD5QZN4*rk*$t)g%Bb4(N+YHj5DM(EE}BE>$9xiy3o^> zstGX{>1J}L$5^i;^BSiP>)C95rSsytNPyxiEO;0Pn59g>2BlI`CIQ-N@Xr$^Mra>d zNX`gfxJqEh_?sWw;tw6_rJ2lF-!YcR(j89qwK&QY6Ek?O4X|Sc)AAUxrN-cm;+2wK zv=HWt8;2f!;SBEPBIw>-GNW`F~f(p zWU`Sbli^N|7eOqFkWfs>(2~1@hqNrDEtext)WYwcN+weRos!AmZ%Zaq5*Z17mPJM~ znX<@ATu?3~lWlIAm@J1zHka|PXzn&OcdN}E(czdl*4z=qZa^iOj6+RhG8ws8yC=ir z?^9+tEh>25w0Es}|dyS+use%8gt&DakN(|DNz zT2XG^tp>_8$!>iAtOh#m9>{*FYe#2U#M;z6-lBBmEmAnkC0m=~?3crHQ?0zsW#@GU z_X>9luU*QOmDZ1X)^<&s z>MuTTnt&e7Ym#I2jqQH70M#gK-FLr(3i4+6yVa66s!dgn2oi>2Q6A!WRIZAGR^tYE z#BKK1`+Nhu=7Y&<_{5&@V`1iZG4q>kevRKpbx*m1VW+#k=i}0*>Jbqt#;}WIUxkQv zm8&@Y0(p{LsFPAmr4>6^etVxC7RVi(T&5@NW>W?T%@G&;0n?alH z$;}LL1DASUiJ=QO)gPKOWhc)B)!0}Gqc8y~?J7}PuAG^S)X!)vv}Ji>o=8x?tK}*k zQ`Uky*0mN_Je%22HC>98@iKE(+x{Xa$#Aeogh$I&&?A98)LqPQSOqNL(^-5F*eWrr znG^?xQMtRMI7r7iQymx|~0Xtq%tED)NV4gQKgPvb6J;BzPfcU3lxD{{O?<*W~(EBNKIP}m^`5w-=yE*h*;`AT9=#Tip3ynj`?K`oHXM+?^Vi`qBQ%gOK4%Q4Ssja$>E##}uYQ123; zO#5&x{17w*(pIAnIuV8lUvEA5sJhIMZiT_eZ48QxUdux94(570OcQ2%Lfhf=J7~1b zwHFlaq9IG!t~NcS;0zN&e$QZ8wyolBCgCMiJ@JkJzT`z9c3q0s%) z0)Ut0WJ%m*hng|tKP4YJZ)P&q^d_K;xzLVaFidhtC2^2yClsZP+l__CBZ4GprpQF5S83aNpcvmdelF{y0oA}Imilc)ebAL4H~5W~1dn@bZF8gM2!-%#tV!6P8tm-Uodaq)t(ro#DX4&*(;YiIycpPF zjg5j*$~Bsn)x%a+4?D7&jdrGF^+K3oj>kNIR^cYwcVYJlxXo z!NgW1)uKp9-wLxv|2b~dhD@;%#f*mAsTMVGL=V^MJ1c^_tCC0{SAwFIs0Sf=)5rfp zhzsHA22Xg%hJjz#!6-%v_!2C)m&D3~2K7oQ%d4H$BlSHmJrJsAJE}((_nOyZC3k`% z*+$wc!Kh(iu{?3SG!H_v_!E`3lORig?Su%tI@#De=&rSAbFvm~1fXA$0CYohBcDav zP~om3nM#Mtq@WwSPxhmbK;IBO33tRDqwSG-&uxC*I+RKGCsFq&b9KLR$3o`(EVd3t zY7rW|vfirGR~{ zs@9&6ww=Fkc7T+dU(`0crl5Vm{@1=b{Bj_ePG_)X5ZzsG1GNCOG`HPp&re~az$$v&cqy)F;gN)BpMA0 zQWKl^;#z(0JJgvHZ>!HMHqr^?jv$5%tyq*`*m#!{;p-1-#TTx(jM00>X|0T5!TP5`;-p(szT31N_7kE;LC=#*%XR2zz;=G;Jy_ zqhV~rqNCH1lWqp+8l6*+O?Lg1AvAg$qQy>|!ppQ&kj%zGqOBFjQd1~vpM=35x@btJttOLOUAmCh4j)2+T?=*jBJ+r2LO$6`AS$|EZi4WrmzI z;C`aoqwlv5YmiN5p(m1!Q}v|ODPN`}r8%W5NsUr$nT$GFS?8v(^5}{7xk`(z2_$fW zETuE#JQx83Qf{iS%&5N(EwJaCSEIZ9_pKLh~|A% z3GK^nC5kAZWmI4q^Z*25PL)PlqtWQY{XCfed(`4K>xJjDB_W?pbXYIcccuY3bn(pO zDb$u}%7sZOxGKLyRx@w#1r+cBR|o=~ZFPaFmHfHgmSo^5_I;jXn;=^ZOXg3a>#eE9eI5#GLma zZFIdmT<;9m+r#yyaJ?a1uMO8D;d&3Yn|&XycZTcj;d)cJ-Vmx=xtz^k(J{Ic6G zJN?22xEkI!8vg1VdkPJfHkg-kIh2MtDsU;{$i*mSn|}=JQ|NB3ZGcR8cSpwUGt1uS z)v1^<)!^+eep7Nf+hach3&BLhZ9ZKIYS@sMglN`pvNbWALQlnVjc{LN| zJNsDOT346?2P-pgN{Q_^ERK|hfa_bOr;d<_Acm*Vg?@pc?RywTk45;L0%Htg#m>{$ zVifzuC_|5r&hOL};c=I)Jvw2C^GL2_C}Cv1zAmS8e-Et57_O*a5JfIEFgo?MAHTw% z@EhKCX~du*_T^w}B$ufef?$a25|izEndLG%1=E`~<4H+K)_{Zb?F#8zkFN{Q59xX& z3v|<~uW4?p;kn6iy}dERf~oIJiZ2LQBG=4eoSj{x3Jt;sun$J4{fk1-HOz+Gt($v# z`VigVAKECru<0hfzfzPY5zWrfSRG8;s0)fzH9L6aqtEo(U{LEln#^TPXXJ|n0`i5S zVCcmg)>-6>U6C(#MZVY-`C?b(i(Qc~c16C}75QSC0gzL58dL&#g z_172q1^Uy+M!aWd0Y!lkOj4YizQ*w9@@1EBEHRPPoJgcwX(5n%p)NraS&a)kNTQ(7 zJCiRLVJ+GoEH*8!UA&dV&i4p^Ajz;=ep|ziWOGdik%uN@Hz$U%TVW;NJD zOUou><*e*6OguHhDWfZVF_AFT*9{I%&o9M5G5lRhp{`*A=>kAkSn^>jEOWjCTC*}$ zx5Yfb8%f8r!V;kk<|Qw$S*~FwOvWe!PaAEfR%El3a^S8#VM9FHml0cWDkH8y26z-? z?-Er|@PaD0G2N1o z9R!d)XRlh@cV?0>waRBDgvn`DWlrE;vm>Jec8aKuij{f3q|gWE25EwJamdo6^BO!= z3DVXeiQ%->G>DL$YOvpFkX~!{gb^@VI(nV&m#=&W#{&b+k{fl)a?4awelb~Vteqg+ zp~p3@oq!%XW!c-MZ^s=Yer;BD2vMMZi1caEwAVAxw579>vKVm0f_XnQOSVLaH?ykN zus)c?SyX$%kJ;aGRyDqlv#JBls!+joJU+_BAs3AxctTWUm440>B2oy^K zftP0xOtlSq`COTRj~V@x@o0T_zHf}WA7}Xx2kx z+)+jjbo-jmfhnsWW!Sk@p-R0p&!ak&7B`q2N#Ta0htPleOX|(VZ|U&_zXn+h?8Q+N z5~%@aEOci&*094@;7*2*fTXM&`6l6L`7o69DBIEi+^B?E5DVyTE1}hU@s6E1!?Rt@ z-R^Kl?fckU0$v(@&PiDtXJvczA5HIs&8$<}HtPH`gOPgn0?tLCigR(sMTQ)ueg%Q| z%r+zHiJ6ela4!Vv%+%x4l0*U}ZuX6PsR;bS8)5>^>)BiOF0pBO%e5zQEQB-{9w9;i z%cY!IqzW@Mk}5nPJoS_+f0n}N4AQeEy-PF|LVg>FU~iyOI}R$aK3NFf7i}(DE{1K< zM9aHNI}|YCar*2qW(`ywm@IF-BIHm%U|(^A#*BGU%q22tNRCrY>#bNc_R&g1{AkQIHVYd_vnkjc$g22L~rzr1X4)rJ001e`zd^f zt>E|pBjiMCfvOKR40(D!ZCLZjFd>9s{B+E2B4ef_Mz8NNb!ACQ1zF zW4g41)VEn$r&8<|s&J|!q8V)Q4~NAQyyL{{NuNj_)v;pbSlyR+oT?4%k_Ks!K$7b# zRDg#LKYLRn;*#R)5_MoXKxo6gZ9m%nDBIJp7#PWFm_X5KVN_3hLdbS7lF3c2fhSsV-W3hBhzaOy9~hXWQokol>eu@|n&Czl*& z-%cJgXrg`gNCsES`-wL$}YU6O^`YhML?$~%4$;-sFxJUjPv*O~Z<(ULLR6=tCZ74li_42DwvhET- z(Jlaf7f+yF#rbF+HYd=oDn1m8HYd<7!x$5kquEGwQW_<)f39vz)qwr_j%JMw;uP~| z)n*flcbTTms|UlJJZ04#OvQhoGJp2*$tDIQntR*IP2?huk%eQWSmm0SNO<-&MEvmb zaiQn@e+A@#=xubZe&&x7M2`_a35L5hn5!U} zZ`&$cAE5lUa*_2g`jO#wHVK3X<1&t3Dz?(sV2WAEZzk5eH z_#?}-6f>z`@GEPp)i-FX0(Oo2^P_BiFfd7jPRspt7>*rCPF9VGgPi?&MASAc?N4}qp42DwmEC7gVcStRkVjhNPsNoqj!=pj)H?#@N z4`lEGgayrn>i`C4g}qf}rbytiFow+%G=vfih@20%a4{AAw;hw27`Qm8)7f&f|+^=CDTRlJRDf z6KrqpMR=#wy@DMn$6NG_|7)YsO_)-O)tj|W4>`#JUrxAj`%S-D0RWXJyR%I}C5n9Ks z3)WMU0w&gaMpsI_b`8A*5|mNx0*%D+f~w>mbdB%f(Mh4=AlG3kTt$WR2~+_u1=`5+ zp2n=JFE`P9@q6+lzUs+e204-r2DY#$Y^r_HhqbTY?f`hocn1c1)jJ^^j-mjEaVXf| zJK1cOh>aTLtUf>}8eA4G*pq_(Nl-U9&F5_tRu(XqAy`0^oh%0&7qV!}U_L(v$MI&-c zs0IUdTXmb~UrF0323j&ZeT&I$zowsFwAr+#BS(O z)R>%$`3VKyL+)&AefyBBufjO%umi>!1x#znBU|BZ%BdqDh-?Ln+a@8tG|akbYs@k; zY*2#g=D-FScd{{T`kk&$8#cDHi)cR@Hh47T7`hSy9`hQb^#Dc0{*4}y;$lEN4S(cQ zZGa(r=hl*jVDyMY<%7fFuj2%X>REE9J5p^gK6~Bv>znGd|}XSqbm-+kw!kn;sm+; z9RdzQ%n4Xl0YM^5Xgwh?ZFi?ZSx+>`4#(#37)6c^LV_T3K#f_K-^8^mz^9-w zCbHEIW%F+np!D5v=CE3%X0NOkDRO3AEx-d}8#oyRqIu7mq#HmhgWZIp?jN)Ymu^i% z2)gf51T>zH{x8%6=8fn{5{B8PtiJ0mLS6bxfz3wN`~RP=^ae_@OgioDKjrpsZC0Gqg0Pm}8R^%S_I=>Oz3(J66c24r9=se_zz zq>w5SAYx?zgl(8AYg+VYBVb5&7~c0PTrra9ICMQ zW-v>K4Z$QPW9N;l+>!yaN|h&~j2cDN`lh(D`c~yBp`WCbwRSSpin#GRXJtMw&rIqn zv-NubMgGi-%}X;2M?bIDPYn{GblS5P>t~wZ%ghN=@(}M}|32&`T2iM%OH>wG8htru ztTY?q{}~QNG5t9dGl)YZim|2Pw6TrAPeU=D%5T0eNu$#=<6juA5r1pR1`n2=xP#w- zBVwNgN6xDV*ub$LCj#eN2c`;S!#ZsrQ(GBjgs>pQcHDlOH0%%#$&!X>1&tt-4haz| zvp11YAQRC9`OW*ssk*PGrpBKo#oh7OPaprzz_Vy93_S9~M!f?Zfd(J-Djj_pG0`yz z`tH|wyRbGv8w|(=JlK zUBzGs`>_60GuFlQi*>*F^_Ry%+vpcxYME|>ZG8BKZ={X49FC=xgBKCl7cHT9xR)l1?8dpAyKof zwERb)SAbj#V!y=1!WplTyxkH%8*BlTSZ)L@pnVm@k`t61ZA{Mv# zf_Vhd;-#eotOXW188J+HICjRUM6Kp9GPqIErWBj2IMtm1?VCi4s%@IVVOj-GE@wIOG4y+y$gPz(EM27w~0I_z@Fv(ZdGB0p732Kt=7wv}!H>J13X9aIZ%oIf>4 z-X)81Ht;J?kh;cD0C-p_CN!6eSSfxraT)=Xjs)16(GX)$}sOsVA!u*}Ke z*A-#d>xMvUB&z_V(Udc7pr}AOHjgi}I8JuR9h_%4|Hng*RW|nBzY~N!b!uWR%xjpq z(c~b0JdA9cAt#(&)_-ckY)_*QD(z;a| z2(2=GM3N}gekTR8`d**0mDW&dZ`~?%pdso>kkYEk%sEF$dW6Jg5(x`?C8vjscrCbX zeR-EmYLR+8)3}*cz+^0r$y|0NL#GwDw1Uw?S1Mz>axMF}VThYk-*$H2iRPU=!s00q z!vD>7ykn)+fw@I=ZPx`}SnRd9MPs9USs#I9LiF3WVbK!x5u2zgP@^Ho5ylEe8!08ZpR780)gcf*MKflR+EB=Lg6*YlB z=qjhGD3uHZF{g5g?kcJwynQ;0WQ$w8CM!X8bWNaZj0Zv{s4Jm02sbU>tD>7mG9s+Z z`z?>d)89h|3K?LQX- zxI3W}GR>_g+C$yU7;wncl+bWylHjG-Oa>^9TVU$Tn1*Ip^fWZvxLh-<03eK)$@J=)`3Q5eS}6uv?cI*APoaZ^ZMz%WUz*F2J4?* zJZG@xli)qQ9Fen+ZQAzue>Mv;&dEZYzenm7qn}ZKw-l+PUYT-}) zCL(d2Dxz_I~Dmr#)C>J=%M+k6RZ)Jqon<)8C1-2VD%F zWMFIjza{cZ&tnvv_D-ImJ?1l6EH?Pww5~YP{M@vr9Hbm+6y8P^b&5PoMIhY&1>K!L z-tZRdjwJk!J`-_0^j@2u*D=@B~|HD!cXK#7fXyKqBH-$ zvcG!jGB!?sVKijTZ2U_GBb{L&*i2lhBK?N$jp=@p-()ev#Qf%;C-9qv1XJY+5l;Qq z!9?Bq!ZInVzj(cXrxGk>6(Un!QgXry46!UT;^!Nq`r21n7Ynj3N?8{RRX_UpN2p?~^$iG9Ex#pg-@k&bGzUD>5*prH%E2@(?X)Gk@tYI0RPbqHGSaRagqIYgk{GK#{rIND|sr77u#A7%_d8up&U{cHOEO+2c zZE>yd!CYV&HQ?1yHe+=7UP@nv-Lu-}`D% zevTdWAh)njgjGrA_Lp4obSAucw9oSD+el{#T>7ea6e6>>mux9}EkAbg_++G=3+#CS zQ_T*VX3Y!p{Z7?S7?JD;Wt8AB4&$0`GJWV6y-c6V3agOSPnMqsH!GJy5P&n#^kB&& z04$2aE?N4f!Qf!J4TAw`+j1xtCYE-}02lSpQ$7WhNSbBuI#J`8jTJ!-%`I?#VT!A$ zu4GMALNdO-v+>hfSLdI|I>EsaHsgOLf|2RfK78?XCgGk_YM=#^R><9*VY4N1eZm{c?zLY~ni9{Qcxs8& z>}@~xd1ZFF(gxW&?`%u1R#5|qS^=-Fo?^8M@+0z*fih*YlKQbfww;(5>5HGq`x;}# zU_3jo)TVXiI1`ZZKMB^ItcsGf%QgDHw0Ct!l4yc1nf~i1SwBtFe!r)eHfLwVs3bWh zN9*83X?b<(bF7d1>)sJ<%xIDnHn5a2k_kU5 zk~gJQHmy5STmh<`7_Z2LoKEVZp-pF~2{@rJ+~?JyL+laj*@@xtXmr!lhC>UoWe0l) zauyv1CCCo+=?)`(;kv}d$z&`p$W}zqi}m>5BxjmLfnCvsEpdQ_clpLOdPtDN5f$_r zNI(1HXw&K*yTTa?~@&iuW{=f%)*MrOPPEzYs_M zk)c|zbor4orX`mbC^%s&l)csPlF2d@!U%I3yK0f9z{b!TOUyoW|K14)u3%MQ=&IgB z5B#B(N5tZn`d1hEQ z+~P^YqPg|DzDto>kq}U2mu%-|wUs90mD(5Et*wvs%rQu%qdUr#5TpX%78)Gt0KvHf zN{d=MxdNC=#UF@g11Bth?}lIzu#srKc_?UW9Vi|ymJ-1o{Nc%>5W+BPg(4!hT-VaOf~V(r3O<=>Rty^K#t}yOf5}g>S4SI z8|y8>e7-3joflG^Q}Rn>*8`J|gt|AEL$j##U}|K)BWS01r?68l`ZcU4lX^ht+u7_7 zRpVgO)R^yT%M%2dR8VA%hn|QvCYuYIlc~Y>##%NCKLT zAdBMNB9dm4gY_v3VAQ)!;A~}@gHJyZm|C_Q|69vqEMV`ln1O*Ss5vUk=BYn2w}D^e zP@N=KPeXq5c(YQK)Dt`$Jz=f$&@EgBtXu)VMx!eVux*yF5yPgb6&LPOh9S&y*#-~x zVzR06b~edy-lT8Ac%hZbtL!S_6LlB|#bov7a`hI)E?5D@MBQfK43N?lizP3q`7Knz zb6>w~FyCy?Iv}Ydb3rm*{02Z;y188HfW)zB!;1ZcQ6gG$d>ylh%ZwUG1WChc;4XF~ zJ5D$_fuQ^LjVHjeJ$AATfBwgKcE|J88c&@|5yo>kJ)Yn59Xg)y=K+l;lI1_fvpb%z z(ReayaXc5M$MZjJWIQ)4YfV5k_-_SNl&}9GGfif`R$~I@3zcGmuq8b2< z0Vy69i=d?1Abtoxx-wMUa>@6DlH+e1m*}Qj+)mmghUo$lB}{@r%$3Uv(dW5+g4cMQMfzSZ}}#KXS{DH;v3qfUl33W*cEQ1nms zDgK3p+DJG?)gQ4lH@RhRmMeLsXd8>F8uM;NXrQwZ4aGDX#^2d!pkLnm{q);V;>PEa zophnM<mm@bpC-7&0H*<8cg zTKNVH>ls^r%R08cTn*@Z%GRH8KmM(3{mmU)e@nT!xbh15cicTL@xMcI0bUb-CC}Jy z?f_&G321SefFAs9Bp`F|G)8h>L8$pbut=CvSkjcjgJ6x7{jLC^mxHDNArYHXP{;|A ziE|3~qi;v-^W4Gidy1G6+eFb^_OBrXAsQ}G}|ChNykV(=ug1mO;9-`%)I%DM{$bAx^!H-=GBJ}U8u>LdI2)3_gCzEn4Qq*KNoz$=^HOoKZ z_9VR(sl=S4Z-63{xhkG?0v1h(fKT$N*f=#Mk9-~2PU^tMSCll^2+jJf1fU6H%o2!~ z$%-ZZK@al#{)Sp+tD(*|*D7g`U!e~$w8+CdYXXQ#vAxBMG@Z)DUMj{;h7>Z?$6kKwipJGgr9Wj=gcY7UPqwjV+H$!XGKf2@c3fKLfNf?@lT=bIZpkXpNZ*wYK^DtTislvJ83Y z_a&>o(@mY>tPbmWhEBF*m@2DSp`*^T!}*i9x0^cScrTc>5Ubh7K#%D`}woYQ7Vg{X`5FwP$2-eAu zBk!`QlLk~&=_&TdlB8G^{|NkxE|jTwl2R9B5Rq?C5?U!_c!9C~x0o6JP2vahjr!Ne z50l-&UR;vBXt|Soq1;K$Wf*=uYPl9afD2&=Tqwd*l%Rv1aR5b(0rWV4>QC@0;s6=~ z${7FyQ5mx|0Imo?3qjzV5JW|86O7R`pk*J;89)b+G!6k+Mhq@=0Bj}&1BGcY!lYmX zkWHJ{Vz2>_2+0NjWWRbqp2Z-Vhp51-$D7&8fuv>2}vX6FE{nzH^wwkaDIP z*%qK{GNusTXj6QgPEMSy<6}w|mDPZ$+AYVS0cAa*qvZ5xfR7OY@S;!kYj1E#Y0sbS zh-gdxk+2}wIKmfGlBD2)ZEX8+E|OL9$e-I={U~XrHntPyi^vgo=4%t>Nb!=K2bDv`n_Lbp#m)TRFX3d#e~)cy{6BWXqtJK2FP%Yx3MS;ew1$kxZfvM2Yg#CUDSV z)HzVC6hR-6r5#L+uX_AwQfI_q1b*8G<%)7UB@)v%TR5zU1aZbtCrwXi71lGv`tW&&p!bMX6dSqHSbu*`rmvIr&IXKu)%Wu$>X zm?JSG!NyE^!UvzV7a4;=TqUe$U7ka|(Z+yyXm^)cHPrFEa{2gV#a+VX;)ps7V8(tO z_i{z(5VI~@_C2R|;VN=U*mfEX6pNZ=+mEe4w=DmP5H~p2HX;Zvz%pBBHSPp*s-E+I z?UXNH9D8kb-{cg<3-(P;4l?5uG49EYK}^Bbx;Q*Jg%WzRQgWv$=DN)!^u-s_D zU5Bk{uaVYuvPJ~J!u1+xaW%TO;4&%7Q*DUp)>e36st4KxUUh^D3f0=FP$WV%vH>QW z%B@Z*i^vFh_&>VhT6%PRf~ukR1bWH8x}e;kk!WL^gk7+_CDF73C&7z{bv) zKv#(eIr2bKehF!;JM|`Rb+puMb+puOb+jaD9!uWc-Zonu$&kjl-b9nE*g+M-XFFtS zte?9b3|5_Ml+<5%(P6htm;q{52XidPi|0PRe%@mj;vrKL)|&ba|Baqy`yO_eTcr*n zs})I#HhA<88&qkKB-M{@CgOG|A#GQpO=hAe;%nuKvp6}(2v89O3v~8eAbm|n|?n1D*(LzrG1E`X*?Y<7geL=;O1>1gLsta1~ zHQfcwOoewe)-_2s0fM#yK=C9djzo zcqnEmH?B`V6u4YbCD@jGZqc=*y4|Z31d_wA4A-(#YZ;9U* zAFwa^5EAHu0nRJrGY^LsS9{OfPWOh@|GSsYv0NPv&hkAjtu?y!JAZqoLYCM2anAL1 zhvTbI{a39;4V)eSTfemdh61-XodG14avVv8Q)xwZJ~}%?{?{MwmfzL%oj2DvXlc47 zjD&VSsqTxEAdl)GEd09y#JuJDJ@4!Q$9d>lV9;Y+v{uIG5fyEp+v0?jg(#XFE0K@eU)ix7T64R z1S>2sLQ`Crj%Ry}{xHq7dqh}za9w-a5j4fnZ!_{qDr!a!JELfHlKP_!3j9?dn0#k; z9_#as7$8;Y2Dajm&^H#Z-_eXd%ZnOxQ{UCimZ=PS;1v2w!^qL%_tj5!sHrmVGC25a zJwiO>^>wi~NQB=@)9hfx5J8NjzU|i|COP>cK$%o`eyOhC-;Tk5wfY$XWEg0k11BG2r(HyU$(R|bo9ZD{lCNL-`b9T7HJ?H^+%zaom}W;N$Z!r zH3CZ^xWMqM^<5yRA-#0;$Ek!wX6%7LdW#0O>MNTnDc&1K`9N{E?o=id&zgV+q64A0 zHl?8whMF4Q5sNlbtK$P&PlF@Ib zEj8*av}^}J9Rfy&vdlCbMjmU#g1rh1$1wD^jc*Vh?G?t%_P?M4+z zebozFI_Lt)(qC85Ha5qK+tdU>5TlUBgiA-yF|-MF0tzwXdzv_`)6g)+4o|3AS?N>I z2e5fs|F^>tthr!}eu1M9Dhx`EnB*Q+o46BUcE(+@^-lzOsm8rSD$qT1;A8$C+PpE` zd42XA6r%;R(F0X)ryYsy1I1tHgVRPo&S=%_@gZPn<`zATmT+49seU?9tAfk{RRssB z!uVmF@+$~SG#Qm_w>=R?Ka)w38E)H}&Dz$_jnpiYqp8_fU!=frxAcHuhT%tFN~iZc zZ%M9cxoxV8y2gYPGCu0vwh;&|nz){4$!LYH36a(uvW1fMN8S|2ecU%>y2QyeS*iax z{7KCezpa0@_R{uIZ|S)NllALg5G#rLxcHR%dm6$mlCE5eb&q~>R%u!ji=%brmbmFQ zK~X7!JpIfT*4i_0-g6KeL~G8?u!*W*?grNc><=*CaUon?=^?scXYCBdePGKl($o$VHp-5|(deO51*?Nb zKa9zz-w;PTjPhvoWU)WnUb zsLr70Oc4k%dD{d-dV&U8as(0oWlH9+0r_1sAOpLaew!YfbO99~f5{9gi~)h@#9cem z(T5xAo5K?O_N_rOg@ZR~e@4|O_ZyZ|L_XhNraDGezI~bRld*vH9CRA?jLzOjIhY6K zYelzno9hGr{d5UE&OdxzL=8+F{848LRhwV}J&{jzbW>J*Ny5UJ2{tM|Z-hS^lK{$I z{gF4vT8q!>BMn5azKRd*FCo4BgWRd&1N94!H-$~N09K6?Ajx*6?EgW1bIbu-+H-i4*rLog3-b-Yj3bFBpnWin9^+p#> zaY4F6cw~Ga?gkp@0-ML7;f0`y_!2Z(0}TZo8bhAyh|(V;(2ia*hl97pKWg;Kl)KLZ zue>tVNe&OTTrmn;9)N>;WKT)_3#R-0>~+&Rrs)mz>(uS76z^9jPs{d%egtB~rffTn zP=;96?R4IB8fQ9on#dYJcJ!~RFt4v0hZ~)$zF2P+v}1m$_=>PG0{Sj-O+yc(7<8r; z-1LczH0g=V4NpzZvr6=_??j)Jw)RQ z&1usSE(%W`y47ef<+hY9K05Qh%kXs=&e81yHVXBF=YkV?Xt6!IAVeM%x9CZLsBb|h z)}MYE#G}6?+M1}<)AL*JxiUO{bbhHsGE(c&`GpMB;f|$ZQ9BP3s6hP}FK#Nk+Nh3z z;-ws*qaEcM^Ew##bRD@9tP>&xxngrJD)RaxFOL-|>;)lNaP~Z!zpP{Y*KGhyl{HA0 zY3GrGp=~Nkf9=!~{{1{&^w*=f>q-40rvOMJRN09HLV2GN(P*zHdOt~v zL+Zb#4@)5`E&kPnl9~(?Zap89`=$f@|A3TF{Z>l`WrLKRGe}V^AQ0h+sGywtQs_Fg z7!R}=j9$j#WCGc8)R5VlN-=(cB^HXKHpJ`!=W)oq`g?5~OT7tR<0Lm+@&oc=kCXh^ zKHh^$$*HMtv9_vr&HK_nde^!i-C`f%9-WmjV{?m_^GTex4f#j30N~b#yn2Xj&XnudCEmJWpD!POuy-Te?&!hi) z${@)CD)rgtRD@438D;R#8tBmOC$3`H^rsq|NsuT|`7GKawDXDHv=e^o^uc37Z2i1n zjrA3mT~4hYRXA9@T}?n8N&UOO7E3fOLPw%B|4-GpyRypupuHsRNvP=ITUCcD1Pc=lo7CG==3=y^=K&v1)Y5C}1QtDQ{b7xp) zn($Jg0Y%^DH_+?O)P$BafFX`~nl*Q@Fiz<90O+&Et5i>1^3l$e6a&L^`9<(X5?%zfMA_7lo7@fm39SuGriw#DPGCf&eEtb=t zWd5twCw9}*2-es5bDk7$(0fgYbGm_gW}pGq+i(>4ju?j`Zg1DGnZQ#Tu%C8;fl=jW z+|>9Plcc`+J&}#6_m_owoZ8~Kelz6>-@q<1Q{l2aw2>5V6rA#N%B((O!H~kHB$$(ebWb)_+=8~vib=HTkh%`~(_?HoF#owqBokdq4`m6ZR zHeeJW8G~nF9WDM!NY<2#{=-OR1EOJ)K|K7Q_9%=R@KW!1Tw;IcKlU|c_Kxd{_u2UP zL|^99RbkpMi&IPK=qF$x15=#yxp}BCyX0$n<3nLRw4pH0tbbW_pub?hfdtE!VOCNZ zr=4HlZwT@6qccKyuv#hgUeyrh5YzgPUK^2CJXb?@8g#LP&+EIdj4wd#ORQaM`V}fw z<)bsKKh#ZtUob0)Ee#WCjG-EZHSf?j+eiNoHAaGRfOu!^*-+=L%%_wIX-fILEZDkD zl?V|Id!WuB%b`vL45jW;snIJj1^hUPbZkJ_JI6Opi$=V`f6njR?Zpsqh3b$@HU1HahMdpnzS%t7=DxubCJ)%LgRM0?6wyU!)$lM6U1nj<#THqC ztq8|Q`?XXsW%XUpi+~q@5daO;!fV=Z$pGq+m^8^E3X4M|9GNt z3f1~cipXd`FZesc*aeI=83;^`H0*z1FCa5m^~=2?RrP6ASYr;E zT$YT!H=(w4LuH9YUp)GJX5mDR0Ern%U7`*NeUMlE{MNhsh`>2bI{o%Wr^~c8$(sfF z-_dgIAg{3kJ3ON~Y4R3p#E$Ilytp25Zy88&*r*zNnE@h)lI}NZv@zf{j2$XcnW+Y} z*FaV+QuoWf?h~~JiTofjFOnJej#-Un*%=%S9Y4*3wSv)Z+jpbuZ;s>*Bbz_1Dc}w# z^a<+&Q%eh3RMC10$=P&!R6yi{1nP4Idw}Ii?k=SD?Qe)p#aTsB5H-KYNbfeImlR^K ziUVbH-!vHM+dlfJjVFp@_xk1Y2r9zV0P+4Q$6F#FA+2(N5in_k%vgcOx7iEHY=M9>#Es}UFNhLWHG~AWgS%?@~aGlXj0`2w3#jpl6cH?N>*pzoKE5M z(N}uvq?AucSdzYu_qBqa_NM|qrHpo3Go?%oF)N8%(v9j{{~C(WUs8Nh|CY()68$~% z;2u1>;wquh+8s7+UH4b<6WWR%l}!5xSkQ{7ELqp~Csen_-U;UP55~_H!qouy9EqJUg z_|j|Q=S{&kHQsjX>K&+mv)%ANG(8(Zy3)v4h^lXE=4YaxYK1@2v|Drv|LOd~tzX>1 z{B;cpFi3Gc8;jhNWjwr<7MBYiGJw-3d*rS{ZZ*C(_JB=5D|ang3>5t_s?zL2l>6Zt@`9*DgD%@OUu#uR9&|(tN4sK}DjR(hIBL1zK5*0){MK=Vt?D>pBCmL>&}Ol$O`sPIEvyENY zr-&}_i99Rb@`N&kfJ{A{$+b<#%8G zr~SOk3?cr*<6cKBgDs1Hxp)pxuEiEI#}M%uBA%$3K#(^|I`nr070389QTNXhy>v*c z9?hF6Wli^d#HqxR9NlEE&c)?4dWE9=CacbEL<&L=7Txbc1;angT(G)U+4Hib8wo?F z8okw7AcC?q+A{?>fA%L^n`|WUOWpqpaU`dSn=N@j^7C-Z#{Cn{NIELMDpZs?8V!IA zIhI{knqyo4SQD+%4Y@)T0aoD z=5u609NX+FLz2{AZ6!pmfitrrFb(JE=%8vM7=WZnT9IhHv2F%h=wceehY z`wZ|w{gx(2W}NGrO6d5qAhw8C=cD?w&G%Gob7Z#Sh+%A-rkS=_cr4rOP+T7f-TmM< zNUGHNI{;*V!jZ)csOO>(#Q|}6Wlq46Gy`1{*J0I);WjQrjA74a9<-TJqMq5A(6Q<6 zQ+yn)%O(b1W;=L<;eDxogyG#N2j7hesXvhH-ZkBMK8L%;IOH82?*XtBBYm$JP516^ zoBSs}+S-OG8%~5NP&o^TwJRb_yy%K9=jTWZ=}NOA8(xZp3g4^uezPfp_+ii zCiTgjNbSTBl8?S{b7WZBK-BLU}ujFPom1vecP$5Hu9YY`<>JwuT2c z3JbojXDT*+Z5Ng~fVhhr)lv<{g92tK?ow<|R0A(~m|rPD;XzCst2}WCq2UL~)&KC^ z*!d`}GIQHP{-SJus>rG=l>e*Q^0b#r=2+yP;`~BV`mvQ&FMRc}CQmuEvffwmxdo*a z21odZIfv2c4^pI%sHqyxQkEh);Y`B}6a-O!fJK^;BStP_6bo5TpfaL9vU8s1Lxzpj zm`8CIglgzZ8y(6B{4lG1hZsO^fQI?w`cbBkHAQ{jq}-H5`!<;M|9n$Kb2LFlzr^gc zr$j_}wZ^uIJ?h@ni~#Y8FpiAPY`Us#J5yAOjwmX{#74|E3-cfXv$L4n)jgzgTbla` zl@y?cn2r(96z0KAl&XfvyXN>YXXA1IOj`~ieF2Z|3!hwYS?ho05Uk;kK?s=DN1=rY z({I8PwBco+)-Y{@PL1A#UcpVWXbgRhY0OcPLH+7BKpAYf(ar0VgZYX;fYlOuH_1rW zQTsmjJg3Pp{OO$Gp8~?+ZiNk%?4w(AXo2CEoKQbR7eL;4S9H$_h5@)YBktnIgGQ4q+uL%KDdGb6Fl{w9bNkYt?-Fjq1!5G+efG`FfNMXCJjAYR+A^mn$P6P z5QbV1yAA>|4_VvRAhTruHdem{-tv7o?KF22vsObAz9XM*>N{2y#P2BgB(OCQUy#5S z_#$LyG62s-SWbx&`T@vISU8Ia6yAnDd6m}Jw_$EyXDitVkp+3{*-BM2r6Nl1%;Nq3 z)V&FqTvv7Pdxom6>aK3744#`@P8H(D4mOwK+^ydud2#{at0d1MISmPS&ReAndTP71&~KNt;(LJ88pL{HwH<(~U4zTR=->)| zbqBDUN=px|-o(;F16&uKL-=e3TxGj}LFK35Zq$IrtO<8$qi@tw3kisNH+5_(hfsf{ z8ulU}Q^RF8YVMrk_AA0936fqWVQJT?r{NZPUDC4@faJy{g1BM?>vnw&z1A&r3bv5~ zd;i@Iw@9~Td)BRMY#3UPa-+V-k>eim6Cuvo$m;&60Raw>IB;=}Hbz@GxM?$Y0WdnXB;ifr3X=@ep8>>rYN>7X|d`I#pS&^cO- zlQ(|^dha zM!9`d>O@Z$PU1Q)zb9M{VX|D#i+kovggL`BPdXnRaOKtGGSs$TCH$tnoL{wZJAap3 zPZmQ#2!Xe*i_3O|erxh2UJ`cY$R_(U2M@wQS;ZpkJVJ~Sp}e6M1Rp!+a^83d;AwhE zSZxA&|F`wzAdHKTl!P;M7n>^+e85S@xe6Ef^bAJwuR``PNPTEhRGe9N-tN=l$3lL& z7IFh6;8&}#2`G`%Z}6~XWikR)rTfpSX%2@ak#>Km79nloNKS$n6in|H3tv4czXoJx zj}1}YDTGkE4z-{go`j8YX!`-u^U5J_y{;94zi zE(bvIWR>&obhb&Wmr+;8uFYbO>8k666RyCq<;+K?5un z%7_lU_-vH0e%M)zq)04l1pg7&L8r|MP+|{L5<=p#^jg5C<-5 zR0P5!1ftv&wu70EgTV|5wWZ0#sphBZKA#J$(ZOCq%1!Xbgq|YWOzr7~Jl-0T4 z`tZB{jr@_T>J!L?VUy@X2`n}Lu=kRXqEze}ere2`vo5#3zB<2*t#L7c>=ggvU5mSa zyOmEOYUMKw9wddDvs-8iq;{jdG$XTT`{an-)w34X>F)!g zr81?mNEf+9ZlCqq#AeA{{kEYUG7=`6*{a zW_JgK(V*4L*5-FB?WJ0mwWXTLT34^LuufnN*HcHuf%k@qZ-6j_xJSO=l5#p*(&&Cb zh;eD58a~8QeUSc#gu=HXUF8Fe7`ff@w8}2&Xt-;58u{a&InkDuQ!5TAR(za$E!-IW z2zQl`DxV8>r{@dd4KzJ`z{pYjfP2g)G!-T+&-ep{vR;Q#y6sAOB;M4W#49j6#pTBD zENUFZ(?L8t1j>|5ou^mlkHz61-4e*-mMi0a-uQ;$P@2|J#L&1tFWo#Z@P{#a*8_~A ze8997l6Y|1*#h$W%A6x1znAlEomX09L2XGyA=b*aq{%p_lvzpGq5Bp|;Jy?xMuopO zOZ<593OG0??X2}4wR)_1ed+zKmdA3h)?>qk!^kZ0trqXtQ8Kx=tL!XQv1{@3`&(-( zrQ-h9+6Q5>unvA>skQcF3dvMt{$r#>kY}q5P)4eA zXWmd$gucxSmf^vy1&|B@zyNGu*&$dL?w-PiD(%x2K+xiwr4y6cf2kyo zBH{7XJ`+}qes7IGgCb`QdEtE&Yl{IiZ8@?ND!64Otk^_zM{DfM^Ar=psw{3!#Nfp2 zFk3Wy)rD^>jxk;>qemK@UnNNj_B`$?%b7~rCUxncxKaFAW1fF2xBn^R z!a}947zi@l{BaWw4WI|tw0~1xG(?kaP$SB}h-ueY?R_K+KnHkGib#g!4)AC=LM|&4 zhJmSHeaicD?6lR$6G^U^g1AXn1CYfUI%V$G(g6VqD?q7cJ%?r_Ed)P*)L($#aN@i- z)_i@MnVNlg%O8hi&GIJ^yNf0+vqTOmh+%mV5K@C|Xi5c>MCDJS;}Ja$7*?x~5+H%d zrlm(HRXPwjT#-W<7AFr*%WhfF@mB_{Euze4X4L_MqnaX^f)p|yU%BUA!#I1s|3e`$FR*;{wAT4ICF z$;)3>UY(P_M#ao7#3li*@1EN(Jk zduEAi#}t#;V(+@|6#jaleGUu<6>@1&h4c#n=TVw{^HKfS!xE9*YEp z3mBKOLGq_7@vL?#3EiNmlHe%gDe@KCo1jL+K$?@CGHc6bwGdUUh((NcVJ+P2g}iKZ zI#IR~MdqyUbEOWOxW#W~!XSHTjyaouE9!MTd>x$=%zth7LMW-7yJ``;3jy;<;S(^q zW`u8+EE6zHz1I_HA%h7^ZdX4c7(gTKNSzR3e<`5Pz=@h)Q}rQyOV_UH2nUe1hK zeSJVwz1XosjorOumya4M_0yqJut&^Iq5UL}LSB*J+}%+8%cjAOJDvZGTmX&!3^AYl zT2iAy~b=AH&Jb>zaf%<-nL zrb|A<@1UxAx27oVwN*%b3Ai-sUaiLMxykb`6L%)EK!Zp7aZulmq`9*oA>1qOJcc#N zjWm=1{I84sp8>PFb*psf`Zk1(P`djKE6Z0`mIPJaS<9m`y@}PBDFZi)13F8jpQyH! z?kgYKQW|$}SJM@!m$vG$^0Nf0#4D@~oBI_C2PCaOuv`X`8LGV{kZ-I{65DaXiHf$z z40{{VB|ZVPng``@&)Z1o$0s7Ka@?&7$|l09oMy^9O4x0g4Nvow<-jTUDoxeI^w@Nr z{jt!J!4}S;g}ZhJW~2q(K2){9nRGi55u5&HMlv3#Qnlbzi26usP#j_y_1el%H!zG4BKX#w%eB087Q83p&wV5_MkrfIJUE> zrQ?IMs0}wM1tt>2(XVOW8pTOrQjPdY#Z?|B*_>)>1ZX&RXr(@hbQH`}%nsM!IQczR zS}Q7WFTT2*Eu4pz9OPt;%{3RsR-bEDDH|lHvbojjk>)!~S4#^iF~}-hKU(@nCh{L+ zl1Gl7xF&?+?pr1KgJ%2Q`2ZWjFu;a#3-U{`W(rSrmL}=U#SCjY($AuBlOuw5R_wkj zNYJ3n0Sq6Ox;Be`WY?Fy6$43+qP0p4^P_s)gPN8nXkTv6CExe#332 zDJbn?Cb1Ald@S$0Ch%*yB~IQ$_K$=5&9>Z#hZn!e-Rcy216rkxULjAx;C5r|W=Jlz zU5b>cHed;Mtq%Xdy1_vg2MdGY5ZtDjrXRYZQ+;)|fANDi25<+b7Z>mdGOf-PXj#(f ziUcu|%%b=)TF04b^!pnL<<5sk%+?d)J<9jO9EpP+1RA_7;MX?-dp9&1p6o84GWmM zaQjUxB+lOGsmvvfUOqoC#sAh)8t(Gd%mf|lf~`S|Hh%vgPuSf=N(*Rt8?)xg7-6IN zH_V<(=nmkBf7*@rR-obk^YOq5+mxpzCoo&t4$1h_%-S-xG<|L7pEhl@<|n)wS;g9AZhEhIcz^OQg#JW%%MT1vie0ILz9)r^iSG>AcJa2WN^bIw1xP-g zjrmncn0pY9HO89y9CMv|oJH&# z+Yghs$*&XN7Ma*WFuF~!;xh<Ugxo+c=)0j8M9AWnotw+S`6Df)PbNM3KnqxMp#_T@Xm_m~*G?b0wTUM)RR>y; zaU7bF!tQ=;*yama)?{BWj$9A4e4FHjOW9%5`nKHWftz@s=nxa#-uDdix@fyL!^hU; zeWP>ML56Eu=r^n+w)Hcbf6am%M)SUpaClhVea-QeVBH&YdHwyuEP^uU+->&*pl73i z&TIzY(eC@)iVER1N5?5YdRlT0INJ}-im~F3cb8M(uJR)j(I(F%<>Y2CS{%<8M2)Z7 z{e|f7dbvNC1E?C>A<%6wBQqcaqP`=JW$VxsN`~P&IJCsJ_lFSGMo6u5S{0q7FNI~( zsH)lYLFtYNmN?@Z!oY8gpUZrCJW%aQi?6*WAW9erNZHjNbE=Gh)e)P&6TaC!LEFjv zE8TX-tNihfEM*_&MCvmO&vQL|=AzI;ed~U#&^l>98=ohF94PyCxU|7%W5&KVPB$$W z#Aa!)o@`w^v1;#S!7|88%iCPNN^dXC2F2lS{NY;Yfu<}zIl5Gurdxxn#*EDXVSf(O zmJy=}S9-YRk}x3Og9y1l2W&N{#X95;a%S;ZaeL&p0N}G4z_#hbsoa@(P)u+TJBSIi zYj3Ukg}4El9cD&%8ET{umL7ApZJvtTs#mJsn6~pbdTR^c4E`*{VTZb?}BFX?v zA4;Q?zQ`zkEQTv0I+plr$oYNmrTA{RW5qAq?e21_JXuwV&j1mXKi+ zJV(!0!11uAtL`(rJqdlW)j}r?uZ~i6649maQ|Wck){dDM4HALpjk6iK zEW88n3@lU{%D^d4lIg8#=lj#n{b0%tR!P5YSZhh>wVuT53`5cK+r-8X`=`JuEO49t za_|mX@6$(^W3T;n!14H2l&Ji#SM@LudSm=!o@r^#nlC{B8ToFXlE{OGZl?$=r=E)A z+8;nO6bac!Ti1i}Poz&5cj{_UZ&XL8kuVeB$A_Azlt_I0lr9O+8mM7eVl*CEipC9E zQK}ztlxLr(IcefbMsV&RY?%mTehc%$ya;O)!OP4|NeiwEFz15!S zDNac^!3oR^yC>K$D(XbbDfQKsX(%&u%mvlBm7As^b-!xgmVL8YU0>3MB^xJ-*((ED zf^4*8f3$gMNc2)51c*qDDm7~5vS@%&4V_G9d)?f+zziAtZArijUSJ3`&2qg*Y&!t#JWq z+t;^Fy>ucKcM2uOC`%B>Py!=i?HiE{vJxdNM;xXP6VNuO#!>OdCEXAb7}y>^w8C76 z@mvf5#N_o(g}6ZM1@BwZxxI@q9wQSMrwLA1z`rxdFWo(s!DSnXg3TC71B#%` z99#TzrJ9t{0?6?bP}VfFY$^k>OmLiw#<*ER$UT+2{ZZ{6p!i7vldngMjQh2a{EDj^ z`5&%YHo|F{wAEmiHuA6HvXR3^r&Uxomdj;Qju3zwwbs?Pf%xi0sT82nsJb%)A{zza zHhr=Vx*#+gRkOG@teF?kDvwm=>+%!%s&2oa1Xn}@-0w>97kbc=`{T=gHz|Jr{Q>E z2bJRfc(zPSji#4K+t)Qv?Sc$yTJ-QJ#N*>qj>fZzvj}5kb6l~=*?PP$VwFJHS3wv=r+dk-Y&ooLzJcX~Bz)&mBy^C{nW#VuPt;1= zKp3z}L?=fpbi^1}^g_|tx(=PBV6O_|3YS<%NK;9#(c-6-Z9^JenJ$df@JdP4-Sui? zm)huec+ekx!33j65z4@Y5Bk8^I)|rXN1-ko73%DqiMTp5Ha8j`VjQX_q-jLiawFJ( zI6pfq#=?)RD-AusSkU}o*)lY`H^ATK;+>#t=OM~Z7H^KiRj?ebOAlH0Y-YaZ zW47#UKDol#5zv%(N=v6FAXBs0rmg@yB2$DX>y6mB0hI7R2UwgIR05T8AL?R|Sa~~Y zODAKD(F~}LfP!QtP?#Vds94=E?{x$a?2ROGI0_&zCnqM-ae}BBh>5^L+$4T`-Xzix zKaN`j=uI#1q<58AIWkv0zNdWUvnMc!;q9&727L9*%*IW+Vu0-%I)k0$9Z^XWNDkxn z;65bvK8m0kF3f^qTkV2)6|0nUU;dO) zrp9_Z4k5&ajs+s`ijBN6D2+=*!2CpUuSo^4fJEvy7PRI-mQ1qB`mJo8&@Zc#933Wc ziVf-yf>=lb72{QBL@Nw)12_`y)B{qS_a2P0PbS|3>C?~yk~9()(IxsE7&JW&^(neY zQ2MXaYR5(?7yUFXB-w^e{cJ_DUTdzQo$Hws~0> z+ zYdL6F64d1P1P|#8;GANH!WN?E1`P7qxVl|#_rN}GE-Up~c|uDol?Uwp(A2e4ep@$% z2SB7ysi*SE^TfIG!76tkV@Asv-o0GW2XX-0HB1K3wb*MCml6cD+bDN!0VL>+vD*oa z{7&c{?nprC|EPnU$E=FcFxUVQ0_3nsWFc2aHtBa(19ZV)O&bT!4()?3akA6ovK#5_ z6nm34Vwo;&^Xo7JEh$gdn0c{j0L6}XY#yHLF6JxKW|p?WH(<{-Hqe4cC#ck}0w%D@ zEo?Ny^_{fiF}BX}?TM*Cki{(J!{3^x(z8>PfP;%fS>bJ~9b?##96^v;d-&y$m$p$Z z%!vpU-tlG3|GRPqSKlnf8z>@Cv2lwyP(%vC4sY6j*yO$9p-$fG9x>`Ny2EnI-6y5bf=Tf_P4NeB)9GQe7reQRfe`PlbrAl7ktLB7P+}2| zlH|qd+A=s*|FJprT1}-M4$l*kQ#FTANHCRG?XrDRc5R>KHd{1L&UG>2FLwS7b|ESU zhu+$Z$r2O^-6YSGbILGm+W9>c66G}_gkaPrA15-kb(*rSXpeUAH)}2%jp8J2G)G!3 zX0JT=whd>?_(KvO?D68&JB@+8GE% zcn7K#aY1&p)vlp-(cVT|ddgtY*_+w&@>O?Rzpa-o#R+gUl|TJd`ZTKmy-z^HrJF+~ z%SV9>Bv_mZSXk3rp0~XxlY{T6be)m>*Gi1GCO@C^-GDiw62l;3IY`(TfNSZVspkN! zy+{uAB3KDv`X@`%AKQgu?qsNFzub@t?HNydfbK+w z7~OfQ!PL;oEP?LoAkdu_Yr|b8sxR3X^3I{6Q=$T^rQ~Hl7A^bC7`M^ebyEwV*R5LC zjAH$$neK;APb^G=kKB0*w=ptJ4wq0uw+R?NBpc91Jkz(hu1RvmoS~q*?H4M|d%87m z63f44I>9R%Hxu3wv6;8do`{X?Wi8c*_hQ!)v1@p_%nm;z(uMwnkz^f4;RfSaCLI`z3qvv!&}M@h(IJMS z$t8+wrIM^wjW!o(>5EOKcCp^RSUg_4SSPKBcd2XId_AIwAeFv1OjR=z6-!VCXi6L~ z3))Cwq?Y2qGKgHg7;kHzmRHJKFXYDmTQmUX4$u+7QDOR|ljdbon395ozs|a>Q-E7%Z%Tdt@3(u;hLeLAtZTwjYR-LgT_^aE3Y>} z!vMZ__3!|w(#V%_MI|`Kkc^9~w+t5%Z6uq;Hi5_xta~${Mu3r3X6?RZ1gf_}Jnw;O zf7r&#kmw+!4r1T^#XQhJ6b%ys6J^YXB+0gge~$Kp0ke!kH*=GmvtpWK_+GicR_Trb$FIl$2tC(Y7kZtFh(#<8VPUX{luS$KZ3yAG_^kbZE5JH@kLum2 z$+P-6I30{2{5ky=7}p_60N$b<2$Uvjqf0vrI!}u4DIQcmQ3(}@DBiubeC!fD*)ho> z#hSh1(a7}bk&%(eR(u-(>-2v$KZT)(yh6Cn-BN3yrT@8fORa&HE?hM{Ht?cV43%nh0-m5#0u@V(q`3u7bKEYS6@1cMu2L&6 z*(rxTCPFXlo`F6gS=mMmd9al_r#%-8^N!aA8dn>>6i3IR9%GRcHq0$;?TL_XJCG?L z!a2>ZML-7}nK3VuDc%78n*KN)wJdBF2F6tLc8mhWYRZt01`|V|N%=_Uai`ufwxHgX zwJgTXsdqf{>K&iZf~4N@$*XsK^6DL*yn4r{x_Z}?dM6G;y=!~*j-jA@Xop%-CO~du zLbn@tGSB9wv}?Nz&{1VtQR7z0R68y{@S}Jb?)70-{-P ztpT+gYW_}=ebk*v6^(fCxHR+MO<5AvSkP|K6t{bhDl$T<`b1qcN0n+R%u(5}hnb_A z&g0I=qtqehsM=#9`=)%Mf%(8dmuhLz99^oVMRRnimKM#?rCM5Ijt-1X6Hm5sDt52W zGK~x(%SfyY4J>#y3#n16j9+w3h|pE zLht5&c#q6aOv6H6j7cw0A8-|`z>9$uwlYxASd5eLQ$}IZGZlzMTw$w2*5bflqzS(C zFCxS|(D_vaNgv-Ci->tvsI)~&H^vBp9vN%3$3_VjiCoNTFJj-BL0Uu#U-Tybqg8A- zp3OHl>m#+5AFpqK9d+No1s3KD!4*-SoyC8aj&CiGWWOss+m*(Ijod}Sywap_sq6Tn z8SxDM${U+SXDQGuCuv^jhp)V6bHY8C?7TLKo1ER$UZ?HrWwBQC7`*lH-h?esUdm=8 z$@+g^wQMX3!2%5^gN4aNcYC7rHex&FJV&!U%k5evXul9&#b`jgv5iT))uN9-8L`n% zv^A+W&ork1ohNRIr(3?nI`<%rNp9*lYz9SkyvD8`8gU!1vGzFQ%o;*J)yAuakdexe zwNyyx#jF)X-@&zfbwLCA%Pt<=;LNW^=Z?{OvZj5gRHY2$}eLl&EkJQ=BT3&`SXY)AIZDe-lr3-qno~Do4-f+&qp5}Egw62^yp-K z6s|@-(uNvSb~nv{9Hi_GFwy3`w4ZcgK|9C^ByKq-0yYqx8D`g#H?{f5@|)g0V&K~m`qoe@3GYar=v&b@h*A5ttdlp)AE%>M`B|&-3s_x*W7~#h zdsOJ>AQMY(KK4pGkhO~GrKx>V6lm+NW`8UH>=hsQu8uA;2V41Htjhm_1nc5) zOXrk#PfLzuI|EIjOSAX92flJ*K%0T341;^Z=qLU|VO!x~%Z6dg7QrTbk9Y7=%Fe3e z?cw2!#+Js~sSdJJh9Sc>Zc!;nev~1|YStO_Y)c9T!2as@C-6NyY=U~aq_8oT<1;75 zBu+hx>sa4tCzo<2sVXjSn~>BrZJUI2&$#Htd4B_NOL3d>1JcJ~xQ$$}6u4h*BPLeN z1dRr{P1}b7arA^8j!{(dX*Obk-OXZ0X}6U-d?(oDv3xHx!?}Jj|bv z+{85<9oSea^{-bCmofudo1O>5$ziqjF`0bUYiO-@g20=?D)&!A<=D{r{W1+zl~|C0 znkno~E5u0sm6!D6Erd+DwsOnEs6x&Ie1!v<)*eOG>UsCefK{bO8G8BEftODhs7V`1 zK*-AOT?*dnesiGw_Bf8$!5jj@PI5@a(ib~7EC~He^HKk8KlaV-zv<)G&Fg z?3eZ~Va9qUWufx{APh}$Zd6T*e^YdoVXN|GQ0HdhpyJ}tN)}%<{K_%7+H#+|TcvWA zRO<=R;yT+qv|{$@1?7c$m&GyO78P-uC9xD9E9g@EC_fFF@*Xuy1eCcu%ij9QbmV@f z{@99rqFyY#T;X5dSiTGm!UNXuj-DhWPj7Mq@BFX0vC#qI^9IDZ0Lf$T^!wI3hwvu9 zlU@>~BmV+7!(qe9!iLYXl+oGkPLq_tPe?LuJ>#C1tWi1*?BoC<;@`7t0C+H6?-MON z{+E&(0oj2NMkr6Xe*Cvt{I)EJktq6;$&xx=rUZKI4>BcLBvTSEQ?v+0i$sb|RcK~Z z>XguAahA;Kzn4u8($Oq4$A3<&Jo*25{`^_reB;VWth_mC#Oo9U9&hM=P5j{!+rd;% zoA05`I}gnOE2Jb|PLn}~kws8kvNbS8SSa;4Fh3hY!WWCJ%>Y7mbtj|VGtN*k%tA`y z08!MB&W+f5W@{Svu(>MR-?6v~l~7fQ8~cby&4HD(^ZjAL9q%?Ps)k&J`-x3S%y6^k z|KGF4g9Zh@;clsRboiv+jx>gy-LDFb4w=X2(eRR|t1&D2a15iV`nal`e?v>*o3_>~ zy*%=OISJvC|5_{6LRY-8bk%h~sX-m@#98t7EhXaW&l%>x0(iKUXZM3u z{l!BzfmzbzPibVDiLr!!H&W_%+kZiW`oYR_X(Kg{e;FPY%e)T;7&a8IE2HF{S_TAf zXs`!S<`g+({Gf^9G9e_5vF%`694vF_r5j&3=>w$Pep%^*CHjm>RoFgN!Q`^EB1)A& zJ*EMCg+Z=q*>Fjr6|IJgsp+pjOpBRoO7=fG@C(vk?kRi*`Cbwy z&XB2&??hQ)TKd!)EkwT{ackOeX^>sKqs&wg1d7fVh0YXdBX@_nS{T1N$553$Vv&ID zKJi>;yGoiGSS(5aIwG%w_BN=5U&~;il8epj*MXL&(G}v)h8Hq~rq(Qm;oQG&l(e#_ zmWBB#woH*g)WY9pSA@!Pv$$c29ANSy$0Ylbs@JE*5RI@Ybr^;)v@n~({!{-!#?%q) z`QwY>TL!4TGQTHOHlk$SU<#KJd=s)SxxK5V;~N*G2>>?^^N4Ry#i;K@c)GZlcCK(t zP(}%tYKfBsi=N^=a(9MWI4G&P(IINZTz(}rV!~XkYd(G)OfNN#OmTwX`_d_eQCegZ zK{^fI76#TZ>wYxf8?k4~zNM&)YeXE(T@@?WPD2;jcEwdX0s$DY>^fiyy6jxjn@pSPO{{X zoyb#O??hfE*ALWBp9!bh5jZ=KCpAz>=9{K%+Ve8$)86_X|C|1!X4}J#V1+#;08K!n zO_$dbFWNJ9lg|#9A%eo>`}Cr%Wg|UeidNwSl1>o-f>O`y(9D1fq#*U>+3DjUl2y{O znbe|)4i~33fm&e#vEyKzSxul(n?MS}jL&C^)+P|nB)lo*G-*}SWOOZ^g=s=?VwfiB z($hrS9Lo8iof4)hu5?S);zq^eg&qv&Q?xm0Ytx*kiQQU?a(c7Y?!jqu25S-A?zjF4 z-7ns(KnMM3mACuaZI1YSd6cwP^0f2%G-(dRjKnLf8u+s42|6mnt5VuXsOzltYT*`$ z5CsabP>X)HwrHcA<)_h4K(p*A_H2+>B-v5B2F;Ir8;Q%=e?0gWJo&v=a_`+}#>NjM z<=d>1M2$jJ6)8ShH9S%#L38ri3fO-x7^}FbOo|R-4r&#L;P9q?iBOKZ-=Y`o@_-JW z>zH(T!$eYizU&E6Z8w5c0E2drU_P^CC3weC#eiU*brO)~i}mZS85P<-Mw|0K}yGQ~QW)qGZzj ziN3LjIscE70L&xaHHyD2=d=a26}OiOh`j+tL0Z=Zm%Hy_;QHbE1pP0vGM!bAg~r`s zE>Mb3U0gCpa2*S%&srr_q4c%-!lw=0e{zrcSe{(hV?(|sGpAv+U|LL9oPV2G0{L7_ z`$B-Z$3=(O0Pg$xiHkIl9P|Ymg9Yxa7l1^*o;{WP>#Xy`&KOkpX96wc=&ojzBwTFy z#FxfP7WuIPc{##di5zHE8OV!tYq7V)rVeZQUX5V*Do^MqE?p*2_-So)2)Z&N)3f+~ zf!OK1zHK^=xF*cjxSXw^%d0pg|5-Q;?keC*imNx(=;e+eaX`s7Ze^yZy3uT}`r8OBXEujk_c;!r9o2A{Kht3@$8JV}kP_tc$dqN3T-5V=I)vP`*b|qe%)CAH-{(0_3 z@Is9KFd|MVSqNkItvdt6VGn|S6pr>ub;PPlnV;=iT;|l|seVybi5=yk?W&bilc`#X ztClEnVtPWoo6l_-?8XE@e&-B)F#}VtJ`_lYi9Y>3-UgXnDBH(9(&7KrJvj)lctJF~L z5?dqrXR9hs#M;&Z0xWi^H$3wNUX%dcP+autK>#(cbb9=|52dmDhFHdyo7gWm*+}QJ ziDk!iE>15IX5vaBm?9?S)h4#{s0}S7$XqQZ67I=bKZ`;jhdm|!&0jAbWLr|sLsnlb z>tBe+Jq5rCy&-Urt6@r3^D#?`w_H==$IUi>rkg5SVgToUWe3e8DqOe9H7511w%8E! zQ_Z?SE2Nn^LS}zL(3-RpHc6?qf(J9etE9NL1iIm|KtEOwyzh`v>GKy=R&uRur}JNN z=J75#tYVc5$$VWc!jQZFri%SorxJ5_`9Vm0P5F|g@`Mw`iR{?>Z4s(in|{4Vz~6Jx zAZpoLCzF#SLr-9(17Ly0ov3C5jWm{M#E<*~8i1Ptaq<3l4tHgx(r&F(x+lGCV8eCockfc$-OpGLap&=n3zD?DcS?EWGngwsnF6Bs-EaEh zUrtAyQs$-=OB%SlA8m|DB*qsKv`fTsB)_oP4i^mScV=m;z!0HLyFX5aleH+UWr#Hs zfYY@OI$ox$c5+dLBLIj%kW2?);ZZ^%^>PlALEd-Dyz|^(0)VnDggypa> zd{*Sx83wR*W7$X?@e^ws2wC%nca>E2u5vy0U~4vgLp{pMd9f3Z2%2)v*}~9^sj-Bh z{E>lr2tm1#mM!fS4ZkjKgn7z*qO}J$M;Wu5p}|fpO(qz~Es=KBswS=Rliw;AFS+?@ zoVwtqB|Bmo7T_Gl`W_E+s5nrX12yY=S4>U>AtQ)tVLq8MggU2Tq68##UVxjK_9l^0 z4r@F>wzwzeLn#m}Sz5g81-MjW?@P*(ZEOf8DvR%7Yj~O#kABgl+bJ}61uv6r*7$i@ za>?dUEOEuep#HKX#rs9AEt}wZpB=lDKcg^`)>poG4HE0;_ z-tED1KY`PO9%}1b9$f4H*8m<%xD#_43w0XQ14G|VE-mdDy5chQ;>H-4PK7*Bt@-I@ z9x@_N!&ZvtAlr}D%>LZlhi5ieO?{RMs$I9_dj(bZ#G_I1v8|y2W>^)gRC!X_nM0_yBux+o_fM1ifc??tboHYU2?$>ZQ?ifHfF|V-vqt$j z-MYCX)yp0zsU(Q7PaZtIRwE;ka5Wa_Ar&iRa+J=QEr9Mf4~%SqPqK8IMHq>ES)-&` z!)WH`PLMnMQt|PJcb9y8ed#`f|1Q~tbfV*s?lLOAT&g(5M-E@|Q>CR{{N3S8-gtG{ z`$rF7^51DquWIuXhbh@%$949yOSF1IyUstjtUd~d%Ay-MU65_#v=~2})JpQ1nY{;f{+yTg zWoF$f1kBorXgcygWlSqVfoO!~o$^fvW6bSP_@&jR$@|zahnf4&v$7 zA0GL;|M{9XK2^1{XukUu5ERYN(L`Bc)su2+b&#^3{Pec>$A7i|uCs|#ntsX~Uh$z5F1~sXA741VZP^QN{FI)q|BD}{ zkNDCT?CA^jbIVGao-doa_|nI}@0RO7KvOS?UpM*6k?*SHt*?2>+rINV(G(w_ee!D_ z_1kBpd->?b0X}wgzTl{vK1k|$Q`nV*QN4*L1- z*Nm9M81MdCkC(uEPx_|S@nS5=Kk(g;86%c((R2gsINVp1o#O;g-0`LEfUFhKH~=*} zCx~XL8EQNg!tz3l#_JtM$+@|}b9bzq?McbMlD8PEe=up^{&yqtdmEP6n=|W&B=fAx zQC-8{HB5_d2>-U6X~G|jHW`CMyt@xZFJdZd<|dl?2M^w5bJs0>HgS!_&m|+DIg*T$ zy~r2-%t1|b|K+Xr1q4Q6ejeBZXM47ScX#w~ommos@@c(<_?Qx87jphILG!wqh8;=q zjoe*p@a~dheMMaU;)uw84(!PywT64%H0pVl_r`o54sgHIPk803lcqm7zh{2>%HMqB z`6qv4LDTHduRQ;~KiT~OeOz<&WA6Lpnvdz@%|E>SiYu=86d&c(3@v2M=_9_<|MnRR z+X3W<6Bn#__FunqC8eKt=DyjNPrOeb|3~(mTmIo0*XiTIP0^(*&i;fxPS~vfA|Gx4 zr$V|=r$b@0^K;+iA9yi`Ttn6k@o$p~H*~&}a!Fs4 zoKQyOxV!&w+#qdsi4uODfnQJyh0)jx=^Ic=SxNe-mJqEP$-l=*oBbfTOvs>hJGZMi1O#IIW2*d3XkFfS5L0` zyH4j)OsaK$m|8tqs``olZY$_qzfrwz%w_2ux~Bb3Z$IiY$IZs~K5c&bRnNQe=vUtO zqCK$xbBz7p0sE^IOK_Ijr|B=8zU||8+{>Bnd1 zDG#XgbF;IZcOSVdCW4L~!F4hJE9IG)=Y&1iQlIT6x~#dvrVf&g^!>;FIZ+EtAbA7{ zLV3k2GxB2*3!|LC7&Ln;oPryY)TYW&FtWfx&fc6`;!MPB!{wdX+zcGvU2%ev1Aak+l|jkH|)M^&Uy|$e*q19hr^xjuM2a zHcOA%)nDd2>5YT0qpd#cd?bheyzxP zp?nt2Vm}9 zty3-lat@0hHKmUDEB+jD{%Yl-L84{dzv}6(jpJ7J)H<1n2l_~0c=#5Jhe4Q7U5wEtSYRvuYFB~)VP*>} z6Gg;Ts%I1IVKkn!*Ud}P*U%wJdk)&QuE2s9Qe%{=tsoFbVaBnYt63shc1W6&EVXDj|x}rTadv02pQZzCObwV{Fu2};SQOs zKg^;R0m?DpZ%la8{GummYya*&C5P%s#I6mN@jS}+9tJtvdlaBr1A)R0w~tF_V_=`u zW`#p;^Kt35dK71mdNNm$*i#+Awh07BEMDLTyB9jg7j-{Q_tEof3})Ta_>~l%oCK9v zbN^p=kukPe`b6GV4567R{mDtgr6I3tLN%CuV#)C<#R)aM@!b%|U-aOnuH#){9M1yL zTGRQ>SX1g@!&Jq`*o)$n@?zhTk1My|LUd{XHCQm zrkVfx{eNSx_>%g4s!VfmieumR?3wLH(@*@9KR*6tAKZ7tY=1-m$MEpTT=f)SSrQw% zAb?k)=E_>lGncG+Ci8(~4%D>6J&QUY-CH%Wf62~yswTL+K}Y_p&PS(eHJ9vszw3Mh zH7)wQnSb=PKMrVU<{$gjzc_RWJ)fCrxa&X$AUtK`x-UP%ApG=YZ`%3BWp@lgSUwem zX&pUQ(;)O^h9E4TswQ4>jjajAZWkP)*#I0O({VLS9TI476}K+?>QyZ}1_f8D8aKrdgjIzK{7g-WUS zb2V!iYs6T2@R#SMkAKZ^JDxJn>(M#$a#U>%HuHZVEHOPyb&XjvZJe&MT2u2ko}E4R z%1wX$uwQ;}Hdx}TV%dCPrQpoC&7vw*96^Y?=?21jE?`)pIz-eR&3ve$2 z0qj!hU{;J{)X6a3v?XVAAX)9k&&%o^uQZNRf&^}Ku9W{k$TLeHTYo-Fr`LV)A76UL zm%no+j+gHtfBW`t{XHIoFTU(XdKRv z&H@`=e(yH}FiwYLjrr-b&82V)W$``YBZ+t%`yu0_kk4*@Za$0W@Y(sYE9YnDIzNkX zjIo&>lBHK?@odh(q62#*zq;vab8-5X54equx8HcBcY*uoQPjQN5Lx;$OD+-*nU@j} zQ_2{YFR+v#guH-`4Vz~ zR`K2JTs)4hJg9p&g0bnp`TFrky*zu%-r26@pqQ^-cCLvN;m4ulioU}LF;zEy?eZa1 zFbp}^JSw{P3b?+=Zi`#Q4{lmLnBC#q=ev3FthLR~&+8yy^;88_!HXMYBa{?v%U9hy z9R6UqPMe0=WBo|y@&;Sn$yAmUGrIOdPYEod;0&LQHAs$WNajVfrARkfc#s<)-xR8t zVGKF}kkr2FDf5eQp6v1$Dl=A()@70Y+SxjGUyCWuT5(3z zwSjdgbA{GOjCxwaoYN;VN0D?&pSaO#+3zF znihMu;*XotB*Bo}F@9a*F$O>S@WT?$ha~C8xVjPdzPpD(u1uIvW~) zm5Y#sXP5>I!kxObUJU+N*$IUM4wCWOA6c}~Q?`alu%WxYqw3)ze9|iCgIs1uKKaa! ze6q}rLp>Qp^aH|a^3Zh2QfJmgodb#I4422<5-&mkPEa8)Gy4h^JQf}3OY`bhUj7s&Dr)+x>_tG%-P^osJ+pN6Jj z%*LkT*v(vYK&V`%cH;$?l6FH6=?aEC-;*F$OvfMbqg_*Le?X!o{zUaY7ZxYBz_=yq ztg(~}1?JqoavR#uUURw>)#I*Q@mfb%cHQUNOXT95t2gzADHMZ6>*#Xt7wkMQ!6VG{ z4~>+yb}W_bL6baegmLE<4ks8&2eu%+a#~5ST$&__HCaR_N4J&3ko&T`RWP3seYt#E zR0VQz4DGq!EaEcrD2^iqu$^41fwbvfqGpgd#A4qjiIy{`2^U@7afmRm04%8uCM{85 ziAS<@$qX0-nlTDN0KFQ;_gfo2Qp01}9RB>F=8{7<$I9P%BrI}e7H839_a_1vuYBjY z!Q>96A=$#F(m`fN-R_T7Vc^+${@It(CQf{1F7YG;?5O(-!w6bpnSp5gQ{BUUvf2$H znwfG>a5Ual5aGg6E$^tial((y3_sx$t>rJcJtL>N1F= z5{5cq9pexu$`T=tKNZaIWYqnc`=lwb|I)3lMJmqg!S~At{dBgECNqa5;`!a>^LZo! z4-V8GM6m@~f#-R%BcG%zBB!4evDfTQXo#lG^D z+ijdh=RyZ9ZmXViq6=m^87~?EzjF0v6d+Xcmu{@t$R2=W*-vL(pu{KzOxN%HgH%D) zG32_4PRJEdefQM5vT7j5MwWbPlw}UA^kopMV67s7HVL|S3j|-aOK8bGweJyN_*YUy zbSMfi=Voh9vnHEMv!M{iQB?)S*@XmDt)o@dZv`VKi2G^Vt#YVz9If!~hVFWs51q?K zOy6vPgz8u9HWZ9=@4nYv?Dp}yztRwbg)zKyKhZSYL>vY#p*9uit|#AnU-9^@Q&?vHQ}3rPQ764LXDUr!@YMhLU+#MH56(o} z$0M)C>^%V!?2lFNZ!l{>!=lW67eDU*e&$iXEDhZK=yBJ~_A9aFHg(eB{TQ}z(z3&O zw0#!E&>_~aF%)EL%wf;*zcWA*>7BQ0*Hx3-S=f>NXn(Tl?GCE(JALv^qyOW&-@NAI z^V3g${&%;2`XBdclkvK*zU%GBeeOuv8e3j?A7;l(*`1vJnXHZ@=JeDxC%zf+pW9Q~ zh@YS9H@!%Wj%DC_vZFFj;2)kav$dfsYo&n|($E%Z(DR`|yb3Kpi4E{HGzR3pqy2lF zmK>J#AaoQQ9$`#o^uGsDcyc>q4IP)u07b)5N0TKUf+$Q6Nq35Agksb z(@4jwn8rE1Rc4^8f|m5?Sv!w_oNy3lS1Djm>gPRz3VQE{8slAav%(bWS z`2m2vbhi#C5pB5>;}MLN(WEJv>WM7i`VZ|LwHNTD{c?>+K6!rr=)daxH#@6VE@l0A zg{V(uN6hZUngXT<#Km&bPN}J>fJv9c2_uf{pa=XAN#`apWYZ?Pco8U*DpV!$p(;3X zbRi06*fWs!srl1*#0{gYU#b9(6sM7;h9glsJeIeUxFDgTX!i96?}I^m&G zm~eMhM!&moYjPdj3pk|Ky;G8i)C^XPoL&8v5RdrLE$iekdOr6R#~i3y-6uwe+_(mZ zxQ^t$^rONp1e^2uB;8F04(K44iw$x_r^}E-5`Nt^Y~bPxB4vz5tV~sOLI@SM=@>3@ z8-G8R?FK0#2?Mnuj1nj{$YP93+C*nlmankVM5viGlBLfh zhA~S*^GZ1dAS1S|FC~?$c@#<~1t;aX=*-9sNYmN1?U@r6wt8W!LuE5)T$N9^t-}=7 zt^yqhilE&@?Q$Z)wX6Gi$b!Rp20fH5AfE~Cw$!c(qB8N}K)WXV;0_BrpjimE-Zz^y zdWaVjMDauF@P~(0*$@I#0TBm5WQ@3t*dK#{4p_sE-x~w4GyvMKn7ssrTY)8d_9_5d7 z83+83#kfCl=X}JVGx1uA+&y^qb7m&f)9(yE-5c?c>PWqxL}zL5e1=1!_?Yrv`mdZ2 z)z@$FwR1!yd3zy~jU2k-Sn~Wd8iRRC*fdO?=mW#ZxYLzp9cjr*(UT(@p?Ly-xN14$ z56T`#KHSYoxKPAzUABW5r*Wt7ukor=y(w^|C~?r=fYzw{9%&NtL@N88qlqpxZuhyh zHldmejkmXkOe}r9ZNI2Lx?mS36XhyZC6*B3u8sBmHo`)rIkw=Al}UM}OqXeM2R5<* z*C`Mxr=0;rvhHk@AfsJN!36O~ij6vpmw_~v4vmt9P6KC!qfZ{5OLtiYO@SUM!m}lp zLvBgCD1V?<1u0c3y{bljyA8FVO8bZ%!p7Z}>H2B45H zbxqVklgsif&|oqCUt8f{Q$kqf0O<>{ExLJzIymXFN(pYVAhCu@J_>Pg04iwT-Sp(} z0(-PUh~AB?2O->=Xy7>y6LP`?I4rkL9>@mFDxVQpgQm5yH#!XvZ9WsYrTbd3XZLl2 zv$HcDy2>kY3<@?<@mI01u-VO1=yFn29i+xszKu7|*CZMp80~&QOve?%V!J#lzE2JS z6*(TLyrVoj{!y>_2w+G}^& z45G1wIpB(*JHedd3ub%2sm6ha?Csm(@?r+_`dkX&eZElTiUY#pi|K_U->%`LIF?7C zEPvCrAh-J(b!>wgQzNui+~k*<8T7Do_Ne{^DElx@*eHM7#!M8OnMn|6 z-EA7}uI_dbb7vnynns3vwAi6(r8Ur0KMiHpx^>AtD$wTU18V2FCLQQb;M5%eW zUZTstZ#=M??|R5J-@R1LKhyryA=PEL2>I{t%!7+-TCb_#PAo~|H9>|1mmo7iE*1@f z44>yhoQi;TkB=uIb;GHwo(#$Uokg0-;YQ^pO@);}9cowe1h| z2~*&K^c=YNgbYm)X}|<>4MC%zTbEXf)2&hNmP=yPh}f|E+@bkf)O%;6;m81FC+M{? zYoT$4tQr&)sbA@u?w3`To0^rGO+%4l$es>0wp)M|*?&&xv%E17fv$}a2Wgs_c9=+o zhBYozJA9@{_pR3dtNk`Bsy-{%Yqee0y@$h{Hh%y%_?~m57vY^Lx(m^z)llD#j9?M6%rFPd zc9V$B)^y*dN}52}vu0|-A8S-Mk~$z9f$ArL4g2&gU9WDR&e2k1pN=)HuzTNT zDB2%06Is--Rhu$x9ZlqMjjMwGQ-K>r8bT?0*`|t3YBLDztkMvI2xe#Tm{3WFtm(-A z{IQua7A+9@hXLo~3 z{n9VvecZ#cUjzLM#gr>aQNFQrHtZ}^+U#~NJ5Z2xuM%c7Jxb?<<9K^+-VjCd^4k0F zlFl-|S=Cup?Ofy}VZwq1R6TqU&W9qsX~xn3=D0ib(vN!*N(++07%RA!*e{UHS+vd5 zNojmhHVKLoFwpppX<}$WV*;TZiN_caP7!EN_lv>6=(_VmBa0b?Ju~=lJ`9X%Oy73c zh;EPBRfi!{M`*2o-ds(}wGT%~=92E9wAdotXM=PFzvuZ&-wyIn$c*dfGtg1OKp&^=7~8W za|;{Gj!RqGS#7gRvzORM8>y50o;M_9-XU~2e|PHHqsj1UuQDANE2V7$RkH?y%aQgR zc`z90OvjLWts(d2)xvGO$dY9Xw;kB>%h%$CTg!^^P}fw9Eb)ehyg1c(P`^d)7Cfuz127NW;3Tj2dV_Z862Xk?M>GNhqlVsGS;f6qIm|71Y%8B(tzKwMf z9K-M8?soNsF4d8Qsy8mV6oho=EiuU))Kh+D_by?fA7@&)3Wx$HvIJ$C4Z2WI>^%&F zfu*&@nP{30RznPSkDAjok!7bUy;PZni_@>T5H0ZsH1IY76)C74~^TMf|PE*Gyo(~#GO)y1V?!?zXRUZTW0oiwlAJ)dPLKy!=|#*Lb+%Ox zRA;9AYIWemxs3fo{?cocza!dSpY&bQBOSe0KjvjL7trb(Ur5J~jKVzf9vAon%@xqQ;ykNa8y?Wa6_-sJ@Vulv_Ijt^vf9RYcx#i^I$Ef% zo^i^yot-;$Og!BP>raJW7n@*#0T!Zw<;Xz@#jy`l%(JzQ-7_Fu_RdEc>+76<$utx} zX=2a87Plm@FpzYlm*y8;==Y@Uf$U(N<(Kr@Ny3oG|I}vFIgr%_O;GzYuhKG(9L)dq zqmT%fzijAQe$`(9R zZ>~x!(FT(2sK5TqS7~u{mJoI#%(Jn%Sq(7&Ns* z>c98G*ZR3utnBe&Qm?|G@HD+m-)8*|8P575;mK(o*tll*@_Avae14#KRpi9>j|mP4`lt}zpTvvOGtP_V%< zguR1B6J(ezPn^G&jHAFp7`l^jv_AL*8CTK1=_%^TFTy$ue!s$?px9r2tq68o`E1?< zT=_K+?AG#$71&#T^#p5bB~sPv%QtYL2$p(+4GY6(4+M9mPQ8Tmu|x^>eky(PjaseU zW(^@6^33$GluMPb*r?)@o!2A?R>fY(PRbH2HD^R5Q(&M)+&J>itQ@u6Yo{4caw>PnsN>r&>}K^CX)5EZP>ys}_moy?FDs?X!DluwF*gy41vx zEv$MQw`8s2;BS8Q%e%h0=ir8Q81bPf20hAYLZ9XdQWP>^v|MN}(8`uHa2x4V=)J)) zZ1WKa&>r*EM(g3XUBk5VYV>w&YyC0=3(=3WXtR&Qj|CmpxcMG*zm$*qjud7NmJ~!z zkai6UXBIN{K2AgZ0f?At06@D22h{{aun{o`S1UM^E5y22!oiWi?_O$(SEP-t;HWqg zhk%6T(|kFHx48Qz6{U;4rOphFYTpEWHVKZOl%9gY{a=QvU*@ad`QFWZ(ibZy%K^hv zKA?aRbd*PT$5P@N68G(ZMUAn*Nd| zSXCI@Rn3-9rQu_5t2mD&Fn#xPwm^Vj_laEv1>`pKPrOPS>G2J6Lf+78CsX=m9lq$i zRr$r|;quA3NCqd|L3BJ*8CuAN=Jc^~}N2E&RW~hU&nTcWw=H z1Su(9#D1bp9K#!>pZpQrNhLMQq3w-QvydilfVHp1ZH8+{36FU-4}FTNGMUf z0nEpYFbaVnQde7ILpGw3+aG9yBb6y)K4%GG8LWJ4y%KvOOFU0<#5dn?a+|O0&_V56 zQf1;IP`$}H3OW=ZyTACA*J4uOeU(X(YPq@XOIsa?8gFsJwqpOIH{l=K{V(CMnG~5M zn=7Za6%ns5$Q1oK53CVOP+UGxr#~_uW)NyC({E4KoMTDtk60+Vt&+9A8^yH))miZ~ zHYWIkwt`xOD~y%5tk7>udByvW;fbc{K54Ba`h(t7M`^UsZq0C^E!E#%b}_H7+sd!3 z(pF%md}0OeF8h;KWhD-jkF3P^%deEsz*_t^`QVZQG&^re$tO!jL-VUR;bfvI^~m9@ zfXS|YW3_+6Spj>(A^>B+EG!2@hXh;}twavFvK?RRY|CO!6=$;E;3Nch(rkv!W!pT^ zh<^qF*5?#kFc|Ug&~Rzs4|F7u9nbb7rcB?&nCZcX3;Gv73jc2^8`0N+p#PB@So|9< z=)Zl4p#S!8&_B^<3+pWKA4%`T0@J+J{etE#gKzHvKo~uqC7plVz>M^4{ZJ$Q`-wXb zfSs&Zf0s?m)A7Jcg+co--N=dG^6Px}ivp^eR*F)>G!2zYn-5o!e`eSF8d>Pgq!Jof zW-bd63jCJ^7as*!6zN|KZK8*@6pe9uo+?JCAM6bF8}6%H4Z zuUoQM@sYzdQ+&Hj?hEt5Hi;mI(lKFT^wejE5hW#m0{AJ80VRnhX;K`6{sQJ$f^de_ z8)>S(`*j9Vnm=9^A`IuY8L}9vrTI;fxlo%N!PQm<>v08%qdfAKr(Y<|7WdQ-9r<*9 zIdF_&wWE#_#vqTcgv_m_L#Fxj4md$t36WrH1n6#B^`j zjbb3|QPs0H{naEZ5lU0o)zesA2(uNh;K1a92{DtZM^Znl_F(;VlI;YyRdRbH9toRH z``D=QQeB2_G6lnppkEey%TadCY)int-XR@TkV!8;Hoahn5g)EU8pcgu`@;NpuKk-w zF#^$>I&uCKzfr{gjSlA?qg)J{K()Z}rXQI0b9mE$MND~3ccP4Z+qjf1QrBUoi=>sG z$}V(G#W-m(B3#$j5u*; zSvRXy3wRlUK^%% z#6c--D5jGw>l4!oG8wgq9&QjZ1agOtA%ll4LiF>e5O{>G<6I2z*~s%&^$@i+d?KqA zowR5G=zN}gvfe%ykQ;xc{Hh*?V&C%1V~jeTrjIDFWYWn-b*bB!1Jis9wJZ~ zsst(r+qcD<0Gj2R2??#O>wZ^6f&j!3Tpsr*Q0xwuQZt{4h3&{$O)`Sl1z| z#dPF<(0aZnmazSPVa2vGWNHFeG#8G&J;)RvWyX$3&J2`LpYub4U0=idD}9(jD8P4Z zx0JeL)OmBPQ|lW&ymtChmNAegl1Wi_fKGPao^XiJ2kDugvY)VgY5d;d>YSHp$`h@s zI8m|cvh*ze;AC)a)^Z&(&!6H>wy*#m#$5^zE^@Xa9=1Gys<(d!!{5Wa0PG34N!3%5ZfYIDgV4+LcAoA)`56qzW#4P2! z<&2fojzPDoFN-okAO6egu&ZynB3t$@td#R~VutRIHB~#miOaYaD8k6M1fnp6^6);- zv{DKXDr<0L1OdaMlt{z~1rOVRxX>Z49a}QDCqA7mh`~b;N@cB01y8&92sLPKZXYIb zKMlA6@03meJO-4I7TOis1S%|Sd7<`ntbn1x^?lelhLnpKN5kxE+=;6`JD5;V_7ifeGu!h8~gtl~E1>XUH<<(KJ zT{7jtk$%U*t;O8<+0LaovYSU=yBt|?36Qb&Wb>|K*{e$+F zm5Yra00y0o5R*e0+LQt;Uco*VQ9eNUr4E%k!g}HkRHun4Gah{n;H^w ziU%ag_)2G!onOQj=!O24crQO_NI5Mbl|qUGE>-`DKW!f98;}WycF~ag9E*1x)4&)| z8Ol&1Qv|!jegs#676fXE78VZ11X>z(v?wmgs^d=+A11VKc!Ao!3!c>45ndV#+ltub zX^IgR0WYqtzC68Z&B5W+_A7(Daa7hykVUA+KN5m^jIzhzog!<*=Nr=^1>2Ma03I@T zfrC(7RdFxkDU5nux-;|fr$ak*A?0+()N z8FEyYvNR);2>L-PDKHV)m4K}=+1XXXmU`II`-e><5D2s`2v2}xQ~3r^VuEh~@V#$< zH~0qn4+L7;bWILJyWT_lo)-B<Qd%X-xf9Nt~UGFYPnwg}Gj1<6`Bj+2A@Aa#g`^+jQxsV;P`W--8Z*A5CY& z;wMHRFI;4M{6_asNGkztXaV_u z*?Si#xv#s<^Iui{u5NXy^|YHA{#~(9E0Nl5CnUzPEmg^qt;CjOsr?9!SLsK!)KYg< ztEyX%SdVtp7Gj5ocLE%e;UNPvV!&DiEF{AK5e#I)Yu4;8J3eQaGiHZj!?Fi7EIVWm znRq|n-@X4wRkviDWOtc!)``0Q|NFm>-~HX+`@X34xjwn#Ot*p?<)@tenx^SvRQlOu z2$^+vJ{H#7WVcH7|xtZZh(=$Dj)(E=82 zSAsgtV)ds7c_46eXpm@lCjZA7+l#6^Y{|7MD6QWwF>=Uo{ZFqqGj2a6DvWI>$T+`6 zzg=7Ot)NznknuS)Cd(H+PyqLN($zXvp1~#mThwn7QLaKx(sk87q(vCQP zgrT}bYv>I2Du>ond8ZliD2oi1*lusD1m!2*u9{rwKffiziocp5V96t2%&jQTXQ? zK8ZCF3YYbQY|N@jLTA=!mwsf#bciP`2$!Kz<#%ImyVu#%V&7aZi+sf({}rQ+_ILoa z%iZjAb&FO~YZD}!0V$o*bh zSEx_!%#g4vs>S;Crq$9NQ}@k(elw}=%T^r=ki}S6AZ3&T@j0*!WE}w0u8|actCxSn zmG6nmqgJ)22&bnf9`J}&gXJM)UEIL|7H!-Z!vPjRU30 zE;nyC3BmcxF;4mNl|cJD#iQUUs^VYljEK7Yr4$A2auk#>xTIlS91OUbd~<$RN$Cm|N4Xg^YMMmZUtid6Nyl zZo6T|x`t+@X;ipGgcU&kkzpt++$uN}HfPi}HwMQqc5Dl~e{OdWEM5G*!f%=k^wJ+d zCHn2C1vk15D~1`yTcgx&Ml3x6Pyfo}siT~2!qYn+)QQ zh-mfT@lub1`rW0w^^-0As6O)h@9dBZl65znqy|@`0AF;RtOHKal6MXFMM zk}Po+KwyLLHsh9;V2=3Sm?SS+dqcE_Y&GkQ^$bY$T;U&h>fLNI+NihSZ1{L6ThK!d zPTgp=k=5~Cz7D5ytd3BIKcp@j2*whZ%bs!;3MX;m6@`2GbNYCxoxNv&TCMjjKX zN;Jh)YNDj2N?WPfoJ&|~&Q;0`3G@1ivEOA&BcibY90aex5de%vnknM;SJs>!Ph^(A z`p5Obs#Kd1vEO`aCl_u7=CQ7!t$zL$cwfset6UJuT|)zg$u4#j7S}nJ>Ox*9Stt=^ z2E<#X_K)^4Q*2m*>-us6KkRgxf1vbFIY2>o%zfKO1{DmTaA&zwlj2=m!qv9Gm3fYG zJImiBZ>B@`cUR$yMlBs8qC&{MSdnJ_&yi;C5QP#U8MPA5w$yuAERYhpA;n&=$Ss

p$A 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 z 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 d{n6 Date: Thu, 18 Apr 2024 17:51:15 +0700 Subject: [PATCH 5/5] test(wasm64): run tests with wasm memory64 flag --- loader/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/loader/package.json b/loader/package.json index 4114fa072..6af16fab6 100644 --- a/loader/package.json +++ b/loader/package.json @@ -17,8 +17,8 @@ "build": "npm run build:types && npm run build:src", "build:src": "node esbuild.js", "build:types": "tsc src/index.cjs --declaration --allowJs --emitDeclarationOnly --outDir dist", - "test": "npm run build && node --test", - "test:integration": "npm run build && MODULE_PATH='../dist/index.cjs' node --test" + "test": "npm run build && node --experimental-wasm-memory64 --test", + "test:integration": "npm run build && MODULE_PATH='../dist/index.cjs' node --experimental-wasm-memory64 --test" }, "dependencies": {}, "devDependencies": {

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 { assert.ok(true) }) - it.skip('should refill the gas on every invocation', async () => { + it('should refill the gas on every invocation', async () => { const handle = await AoLoader(wasmBinary, { format: 'wasm64-unknown-emscripten' }) const result = await handle(null, @@ -136,8 +136,9 @@ describe('loader', async () => { assert.ok(true) }) - it.skip('should resize the initial heap to accomodate the larger incoming buffer', async () => { - const wasmBinary = fs.readFileSync('./test/aos/process.wasm') + // need to create a wasm64 aos + it('should resize the initial heap to accomodate the larger incoming buffer', async () => { + const wasmBinary = fs.readFileSync('./test/aos64/process.wasm') const handle = await AoLoader(wasmBinary, { format: 'wasm64-unknown-emscripten', computeLimit: 9_000_000_000_000 }) const mainResult = handle(null, From d0d3217909c28875668dd971c19bfd7a490eee9c Mon Sep 17 00:00:00 2001 From: Michael Buhler Date: Thu, 18 Apr 2024 02:06:41 +0700 Subject: [PATCH 3/5] chore: bump dev-cli version --- dev-cli/src/versions.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dev-cli/src/versions.js b/dev-cli/src/versions.js index 36709bb19..3cbc28a1b 100644 --- a/dev-cli/src/versions.js +++ b/dev-cli/src/versions.js @@ -1,5 +1,5 @@ /* eslint-disable */ export const VERSION = { - "CLI": "0.0.53", - "IMAGE": "0.0.33" + "CLI": "0.0.54", + "IMAGE": "0.0.34" } \ No newline at end of file From a615396d32160320be112c122e4e77afe95042b4 Mon Sep 17 00:00:00 2001 From: Michael Buhler Date: Thu, 18 Apr 2024 02:16:07 +0700 Subject: [PATCH 4/5] feat: apply metering to wasm64 modules --- dev-cli/container/src/emcc-lua | 6 +++--- dev-cli/container/src/node/package.json | 2 +- loader/test/process64/process.wasm | Bin 310998 -> 333145 bytes 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dev-cli/container/src/emcc-lua b/dev-cli/container/src/emcc-lua index de4e1436a..655fa1ab3 100644 --- a/dev-cli/container/src/emcc-lua +++ b/dev-cli/container/src/emcc-lua @@ -187,9 +187,9 @@ def main(): shell_exec(*cmd) # add metering library - # meter_cmd = ['node', '/opt/node/apply-metering.cjs'] - # shell_exec(*meter_cmd) - # shell_exec(*['rm', '/src/process.js']) + meter_cmd = ['node', '/opt/node/apply-metering.cjs'] + shell_exec(*meter_cmd) + shell_exec(*['rm', '/src/process.js']) if __name__ == '__main__': main() diff --git a/dev-cli/container/src/node/package.json b/dev-cli/container/src/node/package.json index d9c34ed0f..863982e20 100644 --- a/dev-cli/container/src/node/package.json +++ b/dev-cli/container/src/node/package.json @@ -21,7 +21,7 @@ "mime-types": "^2.1.35", "url-join": "^5.0.0", "warp-arbundles": "^1.0.4", - "wasm-metering": "^0.2.1" + "wasm-metering": "permaweb/wasm-metering#v0.2.2" }, "engines": { "node": ">=18" diff --git a/loader/test/process64/process.wasm b/loader/test/process64/process.wasm index 0a72630645645c5e4cde4ac80f9348fccab62f27..d8cff3439ed25c07a97bfa78ae403b07fb46feb1 100755 GIT binary patch literal 333145 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%0AL-K+aPnxua) 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