diff --git a/test/convert_image_to_webp.cpp b/test/convert_image_to_webp.cpp new file mode 100644 index 0000000..c762ba8 --- /dev/null +++ b/test/convert_image_to_webp.cpp @@ -0,0 +1,76 @@ +#include +#include +#include +#include "webp/encode.h" // WebP 头文件,用于编码 WebP +#include "stb_image.h" // stb_image 头文件,用于解码 PNG/JPG +#define STB_IMAGE_RESIZE_IMPLEMENTATION +#include "stb_image_resize.h" + +extern "C" { + + // 将输入的 JPG/PNG 数据转换为 WebP,并返回 WebP 数据 + unsigned char *convert_image_to_webp(const uint8_t *input_data, size_t input_size,int input_width,int input_height, int target_width, int target_height, float quality_factor, size_t *output_size, int preserve_alpha = 0,int is_original = 0) { + int width, height, channels; + + unsigned char *decoded_data = nullptr; + if (!is_original) { + decoded_data = stbi_load_from_memory(input_data, input_size, &width, &height, &channels, preserve_alpha ? 4 : 3); // 根据是否保留 alpha 通道加载 + } else { + decoded_data = (unsigned char *)input_data; + // 当使用原始数据时,需要确保width和height已设置 + width = input_width; + height = input_height; + channels = preserve_alpha ? 4 : 3; + } + // 使用 stb_image 解码输入图像(根据 preserve_alpha 决定加载通道数) + + if (!decoded_data) { + return nullptr; // 图像解码失败 + } + + // 如果需要调整尺寸,则进行调整 + unsigned char *resized_data = decoded_data; + if (target_width > 0 && target_height > 0) { + // 分配用于存储调整大小后图像的缓冲区 + resized_data = (unsigned char *)malloc(target_width * target_height * (preserve_alpha ? 4 : 3)); // 根据是否保留 alpha 通道调整缓冲区大小 + + if (!resized_data) { + // 内存分配失败的处理 + fprintf(stderr, "Failed to allocate memory for resized image.\n"); + stbi_image_free(decoded_data); // 释放原始解码数据 + return NULL; + } + + // 使用 stb_image_resize 调整图像大小 + int result = stbir_resize_uint8(decoded_data, width, height, 0, + resized_data, target_width, target_height, 0, preserve_alpha ? 4 : 3); + + if (!result) { + // 如果调整大小失败,释放已分配的内存 + fprintf(stderr, "Image resizing failed.\n"); + free(resized_data); + stbi_image_free(decoded_data); + return NULL; + } + } else { + target_width = width; + target_height = height; + } + + // 使用 libwebp 的有损编码函数(WebPEncodeRGB)将 RGB 图像编码为 WebP + unsigned char *webp_output = NULL; + if (preserve_alpha) { + *output_size = WebPEncodeRGBA(resized_data, target_width, target_height, target_width * 4, quality_factor, &webp_output); + } else { + *output_size = WebPEncodeRGB(resized_data, target_width, target_height, target_width * 3, quality_factor, &webp_output); + } + + // 释放解码后的图像内存 + stbi_image_free(decoded_data); + if (resized_data != decoded_data) { + free(resized_data); // 如果调整了大小,则释放调整大小后的数据 + } + + return webp_output; // 返回 WebP 编码后的数据 + } +} \ No newline at end of file diff --git a/test/convert_image_to_webp.js b/test/convert_image_to_webp.js index 6c4e755..826656c 100644 --- a/test/convert_image_to_webp.js +++ b/test/convert_image_to_webp.js @@ -1 +1,1782 @@ -var Module=typeof Module!="undefined"?Module:{};var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=(filename,binary)=>{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)}return ret};readAsync=(filename,onload,onerror,binary=true)=>{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)})};if(!Module["thisProgram"]&&process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);if(typeof module!="undefined"){module["exports"]=Module}process.on("uncaughtException",ex=>{if(ex!=="unwind"&&!(ex instanceof ExitStatus)&&!(ex.context instanceof ExitStatus)){throw ex}});quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.startsWith("blob:")){scriptDirectory=""}else{scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}{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(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){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var wasmMemory;var ABORT=false;var EXITSTATUS;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;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)}var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];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(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){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 addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";var isDataURI=filename=>filename.startsWith(dataURIPrefix);var isFileURI=filename=>filename.startsWith("file://");var wasmBinaryFile;wasmBinaryFile="convert_image_to_webp.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(!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){return new Promise((resolve,reject)=>{readAsync(binaryFile,response=>resolve(new Uint8Array(response)),reject)})}}return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).then(receiver,reason=>{err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}return instantiateArrayBuffer(binaryFile,imports,callback)}function createWasm(){var info={"env":wasmImports,"wasi_snapshot_preview1":wasmImports};function receiveInstance(instance,module){wasmExports=instance.exports;wasmMemory=wasmExports["memory"];updateMemoryViews();addOnInit(wasmExports["__wasm_call_ctors"]);removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);return false}}instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult);return{}}function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};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>>1];case"i32":return HEAP32[ptr>>2];case"i64":abort("to do getValue(i64) use WASM_BIGINT");case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];case"*":return HEAPU32[ptr>>2];default:abort(`invalid type for getValue: ${type}`)}}var noExitRuntime=Module["noExitRuntime"]||true;var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;var UTF8ArrayToString=(heapOrArray,idx,maxBytesToRead)=>{var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):"";var ___assert_fail=(condition,filename,line,func)=>{abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])};var _emscripten_memcpy_js=(dest,src,num)=>HEAPU8.copyWithin(dest,src,src+num);var getHeapMax=()=>268435456;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}var alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);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}}return false};var _fd_close=fd=>52;var convertI32PairToI53Checked=(lo,hi)=>hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN;function _fd_seek(fd,offset_low,offset_high,whence,newOffset){var offset=convertI32PairToI53Checked(offset_low,offset_high);return 70}var printCharBuffers=[null,[],[]];var printChar=(stream,curr)=>{var buffer=printCharBuffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}};var SYSCALLS={varargs:undefined,get(){var ret=HEAP32[+SYSCALLS.varargs>>2];SYSCALLS.varargs+=4;return ret},getp(){return SYSCALLS.get()},getStr(ptr){var ret=UTF8ToString(ptr);return ret}};var _fd_write=(fd,iov,iovcnt,pnum)=>{var num=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;for(var j=0;j>2]=num;return 0};var getCFunc=ident=>{var func=Module["_"+ident];return func};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)};var lengthBytesUTF8=str=>{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={"string":str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},"array":arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i{var numericArgs=!argTypes||argTypes.every(type=>type==="number"||type==="boolean");var numericRet=returnType!=="string";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return(...args)=>ccall(ident,returnType,argTypes,args,opts)};var wasmImports={__assert_fail:___assert_fail,emscripten_memcpy_js:_emscripten_memcpy_js,emscripten_resize_heap:_emscripten_resize_heap,fd_close:_fd_close,fd_seek:_fd_seek,fd_write:_fd_write};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["__wasm_call_ctors"])();var _malloc=Module["_malloc"]=a0=>(_malloc=Module["_malloc"]=wasmExports["malloc"])(a0);var _free=Module["_free"]=a0=>(_free=Module["_free"]=wasmExports["free"])(a0);var _convert_image_to_webp=Module["_convert_image_to_webp"]=(a0,a1,a2,a3,a4,a5)=>(_convert_image_to_webp=Module["_convert_image_to_webp"]=wasmExports["convert_image_to_webp"])(a0,a1,a2,a3,a4,a5);var stackSave=()=>(stackSave=wasmExports["stackSave"])();var stackRestore=a0=>(stackRestore=wasmExports["stackRestore"])(a0);var stackAlloc=a0=>(stackAlloc=wasmExports["stackAlloc"])(a0);var dynCall_jiiiii=Module["dynCall_jiiiii"]=(a0,a1,a2,a3,a4,a5)=>(dynCall_jiiiii=Module["dynCall_jiiiii"]=wasmExports["dynCall_jiiiii"])(a0,a1,a2,a3,a4,a5);var dynCall_jiji=Module["dynCall_jiji"]=(a0,a1,a2,a3,a4)=>(dynCall_jiji=Module["dynCall_jiji"]=wasmExports["dynCall_jiji"])(a0,a1,a2,a3,a4);Module["cwrap"]=cwrap;Module["getValue"]=getValue;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run(); +// 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 : {}; + +// --pre-jses are emitted after the Module integration code, so that they can +// refer to Module (if they choose; they can also define Module) + + +// 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); + + if (typeof module != 'undefined') { + module['exports'] = Module; + } + + process.on('uncaughtException', (ex) => { + // suppress ExitStatus exceptions from showing an error + if (ex !== 'unwind' && !(ex instanceof ExitStatus) && !(ex.context instanceof ExitStatus)) { + throw ex; + } + }); + + 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; + } + // 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') { + err('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. + +// 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, +/** @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); +} +// 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)>>2)] = 0x02135467; + HEAPU32[(((max)+(4))>>2)] = 0x89BACDFE; + // Also test the global address 0 for integrity. + HEAPU32[((0)>>2)] = 1668509029; +} + +function checkStackCookie() { + if (ABORT) return; + var max = _emscripten_stack_get_end(); + // See writeStackCookie(). + if (max == 0) { + max += 4; + } + var cookie1 = HEAPU32[((max)>>2)]; + var cookie2 = HEAPU32[(((max)+(4))>>2)]; + 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)>>2)] != 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 __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(); + + + callRuntimeCallbacks(__ATINIT__); +} + +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 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); + + // 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 +// show errors on likely calls to FS when it was not included +var FS = { + error() { + abort('Filesystem support (FS) was not included. The problem is that you are using files from JS, but files were not used from C/C++, so filesystem support was not auto-included. You can force-include filesystem support with -sFORCE_FILESYSTEM'); + }, + init() { FS.error() }, + createDataFile() { FS.error() }, + createPreloadedFile() { FS.error() }, + createLazyFile() { FS.error() }, + open() { FS.error() }, + mkdev() { FS.error() }, + registerDevice() { FS.error() }, + analyzePath() { FS.error() }, + + ErrnoError() { FS.error() }, +}; +Module['FS_createDataFile'] = FS.createDataFile; +Module['FS_createPreloadedFile'] = FS.createPreloadedFile; + +// 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 = 'convert_image_to_webp.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; + + + + wasmMemory = wasmExports['memory']; + + assert(wasmMemory, 'memory not found in wasm exports'); + updateMemoryViews(); + + 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}`); + return false; + } + } + + instantiateAsync(wasmBinary, wasmBinaryFile, info, receiveInstantiationResult); + return {}; // no exports yet; we'll fill them in later +} + +// Globals used by JS i64 conversions (see makeSetValue) +var tempDouble; +var tempI64; + +// 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)>>1)]; + case 'i32': return HEAP32[((ptr)>>2)]; + case 'i64': abort('to do getValue(i64) use WASM_BIGINT'); + case 'float': return HEAPF32[((ptr)>>2)]; + case 'double': return HEAPF64[((ptr)>>3)]; + case '*': return HEAPU32[((ptr)>>2)]; + default: abort(`invalid type for getValue: ${type}`); + } + } + + var noExitRuntime = Module['noExitRuntime'] || true; + + var ptrToString = (ptr) => { + assert(typeof ptr === 'number'); + // With CAN_ADDRESS_2GB or MEMORY64, pointers are already unsigned. + ptr >>>= 0; + 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)>>1)] = value; break; + case 'i32': HEAP32[((ptr)>>2)] = value; break; + case 'i64': abort('to do setValue(i64) use WASM_BIGINT'); + case 'float': HEAPF32[((ptr)>>2)] = value; break; + case 'double': HEAPF64[((ptr)>>3)] = value; break; + case '*': HEAPU32[((ptr)>>2)] = 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 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; + }; + + /** + * 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 ___assert_fail = (condition, filename, line, func) => { + abort(`Assertion failed: ${UTF8ToString(condition)}, at: ` + [filename ? UTF8ToString(filename) : 'unknown filename', line, func ? UTF8ToString(func) : 'unknown function']); + }; + + var _emscripten_memcpy_js = (dest, src, num) => HEAPU8.copyWithin(dest, src, src + num); + + var getHeapMax = () => + HEAPU8.length; + + var abortOnCannotGrowMemory = (requestedSize) => { + abort(`Cannot enlarge memory arrays to size ${requestedSize} bytes (OOM). Either (1) compile with -sINITIAL_MEMORY=X with X higher than the current value ${HEAP8.length}, (2) compile with -sALLOW_MEMORY_GROWTH which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -sABORTING_MALLOC=0`); + }; + var _emscripten_resize_heap = (requestedSize) => { + var oldSize = HEAPU8.length; + // With CAN_ADDRESS_2GB or MEMORY64, pointers are already unsigned. + requestedSize >>>= 0; + abortOnCannotGrowMemory(requestedSize); + }; + + var SYSCALLS = { + 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)>>2)]; + SYSCALLS.varargs += 4; + return ret; + }, + getp() { return SYSCALLS.get() }, + getStr(ptr) { + var ret = UTF8ToString(ptr); + return ret; + }, + }; + var _fd_close = (fd) => { + abort('fd_close called without SYSCALLS_REQUIRE_FILESYSTEM'); + }; + + var convertI32PairToI53Checked = (lo, hi) => { + assert(lo == (lo >>> 0) || lo == (lo|0)); // lo should either be a i32 or a u32 + assert(hi === (hi|0)); // hi should be a i32 + return ((hi + 0x200000) >>> 0 < 0x400001 - !!lo) ? (lo >>> 0) + hi * 4294967296 : NaN; + }; + function _fd_seek(fd,offset_low, offset_high,whence,newOffset) { + var offset = convertI32PairToI53Checked(offset_low, offset_high); + + + return 70; + ; + } + + var printCharBuffers = [null,[],[]]; + + var printChar = (stream, curr) => { + var buffer = printCharBuffers[stream]; + assert(buffer); + if (curr === 0 || curr === 10) { + (stream === 1 ? out : err)(UTF8ArrayToString(buffer, 0)); + buffer.length = 0; + } else { + buffer.push(curr); + } + }; + + var flush_NO_FILESYSTEM = () => { + // flush anything remaining in the buffers during shutdown + _fflush(0); + if (printCharBuffers[1].length) printChar(1, 10); + if (printCharBuffers[2].length) printChar(2, 10); + }; + + + var _fd_write = (fd, iov, iovcnt, pnum) => { + // hack to support printf in SYSCALLS_REQUIRE_FILESYSTEM=0 + var num = 0; + for (var i = 0; i < iovcnt; i++) { + var ptr = HEAPU32[((iov)>>2)]; + var len = HEAPU32[(((iov)+(4))>>2)]; + iov += 8; + for (var j = 0; j < len; j++) { + printChar(fd, HEAPU8[ptr+j]); + } + num += len; + } + HEAPU32[((pnum)>>2)] = num; + return 0; + }; + + 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 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 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; + }; + 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); + }; + 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 = { + '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 ret; + }, + 'array': (arr) => { + var ret = stackAlloc(arr.length); + writeArrayToMemory(arr, ret); + return ret; + } + }; + + function convertReturnValue(ret) { + if (returnType === 'string') { + + return UTF8ToString(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); + }; + +function checkIncomingModuleAPI() { + ignoredModuleProp('fetchSettings'); +} +var wasmImports = { + /** @export */ + __assert_fail: ___assert_fail, + /** @export */ + emscripten_memcpy_js: _emscripten_memcpy_js, + /** @export */ + emscripten_resize_heap: _emscripten_resize_heap, + /** @export */ + fd_close: _fd_close, + /** @export */ + fd_seek: _fd_seek, + /** @export */ + fd_write: _fd_write +}; +var wasmExports = createWasm(); +var ___wasm_call_ctors = createExportWrapper('__wasm_call_ctors'); +var _malloc = Module['_malloc'] = createExportWrapper('malloc'); +var _free = Module['_free'] = createExportWrapper('free'); +var _convert_image_to_webp = Module['_convert_image_to_webp'] = createExportWrapper('convert_image_to_webp'); +var _fflush = createExportWrapper('fflush'); +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'])(); +var dynCall_jiiiii = Module['dynCall_jiiiii'] = createExportWrapper('dynCall_jiiiii'); +var dynCall_jiji = Module['dynCall_jiji'] = createExportWrapper('dynCall_jiji'); + + +// include: postamble.js +// === Auto-generated postamble setup entry stuff === + +Module['cwrap'] = cwrap; +Module['getValue'] = getValue; +var missingLibrarySymbols = [ + 'writeI53ToI64', + 'writeI53ToI64Clamped', + 'writeI53ToI64Signaling', + 'writeI53ToU64Clamped', + 'writeI53ToU64Signaling', + 'readI53FromI64', + 'readI53FromU64', + 'convertI32PairToI53', + 'convertU32PairToI53', + 'zeroMemory', + 'exitJS', + 'growMemory', + 'isLeapYear', + 'ydayFromDate', + 'arraySum', + 'addDays', + 'inetPton4', + 'inetNtop4', + 'inetPton6', + 'inetNtop6', + 'readSockaddr', + 'writeSockaddr', + 'initRandomFill', + 'randomFill', + 'getCallstack', + 'emscriptenLog', + 'convertPCtoSourceLocation', + 'readEmAsmArgs', + 'jstoi_q', + 'getExecutableName', + 'listenOnce', + 'autoResumeAudioContext', + 'dynCallLegacy', + 'getDynCaller', + 'dynCall', + 'handleException', + 'keepRuntimeAlive', + 'runtimeKeepalivePush', + 'runtimeKeepalivePop', + 'callUserCallback', + 'maybeExit', + 'asmjsMangle', + 'asyncLoad', + 'alignMemory', + 'mmapAlloc', + 'HandleAllocator', + 'getNativeTypeSize', + 'STACK_SIZE', + 'STACK_ALIGN', + 'POINTER_SIZE', + 'ASSERTIONS', + 'uleb128Encode', + 'sigToWasmTypes', + 'generateFuncType', + 'convertJsFunctionToWasm', + 'getEmptyTableSlot', + 'updateTableMap', + 'getFunctionAddress', + 'addFunction', + 'removeFunction', + 'reallyNegative', + 'unSign', + 'strLen', + 'reSign', + 'formatString', + 'intArrayFromString', + 'intArrayToString', + 'AsciiToString', + 'stringToAscii', + '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', + 'getEnvStrings', + 'checkWasiClock', + 'wasiRightsToMuslOFlags', + 'wasiOFlagsToMuslOFlags', + 'createDyncallWrapper', + 'safeSetTimeout', + 'setImmediateWrapped', + 'clearImmediateWrapped', + 'polyfillSetImmediate', + 'getPromise', + 'makePromise', + 'idsToPromises', + 'makePromiseCallback', + 'ExceptionInfo', + 'findMatchingCatch', + 'Browser_asyncPrepareDataCounter', + 'setMainLoop', + 'getSocketFromFD', + 'getSocketAddress', + 'FS_createPreloadedFile', + 'FS_modeStringToFlags', + 'FS_getMode', + 'FS_stdin_getChar', + 'FS_createDataFile', + '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', + 'convertI32PairToI53Checked', + 'ptrToString', + 'getHeapMax', + 'abortOnCannotGrowMemory', + 'ENV', + 'MONTH_DAYS_REGULAR', + 'MONTH_DAYS_LEAP', + 'MONTH_DAYS_REGULAR_CUMULATIVE', + 'MONTH_DAYS_LEAP_CUMULATIVE', + 'ERRNO_CODES', + 'ERRNO_MESSAGES', + 'DNS', + 'Protocols', + 'Sockets', + 'timers', + 'warnOnce', + 'UNWIND_CACHE', + 'readEmAsmArgsArray', + 'jstoi_s', + 'wasmTable', + 'noExitRuntime', + 'getCFunc', + 'ccall', + 'freeTableIndexes', + 'functionsInTableMap', + 'setValue', + 'PATH', + 'PATH_FS', + 'UTF8Decoder', + 'UTF8ArrayToString', + 'UTF8ToString', + 'stringToUTF8Array', + 'stringToUTF8', + 'lengthBytesUTF8', + 'UTF16Decoder', + 'stringToUTF8OnStack', + 'writeArrayToMemory', + 'JSEvents', + 'specialHTMLTargets', + 'findCanvasEventTarget', + 'currentFullscreenStrategy', + 'restoreOldWindowedStyle', + 'ExitStatus', + 'flush_NO_FILESYSTEM', + 'promiseMap', + 'uncaughtExceptionCount', + 'exceptionLast', + 'exceptionCaught', + 'Browser', + 'getPreloadedImageData__data', + 'wget', + 'SYSCALLS', + 'preloadPlugins', + 'FS_stdin_getChar_buffer', + 'FS', + '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 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(); + + if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized'](); + + assert(!Module['_main'], 'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'); + + 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 + flush_NO_FILESYSTEM(); + } 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.'); + warnOnce('(this may also be due to not including full filesystem support - try building with -sFORCE_FILESYSTEM)'); + } +} + +if (Module['preInit']) { + if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']]; + while (Module['preInit'].length > 0) { + Module['preInit'].pop()(); + } +} + +run(); + +// end include: postamble.js + diff --git a/test/convert_image_to_webp.wasm b/test/convert_image_to_webp.wasm index 6c1de67..84a6676 100755 Binary files a/test/convert_image_to_webp.wasm and b/test/convert_image_to_webp.wasm differ diff --git a/test/convert_image_to_webp.wasm.map b/test/convert_image_to_webp.wasm.map new file mode 100644 index 0000000..65f0829 --- /dev/null +++ b/test/convert_image_to_webp.wasm.map @@ -0,0 +1 @@ +{"version":3,"sources":["../stb_image_resize.h","../convert_image_to_webp.cpp","../../emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/math.h","../stb_image.c","../../emsdk/emscripten/system/lib/libc/musl/src/stdlib/bsearch.c","../../emsdk/emscripten/system/lib/libc/emscripten_memcpy.c","../../emsdk/emscripten/system/lib/libc/musl/src/string/memmove.c","../../emsdk/emscripten/system/lib/libc/musl/src/string/memset.c","../../emsdk/emscripten/system/lib/libc/musl/src/stdio/__lockfile.c","../../emsdk/emscripten/system/lib/libc/musl/src/stdio/fflush.c","../../emsdk/emscripten/system/lib/libc/musl/src/errno/__errno_location.c","../../emsdk/emscripten/system/lib/libc/musl/src/stdio/__stdio_seek.c","../../emsdk/emscripten/system/lib/libc/musl/src/stdio/__stdio_write.c","../../emsdk/emscripten/system/lib/libc/musl/src/stdio/__stdio_close.c","../../emsdk/emscripten/system/lib/libc/musl/src/stdio/fprintf.c","../../emsdk/emscripten/system/lib/libc/musl/src/math/ldexp.c","../../emsdk/emscripten/system/lib/libc/musl/src/math/__math_divzero.c","../../emsdk/emscripten/system/lib/libc/musl/src/internal/libm.h","../../emsdk/emscripten/system/lib/libc/musl/src/math/__math_invalid.c","../../emsdk/emscripten/system/lib/libc/musl/src/math/log.c","../../emsdk/emscripten/system/lib/libc/musl/src/math/log10.c","../../emsdk/emscripten/system/lib/libc/musl/src/unistd/lseek.c","../../emsdk/emscripten/system/lib/pthread/library_pthread_stub.c","../../emsdk/emscripten/system/lib/libc/musl/src/stdio/ofl.c","../../emsdk/emscripten/system/lib/libc/musl/src/math/__math_xflow.c","../../emsdk/emscripten/system/lib/libc/musl/src/math/__math_oflow.c","../../emsdk/emscripten/system/lib/libc/musl/src/math/__math_uflow.c","../../emsdk/emscripten/system/lib/libc/musl/src/math/fabs.c","../../emsdk/emscripten/system/lib/libc/musl/src/math/pow.c","../../emsdk/emscripten/system/lib/libc/musl/src/math/__math_invalidf.c","../../emsdk/emscripten/system/lib/libc/musl/src/math/__math_xflowf.c","../../emsdk/emscripten/system/lib/libc/musl/src/math/__math_oflowf.c","../../emsdk/emscripten/system/lib/libc/musl/src/math/__math_uflowf.c","../../emsdk/emscripten/system/lib/libc/musl/src/math/powf.c","../../emsdk/emscripten/system/lib/libc/musl/src/stdlib/qsort.c","../../emsdk/emscripten/system/lib/libc/musl/src/internal/atomic.h","../../emsdk/emscripten/system/lib/libc/musl/src/stdlib/qsort_nr.c","../../emsdk/emscripten/system/lib/libc/musl/src/math/scalbn.c","../../emsdk/emscripten/system/lib/libc/musl/src/string/strcmp.c","../../emsdk/emscripten/system/lib/libc/musl/src/string/strncmp.c","../../emsdk/emscripten/system/lib/libc/musl/src/stdlib/strtol.c","../../emsdk/emscripten/system/lib/libc/musl/include/ctype.h","../../emsdk/emscripten/system/lib/libc/musl/src/stdio/__towrite.c","../../emsdk/emscripten/system/lib/libc/musl/src/string/memchr.c","../../emsdk/emscripten/system/lib/libc/musl/src/string/strnlen.c","../../emsdk/emscripten/system/lib/libc/musl/src/math/frexp.c","../../emsdk/emscripten/system/lib/libc/musl/src/stdio/fwrite.c","../../emsdk/emscripten/system/lib/libc/musl/src/stdio/vfprintf.c","../../emsdk/emscripten/system/lib/libc/musl/include/math.h","../../emsdk/emscripten/system/lib/libc/wasi-helpers.c","../../emsdk/emscripten/system/lib/libc/emscripten_syscall_stubs.c","../../emsdk/emscripten/system/lib/libc/musl/src/unistd/getpid.c","../../emsdk/emscripten/system/lib/pthread/pthread_self_stub.c","../../emsdk/emscripten/system/lib/libc/musl/src/multibyte/wcrtomb.c","../../emsdk/emscripten/system/lib/libc/musl/src/multibyte/wctomb.c","../../emsdk/emscripten/system/lib/libc/emscripten_get_heap_size.c","../../emsdk/emscripten/system/lib/libc/sbrk.c","../../emsdk/emscripten/system/lib/dlmalloc.c","../../emsdk/emscripten/system/lib/compiler-rt/lib/builtins/multi3.c","../../emsdk/emscripten/system/lib/compiler-rt/lib/builtins/ashlti3.c","../../emsdk/emscripten/system/lib/compiler-rt/lib/builtins/lshrti3.c","../../emsdk/emscripten/system/lib/compiler-rt/lib/builtins/trunctfdf2.c","../../emsdk/emscripten/system/lib/compiler-rt/lib/builtins/fp_trunc_impl.inc","../../emsdk/emscripten/system/lib/compiler-rt/lib/builtins/fp_trunc.h","../../b/s/w/ir/x/w/install/emscripten/system/lib/compiler-rt/emscripten_tempret.s","../../emsdk/emscripten/system/lib/compiler-rt/stack_limits.S","../../emsdk/emscripten/system/lib/compiler-rt/stack_ops.S"],"names":[],"mappings":"w2FAg6EA,yC,kFACyC,OAAc,OAAS,OAAS,OACjE,OAAe,OAAU,OAAU,OACtB,OAFV,0EAAP,qBA9BJ,mH,4MAMwB,QAAS,QAAS,QAAU,QAAU,QAA1D,6BACkC,QAAG,QAAG,QAAG,QAAG,QAA9C,6BAC4B,QAAU,QAAtC,uBACkB,qBAAF,OACD,cAAF,OAER,kBAAD,mBACA,eAEoC,QAAY,QACZ,QAAa,QACb,QAAe,QAAO,QACtB,QAAiB,QACjB,QAAY,OAAc,OAJzD,6CAAF,OAMP,YAEO,OAAP,SACJ,8BA7PA,2B,yDACoB,OAAhB,OAAc,OACE,OAAhB,OAAc,OACG,OAAjB,OAAe,OACE,OAAjB,OAAe,OACE,OAAjB,OAAe,OACnB,IAGA,iJ,yDACe,OAAX,OAAS,OACE,OAAX,OAAS,OACE,OAAX,OAAS,OACE,OAAX,OAAS,OAEL,sCAEyB,cAAzB,OAAuB,OACE,cAAzB,OAAuB,OACE,cAAzB,OAAuB,OACE,cAAzB,OAAuB,OAC3B,GAGqC,OAAM,OAAN,KAAiB,OAAM,OAAN,KAAF,OAAoB,OAAK,OAAF,OAAN,OAAjE,OAAuB,OACQ,OAAM,OAAN,KAAiB,OAAM,OAAN,KAAF,OAAoB,OAAK,OAAF,OAAN,OAA/D,OAAqB,OAEI,OAAK,OAAM,OAAN,KAAF,OAAoB,OAAK,OAAF,OAAN,OAA7C,OAAuB,OACA,OAAK,OAAM,OAAN,KAAF,OAAoB,OAAK,OAAF,OAAN,OAA3C,OAAqB,QAE7B,IAGA,+C,wCACQ,aACiC,OAAM,OAA5B,uBAAF,QACT,aACiC,OAAM,OAA5B,uBAAF,QACa,OAA1B,OAAwB,OACA,OAAxB,OAAsB,OAC1B,mBAGA,gU,0BACsD,OAAM,OAAmB,OAAM,OAA9D,QAAf,OAC8C,OAAM,OAAiB,OAAM,OAA3D,QAAhB,OAEwD,OAAM,OAAkB,OAAM,OAAmB,OAAM,OAAS,OAAM,OAA9F,YAApC,OAAkC,QAC0B,OAAM,OAAkB,OAAM,OAAmB,OAAM,OAAS,OAAM,OAA9F,YAApC,OAAkC,QAGF,OAAc,WAA9C,OAA8B,QAEO,OAAM,QAA4B,WAAvE,OAAmC,QAC2C,OAAzC,MAA+C,WAApF,OAAmC,QACA,OAAM,QAA0B,WAAnE,OAAiC,QACyC,OAAvC,MAA6C,WAAhF,OAAiC,QACL,OAAM,OAAU,OAAa,WAAf,OAAsB,OAAM,OAAR,OAAiB,WAA/E,OAAyB,QACM,OAAM,OAAW,OAAM,OAAR,OAAiB,WAA/D,OAA6B,QACJ,OAAM,OAAW,OAAM,OAAR,OAAmB,OAAM,QAAR,OAAgC,WAAzF,OAAuB,QACI,OAAM,OAAW,OAAM,OAAR,OAAiB,WAA3D,OAAyB,QAEzB,uDACA,6EACA,uDACA,+EAEiC,QAA7B,kBAIA,QAA6B,eAA7B,GAIA,QAAyB,gBAEtB,QAAM,UAA+B,QAAM,UAAR,UACpC,QAAM,UAAR,UAAqC,QAAM,UAAR,UACjC,QAAM,UAAR,UAA6B,QAAM,UAAR,UACzB,QAAM,UAAR,UAA2B,QAAM,UAAR,UAH7B,0BAYJ,4tB,+GACqD,OAAxB,MAAlB,OAEkB,gBAAwB,WAAxB,GAAgD,OAAM,OAAW,OAAM,OAAR,OAAmC,OAAjB,qBAAF,YAA/E,IAArB,OACsB,gBAAyB,WAAzB,GAAkD,OAAM,OAAW,OAAM,OAAR,OAAoC,OAAjB,qBAAF,YAAlF,IAAtB,OAgBJ,6EACA,8EAEI,OAAM,OAAS,WAAI,qBAAG,OAAM,OAAS,YAArC,iBACA,cAEJ,6EACA,6EAEI,OAAM,OAAkB,WAAxB,kBACA,cACA,OAAM,OAAgB,WAAtB,kBACA,cAEA,OAAc,WAAd,kBACM,0BAEJ,OAAK,WAAmC,SAAK,OAAK,WAApD,KACA,kJAGA,QAAiB,QAAM,SAAT,UAAd,uBACA,gBAEJ,wFAEK,uBAAD,sBACA,gBAEJ,2FAEI,QAAwB,QAAF,UAAtB,uBACA,gBAEG,QAAY,aAAnB,aAEmB,QAAnB,QAAiB,SACU,QAA3B,QAAyB,SAEL,QAApB,QAAkB,SACU,QAA5B,QAA0B,SAEJ,QAAtB,QAAoB,SACN,QAAd,QAAY,SACC,QAAb,QAAW,SACa,QAAxB,QAAsB,SACA,QAAtB,QAAoB,SACD,QAAnB,QAAiB,SAEqD,QAAM,SAAmB,QAAM,SAA9D,WAAvC,QAAqC,UACiC,QAAM,SAAmB,QAAM,SAA9D,WAAvC,QAAqC,UACiC,QAAM,SAAmB,QAAM,SAA9D,WAAvC,QAAqC,UACiC,QAAM,SAAmB,QAAM,SAA9D,WAAvC,QAAqC,UACiC,QAAM,SAAmB,QAAM,SAA9D,WAAvC,QAAqC,UACiC,QAAM,SAAmB,QAAM,SAA9D,WAAvC,QAAqC,UAEJ,QAAM,SAAW,QAAM,SAAR,UAAiB,eAAjE,QAA+B,UACF,QAAM,SAAU,QAAM,UAA+B,eAAvC,UAA3C,QAA2B,SAI6B,QAAxD,QAA8B,SACE,6CAAhC,QAA8B,SACA,6CAA9B,QAA4B,SACE,6CAA9B,QAA4B,SACN,6CAAtB,QAAoB,SAEa,QAA7B,kBAEA,QAAwB,cACJ,6CAApB,QAAkB,UACI,8CAAtB,QAAoB,UAEpB,mJACJ,GAG8B,6CAA1B,QAAwB,SACJ,6CAApB,QAAkB,UAClB,QAAoB,eAEpB,oJAMJ,QAA8B,eAEL,QAAM,SAAyB,QAAM,SAAyB,QAAM,SAAmB,QAAM,SAAkB,QAAM,SAAkB,QAAM,SAAS,QAAM,SAArL,uBACyB,QAAM,SAAuB,QAAM,SAAuB,QAAM,SAAiB,QAAM,SAAgB,QAAM,SAAgB,QAAM,SAAS,QAAM,SAA3K,uBAIiC,QAA7B,kBAC4B,QAA5B,QAE8B,QAA9B,MAWJ,cACJ,mCC72EA,yP,0FAGuB,WACV,OAAD,QACqC,OAAY,OAAwC,wBAA1E,6DAAF,OACjB,GACoC,OAAnB,OAEL,OAAF,OACG,OAAF,OACI,wBAAF,QAIR,kBAAD,mBACA,cAI0B,OAAf,OACX,OAAa,WAAI,oBAAG,OAAc,WAAlC,gBAEuC,OAAe,OAAF,OAAmB,wBAAH,OAApC,OAAnB,OAER,kBAAD,iBAEQ,aAAR,oBACgB,OAAhB,IACA,cAI4B,OAAc,OAAO,OACrB,OAAc,OAAc,OAAkB,wBADjE,0BAAT,OAGC,OAAD,MAEQ,aAAR,oBACK,OAAL,KACgB,OAAhB,IACA,cAER,GACmB,OAAF,OACG,OAAF,QAIH,WACX,gBAC8B,OAAc,OAAc,OAAe,OAAa,WAAK,OAA5E,gCAAd,OAAY,OACjB,GACiC,OAAc,OAAc,OAAe,OAAa,WAAK,OAA3E,gCAAd,OAAY,QAID,OAAhB,IACI,OAAgB,OAAH,OAAb,oBACK,QAAL,OAGG,QAAP,SACJ,kCDwxBJ,iB,sBACW,OAAM,cAAN,WAAP,KA6BJ,qB,iCACyC,OAAQ,OAAtC,QAA6C,WAApD,qBAdJ,iI,iCACI,gDACA,sEAE0B,OAAtB,eAC0C,OAAzB,wBAAiC,OAAU,OAAD,cAA1C,SAAkD,cAAvD,mEAAZ,UAE0C,OAAzB,wBAAiC,OAAQ,OAAzC,SAAgD,cAAM,OAAF,OAAzD,mEAAZ,QACR,4BAkBA,iC,+CAC8B,OAAtB,eACO,OAAP,UAEQ,OAA4C,OAAQ,OAAvC,QAA8C,WAAhD,OAAnB,QACR,4BAGA,2B,0BACW,OAAM,QAC6B,OAAM,OAAmB,OAAM,OAAlE,QAAF,OADL,qBAKJ,2B,0BACW,OAAM,QAC6B,OAAM,OAAiB,OAAM,OAAhE,QAAF,OADL,oBAhDJ,iB,0BACiC,OAAY,OAAlC,MAAP,qBAwBJ,iG,iCAC8B,OAAtB,eAC0C,OAAzB,wBAAiC,OAAY,OAAF,cAA3C,SAAoD,cAAzD,mEAAZ,UAE0C,OAAzB,wBAAiC,OAAQ,OAAzC,SAAgD,cAArD,mEAAZ,QACR,4BAySA,2O,qEAEqD,OAAa,OAAQ,OAAY,OAAzD,YAArB,OAEsB,OAAtB,eAEmD,OAAzB,wBAAiC,OAAY,OAAF,cAA3C,SAA4D,OAAF,OAA9E,OAGC,WAAK,WAAI,OAAF,OAAd,gBAK2C,OAAG,OAAmB,OAAa,OAA1E,6DAEuC,OAAQ,OAAa,OAAgB,OAAe,OAAyC,OAAc,OAArC,QAAgE,OAAc,OAAQ,OAAa,OAA1D,kBAAtJ,gBAPiC,yBAArC,KASJ,GAGsD,OAAzB,wBAAiC,OAAQ,OAAzC,SAAwD,OAAF,OAAzE,OAGC,WAAK,WAAI,OAAF,OAAd,gBAIqB,OAAmC,OAAQ,OAAvC,QAAF,OAAf,OAEqC,OAAY,OAAkB,OAAa,OAApF,6DAEyC,OAAQ,OAAa,OAAiB,OAAgB,OAAyC,OAAc,OAArC,QAAgE,OAAc,OAAQ,OAAa,OAA1D,kBAA1J,gBARiC,yBAArC,KAWyC,OAAc,OAAc,OAAQ,OAAa,OAAY,OAAtG,eAER,oBA2zBA,6P,0BAEwB,OAAY,OAA1B,OACgD,OAAY,OAArC,wBAAsD,OAAU,OAAD,cAA/D,SAA+E,OAAF,OAApG,OAEN,sDAEO,WAAK,WAAI,OAAY,OAAd,OAAd,gBAEU,gBACF,WAAuB,WAEY,OAAG,OAAsB,OAAa,OAAY,OAAzF,6DAEA,0GAEI,OAAY,QAAwB,WAApC,kBAGO,WAAoB,OAAY,QAAd,OAAzB,gBAEQ,OAAY,QAA8B,OAAY,QAAf,OAAvC,kBAIA,OAAoC,YACpC,OAAuC,YACvC,OAAsC,YACtC,GAIA,OAAsC,2BACC,OAAY,QAAwB,WAAO,OAAY,QAAd,OAAhF,OAAoC,QAd5C,MAoBA,OAAY,QAAwB,WAApC,kBACoC,OAAY,OAAhD,OAEG,WAAmB,OAAY,QAAd,OAAxB,gBACwC,OAAY,OAAY,QAA0B,WAAtF,MADJ,KAIkC,OAAY,OAA9C,MAvCmC,yBAAvC,KA2CJ,mBAgDA,2N,0BAEwB,OAAY,OAA1B,OACS,OAAY,OAAvB,OAC8C,OAAY,OAArC,wBAAsD,OAAQ,OAA9D,SAA6E,OAAF,OAA9F,OACa,OAAY,QAA3B,OACQ,OAAY,OAAU,OAAF,OAA5B,OAEJ,uDAEU,OAAD,WAAF,OAAiB,WAAI,OAAF,OAA1B,gBAK6C,OAAG,OAAkB,OAAa,OAAY,OAAvF,6DAEA,0GAEI,OAAkB,WAAI,qBAAG,OAAsB,OAAH,OAA5C,iBACA,GAEqB,OAAY,OAArC,MAEsC,OAAY,OAAlD,MAGI,OAAY,QAAwB,WAApC,kBACmC,OAAY,OAA/C,QAEG,WAAoB,OAAY,QAAd,OAAzB,gBACuC,OAAY,OAAY,QAA0B,WAArF,OADJ,KAIoC,OAAY,OAAhD,OAxBgC,yBAApC,KA2ByB,OAAY,OAAY,OAAjD,MACJ,kBEpiDA,W,sBAAuH,OAAhB,KAAP,KFgNhG,W,sBAEI,eAlFJ,yF,iCACsB,OAAM,cAAlB,OACW,OAAF,cAAT,OACN,yEAEgB,OAAL,MAAT,OAEE,OAAK,OAAH,OAAF,oBACA,mBAGiB,OAAF,cAAT,OACF,OAAK,OAAH,OAAF,kBACA,iBAEQ,OAAI,OAAF,OAAO,OAAF,OAAf,QAEZ,2BEjFA,W,sBAAuH,OAAhB,KAAP,MFoFhG,uC,0BACI,yEACc,OAAM,cAAR,cAAZ,qBAIJ,qC,iCAGoB,OAAL,MAAT,OAEE,OAAE,cAAF,oBACW,OAAF,cAAT,UAEA,iBACR,2BAmDA,S,sBAEI,aAlDJ,6F,iCAGoB,OAAL,MAAT,OAEE,OAAE,cAAF,oBACY,OAAE,OAAD,OAAM,cAAE,qBAAX,qBAAgB,cAA1B,UACK,OAAE,cAAF,kBACO,OAAS,OAAO,OAAF,cAAP,qBAAT,qBAAsB,cAAhC,UAEJ,iBACJ,2BA2CA,S,sBAEI,aA1CJ,6F,iCAGoB,OAAL,MAAT,OAEE,OAAE,cAAF,oBACW,OAAE,OAAD,OAAgB,cAAP,qBAAZ,0BAAT,UACK,OAAE,cAAF,kBACM,OAAO,OAAQ,cAAE,qBAAZ,qBAAP,0BAAT,UAEJ,iBACJ,4BAGA,iG,iCAGoB,OAAL,MAAT,OAEE,OAAE,cAAF,oBACa,OAAE,OAAD,OAAS,cAAE,qBAAd,qBAAoB,cAA/B,UACK,OAAE,cAAF,kBACQ,OAAS,OAAU,cAAJ,qBAAR,qBAAT,qBAAyB,cAApC,UAEJ,iBACJ,4BA6KA,mH,gEACoC,mBAAE,OAA5B,OACiC,OAAmB,OAAF,OAAlD,OACiC,OAAmB,OAAF,OAAlD,OAEiC,OAAiC,OAAF,OAAe,OAAF,OAA7E,OACiC,OAAiC,OAAF,OAAe,OAAF,OAA7E,OAEe,OAAmB,OAAF,OAAe,OAAF,OAAlD,OAAiB,OACY,uBAA8B,OAApC,KAAD,iEAAtB,OAAe,OACa,YAA8B,kBAApC,KAAD,iEAArB,OAAc,OACnB,GA3FA,iB,6BACY,OAAa,OAAb,kBAAR,MAMJ,mC,sDAC6C,OAAQ,OAArC,QAAR,OACI,OAAa,OAAM,OAAD,OAAK,OAAF,OAArB,kBAAR,qBAoGJ,oX,oEAEU,gBAGN,qOAEkB,OAAlB,OAAgB,OACE,OAAlB,OAAgB,OAEhB,uFAEO,WAAK,WAAK,OAAgB,OAAF,OAAjB,OAAd,gBAEoC,OAAI,OAAF,OAAH,KAAqB,cAA9C,OAC0C,OAAzB,wBAAiC,OAAO,OAAmB,OAAF,OAAuB,OAAF,cAA9E,WAAvB,OAAkB,OAAlB,kBAAqB,OAGjB,OAAO,QAAI,OAAkB,OAAlB,yCAAX,eAEkB,yBAAlB,OAAgB,OACf,yBACD,GAGY,OAAkB,OAAlB,yBAAH,sBAbiC,yBAAlD,KAsBA,sFACA,2FAGmB,QAAF,kBAAJ,QAEN,aAAK,YAAK,QAAgB,QAAF,UAAjB,UAAd,qBAC4B,QAAxB,QAAkB,QAAlB,yBAAqB,4BADyB,+BAAlD,KAGS,QAAgB,QAAF,UAAhB,QAAkC,YAAE,eAA3C,qBAEQ,QAAkB,QAAlB,+EACA,GAGc,QAAa,SAAK,QAAF,UAAI,eAAtC,QAAgB,SAN8B,+BAAlD,KAQJ,uBAjEA,mH,gEACmC,mBAAE,OAA3B,OACgC,OAAkB,OAAF,OAAhD,OACgC,OAAkB,OAAF,OAAhD,OAEiC,OAAgC,OAAc,OAAF,cAA7E,OACiC,OAAgC,OAAc,OAAF,cAA7E,OAEc,OAAkB,OAAc,OAAF,cAAjD,OAAiB,OACa,uBAA+B,OAArC,KAAD,iEAAvB,OAAgB,OACa,YAA+B,kBAArC,KAAD,iEAAtB,OAAe,OACpB,IAyDA,qO,oEAGI,uNAEkB,OAAlB,OAAgB,OACE,OAAlB,OAAgB,OAEhB,uFAEO,WAAK,WAAK,OAAiB,OAAF,OAAlB,OAAd,gBAEqC,OAAI,OAAF,OAAH,KAAsB,cAAhD,OACI,OAAmB,OAAF,OAArB,OAC0C,OAAzB,wBAAiC,OAAO,OAAG,OAA3C,WAA0D,OAAF,OAA/E,OAAkB,OAAlB,kBAAqB,OAJ2B,yBAApD,KAaS,OAAiB,OAAF,OAAjB,OAAoC,WAAE,WAA7C,gBAEQ,OAAkB,OAAlB,2DACA,GAGc,OAAa,OAAK,OAAF,OAAI,WAAtC,OAAgB,OANgC,yBAApD,KAQJ,mBAGA,8jB,8DACmD,OAAa,OAAQ,OAAY,OAAzD,YAAnB,OACgD,OAAQ,OAArC,QAAnB,OAIG,WAAK,WAAI,OAAF,OAAd,gBAGU,gBAEC,WAAK,WAAI,OAAF,OAAd,gBAEQ,OAAK,OAAa,OAAb,kBAAgB,OAAnB,OAAsB,oBAAG,OAAK,OAAa,OAAb,kBAAgB,OAAnB,OAA7B,gBAE4C,OAAc,OAAQ,OAAa,OAAG,OAAI,OAAa,OAAb,kBAAgB,OAAlB,OAA/D,cAAD,OAAd,OACG,OAAH,qBACV,GACS,OAAI,OAAa,OAAb,kBAAgB,OAAlB,OAAF,kBACL,IAR2B,yBAAnC,KAWA,yEACA,yEAEY,OAAF,cAAJ,OAEC,WAAK,WAAI,OAAF,OAAd,gBAEQ,OAAK,OAAa,OAAb,kBAAgB,OAAnB,OAAsB,oBAAG,OAAK,OAAa,OAAb,kBAAgB,OAAnB,OAA7B,gBACyF,QAAjE,QAAc,QAAQ,QAAa,QAAG,QAAI,QAAa,QAAb,yBAAgB,SAAlB,UAA/D,oBAAqF,4BAAtF,GACK,QAAI,QAAa,QAAb,yBAAgB,SAAlB,UAAF,uBACL,IAL2B,+BAAnC,KArB0B,+BAA9B,KAgCO,aAAK,YAAI,QAAF,UAAd,qBAIS,aAC0B,YAAc,QAAQ,QAAa,QAAG,QAA7D,oBAAD,SAAoE,sBAA3E,qBACQ,+BADR,KAGsB,QAAtB,QAAa,QAAb,yBAAmB,4BAEZ,YAAa,QAAb,yBAAgB,SAAG,eAA1B,qBAEI,QAAa,QAAb,yBAAkB,iCACd,+BAHR,KAMQ,QAAa,QAAb,yBAAgB,SAAK,QAAa,QAAb,yBAAgB,SAAlB,UAAqB,eAA1C,QACW,QAAkB,QAA7B,WAAF,QAEiC,QAAQ,QAArC,WAAF,QACC,aAAK,YAAI,QAAF,UAAd,qBAEQ,QAAI,QAAF,UAAU,QAAH,UAAT,uBACA,GAEuF,QAAc,QAAQ,QAAa,QAAG,QAAI,QAAF,UAA/D,oBAAD,SAA3C,QAAc,QAAQ,QAAa,QAAG,QAA7D,oBAAgE,SAL/C,+BAAtB,KApB+B,+BAAnC,KAgCO,aAAK,YAAI,QAAF,UAAd,qBACoC,QAAa,QAAb,yBAAgB,SAAI,QAAY,eAA3C,WAArB,QAAa,QAAb,yBAAmB,SADY,+BAAnC,KAEJ,wBA4cA,mC,iCAE2B,OAAY,OAAnC,MAGgC,OAA5B,eACoC,OAA+C,OAAY,OAA/C,QAAhD,SAEsC,OAA+C,OAAY,OAA/C,QAAlD,OAGR,mBAyMA,4+B,oCAEmB,QAAY,OAAvB,QACyC,QAAY,OAApC,QACU,QAAY,OAApC,QACQ,QAAY,OAAvB,QACgB,QAAY,OAA5B,QACO,QAAY,OAAnB,QACa,QAAY,OAAzB,QACsB,QAAY,QAAlC,QACgB,QAAY,OAA1B,QACiB,QAAY,QAA5B,QACM,kCAAT,QACoB,QAAY,QAAhC,QAEc,QAAd,OAEiB,QAAY,QAA1B,OACuB,QAAY,QAAtC,OAC6B,QAAY,QAAzC,OACqB,QAAY,QAAwB,WAAzD,OAGoB,QAAoB,OAAF,OAAtC,OAEC,QAAsB,OAAtB,kBAAmC,OAArC,OACE,QAAsB,OAAtB,kBAAmC,OAArC,OAEgB,QAAI,QAAY,OAAd,OAAJ,OAEjB,uDAEO,QAAkB,QAA2B,QAAlB,WAAgB,WAAlD,UAKoB,OACZ,YAAR,uCAEiB,OAAF,QAAM,YAAK,OAAH,OAAf,gBAE+C,yBAAvC,OACuD,QAAG,OAAa,OAAyB,OAA4B,QAAqB,OAA1H,gBAApB,OACa,QAAsB,OAAoB,OAAF,OAAxC,yBAAd,OACC,YAAK,YAAI,QAAF,OAAd,gBAEyB,QAAE,WAAnB,OACiC,OAAkB,OAAe,WAAjC,yBAAwC,OAA7E,QAAc,OAAe,WAA7B,kBAAkC,kCAHZ,iCAA1B,KALmB,iCAAvB,KAWA,GAES,QAAF,SAAM,aAAK,QAAH,UAAf,qBAE+C,+BAAvC,QACuD,SAAG,QAAa,QAAyB,QAA4B,SAAqB,QAA1H,uBAApB,QACa,SAAsB,QAAoB,QAAF,UAAxC,kCAAd,QACC,cAAK,aAAI,SAAF,UAAd,qBAEyB,SAAE,eAAnB,QACiC,QAAkB,QAAe,eAAjC,kCAAwC,QAA7E,SAAc,QAAe,eAA7B,yBAAkC,sCACG,QAAkB,QAAe,eAAjC,kCAAwC,QAA7E,SAAc,QAAe,eAA7B,yBAAkC,sCAJZ,iCAA1B,KALmB,iCAAvB,KAYA,GAES,QAAF,SAAM,aAAK,QAAH,UAAf,qBAE+C,+BAAvC,QACuD,SAAG,QAAa,QAAyB,QAA4B,SAAqB,QAA1H,uBAApB,QACa,SAAsB,QAAoB,QAAF,UAAxC,kCAAd,QACC,cAAK,aAAI,SAAF,UAAd,qBAEyB,SAAE,eAAnB,QACiC,QAAkB,QAAe,eAAjC,kCAAwC,QAA7E,SAAc,QAAe,eAA7B,yBAAkC,sCACG,QAAkB,QAAe,eAAjC,kCAAwC,QAA7E,SAAc,QAAe,eAA7B,yBAAkC,sCACG,QAAkB,QAAe,eAAjC,kCAAwC,QAA7E,SAAc,QAAe,eAA7B,yBAAkC,sCALZ,iCAA1B,KALmB,iCAAvB,KAaA,GAES,QAAF,SAAM,aAAK,QAAH,UAAf,qBAE+C,+BAAvC,QACuD,SAAG,QAAa,QAAyB,QAA4B,SAAqB,QAA1H,uBAApB,QACa,SAAsB,QAAoB,QAAF,UAAxC,kCAAd,QACC,cAAK,aAAI,SAAF,UAAd,qBAEyB,SAAE,eAAnB,QACiC,QAAkB,QAAe,eAAjC,kCAAwC,QAA7E,SAAc,QAAe,eAA7B,yBAAkC,sCACG,QAAkB,QAAe,eAAjC,kCAAwC,QAA7E,SAAc,QAAe,eAA7B,yBAAkC,sCACG,QAAkB,QAAe,eAAjC,kCAAwC,QAA7E,SAAc,QAAe,eAA7B,yBAAkC,sCACG,QAAkB,QAAe,eAAjC,kCAAwC,QAA7E,SAAc,QAAe,eAA7B,yBAAkC,sCANZ,iCAA1B,KALmB,iCAAvB,KAcA,GAES,QAAF,SAAM,aAAK,QAAH,UAAf,qBAE+C,+BAAvC,QACuD,SAAG,QAAa,QAAyB,QAA4B,SAAqB,QAA1H,uBAApB,QACa,SAAsB,QAAoB,QAAF,UAAxC,kCAAd,QACC,cAAK,aAAI,SAAF,UAAd,qBAEyB,SAAI,SAAF,UAAnB,QAEG,aAAK,YAAI,SAAF,UAAd,qBACyC,QAAkB,QAAiB,QAAF,UAAjC,kCAAwC,QAA7E,SAAc,QAAiB,QAAF,UAA7B,yBAAkC,sCADX,+BAA3B,KAJsB,iCAA1B,KALmB,iCAAvB,MAee,SAAY,SAAmB,SAAc,QAAF,UAAoB,SAAe,SAAU,SAAe,SAA9H,uBACJ,wBAwIA,qM,kCAC8B,OAAY,OAAlC,OACW,OAAY,OAAvB,OACgB,OAAY,OAA5B,OACO,OAAY,OAAnB,OACa,OAAY,OAAzB,OACW,OAAY,OAAvB,OACgB,OAAY,OAA1B,OACO,gCAAT,OAEiB,OAAY,QAA1B,OACkB,OAAY,QAAwB,WAAzD,OAEA,OAAY,QAAwB,WAApC,kBAGO,WAA2B,OAAY,QAAd,OAAhC,gBAEQ,OAAY,QAA2B,WAAK,kBAAG,OAAY,QAA6B,OAAY,OAAd,OAAtF,gBAEuB,OAAY,QAA6B,OAAF,OAA1D,OACoD,OAAa,OAAY,QAAyB,OAA/E,UAApB,OACgB,OAAY,OAAmB,OAAc,OAAF,OAAoB,OAAmB,OAAU,OAAe,OAAlI,iBAIA,OAAY,QAA8B,OAAY,QAAf,OAAvC,kBAIA,OAAoC,YACpC,OAAuC,YACvC,OAAsC,YACtC,GAIA,OAAsC,2BACC,OAAY,QAAwB,WAAO,OAAY,QAAd,OAAhF,OAAoC,QAtB5C,MA0BR,oBA1eA,mD,iCAE2B,OAAY,OAAnC,MAEO,OAAY,OAAsB,OAAY,OAAW,OAAY,OAAd,OAAuB,eAArF,UAGgC,OAA5B,eACoC,OAAY,OAAY,OAA5D,SAEsC,OAAY,OAAY,OAA9D,OAGR,mBApQA,yG,iCAI4C,OAAxC,OAAsC,QAElC,OAAY,QAAwB,WAApC,oBAEoB,OAAoC,YAAtC,WACuB,OAAzC,OAAuC,QAC3C,GAGyB,OAAY,QAA2B,OAAY,QAA4B,OAAY,QAAd,OAAzC,OAAsF,OAAY,QAAd,OAA3H,OAClB,kFAGuC,OAAY,QAAa,OAAmB,OAAY,QAAyB,WAA9G,UAAF,OACL,OAAgB,OAAY,YAAnC,UAEO,OAAP,qBA8hBJ,wtB,kCAEmB,OAAY,OAAvB,OACyC,OAAY,OAApC,OACU,OAAY,OAApC,OACQ,OAAY,OAAvB,OACsB,OAAY,QAAlC,OACuB,OAAY,OAAhC,OACiB,OAAY,QAAhC,OACc,OAAI,OAAY,QAAd,OAAhB,OAEiB,OAAY,QAA1B,OACuB,OAAY,QAAtC,OAC6B,OAAY,QAAzC,OACqB,OAAY,QAAwB,WAAzD,OAGC,OAAsB,OAAtB,kBAAmC,OAArC,OACE,OAAsB,OAAtB,kBAAmC,OAArC,OAEH,uDAES,OAAF,OAAM,WAAK,OAAH,OAAf,gBAE4B,OAAI,OAAF,OAAtB,OACoB,OAAoB,OAAF,OAAtC,OACgB,OAAsB,OAAoB,OAAF,WAAxC,qBAAd,OAEqD,OAAG,OAAa,OAAyB,OAA4B,OAAqB,OAA1H,gBAApB,OAEC,WAAR,uCAEe,WAAK,WAAI,OAAF,OAAd,gBAEyB,OAAE,WAAnB,OACqC,OAAkB,OAAe,WAAjC,yBAAwC,OAAjF,OAAkB,OAAe,WAAjC,kBAAsC,4BAHf,yBAA3B,KAKA,GAEO,WAAK,WAAI,OAAF,OAAd,gBAEyB,OAAE,WAAnB,OACqC,OAAkB,OAAe,WAAjC,4BAAwC,QAAjF,QAAkB,QAAe,eAAjC,yBAAsC,sCACG,QAAkB,QAAe,eAAjC,kCAAwC,QAAjF,QAAkB,QAAe,eAAjC,yBAAsC,sCAJf,+BAA3B,KAMA,GAEO,aAAK,YAAI,QAAF,UAAd,qBAEyB,QAAE,eAAnB,QACqC,QAAkB,QAAe,eAAjC,kCAAwC,QAAjF,QAAkB,QAAe,eAAjC,yBAAsC,sCACG,QAAkB,QAAe,eAAjC,kCAAwC,QAAjF,QAAkB,QAAe,eAAjC,yBAAsC,sCACG,QAAkB,QAAe,eAAjC,kCAAwC,QAAjF,QAAkB,QAAe,eAAjC,yBAAsC,sCALf,+BAA3B,KAOA,GAEO,aAAK,YAAI,QAAF,UAAd,qBAEyB,QAAE,eAAnB,QACqC,QAAkB,QAAe,eAAjC,kCAAwC,QAAjF,QAAkB,QAAe,eAAjC,yBAAsC,sCACG,QAAkB,QAAe,eAAjC,kCAAwC,QAAjF,QAAkB,QAAe,eAAjC,yBAAsC,sCACG,QAAkB,QAAe,eAAjC,kCAAwC,QAAjF,QAAkB,QAAe,eAAjC,yBAAsC,sCACG,QAAkB,QAAe,eAAjC,kCAAwC,QAAjF,QAAkB,QAAe,eAAjC,yBAAsC,sCANf,+BAA3B,KAQA,GAEO,aAAK,YAAI,QAAF,UAAd,qBAEyB,QAAI,QAAF,UAAnB,QAGG,aAAK,YAAI,QAAF,UAAd,qBAC6C,QAAkB,QAAiB,QAAF,UAAjC,kCAAwC,QAAjF,QAAkB,QAAiB,QAAF,UAAjC,yBAAsC,sCADf,+BAA3B,KALuB,+BAA3B,MA5CW,+BAAvB,KAuDJ,wBAz9CA,yB,6BACW,OAAI,OAAF,OAAF,oBAAQ,WAAR,GAAY,YAAZ,IAAP,MA4qBJ,szC,oCAEmB,QAAY,OAAvB,QACgB,QAAY,OAA5B,OACO,QAAY,OAAnB,OACa,QAAY,OAAzB,OACU,QAAY,OAAtB,OACwB,QAAY,OAAjC,OACyC,QAAzB,MAAhB,OACsB,QAAY,OAA9B,OACgB,QAAY,OAA5B,OACoC,OAAe,QAAG,QAAY,OAA/C,UAA0D,OAAF,OAA/E,OAC2B,QAAY,OAAa,OAAF,OAA7C,OACA,OAAU,QAAY,QAAd,OAAhB,OACS,gCAAT,OAEK,QAAY,QAAb,WAAJ,OAIA,OAAc,WAAmB,oBAAI,QAAE,WAAI,iBAAG,QAAK,QAAY,OAAf,OAAhD,iBAEO,WAAI,OAAF,OAAT,gBACW,YAAK,YAAI,QAAF,OAAd,gBACI,OAAc,OAAE,QAAD,OAAY,QAAF,OAAzB,kBAA8B,gBADP,2BAA3B,KADe,yBAAnB,KAGA,GAGI,WAAR,wCAGW,WAAI,OAAF,OAAT,gBAE6B,OAAI,QAAF,OAAvB,OACqC,OAAiB,OAAG,OAArC,UAAgD,QAAF,OAAlE,OACG,YAAK,YAAI,QAAF,OAAd,gBAC2E,OAAY,OAAoB,QAAF,OAArD,mBAA2D,cAA3G,OAAc,OAAqB,QAAF,OAAjC,mBAAsC,QADf,iCAA3B,KAJe,+BAAnB,KAOA,GAGO,YAAI,QAAF,UAAT,qBAE6B,QAAI,SAAF,UAAvB,QACqC,QAAiB,QAAG,QAArC,cAAgD,SAAF,UAAlE,QACG,cAAK,aAAI,SAAF,UAAd,qBACqG,QAAY,QAAoB,SAAF,UAArD,mBAAlC,yDAAxC,QAAc,QAAqB,SAAF,UAAjC,yBAAsC,SADf,iCAA3B,KAGM,SAAY,SAAK,eAAnB,OACmF,QAAY,QAAoB,QAAF,UAArD,0BAAuE,kBAAnI,QAAc,QAAqB,QAAF,UAAjC,yBAAkD,UARvC,+BAAnB,KAUA,GAGO,YAAI,QAAF,UAAT,qBAE6B,QAAI,SAAF,UAAvB,QACqC,QAAiB,QAAG,QAArC,cAAgD,SAAF,UAAlE,QACG,cAAK,aAAI,SAAF,UAAd,qBAC4E,QAAY,QAAoB,SAAF,eAAtD,oCAA4D,kBAA5G,QAAc,QAAqB,SAAF,UAAjC,yBAAsC,SADf,iCAA3B,KAJe,+BAAnB,KAOA,GAGO,YAAI,QAAF,UAAT,qBAE6B,QAAI,SAAF,UAAvB,QACqC,QAAiB,QAAG,QAArC,cAAgD,SAAF,UAAlE,QACG,cAAK,aAAI,SAAF,UAAd,qBACkG,QAAY,QAAoB,SAAF,eAAtD,oCAA4D,kBAA1F,QAAxC,QAAc,QAAqB,SAAF,UAAjC,yBAAsC,SADf,iCAA3B,KAGM,SAAY,SAAK,eAAnB,OACoF,QAAY,QAAoB,QAAF,eAAtD,oCAAwE,kBAApI,QAAc,QAAqB,QAAF,UAAjC,yBAAkD,UARvC,+BAAnB,KAUA,GAGO,YAAI,QAAF,UAAT,qBAE6B,QAAI,SAAF,UAAvB,QACqC,QAAiB,QAAG,QAArC,cAAgD,SAAF,UAAlE,QACG,cAAK,aAAI,SAAF,UAAd,qBACmF,QAAY,QAAoB,SAAF,eAApD,gDAA0D,UAApE,OAA/C,QAAc,QAAqB,SAAF,UAAjC,yBAAsC,SADf,iCAA3B,KAJe,+BAAnB,KAOA,GAGO,YAAI,QAAF,UAAT,qBAE6B,QAAI,SAAF,UAAvB,QACqC,QAAiB,QAAG,QAArC,cAAgD,SAAF,UAAlE,QACG,cAAK,aAAI,SAAF,UAAd,qBACyG,QAAY,QAAoB,SAAF,eAApD,gDAA0D,UAApE,OAA7B,QAAxC,QAAc,QAAqB,SAAF,UAAjC,yBAAsC,SADf,iCAA3B,KAGM,SAAY,SAAK,eAAnB,OAC2F,QAAY,QAAoB,QAAF,eAApD,gDAAsE,UAAhF,OAA3D,QAAc,QAAqB,QAAF,UAAjC,yBAAkD,UARvC,+BAAnB,KAUA,GAGO,YAAI,QAAF,UAAT,qBAE6B,QAAI,SAAF,UAAvB,QACqC,QAAiB,QAAG,QAArC,cAAgD,SAAF,UAAlE,QACG,cAAK,aAAI,SAAF,UAAd,qBAC2D,QAAY,QAAoB,SAAF,UAA7C,kCAAxC,QAAc,QAAqB,SAAF,UAAjC,yBAAsC,SADf,iCAA3B,KAJe,+BAAnB,KAOA,GAGO,YAAI,QAAF,UAAT,qBAE6B,QAAI,SAAF,UAAvB,QACqC,QAAiB,QAAG,QAArC,cAAgD,SAAF,UAAlE,QACG,cAAK,aAAI,SAAF,UAAd,qBACiF,QAAY,QAAoB,SAAF,UAA7C,kCAAtB,QAAxC,QAAc,QAAqB,SAAF,UAAjC,yBAAsC,SADf,iCAA3B,KAGM,SAAY,SAAK,eAAnB,OACmE,QAAY,QAAoB,QAAF,UAA7C,kCAApD,QAAc,QAAqB,QAAF,UAAjC,yBAAkD,UARvC,+BAAnB,KAWA,GAGA,2CAIE,SAAY,SAAM,eAApB,OAEU,SAAY,UAAb,eAAF,QAA+C,YAAI,QAAF,UAAxD,qBAE6B,QAAI,SAAF,UAAvB,QAGU,QAAc,QAAqB,QAAF,UAAjC,kCAAR,QAEF,SAAY,SAAK,eAAjB,uBACM,kCAC8C,QAApD,QAAc,QAAqB,QAAF,UAAjC,yBAAkD,UAG/C,cAAK,aAAI,SAAF,UAAd,qBAEQ,SAAK,QAAH,UAAF,yBACA,GAEqC,QAAzC,QAAc,QAAqB,SAAF,UAAjC,yBAAsC,6BALf,iCAA3B,KAZ8D,+BAAlE,MAsBA,QAAgB,eAAhB,qBAEU,SAAY,UAAb,eAAF,QAA+C,YAAE,eAAxD,qBAEW,cAAK,aAAI,SAAF,UAAd,qBACI,QAAc,QAAE,SAAD,UAAY,SAAF,UAAzB,yBAA8B,qBADP,iCAA3B,KAF0D,+BAA9D,KAKS,QAAF,QAAW,YAAI,QAAF,UAApB,qBAEW,cAAK,aAAI,SAAF,UAAd,qBACI,QAAc,QAAE,SAAD,UAAY,SAAF,UAAzB,yBAA8B,qBADP,iCAA3B,KAF0B,+BAA9B,MAMR,uBAliBA,iB,0BACiC,OAAY,OAAlC,MAAP,qBAkkBJ,88B,kCAEmB,OAAY,OAAvB,OACW,OAAY,OAAvB,OAC4C,OAAzB,MAAhB,OACwC,OAAY,OAAtC,OACY,OAAY,OAAtC,OACiB,OAAY,QAAhC,OAEG,WAAK,WAAI,OAAF,OAAd,gBAEa,OAAwB,OAAxB,kBAA2B,OAAhC,OACK,OAAwB,OAAxB,kBAA2B,OAAhC,OAEkB,OAAI,OAAF,OAApB,OACoB,OAAoB,OAAF,OAAtC,OACA,WAEJ,yEACA,4FACA,4FACA,sGACA,sGAEQ,WAAR,uCAEiB,OAAF,OAAM,WAAK,OAAH,OAAf,gBAEyB,OAAE,WAAnB,OACgB,OAAwB,OAAuC,yBAArB,OAA1C,yBAAd,OACN,uFACsC,QAAc,QAAe,eAA7B,kCAAoC,QAA1E,QAAc,QAAgB,eAA9B,yBAAmC,sCALhB,+BAAvB,KAOA,GAES,QAAF,QAAM,YAAK,QAAH,UAAf,qBAEyB,QAAE,eAAnB,QACgB,QAAwB,QAAuC,+BAArB,UAA1C,kCAAd,QACN,+FACsC,QAAc,QAAe,eAA7B,kCAAoC,QAA1E,QAAc,QAAgB,eAA9B,yBAAmC,sCACG,QAAc,QAAe,eAA7B,kCAAoC,QAA1E,QAAc,QAAgB,eAA9B,yBAAmC,sCANhB,+BAAvB,KAQA,GAES,QAAF,QAAM,YAAK,QAAH,UAAf,qBAEyB,QAAE,eAAnB,QACgB,QAAwB,QAAuC,+BAArB,UAA1C,kCAAd,QACN,+FACsC,QAAc,QAAe,eAA7B,kCAAoC,QAA1E,QAAc,QAAgB,eAA9B,yBAAmC,sCACG,QAAc,QAAe,eAA7B,kCAAoC,QAA1E,QAAc,QAAgB,eAA9B,yBAAmC,sCACG,QAAc,QAAe,eAA7B,kCAAoC,QAA1E,QAAc,QAAgB,eAA9B,yBAAmC,sCAPhB,+BAAvB,KASA,GAES,QAAF,QAAM,YAAK,QAAH,UAAf,qBAEyB,QAAE,eAAnB,QACgB,QAAwB,QAAuC,+BAArB,UAA1C,kCAAd,QACN,+FACsC,QAAc,QAAe,eAA7B,kCAAoC,QAA1E,QAAc,QAAgB,eAA9B,yBAAmC,sCACG,QAAc,QAAe,eAA7B,kCAAoC,QAA1E,QAAc,QAAgB,eAA9B,yBAAmC,sCACG,QAAc,QAAe,eAA7B,kCAAoC,QAA1E,QAAc,QAAgB,eAA9B,yBAAmC,sCACG,QAAc,QAAe,eAA7B,kCAAoC,QAA1E,QAAc,QAAgB,eAA9B,yBAAmC,sCARhB,+BAAvB,KAUA,GAES,QAAF,QAAM,YAAK,QAAH,UAAf,qBAEyB,QAAI,QAAF,UAAnB,QACgB,QAAwB,QAAuC,+BAArB,UAA1C,kCAAd,QAEN,+FACO,aAAK,YAAI,QAAF,UAAd,qBAC0C,QAAc,QAAiB,QAAF,UAA7B,kCAAoC,QAA1E,QAAc,QAAkB,QAAF,UAA9B,yBAAmC,sCADZ,+BAA3B,KANmB,+BAAvB,MA3De,+BAA3B,KAuEJ,wBAGA,4gC,oCAEkB,QAAY,OAAtB,QACW,QAAY,OAAvB,QAC4C,QAAzB,MAAhB,QACwC,QAAY,OAAtC,QACY,QAAY,OAAtC,QACiB,QAAY,QAAhC,QACsB,QAAY,QAAlC,QACQ,QAAU,QAAoB,WAAtB,OAAhB,QAEJ,wDAEQ,YAAR,uCAEe,YAAK,YAAI,QAAF,OAAd,gBAEa,QAAwB,QAAxB,kBAA2B,OAAhC,QACK,QAAwB,QAAxB,kBAA2B,OAAhC,QAEO,QAAI,QAAF,OAAT,QACiB,QAAK,WAAtB,QACQ,QAAR,QACoB,QAAoB,QAAF,OAAtC,QAEK,QAAF,QAAM,YAAK,QAAH,OAAf,gBAE0B,QAAE,WAApB,QACgB,QAAwB,QAAoB,QAAF,OAAM,QAAF,OAA9C,yBAAd,QACgC,QAAc,QAAe,WAA7B,yBAAoC,QAA1E,QAAc,QAAgB,WAA9B,kBAAmC,4BAJb,2BAA1B,KAVoB,2BAAxB,KAiBA,GAGO,YAAK,YAAI,QAAF,OAAd,gBAEa,QAAwB,QAAxB,kBAA2B,OAAhC,QACK,QAAwB,QAAxB,kBAA2B,OAAhC,QAEO,QAAI,QAAF,OAAT,QACiB,QAAK,cAAtB,SACQ,SAAR,QACoB,SAAoB,SAAF,UAAtC,QAEK,SAAF,SAAM,aAAK,QAAH,UAAf,qBAE0B,SAAE,eAApB,QACgB,SAAwB,QAAoB,SAAF,UAAM,SAAF,UAA9C,kCAAd,QACgC,SAAc,SAAe,eAA7B,kCAAoC,QAA1E,SAAc,QAAgB,eAA9B,yBAAmC,sCACG,SAAc,SAAe,eAA7B,kCAAoC,QAA1E,SAAc,QAAgB,eAA9B,yBAAmC,sCALb,iCAA1B,KAVoB,iCAAxB,KAkBA,GAGO,cAAK,aAAI,SAAF,UAAd,qBAEa,SAAwB,SAAxB,yBAA2B,SAAhC,QACK,SAAwB,SAAxB,yBAA2B,SAAhC,QAEO,SAAI,SAAF,UAAT,QACiB,QAAK,eAAtB,QACQ,QAAR,QACoB,SAAoB,SAAF,UAAtC,QAEK,QAAF,SAAM,aAAK,QAAH,UAAf,qBAE0B,SAAE,eAApB,QACgB,SAAwB,QAAoB,SAAF,UAAM,QAAF,UAA9C,kCAAd,QACgC,SAAc,QAAe,eAA7B,kCAAoC,QAA1E,SAAc,QAAgB,eAA9B,yBAAmC,sCACG,SAAc,QAAe,eAA7B,kCAAoC,QAA1E,SAAc,QAAgB,eAA9B,yBAAmC,sCACG,SAAc,QAAe,eAA7B,kCAAoC,QAA1E,SAAc,QAAgB,eAA9B,yBAAmC,sCANb,iCAA1B,KAVoB,iCAAxB,KAmBA,GAGO,cAAK,aAAI,SAAF,UAAd,qBAEa,SAAwB,SAAxB,yBAA2B,SAAhC,QACK,SAAwB,SAAxB,yBAA2B,SAAhC,QAEO,SAAI,SAAF,UAAT,QACiB,QAAK,eAAtB,QACQ,QAAR,QACoB,SAAoB,SAAF,UAAtC,QAEK,QAAF,SAAM,aAAK,QAAH,UAAf,qBAE0B,SAAE,eAApB,QACgB,SAAwB,QAAoB,SAAF,UAAM,QAAF,UAA9C,kCAAd,QACgC,SAAc,QAAe,eAA7B,kCAAoC,QAA1E,SAAc,QAAgB,eAA9B,yBAAmC,sCACG,SAAc,QAAe,eAA7B,kCAAoC,QAA1E,SAAc,QAAgB,eAA9B,yBAAmC,sCACG,SAAc,QAAe,eAA7B,kCAAoC,QAA1E,SAAc,QAAgB,eAA9B,yBAAmC,sCACG,SAAc,QAAe,eAA7B,kCAAoC,QAA1E,SAAc,QAAgB,eAA9B,yBAAmC,sCAPb,iCAA1B,KAVoB,iCAAxB,KAoBA,GAGO,cAAK,aAAI,SAAF,UAAd,qBAEa,SAAwB,SAAxB,yBAA2B,SAAhC,QACK,SAAwB,SAAxB,yBAA2B,SAAhC,QAEO,SAAI,SAAF,UAAT,QACiB,QAAO,SAAF,UAAtB,QACQ,QAAR,QACoB,SAAoB,SAAF,UAAtC,QAEK,QAAF,SAAM,aAAK,QAAH,UAAf,qBAG0B,SAAI,SAAF,UAApB,QACgB,SAAwB,QAAoB,SAAF,UAAM,QAAF,UAA9C,kCAAd,QACC,aAAK,YAAI,SAAF,UAAd,qBAC0C,SAAc,QAAiB,QAAF,UAA7B,kCAAoC,QAA1E,SAAc,QAAkB,QAAF,UAA9B,yBAAmC,sCADZ,+BAA3B,KALsB,iCAA1B,KAVoB,iCAAxB,MAqBZ,wBAkCA,iC,6DAC6B,OAAe,OAAe,OAAF,OAAhB,OAAqC,OAAF,OAApE,OACgC,OAAa,OAAmB,OAA7D,UAAP,qBAKJ,orC,4EAMU,QAAY,OAAK,WAAnB,MAEM,YAAI,YAAI,QAAF,OAAZ,gBAEsB,QAAE,QAAD,OAAf,OAEU,QAAc,OAAc,QAAF,OAA1B,yBAAR,OACmB,2CAAe,OAAF,kBAAb,qBAAnB,OAGC,YAAK,YAAI,QAAF,OAAd,gBACQ,QAAK,QAAH,OAAF,kBACkC,OAAlC,QAAc,OAAc,QAAF,OAA1B,kBAA+B,sBAFZ,2BAA3B,KARsB,2BAA1B,MAqBG,YAAkB,YAAK,YAAI,QAAF,OAAhC,gBAEQ,QAAK,QAAH,OAAiB,mBAAI,QAAY,OAAM,WAAzC,MAEyC,QAApB,2BAArB,kCAAyB,QAJW,2BAA5C,KAmBQ,YAAR,wCAGc,YAAI,YAAI,QAAF,OAAZ,gBAEsB,QAAE,QAAD,OAAf,OAEG,YAAK,YAAI,QAAF,OAAd,gBAEgB,OAAc,QAAF,OAApB,OACqC,6KAAxB,SAAe,QAAhC,UAAuC,SAHhB,iCAA3B,KAJsB,iCAA1B,KAUA,GAGM,cAAI,aAAI,SAAF,UAAZ,qBAEsB,SAAE,SAAD,UAAf,QAEG,cAAK,aAAI,SAAF,UAAd,qBAEgB,QAAuB,SAAT,wEAAF,UAApB,QACiE,SAAc,QAAd,kCAA5B,QAAxB,SAAe,QAAhC,UAAuC,SAHZ,iCAA/B,KAMM,SAAY,SAAM,eAApB,OACgE,gNAA9C,SAAe,QAAc,SAAF,UAA7C,UAA8D,UAX5C,iCAA1B,KAaA,GAGM,cAAI,aAAI,SAAF,UAAZ,qBAEsB,SAAE,SAAD,UAAf,QAEG,cAAK,aAAI,SAAF,UAAd,qBAEgB,QAAc,SAAF,UAApB,QACsC,6LAAxB,SAAe,QAAjC,yBAAwC,SAHjB,iCAA3B,KAJsB,iCAA1B,KAUA,GAGM,cAAI,aAAI,SAAF,UAAZ,qBAEsB,SAAE,SAAD,UAAf,QAEG,cAAK,aAAI,SAAF,UAAd,qBAEgB,QAAuB,cAAT,4CAAF,UAApB,QACsD,qMAAxC,SAAe,QAAjC,yBAAwC,SAHb,iCAA/B,KAMM,SAAY,SAAK,eAAnB,OACgE,gNAA9C,SAAe,QAAc,SAAF,UAA7C,yBAA8D,UAX5C,iCAA1B,KAcA,GAGM,cAAI,aAAI,SAAF,UAAZ,qBAEsB,SAAE,SAAD,UAAf,QAEG,cAAK,aAAI,SAAF,UAAd,qBAEgB,QAAc,SAAF,UAApB,QACkD,sNAAtC,SAAe,QAA/B,yBAAsC,SAHf,iCAA3B,KAJsB,iCAA1B,KAUA,GAGM,cAAI,aAAI,SAAF,UAAZ,qBAEsB,SAAE,SAAD,UAAf,QAEG,cAAK,aAAI,SAAF,UAAd,qBAEgB,QAAuB,cAAT,4CAAF,UAApB,QACkD,8NAAtC,SAAe,QAA/B,yBAAsC,SAHX,iCAA/B,KAMM,SAAY,SAAK,eAAnB,OAC4E,oNAA5D,SAAe,QAAc,SAAF,UAA3C,yBAA4D,UAX1C,iCAA1B,KAaA,GAGM,cAAI,aAAI,SAAF,UAAZ,qBAEsB,SAAE,SAAD,UAAf,QAEG,cAAK,aAAI,SAAF,UAAd,qBAEgB,QAAc,SAAF,UAApB,QAC6B,SAAc,QAAd,kCAAxB,SAAe,QAAxB,yBAA+B,SAHR,iCAA3B,KAJsB,iCAA1B,KAUA,GAGM,cAAI,aAAI,SAAF,UAAZ,qBAEsB,SAAE,SAAD,UAAf,QAEG,cAAK,aAAI,SAAF,UAAd,qBAEgB,QAAuB,SAAT,wEAAF,UAApB,QACmD,SAAc,QAAd,kCAAtB,QAAxB,SAAe,QAAxB,yBAA+B,SAHJ,iCAA/B,KAMM,SAAY,SAAK,eAAnB,OACuD,SAAc,QAAc,SAAF,UAA1B,kCAA9C,SAAe,QAAc,SAAF,UAApC,yBAAqD,UAXnC,iCAA1B,KAaA,GAGA,2CAGZ,uBAhnBA,2B,sBAGY,OAAY,OAAc,OAAY,QAAiC,OAAY,OAAd,OAArE,kBAAR,MAtPJ,2C,wCAEQ,OAAE,WAAK,oBAAG,OAAI,OAAF,OAAZ,gBACO,OAAP,UACyB,OAAM,OAAG,OAA/B,UAAP,QACJ,4BAnXA,2C,0BACQ,OAAE,cAAF,oBACO,OAAE,cAAT,UAEmB,OAAE,cAAU,cAAjB,eAAd,QACR,2BA6wBA,qB,oCACY,OAAY,OAAQ,OAAF,OAAlB,kBAAR,MA/dJ,yK,wCACY,WAAR,uCAGI,cAGI,OAAE,WAAF,kBACA,cAEA,OAAK,OAAH,OAAF,kBACO,OAAI,WAAX,UAEG,OAAP,UAII,OAAE,WAAF,kBAEI,OAAI,OAAF,OAAF,kBACQ,OAAD,WAAP,UAEO,OAAI,WAAX,UAGJ,OAAK,OAAH,OAAF,kBAEW,OAAI,WAAX,OACA,OAAK,OAAH,OAAF,kBACA,cAEO,OAAO,OAAF,OAAI,WAAhB,UAGD,OAAP,UAII,OAAE,WAAF,kBACQ,OAAI,OAAF,OAAV,UAGU,OAAD,WAAM,OAAF,OAAT,OAEA,cACI,OAAM,OAAF,OAAN,QAEE,OAAR,UAKJ,mCAGR,2BEvKA,iB,iCAAgH,OAAK,OAApB,SAAP,qBFlQ1F,uC,sBACQ,OAAE,gBAAF,oBACA,mBAEA,OAAE,cAAF,kBACA,iBAEG,OAAP,QACJ,aA+FA,yG,sBASU,OAAY,aAAT,OAAL,iBACY,aAAT,QACH,OAAe,aAAZ,OAAH,kBACe,aAAZ,QAGD,OAAF,OACwB,OAAE,eAAY,WAApC,+BAAF,OACI,OAAI,WAAO,WAAd,OACG,OAAI,aAAN,OAGC,OAAE,WAAO,YAAd,OACuB,OAAO,OAAM,OAAD,OAAP,OAAW,WAAzC,kBAvDJ,2C,0BACQ,OAAE,cAAF,oBACO,OAAE,cAAT,UAE2B,OAAJ,sBAAiB,qBAAxC,QACR,2BG5GA,a,0BACQ,OAAL,KACH,kBAvBA,a,sBACoB,OAAF,aACf,UA6BH,6K,sDACsB,OAAf,eAAyC,OAAE,OAAE,OAAE,OAAK,OAA1B,cAAP,UACL,OAAd,aAAwC,OAAE,OAAE,OAAE,OAAK,OAAzB,cAAP,UACL,OAAd,aAAwC,OAAE,OAAE,OAAE,OAAK,OAAzB,cAAP,UACL,OAAd,aAAwC,OAAE,OAAE,OAAE,OAAK,OAAzB,cAAP,UACL,OAAd,aAAwC,OAAE,OAAE,OAAE,OAAK,OAAzB,cAAP,UACL,OAAd,aAAwC,OAAE,OAAE,OAAE,OAAK,OAAzB,cAAP,UAGL,OAAd,aAC0B,OAAG,OAAE,OAAE,OAAK,OAA1B,cAAN,OACW,OAAM,OAAD,OAAK,OAAD,OAAI,gBAAW,WAAX,GAAuB,OAAD,YAAtB,IAAxB,YAAP,UAKe,OAAd,aACoB,OAAE,OAAE,OAAE,OAAK,OAAzB,cAAP,UACI,yBAAP,QACH,4BA01CA,uB,6BAGS,QAAF,OACA,gBAAF,QACU,QAAZ,IACO,QAAP,uBAbH,6B,6DAES,QAAF,OACuB,QAAE,QAAE,QAAK,QAA7B,6BAAP,sBAq7BH,mB,0BAEwB,OAAjB,MAAF,OACU,OAAZ,IACO,OAAP,qBAXH,6B,sDAES,OAAF,OACc,OAAE,OAAE,OAAK,OAApB,6BAAP,oBA+CH,mB,0BACoB,OAAT,MAAJ,OACQ,OAAZ,IACO,OAAP,qBAiPH,uB,sDACmB,OAAG,OAAE,OAAE,OAAK,OAArB,cAAP,oBAosBH,mB,0BACoB,OAAT,MAAJ,OACQ,OAAZ,IACO,OAAP,qBA2RH,mE,kEACgB,uBACJ,qBAEc,SAAO,SAAM,SAAhC,2BAAF,SACE,SAAE,WAAF,kBAAmB,cACnB,sCACM,OAAN,SAAE,OACI,OAAN,SAAE,QAGC,SAAP,sBA/sBH,mB,0BACoB,OAAT,MAAJ,OACQ,OAAZ,IACO,OAAP,qBAkKH,uB,sDACmB,OAAE,OAAE,OAAE,OAAK,OAApB,cAAP,oBAiNH,mB,0BACoB,OAAT,MAAJ,OACQ,OAAZ,IACO,OAAP,qBAIH,uB,sDACmB,OAAE,OAAE,OAAE,OAAK,OAApB,cAAP,oBAwWH,mB,0BACoB,OAAT,MAAJ,OACQ,OAAZ,IACO,OAAP,qBAqKH,uB,sDACmB,OAAE,OAAE,OAAE,OAAK,OAApB,cAAP,qBAz3GH,kT,+CAEwC,OAAI,OAAF,OAAM,OAAF,OAAb,OAArB,OACL,OAAO,WAAP,oBAAuB,OAAL,KAAmB,yBAAP,UAE9B,OAAK,WAAL,SAAc,OAAF,OAAF,GAAmB,OAAI,WAAN,QACzB,WAAI,WAAI,OAAE,OAAD,OAAH,OAAZ,gBACS,WAAI,WAAI,OAAF,OAAZ,gBACyB,OAAK,OAAE,OAAD,OAAM,OAAD,WAAX,yBAAe,SAAD,OAAd,KAA4B,cAAhC,SAAR,YAA2D,qBAA/D,OACF,OAAE,gBAAF,kBAAS,iBACT,OAAE,cAAF,kBAAW,eACoB,oEAAnC,OAAO,OAAE,OAAD,OAAQ,OAAF,OAAd,OAAmB,OAJL,yBAAjB,KAMI,OAAI,OAAF,OAAF,kBACS,OAAK,OAAE,OAAD,OAAM,OAAD,OAAX,gCAAqB,qBAAzB,OACF,OAAE,gBAAF,kBAAS,iBACT,OAAE,eAAF,uBAAW,iBACoB,uFAAnC,QAAO,QAAE,QAAD,UAAQ,QAAF,UAAd,UAAmB,UAXN,+BAAnB,KAcK,QAAL,MACO,QAAP,SACH,iCA2vEA,mB,0BACsB,OAAT,MAAN,OACQ,OAAZ,IACO,OAAP,qBAsMH,uB,sDACmB,OAAE,OAAE,OAAE,OAAK,OAApB,cAAP,qBA/xFH,qC,oEAEgB,QAAO,QAApB,uBACyB,QAAE,QAAE,QAAK,QAA3B,6BAAP,sBA7KH,6B,oCACG,OAAW,WACX,OAAuB,WACkC,OAAzC,OAAuB,QAAvC,OAAc,QACsB,OAAO,OAAD,OAA1C,OAAkB,QACrB,IAiTA,mF,0BACY,OAAM,OAAM,OAAG,OAAoB,OAAG,WAAa,OAAG,OAAvD,aAAJ,OACA,eAGD,OAAuB,WACP,OAAG,WAAnB,OAAc,QACM,OAAG,WAAY,WAAnC,OAAkB,QACjB,OAAG,QAAW,WAClB,GACmB,OAAG,WAAnB,OAAc,QACM,OAAG,WAAe,OAAF,OAApC,OAAkB,SAExB,mBAi3GA,2E,0BACe,aAEN,WAAI,aAAU,OAAV,cAAV,mDACY,OAAL,MAAW,OAAU,OAAV,gCAAH,OAAR,kBACD,cAFkB,yBAAxB,KAGA,YACH,2BAvoHA,a,sBAImB,OAAG,QAAnB,OAAc,QACjB,IA8rHA,0oB,4DAGO,WAUoB,QAAE,gBAAf,SAAP,wBACM,yBAAP,WAIqB,YAAE,gBAAf,SAAF,OACF,sCAAe,GACR,OAAP,qBAAoD,YAH3D,KAMK,OAAD,MAAkB,yBAAP,WAIM,QAAE,gBAAf,SAAF,OACM,OAAR,4BAAkC,yBAAP,WACzB,yBACgB,OAAP,8BAAR,OACC,WAAD,yBAAO,WAAd,gBAAsB,yBAAtB,KACY,OAAR,4BAAkC,yBAAP,WACzB,yBACe,OAAP,mBAAR,OAED,OAAJ,QAAE,OACE,OAAJ,QAAE,OAEF,QAAK,WACF,cAAwB,aAGA,OAAS,OAAF,OAAU,QAAF,OAAW,WAAjC,OAAZ,OAIJ,OAAM,WAAI,uBAAG,OAAM,aAAnB,iBAEI,kBAUG,WAEF,WAAK,aAAI,OAAF,OAAd,gBACa,QAAL,MAAF,OACO,QAAL,MAAF,OACQ,QAAL,OAAF,QACA,QAAG,eAAK,wBAAG,QAAG,eAAK,oBAAI,QAAI,gBAA3B,OAIuB,QAAhB,QACgB,QAAhB,QACgB,QAAhB,QACsB,SAAN,QAAhB,QACI,QAAU,KAAM,SAA5B,YACE,aACA,aACG,QAAL,MACA,GAEC,+BACQ,SAAL,QAAH,0BACA,QAAO,QAAH,UAAJ,uBAAqB,QAAL,MAAqB,QAAL,MAAuB,iCAAP,YAChD,QAAS,eAAT,uBAAgD,QAAM,eAAb,SAAd,SAExB,aAAK,YAAE,eAAd,qBACK,aACK,YAAI,QAAF,UAAT,qBACiB,SAAN,QAAF,QACF,wBAAM,gBAAN,yBAEa,SAAN,QAAF,QACA,gDACC,aAAK,YAAI,wBAAF,UAAd,qBAC2B,QAAxB,QAAU,+BAAG,eAAM,QAAF,UAAjB,UAAsB,SADF,+BAAvB,KAEH,GAEU,aAAK,YAAI,wBAAF,UAAd,qBACiC,SAAN,QAAxB,QAAU,+BAAG,eAAM,QAAF,UAAjB,UAAsB,SADF,+BAAvB,MAVN,KAFgB,+BAAnB,KAiBM,aAAI,YAAI,QAAF,UAAZ,qBACe,QAAU,QAAE,QAAD,UAAS,QAAF,UAAK,SAAD,UAAd,yBAAyB,QAAW,QAAC,eAAH,UAAO,SAA7D,YADkB,+BAArB,KAxCqB,+BAAxB,KA2CK,QAAL,kCAvDU,QAAI,QAAF,UAAZ,qBACS,gBAGE,SAAG,oBAAR,kBACY,QAAW,QAAI,QAAF,UAAU,SAAF,UAAZ,yBAAyB,QAAI,SAAF,UAAJ,yBAAgB,oBAAM,SAAlE,YAJkB,gCAAX,QAAI,QAAF,UAAZ,8BADmB,+BAAtB,GAQH,YAkDO,QAAP,UACH,oCAjgEA,qC,sDACmB,OAAhB,OAAc,OACE,OAAhB,OAAc,OACE,OAAO,OAAF,OAArB,OAAc,OACI,OAAlB,OAAgB,OAEE,OAAG,OAAd,QAAP,qBArCH,yK,iCAEO,gBACsB,OAAlB,OAAD,MAAuB,eAC9B,OAAY,WACZ,OAAe,WAEK,SAAT,aAAF,OACU,OAAT,aAAF,OACD,eAC6B,OAAzB,OAAD,MAA8B,cACrC,GAAW,OAAK,WAAL,kBACR,cAEI,OAAK,WAAL,oBAEI,gDAAD,iBAAuB,IACN,OAAG,WAAnB,sBAAD,MAAwD,cACvC,OAAG,YAAnB,qBAAD,MAAwD,cAC/D,GAC8B,OAAtB,OAAD,MAA2B,eAET,OAApB,OAAD,MAAyB,eAE5B,aAAiB,SAAG,OAAG,OAAO,OAAG,OAAL,OAAgB,aAA5C,gBACD,GACI,OAAD,sBAAT,iBACA,YACH,4BAkCA,6E,4DAE6B,QAAP,OAAb,OACF,OAAE,WAAF,oBAAW,eACa,QAAlB,OACsB,QAAS,QAAF,OAAzB,OACE,OAAG,QAAiB,QAAhC,wCACG,qCAA2B,OAAS,OAAJ,OAAvB,QAAO,QACX,OAAT,WAEO,OAAP,KACA,aAEN,8BAjuBA,+I,iCAEG,OAAU,aACK,OAAX,kBAAF,OACG,mBAAD,mBAAgB,YAAP,UACT,OAAK,WAAL,kBAAmB,cACR,OAAX,kBAAF,OACM,0EAAD,WAAP,kBACuB,OAAE,OAAjB,QAAD,MAAsB,cACX,OAAX,kBAAF,OACK,WAAE,YAAT,gBAEc,OAAG,OAAV,aAAqB,YAAP,UACH,OAAX,kBAAF,OAHL,KAHH,IAS0B,OAAG,OAAxB,QAAD,MAAgC,cACpC,YACH,4BA8LA,w5B,4DAGO,QAAS,WAAI,qBAAG,QAAS,WAAzB,iBAAqC,yBAAP,WAClC,QAAG,OAAS,WAGW,QAAlB,MAAD,MAAsC,QAAb,IAAiB,eAG1C,iBAAW,YAAX,GAAsB,QAAG,OAAG,YAA5B,IAAF,QAEE,QAAG,OAAG,OAAM,WAAK,oBAAG,QAAE,WAAtB,gBACQ,YAAT,GAEW,QAAG,OAAG,OAAR,SAWH,YAAI,YAAI,QAAF,OAAZ,gBACgC,QAAT,iCAAL,OAIiC,QAAG,OAAG,OAAM,WAAnB,OAAzC,QAAG,aAAS,QAAZ,kBAAuB,OAClB,QAAG,aAAS,QAAZ,kBAAe,OAAf,WAAD,iBAAwC,QAAb,IAAwB,yBAAP,WAEnC,QAAG,QAAY,QAAG,aAAS,QAAZ,kBAAe,OAAjB,OAA1B,OAAW,OACE,QAAG,QAAY,QAAG,aAAS,QAAZ,kBAAe,OAAjB,OAA1B,OAAW,OACE,OAAG,OAAG,WAAnB,OAAW,OACG,QAAG,OAAG,OAAQ,OAAG,QAAL,SAAO,eAAM,QAAG,SAAL,UAArC,QAAW,SACX,QAAW,cACa,SAAG,iBAAS,SAAZ,yBAAe,SAA1B,QAAS,SAAtB,QAAW,SAEF,QAAG,SAAG,eAAK,yBAAG,QAAG,SAAG,eAApB,qBAA0B,QAAY,cAAZ,GAC1B,QAAG,SAAG,eAAK,yBAAG,QAAG,SAAG,eAApB,qBAA0B,QAAY,cAAZ,GAC1B,QAAG,SAAG,eAAK,yBAAG,QAAG,SAAG,eAApB,qBAA0B,QAAY,cAAZ,GAC1B,QAAG,SAAG,eAAK,yBAAG,QAAG,SAAG,eAApB,qBAA0B,QAAY,cAAZ,GACA,QAAY,kBAnB1B,iCAAxB,KAuBgC,SAAI,SAAG,SAAG,SAAR,UAAgB,SAAG,SAAG,SAAR,UAAc,eAArC,SAAlB,SACF,wBAAD,sBAAwB,SAAb,KAAwB,iCAAP,YAG1B,cAAI,aAAI,SAAG,SAAG,SAAR,UAAZ,qBACsB,SAAS,SAAI,SAAG,SAAG,SAAR,UAAgB,SAAF,UAAlB,UAAb,QACP,cAAI,aAAI,SAAF,UAAZ,qBACgC,SAAT,6CAAL,QACH,QAAG,SAAU,QAAG,SAAG,eAAV,yBAAjB,QACS,QAAG,SAAS,SAAG,iBAAS,SAAZ,yBAAe,SACf,kBAAQ,QAAG,eAAX,GAAmB,QAAG,gBAAtB,MACA,kBAAQ,QAAG,eAAX,GAAmB,QAAG,gBAAtB,MACA,QAAG,SAAS,QAAG,SAH3B,wBAAL,SAAR,8CAAW,SAIL,QAAF,iCAAc,QAAG,SAAN,UAAX,uBACD,QAAS,cACE,QAAG,SAAd,QAAS,SACH,QAAF,iCAAY,SAAG,iBAAS,SAAZ,yBAAe,SAAjB,UAAV,uBACW,SAAG,iBAAS,SAAZ,yBAAe,SAA3B,QAAS,8BAXM,iCAAxB,KAcI,SAAE,eAAF,yBACgB,SAAJ,QACT,SAAG,SAAG,SAAM,eAAZ,yBAIgB,QAAK,QAAG,SAAY,SAAY,SAAG,SAAG,SAAO,SAA9D,oBAEH,GACS,cAAI,aAAI,SAAG,SAAG,SAAR,UAAZ,qBAC8B,QAAE,SAAF,mBAAT,QAAO,SAAhB,QAAO,SAAhB,QAAO,SACP,QAAO,eACA,SAAH,0BAHoB,iCAA3B,MAKN,GACoB,SAAJ,QACT,SAAE,eAAF,yBACK,cAAI,aAAI,SAAG,SAAG,SAAR,UAAZ,qBAAyC,QAAE,SAAF,mBAAT,QAAI,SAAJ,UAAO,SAAZ,iCAA3B,KAA4C,GAEtC,cAAI,aAAI,SAAG,SAAG,SAAR,UAAZ,qBAAyC,QAAE,SAAF,mBAAL,+BAAG,SAAY,+BAAG,eAA3B,iCAA3B,OAnCkB,iCAA3B,KAsCa,SAAb,KACS,SAAG,SAAG,SAAd,SAAM,SACE,SAAG,SAAG,SAAd,SAAM,SACH,+CAAe,SAAG,SAAG,SAAd,SAAM,UACV,SAAP,UAEN,oCAofA,2D,0BAGS,WAAI,aAAE,WAAZ,gBACa,OAAN,kBAAoB,OAAR,qBAAH,OAAT,kBAA+B,YAAP,UADd,yBAAjB,KAEA,YACH,4BAmaA,iL,sDACkB,WACX,OAAS,WAAI,qBAAG,OAAS,WAAzB,iBAAqC,yBAAP,UACf,OAAc,OAA7B,sBACQ,OAAG,OAAL,OACP,OAAO,WACH,OAAS,OAAG,OAAY,OAAG,OAAG,OAAT,OAArB,gBACuB,OAAQ,OAAG,OAAG,OAAW,OAAU,OAAG,OAAG,OAAO,OAAG,OAAG,OAArE,eAAF,OACW,OAAlB,OAAG,OAAa,OACZ,OAAO,WAAP,kBAAuB,OAAP,WAElB,OAAG,OAAG,OAAV,OAAE,OACE,OAAG,OAAG,OAAV,OAAE,OACC,oCAAQ,OAAG,OAAG,OAAV,OAAE,SAER,OAAG,OAAR,KAAmB,OAAY,WAC1B,OAAG,OAAR,KAAmB,OAAY,WAC1B,OAAG,OAAR,KAAmB,OAAY,WAExB,OAAP,QACH,4BAuCA,iG,0BAEY,OAAL,MAAQ,YAAR,oBAAgB,cACX,OAAL,MAAQ,YAAR,kBAAgB,cACZ,OAAR,MACQ,OAAR,MACQ,OAAR,MACQ,OAAR,MACa,OAAR,OAAF,OACC,OAAG,WAAM,mBAAG,OAAG,WAAM,eAAG,OAAG,WAAM,eAAG,OAAG,YAAvC,iBAA+C,cACnD,YACH,4BAmDA,sxD,4DAEgB,YAAK,YAAK,YAAK,YAAM,YAE9B,WAAY,WAEP,QAAL,MAAQ,YAAO,qBAAQ,QAAL,MAAQ,YAA1B,iBAAyC,yBAAP,WAC9B,QAAR,MACQ,QAAR,MACQ,QAAR,MACiB,QAAR,OAAF,OACO,QAAR,OAAF,OACA,OAAI,WAAM,kBAAG,OAAI,WAAM,gBAAG,OAAI,WAAM,gBAAG,OAAI,YAA3C,gBAA0D,yBAAP,WACnD,OAAI,WAAJ,oBACkB,QAAR,OAAX,QAAS,OACU,QAAR,OAAX,QAAS,OACZ,GACsB,QAAR,OAAX,QAAS,OACU,QAAR,OAAX,QAAS,QAEA,QAAR,OAAW,WAAX,kBAAwB,yBAAP,WACP,QAAR,OAAF,OACA,OAAI,WAAJ,kBAAiB,yBAAP,WACW,QAAG,OAAO,sBAAnB,OACK,QAAG,OAAb,6BAAX,QAAS,OACL,OAAI,WAAJ,oBACG,OAAI,WAAJ,kBACQ,OAAO,WAAK,YAAM,eAArB,SACZ,GACsB,SAAR,SAAF,QACL,QAAS,eAAK,wBAAG,QAAS,eAA1B,sBAAuC,iCAAP,YAC5B,SAAR,OACQ,SAAR,OACQ,SAAR,OACQ,SAAR,OACQ,SAAR,OACI,QAAI,eAAM,0BAAG,QAAI,eAAjB,sBACG,QAAI,eAAJ,uBACO,SAAR,OACQ,SAAR,OACQ,SAAR,OACQ,SAAR,QAEC,QAAI,eAAM,wBAAG,QAAI,eAAjB,sBACY,cAAL,cAAL,cACC,iBACG,QAAI,eAAJ,yBACE,iBACA,gBACA,eACA,iBACI,cAEV,GACM,gBACA,eACA,eAET,GAAW,QAAS,eAAT,yBACK,SAAR,SAAF,SACU,SAAR,SAAF,SACU,SAAR,SAAF,SAEC,SAAM,SAAH,UAAM,uBAAG,SAAM,SAAH,UAAf,qBAEM,iCAAP,YAEN,GACU,iCAAP,cAET,GACG,yFACa,SAAR,SAAF,SACU,SAAR,SAAF,SACU,SAAR,SAAF,SACU,SAAR,SAAF,SACK,SAAR,OACM,aAAI,YAAE,eAAZ,qBACW,SAAR,OADe,+BAAlB,MAGC,QAAI,eAAJ,uBACQ,QAAO,eAAO,QAAF,UAAO,eAAtB,UAED,gCAAX,SAAS,SACL,SAAS,UAAG,SAAS,eAArB,qBACQ,SAAF,QAAP,GAES,SAAG,SAAL,SACe,QAAS,SAAG,SAAL,UAAa,SAAG,SAAL,UAAzB,SAAd,SACC,wBAAD,sBAAa,iCAAP,YACN,QAAI,eAAJ,yBACG,aACA,QAAW,UAAG,QAAM,gBAApB,sBAAkC,SAAL,MAAkB,iCAAP,YACtC,aAAI,YAAI,QAAF,UAAZ,qBACqB,SAAN,QAAR,QAAJ,8CAAU,SACQ,SAAN,QAAR,QAAJ,8CAAU,SACQ,SAAN,QAAR,QAAJ,8CAAU,SACN,QAAI,eAAJ,uBAAgB,SAAL,OACX,QAAJ,8CAAU,eALQ,+BAArB,KAOK,SAAG,QAAO,eAAO,QAAF,UAAQ,QAAS,QAAI,eAAJ,sCAAH,UAAR,UAA1B,QACI,QAAI,eAAJ,yBAAmB,SAAG,SAAM,eAAK,eAAjB,QAAN,GACL,QAAI,eAAJ,yBAAkB,SAAG,SAAL,QAAN,GACP,SAAL,MAAkB,iCAAP,aACV,QAAD,eAAO,eAAV,QACE,aAAI,YAAU,SAAG,SAAX,UAAZ,qBACS,aAAI,YAAU,SAAG,SAAX,UAAZ,qBACc,SAAL,QAAF,QAAU,aACV,QAAI,eAAJ,uBACI,QAAE,eAAJ,QACD,gCAEU,QAAJ,uDAAX,SAAK,+BAAL,UAAS,SACM,QAAJ,uDAAX,SAAK,+BAAL,UAAS,SACM,QAAJ,uDAAX,SAAK,+BAAL,UAAS,SACL,QAAO,eAAP,uBAAa,SAAK,+BAAL,UAAS,gBACtB,QAAC,eAAY,SAAG,SAAZ,UAAJ,uBAAuB,GACtB,QAAI,eAAL,yBAAkB,SAAL,cAAb,GAAuB,eAAvB,MAAF,QACa,QAAJ,uDAAX,SAAK,+BAAL,UAAS,SACM,QAAJ,uDAAX,SAAK,+BAAL,UAAS,SACM,QAAJ,uDAAX,SAAK,+BAAL,UAAS,SACL,QAAO,eAAP,uBAAa,SAAK,+BAAL,UAAS,gBAfG,+BAAhC,KAiBK,SAAG,QAAR,QAlB2B,+BAA9B,KAoBH,GACO,aAAS,aAAS,aAAS,aAAS,aAAS,aAAS,aAAS,aAC/D,aACA,aACC,SAAG,QAAO,eAAO,QAAF,UAApB,QACI,QAAI,eAAJ,yBAAuB,SAAG,SAAL,eAAJ,QAAN,GACN,QAAI,eAAJ,yBAAqB,SAAG,SAAJ,eAAH,QAAN,GACiB,eAC7B,QAAD,eAAQ,eAAX,QACA,QAAI,eAAJ,yBACI,aACR,GAAW,QAAI,eAAJ,uBACJ,SAAG,gBAAQ,uBAAG,SAAG,iBAAU,qBAAG,SAAG,kBAAc,qBAAG,SAAG,kBAArD,qBACI,gBAEN,QAAD,OACI,SAAG,UAAI,SAAG,MAAI,SAAf,MAA0B,SAAL,MAAkB,iCAAP,YAElB,SAAT,SAAY,eAAd,QAAoC,SAAT,SAAF,QACd,SAAT,SAAY,eAAd,QAAoC,SAAT,SAAF,QACd,SAAT,SAAY,eAAd,QAAoC,SAAT,SAAF,QACd,SAAT,SAAY,eAAd,QAAoC,SAAT,SAAF,SAE7B,aAAI,YAAU,SAAG,SAAX,UAAZ,qBACO,kBACK,aAAI,YAAU,SAAG,SAAX,UAAZ,qBAEoB,SAAN,QAAX,SAAI,QAAC,eAAL,UAAS,SACQ,SAAN,QAAX,SAAI,QAAC,eAAL,UAAS,SACQ,SAAN,QAAX,SAAI,QAAC,eAAL,UAAS,SACP,+BACG,QAAK,eAAL,yBAAiB,SAAL,cAAZ,sBAAH,QACE,QAAO,eAAP,uBAAsC,QAAzB,SAAK,+BAAL,UAAS,UAPC,+BAA9B,KASH,GACS,aAAI,YAAU,SAAG,SAAX,UAAZ,qBACoC,QAAI,eAAJ,yBAAoB,SAAR,eAAZ,GAAiC,SAAR,gBAAzB,MAApB,QAEwB,QAAI,SAAF,UAAM,QAAQ,QAA5B,eAAzB,SAAK,+BAAL,UAAS,SAC4B,QAAI,SAAF,UAAM,QAAQ,QAA5B,eAAzB,SAAK,+BAAL,UAAS,SAC4B,QAAI,SAAF,UAAM,QAAQ,QAA5B,eAAzB,SAAK,+BAAL,UAAS,SACJ,mBAAiB,QAAI,SAAF,UAAM,QAAQ,QAA5B,qBAAL,sBAAH,QACE,QAAO,eAAP,uBAAsC,QAAzB,SAAK,+BAAL,UAAS,UAPC,+BAA9B,MAUE,SAAG,QAAR,QAtB2B,+BAA9B,MAyBC,gBAEK,aAAI,YAAU,SAAG,SAAK,eAAhB,UAAZ,qBACiB,SAAW,QAAO,SAAG,SAAJ,UAAU,QAAD,UAAtB,UAAT,QACK,SAAO,SAAG,SAAK,eAAG,QAAD,UAAI,SAAG,SAAJ,UAAU,QAAD,UAAzB,UAAT,QACH,aAAI,YAAU,SAAG,SAAM,QAAD,UAAhB,UAAZ,qBACO,QAAG,QAAH,mBAAF,QAAiB,QAAG,QAAH,mBAAR,QAAG,QAAH,UAAM,SAAiB,QAAR,QAAG,QAAH,UAAM,SADE,+BAArC,KAH8B,+BAAjC,MASC,SAAS,QAAG,SAAY,QAAH,UAArB,qBACoB,SAAK,QAAQ,SAAU,SAAG,SAAO,SAAG,SAAnD,qBAAF,SACA,SAAI,eAAJ,uBAAoB,SAAP,aAGf,SAAG,SAAP,SAAE,SACE,SAAG,SAAP,SAAE,SACC,+CAAc,SAAG,SAAV,SAAK,UACT,SAAP,UACH,oCA8rBA,yG,0BAEY,OAAL,MAAQ,YAAO,qBAAQ,OAAL,MAAQ,YAAO,eAAQ,OAAL,MAAQ,YAAO,eAAQ,OAAL,MAAQ,WAA9D,iBAAsE,cAChE,OAAL,MAAF,OACC,OAAG,WAAO,kBAAG,OAAG,WAAhB,gBAAwB,cACnB,OAAL,MAAQ,YAAR,kBAAgB,cACpB,YACH,4BA6LA,olB,gDAEgB,WAET,OAAG,OAAI,WAAP,sBACoB,OAAG,OAAG,OAAtB,iBAAD,MAAoC,cACJ,OAAG,OAAL,WAAS,OAAG,OAAL,OAAhB,OAAzB,OAAO,OACH,OAAG,OAAI,WAAP,kBAAyC,yBAAP,UACb,OAAzB,KACH,GAES,OAAG,OAAO,WAAQ,WAAM,WAA1B,kBACS,OAAG,OAAL,OAC4B,OAAG,OAAL,WAAS,OAAG,OAAL,OAAhB,OAAzB,OAAO,OACH,OAAG,OAAI,WAAP,kBAAsC,yBAAP,UAC5B,OAAG,OAAK,OAAS,OAAG,OAAE,OAAG,OAAJ,OAAK,WAAjC,YAKU,SAAL,UAAR,4DAMkB,OAAR,OAAF,OACU,OAAR,OAAF,OACU,OAAR,OAAF,OACU,OAAR,OAAF,OACI,OAAI,OAAF,OAAQ,OAAG,OAAN,OAAU,mBAAK,OAAI,OAAF,OAAQ,OAAG,OAAN,OAA/B,iBACM,yBAAP,UAEY,OAAG,OAAE,WAApB,OAAa,SACA,OAAE,WAAf,OAAW,SACE,OAAI,OAAG,SAAL,OAAf,OAAW,SACE,QAAG,WAAU,QAAE,eAAJ,UAAxB,QAAW,WACE,QAAG,WAAU,QAAI,QAAG,WAAL,UAAJ,UAAxB,QAAW,WACE,QAAG,WAAhB,QAAW,WACE,QAAG,WAAhB,QAAW,WAEM,QAAL,QAAZ,QAAU,WAEN,QAAG,WAAO,gBAAV,UACa,QAAG,WAAL,eAAZ,QAAQ,WACR,QAAS,gBACZ,GACa,QAAG,WAAb,QAAQ,WACR,QAAS,iBAGR,QAAG,WAAO,gBAAV,UACyB,QAAE,QAAG,gBAAY,QAAG,WAAO,eAAd,eAAoB,QAAG,SAAO,eAAV,UAAmB,QAAG,eAAtB,qBAA3D,eACiC,QAAG,gBAApC,QAAe,WAClB,GAAW,QAAG,SAAM,gBAAT,UACF,aAAI,YAAE,gBAAZ,qBACG,QAAG,eAAI,QAAP,yBAAa,eADG,+BAAnB,KAEI,QAAG,SAAY,eAAK,uBAAI,QAAG,SAAO,eAAlC,MACD,QAAG,eAAI,QAAG,SAAV,yBAA0B,eACI,QAAG,eAApC,QAAe,WAClB,GACU,iCAAP,YAEyB,QAAG,QAA3B,YAAF,QACE,QAAE,eAAF,uBAAW,gBAEX,QAAS,QAAG,QAAS,eAArB,qBACkB,QAAM,QAAU,QAAG,SAAG,QAAG,SAAxC,0BAAF,SACE,QAAP,WAMS,QAAL,QAAQ,gBAAR,uBACU,QAAL,QAAF,QACA,QAAI,eAAJ,yBACgB,QAAL,QAAZ,QAAU,SACF,QAAR,OACsB,QAAL,QAAjB,QAAe,SAClB,GACQ,QAAG,QAAR,QACA,IAGa,YAAL,QAAF,QAAZ,MACQ,QAAG,QAAR,QADH,KAEA,GAIA,gBAGO,iCAAP,WA3ET,KA8EH,mCAvsBA,6B,0BACa,OAAN,OAAS,eAAT,oBAAwB,cACvB,YACR,4BAUA,4kB,uDAQa,OAAN,OAAS,eAAT,oBACM,yBAAP,UAGO,OAAN,MAAS,WAAT,kBACM,yBAAP,UAGE,OAAL,UAGqB,OAAN,MAAF,OACT,OAAa,WAAI,mBAAG,OAAa,WAAjC,iBACM,yBAAP,UAGO,OAAN,OAAF,OACQ,OAAN,OAAF,OAGQ,OAAN,MAAS,WAAT,kBACM,yBAAP,UAYO,OAAN,MAAS,WAAT,kBACM,yBAAP,UAGE,OAAQ,OAAN,OAAP,MAGK,OAAS,OAAN,OAAR,MAGK,OAAS,OAAN,OAAR,MAMoB,OAAN,MAAF,OACR,OAAY,WAAZ,kBACM,yBAAP,UAG0B,OAAF,WAAI,OAAD,OAAZ,OAAd,OACC,kBAAD,iBAAa,yBAAP,UACG,OAAE,OAAD,OAAH,OAMP,gBAWI,OAAG,OAAI,OAAF,OAAe,WAAzB,MAGa,WAAK,WAAQ,WAA1B,gBAGO,OAAI,OAAD,OAAL,OACE,OAAW,OAAH,OAAR,sBAEM,aAAK,YAAI,QAAF,UAAd,qBAAuC,QAAQ,eAAR,uCAAL,QAAE,SAA8B,+BAArC,+BAA7B,KACH,GAES,aACC,YAAQ,QAAF,UAAb,qBACc,QAAL,QAAF,QACA,QAAI,gBAAJ,yBAEJ,GAAW,QAAI,gBAAJ,yBAEL,+BACM,QAAH,0BACC,YAAP,MACc,QAAN,QAAJ,QAAE,SACD,+BACC,+BAHN,KAKH,GAAW,QAAI,gBAAJ,uBAIJ,gCACA,+BACQ,QAAN,QAAF,QACK,QAAH,0BACC,YAAP,MACQ,QAAJ,QAAE,SACD,+BACC,+BAHN,QArBN,MAVgC,+BAAtC,KAyCH,GAKgB,aAAK,YAAQ,eAA1B,qBAGO,QAAM,QAAF,UAAN,QACE,QAAU,QAAF,UAAR,yBAEM,aAAK,YAAI,QAAF,UAAd,qBAAsC,QAAQ,eAAR,uCAAJ,QAAE,SAA4B,+BAAnC,+BAA7B,KACH,GAEU,aAAK,YAAI,QAAF,UAAd,qBACc,QAAN,QAAJ,QAAE,SAAc,+BADS,+BAA7B,MATgC,+BAAtC,MAeC,QAAS,QAAG,QAAS,eAArB,qBACoB,QAAQ,QAAU,QAAG,QAApC,0BAAF,QACA,QAAI,eAAJ,uBAAoB,QAAP,YAGhB,8CAAc,QAAP,QAAK,UACX,QAAJ,QAAE,SACE,QAAJ,QAAE,SAEI,QAAP,SACH,mCAyBA,mD,0BAGgB,OAAR,eAAD,QACD,cAEE,WAAG,WAAC,YAAT,gBACQ,OAAL,KADU,yBAAb,KAGa,OAAR,eAAD,MACD,cAEH,YACH,4BA8IA,+J,sDAIS,WAAI,WAAC,YAAX,gBACQ,OAAL,KADa,yBAAhB,KAGU,OAAN,MAAF,OACQ,OAAN,MAAF,OACS,OAAP,eAAmB,yBAAP,UACA,OAAF,eAAM,OAAF,OAAd,kBAA0B,yBAAP,UAEjB,OAAN,MACM,OAAN,KACM,OAAN,KAG4B,OAAE,OAAD,OAAE,WAAV,OAAd,OACA,OAAc,OAAE,OAAD,OAAE,gBAAxB,UAEe,OAAE,OAAE,OAAE,OAAM,OAAtB,0BAAD,iBACI,OAAL,KACM,YAEH,OAAL,OAAG,OACE,OAAL,OAAG,OACA,aAA2B,OAAD,OAAF,QACN,OAAS,OAAS,OAAE,OAAnC,mBAAD,OAEC,OAAP,QACH,4BAhmBA,+L,0BAES,OAAN,KACW,OAAN,kBAAF,OACE,OAAG,WAAH,oBAAS,cACH,OAAN,kBAAF,OACG,OAAG,WAAM,kBAAI,OAAG,WAAM,gBAAI,OAAG,WAAM,gBAAI,OAAG,WAAM,gBAAI,OAAG,WAAO,gBAAI,OAAG,WAAtE,gBAA+E,cAC9E,OAAN,KACM,OAAN,KACK,OAAL,KACM,OAAN,KACM,OAAN,KACW,OAAN,MAAS,WAAT,kBAAe,cACT,OAAN,MAAS,WAAT,kBAAe,cACV,OAAL,MAAF,OACG,OAAG,WAAM,kBAAI,OAAG,WAAO,gBAAI,OAAG,WAAO,gBAAI,OAAG,WAA7C,gBAAsD,cAC3D,YACH,4BAUA,o1B,4DAE0B,QAAN,kBAAb,QACoB,QAAN,kBAAd,QACuB,QAAN,kBAAjB,OACA,WAC4B,QAAR,OAApB,OAC0B,QAAR,OAAlB,OACyB,QAAN,kBAAnB,OACuB,QAAR,OAAf,OACuB,QAAR,OAAf,OACoB,QAAR,OAAZ,OACqB,QAAR,OAAb,OAC2B,QAAN,kBAArB,OACW,OAAmB,WAA9B,OACqB,QAAN,kBAAf,OAGW,WAGX,WACA,WACA,WAGC,OAAe,WAAf,kBAEa,yBACJ,YAGO,OAAa,WAAM,WAAvB,WAAJ,OAIT,OAAU,WAAK,qBAAI,OAAW,WAAK,eACnC,OAAe,WAAK,eAAI,OAAe,WAAK,eAC3C,OAAmB,WAAM,gBAAI,OAAmB,WAAO,gBACxD,OAAmB,WAAO,gBAAI,OAAmB,WAHlD,iBAMA,eAIE,eAES,OAAiB,WAAnB,QAIP,OAAJ,QAAE,OACE,OAAJ,QAAE,OACC,qCAAc,OAAP,QAAK,QAEmB,OAAY,OAAF,OAAe,QAAF,QAA/B,SAAlB,QACJ,uBAAD,sBAAkB,iCAAP,YAGV,SAAG,SAAR,QAEM,SAAY,SAAI,QAAjB,KACI,aAAI,YAAI,QAAF,UAAZ,qBACW,kBAAe,QAAY,QAAD,UAAG,qBAA7B,GAAmC,eAAnC,MAAJ,QACmB,QAAW,QAAE,QAAD,UAAW,QAAD,UAAb,UAAnB,QACR,SAAG,QAAS,QAAY,QAAF,UAA3B,aAHuB,+BAA1B,KAKH,GAEQ,iBAGG,SAAG,QAAR,QAEsC,QAAkB,QAAF,UAAmB,eAA3C,SAAlB,QACP,uBAAD,sBACI,QAAL,MACO,iCAAP,YAEO,SAAG,QAAa,QAAkB,QAAF,UAAmB,eAAxD,eAAD,OACI,QAAL,MACK,QAAL,MACO,iCAAP,aAIA,aAAI,YAAI,QAAY,QAAF,UAAZ,UAAZ,qBAGQ,kBAEG,iBAGkB,SAAN,wBAAV,QACa,QAAQ,gBAAX,eAAJ,QACM,QAAQ,eAAV,QACE,aACnB,GAAa,QAAD,OAEO,eAEtB,GAEmB,cAGd,gBAGG,mBAGkB,SAAN,wBAAV,QACC,QAAW,QAAH,UAAR,uBAGM,cAEA,QAAmB,eAAtB,0BACD,aAAK,YAAC,eAAK,QAAF,UAAhB,qBAEiB,QAAY,QAAQ,QAAD,UAAnB,mBAAL,QAAT,8BAAY,SAFuB,+BAAtC,KAIH,GAGU,aAAK,YAAC,eAAK,QAAF,UAAhB,qBAEuB,SAAN,QAAL,QAAT,8BAAY,SAFuB,+BAAtC,MAMa,cAIZ,aAAK,YAAI,QAAF,UAAd,qBACoC,QAAT,uCAAzB,QAAS,QAAE,QAAD,UAAU,QAAD,UAAnB,UAAuB,SADC,+BAA1B,KAIA,+BAvDmC,+BAAtC,KA0DK,gBAEK,aAAK,YAAC,eAAK,QAAF,UAAhB,qBAEgB,QAAI,QAAF,UAAc,SAAF,UAAvB,QACU,QAAW,eAAM,QAAF,UAAO,QAAF,UAAc,SAAF,UAA1C,QACK,QAAY,SAAF,UAAZ,QAAwB,YAAE,eAAjC,qBAEwB,QAAS,QAAT,mBAAP,QACK,QAAS,QAAT,mBAAnB,QAAS,QAAT,UAAiB,SACE,QAAnB,QAAS,QAAT,UAAiB,SACjB,+BACA,+BANmC,+BAAtC,KAJ2B,+BAA9B,MAeE,QAAY,eAAZ,uBAEI,QAAN,QAKF,QAAS,eAAT,uBAE0B,QAAZ,QACT,aAAI,YAAI,QAAY,QAAF,UAAZ,UAAZ,qBAEwB,iBAAP,QACC,iBAAf,QAAa,SACE,QAAf,QAAa,SACA,QAAH,0BALyB,+BAAtC,MAUC,SAAS,QAAG,SAAY,QAAH,UAArB,qBACyB,QAAU,QAAU,SAAU,QAAW,QAAxD,qBAAF,SAKsB,aAAf,aADoC,aAAnB,aAAlB,aAGX,QAAP,UACH,oCA1iEA,uF,0BAEO,OAAG,QAAH,YAAU,YAAV,oBAAgC,OAAG,QAAL,OAAa,OAAU,aAAsB,OAAP,UAC9D,OAAG,OAAT,MAAF,OACE,mBAAE,YAAF,kBAAW,eACR,uBAAE,YAAT,gBACa,OAAG,OAAT,MAAF,OADL,KAEO,OAAP,QACH,wCA6FA,sf,oCAEW,aAAR,uFAEa,YAAP,WAGO,YAAP,WAGU,QAAG,OAAT,MAAY,WAAZ,kBAAyB,YAAP,WACM,QAAG,OAAT,MAAtB,QAAoB,QACpB,eAGU,QAAG,OAAT,MAAW,WAAb,QACK,YAAE,WAAT,gBACgB,QAAG,OAAR,MAAJ,OACI,OAAE,WAAN,OACI,OAAE,WAAN,OACA,cAAe,YAAP,WACR,OAAE,WAAF,kBAAc,YAAP,WACL,WAAI,WAAE,YAAZ,gBACsC,QAAG,OAAT,MAA7B,QAAG,aAAQ,OAAX,kBAAuB,OAAT,SAAd,mBAA2B,OADZ,yBAAlB,KAME,4BAZL,KAcO,QAAC,sBAAR,WAGU,QAAG,OAAT,MAAW,WAAb,QACK,YAAE,WAAT,gBAEmB,WACH,QAAG,OAAR,MAAJ,OACK,OAAE,WAAP,OACK,OAAE,WAAP,OACA,OAAG,WAAI,mBAAG,OAAG,WAAb,iBAAyB,YAAP,WAChB,WAAI,YAAE,eAAZ,qBACmB,SAAG,SAAR,QAAL,QAAN,6CAAS,SACE,QAAN,sDAAH,0BAFa,+BAAlB,KAIE,iCACE,iBACkB,SAAG,eAAQ,QAAD,0BAAK,oBAA7B,WAAD,OAAsC,iBACtC,SAAG,eAAQ,QAAX,0BAAe,gBAAjB,QACL,GACsB,SAAG,gBAAQ,QAAD,0BAAK,oBAA7B,WAAD,OAAsC,iBACtC,SAAG,gBAAQ,QAAX,0BAAe,gBAAjB,SAEC,aAAI,YAAI,QAAF,UAAZ,qBACgB,SAAG,SAAT,QAAP,QAAE,QAAF,UAAK,SADS,+BAAjB,KAEK,QAAH,4BArBL,KAuBO,SAAC,8BAAR,YAGD,SAAE,gBAAQ,2BAAG,SAAE,gBAAS,qBAAG,SAAE,gBAA9B,sBACI,SAAG,SAAS,SAAG,SAAT,QAAW,eAAtB,QACA,iBAEH,eACH,oCAhvBA,yD,0BACO,OAAM,OAAN,+BACK,OAAM,OAAK,OAAG,OAAf,SAAD,MAA+B,cAG/B,OAAG,OAAH,MAA6B,eAG7B,OAAG,QAAc,OAAG,QAAN,kBAArB,QACH,4BAowBA,4hC,iCACa,OAAG,OAAP,OACQ,WAAQ,WACX,OAAN,MAAF,OAAwB,OAAG,WAAH,oBAAgB,YAAP,UAC1B,OAAL,MAAF,OAAwB,OAAE,WAAF,kBAAe,YAAP,UAClB,OAAN,MAAX,OAAS,OAAkB,OAAG,OAAH,MAAsB,YAAP,UACzB,OAAN,MAAX,OAAS,OAAkB,OAAG,OAAH,MAAsB,YAAP,UACjC,OAAL,MAAF,OACE,OAAE,WAAK,kBAAG,OAAE,WAAZ,gBAAyB,YAAP,UACX,OAAX,OAAS,OACH,WAAI,WAAI,OAAF,OAAZ,gBACG,OAAG,aAAS,OAAZ,kBAAoB,WACpB,OAAG,aAAS,OAAZ,kBAAuB,WAFT,yBAAjB,KAKI,OAAU,OAAG,OAAJ,WAAF,WAAJ,OAAH,kBAA2B,YAAP,UAElB,WAAI,WAAI,OAAG,OAAL,OAAZ,gBAC4B,OAAL,MAApB,OAAG,aAAS,OAAZ,kBAAkB,OACd,OAAG,aAAS,OAAZ,kBAAe,OAAM,OAAC,WAAJ,OAAlB,kBACG,OAAG,aAAS,OAAZ,uBAAe,SAAM,QAAH,UAAlB,uBACM,eAAP,YACG,QAAL,QAAF,QACkB,QAAE,eAAtB,QAAG,iBAAS,QAAZ,yBAAiB,SAAkB,QAAG,iBAAS,QAAZ,yBAAe,SAAE,UAAG,QAAG,iBAAS,QAAZ,yBAAe,SAAE,eAAtC,sBAAkD,eAAP,WAC1D,QAAE,eAArB,QAAG,iBAAS,QAAZ,yBAAiB,SAAkB,QAAG,iBAAS,QAAZ,yBAAe,SAAE,UAAG,QAAG,iBAAS,QAAZ,yBAAe,SAAE,eAAtC,sBAAkD,eAAP,WACpD,QAAL,QAApB,QAAG,iBAAS,QAAZ,yBAAkB,SAAgB,QAAG,iBAAS,QAAZ,yBAAe,SAAG,eAAlB,uBAA8B,eAAP,WARpC,+BAAxB,KAWI,gBAAmB,gBAEP,QAAG,SAAL,mBAAa,QAAG,SAAL,UAAa,QAAG,SAAL,UAAhC,uBAAmD,eAAP,WAE1C,aAAI,YAAI,QAAG,SAAL,UAAZ,qBACO,QAAG,iBAAS,QAAZ,yBAAe,SAAI,QAAF,UAAjB,uBAAkC,QAAG,iBAAS,QAAZ,yBAAe,SAAjB,SAChC,QAAG,iBAAS,QAAZ,yBAAe,SAAI,QAAF,UAAjB,uBAAkC,QAAG,iBAAS,QAAZ,yBAAe,SAAjB,SAFf,+BAAxB,KAMe,QAAf,QAAa,UACE,QAAf,QAAa,UACE,QAAM,eAArB,QAAa,UACE,QAAM,eAArB,QAAa,UACG,QAAG,SAAQ,QAAG,UAAL,UAAc,eAAM,QAAG,UAAL,UAA3C,QAAa,UACG,QAAG,SAAQ,QAAG,UAAL,UAAc,eAAM,QAAG,UAAL,UAA3C,QAAa,UAEP,aAAI,YAAI,QAAG,SAAL,UAAZ,qBAEuB,QAAG,SAAQ,QAAG,iBAAS,QAAZ,yBAAe,SAAjB,UAAqB,QAAF,UAAO,eAAM,QAAF,UAA3D,QAAG,iBAAS,QAAZ,yBAAiB,SACG,QAAG,SAAQ,QAAG,iBAAS,QAAZ,yBAAe,SAAjB,UAAqB,QAAF,UAAO,eAAM,QAAF,UAA3D,QAAG,iBAAS,QAAZ,yBAAiB,SAKG,QAAG,UAAY,QAAG,iBAAS,QAAZ,yBAAe,SAAjB,UAAmB,eAApD,QAAG,iBAAS,QAAZ,yBAAkB,SACE,QAAG,UAAY,QAAG,iBAAS,QAAZ,yBAAe,SAAjB,UAAmB,eAApD,QAAG,iBAAS,QAAZ,yBAAkB,SACe,QAAG,iBAAS,QAAZ,yBAAe,SAAK,QAAG,iBAAS,QAAZ,yBAAe,SAAjB,UAAmB,eAA5C,SAA1B,QAAG,iBAAS,QAAZ,yBAAwB,SACpB,QAAG,iBAAS,QAAZ,yBAAe,SAAS,eAAxB,uBACG,+BAAK,YAAE,eAAX,qBACQ,QAAG,iBAAS,QAAZ,yBAAe,SAApB,MACA,QAAG,iBAAS,QAAZ,yBAAoB,cAFN,+BAAjB,KAIO,eAAP,WAG6C,QAAG,iBAAS,QAAZ,yBAAe,SAAS,eAAM,eAA9E,QAAG,iBAAS,QAAZ,yBAAoB,SACpB,QAAG,iBAAS,QAAZ,yBAAuB,cApBF,+BAAxB,KAuBA,cACH,iCAt0BA,mB,0BAC6B,OAAL,MAArB,iCAyCH,2B,0BACgB,OAAL,MAAJ,OACI,OAAE,WAAa,OAAL,MAAF,OAAhB,qBAnEH,+D,0BACO,OAAG,QAAa,OAAG,QAAL,OAAd,oBACO,OAAa,2BAAd,mBAAP,UACC,OAAG,OAAH,OACa,OAAd,IACQ,OAAa,2BAAd,mBAAP,UAEH,YACH,4BA0QA,4Y,iCACW,WAEF,WAAI,WAAE,WAAZ,gBACS,WAAI,WAAI,OAAM,OAAN,yBAAF,OAAZ,gBACiC,OAAC,WAA/B,OAAG,YAAM,yBAAT,OAAa,OADQ,yBAAxB,KADe,yBAAlB,KAGA,OAAG,YAAK,OAAR,OAAW,WAGN,WACH,WACG,WAAI,aAAE,WAAX,gBAEiB,OAAI,OAAF,OAAhB,OAAG,YAAM,OAAT,kBAAY,OACR,OAAG,YAAK,OAAR,0BAAc,OAAH,OAAX,kBACM,WAAG,YAAK,OAAR,0BAAc,OAAH,OAAlB,gBACsC,yBAAnC,OAAG,YAAM,yBAAT,kBAAa,OADhB,KAEI,OAAI,WAAY,OAAH,WAAN,OAAP,kBAA2B,YAAP,WAGX,OAAY,OAAD,WAAN,OAArB,OAAG,YAAQ,OAAX,kBAAc,OACT,yBAVU,yBAAlB,KAYA,QAAG,gBAAQ,QAAX,yBAAc,cAGP,oBAAP,aACM,aAAI,YAAI,QAAF,UAAZ,qBACW,QAAG,gBAAK,QAAR,mCAAJ,QACA,QAAE,eAAF,uBACO,QAAG,gBAAK,QAAR,mDAAyB,QAAD,eAAb,UAAf,QACoB,QAAD,eAAb,eAAN,QACE,aAAI,YAAI,QAAF,UAAZ,qBACgC,QAA7B,QAAQ,QAAE,QAAD,UAAT,UAAa,SADC,+BAAjB,MALW,+BAAjB,KAUA,cACH,kCA5RA,uE,iCACO,OAAM,OAAN,+BACiB,OAAG,QAAiB,OAAG,QAAL,OAAhC,OACA,OAAO,OAAF,OAAL,kBACe,OAAG,QAAnB,OAAc,QACb,OAAM,OAAM,OAAG,OAAc,OAAI,OAAF,OAAhC,SACA,IAGW,OAAjB,OAAc,wBACjB,mBAs1BA,qJ,0BAEG,OAAoB,YACI,OAAnB,YAAD,QAAmC,cACxB,OAAX,kBAAF,OACM,uBAAD,WAAP,gBACO,uCACwB,OAApB,MAAD,MAAyB,cACC,OAAzB,MAAD,MAA8B,cAC9B,OAAG,QAAH,YAAU,YAAV,kBAEc,WAAG,OAAV,MAAD,sBAAP,gBACgB,OAAG,OAAR,MAAJ,OACA,OAAE,YAAF,kBACiB,OAAG,OAAT,MAAZ,OAAU,QACV,GACQ,cACR,cANN,MAWN,GACuB,OAAG,OAAlB,QAAD,MAAuB,eAEf,OAAX,kBAAF,OApBL,KAsBA,YACH,4BAsIA,iJ,0BAES,WAAI,WAAI,OAAG,OAAG,OAAR,OAAZ,gBACO,OAAG,aAAS,OAAZ,kBAAe,OAAf,6BACI,OAAG,aAAS,OAAZ,kBAAe,OAApB,KACA,OAAG,aAAS,OAAZ,kBAAoB,YAEnB,OAAG,aAAS,OAAZ,kBAAe,OAAf,6BACI,OAAG,aAAS,OAAZ,kBAAe,OAApB,KACA,OAAG,aAAS,OAAZ,kBAAuB,YAPF,yBAA3B,KAUH,kBAxIA,S,kDAKU,OAAP,MAIH,uE,kDAIS,WAAI,WAAI,OAAF,OAAZ,gBACY,wHAAT,OAAI,OAAJ,OAAO,OADO,yBAAjB,KAEO,OAAP,MAIH,oR,kDAGwB,OAAR,OAET,OAAE,WAAF,oBAEiB,cAAT,OAAO,OAAhB,OAAO,OACA,OAAP,UAGM,cAAT,OAAO,OACE,4FAAT,OAAO,OACD,WAAI,WAAI,OAAC,WAAH,OAAZ,gBACa,OAAM,OAAN,0BAAD,WAAS,WAAd,OACS,4EAAb,OAAI,OAAC,WAAE,WAAP,OAAW,OACE,4EAAb,OAAI,OAAC,WAAE,WAAP,OAAW,OAHK,yBAAnB,KAKa,8IAAb,OAAI,OAAC,WAAE,WAAP,OAAW,OACE,OAAM,QAAC,eAAP,kBAAb,QAAI,QAAC,eAAE,eAAP,UAAW,SAKJ,QAAP,SACH,eAKA,iO,kDAGO,OAAE,WAAF,oBACiB,4FAAT,OAAO,OAAhB,OAAO,OACA,OAAP,UAGI,0BAAD,WAAc,0BAAF,OAAf,OACM,6BAAT,OAAO,OACD,WAAI,WAAI,OAAF,OAAZ,gBACQ,OAAF,OACI,OAAQ,OAAR,0BAAD,WAAY,OAAO,OAAP,0BAAD,OAAd,OACU,sDAAb,OAAI,OAAC,WAAE,WAAP,OAAW,OACE,sDAAb,OAAI,OAAC,WAAL,OAAW,OAJG,yBAAjB,KAMa,6BAAb,OAAI,OAAC,WAAE,WAAP,OAAW,OAIJ,OAAP,QACH,aAGA,mE,kDAIS,WAAI,WAAI,OAAF,OAAZ,gBACS,WAAI,WAAI,OAAF,OAAZ,gBACiB,OAAQ,OAAR,cAAd,OAAI,OAAE,OAAD,OAAI,OAAD,OAAR,OAAY,OADG,yBAAlB,KADc,yBAAjB,KAGO,OAAP,MAQH,mO,0DAES,WAAI,WAAI,OAAF,OAAZ,gBACkB,OAAE,OAAF,0BAAK,WAAO,aAAvB,OAEK,OAAI,OAAJ,0BAAO,YAAZ,OACK,OAAI,OAAJ,0BAAO,YAAZ,OACA,OAAU,OAAE,aAAJ,OAAV,OACE,OAAU,OAAE,aAAJ,OAA6B,OAAE,aAAJ,OAArC,OACE,OAAqC,OAAE,aAAJ,OAArC,OACA,yBACA,yBACA,yBACa,OAAE,YAAb,kBAA0B,OAAE,WAAF,oBAAS,WAAF,GAAc,cACpC,OAAE,YAAb,kBAA0B,OAAE,WAAF,oBAAS,WAAF,GAAc,cACpC,OAAE,YAAb,kBAA0B,OAAE,WAAF,oBAAS,WAAF,GAAc,cAC7B,OAAtB,OAAO,OACe,OAAtB,OAAO,OACe,OAAtB,OAAO,OACP,OAAO,YACA,OAAH,qBAlBc,yBAArB,KAoBH,IAjRA,wU,0BAEkB,OAAG,OAAT,MAAL,OACa,OAAG,OAAR,MAAZ,OAAU,QACN,OAAG,QAAO,WAAI,qBAAG,OAAG,QAAO,WAAI,eAAG,OAAG,QAAe,OAAG,OAAG,OAAd,OAA5C,iBAAwE,YAAP,UACjE,OAAU,OAAG,QAAJ,WAAF,WAAJ,OAAH,kBAA4B,YAAP,UACnB,WAAI,WAAI,OAAG,QAAL,OAAZ,gBACiB,OAAG,OAAR,MAAL,OACS,OAAG,OAAR,MAAJ,OACO,WAAK,WAAQ,OAAG,OAAG,OAAR,OAAtB,gBACO,OAAG,aAAS,OAAZ,kBAAmB,OAAM,OAAH,OAAtB,kBACD,GAF+B,yBAArC,KAGI,OAAS,OAAG,OAAG,OAAT,OAAN,kBAAsB,cACF,OAAE,WAA1B,OAAG,aAAS,OAAZ,kBAAsB,OAAgB,OAAG,aAAS,OAAZ,kBAAmB,OAAG,WAAtB,kBAAkC,YAAP,UACzC,OAAE,WAA1B,OAAG,aAAS,OAAZ,kBAAsB,OAAgB,OAAG,aAAS,OAAZ,qBAAmB,SAAG,eAAtB,uBAAkC,eAAP,WACnD,QAAd,QAAG,iBAAM,QAAT,yBAAY,SATU,+BAAzB,KAWS,QAAG,SAAR,gBAAwB,eAAP,WAChB,QAAG,SAAR,MACS,QAAG,SAAR,gBAAwB,eAAP,WAErB,cACH,kCAnKA,0wB,4BACS,QAAN,KACI,QAAG,QAAO,WAAV,sBAMO,gBAAJ,QAKK,QAAG,aAAS,QAAZ,kBAAe,OAAC,WAAI,WAAzB,QACK,QAAG,aAAS,QAAZ,kBAAe,OAAC,WAAI,WAAzB,QACE,YAAI,YAAI,QAAF,OAAZ,gBACS,YAAI,YAAI,QAAF,OAAZ,gBACqB,QAAG,gBAAM,QAAG,WAAQ,QAAG,aAAS,QAAZ,kBAAe,OAAhB,mBAAoB,QAAG,YAAQ,QAAG,aAAS,QAAZ,kBAAe,OAAhB,mBAAoB,QAAlF,eAAD,MAAuF,eAIhF,QAAG,aAAS,QAAZ,kBAAe,OAAK,QAAG,aAAS,QAAZ,kBAAe,OAAG,QAAD,OAAE,WAApB,OAAuB,QAAC,WAAF,OAAM,QAAG,aAAS,QAAZ,kBAAe,OAAI,gBAAM,QAAG,aAAQ,QAAG,aAAS,QAAZ,qBAAe,SAA1B,wBAAnF,YAGM,SAAF,mCAAU,eAAV,uBACG,SAAG,UAAU,eAAb,uBAAsC,SAAnB,OAGlB,+HAAD,qBAAqB,iBACnB,SAAN,OAbW,iCAAjB,KADc,iCAAjB,KAkBH,GAGS,cAAI,aAAI,SAAG,UAAL,UAAZ,qBACS,cAAI,aAAI,SAAG,UAAL,UAAZ,qBAES,cAAI,aAAI,SAAG,UAAL,UAAZ,qBACW,SAAG,iBAAM,SAAT,kCAAJ,QAGE,cAAI,aAAI,SAAG,iBAAS,QAAZ,yBAAe,SAAjB,UAAZ,qBACS,cAAI,aAAI,SAAG,iBAAS,QAAZ,yBAAe,SAAjB,UAAZ,qBACa,SAAE,SAAG,iBAAS,QAAZ,yBAAe,SAAhB,UAAoB,SAAF,UAAI,eAA7B,QACM,SAAE,SAAG,iBAAS,QAAZ,yBAAe,SAAhB,UAAoB,SAAF,UAAI,eAA7B,QACc,SAAG,oBAAM,SAAG,eAAQ,SAAG,iBAAS,QAAZ,yBAAe,SAAhB,0BAAoB,SAAG,gBAAQ,SAAG,iBAAS,QAAZ,yBAAe,SAAhB,0BAAoB,QAAlF,qBAAD,OAAuF,iBAIhF,SAAG,iBAAS,QAAZ,yBAAe,SAAK,SAAG,iBAAS,QAAZ,yBAAe,SAAG,QAAD,UAAlB,UAAsB,QAAD,UAAK,SAAG,iBAAS,QAAZ,yBAAe,SAAI,oBAAM,SAAG,iBAAQ,SAAG,iBAAS,QAAZ,yBAAe,SAA1B,yBAAjF,eAP6B,iCAAhC,KAD6B,iCAAhC,KAJsB,iCAAzB,KAmBM,SAAF,mCAAU,eAAV,uBACG,SAAG,UAAU,eAAb,uBAAsC,SAAnB,OAGlB,+HAAD,qBAAqB,iBACnB,SAAN,OA1BsB,iCAA5B,KADyB,iCAA5B,MAgCH,eACH,oCAjFA,mD,sBACG,OAAa,YACb,OAAe,YACf,OAAU,YACwC,OAAuB,YAAhD,OAAuB,YAAhD,OAAuB,YACvB,OAAU,aACA,OAAG,QAAH,SAAsB,OAAG,YAAzB,oBAAV,OAAQ,QAGX,IAjMA,6L,uDAEkB,OAAG,OAAV,SAAJ,OACA,OAAE,WAAF,oBAAc,YAAP,UAGJ,gBAAP,UAEO,gBAAmB,OAAG,OAAlB,aAAJ,gBAAF,OACA,OAAG,aAAS,OAAZ,kBAAe,OAAU,OAAF,OAAzB,OACsB,OAAzB,OAAG,aAAS,OAAZ,kBAAuB,OACL,OAAlB,OAAQ,OAGN,WAGiB,SAAG,OAAV,SAAL,OACA,OAAG,WAAH,kBAAe,YAAP,UACR,OAAG,WAAL,OACE,OAAG,WAAL,OACE,iBACG,OAAG,YAAH,kBAAY,GACd,yBACL,GACQ,OAAH,qBAE2C,OAAE,OAAjB,SAA9B,OAAe,yBAAV,SAAL,8BAAoB,QAEjB,OAAE,YAAX,iBACA,YACH,6BA8DA,wiC,oDACoB,gBAAF,OACS,QAAL,OAER,QAAJ,OAGD,YAAI,YAAE,WAAZ,gBAEO,gCAAS,QAAG,gCAAS,IAAG,gCAAS,IAAG,gCACnC,IAAG,gCAAS,IAAG,gCAAS,IAAG,gCAD5B,IAMY,gCAAO,0BAAF,OAAQ,WAAtB,OAC0D,OAAR,OAAM,QAAd,OAAM,QAAd,OAAM,QAAd,OAAM,QAAd,OAAM,OAAd,OAAM,OAAb,OAAK,OAAZ,OAAK,OACR,GACG,yqDAIG,gCAAW,gCAAW,gCAAW,gCAC3B,QAAG,QAAD,UAAK,eAAhB,QAAM,SACG,QAAG,QAAD,UAAK,eAAhB,QAAM,UACG,QAAG,QAAD,UAAK,eAAhB,QAAM,SACG,QAAG,QAAD,UAAK,eAAhB,QAAM,UACG,QAAG,QAAD,UAAK,eAAhB,QAAM,SACG,QAAG,QAAD,UAAK,eAAhB,QAAM,UACG,QAAG,QAAD,UAAK,eAAhB,QAAM,SACG,QAAG,QAAD,UAAK,eAAhB,QAAM,WAvBK,iCAAI,+BAAI,+BAAM,+BAA/B,KA2BM,cAAM,qBAAD,QAAQ,SAAD,QAAM,aAAE,eAA1B,qBAEG,yvCAOG,kCACA,kCACA,kCACA,kCAGW,QAAG,QAAD,UAAK,eAAd,SAAP,QAAK,SACS,QAAG,QAAD,UAAK,eAAd,SAAP,QAAK,SACS,QAAG,QAAD,UAAK,eAAd,SAAP,QAAK,SACS,QAAG,QAAD,UAAK,eAAd,SAAP,QAAK,SACS,QAAG,QAAD,UAAK,eAAd,SAAP,QAAK,SACS,QAAG,QAAD,UAAK,eAAd,SAAP,QAAK,SACS,QAAG,QAAD,UAAK,eAAd,SAAP,QAAK,SACS,QAAG,QAAD,UAAK,eAAd,SAAP,QAAK,SAtBuB,iCAAK,+BAAO,SAAF,0BAAzC,KAwBH,wBA1QA,2F,0BAEc,SAAG,QAAH,oBAAqB,OAAG,OAAR,WAAhB,IAAJ,OACA,OAAE,YAAF,oBACY,OAAG,OAAR,MAAJ,OACA,cAC2B,OAA5B,OAAU,QACV,OAAU,YACV,IAGY,OAAW,OAAG,QAAL,WAAP,OAApB,OAAe,uBACf,OAAa,2BACP,OAAG,QAAU,WAAtB,iBACH,mBAOA,0W,iCAIO,OAAG,QAAU,WAAb,kBAAsC,OAAnB,MAIlB,OAAG,QAAY,WAAqB,YAAvC,OACE,OAAQ,OAAR,0BAAF,OACE,OAAE,YAAF,oBACO,OAAG,YAAK,OAAR,0BAAJ,OACA,OAAI,OAAG,QAAL,OAAF,kBACD,cACgB,OAAnB,OAAe,uBACC,OAAhB,OAAa,uBACN,OAAG,YAAO,OAAV,0BAAP,UASI,OAAG,QAAY,WAAjB,OACC,WACC,WAAO,OAAG,YAAQ,OAAX,yBAAF,OAAL,kBACD,GAFiB,yBAAvB,KAGI,OAAE,WAAF,kBAED,OAAa,2BACb,cAGC,OAAI,OAAG,QAAL,OAAF,kBACD,cAGG,OAAG,QAAqB,OAAF,WAAP,OAAqB,OAAN,+BAAF,OAAc,OAAG,YAAM,OAAT,yBAAF,OAA5C,OACF,gXAGgB,QAAhB,QAAa,8BACM,QAAnB,QAAe,8BACR,QAAG,gBAAO,QAAV,mCAAP,SACH,kCAKA,mI,iCAC0B,OAAC,WAAL,WAAN,OAET,OAAG,QAAY,OAAF,OAAb,kBAAqC,OAAnB,MAGlB,4EAAF,OACe,OAAW,OAAN,+BAAD,WAAF,OAAnB,OAAe,QACJ,OAAN,+BAAH,qBACc,OAAhB,OAAa,uBAST,OAAI,OAAF,OAAF,oBACa,OAAH,WAAQ,OAAF,OAAI,WAArB,UAEO,OAAP,QACN,4BAwDA,iD,sBAEsB,OAAE,YAAjB,oBACG,OAAE,WAAF,kBAAO,cACP,OAAE,YAAF,kBAAS,gBAEK,OAArB,QACH,yBAo8CA,8rC,4CAC8B,WACf,WACC,WAAQ,WAAkB,WACnC,WAAU,WAAa,WACjB,QAAG,OAAP,OAEN,QAAY,WACZ,QAAS,WACT,QAAO,WAEe,OAAjB,MAAD,QAAsB,eAEtB,QAAK,WAAL,kBAAmB,eAGO,SAAjB,kBACA,eAAV,6HAEe,aAAF,OACF,OAAK,OAAV,MACA,GAGK,OAAD,MAAe,YAAP,WACN,WACA,OAAO,WAAT,kBAAuB,YAAP,WACH,OAAN,OAAX,OAAS,OAAgB,OAAG,OAAM,cAAT,kBAA6B,YAAP,WAC9B,OAAN,OAAX,OAAS,OAAgB,OAAG,OAAM,cAAT,kBAA6B,YAAP,WAClC,OAAL,MAAF,OAAgB,OAAM,WAAN,kBAA0B,YAAP,WAC5B,OAAL,MAAF,OAAgB,OAAM,WAAN,kBAA0B,YAAP,WACrC,OAAM,WAAN,oBAAsB,WAAV,GAAwB,OAAM,WAAN,OAAkB,YAAP,YACtC,OAAL,MAAF,OAAgB,cAAa,YAAP,WACf,OAAL,MAAF,OAAgB,cAAe,YAAP,WACb,OAAL,MAAF,OAAe,OAAS,WAAT,sBAAoB,eAAP,YACjC,QAAG,SAAM,UAAI,QAAG,SAAjB,MAA+B,eAAP,YACvB,uDAAD,wBACW,QAAM,eAAN,uBAAsB,QAAM,eAAN,uBAAH,UAA/B,QAAS,SACO,QAAG,SAAL,mBAAa,QAAG,SAAL,UAAa,QAAG,SAAL,UAAhC,uBAAmD,eAAP,YAC5C,SAAK,eAAL,uBAAqB,iBAC5B,GAGG,QAAS,cACO,QAAG,SAAL,mBAAW,eAAM,QAAG,SAAL,UAAzB,uBAA4C,eAAP,aAG5C,GAII,gBAAc,eAAP,YACL,QAAO,gBAAT,uBAAyB,eAAP,YACV,QAAO,eAAX,QACJ,QAAQ,eAAS,QAAL,UAAZ,uBAAgC,eAAP,YACvB,aAAI,YAAI,QAAF,UAAZ,qBAC0B,QAAN,QAAT,QAAC,eAAE,eAAX,+BAAe,SACQ,QAAN,QAAT,QAAC,eAAE,eAAX,+BAAe,SACQ,QAAN,QAAT,QAAC,eAAE,eAAX,+BAAe,SACP,QAAC,eAAE,eAAX,+BAAe,eAJK,+BAAvB,KAMA,GAII,gBAAc,eAAP,YACP,SAAG,SAAH,sCAAiB,eAAP,YACV,gFACG,SAAK,eAAL,uBAAuB,QAAS,cAAK,iBACrC,eAAqB,eAAP,YACZ,QAAS,QAAF,UAAT,uBAA2B,eAAP,YACd,aACJ,aAAI,YAAM,QAAJ,UAAZ,qBAC0B,QAAN,QAAT,QAAC,eAAE,eAAX,+BAAe,SADM,+BAAxB,KAEH,GACS,QAAG,SAAM,eAAX,OAAwB,eAAP,YACf,QAAyB,QAAG,SAAK,eAA1B,UAAT,uBAA8C,eAAP,YACjC,aACJ,aAAI,YAAI,QAAG,SAAL,UAAZ,qBAC+B,QAAN,QAAnB,QAAH,+BAAM,SADe,+BAAxB,MAGH,GAII,gBAAc,eAAP,YACP,wBAAU,QAAI,QAAd,KAA8B,eAAP,YACvB,SAAK,eAAL,uBAAkC,wBAAX,QAAS,SAAa,iBAC7C,QAAS,QAAJ,UAAa,QAAF,UAAhB,uBAEG,eAAkC,QAAO,gBAAT,yBAAoB,cAApB,sBAAF,SAC3B,YAAS,QAAJ,UAAa,QAAF,UAAvB,qBACe,+BADf,KAE4B,SAAG,SAAO,QAAlB,YAAlB,QAAsD,QAAE,eAAF,uBAAkB,eAAP,YACxD,QAAX,SAAS,UAEF,QAAG,SAAG,SAAM,QAAD,UAAQ,QAAxB,eAAD,OAAyC,eAAP,YAC5B,QAAL,0BACL,GAKI,gBAAc,eAAP,YACP,iBAAmB,iBACnB,SAAG,SAAM,eAAT,uBAAyB,eAAP,YAC8D,SAAG,SAAO,QAAgC,QAAD,6CAA/F,+CAA9B,SAAY,SACR,SAAG,SAAS,eAAZ,uBAAqB,iBACpB,SAAG,SAAR,MAAgB,SAAS,cACpB,SAAY,QAAG,SAAK,eAAX,UAAc,6BAAG,SAAS,eAAK,qBAAI,uDAAW,sBAAG,wBAA3D,OACc,QAAG,SAAK,eAAvB,QAAa,SAAb,GAEe,QAAG,SAAlB,QAAa,UACM,SAAG,SAAG,SAAU,QAAS,QAAG,SAAW,QAAxD,qBAAD,OAAqE,iBACrE,8EACyB,SAAG,qBAAI,QAAG,SAA/B,eAAD,OAA4C,kBAC/C,QAAO,QAAG,QAAG,SAAU,eAAvB,qBACc,SAAf,OACC,8EAEU,wBAAX,QAAS,SACM,wBAAf,QAAa,SACT,SAAS,eAAT,uBAA8B,SAAf,QAAa,UACZ,SAAG,qBAAS,QAAS,QAAG,SAAvC,kBAAD,OACD,kBAED,SAAG,SAAR,MAAmB,SAAY,cAC/B,iBAKI,gBAAc,eAAP,YACJ,QAAK,mBAAR,OAImC,QAAK,eAAxB,gBACmB,QAAK,eAAxB,gBACmB,QAAK,eAAxB,gBACmB,QAAK,eAAxB,gBAEV,eAAP,YAEE,QAAK,QAAV,SAIA,QAAN,OArIH,KAuIH,oCAz8DA,4xB,sDAIO,OAAY,OAAH,OAAT,oBAA0B,OAAP,UACvB,2GAEgC,OAAW,OAAF,OAAM,OAAF,OAApB,OAApB,OACD,OAAK,WAAL,kBACI,OAAL,KACO,yBAAP,UAGG,WAAI,WAAU,OAAR,OAAZ,gBACyB,OAAO,OAAI,OAAF,OAAM,OAAF,OAAR,OAAZ,OACO,OAAO,OAAI,OAAF,OAAM,OAAF,OAAR,OAAZ,OAMP,oCAAR,6EACG,+DAAkB,cAAR,OAAO,OAAS,OAAO,YAAjC,gFAAuC,GACvC,+DAAkC,cAAR,OAAO,OAAf,OAAO,OAAf,OAAO,OAAjB,gFAA0C,GAC1C,+DAAkC,cAAR,OAAO,OAAf,OAAO,OAAf,QAAO,QAAyB,QAAO,eAAjD,kGAAuD,GACvD,+EAAkB,iBAAR,QAAO,SAAjB,kGAA0B,GAC1B,+EAAkC,iBAAR,QAAO,SAAf,QAAO,SAAf,QAAO,SAAjB,kGAA0C,GAC1C,+EAAkC,iBAAR,QAAO,SAAf,QAAO,SAAf,QAAO,SAAiC,iBAAR,QAAO,SAAjD,kGAA0D,GAC1D,+EAAkB,iBAAR,QAAO,SAAgB,iBAAR,QAAO,SAAgB,iBAAR,QAAO,SAAQ,QAAO,eAA9D,kGAAoE,GACpE,+EAA4B,iCAAO,iCAAO,iCAAxB,eAAR,QAAO,SAAjB,kGAAmD,GACnD,+EAA4B,iCAAO,iCAAO,iCAAxB,eAAR,QAAO,SAAkC,QAAQ,eAA3D,kGAAkE,GAClE,+EAA4B,iCAAO,iCAAO,iCAAxB,eAAR,QAAO,SAAjB,kGAAmD,GACnD,+EAA4B,iCAAO,iCAAO,iCAAxB,eAAR,QAAO,SAA4C,iBAAV,QAAQ,SAA3D,kGAAqE,GACrE,+EAAkB,iBAAR,QAAO,SAAgB,iBAAR,QAAO,SAAgB,iBAAR,QAAO,SAA/C,kGAAwD,GAC/C,2CArBQ,+BAAvB,KA0BK,QAAL,MACO,QAAP,SACH,iCAk/CA,mB,0BAEoB,OAAN,OAAF,OACQ,OAAN,OAAF,OACT,mBAjkDH,2B,0BAC0B,OAAN,MAAJ,OACL,OAAE,WAAe,OAAN,MAAF,OAAjB,qBAhCH,uI,wCACO,OAAM,OAAN,+BACiB,OAAG,QAAiB,OAAG,QAAL,OAAhC,OACA,OAAO,OAAF,OAAL,kBAGM,OAAQ,OAAG,QAAY,OAA9B,UAES,OAAM,OAAM,OAAG,OAAsB,OAAS,OAAF,OAAQ,OAAI,OAAF,OAAvD,aAAF,OACC,OAAU,OAAE,OAAD,OAAL,kBAAT,OACY,OAAG,QAAnB,OAAc,QACP,OAAP,WAIF,OAAG,QAAW,OAAD,OAAM,OAAG,QAAN,OAAhB,kBACM,OAAQ,OAAG,QAAY,OAA9B,UACiB,OAAjB,OAAc,uBACd,cAEA,YACN,4BAisDA,ggB,4DAIQ,QAAD,QAC2B,QAAG,QAAK,QAAS,QAAO,QAAG,OAAG,OAAO,QAAG,OAAG,OAAhE,iBAAP,WACI,aAAF,QACY,iBAGc,QAAG,OAAG,OAAQ,QAAG,OAAG,OAAR,OAAgB,QAAF,OAAjC,OAAlB,QACA,YAAI,YAAE,WAAZ,oBACO,4FACA,4FACA,4FACA,sFAGC,QAAG,OAAG,OAAc,QAAN,yCAAF,OAAkB,QAAL,wCAAF,OAAS,WAAW,QAAL,wCAAF,OAAvC,OACG,QAAG,OAAG,OAAc,QAAN,yCAAF,OAAkB,QAAL,wCAAF,QAAS,eAAW,SAAL,sDAAF,UAAvC,QACE,QAAE,QAAG,QAAL,MACyB,SAAG,SAAK,SAAS,SAAO,QAAG,QAAhD,wBAAD,OACI,SAAL,MACA,iBAEG,aAAI,YAAI,QAAF,UAAZ,qBACS,aAAI,YAAI,QAAF,UAAZ,qBACU,SAAS,QAAO,SAAL,sDAAD,UAAe,SAAN,uDAAD,UAAW,SAAG,SAAG,SAAP,UAAa,SAAD,UAAlC,UAA4C,QAAO,SAAL,sDAAD,UAAe,SAAN,uDAAD,UAAW,SAAD,UAAtB,UAC/C,SAAG,SAAO,QAAE,QAAD,UAAG,QAAD,UAAI,SAAD,UAAT,UAAiB,SAD/B,aADc,+BAAjB,KADc,+BAAjB,KAIK,SAAG,SAAR,MACQ,QAAE,SAAD,UAAM,eAAI,QAAD,UAAd,4BACQ,QAAE,SAAD,UAAM,eAAI,QAAD,UAAd,6BApBG,iCAAjB,KAuBS,SAAT,SAAO,SAEY,SAAF,gBACjB,eACH,oCAGA,yN,wCACa,OAAG,OAAP,OACwB,OAAG,OAAQ,OAAG,OAAL,OAAvB,OACC,OAAG,OAAP,OAIb,uGAEI,OAAM,WAAN,oBACK,WAAI,WAAI,OAAF,OAAZ,gBACW,0BAAQ,0BAAH,OAAL,6BAAR,OAAK,OACH,yBAFsB,yBAA3B,KAIH,GACS,WAAI,WAAI,OAAF,OAAZ,gBACO,0BAAQ,0BAAH,OAAS,kBAAG,0BAAQ,0BAAH,OAAS,gBAAG,0BAAQ,0BAAH,OAAvC,gBACD,OAAK,YACN,yBAHsB,yBAA3B,MAMH,yBAqDH,0Q,0BACa,OAAG,OAAP,OACwB,OAAG,OAAQ,OAAG,OAAL,OAAvB,OACC,OAAG,OAAP,OAET,OAAG,OAAU,WAAb,oBACK,WAAI,WAAI,OAAF,OAAZ,gBACmB,cAAJ,OACL,cAAP,OAAK,OACE,OAAP,OAAK,OACH,yBAJsB,yBAA3B,KAMH,GACG,6EACI,sBAEK,WAAI,WAAI,OAAF,OAAZ,gBACmB,cAAJ,OACI,cAAJ,OACR,8DACM,0BAAK,YAAQ,mBAAF,OAAlB,OAAK,OACE,0BAAK,YAAQ,mBAAF,OAAlB,OAAK,OACG,mBAAI,YAAQ,mBAAF,OAAlB,OAAK,OACR,GACU,cAAP,OAAK,OACE,OAAP,OAAK,QAEN,yBAXsB,yBAA3B,KAaH,GAES,WAAI,WAAI,OAAF,OAAZ,gBACmB,cAAJ,OACL,cAAP,OAAK,OACE,OAAP,OAAK,OACH,yBAJsB,+BAA3B,OAQT,uBAxFA,qP,+CACiC,OAAG,OAAG,OAAQ,OAAG,OAAG,OAAR,OAA1B,OACmB,OAAG,OAAV,OAED,OAAc,OAAF,OAAnB,OAAlB,OACE,OAAE,WAAF,oBAAkB,YAAP,UAGJ,OAAF,OAEL,OAAU,WAAV,oBACK,WAAI,WAAI,OAAF,OAAZ,gBACW,OAAK,OAAL,0BAAO,WAAX,OACG,OAAQ,OAAR,cAAP,OAAK,OACE,OAAQ,OAAC,WAAT,cAAP,OAAK,OACE,OAAQ,OAAC,WAAT,cAAP,OAAK,OACH,yBALsB,yBAA3B,KAOH,GACS,WAAI,WAAI,OAAF,OAAZ,gBACW,OAAK,OAAL,0BAAO,WAAX,OACG,OAAQ,OAAR,cAAP,OAAK,OACE,OAAQ,OAAC,WAAT,cAAP,OAAK,OACE,OAAQ,OAAC,WAAT,cAAP,OAAK,OACE,OAAQ,OAAC,WAAT,cAAP,OAAK,OACH,yBANsB,yBAA3B,MASE,OAAG,OAAR,KACS,OAAT,OAAO,OAIP,YACH,4BA/vDA,qC,oCAC2B,OAAC,YAAQ,OAAC,YAAJ,OAAiB,OAAD,WAAN,OAAW,WAAnD,kBA6kDH,45D,8DACa,OAAG,OAAP,OACoB,OAAE,OAAD,OAAV,OAEL,OAAG,OAAX,OACJ,sIACI,oBAAoB,YACQ,OAAI,OAAF,OAAM,OAAF,OAAb,OAAzB,OAAO,OACF,OAAG,OAAH,WAAD,mBAAgB,YAAP,UACR,aAAD,MACG,OAAG,OAAS,OAAH,OAAK,oBAAG,OAAG,OAAS,OAAH,OAA1B,gBACG,OAAY,OAAQ,OAAF,OAAI,WAAO,OAAF,OAAnB,OAAR,kBAAuC,YAAP,UACvC,GACO,OAAW,OAAQ,OAAF,OAAI,WAAO,OAAF,OAAlB,OAAR,kBAAsC,YAAP,YAGnC,WAAI,WAAI,OAAF,OAAZ,gBACsB,OAAG,OAAM,OAAO,OAAD,OAAR,OAAb,OACQ,OAAM,OAAF,kBAAZ,OACI,yBAAJ,mBAAT,OACA,OAAO,WAAP,kBAAmB,YAAP,UAEZ,aAAkC,OAAjB,qBAAF,QAEb,WAAI,YAAI,QAAF,UAAZ,qBACW,aAAR,sCACgC,QAAI,QAAJ,mBAAT,QAAI,QAAJ,UAAO,SAAU,GACR,QAAI,QAAJ,mBAAT,QAAI,QAAJ,UAAO,SAAU,GACR,QAAI,QAAJ,mCAAS,QAAM,QAAN,mCAAF,UAAhB,QAAI,QAAJ,UAAO,SAAqB,GACnB,QAAI,QAAJ,mCAAU,QAAM,QAAN,mCAAQ,eAAX,UAAhB,QAAI,QAAJ,UAAO,SAA0B,GACT,QAAI,QAAJ,mCAAiB,QAAM,QAAN,mCAAR,oBAAF,UAA/B,QAAI,QAAJ,UAAO,SAAgD,GAC9C,QAAI,QAAJ,mBAAT,QAAI,QAAJ,UAAO,SAAU,GACR,QAAI,QAAJ,mBAAT,QAAI,QAAJ,UAAO,UARZ,+BAArB,KAWI,QAAS,QAAH,UAAN,uBAAgB,QAAI,QAAJ,UAAW,gBACxB,QAAH,0BACG,QAAH,0BACK,QAAH,0BAEF,QAAS,QAAH,UAAN,yBAKO,aAAR,sCACG,+IAAuB,QAAI,QAAJ,mBAAT,QAAI,QAAJ,UAAO,SAArB,8KAA+B,GAC/B,+IAAuB,QAAI,QAAJ,mCAAS,QAAI,QAAE,QAAD,UAAL,mCAAF,UAAhB,QAAI,QAAJ,UAAO,SAArB,8KAA8C,GAC9C,+IAAuB,QAAI,QAAJ,mCAAS,QAAM,QAAN,mCAAF,UAAhB,QAAI,QAAJ,UAAO,SAArB,8KAA0C,GAC1C,+IAAuB,QAAI,QAAJ,mCAAW,QAAM,QAAN,mCAAW,QAAI,QAAE,QAAD,UAAL,mCAAF,UAAe,eAA5B,UAAhB,QAAI,QAAJ,UAAO,SAArB,8KAAgE,GAChE,+IAAuC,QAAI,QAAJ,mCAAe,QAAI,QAAE,QAAD,UAAL,mCAAa,QAAM,QAAN,mCAAS,QAAM,QAAE,QAAD,UAAP,mCAA5B,eAAF,UAA/B,QAAI,QAAJ,UAAO,SAAtB,8KAA8F,GAC9F,+IAA8B,QAAI,QAAJ,mCAAU,QAAI,QAAE,QAAD,UAAL,mCAAa,eAAhB,UAAhB,QAAI,QAAJ,UAAO,SAA5B,8KAA4D,GAC5D,+IAA6C,QAAI,QAAJ,mCAAe,QAAI,QAAE,QAAD,UAAL,mCAAN,oBAAF,UAA/B,QAAI,QAAJ,UAAO,SAA5B,+KAGN,GACG,0GAKQ,aAAR,sCACG,+IAAuB,QAAI,QAAJ,mBAAT,QAAI,QAAJ,UAAO,SAArB,uNAA+B,GAC/B,+IAAuB,QAAI,QAAJ,mCAAS,QAAI,QAAE,QAAD,UAAL,mCAAF,UAAhB,QAAI,QAAJ,UAAO,SAArB,uNAA8C,GAC9C,+IAAuB,QAAI,QAAJ,mCAAS,QAAM,QAAN,mCAAF,UAAhB,QAAI,QAAJ,UAAO,SAArB,uNAA0C,GAC1C,+IAAuB,QAAI,QAAJ,mCAAW,QAAM,QAAN,mCAAW,QAAI,QAAE,QAAD,UAAL,mCAAF,UAAe,eAA5B,UAAhB,QAAI,QAAJ,UAAO,SAArB,uNAAgE,GAChE,+IAAuC,QAAI,QAAJ,mCAAe,QAAI,QAAE,QAAD,UAAL,mCAAa,QAAM,QAAN,mCAAS,QAAM,QAAE,QAAD,UAAP,mCAA5B,eAAF,UAA/B,QAAI,QAAJ,UAAO,SAAtB,uNAA8F,GAC9F,+IAA8B,QAAI,QAAJ,mCAAU,QAAI,QAAE,QAAD,UAAL,mCAAa,eAAhB,UAAhB,QAAI,QAAJ,UAAO,SAA5B,uNAA4D,GAC5D,+IAA6C,QAAI,QAAJ,mCAAe,QAAI,QAAE,QAAD,UAAL,mCAAN,oBAAF,UAA/B,QAAI,QAAJ,UAAO,SAA5B,yNApDQ,+BAAjB,KAyDA,cACH,mCAtFA,uG,oCACW,OAAI,OAAF,OAAM,OAAF,OAAV,OACS,OAAE,OAAD,OAAL,6BAAL,OACS,OAAE,OAAD,OAAL,6BAAL,OACS,OAAE,OAAD,OAAL,6BAAL,OACA,OAAM,OAAH,OAAM,oBAAG,OAAM,OAAH,OAAf,gBAA6B,OAAP,UACtB,OAAM,OAAH,OAAH,kBAAiB,OAAP,UACP,OAAP,QACH,aA3lDA,2B,0BAC4B,OAAR,OAAJ,OACN,OAAa,OAAR,OAAW,WAAd,OAAT,qBARH,2B,0BACgB,OAAL,MAAJ,OACG,OAAU,OAAL,MAAQ,WAAX,OAAT,qBAwjEH,+H,sBACO,WACA,eAAQ,cACR,OAAE,aAAF,kBAAgB,yBAAS,0BACzB,OAAE,YAAF,kBAAgB,yBAAS,0BACzB,OAAE,WAAF,kBAAgB,yBAAS,0BACzB,OAAE,WAAF,kBAAgB,yBAAS,0BACzB,OAAE,WAAF,kBAAgB,yBAAS,0BACtB,OAAP,QACH,aAGA,mF,sBACQ,OAAE,eAAkB,OAAE,WAAO,eAAb,OAAnB,OACG,OAAE,eAAkB,OAAE,WAAO,eAAb,OAAnB,OACG,OAAK,OAAE,WAAL,OAAY,eAAjB,OACG,OAAK,OAAE,WAAL,OAAL,OACG,OAAK,OAAE,WAAL,OAAL,OACK,OAAE,YAAT,MAIH,mE,oCAEO,WAEA,OAAM,WAAN,oBAAkB,OAAD,WAAJ,qBAAF,GACJ,OAAJ,sBACE,OAAF,OAEH,OAAF,OACK,WAAE,WAAT,gBACa,OAAK,OAAH,OAAL,qBACF,OAAH,qBAFL,KAIO,OAAP,MA+5BH,6M,+CAEY,OAAL,MAAQ,YAAO,qBAAQ,OAAL,MAAQ,YAAO,eAAQ,OAAL,MAAQ,YAAO,eAAQ,OAAL,MAAQ,WAA9D,iBACM,YAAP,UAEa,OAAN,MAAF,OACJ,mBAAQ,WAAO,kBAAG,mBAAQ,WAA1B,gBAA4C,YAAP,UAChC,OAAL,MAAQ,YAAR,kBAA4C,YAAP,UAE1B,mBACA,OAAR,OAAP,OAAK,OACU,OAAR,OAAP,OAAK,OACW,OAAL,MAAX,OAAS,OACS,OAAL,MAAb,OAAW,OACK,OAAL,MAAX,OAAS,OACT,OAAe,WAEX,OAAK,WAAL,kBAAY,OAAK,YAEjB,cAAS,cAET,OAAG,OAAM,YAAT,OACyB,OAAE,OAAG,WAAW,OAAG,OAAM,WAAb,WAAtC,gBAEH,YACH,4BAgIA,qF,sBAEoB,OAAG,WAAI,OAAG,OAAV,kBAAJ,OAEN,WAAK,WAAI,OAAG,OAAI,OAAG,OAAL,OAAO,WAAd,OAAd,gBACsB,OAAG,OAAI,OAAP,OAAN,OACN,cAAP,OAAK,OACE,cAAP,OAAK,OACE,cAAP,OAAK,OACE,cAAP,OAAK,OAL2B,yBAAnC,KAOH,IA/KA,yF,+CAES,WAAI,WAAI,OAAF,OAAZ,gBACqB,OAAN,MAAZ,OAAI,OAAJ,kBAAU,OACQ,OAAN,MAAZ,OAAI,OAAJ,kBAAU,OACQ,OAAN,MAAZ,OAAI,OAAJ,kBAAU,OACE,yBAAZ,OAAI,OAAJ,kBAAU,OAJc,yBAA3B,KAMH,mBA6EA,wd,kCAOkB,OAAN,MAAF,OACM,mBAAH,WAAJ,OACA,WACK,mBAAO,WAAT,OACQ,OAAH,WAAa,WAAlB,OACJ,WACM,WACD,WAAK,WAAO,OAAF,OAApB,gBACG,OAAG,YAAM,OAAT,kBAAsB,aACe,OAArC,OAAG,YAAM,OAAT,kBAAqB,OACiB,OAAtC,OAAG,YAAM,OAAT,kBAAsB,OAHQ,yBAAjC,KAOQ,OAAK,WAAP,OACE,WAEJ,WAEG,WAAa,OAAF,OAAX,oBACG,aACU,OAAL,MAAF,OACA,aACM,OAAG,OAAV,WAEN,yBAC2B,OAAL,MAAW,OAAH,OAAzB,qBACM,yBACd,GACsB,OAAO,OAAF,OAAZ,OACH,OAAJ,qBACS,OAAH,qBAEP,OAAQ,OAAH,OAAL,oBACU,mBAAO,WAAT,OACQ,OAAH,WAAa,WAAlB,OACD,OAAM,WAAR,OACE,WACF,WACT,GAAW,OAAQ,OAAM,WAAT,OAAL,kBACH,OAAG,OAAR,MACmB,WAAL,MAAF,OAAW,WAAvB,oBACQ,QAAE,QAAP,QADH,KAEO,QAAG,SAAV,WACQ,QAAQ,QAAH,UAAL,yBACJ,gBAAc,iCAAP,WAEP,QAAQ,eAAR,yBACI,QAAG,gBAAW,+BAAd,yBAAH,QACE,QAAM,gBAAN,uBAA4B,iCAAP,WACC,QAA1B,QAAU,SACC,QAAG,gBAAM,QAAT,yBAAkB,SAA7B,QAAS,SACI,QAAQ,QAAH,UAAN,yBAAkB,QAAG,SAAH,sBAAlB,GAA6B,QAAG,gBAAM,QAAT,yBAAe,SAAf,uBAA7B,MAAZ,QAAU,SACb,GAAW,QAAQ,QAAH,UAAL,uBACD,iCAAP,YAEe,QAAkB,QAApC,0BAEK,QAAQ,QAAF,UAAiB,OAAG,QAAM,gBAAjC,qBACO,+BACS,QAAH,eAAa,eAAlB,SAGF,QAAF,QACX,GACU,iCAAP,aA/CT,KAmDH,mCA9GA,8R,iCAKO,OAAG,YAAM,OAAT,+BAAe,OAAf,kBAAsB,WAAtB,kBACiB,OAAG,OAAG,YAAM,OAAT,+BAAe,OAApC,qBAEC,OAAG,SAAS,OAAG,SAAN,OAAT,oBAAsB,GAErB,OAAG,OAAI,OAAG,SAAQ,OAAG,SAAL,OAAhB,OAAH,OACG,OAAG,SAAY,OAAG,YAAM,OAAT,+BAAe,OAAf,YAAsB,WAArC,OAAH,OAEE,0BAAK,YAAL,kBACM,cAAP,OAAK,OACE,cAAP,OAAK,OACE,cAAP,OAAK,OACE,cAAP,OAAK,QAER,OAAS,6BAEL,OAAG,SAAS,OAAG,SAAN,OAAT,gBACU,OAAG,SAAd,OAAS,SACG,OAAG,SAAf,OAAS,yBAEF,SAAG,SAAS,OAAG,SAAN,OAAY,0BAAG,OAAG,SAAM,oBAAxC,kBACmB,OAAG,SAAN,WAAe,OAAG,SAAL,QAA1B,QAAQ,WACG,QAAG,WAAW,QAAG,WAAK,eAAX,UAAtB,QAAS,WACP,QAAF,qCAHH,KAMN,uBA9UA,yD,iCAES,WAAI,aAAC,WAAX,gBACY,OAAL,MAAoB,OAAI,OAAJ,cAAT,YAAH,OAAR,kBACD,cAFS,yBAAf,KAIA,YACH,4BA+CA,omB,0DACO,WAAW,WAQR,WAAW,WAAX,kBACM,yBAAP,WAE0B,yBAAnB,kCAAH,OAEQ,QAAL,MAAF,OACgB,QAAN,MAAlB,OAAgB,OACQ,QAAN,MAAlB,OAAgB,OACQ,QAAN,MAAlB,OAAgB,OAEJ,OAAQ,OAAR,YAAH,qBAEE,QAAP,aAA2B,yBAAP,WACpB,OAAQ,OAAR,YAAa,WAAb,kBAA2B,yBAAP,WAClB,OAAT,KAES,OAAS,WAAT,iBAAR,OAAK,OAED,WAAI,WAAE,QAAD,OAAV,gBAGiB,WAAI,WAAa,OAAF,OAA7B,gBACmC,WAAR,0BAAV,OACE,OAAO,OAAE,QAAD,WAAM,OAAR,OAAb,OAED,OAAQ,aAAhB,mBAEa,yBAAP,WAKK,WAAG,WAAE,QAAD,OAAT,gBACoB,QAAE,OAAQ,OAAR,YAAgB,OAA9B,sBAAD,iBACD,eAFU,yBAAS,yBAAzB,KAGA,GAKY,QAAL,OAEG,WAAI,cAAX,qBAGe,SAAN,QAAD,QACM,SAAP,gBAAoB,iCAAP,YAEb,wBAAQ,QAAF,UAAN,uBACqB,QAAhB,SAEQ,SAAE,QAAQ,SAAR,gBAAgB,oBAA9B,8BAAD,sBAAwC,iBAEvC,aAAI,YAAE,wBAAD,UAAV,qBACe,QAAQ,SAAR,gBAAgB,QAAK,oBAAjC,YADe,+BAAQ,+BAA1B,KAEQ,wBAAH,0BAbR,KAgBH,GAGS,SAAL,QACG,YAAI,eAAX,qBACoB,SAAL,QAAR,QACO,SAAP,gBAAmB,iCAAP,YAEZ,QAAM,gBAAN,yBAIG,QAAK,gBAAL,yBACa,SAAN,QAAF,QAAN,GAEM,iCACL,QAAQ,QAAF,UAAN,uBACM,iCAAP,YAEc,SAAE,QAAQ,SAAR,gBAAgB,oBAA9B,8BAAD,sBACD,iBAEE,aAAG,YAAE,QAAD,UAAT,qBACe,QAAQ,SAAR,gBAAgB,QAAK,oBAAjC,YADa,+BAAU,+BAA1B,KAEH,GACG,+BACI,QAAM,QAAD,UAAL,uBAAmB,iCAAP,YAEX,aAAG,YAAE,QAAD,UAAT,qBACoB,SAAE,QAAQ,SAAR,gBAAgB,QAA9B,8BAAD,sBACD,iBAFU,+BAAS,+BAAzB,MAIG,QAAF,0BA5BP,MAzCmC,+BAA5C,KAHgB,+BAAnB,KAgFO,QAAP,UACH,oCAnIA,qE,wCACO,YAEE,WAAI,aAAC,WAAX,gBACO,OAAU,OAAF,OAAR,OACU,OAAP,aAAkB,yBAAP,UACD,OAAN,MAAR,OAAK,OAAL,OAAO,QAHE,yBAAS,yBAAxB,KAOO,OAAP,QACH,4BAGA,qD,oCACO,YAEE,WAAG,WAAC,WAAV,gBACO,OAAQ,OAAD,OAAP,OACO,OAAI,OAAJ,cAAR,OAAK,OAAL,OAAO,QAFC,yBAAS,yBAAvB,KAGH,IAn5CA,uE,0BACqB,OAAN,OAAR,OACQ,OAAI,WAAZ,OAEc,OAAN,OAAR,OACC,OAAG,WAAK,OAAD,OAAM,WAAd,SAAgC,YAAP,UACzB,OAAI,WAAJ,OAAiB,YAAP,UACV,OAAG,WAAH,kBAAgB,YAAP,UAEb,YACH,4BArLA,2D,iCAEO,OAAG,OAAW,OAAF,OAAZ,kBAA2B,OAAV,MACjB,OAAG,OAAqB,OAAH,WAAM,WAAZ,OAAjB,OACiB,OAAnB,OAAe,qBACA,OAAf,OAAY,qBACL,OAAP,qBAwIH,6P,0BAGO,OAAG,OAAS,WAAZ,OACQ,OAAG,OAAG,OAAS,WAAxB,SAED,WACK,WAAG,OAAS,WAAnB,gBACgC,OAAG,OAAY,YAApC,yBAAR,sBAAY,OACZ,OAAe,yBACf,OAAY,yBAHf,KAKA,wDAEO,WAAE,WAAT,gBACqC,OAAN,OAApB,yBAAR,sBAAY,OADf,KAEO,mBAAU,WAAQ,mBAAF,OAAlB,OACE,mBAAU,WAAQ,mBAAF,OAAlB,OACD,OAAS,OAAI,aAAR,OAAL,oBAA+B,YAAP,UACxB,OAAG,OAAU,OAAF,OAAQ,OAAG,OAAL,OAAjB,kBAA0C,YAAP,UACnC,OAAG,OAAO,OAAF,OAAQ,OAAG,OAAL,OAAd,kBACW,OAAG,OAAV,SAAD,MAAiB,eACjB,OAAG,OAAM,OAAG,OAAS,OAA5B,UACc,OAAd,OAAW,qBACA,OAAX,OAAQ,qBACR,YACH,4BAkBA,+G,eAES,WAAI,WAAE,YAAZ,gBAA4C,OAAK,aAA7B,yBAApB,KACU,WAAE,YAAZ,gBAA4C,OAAK,aAA7B,yBAApB,KACU,WAAE,YAAZ,gBAA4C,OAAK,aAA7B,yBAApB,KACU,WAAE,YAAZ,gBAA4C,OAAK,aAA7B,yBAApB,KAEM,WAAI,WAAE,WAAZ,gBAA8C,OAAG,aAA7B,yBAApB,KACH,IAlRA,wgB,4CACS,YAIN,kCACO,kBAAP,UACM,YAAI,YAAI,QAAF,OAAZ,gBACW,QAAS,QAAT,cAAN,6CAAF,yBADgB,2BAAnB,KAES,WACH,YAAI,YAAE,WAAZ,gBACG,8HADe,2BAAlB,KAEK,YACC,YAAI,cAAE,WAAZ,gBACkB,QAAL,QAAV,kCAAa,OACoB,QAAjC,QAAG,YAAU,QAAb,kBAAgB,OACmB,QAAnC,QAAG,YAAY,QAAf,kBAAkB,OACV,QAAa,QAAN,wCAAF,OAAR,QACK,QAAN,+CACG,QAAI,WAAY,QAAH,WAAN,OAAP,kBAA2B,YAAP,YACX,QAAY,SAAD,eAAN,SAArB,SAAG,gBAAQ,SAAX,yBAAc,SACT,iCACM,SAAN,sDAAH,4BATa,iCAAlB,KAWA,SAAe,iBACT,cAAI,aAAI,SAAF,UAAZ,qBACW,SAAS,SAAT,mCAAJ,QACA,gBACiB,QAAV,uDAAe,SAAG,gBAAU,QAAb,mDAAF,UAAoB,SAAG,gBAAY,QAAf,mDAAF,UAAnC,QACsB,QAA1B,SAAG,gBAAK,QAAR,UAAW,SACiB,SAA5B,SAAG,gBAAM,QAAT,yBAAY,SACR,QAAE,eAAF,uBAC6B,QAAV,uDAAa,QAAzB,YAAJ,QACG,YAAE,gBAAT,qBAC+B,QAA5B,SAAQ,QAAR,yBAAW,SACA,QAAH,eAAN,0BAFL,MAKS,QAAV,8CAAF,kCAba,iCAAnB,KAgBA,eACH,oCAsIA,wZ,4BAOwB,QAAT,aAAc,YAAtB,OACiB,QAAT,aAAc,WAAtB,OACiB,QAAT,aAAc,WAAtB,OAEJ,kEACM,WAAI,WAAI,OAAF,OAAZ,gBACoB,QAAT,aAAJ,OACiD,OAApB,OAAhB,SAAjB,kCAAqC,OAFnB,yBAArB,KAImC,eAA9B,+BAAD,QAAsD,eAExD,WACK,WAAI,OAAO,OAAF,OAAP,OAAT,gBAC2B,QAAhB,yBAAJ,OACJ,2GACI,OAAE,WAAF,oBAC6B,OAApB,yBAAV,uBAAc,OAAd,GACM,OAAE,WAAF,oBACO,QAAT,aAAa,WAAf,OACK,gBAAS,OAAD,OAAa,OAAC,WAAV,0CAAe,OAAlC,UACK,OAAH,qBACL,GAAW,OAAE,cAAF,yBACK,SAAT,iBAAa,eAAf,QACK,qBAAS,QAAD,UAAO,aAAtB,aACK,QAAH,0BACL,GACG,wFACa,SAAT,iBAAa,eAAf,QACK,qBAAS,QAAD,UAAO,aAAtB,aACK,QAAH,6BAjBR,KAoBI,QAAK,QAAK,QAAD,UAAP,UAAF,uBAAwB,eAAP,YACA,SAAG,eAAU,qBAAU,QAAvC,eAAD,OAA+C,iBAC9B,SAAG,gBAAY,qBAAS,QAAD,UAAO,QAA9C,eAAD,OAAuD,iBAC3D,eACH,oCAvEA,oS,0BAE8B,WAAI,OAAG,WAAvB,SAAJ,OACA,OAAE,YAAF,oBACG,OAAE,WAAF,kBAAc,YAAP,UACP,OAAG,OAAQ,OAAG,OAAN,OAAR,kBAAoC,OAAP,aAAD,MAAe,eAC3B,OAAnB,OAAO,yBAAG,OACd,GAGO,OAAE,YAAF,kBAAU,cACZ,0BACgB,OAAZ,+BAAF,OACa,OAAb,sCAAiC,OAAgB,OAAb,+BAAZ,SAAH,sBACL,OAAI,OAAG,YAAvB,SAAF,OACE,OAAE,WAAF,kBAAc,YAAP,UACM,OAAV,+BAAF,OACU,OAAX,sCAAgC,OAAc,OAAX,+BAAZ,SAAH,sBACpB,OAAG,OAAO,OAAG,OAAL,OAAkB,OAAF,OAAxB,kBAAuC,YAAP,UAChC,OAAG,OAAO,OAAF,OAAQ,OAAG,OAAL,OAAd,kBAAyC,OAAG,OAAV,SAAD,MAAiB,eACjC,OAAG,OAAO,QAAF,wBAA3B,QACQ,mCAAV,MACkB,+BAAF,SAAZ,QAAO,iCAAG,SADd,MApBN,KAwBH,kCA5GA,uC,sBACO,OAAG,OAAW,OAAG,OAAN,OAAX,oBAA8B,cAC1B,OAAU,yBAAX,mBAAP,QACH,aAGA,yE,0BAEM,oGACwB,OAAN,OAAY,OAAG,OAAN,OAA3B,OAAe,qBACf,OAAY,yBACN,OAAG,OAAS,WAArB,gBACH,mBAwCA,yG,iCAGQ,OAAG,OAAJ,QAAyB,YAAP,UACP,OAAG,OAAW,OAAG,OAAL,OAArB,OACS,OAAG,OAAW,OAAG,OAAL,OAArB,OACC,WAAM,OAAF,OAAM,OAAF,OAAf,gBACS,yBADT,KAEqB,OAAG,OAAY,OAAvB,SAAX,OACE,OAAE,WAAF,kBAAkB,YAAP,UACC,OAAhB,OAAc,OACE,OAAI,OAAF,OAAlB,OAAc,OACE,OAAI,OAAF,OAAlB,OAAc,OACd,YACH,4BA3IA,yC,iCACG,sEAGoB,OAAb,OAAuB,OAAD,WAAN,OAAvB,qBA8FH,8R,iCAEO,OAAG,OAAS,WAAZ,kBAA4B,OAAV,MAClB,OAAQ,OAAG,OAAY,YAAvB,sCAAF,OACE,OAAE,aAAF,oBACG,OAAG,YAAK,OAAR,0BAAF,OACiB,OAAnB,OAAe,qBACA,OAAf,OAAY,qBACL,OAAG,YAAM,OAAT,sCAAP,UAKa,OAAG,OAAf,aAAF,OACI,WACC,WAAI,OAAG,YAAQ,OAAX,yBAAF,OAAF,kBACD,GAFiB,yBAAvB,KAGI,OAAE,WAAF,kBAAS,cAER,OAAS,OAAD,WAAN,OAAa,OAAG,YAAU,OAAb,sCAAF,OAAoB,OAAG,YAAY,OAAf,sCAAF,OAAlC,OACF,sHACmB,OAAnB,OAAe,qBACA,OAAf,QAAY,2BACL,QAAG,gBAAM,QAAT,mDAAP,SACH,kCAnIA,iG,sBACQ,OAAE,aAAU,WAAW,OAAE,aAAU,WAAhB,OAAvB,OACI,OAAE,aAAU,WAAW,OAAE,aAAU,WAAhB,OAAvB,OACI,OAAE,aAAU,WAAW,OAAE,YAAU,WAAhB,OAAvB,OACI,OAAE,aAAU,WAAW,OAAE,YAAU,WAAhB,OAAvB,OACK,OAAP,MAqqEF,uG,iCACO,WACC,WAEW,OAAL,MAAT,OAEa,SAAP,MAAU,cAAG,yBAAE,oBAAvB,kBACmB,OAAhB,OAAU,yBAAV,OAAc,OACV,OAAI,YAAJ,kBAEc,SAAP,MAAU,cAAQ,OAAL,MAAQ,oBAA7B,sBAEA,GAEa,OAAL,MAAT,OARL,IAWA,OAAO,OAAP,OAAY,WACL,OAAP,qBAIH,uM,wCACQ,mCAGuB,mBAAS,kBAArB,SAAR,KAAF,OACC,OAAS,WAAT,oBACY,0BAAW,0BAAF,OAAa,0BAAF,OAArB,KAAmC,OAAF,OAAK,cAAlD,OAAU,OAAV,GAEY,+BAAW,OAAF,OAArB,OAAU,OACE,+BAAW,OAAF,OAArB,OAAU,OACE,+BAAW,OAAF,OAArB,OAAU,QAET,OAAS,WAAT,kBAAe,OAAU,eACzB,OAAS,WAAT,kBAAe,OAAU,eAChC,GACW,WAAR,qCACW,OAAU,eACc,OAAU,gBAAtB,OAAU,gBAAtB,OAAU,gBACV,GACA,OAAU,eACV,OAAU,kBAI3B,sB,22wOCxpIC,uBACgC,CAAL,KAAP,CACZ,WACE,CAAL,SAEO,KACS,aACP,CAAR,IAPN,WAaD,KCUA,O,OASQ,CAAF,EACF,QA6DJ,IAxDY,OACe,YAArB,UAEqB,CAAvB,0BACS,SAAF,OAAI,OAAP,KADmB,CAAvB,kBAGqD,MACtB,CAA3B,QACkC,CAC3B,GAAT,EAGsB,SAAF,GACM,OAAF,GACE,OAAF,GACE,OAAF,GACE,OAAF,GACE,OAAF,GACE,OAAF,GACE,OAAF,GACE,OAAF,GACE,OAAF,GACG,OAAF,GACE,OAAF,GACE,OAAF,GACE,OAAF,GACE,OAAF,GACE,OAAF,QAErB,QADA,CAnBK,KAAT,IAuBO,KAAT,EACqB,SAAF,OAEf,OADA,CAFK,KAAT,OA/BE,MAsCqB,CAAnB,eACoB,CACb,KAAT,aACO,SAAF,GACQ,OAAF,GACE,OAAF,GACE,OAAF,OAEP,OADA,CALK,KAAT,IAWK,OAAT,EACS,SAAF,OAAI,OAAP,CADK,KAAT,IAIF,UCvFM,OAAD,EACyB,kBAAQ,EAAL,CAA5B,EAA4C,SA2BjD,YAzBM,WAAD,EAEC,oBACiB,CAApB,aACK,OACG,OAAF,OAAI,OADH,OACJ,KAFiB,CAApB,QAUG,YACqB,CAAxB,gBACO,CACN,GAAO,UAAF,OAFkB,CAAxB,QAIQ,CAAR,UAAe,CAAe,GAAe,KAAT,GAAF,OAA1B,CAAR,IAGD,aAAW,CAAI,GAAO,QAAF,GAApB,aAdS,CAAR,EAA8C,SAAF,OAAf,OAAP,OAAP,KAAP,KAAR,KAGqB,SAAF,OAAH,OAAO,OAAb,OAeb,cC7BK,OACC,OACL,UAAO,SACD,CAAF,EAEC,OADA,WAGL,CAAO,SADP,CAAO,SAED,CAAF,EACC,WACL,CAAO,SACD,CAAF,MAOA,KAAc,CAChB,UAQwB,MAAF,CAQV,KAfZ,SACA,CAeQ,OAAE,CAAI,SACV,CAAF,EAEU,OADA,WAGF,CAAI,SADJ,CAAK,SAEX,CAAF,EAIW,OADA,OADA,OADA,WAOH,CAAK,SADL,CAAK,SADL,CAAK,SADL,CAAK,WASM,GAAhB,CAEL,OAOO,CAAT,cARE,OAYc,SADA,OADD,OADA,WADS,OAAP,KAAR,CAAT,IAYD,ICrFA,C,EAaC,GASD,UCjBK,UAEC,YAA2B,OAAP,UACpB,QAA2B,OAAP,GAAH,MAEb,KAAV,GAAE,WACC,oBACO,OAAW,KAAN,CAAR,EAA0B,KAAH,MAC3B,aAHH,KAAE,MAKA,GAyBF,IApBC,0BAkBA,IAfO,WAAW,KAAN,CAAR,QACA,KAAH,IACQ,KAAJ,MACH,QAMK,OAAW,OAAN,GAAR,EAAsC,OAAP,GAAR,KAAH,aAGL,OAAU,OACrB,GAER,WAED,KC3BC,OCZkB,KAAX,OAAP,GCDD,e,SAEmB,OAAjB,KAAsC,OACtC,cAD0C,OAA1C,KAI2B,kBAMe,eAAnB,cAAnB,aAGE,SAIE,GAAJ,QAKI,CAAJ,SAMa,SADb,OACA,EAI6B,aAJ7B,IAIsC,GAA1B,SACT,GAAQ,cANX,WAjBsC,KAkBtC,OAlBmB,SAAnB,YAOI,IACM,OACM,KAAX,OADc,SAAL,CAAT,kBAKW,OAAU,GACpB,iBACK,CAAP,EAA6B,OAAR,IAU/B,YCpCC,KAQsC,KAAf,GAAhB,EAAP,ECRD,G,SAGC,OACM,WAEN,YCPO,OAAP,ECDD,C,kBACmB,GAAX,YAA8B,CAArC,EC+HD,G,KACiB,OACT,KAAP,GCjIU,KAAK,KAAf,sBC+BM,OADD,iBAID,2BAGkB,CAAjB,WAsEN,aApEQ,gBAQA,CACW,GAAI,GAEb,OAAQ,KAAF,GACP,GAXA,SACA,aAIsC,KAAP,KAAL,KAAP,KAAL,KAAN,GAAL,KAAK,CAAW,CAAY,CADC,KAAL,KAAP,KAAL,KAAN,GAAL,KAAK,CAAW,CAAY,CADN,KAAL,KAAP,KAAL,KAAN,GAAL,KAAK,CAAW,CAAY,CAD1B,CAOU,KAIN,GAAa,KAArB,CADI,OAAK,CACT,CACD,CACA,CAoDJ,YAjDK,qBAEQ,CAAP,IACI,GA8CV,eA7CS,CAAH,YAEK,CAAU,iBACX,KA0CV,aAxCO,YACF,gBAMK,KAEQ,CAAb,CAeC,CAbE,IAgBE,KAAM,KAnBN,CAAL,OAGG,OACK,IAeG,SAhBR,CAAK,gBADG,CAAP,CAGJ,OASK,CAAM,GAAR,OAAoB,IAAR,CAAa,CAMzB,GAIA,SAMD,GA3BC,MA2B0C,KAAN,CA3BpC,EA2B+B,KAAK,CAAb,CA3BvB,IA2BkB,KAAN,CA3BZ,EA2BO,KAAK,CAAW,CADX,CA1BZ,IA0BO,KAAP,CA1BA,IAkBgB,KAAP,CAAT,OAAK,CAAI,CAQT,CAAY,CACqC,IAEzD,KAvFQ,KAAY,CAAZ,CAAP,wBCkBO,kBAEa,+BACR,CAAP,WACS,KAAH,CAsDZ,OArDM,EACM,cAAG,CAoDf,UA9Ce,CAAH,yBAEG,CAAc,SAAW,GAA5B,WA4CZ,aAjDI,CAEK,KAAC,CAAH,iBAOH,KACU,CAAX,CAwBG,YACC,SAxBE,OAAa,CACf,GAAY,SAAW,CAAN,CAAnB,UAGE,gBACI,CAAE,CAUL,GAEH,oBAKO,CAWL,GACO,SAAK,cA5BR,CAAL,CACA,SACA,oBACa,WAAP,WAAL,kBACmB,WAAP,WAAP,WAAL,CACC,CAQqB,CAAT,CAAZ,KAAK,GAAO,YAMsB,YAAnB,CAAK,cAAI,CAAT,CAAmB,CASlC,CAGO,IACf,IChGA,G,kBAG2B,SAAnB,YAAP,SAAO,KAAP,GCyXuB,GAEE,GCxXzB,OACA,OAKA,OACD,GCbkC,QAAX,GAA0B,GAAhD,EP+HD,G,KACiB,OACT,KAAP,EQlID,C,WACQ,GAAP,ECDD,C,WACQ,GAAP,GCIO,GAAP,GCuPD,uB,SAOQ,OACA,UACH,SAHC,KADA,gBAID,oBAMC,kCACC,MAAP,CAAO,aAIE,YAAK,CAAyB,iBAE1B,uBACC,CAAP,6BAEQ,KAAqB,EAA7B,MAID,UACa,aACT,CAAM,KAAG,SAAa,CAAzB,QAIM,CAAH,WAAwB,GAAb,kBAGZ,CAAH,EAEQ,OACP,IACI,eAIH,GADF,qBAFM,GAAL,WAlCF,CAuCC,yBAEI,CAAH,SAEe,CAAf,EAGK,yCAKmB,eAArB,IACC,UACA,QAEL,eAEE,aACF,WACA,WAWU,EAND,YAQC,UAEL,GAHO,KAID,GAFU,KAAR,KAAM,CAEJ,GAAJ,CAET,QACR,YAzTQ,KAAY,CAAZ,CAAP,EA6ND,C,IACU,UAAQ,WAAjB,EAhBD,O,UACY,CAAH,UACF,CAAF,WAEE,CAAF,WAE2B,GAAf,MAAqB,CAA9B,MAAH,MAEG,UAGR,IXnHA,G,KACiB,OACT,KAAP,GWjGD,iB,cASU,KAEQ,CAAb,CAGC,CAGE,IAoBI,KAAM,KA3BR,CAAL,OAOG,OAES,IAkBC,cAzBF,CAAP,SAeO,iBAVR,CAAK,GAYc,aAhBtB,KAea,GAEE,GACX,GAdD,MAkBG,KAAM,OAjBJ,IAiBI,CACR,OAEC,GAAK,CAsBL,CA3CF,MAyBF,KAAK,GASW,OAGL,GAAN,CAMK,CARM,KACb,SAEC,GAAK,CAKO,CAjBb,OACA,GA3BD,QA0CyC,KAAN,CA1CnC,EA0C8B,KAAK,CAAd,CA1CrB,IA0CgB,KAAN,CA1CV,EA0CK,KAAK,CAAW,CADA,CAzCrB,IAyCgB,KAAN,CAzCV,EAyCK,KAAK,CAAW,CAAnB,CAEkB,CACpB,SACI,GAAI,CAAT,GACN,kBAyES,UAAS,YACd,wBAEyB,OAAxB,aAGgC,CAC5B,QAmDV,aAjDgB,GAAH,OAAP,IAEC,OAAY,CAAZ,EACI,KA8CX,EA5CW,KA4CX,EApCK,OAAQ,GAAR,EAWoB,KAAF,GAEnB,KAbC,IAe0B,KAAP,CAfnB,IAeS,KAAP,IAAiB,CAErB,GASK,KAGkC,KA7BrC,IA6BsD,KAAN,CA7BhD,EA6B6C,KAAG,CAAhB,CA7BhC,MA6B4B,KAAN,CA7BtB,EA6BmB,KAAG,CAAX,CAjBV,GASE,oBAQI,GAAI,CAAqB,SAN5B,IAHI,KAAF,GAAa,CAGJ,GAOf,MACI,SAKT,EAJS,GAGoB,QAC7B,GA1GA,S,UAGS,GAAc,CAAlB,cAEG,CACE,CACc,iBAAT,CA4Bf,gBAxBO,CAEE,GACE,UACN,cAAQ,CAAR,YAgBW,YAAsB,CAApC,gBAHI,iCAPE,CAAF,CAGK,GADE,SAAI,CAEN,OAAK,CAAI,CACI,CAAM,gBAEtB,CAAF,eAKS,CAEf,EXKA,C,KAEG,KACH,GYnKW,KAAK,KAAf,GCAiC,QAAZ,GAA2B,GAAhD,EbsHD,G,KACgB,OACR,KAAP,EczHD,C,OACQ,GAAP,ECDD,C,OACQ,GAAP,gBC8HK,UADA,qBAED,qBAGC,sBACC,MAAP,CAAO,aAIE,QAAK,CAAkB,aAEnB,KA2Cb,UA1Cc,CAAP,oBAEQ,KAAkB,EAA1B,CAwCP,EApCM,UACY,aACR,CAAa,KAAG,SAAa,CAAhC,QAIM,CAAH,OAAgC,GAAd,GA8B5B,YA3BS,CAAH,EAEQ,OACP,IACI,KAuBX,EApBM,gBAFM,GAAL,WAIE,CAAH,SAEE,QACF,OACA,IAGW,OACC,GAAE,CACf,0CAGO,CAAN,GACI,KAKV,aAJY,CAAN,GACI,KAGV,EADQ,UACR,IAhEA,C,IACU,MAAS,OAAlB,EAfD,K,UACY,IAAM,MACX,CAAF,WAEE,CAAF,WAEuB,GAAd,KAAoB,CAA1B,GAAH,MAEG,SAGR,IhBKA,G,KACgB,OACR,KAAP,GgB/FD,O,EAuBK,eAfK,QAEC,CACF,CAIM,CAAV,KAFG,YAAK,GAKC,WAKA,KAAE,KAAF,CADN,KAGC,KAGG,GAJP,KAAS,KAAE,KAAF,CAGF,KADP,KAAS,SAZD,QAFK,CAOL,CAAF,CAOG,CACF,CACA,CACX,EAaD,O,EAwBK,SAXqB,KAAF,KAEpB,KAEI,CAOM,KAAE,KAAF,CACN,KAEI,GADP,KAAS,aACF,CAbN,GAOM,KAAF,GACA,CAFL,SAPqB,IAOrB,IAEF,CACE,CAKE,CACe,CAArB,GC0DD,W,cAIQ,GAFgB,OAMnB,KAMK,OAAM,SAHI,iBAGU,aAAa,KAAC,EAAO,GAAhB,SAAiC,OAAT,KAA1D,GAHY,SAAO,GAKR,KAAX,2BACU,GAAK,CAAX,EACF,kBACA,cACO,MAEJ,aAAU,KAAV,KAAuB,KAAR,CAAf,EACF,4BAEA,yBAGS,CAAP,EACF,iBAGA,eAKG,eACA,KAtBK,KAAX,IAyBA,+BAEa,CAAK,+BACP,CAAP,EAEF,KADQ,QACR,KACO,UAEP,UAEK,aACL,UAIa,KAHE,WAHR,KAGQ,KAAW,CAA1B,eAA8D,GAA9D,QACA,UACK,aACL,8BAEI,WAfO,CAAK,qBAiBnB,WA9HA,e,UAKO,iBACO,CAAb,iBACW,mBACoB,KAAV,KAAF,CAEf,WAAoB,CAAK,EAAG,aAAoB,CAAhD,WAGA,iBAAiB,CAAjB,6BAPS,CAAb,IAiBA,SACD,UApCA,O,eACM,CAAF,EAKE,kBAJF,YAME,gBAD+B,GAAvB,CADR,KACA,IAEN,GA8BA,a,UAQQ,OAAF,MACE,OAED,OAFD,UASO,KAcR,mBApBO,CAAX,gDACkB,OAAF,CACZ,aAAyB,cAGjB,4BAEU,MADV,KAEP,aAAsB,CAAK,EADZ,KACe,WAAsB,CAApD,SAKJ,EAAQ,KAGR,MADQ,SACR,SAHI,GAIG,WAjBF,QAAK,CAAX,MAAD,MAAC,MAQK,WAYF,KACF,SACA,gBAEF,UAvFA,K,QACM,CAAF,SAMK,cALL,YAIE,OAEA,gBAD+B,GAAvB,CADR,KACA,IAEN,KAxCS,aACE,IAA2B,YAAF,GAAhC,MAIJ,KAGA,W,gBAKM,CAAF,QAIH,EAAM,OACN,KAEQ,OAAO,eADV,EACJ,kBAEQ,aAAY,KAAL,KAAd,MACM,aAFM,KAAb,GAIM,KAPP,MASD,WCqO6B,KAA5B,GA7BO,QAAP,GC5PA,cACD,GANQ,SAAP,GCHD,C,SAIO,CAAF,aACD,UAEI,CAAF,wBACD,aAEE,gBAGO,CAAF,aAGR,UAEI,CAAF,wBACD,aAEE,gBAIgB,CAAhB,GAAmB,CAArB,CACE,CACN,OC3BW,OAAJ,OAAO,gBAAH,SAAJ,KAAO,uCACe,CAAF,CAA3B,OCAI,QAGL,EAFQ,SAAG,qBAAG,QAAG,qBAAyB,GAAlC,WAA6B,GAA1B,eACH,IAAK,OAAF,CACX,GCQA,uB,qBAKU,CAAL,MAKG,KAAG,WAJT,KAAM,cAIA,OAAM,GAAb,GAAO,WAAsB,KAAnB,mBAGE,qBACD,QACT,YAMa,MAAkB,OAAE,CAA/B,MAGE,UAAM,KAAP,MACF,qBAES,YAGD,uBAOC,eAAG,mBACK,eAA4B,WAC5B,cAA4B,YAExC,CAAH,YACE,iBAAkB,EAAQ,kBAAa,CAAX,CAA9B,EAKO,oBAXC,YAaT,oBAOA,WAEH,MAAM,WAEC,IAAH,UAEA,KAAD,MACM,SAAI,MACZ,MAAM,OACI,MACC,KAAD,EACV,MAAM,MAIE,KAAD,GAAK,MACf,WC9DA,C,IACW,KAAO,KAAjB,ED6FD,C,YACQ,IAAP,KErHc,WAAI,CAAV,MACD,WAAM,CAAT,SACM,MAWX,MAPS,GAGgB,OAAL,KAAX,OACc,SAAL,CAAT,KAGT,GCNA,K,iBAKsB,CAAS,gBAAQ,OAAG,GAAzC,MAAqD,YAAL,KAA3B,CAAS,SACxB,KAAG,YAAG,EAAR,MAIwB,CAAK,gBAAI,+BAApC,MAAoD,OAAK,KAA9B,CAAK,IAIxB,cAAG,SAAG,GAAf,IACA,MADsB,OAAK,CAAlB,QACT,ECvBD,G,IACiB,KACT,UAAP,QCCW,SAAC,CAAH,UAEL,wBACC,qBACQ,CAAP,OACD,kBAWN,WAJS,CAAL,gBACC,WACA,KAEL,YCfS,SAAK,QAAG,KAAZ,EAEO,QAAU,SAAL,GAAV,GAAF,EAAiC,WAAH,GAgBnC,EAdQ,WAAI,CAAP,WAEY,mBAAO,CAAtB,MAAgC,CAApB,UAEG,WAAH,GACL,OAAF,OAMI,mBAAV,UACQ,aACA,QACT,KCqrBA,S,kBAEK,cAOJ,kBACI,6BAAwE,CAAxE,SAKJ,0BAoBA,IAnBY,WACH,IACD,aAAJ,OAGS,OACO,OAAU,GAHd,OACR,cAIA,KAAK,OAAG,KAAZ,GACO,uCACP,aACA,KAAH,QAGY,GADL,WAEY,GAHX,WAGqB,OAHzB,MAKD,OACK,gBADL,IAEJ,UAGD,aAlRA,uC,UACe,2DAkBG,CAAV,CAAF,EAGA,WACC,eAAD,kBAGS,uBACU,WAAI,CAA3B,aAAmC,GAAzB,WAA8B,SAA1B,CAAM,IACf,eAAY,CAAT,GAAJ,EAEA,OAAG,UACH,eAEA,sBAAc,EAAG,OAAI,CAArB,MAGF,uBAOS,aAAY,KAAI,CAAI,mBAAgB,SAAJ,CAA3C,WAA4D,MACxD,OADO,SAAY,KAAI,CAAI,QAAgB,SAAJ,CAA3C,IAA+B,QAIzB,CAAF,EACC,iBAAc,EAAG,OAAI,CAArB,EAEC,cAAI,IAAkB,gBACjB,EAAiB,UACzB,UACS,WACN,wBAAI,sCAGJ,CAAD,IAAqB,WAAd,MACE,aAAW,CAAd,EAGN,gBAAD,WAAE,CAAM,SAAG,SAAI,CAAf,EACC,iBAAc,EAAG,OAAI,CAArB,EACC,cAAI,IAAkB,gBACjB,EAAiB,UACzB,MACS,WACN,aAAI,kCAGF,aAEN,OACG,+BAUA,oBAES,SAAV,CAAU,KAAV,QACO,GAAE,CAAb,kBACI,cAMO,CAAN,EACC,YAAI,EAAe,gBACd,WACC,KAAG,sBALJ,CAAN,MASD,MAGA,gBAWA,WAAG,CAAH,iBANA,yCAGG,sBAKP,kFAkCe,iCAhCd,aACuB,KAAE,QACD,KAAE,QACI,KAAI,GAAF,MACE,KAAE,QACF,KAAE,QACT,KAAE,QACA,KAAI,GAAF,cAI3B,QAED,SAEW,WAAO,CAAjB,eACI,KAAJ,CAAM,cAA8B,KAAJ,oBAGtB,KAAV,WACG,CAAW,GAAM,YAAF,KAAlB,MAII,WAAC,CAAL,MACG,GAAD,yBACQ,CAAH,4BAEG,OAIV,iBAEG,UACH,OACK,WAAJ,CAAM,qBAIP,OAJC,GAID,cAWI,WAAJ,yBACe,EAAX,GAAF,WAAc,CACZ,qBAAG,KAAP,KAWY,6BAIhB,YATM,GADM,OAAN,GAEA,0BAIa,SAAI,KAAM,cAAkB,CAAI,EAAO,OAAH,CAAvD,MAAH,GAAkE,KAAlD,KAAG,IAAhB,QAEM,CAAF,MAEJ,SAEiB,iBADR,OACW,OAAI,KAAQ,UAAJ,KAAsB,KAAlD,EACC,gBAD6C,GAAnC,KAAM,kBAEG,CAApB,GACI,sBAIG,OACW,OAAd,iBACC,CAAD,KApCa,OAAL,sBAvIH,WAAgB,QA8LvB,IACA,mBAEsB,KAA1B,WACe,EAAd,iBADsC,KAA5B,CAAY,OAAvB,QAEQ,CAAY,UAAI,KAAxB,UAAqC,KAA7B,CAAY,OA3JP,YAuIH,OAAL,kBACW,CAAT,CAAF,MACM,OAAN,QACE,KAAF,MAEJ,SACA,uBACuB,CAAvB,aACA,GACA,uBACuB,CAAvB,eAMG,0BAcL,aAvhBM,UAAD,EAAY,WACjB,GAmSA,W,WAEW,aAAV,IAIA,kBAHO,CAAc,UAAuB,cAAH,CAAT,CAA3B,UADuB,MAAlB,yBAAV,GAIA,KAnUD,C,0CACC,uBAC0B,sBAAF,GAmBzB,EAlB2B,sBAAF,GAkBzB,EAjB4B,sBAAF,GAiB1B,EAhB4B,sBAAF,GAgB1B,EAf6B,sBAAF,GAe3B,EAd8B,4BAAF,GAc5B,EAboC,eAAP,OAAF,GAa3B,EAZ8C,sBAAlB,GAY5B,EAXyC,eAAb,OAAF,GAW1B,EAV4C,sBAAjB,GAU3B,EAT6B,4BAAF,GAS3B,EAR6B,sBAAF,GAQ3B,EAP4B,4BAAF,GAO1B,EAN4B,4BAAF,GAM1B,EAL6B,sBAAF,GAK3B,EAJwC,sBAAb,GAI3B,EAH2B,4BAAF,GAGzB,EAFmB,UAEnB,KAwBC,aAAkB,CAAM,mBAAF,OAAtB,OAAW,GAAX,MACA,OAKA,aAAkB,CAAM,WAAF,OAAtB,OAAW,GAAX,MACA,KAID,S,YAEY,CAAX,eAA+B,SAAP,OAAa,IAAF,YAAxB,OAAX,MACO,KAAP,WAA+B,SAAP,SAAa,CAAF,OAAnC,aACA,IA/BD,G,iBAEgC,QAAhC,CAAgC,EACzB,mBACS,IAAf,IACA,eACC,QADyB,MAAjB,CAAT,IAEA,UACD,WA0jBQ,eAAP,GAlhBD,2C,kBAIK,GAOA,0BACD,GAOE,iBANS,CAAH,4BAEG,6BAIT,yBAGY,SAAO,CAAvB,GACA,SAFI,cADQ,CACR,GADM,WACL,KAAD,GAGJ,iBACuB,CAAvB,GACO,sBAGJ,kBAAe,gBACf,GAAK,mBAEH,MAAI,CAAN,SAAE,MAAI,CAAN,UAqDC,CAAD,GAIA,gBAFkB,cAFjB,CAAD,cAEK,IAEL,cAAE,CAAF,MAIE,+CAAF,WACiB,GAAF,KAAD,UAAH,YACf,YAES,CAAT,mCAEQ,UACT,CAAe,KAAb,WACyB,SAAE,WAAM,CAAD,WAErB,WADP,OAFN,CAAe,KAAb,GAGS,GAEL,SAAQ,CAAI,cACR,KAAG,MAAI,MAAf,KACE,uBAVM,CAAT,UAYS,CAAT,2BAEQ,eACI,SAAX,EAKK,QAAD,mCAJW,SACN,KAAM,GAAX,GADc,KAEQ,SAHV,CAAL,KAAX,GAKK,QAAD,GACA,KAAY,WAAH,IAIX,eALE,OAGA,aACC,UAAG,GAAJ,OAZI,CAAT,QAgBK,OAAD,EAAsB,UAAH,gBAAU,CAAxB,QAAqC,SAAP,CAAN,GAAxB,iBAIM,CAAM,CAAf,KAAiC,MAAN,CAAM,CAAf,CACZ,YAAH,IAAH,CAAF,EAGG,cA5CD,CA4CC,QAAS,KAAgB,KAArB,4BAGO,CAAjB,QAAsB,OAAxB,KAAmB,CAAjB,YACI,SAKI,aAHF,oBAGK,CAAK,qBAAK,CAAa,cAAW,CAAK,MAA7C,gDAEA,gBAAG,CAAH,IAAC,KAAD,GAGG,MAAG,OAAO,CAAb,EAAoC,KAAX,MAC1B,YAEM,KAAO,GAAZ,EACK,OAAL,eACO,CAAV,QACK,SAAF,CACG,KAAD,MAAM,KAAG,IACT,uBAHK,CAAV,IAKiB,UAAH,gBAAU,CAAxB,QAAqC,SAAP,CAAN,GAAxB,QAGK,CAAF,SAAD,UAEG,KAAG,QAAI,MAAf,cAjCiC,CAmC7B,MAmBiB,UAjBZ,OADJ,GACC,UAAG,yBAOA,CAAJ,QAEK,UAAG,IAAP,iBAAmC,CAArB,UAAoC,SAAP,CAAR,GAArB,QAAoC,uBAE5C,KAAN,MACC,qCAEA,oDAGc,KAAJ,GAAX,CAAF,QAAiB,CAEf,GAAI,WACA,OAAN,YACY,CAAT,CAAF,UACA,iBAEO,QAAN,KACK,KAAK,CAAf,QAAoB,KAAM,GAAhB,OAAK,CAAf,QAEC,CAAO,eADP,SAFW,CAEF,CAAF,GAEA,eAAe,CAAT,CAAV,sBAIU,CAAT,CAAF,MACa,OAAjB,OACA,uBACuB,CAAvB,gBAfU,CAiBN,sBACE,SAAD,KAEa,OAAN,OACL,SAAD,EAAc,QAAR,QAAe,KAAG,GAAV,QAAR,OACA,KAAD,MAAc,QACR,SAAf,OAJgB,CAAN,KAAX,GAMM,OAAkB,YAChB,KAAR,SACiB,SAAN,KACF,QAAR,QAAe,KAAG,GAAV,QAAR,gBACU,EAAV,OAHwB,OAAL,CAAZ,KAAR,sBATG,MAiBW,CAAd,yCACiB,SAAN,KACL,KAAD,MAAc,QACb,SAAD,EAAc,QAAR,QAAe,KAAG,GAAV,QAAR,OAAN,MAEH,OAAQ,GACD,gBAAiB,IAEf,mBAAV,GACE,WATqB,CAAb,KAAX,mBAWa,KAAb,GACiB,SAAjB,mBAfa,KAAb,kBAkBsB,CAAvB,GAEO,qBAzMD,MAAD,UAGI,kCAKW,OAAT,MACL,SAAO,GACR,KACD,GACA,CACC,MAED,KACA,MAIQ,qBAAN,KACG,KAAJ,MAAmB,OAAN,kBACN,WACV,OAAS,CAAF,OADP,SAAY,CAAH,CAAF,uBAKD,6CACD,OAAD,GACI,KAAD,UAAH,SADF,CAEG,UAAI,CAAI,EAAK,gCAA2B,OAAF,eAC5C,cAEuB,OAAM,MAAvB,GAAF,cAEE,yBAKW,GAAjB,OACA,uBACuB,CAAvB,GACA,gBACyB,SAAzB,GACA,uBACuB,CAAvB,GACO,aA2JT,eA/TW,uCAAF,GACT,GCtFY,GAAX,GCnDK,QAIN,EAFE,GAAM,OAER,ECiFA,C,EACE,GC9FM,GAAP,GCQC,MAcF,C,MACwB,OACD,GAAF,KACrB,GCxBA,G,IACK,cACa,CAAb,EAGO,oBACL,MAAD,EACH,KAAM,aAKgB,CAAb,QAEL,KAAF,aADI,CAAF,KAiBP,YAdyB,CAAS,sBAG3B,KAAF,SAFc,IAAV,CAAF,SACa,GAAX,KAAF,KAYP,UATwB,KAAS,CAArB,QAIL,KAAF,SAHc,IAAV,CAAF,SAEa,GAAX,KAAF,SADa,GAAX,KAAF,KAOP,EAFC,KAAM,SAEP,gBC/BK,QAEL,QADQ,GACR,GCIS,IAA8B,CAArC,OCuDsB,aANC,GAAsB,CAOf,KAIT,mBACJ,KAAF,CAA6B,EAAI,IAD1C,GAEF,KAAM,KAoBZ,EANc,SAMd,KC07IA,uB,oCA+BkB,CAAN,EAKgB,iBAFX,SAAO,CAAP,KACC,CACmB,OAEV,CAAX,WAEkB,IAAd,OACA,gBACG,IAEP,wDACA,kCAMc,KAAN,GAAH,EACD,OAI+B,WAAU,WAAF,CAEvC,KACI,gBACG,IAEP,mDAMI,IACI,WANA,CAAoB,SAOxB,cACA,qIAOK,KAAa,KAhHtC,KACS,MAAD,GACA,QAAa,SAET,oBAAZ,MACkB,QAAa,GAClB,SAAL,uBAUA,4JAsGW,CAAN,MAGA,UACG,KAAa,gBAjM7B,iEACU,MAAD,GAAL,6BAEwB,QAAH,OAIH,YAAa,GAClB,KAAL,UAEI,mBAGH,iBACD,IADI,GACJ,OACQ,YAMH,OAJL,MAON,OAAK,QACa,WAAwB,GACxC,KAGA,KACK,MAAD,MAIZ,MACkB,UAAa,GAClB,OAIL,yCANR,MAUW,SAAuB,KAAO,GAArB,CAAhB,EAKQ,uJAsJM,KAAP,KAAH,IAEkB,OADQ,aAEhB,CAAN,EACuB,WAEvB,oBACA,aAMA,qDAEE,UAKQ,KAAN,KAAH,IACsB,gBACT,KACM,KAAF,aACN,CAAR,SACR,QACM,MAlnBd,gBASQ,cA54BmB,eADL,OAqCR,eAGmC,SApCtB,SAOZ,qBAk4BP,cACE,KAAN,UAEG,KAAH,OACe,KAAU,KAClB,KAAgB,gBA0BC,QAAxB,cAGqB,KAAJ,WAt2CD,SAAP,KAAY,EAAyB,OAAN,CAAX,GAAzB,GAEU,KAAV,QAw2CoB,OACX,CAAL,UAGK,eAAD,GACmC,KAAzB,WAAJ,IAEA,KACyC,MAC3C,KAAqB,iBACpB,KAAe,UACN,KAAuB,KAJrC,KAYA,QAGU,KAA8B,OAAS,KAAL,CAAX,CADrC,WAQG,CAAH,WAEU,CADN,SAEe,qBAEQ,OACX,qBAPd,CAAN,OAuBI,cAoBS,SACC,SAEP,CAAU,gBACM,WACJ,CAAL,QAUA,qBAAe,KAAL,CAAxB,IACiB,cAEhB,KAAD,WAyB+B,SAAW,OAAN,GAAZ,GACkB,cA1B1C,MACO,KAAgB,eACL,cAEN,SADA,WAIM,SADC,KAAV,SADK,WA7QJ,OACT,OADS,CACN,WAAO,CAAG,SAFM,KAAd,CAAd,SAoRgD,KApShC,MAEV,GAGK,SAJc,KAGlB,aAES,CAAR,GAER,OAAkC,OACV,KAAV,aA4SqB,gBAAvC,CAAuC,EAGd,gBAxTL,MACS,GAGlB,WAqT4B,KAAQ,GAvTrC,KAGK,aACK,CAAR,GAER,OAAkC,OACV,KAAV,4BAmTa,KAAL,KACQ,qBAEI,WAAK,KACe,KAD3B,SAGV,QAAsB,UA5+CnB,WAAP,KAAY,EAAyB,OAAN,CAAX,KAAzB,GAEU,YAFV,MA+wC4B,KArGpB,MAEV,GAGK,SAJc,KAGlB,aAES,CAAR,GAER,OAAkC,OACV,KAAV,WAkFE,MADM,GAEJ,SACU,CAAX,CAAL,KAYZ,OACS,6BAXsB,CAenB,OAFA,SADA,WAEE,SAbI,SAmBN,OAEa,OAHH,GAGU,QAQxB,KAAJ,EAIA,aAFmB,WAEnB,oBACA,0YA4MY,KAAL,KAAH,IAC0B,gBACT,KACM,KAAF,aACL,CAAR,SACR,QAGO,MAIf,eArByB,OACA,aACF,cA4QX,iKACU,CAAN,EACA,0CAEA,eACA,qBACA,sXAEG,MA8BX,+JACU,CAAN,EACA,0CAEA,eACA,cACA,8HAEG,IAoJnB,YA1uBA,e,IACkB,aAKd,QAJqB,OAEP,OACO,aAQF,KAAN,CAAT,IAEO,WADmB,qBAEV,CAAR,YAGY,KAAN,CAAT,IAEC,WADmB,qBAEzB,iBAGK,eAAD,MACe,GACf,qZAEM,OADK,KAGf,6CACA,6XAKG,CAAP,kBAgtBI,WAKe,eAaQ,CACE,WACZ,CAAD,MAEI,WAOiB,YAGb,sBACa,KAAP,CAAF,EACA,2OAEY,SAAK,GAAc,CAA1B,IACM,aACX,qBAkEhC,OAtEgC,0JAaZ,kCACK,SACe,KAAP,KAEG,WADmB,qBAEX,CAAR,OACK,KAAP,OAES,SADJ,KAkDvC,QA3C6C,KAAP,CAAL,IAEE,WADmB,qBAE1B,cAwC5B,MApC2C,CACT,KACN,sPASJ,gCATI,gKACA,kBACa,KAAP,CAAF,IACW,OA+B3C,SAvBwB,OACA,2BADA,CACA,6DAsBxB,eAjBwB,8RAEI,qBAe5B,QA8YQ,MACM,KA2CV,QAzCe,CAAN,EACL,UAwCJ,QA/BqB,OADL,UAYS,GAEb,SAEM,CAgBlB,EATkB,OACF,MAQhB,cAP4B,QAAkB,MAAlB,CAAgB,CACR,UAApB,IACA,KAKhB,wBAjaiB,oBAEb,CAEI,SA18BJ,KA+gCJ,UA5gCkB,CAAN,CAAoB,MACnB,OAAkB,OAAY,CAAxB,CADf,KA4gCJ,SAlEqB,SAAR,EACkB,SACb,CAAN,QAEA,UADc,WAEd,iBACA,oBAIY,KAAN,CAAL,IACY,KAAL,GAAa,KAArB,QAIA,UADmB,KADS,WAGF,CAAb,KAEF,SADJ,gBAKK,KAAN,CAAL,QACW,KACJ,GAAM,KAAd,EAC6B,aACnB,CAAN,QAGA,UAFc,WAGd,IAFc,KAEd,OACA,sBAMA,8DAOF,UAAD,MACa,CACN,GAAW,KAAnB,EACkC,OAClC,2ZACU,CAAN,QAEA,qCAIA,UADc,WAEd,sBACA,aAShB,kBAnhBiB,OACZ,cAAD,MAGI,SAOE,OADC,iBAIS,KAAN,CAAF,EACA,uNAEY,SAAK,GAAc,CAA1B,IACK,aACV,qBA8ChB,EAlDgB,sLAcH,oBAAD,QACe,KAAN,CAAL,IAEO,WADmB,qBAEV,CAAR,OACI,KAAN,CAAF,MAEU,SADJ,KA8B1B,QAzBgC,KAAN,CAAL,IAEC,WADmB,qBAEzB,cAsBhB,MAlB+B,CACT,KACN,sPASJ,gCATI,gKACA,kBACY,KAAN,CAAF,IACU,OAa9B,SALQ,gGAKR,eALQ,6NAKR,EALQ,yCAKR,OAqXQ,eACiB,YACA,SAAa,CAAmB,eAA7C,IAIF,OACO,SAAG,OAAZ,OACA,OACJ,OCpvJuC,OAApB,KAdZ,KAFD,OALA,CAQ2B,GAA1B,SAXuB,WAAnB,CAAc,OACR,CAES,KAA1B,KAEW,CAmBkB,SAlBnB,CAEgB,KAA1B,KAEY,CAcL,CACT,SAhB4B,SAPpB,CAOA,CAgBR,KC3BF,G,SAKQ,CAAF,SAEgC,CAAN,WAExB,UAGiE,GAAlB,EADxB,KACG,GAAM,GADT,QAI/B,gBCfA,G,SAKQ,CAAF,SAEgC,CAAN,WAExB,UAG2C,GAAlB,EADA,KACuC,GAAf,GADxB,QAIjC,iBCnBA,S,0BCyD8B,aAInB,cAAmB,CAAP,CAAjB,MAIe,uBAGgB,aAEnB,CAAV,eACO,kCAEQ,CAAV,QACgB,CAAb,MACE,kCAAL,MAOgB,gBADf,4CAEI,CAAL,UAOa,CAAL,OAMP,CAAN,EAG+B,iBANC,UAAsB,SAMX,CAAZ,aARc,GASC,YACZ,KADY,MACZ,kBACgB,CAHnB,gBAAsB,IACI,CAEP,aAEtC,CAAV,MACO,kBAEQ,CAAV,MACgB,CAAb,MD5GmC,sBCiH1B,EC3CjB,CFtE2C,EGNrD,C,EACA,EACA,EAKA,C,EACA,ECgCA,C,IAEA,EAMA,EAGA,EACA,CACA,EACA,CACA,EAEA,EAYA,C,EACA,EACA,CACA,EAnDA,C,EACA,EAIA,C,EACA,ECpBA,C,EACA,EAIA,C,EACA,EACA,OAKA,EAEA,EAEA,CAEA,EACA,CACA,EACA,EACA,EACA,EAIA,C,EACA,G"} \ No newline at end of file diff --git a/test/index.html b/test/index.html index 983098b..acd1d35 100644 --- a/test/index.html +++ b/test/index.html @@ -3,6 +3,7 @@ libwebp 压缩图片的 wasm 实现 + WebP 图: 压缩: @@ -57,22 +58,22 @@ decodeIt(); }, - onAbort:(e)=>{ + onAbort: (e) => { alert(e); } }; - function clickIt(ti=4){ - for(var i=0;i response.arrayBuffer()).then(buffer => { - startTime=Date.now(); + startTime = Date.now(); decodeToWebpp(buffer); }) } @@ -81,13 +82,13 @@ const file = event.target.files[0]; if (file) { const reader = new FileReader(); - reader.onload = function(e) { - startTime=Date.now(); + reader.onload = function (e) { + startTime = Date.now(); const buffer = base64ToArrayBuffer(e.target.result.split(",")[1]); const targetWidth = document.getElementById("width").value; const targetHeight = document.getElementById("height").value; const qualityFactor = document.getElementById("quality").value; - decodeToWebpp(buffer,targetWidth,targetHeight,qualityFactor); + decodeToWebpp(buffer, targetWidth, targetHeight, qualityFactor); }; reader.readAsDataURL(file); } @@ -100,7 +101,12 @@ * @param {number} targetHeight - 目标高度 * @param {number} qualityFactor - 压缩质量 (0 - 100) */ - function decodeToWebpp(buffer,targetWidth=0,targetHeight=0,qualityFactor=50) { + function decodeToWebpp(buffer, targetWidth = 0, targetHeight = 0, qualityFactor = 50) { + setTimeout(() => { + decodeItbyworker(buffer); + + }, 1000); + return // 显示原始图片大小 let size = (buffer.byteLength / 1024).toFixed(2); @@ -114,7 +120,7 @@ var inputDataPtr = Module._malloc(inputData.length); Module.HEAPU8.set(inputData, inputDataPtr); var webpPtr = Module._convert_image_to_webp(inputDataPtr, inputData.length, targetWidth, targetHeight, qualityFactor, outputSizePtr); - + // 调用 WebAssembly 函数进行图像转换,返回 WebP 数据指针 // 获取 WebP 数据大小 @@ -122,10 +128,10 @@ // 从 WebAssembly 内存中读取 WebP 数据 var webpData = new Uint8Array(Module.HEAPU8.buffer, webpPtr, outputSize); - document.getElementById('result').innerText+=' '+(Date.now()-startTime) +'ms'; + document.getElementById('result').innerText += ' ' + (Date.now() - startTime) + 'ms'; // 显示 WebP 图片大小 - document.getElementById("webpSize").textContent =`${size}KB => ${(outputSize / 1024).toFixed(2)}KB`; + document.getElementById("webpSize").textContent = `${size}KB => ${(outputSize / 1024).toFixed(2)}KB`; // 将 WebP 数据转换为 base64,并显示 let img = document.getElementById("webpImage"); @@ -136,5 +142,24 @@ Module._free(webpPtr); Module._free(inputDataPtr); } + var worker = new Worker('./worker.js'); + worker.onmessage = function (e) { + console.log(e.data); + switch(e.data.type){ + case 'webp': + let img = document.getElementById("webpImage"); + img.src = "data:image/webp;base64," + arrayBufferToBase64(e.data.webpData); + break; + } + } + function decodeItbyworker(buffer, width=0, height=0, quality=50) { + worker.postMessage({ + buffer, + width, + height, + quality, + }); + } + \ No newline at end of file diff --git a/test/worker.js b/test/worker.js new file mode 100644 index 0000000..616fb61 --- /dev/null +++ b/test/worker.js @@ -0,0 +1,77 @@ +// 导入wasm模块 +let wasmModule; + + + +var Module = { + onRuntimeInitialized: function (e) { + + // let baseData= document.getElementById("base64Image").src; + // baseData=baseData.split(",")[1]; + // let buffer = base64ToArrayBuffer(baseData); + // decodeToWebpp(buffer); + // document.getElementById("base64Image").src = fileurl; + // decodeIt(); + postMessage({ type: 'ready' }); + console.log(Module._malloc(4)) + + + }, + onAbort: (e) => { + alert(e); + } +}; +// 初始化wasm模块 +self.importScripts('convert_image_to_webp.js'); +// CreateModule().then(module => { +// wasmModule = module; +// postMessage({ type: 'ready' }); +// }).catch(err => { +// postMessage({ type: 'error', error: 'Failed to load WASM module: ' + err.message }); +// }); + +// 处理主线程发来的消息 +self.onmessage = async function (e) { + + const { + buffer, + width, + height, + quality, + } = e.data; + // 显示原始图片大小 + let size = (buffer.byteLength / 1024).toFixed(2); + + // 转换图像为 Uint8Array + var inputData = new Uint8Array(buffer); + + // 分配内存以存储输出 WebP 大小 + var outputSizePtr = Module._malloc(4); // 存储输出大小的指针 + + // 设置目标宽高和质量因子 + var inputDataPtr = Module._malloc(inputData.length); + Module.HEAPU8.set(inputData, inputDataPtr); + var webpPtr = Module._convert_image_to_webp(inputDataPtr, inputData.length, width, height,0,0, quality, outputSizePtr); + + // 调用 WebAssembly 函数进行图像转换,返回 WebP 数据指针 + + // 获取 WebP 数据大小 + var outputSize = Module.getValue(outputSizePtr, 'i32'); + + // 从 WebAssembly 内存中读取 WebP 数据 + var webpData = new Uint8Array(Module.HEAPU8.buffer, webpPtr, outputSize); + // document.getElementById('result').innerText += ' ' + (Date.now() - startTime) + 'ms'; + + // 显示 WebP 图片大小 + // document.getElementById("webpSize").textContent = `${size}KB => ${(outputSize / 1024).toFixed(2)}KB`; + + // 将 WebP 数据转换为 base64,并显示 + // let img = document.getElementById("webpImage"); + // img.src = "data:image/webp;base64," + arrayBufferToBase64(webpData); + + // 使用完成后释放内存 + Module._free(outputSizePtr); + Module._free(webpPtr); + Module._free(inputDataPtr); + postMessage({ type: 'webp', webpData }); +}; \ No newline at end of file diff --git a/生成 b/生成 index 99b19b4..501d5da 100644 --- a/生成 +++ b/生成 @@ -1,4 +1,5 @@ -docker run --rm -v $(pwd):/src emscripten/emsdk emcc convert_image_to_webp.cpp stb_image.c libwebp.a libsharpyuv.a libwebpdecoder.a libwebpdemux.a libwebpmux.a -o ./test/convert_image_to_webp.js -s WASM=1 -s INITIAL_MEMORY=34340864 -s EXPORTED_FUNCTIONS="['_free','_malloc','_convert_image_to_webp']" -s EXTRA_EXPORTED_RUNTIME_METHODS='["cwrap", "getValue"]' +# 调试模式 +docker run --rm -v $(pwd):/src emscripten/emsdk emcc convert_image_to_webp.cpp stb_image.c libwebp.a libsharpyuv.a libwebpdecoder.a libwebpdemux.a libwebpmux.a -o ./test/convert_image_to_webp.js -g -s WASM=1 -s INITIAL_MEMORY=34340864 -s EXPORTED_FUNCTIONS="['_free','_malloc','_convert_image_to_webp']" -s EXTRA_EXPORTED_RUNTIME_METHODS='["cwrap", "getValue"]' -gsource-map # 优化后的命令