// The Module object: Our interface to the outside world. We import // and export values on it, and do the work to get that through // closure compiler if necessary. 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 do an eval in order to handle the closure compiler // case, where this code here is minified but Module was defined // elsewhere (e.g. case 4 above). We also need to check if Module // already exists (e.g. case 3 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; if (!Module) Module = (typeof Module !== 'undefined' ? Module : null) || {}; // 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 = {}; for (var key in Module) { if (Module.hasOwnProperty(key)) { moduleOverrides[key] = Module[key]; } } // The environment setup code below is customized to use Module. // *** Environment setup code *** var ENVIRONMENT_IS_WEB = typeof window === 'object'; var ENVIRONMENT_IS_NODE = typeof process === 'object' && typeof require === 'function' && !ENVIRONMENT_IS_WEB; // Three configurations we can be running in: // 1) We could be the application main() thread running in the main JS UI thread. (ENVIRONMENT_IS_WORKER == false and ENVIRONMENT_IS_PTHREAD == false) // 2) We could be the application main() thread proxied to worker. (with Emscripten -s PROXY_TO_WORKER=1) (ENVIRONMENT_IS_WORKER == true, ENVIRONMENT_IS_PTHREAD == false) // 3) We could be an application pthread running in a worker. (ENVIRONMENT_IS_WORKER == true and ENVIRONMENT_IS_PTHREAD == true) var ENVIRONMENT_IS_WORKER = typeof importScripts === 'function'; var ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; if (ENVIRONMENT_IS_NODE) { // Expose functionality in the same simple way that the shells work // Note that we pollute the global namespace here, otherwise we break in node if (!Module['print']) Module['print'] = function print(x) { process['stdout'].write(x + '\n'); }; if (!Module['printErr']) Module['printErr'] = function printErr(x) { process['stderr'].write(x + '\n'); }; var nodeFS = require('fs'); var nodePath = require('path'); Module['read'] = function read(filename, binary) { filename = nodePath['normalize'](filename); var ret = nodeFS['readFileSync'](filename); // The path is absolute if the normalized version is the same as the resolved. if (!ret && filename != nodePath['resolve'](filename)) { filename = path.join(__dirname, '..', 'src', filename); ret = nodeFS['readFileSync'](filename); } if (ret && !binary) ret = ret.toString(); return ret; }; Module['readBinary'] = function readBinary(filename) { return Module['read'](filename, true) }; Module['load'] = function load(f) { globalEval(read(f)); }; if (!Module['thisProgram']) { if (process['argv'].length > 1) { Module['thisProgram'] = process['argv'][1].replace(/\\/g, '/'); } else { Module['thisProgram'] = 'unknown-program'; } } Module['arguments'] = process['argv'].slice(2); if (typeof module !== 'undefined') { module['exports'] = Module; } process['on']('uncaughtException', function(ex) { // suppress ExitStatus exceptions from showing an error if (!(ex instanceof ExitStatus)) { throw ex; } }); Module['inspect'] = function () { return '[Emscripten Module object]'; }; } else if (ENVIRONMENT_IS_SHELL) { if (!Module['print']) Module['print'] = print; if (typeof printErr != 'undefined') Module['printErr'] = printErr; // not present in v8 or older sm if (typeof read != 'undefined') { Module['read'] = read; } else { Module['read'] = function read() { throw 'no read() available (jsc?)' }; } Module['readBinary'] = function readBinary(f) { if (typeof readbuffer === 'function') { return new Uint8Array(readbuffer(f)); } var data = read(f, 'binary'); assert(typeof data === 'object'); return data; }; if (typeof scriptArgs != 'undefined') { Module['arguments'] = scriptArgs; } else if (typeof arguments != 'undefined') { Module['arguments'] = arguments; } } else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { Module['read'] = function read(url) { var xhr = new XMLHttpRequest(); xhr.open('GET', url, false); xhr.send(null); return xhr.responseText; }; if (typeof arguments != 'undefined') { Module['arguments'] = arguments; } if (typeof console !== 'undefined') { if (!Module['print']) Module['print'] = function print(x) { console.log(x); }; if (!Module['printErr']) Module['printErr'] = function printErr(x) { console.log(x); }; } else { // Probably a worker, and without console.log. We can do very little here... var TRY_USE_DUMP = false; if (!Module['print']) Module['print'] = (TRY_USE_DUMP && (typeof(dump) !== "undefined") ? (function(x) { dump(x); }) : (function(x) { // self.postMessage(x); // enable this if you want stdout to be sent as messages })); } if (ENVIRONMENT_IS_WORKER) { Module['load'] = importScripts; } if (typeof Module['setWindowTitle'] === 'undefined') { Module['setWindowTitle'] = function(title) { document.title = title }; } } else { // Unreachable because SHELL is dependant on the others throw 'Unknown runtime environment. Where are we?'; } function globalEval(x) { eval.call(null, x); } if (!Module['load'] && Module['read']) { Module['load'] = function load(f) { globalEval(Module['read'](f)); }; } if (!Module['print']) { Module['print'] = function(){}; } if (!Module['printErr']) { Module['printErr'] = Module['print']; } if (!Module['arguments']) { Module['arguments'] = []; } if (!Module['thisProgram']) { Module['thisProgram'] = './this.program'; } // *** Environment setup code *** // Closure helpers Module.print = Module['print']; Module.printErr = Module['printErr']; // Callbacks Module['preRun'] = []; Module['postRun'] = []; // Merge back in the overrides for (var key in moduleOverrides) { if (moduleOverrides.hasOwnProperty(key)) { Module[key] = moduleOverrides[key]; } } // === 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 //======================================== // Runtime code shared with compiler //======================================== var Runtime = { setTempRet0: function (value) { tempRet0 = value; }, getTempRet0: function () { return tempRet0; }, stackSave: function () { return STACKTOP; }, stackRestore: function (stackTop) { STACKTOP = stackTop; }, getNativeTypeSize: function (type) { switch (type) { case 'i1': case 'i8': return 1; case 'i16': return 2; case 'i32': return 4; case 'i64': return 8; case 'float': return 4; case 'double': return 8; default: { if (type[type.length-1] === '*') { return Runtime.QUANTUM_SIZE; // A pointer } else if (type[0] === 'i') { var bits = parseInt(type.substr(1)); assert(bits % 8 === 0); return bits/8; } else { return 0; } } } }, getNativeFieldSize: function (type) { return Math.max(Runtime.getNativeTypeSize(type), Runtime.QUANTUM_SIZE); }, STACK_ALIGN: 16, prepVararg: function (ptr, type) { if (type === 'double' || type === 'i64') { // move so the load is aligned if (ptr & 7) { assert((ptr & 7) === 4); ptr += 4; } } else { assert((ptr & 3) === 0); } return ptr; }, getAlignSize: function (type, size, vararg) { // we align i64s and doubles on 64-bit boundaries, unlike x86 if (!vararg && (type == 'i64' || type == 'double')) return 8; if (!type) return Math.min(size, 8); // align structures internally to 64 bits return Math.min(size || (type ? Runtime.getNativeFieldSize(type) : 0), Runtime.QUANTUM_SIZE); }, dynCall: function (sig, ptr, args) { if (args && args.length) { assert(args.length == sig.length-1); if (!args.splice) args = Array.prototype.slice.call(args); args.splice(0, 0, ptr); assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\''); return Module['dynCall_' + sig].apply(null, args); } else { assert(sig.length == 1); assert(('dynCall_' + sig) in Module, 'bad function pointer type - no table for sig \'' + sig + '\''); return Module['dynCall_' + sig].call(null, ptr); } }, functionPointers: [], addFunction: function (func) { for (var i = 0; i < Runtime.functionPointers.length; i++) { if (!Runtime.functionPointers[i]) { Runtime.functionPointers[i] = func; return 2*(1 + i); } } throw 'Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.'; }, removeFunction: function (index) { Runtime.functionPointers[(index-2)/2] = null; }, warnOnce: function (text) { if (!Runtime.warnOnce.shown) Runtime.warnOnce.shown = {}; if (!Runtime.warnOnce.shown[text]) { Runtime.warnOnce.shown[text] = 1; Module.printErr(text); } }, funcWrappers: {}, getFuncWrapper: function (func, sig) { assert(sig); if (!Runtime.funcWrappers[sig]) { Runtime.funcWrappers[sig] = {}; } var sigCache = Runtime.funcWrappers[sig]; if (!sigCache[func]) { sigCache[func] = function dynCall_wrapper() { return Runtime.dynCall(sig, func, arguments); }; } return sigCache[func]; }, getCompilerSetting: function (name) { throw 'You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work'; }, stackAlloc: function (size) { var ret = STACKTOP;STACKTOP = (STACKTOP + size)|0;STACKTOP = (((STACKTOP)+15)&-16);(assert((((STACKTOP|0) < (STACK_MAX|0))|0))|0); return ret; }, staticAlloc: function (size) { var ret = STATICTOP;STATICTOP = (STATICTOP + (assert(!staticSealed),size))|0;STATICTOP = (((STATICTOP)+15)&-16); return ret; }, dynamicAlloc: function (size) { var ret = DYNAMICTOP;DYNAMICTOP = (DYNAMICTOP + (assert(DYNAMICTOP > 0),size))|0;DYNAMICTOP = (((DYNAMICTOP)+15)&-16); if (DYNAMICTOP >= TOTAL_MEMORY) { var success = enlargeMemory(); if (!success) { DYNAMICTOP = ret; return 0; } }; return ret; }, alignMemory: function (size,quantum) { var ret = size = Math.ceil((size)/(quantum ? quantum : 16))*(quantum ? quantum : 16); return ret; }, makeBigInt: function (low,high,unsigned) { var ret = (unsigned ? ((+((low>>>0)))+((+((high>>>0)))*4294967296.0)) : ((+((low>>>0)))+((+((high|0)))*4294967296.0))); return ret; }, GLOBAL_BASE: 8, QUANTUM_SIZE: 4, __dummy__: 0 } Module['Runtime'] = Runtime; //======================================== // Runtime essentials //======================================== var __THREW__ = 0; // Used in checking for thrown exceptions. var ABORT = false; // whether we are quitting the application. no code should run after this. set in exit() and abort() var EXITSTATUS = 0; var undef = 0; // tempInt is used for 32-bit signed values or smaller. tempBigInt is used // for 32-bit unsigned values or more than 32 bits. TODO: audit all uses of tempInt var tempValue, tempInt, tempBigInt, tempInt2, tempBigInt2, tempPair, tempBigIntI, tempBigIntR, tempBigIntS, tempBigIntP, tempBigIntD, tempDouble, tempFloat; var tempI64, tempI64b; var tempRet0, tempRet1, tempRet2, tempRet3, tempRet4, tempRet5, tempRet6, tempRet7, tempRet8, tempRet9; function assert(condition, text) { if (!condition) { abort('Assertion failed: ' + text); } } var globalScope = this; // Returns the C function with a specified identifier (for C++, you need to do manual name mangling) function getCFunc(ident) { var func = Module['_' + ident]; // closure exported function if (!func) { try { func = eval('_' + ident); // explicit lookup } catch(e) {} } assert(func, 'Cannot call unknown function ' + ident + ' (perhaps LLVM optimizations or closure removed it?)'); return func; } var cwrap, ccall; (function(){ var JSfuncs = { // Helpers for cwrap -- it can't refer to Runtime directly because it might // be renamed by closure, instead it calls JSfuncs['stackSave'].body to find // out what the minified function name is. 'stackSave': function() { Runtime.stackSave() }, 'stackRestore': function() { Runtime.stackRestore() }, // type conversion from js to c 'arrayToC' : function(arr) { var ret = Runtime.stackAlloc(arr.length); writeArrayToMemory(arr, ret); return ret; }, 'stringToC' : function(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 = Runtime.stackAlloc((str.length << 2) + 1); writeStringToMemory(str, ret); } return ret; } }; // For fast lookup of conversion functions var toC = {'string' : JSfuncs['stringToC'], 'array' : JSfuncs['arrayToC']}; // C calling interface. ccall = function ccallFunc(ident, returnType, argTypes, args, opts) { 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 = Runtime.stackSave(); cArgs[i] = converter(args[i]); } else { cArgs[i] = args[i]; } } } var ret = func.apply(null, cArgs); if ((!opts || !opts.async) && typeof EmterpreterAsync === 'object') { assert(!EmterpreterAsync.state, 'cannot start async op with normal JS calling ccall'); } if (opts && opts.async) assert(!returnType, 'async ccalls cannot return values'); if (returnType === 'string') ret = Pointer_stringify(ret); if (stack !== 0) { if (opts && opts.async) { EmterpreterAsync.asyncFinalizers.push(function() { Runtime.stackRestore(stack); }); return; } Runtime.stackRestore(stack); } return ret; } var sourceRegex = /^function\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/; function parseJSFunc(jsfunc) { // Match the body and the return value of a javascript function source var parsed = jsfunc.toString().match(sourceRegex).slice(1); return {arguments : parsed[0], body : parsed[1], returnValue: parsed[2]} } var JSsource = {}; for (var fun in JSfuncs) { if (JSfuncs.hasOwnProperty(fun)) { // Elements of toCsource are arrays of three items: // the code, and the return value JSsource[fun] = parseJSFunc(JSfuncs[fun]); } } cwrap = function cwrap(ident, returnType, argTypes) { argTypes = argTypes || []; var cfunc = getCFunc(ident); // When the function takes numbers and returns a number, we can just return // the original function var numericArgs = argTypes.every(function(type){ return type === 'number'}); var numericRet = (returnType !== 'string'); if ( numericRet && numericArgs) { return cfunc; } // Creation of the arguments list (["$1","$2",...,"$nargs"]) var argNames = argTypes.map(function(x,i){return '$'+i}); var funcstr = "(function(" + argNames.join(',') + ") {"; var nargs = argTypes.length; if (!numericArgs) { // Generate the code needed to convert the arguments from javascript // values to pointers funcstr += 'var stack = ' + JSsource['stackSave'].body + ';'; for (var i = 0; i < nargs; i++) { var arg = argNames[i], type = argTypes[i]; if (type === 'number') continue; var convertCode = JSsource[type + 'ToC']; // [code, return] funcstr += 'var ' + convertCode.arguments + ' = ' + arg + ';'; funcstr += convertCode.body + ';'; funcstr += arg + '=' + convertCode.returnValue + ';'; } } // When the code is compressed, the name of cfunc is not literally 'cfunc' anymore var cfuncname = parseJSFunc(function(){return cfunc}).returnValue; // Call the function funcstr += 'var ret = ' + cfuncname + '(' + argNames.join(',') + ');'; if (!numericRet) { // Return type can only by 'string' or 'number' // Convert the result to a string var strgfy = parseJSFunc(function(){return Pointer_stringify}).returnValue; funcstr += 'ret = ' + strgfy + '(ret);'; } funcstr += "if (typeof EmterpreterAsync === 'object') { assert(!EmterpreterAsync.state, 'cannot start async op with normal JS calling cwrap') }"; if (!numericArgs) { // If we had a stack, restore it funcstr += JSsource['stackRestore'].body.replace('()', '(stack)') + ';'; } funcstr += 'return ret})'; return eval(funcstr); }; })(); Module["cwrap"] = cwrap; Module["ccall"] = ccall; function setValue(ptr, value, type, noSafe) { type = type || 'i8'; if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit switch(type) { case 'i1': HEAP8[((ptr)>>0)]=value; break; case 'i8': HEAP8[((ptr)>>0)]=value; break; case 'i16': HEAP16[((ptr)>>1)]=value; break; case 'i32': HEAP32[((ptr)>>2)]=value; break; case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math_abs(tempDouble))) >= 1.0 ? (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : 0)],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>2)]=tempI64[1]); break; case 'float': HEAPF32[((ptr)>>2)]=value; break; case 'double': HEAPF64[((ptr)>>3)]=value; break; default: abort('invalid type for setValue: ' + type); } } Module['setValue'] = setValue; function getValue(ptr, type, noSafe) { type = type || 'i8'; if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit switch(type) { case 'i1': return HEAP8[((ptr)>>0)]; case 'i8': return HEAP8[((ptr)>>0)]; case 'i16': return HEAP16[((ptr)>>1)]; case 'i32': return HEAP32[((ptr)>>2)]; case 'i64': return HEAP32[((ptr)>>2)]; case 'float': return HEAPF32[((ptr)>>2)]; case 'double': return HEAPF64[((ptr)>>3)]; default: abort('invalid type for setValue: ' + type); } return null; } Module['getValue'] = getValue; var ALLOC_NORMAL = 0; // Tries to use _malloc() var ALLOC_STACK = 1; // Lives for the duration of the current function call var ALLOC_STATIC = 2; // Cannot be freed var ALLOC_DYNAMIC = 3; // Cannot be freed except through sbrk var ALLOC_NONE = 4; // Do not allocate Module['ALLOC_NORMAL'] = ALLOC_NORMAL; Module['ALLOC_STACK'] = ALLOC_STACK; Module['ALLOC_STATIC'] = ALLOC_STATIC; Module['ALLOC_DYNAMIC'] = ALLOC_DYNAMIC; Module['ALLOC_NONE'] = ALLOC_NONE; // allocate(): This is for internal use. You can use it yourself as well, but the interface // is a little tricky (see docs right below). The reason is that it is optimized // for multiple syntaxes to save space in generated code. So you should // normally not use allocate(), and instead allocate memory using _malloc(), // initialize it with setValue(), and so forth. // @slab: An array of data, or a number. If a number, then the size of the block to allocate, // in *bytes* (note that this is sometimes confusing: the next parameter does not // affect this!) // @types: Either an array of types, one for each byte (or 0 if no type at that position), // or a single type which is used for the entire block. This only matters if there // is initial data - if @slab is a number, then this does not matter at all and is // ignored. // @allocator: How to allocate memory, see ALLOC_* function allocate(slab, types, allocator, ptr) { var zeroinit, size; if (typeof slab === 'number') { zeroinit = true; size = slab; } else { zeroinit = false; size = slab.length; } var singleType = typeof types === 'string' ? types : null; var ret; if (allocator == ALLOC_NONE) { ret = ptr; } else { ret = [_malloc, Runtime.stackAlloc, Runtime.staticAlloc, Runtime.dynamicAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length)); } if (zeroinit) { var ptr = ret, stop; assert((ret & 3) == 0); stop = ret + (size & ~3); for (; ptr < stop; ptr += 4) { HEAP32[((ptr)>>2)]=0; } stop = ret + size; while (ptr < stop) { HEAP8[((ptr++)>>0)]=0; } return ret; } if (singleType === 'i8') { if (slab.subarray || slab.slice) { HEAPU8.set(slab, ret); } else { HEAPU8.set(new Uint8Array(slab), ret); } return ret; } var i = 0, type, typeSize, previousType; while (i < size) { var curr = slab[i]; if (typeof curr === 'function') { curr = Runtime.getFunctionIndex(curr); } type = singleType || types[i]; if (type === 0) { i++; continue; } assert(type, 'Must know what type to store in allocate!'); if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later setValue(ret+i, curr, type); // no need to look up size unless type changes, so cache it if (previousType !== type) { typeSize = Runtime.getNativeTypeSize(type); previousType = type; } i += typeSize; } return ret; } Module['allocate'] = allocate; // Allocate memory during any stage of startup - static memory early on, dynamic memory later, malloc when ready function getMemory(size) { if (!staticSealed) return Runtime.staticAlloc(size); if ((typeof _sbrk !== 'undefined' && !_sbrk.called) || !runtimeInitialized) return Runtime.dynamicAlloc(size); return _malloc(size); } Module['getMemory'] = getMemory; function Pointer_stringify(ptr, /* optional */ length) { if (length === 0 || !ptr) return ''; // TODO: use TextDecoder // Find the length, and check for UTF while doing so var hasUtf = 0; var t; var i = 0; while (1) { assert(ptr + i < TOTAL_MEMORY); t = HEAPU8[(((ptr)+(i))>>0)]; hasUtf |= t; if (t == 0 && !length) break; i++; if (length && i == length) break; } if (!length) length = i; var ret = ''; if (hasUtf < 128) { var MAX_CHUNK = 1024; // split up into chunks, because .apply on a huge string can overflow the stack var curr; while (length > 0) { curr = String.fromCharCode.apply(String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK))); ret = ret ? ret + curr : curr; ptr += MAX_CHUNK; length -= MAX_CHUNK; } return ret; } return Module['UTF8ToString'](ptr); } Module['Pointer_stringify'] = Pointer_stringify; // Given a pointer 'ptr' to a null-terminated ASCII-encoded string in the emscripten HEAP, returns // a copy of that string as a Javascript String object. function AsciiToString(ptr) { var str = ''; while (1) { var ch = HEAP8[((ptr++)>>0)]; if (!ch) return str; str += String.fromCharCode(ch); } } Module['AsciiToString'] = AsciiToString; // Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', // null-terminated and encoded in ASCII form. The copy will require at most str.length+1 bytes of space in the HEAP. function stringToAscii(str, outPtr) { return writeAsciiToMemory(str, outPtr, false); } Module['stringToAscii'] = stringToAscii; // Given a pointer 'ptr' 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. function UTF8ArrayToString(u8Array, idx) { var u0, u1, u2, u3, u4, u5; var str = ''; while (1) { // 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 u0 = u8Array[idx++]; if (!u0) return str; if (!(u0 & 0x80)) { str += String.fromCharCode(u0); continue; } u1 = u8Array[idx++] & 63; if ((u0 & 0xE0) == 0xC0) { str += String.fromCharCode(((u0 & 31) << 6) | u1); continue; } u2 = u8Array[idx++] & 63; if ((u0 & 0xF0) == 0xE0) { u0 = ((u0 & 15) << 12) | (u1 << 6) | u2; } else { u3 = u8Array[idx++] & 63; if ((u0 & 0xF8) == 0xF0) { u0 = ((u0 & 7) << 18) | (u1 << 12) | (u2 << 6) | u3; } else { u4 = u8Array[idx++] & 63; if ((u0 & 0xFC) == 0xF8) { u0 = ((u0 & 3) << 24) | (u1 << 18) | (u2 << 12) | (u3 << 6) | u4; } else { u5 = u8Array[idx++] & 63; u0 = ((u0 & 1) << 30) | (u1 << 24) | (u2 << 18) | (u3 << 12) | (u4 << 6) | u5; } } } if (u0 < 0x10000) { str += String.fromCharCode(u0); } else { var ch = u0 - 0x10000; str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); } } } Module['UTF8ArrayToString'] = UTF8ArrayToString; // 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. function UTF8ToString(ptr) { return UTF8ArrayToString(HEAPU8, ptr); } Module['UTF8ToString'] = UTF8ToString; // Copies the given Javascript String object 'str' to the given byte array at address 'outIdx', // encoded in UTF8 form and null-terminated. The copy will require at most str.length*4+1 bytes of space in the HEAP. // Use the function lengthBytesUTF8() to compute the exact number of bytes (excluding null terminator) that this function will write. // Parameters: // str: the Javascript string to copy. // outU8Array: the array to copy to. Each index in this array is assumed to be one 8-byte element. // outIdx: The starting offset in the array to begin the copying. // maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null // terminator, i.e. if maxBytesToWrite=1, only the null terminator will be written and nothing else. // maxBytesToWrite=0 does not write any bytes to the output, not even the null terminator. // Returns the number of bytes written, EXCLUDING the null terminator. function stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) { if (!(maxBytesToWrite > 0)) // Parameter maxBytesToWrite is not optional. Negative values, 0, null, undefined and false each don't write out any bytes. 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) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF); if (u <= 0x7F) { if (outIdx >= endIdx) break; outU8Array[outIdx++] = u; } else if (u <= 0x7FF) { if (outIdx + 1 >= endIdx) break; outU8Array[outIdx++] = 0xC0 | (u >> 6); outU8Array[outIdx++] = 0x80 | (u & 63); } else if (u <= 0xFFFF) { if (outIdx + 2 >= endIdx) break; outU8Array[outIdx++] = 0xE0 | (u >> 12); outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); outU8Array[outIdx++] = 0x80 | (u & 63); } else if (u <= 0x1FFFFF) { if (outIdx + 3 >= endIdx) break; outU8Array[outIdx++] = 0xF0 | (u >> 18); outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); outU8Array[outIdx++] = 0x80 | (u & 63); } else if (u <= 0x3FFFFFF) { if (outIdx + 4 >= endIdx) break; outU8Array[outIdx++] = 0xF8 | (u >> 24); outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63); outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); outU8Array[outIdx++] = 0x80 | (u & 63); } else { if (outIdx + 5 >= endIdx) break; outU8Array[outIdx++] = 0xFC | (u >> 30); outU8Array[outIdx++] = 0x80 | ((u >> 24) & 63); outU8Array[outIdx++] = 0x80 | ((u >> 18) & 63); outU8Array[outIdx++] = 0x80 | ((u >> 12) & 63); outU8Array[outIdx++] = 0x80 | ((u >> 6) & 63); outU8Array[outIdx++] = 0x80 | (u & 63); } } // Null-terminate the pointer to the buffer. outU8Array[outIdx] = 0; return outIdx - startIdx; } Module['stringToUTF8Array'] = stringToUTF8Array; // Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', // null-terminated and encoded in UTF8 form. The copy will require at most str.length*4+1 bytes of space in the HEAP. // Use the function lengthBytesUTF8() to compute the exact number of bytes (excluding null terminator) that this function will write. // Returns the number of bytes written, EXCLUDING the null terminator. function 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); } Module['stringToUTF8'] = stringToUTF8; // Returns the number of bytes the given Javascript string takes if encoded as a UTF8 byte array, EXCLUDING the null terminator byte. function 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 u = str.charCodeAt(i); // possibly a lead surrogate if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | (str.charCodeAt(++i) & 0x3FF); if (u <= 0x7F) { ++len; } else if (u <= 0x7FF) { len += 2; } else if (u <= 0xFFFF) { len += 3; } else if (u <= 0x1FFFFF) { len += 4; } else if (u <= 0x3FFFFFF) { len += 5; } else { len += 6; } } return len; } Module['lengthBytesUTF8'] = lengthBytesUTF8; // Given a pointer 'ptr' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns // a copy of that string as a Javascript String object. function UTF16ToString(ptr) { var i = 0; var str = ''; while (1) { var codeUnit = HEAP16[(((ptr)+(i*2))>>1)]; if (codeUnit == 0) return str; ++i; // fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through. str += String.fromCharCode(codeUnit); } } Module['UTF16ToString'] = UTF16ToString; // Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', // null-terminated and encoded in UTF16 form. The copy will require at most str.length*4+2 bytes of space in the HEAP. // Use the function lengthBytesUTF16() to compute the exact number of bytes (excluding null terminator) that this function will write. // Parameters: // str: the Javascript string to copy. // outPtr: Byte address in Emscripten HEAP where to write the string to. // maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null // terminator, i.e. if maxBytesToWrite=2, only the null terminator will be written and nothing else. // maxBytesToWrite<2 does not write any bytes to the output, not even the null terminator. // Returns the number of bytes written, EXCLUDING the null terminator. function stringToUTF16(str, outPtr, maxBytesToWrite) { assert(typeof maxBytesToWrite == 'number', 'stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. if (maxBytesToWrite === undefined) { maxBytesToWrite = 0x7FFFFFFF; } if (maxBytesToWrite < 2) return 0; maxBytesToWrite -= 2; // Null terminator. var startPtr = outPtr; var numCharsToWrite = (maxBytesToWrite < str.length*2) ? (maxBytesToWrite / 2) : str.length; for (var i = 0; i < numCharsToWrite; ++i) { // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP. var codeUnit = str.charCodeAt(i); // possibly a lead surrogate HEAP16[((outPtr)>>1)]=codeUnit; outPtr += 2; } // Null-terminate the pointer to the HEAP. HEAP16[((outPtr)>>1)]=0; return outPtr - startPtr; } Module['stringToUTF16'] = stringToUTF16; // Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte. function lengthBytesUTF16(str) { return str.length*2; } Module['lengthBytesUTF16'] = lengthBytesUTF16; function UTF32ToString(ptr) { var i = 0; var str = ''; while (1) { var utf32 = HEAP32[(((ptr)+(i*4))>>2)]; if (utf32 == 0) return str; ++i; // Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing. // See http://unicode.org/faq/utf_bom.html#utf16-3 if (utf32 >= 0x10000) { var ch = utf32 - 0x10000; str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); } else { str += String.fromCharCode(utf32); } } } Module['UTF32ToString'] = UTF32ToString; // Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', // null-terminated and encoded in UTF32 form. The copy will require at most str.length*4+4 bytes of space in the HEAP. // Use the function lengthBytesUTF32() to compute the exact number of bytes (excluding null terminator) that this function will write. // Parameters: // str: the Javascript string to copy. // outPtr: Byte address in Emscripten HEAP where to write the string to. // maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null // terminator, i.e. if maxBytesToWrite=4, only the null terminator will be written and nothing else. // maxBytesToWrite<4 does not write any bytes to the output, not even the null terminator. // Returns the number of bytes written, EXCLUDING the null terminator. function stringToUTF32(str, outPtr, maxBytesToWrite) { assert(typeof maxBytesToWrite == 'number', 'stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed. if (maxBytesToWrite === undefined) { maxBytesToWrite = 0x7FFFFFFF; } if (maxBytesToWrite < 4) return 0; var startPtr = outPtr; var endPtr = startPtr + maxBytesToWrite - 4; 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! We must decode the string to UTF-32 to the heap. // See http://unicode.org/faq/utf_bom.html#utf16-3 var codeUnit = str.charCodeAt(i); // possibly a lead surrogate if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) { var trailSurrogate = str.charCodeAt(++i); codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF); } HEAP32[((outPtr)>>2)]=codeUnit; outPtr += 4; if (outPtr + 4 > endPtr) break; } // Null-terminate the pointer to the HEAP. HEAP32[((outPtr)>>2)]=0; return outPtr - startPtr; } Module['stringToUTF32'] = stringToUTF32; // Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte. function lengthBytesUTF32(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! We must decode the string to UTF-32 to the heap. // See http://unicode.org/faq/utf_bom.html#utf16-3 var codeUnit = str.charCodeAt(i); if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) ++i; // possibly a lead surrogate, so skip over the tail surrogate. len += 4; } return len; } Module['lengthBytesUTF32'] = lengthBytesUTF32; function demangle(func) { var hasLibcxxabi = !!Module['___cxa_demangle']; if (hasLibcxxabi) { try { var buf = _malloc(func.length); writeStringToMemory(func.substr(1), buf); var status = _malloc(4); var ret = Module['___cxa_demangle'](buf, 0, 0, status); if (getValue(status, 'i32') === 0 && ret) { return Pointer_stringify(ret); } // otherwise, libcxxabi failed, we can try ours which may return a partial result } catch(e) { // failure when using libcxxabi, we can try ours which may return a partial result } finally { if (buf) _free(buf); if (status) _free(status); if (ret) _free(ret); } } var i = 3; // params, etc. var basicTypes = { 'v': 'void', 'b': 'bool', 'c': 'char', 's': 'short', 'i': 'int', 'l': 'long', 'f': 'float', 'd': 'double', 'w': 'wchar_t', 'a': 'signed char', 'h': 'unsigned char', 't': 'unsigned short', 'j': 'unsigned int', 'm': 'unsigned long', 'x': 'long long', 'y': 'unsigned long long', 'z': '...' }; var subs = []; var first = true; function dump(x) { //return; if (x) Module.print(x); Module.print(func); var pre = ''; for (var a = 0; a < i; a++) pre += ' '; Module.print (pre + '^'); } function parseNested() { i++; if (func[i] === 'K') i++; // ignore const var parts = []; while (func[i] !== 'E') { if (func[i] === 'S') { // substitution i++; var next = func.indexOf('_', i); var num = func.substring(i, next) || 0; parts.push(subs[num] || '?'); i = next+1; continue; } if (func[i] === 'C') { // constructor parts.push(parts[parts.length-1]); i += 2; continue; } var size = parseInt(func.substr(i)); var pre = size.toString().length; if (!size || !pre) { i--; break; } // counter i++ below us var curr = func.substr(i + pre, size); parts.push(curr); subs.push(curr); i += pre + size; } i++; // skip E return parts; } function parse(rawList, limit, allowVoid) { // main parser limit = limit || Infinity; var ret = '', list = []; function flushList() { return '(' + list.join(', ') + ')'; } var name; if (func[i] === 'N') { // namespaced N-E name = parseNested().join('::'); limit--; if (limit === 0) return rawList ? [name] : name; } else { // not namespaced if (func[i] === 'K' || (first && func[i] === 'L')) i++; // ignore const and first 'L' var size = parseInt(func.substr(i)); if (size) { var pre = size.toString().length; name = func.substr(i + pre, size); i += pre + size; } } first = false; if (func[i] === 'I') { i++; var iList = parse(true); var iRet = parse(true, 1, true); ret += iRet[0] + ' ' + name + '<' + iList.join(', ') + '>'; } else { ret = name; } paramLoop: while (i < func.length && limit-- > 0) { //dump('paramLoop'); var c = func[i++]; if (c in basicTypes) { list.push(basicTypes[c]); } else { switch (c) { case 'P': list.push(parse(true, 1, true)[0] + '*'); break; // pointer case 'R': list.push(parse(true, 1, true)[0] + '&'); break; // reference case 'L': { // literal i++; // skip basic type var end = func.indexOf('E', i); var size = end - i; list.push(func.substr(i, size)); i += size + 2; // size + 'EE' break; } case 'A': { // array var size = parseInt(func.substr(i)); i += size.toString().length; if (func[i] !== '_') throw '?'; i++; // skip _ list.push(parse(true, 1, true)[0] + ' [' + size + ']'); break; } case 'E': break paramLoop; default: ret += '?' + c; break paramLoop; } } } if (!allowVoid && list.length === 1 && list[0] === 'void') list = []; // avoid (void) if (rawList) { if (ret) { list.push(ret + '?'); } return list; } else { return ret + flushList(); } } var parsed = func; try { // Special-case the entry point, since its name differs from other name mangling. if (func == 'Object._main' || func == '_main') { return 'main()'; } if (typeof func === 'number') func = Pointer_stringify(func); if (func[0] !== '_') return func; if (func[1] !== '_') return func; // C function if (func[2] !== 'Z') return func; switch (func[3]) { case 'n': return 'operator new()'; case 'd': return 'operator delete()'; } parsed = parse(); } catch(e) { parsed += '?'; } if (parsed.indexOf('?') >= 0 && !hasLibcxxabi) { Runtime.warnOnce('warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling'); } return parsed; } function demangleAll(text) { return text.replace(/__Z[\w\d_]+/g, function(x) { var y = demangle(x); return x === y ? x : (x + ' [' + y + ']') }); } function jsStackTrace() { var err = new Error(); if (!err.stack) { // IE10+ special cases: It does have callstack info, but it is only populated if an Error object is thrown, // so try that as a special-case. try { throw new Error(0); } catch(e) { err = e; } if (!err.stack) { return '(no stack trace available)'; } } return err.stack.toString(); } function stackTrace() { return demangleAll(jsStackTrace()); } Module['stackTrace'] = stackTrace; // Memory management var PAGE_SIZE = 4096; function alignMemoryPage(x) { if (x % 4096 > 0) { x += (4096 - (x % 4096)); } return x; } var HEAP; var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; var STATIC_BASE = 0, STATICTOP = 0, staticSealed = false; // static area var STACK_BASE = 0, STACKTOP = 0, STACK_MAX = 0; // stack area var DYNAMIC_BASE = 0, DYNAMICTOP = 0; // dynamic area handled by sbrk function enlargeMemory() { abort('Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value ' + TOTAL_MEMORY + ', (2) compile with ALLOW_MEMORY_GROWTH which adjusts the size at runtime but prevents some optimizations, or (3) set Module.TOTAL_MEMORY before the program runs.'); } var TOTAL_STACK = Module['TOTAL_STACK'] || 5242880; var TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 16777216; var totalMemory = 64*1024; while (totalMemory < TOTAL_MEMORY || totalMemory < 2*TOTAL_STACK) { if (totalMemory < 16*1024*1024) { totalMemory *= 2; } else { totalMemory += 16*1024*1024 } } if (totalMemory !== TOTAL_MEMORY) { Module.printErr('increasing TOTAL_MEMORY to ' + totalMemory + ' to be compliant with the asm.js spec (and given that TOTAL_STACK=' + TOTAL_STACK + ')'); TOTAL_MEMORY = totalMemory; } // Initialize the runtime's memory // check for full engine support (use string 'subarray' to avoid closure compiler confusion) assert(typeof Int32Array !== 'undefined' && typeof Float64Array !== 'undefined' && !!(new Int32Array(1)['subarray']) && !!(new Int32Array(1)['set']), 'JS engine does not provide full typed array support'); var buffer; buffer = new ArrayBuffer(TOTAL_MEMORY); HEAP8 = new Int8Array(buffer); HEAP16 = new Int16Array(buffer); HEAP32 = new Int32Array(buffer); HEAPU8 = new Uint8Array(buffer); HEAPU16 = new Uint16Array(buffer); HEAPU32 = new Uint32Array(buffer); HEAPF32 = new Float32Array(buffer); HEAPF64 = new Float64Array(buffer); // Endianness check (note: assumes compiler arch was little-endian) HEAP32[0] = 255; assert(HEAPU8[0] === 255 && HEAPU8[3] === 0, 'Typed arrays 2 must be run on a little-endian system'); Module['HEAP'] = HEAP; Module['buffer'] = buffer; Module['HEAP8'] = HEAP8; Module['HEAP16'] = HEAP16; Module['HEAP32'] = HEAP32; Module['HEAPU8'] = HEAPU8; Module['HEAPU16'] = HEAPU16; Module['HEAPU32'] = HEAPU32; Module['HEAPF32'] = HEAPF32; Module['HEAPF64'] = HEAPF64; function callRuntimeCallbacks(callbacks) { while(callbacks.length > 0) { var callback = callbacks.shift(); if (typeof callback == 'function') { callback(); continue; } var func = callback.func; if (typeof func === 'number') { if (callback.arg === undefined) { Runtime.dynCall('v', func); } else { Runtime.dynCall('vi', func, [callback.arg]); } } else { func(callback.arg === undefined ? null : callback.arg); } } } var __ATPRERUN__ = []; // functions called before the runtime is initialized var __ATINIT__ = []; // functions called during startup var __ATMAIN__ = []; // functions called when main() is to be run var __ATEXIT__ = []; // functions called during shutdown var __ATPOSTRUN__ = []; // functions called after the runtime has exited var runtimeInitialized = false; var runtimeExited = false; function preRun() { // compatibility - merge in anything from Module['preRun'] at this time if (Module['preRun']) { if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']]; while (Module['preRun'].length) { addOnPreRun(Module['preRun'].shift()); } } callRuntimeCallbacks(__ATPRERUN__); } function ensureInitRuntime() { if (runtimeInitialized) return; runtimeInitialized = true; callRuntimeCallbacks(__ATINIT__); } function preMain() { callRuntimeCallbacks(__ATMAIN__); } function exitRuntime() { callRuntimeCallbacks(__ATEXIT__); runtimeExited = true; } function postRun() { // compatibility - merge in anything from Module['postRun'] at this time 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); } Module['addOnPreRun'] = Module.addOnPreRun = addOnPreRun; function addOnInit(cb) { __ATINIT__.unshift(cb); } Module['addOnInit'] = Module.addOnInit = addOnInit; function addOnPreMain(cb) { __ATMAIN__.unshift(cb); } Module['addOnPreMain'] = Module.addOnPreMain = addOnPreMain; function addOnExit(cb) { __ATEXIT__.unshift(cb); } Module['addOnExit'] = Module.addOnExit = addOnExit; function addOnPostRun(cb) { __ATPOSTRUN__.unshift(cb); } Module['addOnPostRun'] = Module.addOnPostRun = addOnPostRun; // Tools function intArrayFromString(stringy, dontAddNull, length /* optional */) { var len = length > 0 ? length : lengthBytesUTF8(stringy)+1; var u8array = new Array(len); var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); if (dontAddNull) u8array.length = numBytesWritten; return u8array; } Module['intArrayFromString'] = intArrayFromString; function intArrayToString(array) { var ret = []; for (var i = 0; i < array.length; i++) { var chr = array[i]; if (chr > 0xFF) { assert(false, 'Character code ' + chr + ' (' + String.fromCharCode(chr) + ') at offset ' + i + ' not in 0x00-0xFF.'); chr &= 0xFF; } ret.push(String.fromCharCode(chr)); } return ret.join(''); } Module['intArrayToString'] = intArrayToString; function writeStringToMemory(string, buffer, dontAddNull) { var array = intArrayFromString(string, dontAddNull); var i = 0; while (i < array.length) { var chr = array[i]; HEAP8[(((buffer)+(i))>>0)]=chr; i = i + 1; } } Module['writeStringToMemory'] = writeStringToMemory; function writeArrayToMemory(array, buffer) { for (var i = 0; i < array.length; i++) { HEAP8[((buffer++)>>0)]=array[i]; } } Module['writeArrayToMemory'] = writeArrayToMemory; function writeAsciiToMemory(str, buffer, dontAddNull) { for (var i = 0; i < str.length; ++i) { assert(str.charCodeAt(i) === str.charCodeAt(i)&0xff); HEAP8[((buffer++)>>0)]=str.charCodeAt(i); } // Null-terminate the pointer to the HEAP. if (!dontAddNull) HEAP8[((buffer)>>0)]=0; } Module['writeAsciiToMemory'] = writeAsciiToMemory; function unSign(value, bits, ignore) { if (value >= 0) { return value; } return bits <= 32 ? 2*Math.abs(1 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts : Math.pow(2, bits) + value; } function reSign(value, bits, ignore) { if (value <= 0) { return value; } var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32 : Math.pow(2, bits-1); if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that // but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors // TODO: In i64 mode 1, resign the two parts separately and safely value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts } return value; } // check for imul support, and also for correctness ( https://bugs.webkit.org/show_bug.cgi?id=126345 ) if (!Math['imul'] || Math['imul'](0xffffffff, 5) !== -5) Math['imul'] = function imul(a, b) { var ah = a >>> 16; var al = a & 0xffff; var bh = b >>> 16; var bl = b & 0xffff; return (al*bl + ((ah*bl + al*bh) << 16))|0; }; Math.imul = Math['imul']; if (!Math['clz32']) Math['clz32'] = function(x) { x = x >>> 0; for (var i = 0; i < 32; i++) { if (x & (1 << (31 - i))) return i; } return 32; }; Math.clz32 = Math['clz32'] var Math_abs = Math.abs; var Math_cos = Math.cos; var Math_sin = Math.sin; var Math_tan = Math.tan; var Math_acos = Math.acos; var Math_asin = Math.asin; var Math_atan = Math.atan; var Math_atan2 = Math.atan2; var Math_exp = Math.exp; var Math_log = Math.log; var Math_sqrt = Math.sqrt; var Math_ceil = Math.ceil; var Math_floor = Math.floor; var Math_pow = Math.pow; var Math_imul = Math.imul; var Math_fround = Math.fround; var Math_min = Math.min; var Math_clz32 = Math.clz32; // 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 // PRE_RUN_ADDITIONS (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(); } return id; } function addRunDependency(id) { runDependencies++; if (Module['monitorRunDependencies']) { 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(function() { if (ABORT) { clearInterval(runDependencyWatcher); runDependencyWatcher = null; return; } var shown = false; for (var dep in runDependencyTracking) { if (!shown) { shown = true; Module.printErr('still waiting on run dependencies:'); } Module.printErr('dependency: ' + dep); } if (shown) { Module.printErr('(end of list)'); } }, 10000); } } else { Module.printErr('warning: run dependency added without ID'); } } Module['addRunDependency'] = addRunDependency; function removeRunDependency(id) { runDependencies--; if (Module['monitorRunDependencies']) { Module['monitorRunDependencies'](runDependencies); } if (id) { assert(runDependencyTracking[id]); delete runDependencyTracking[id]; } else { Module.printErr('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 } } } Module['removeRunDependency'] = removeRunDependency; Module["preloadedImages"] = {}; // maps url to image data Module["preloadedAudios"] = {}; // maps url to audio data var memoryInitializer = null; // === Body === var ASM_CONSTS = []; STATIC_BASE = 8; STATICTOP = STATIC_BASE + 17984; /* global initializers */ __ATINIT__.push(); /* memory initializer */ allocate([104,97,97,114,0,0,0,0,100,98,49,0,0,0,0,0,100,98,50,0,0,0,0,0,100,98,51,0,0,0,0,0,100,98,52,0,0,0,0,0,100,98,53,0,0,0,0,0,100,98,54,0,0,0,0,0,100,98,55,0,0,0,0,0,100,98,56,0,0,0,0,0,100,98,57,0,0,0,0,0,100,98,49,48,0,0,0,0,100,98,49,50,0,0,0,0,100,98,49,51,0,0,0,0,100,98,49,49,0,0,0,0,100,98,49,52,0,0,0,0,100,98,49,53,0,0,0,0,98,105,111,114,49,46,49,0,98,105,111,114,49,46,51,0,98,105,111,114,49,46,53,0,98,105,111,114,50,46,50,0,98,105,111,114,50,46,52,0,98,105,111,114,50,46,54,0,98,105,111,114,50,46,56,0,98,105,111,114,51,46,49,0,98,105,111,114,51,46,51,0,98,105,111,114,51,46,53,0,98,105,111,114,51,46,55,0,98,105,111,114,51,46,57,0,98,105,111,114,52,46,52,0,98,105,111,114,53,46,53,0,98,105,111,114,54,46,56,0,99,111,105,102,49,0,0,0,99,111,105,102,50,0,0,0,99,111,105,102,51,0,0,0,99,111,105,102,52,0,0,0,99,111,105,102,53,0,0,0,115,121,109,50,0,0,0,0,115,121,109,51,0,0,0,0,115,121,109,52,0,0,0,0,115,121,109,53,0,0,0,0,115,121,109,54,0,0,0,0,115,121,109,55,0,0,0,0,115,121,109,56,0,0,0,0,115,121,109,57,0,0,0,0,115,121,109,49,48,0,0,0,10,32,70,105,108,116,101,114,32,78,111,116,32,105,110,32,68,97,116,97,98,97,115,101,32,10,0,0,0,0,0,0,27,13,224,45,144,160,230,191,27,13,224,45,144,160,230,63,27,13,224,45,144,160,230,63,27,13,224,45,144,160,230,63,27,13,224,45,144,160,230,63,27,13,224,45,144,160,230,191,150,140,182,48,23,180,133,191,130,72,104,199,10,214,160,63,133,99,101,25,226,148,159,63,0,231,197,183,193,240,199,191,150,231,219,249,198,167,156,191,199,218,61,221,44,48,228,63,30,202,69,234,5,224,230,63,241,88,241,42,5,125,205,63,241,88,241,42,5,125,205,191,30,202,69,234,5,224,230,63,199,218,61,221,44,48,228,191,150,231,219,249,198,167,156,191,0,231,197,183,193,240,199,63,133,99,101,25,226,148,159,63,130,72,104,199,10,214,160,191,150,140,182,48,23,180,133,191,241,88,241,42,5,125,205,63,30,202,69,234,5,224,230,63,199,218,61,221,44,48,228,63,150,231,219,249,198,167,156,191,0,231,197,183,193,240,199,191,133,99,101,25,226,148,159,63,130,72,104,199,10,214,160,63,150,140,182,48,23,180,133,191,150,140,182,48,23,180,133,191,130,72,104,199,10,214,160,191,133,99,101,25,226,148,159,63,0,231,197,183,193,240,199,63,150,231,219,249,198,167,156,191,199,218,61,221,44,48,228,191,30,202,69,234,5,224,230,63,241,88,241,42,5,125,205,191,163,158,61,224,133,83,107,63,121,171,40,243,239,195,137,191,29,180,125,69,173,144,121,191,34,27,37,181,185,219,179,63,166,184,169,72,102,130,160,191,115,249,247,211,132,3,207,191,48,222,190,115,3,184,193,63,40,113,59,20,137,45,231,63,3,186,196,194,145,82,227,63,130,175,167,65,60,126,196,63,130,175,167,65,60,126,196,191,3,186,196,194,145,82,227,63,40,113,59,20,137,45,231,191,48,222,190,115,3,184,193,63,115,249,247,211,132,3,207,63,166,184,169,72,102,130,160,191,34,27,37,181,185,219,179,191,29,180,125,69,173,144,121,191,121,171,40,243,239,195,137,63,163,158,61,224,133,83,107,63,130,175,167,65,60,126,196,63,3,186,196,194,145,82,227,63,40,113,59,20,137,45,231,63,48,222,190,115,3,184,193,63,115,249,247,211,132,3,207,191,166,184,169,72,102,130,160,191,34,27,37,181,185,219,179,63,29,180,125,69,173,144,121,191,121,171,40,243,239,195,137,191,163,158,61,224,133,83,107,63,163,158,61,224,133,83,107,63,121,171,40,243,239,195,137,63,29,180,125,69,173,144,121,191,34,27,37,181,185,219,179,191,166,184,169,72,102,130,160,191,115,249,247,211,132,3,207,63,48,222,190,115,3,184,193,63,40,113,59,20,137,45,231,191,3,186,196,194,145,82,227,63,130,175,167,65,60,126,196,191,179,95,100,59,135,166,81,191,121,200,99,76,81,145,115,63,236,13,249,17,247,37,66,63,175,27,6,100,133,43,160,191,104,223,95,61,244,46,156,63,187,210,77,127,221,245,184,63,131,11,39,98,51,156,192,191,216,240,104,210,61,246,204,191,86,50,169,207,15,45,212,63,178,209,59,250,73,9,232,63,230,52,69,246,234,167,223,63,19,49,220,36,239,141,188,63,19,49,220,36,239,141,188,191,230,52,69,246,234,167,223,63,178,209,59,250,73,9,232,191,86,50,169,207,15,45,212,63,216,240,104,210,61,246,204,63,131,11,39,98,51,156,192,191,187,210,77,127,221,245,184,191,104,223,95,61,244,46,156,63,175,27,6,100,133,43,160,63,236,13,249,17,247,37,66,63,121,200,99,76,81,145,115,191,179,95,100,59,135,166,81,191,19,49,220,36,239,141,188,63,230,52,69,246,234,167,223,63,178,209,59,250,73,9,232,63,86,50,169,207,15,45,212,63,216,240,104,210,61,246,204,191,131,11,39,98,51,156,192,191,187,210,77,127,221,245,184,63,104,223,95,61,244,46,156,63,175,27,6,100,133,43,160,191,236,13,249,17,247,37,66,63,121,200,99,76,81,145,115,63,179,95,100,59,135,166,81,191,179,95,100,59,135,166,81,191,121,200,99,76,81,145,115,191,236,13,249,17,247,37,66,63,175,27,6,100,133,43,160,63,104,223,95,61,244,46,156,63,187,210,77,127,221,245,184,191,131,11,39,98,51,156,192,191,216,240,104,210,61,246,204,63,86,50,169,207,15,45,212,63,178,209,59,250,73,9,232,191,230,52,69,246,234,167,223,63,19,49,220,36,239,141,188,191,196,135,1,52,85,46,55,63,169,212,199,249,160,132,93,191,214,232,90,88,31,39,60,63,168,75,164,130,86,180,137,63,174,111,1,169,234,248,144,191,46,81,207,238,168,120,163,191,125,245,242,39,7,163,180,63,249,191,167,44,82,65,178,63,130,212,213,187,55,173,204,191,97,106,73,14,131,107,194,191,129,89,41,186,233,16,222,63,64,205,148,210,12,85,231,63,89,75,48,116,230,96,217,63,169,197,56,186,28,238,179,63,169,197,56,186,28,238,179,191,89,75,48,116,230,96,217,63,64,205,148,210,12,85,231,191,129,89,41,186,233,16,222,63,97,106,73,14,131,107,194,63,130,212,213,187,55,173,204,191,249,191,167,44,82,65,178,191,125,245,242,39,7,163,180,63,46,81,207,238,168,120,163,63,174,111,1,169,234,248,144,191,168,75,164,130,86,180,137,191,213,232,90,88,31,39,60,63,169,212,199,249,160,132,93,63,196,135,1,52,85,46,55,63,169,197,56,186,28,238,179,63,89,75,48,116,230,96,217,63,64,205,148,210,12,85,231,63,129,89,41,186,233,16,222,63,97,106,73,14,131,107,194,191,130,212,213,187,55,173,204,191,249,191,167,44,82,65,178,63,125,245,242,39,7,163,180,63,46,81,207,238,168,120,163,191,174,111,1,169,234,248,144,191,168,75,164,130,86,180,137,63,214,232,90,88,31,39,60,63,169,212,199,249,160,132,93,191,196,135,1,52,85,46,55,63,196,135,1,52,85,46,55,63,169,212,199,249,160,132,93,63,214,232,90,88,31,39,60,63,166,75,164,130,86,180,137,191,174,111,1,169,234,248,144,191,46,81,207,238,168,120,163,63,125,245,242,39,7,163,180,63,249,191,167,44,82,65,178,191,130,212,213,187,55,173,204,191,97,106,73,14,131,107,194,63,129,89,41,186,233,16,222,63,64,205,148,210,12,85,231,191,89,75,48,116,230,96,217,63,169,197,56,186,28,238,179,191,28,87,4,200,187,203,30,191,201,85,239,141,20,34,70,63,150,170,45,23,80,172,57,191,151,5,51,109,239,242,115,191,130,135,50,223,120,233,129,63,202,39,88,205,21,162,140,63,220,23,139,81,188,146,166,191,48,66,8,15,66,201,145,191,224,144,99,177,203,122,192,63,58,57,14,203,249,246,62,63,113,19,37,135,79,45,210,191,100,39,153,69,129,53,144,191,118,117,219,190,57,187,226,63,209,80,146,89,196,158,229,63,204,206,180,144,22,6,212,63,65,252,162,173,100,220,171,63,65,252,162,173,100,220,171,191,204,206,180,144,22,6,212,63,209,80,146,89,196,158,229,191,118,117,219,190,57,187,226,63,100,39,153,69,129,53,144,63,113,19,37,135,79,45,210,191,58,57,14,203,249,246,62,191,224,144,99,177,203,122,192,63,48,66,8,15,66,201,145,63,220,23,139,81,188,146,166,191,202,39,88,205,21,162,140,191,130,135,50,223,120,233,129,63,151,5,51,109,239,242,115,63,150,170,45,23,80,172,57,191,201,85,239,141,20,34,70,191,28,87,4,200,187,203,30,191,65,252,162,173,100,220,171,63,204,206,180,144,22,6,212,63,209,80,146,89,196,158,229,63,118,117,219,190,57,187,226,63,100,39,153,69,129,53,144,191,113,19,37,135,79,45,210,191,58,57,14,203,249,246,62,63,224,144,99,177,203,122,192,63,48,66,8,15,66,201,145,191,220,23,139,81,188,146,166,191,202,39,88,205,21,162,140,63,130,135,50,223,120,233,129,63,151,5,51,109,239,242,115,191,150,170,45,23,80,172,57,191,201,85,239,141,20,34,70,63,28,87,4,200,187,203,30,191,28,87,4,200,187,203,30,191,201,85,239,141,20,34,70,191,150,170,45,23,80,172,57,191,151,5,51,109,239,242,115,63,130,135,50,223,120,233,129,63,202,39,88,205,21,162,140,191,220,23,139,81,188,146,166,191,48,66,8,15,66,201,145,63,224,144,99,177,203,122,192,63,58,57,14,203,249,246,62,191,113,19,37,135,79,45,210,191,100,39,153,69,129,53,144,63,118,117,219,190,57,187,226,63,209,80,146,89,196,158,229,191,204,206,180,144,22,6,212,63,65,252,162,173,100,220,171,191,76,208,217,158,27,161,4,63,124,52,19,168,61,131,48,191,172,38,198,164,118,50,46,63,245,191,245,187,151,69,94,63,132,235,169,100,123,137,113,191,183,193,122,159,163,88,115,191,12,208,4,190,249,229,150,63,82,246,227,166,49,114,48,63,75,85,242,148,98,80,177,191,218,7,99,148,141,118,159,63,126,16,66,30,98,3,195,63,157,74,218,188,142,202,184,191,87,132,251,102,255,196,210,191,96,96,2,168,156,12,193,63,89,250,230,1,129,8,229,63,111,205,1,6,182,90,227,63,228,139,153,128,249,53,207,63,49,74,63,229,243,126,163,63,49,74,63,229,243,126,163,191,228,139,153,128,249,53,207,63,111,205,1,6,182,90,227,191,89,250,230,1,129,8,229,63,96,96,2,168,156,12,193,191,87,132,251,102,255,196,210,191,157,74,218,188,142,202,184,63,126,16,66,30,98,3,195,63,218,7,99,148,141,118,159,191,75,85,242,148,98,80,177,191,82,246,227,166,49,114,48,191,12,208,4,190,249,229,150,63,183,193,122,159,163,88,115,63,132,235,169,100,123,137,113,191,245,191,245,187,151,69,94,191,172,38,198,164,118,50,46,63,124,52,19,168,61,131,48,63,76,208,217,158,27,161,4,63,49,74,63,229,243,126,163,63,228,139,153,128,249,53,207,63,111,205,1,6,182,90,227,63,89,250,230,1,129,8,229,63,96,96,2,168,156,12,193,63,87,132,251,102,255,196,210,191,157,74,218,188,142,202,184,191,126,16,66,30,98,3,195,63,218,7,99,148,141,118,159,63,75,85,242,148,98,80,177,191,82,246,227,166,49,114,48,63,12,208,4,190,249,229,150,63,183,193,122,159,163,88,115,191,132,235,169,100,123,137,113,191,245,191,245,187,151,69,94,63,172,38,198,164,118,50,46,63,124,52,19,168,61,131,48,191,76,208,217,158,27,161,4,63,76,208,217,158,27,161,4,63,124,52,19,168,61,131,48,63,172,38,198,164,118,50,46,63,245,191,245,187,151,69,94,191,132,235,169,100,123,137,113,191,183,193,122,159,163,88,115,63,12,208,4,190,249,229,150,63,82,246,227,166,49,114,48,191,75,85,242,148,98,80,177,191,218,7,99,148,141,118,159,191,126,16,66,30,98,3,195,63,157,74,218,188,142,202,184,63,87,132,251,102,255,196,210,191,96,96,2,168,156,12,193,191,89,250,230,1,129,8,229,63,111,205,1,6,182,90,227,191,228,139,153,128,249,53,207,63,49,74,63,229,243,126,163,191,68,139,229,45,42,209,235,190,140,192,147,27,161,136,24,63,205,110,68,85,245,135,30,191,47,165,146,9,98,121,70,191,151,183,162,114,96,82,96,63,60,21,170,135,135,220,86,63,139,248,115,109,70,251,133,191,85,57,227,179,125,139,109,63,175,169,202,105,64,1,161,63,204,121,21,213,29,42,158,191,207,3,52,7,227,70,178,191,124,19,160,129,155,210,183,63,100,167,160,119,163,77,192,63,45,58,28,124,196,20,201,191,137,157,192,182,247,250,207,191,199,234,35,73,186,254,209,63,223,179,98,64,219,7,230,63,26,220,27,7,213,222,224,63,30,131,25,105,45,22,200,63,234,55,222,73,101,79,155,63,234,55,222,73,101,79,155,191,30,131,25,105,45,22,200,63,26,220,27,7,213,222,224,191,223,179,98,64,219,7,230,63,199,234,35,73,186,254,209,191,137,157,192,182,247,250,207,191,45,58,28,124,196,20,201,63,100,167,160,119,163,77,192,63,124,19,160,129,155,210,183,191,207,3,52,7,227,70,178,191,204,121,21,213,29,42,158,63,175,169,202,105,64,1,161,63,85,57,227,179,125,139,109,191,139,248,115,109,70,251,133,191,60,21,170,135,135,220,86,191,151,183,162,114,96,82,96,63,47,165,146,9,98,121,70,63,205,110,68,85,245,135,30,191,140,192,147,27,161,136,24,191,68,139,229,45,42,209,235,190,234,55,222,73,101,79,155,63,30,131,25,105,45,22,200,63,26,220,27,7,213,222,224,63,223,179,98,64,219,7,230,63,199,234,35,73,186,254,209,63,137,157,192,182,247,250,207,191,45,58,28,124,196,20,201,191,100,167,160,119,163,77,192,63,124,19,160,129,155,210,183,63,207,3,52,7,227,70,178,191,204,121,21,213,29,42,158,191,175,169,202,105,64,1,161,63,85,57,227,179,125,139,109,63,139,248,115,109,70,251,133,191,60,21,170,135,135,220,86,63,151,183,162,114,96,82,96,63,47,165,146,9,98,121,70,191,205,110,68,85,245,135,30,191,140,192,147,27,161,136,24,63,68,139,229,45,42,209,235,190,68,139,229,45,42,209,235,190,140,192,147,27,161,136,24,191,205,110,68,85,245,135,30,191,47,165,146,9,98,121,70,63,151,183,162,114,96,82,96,63,60,21,170,135,135,220,86,191,139,248,115,109,70,251,133,191,85,57,227,179,125,139,109,191,175,169,202,105,64,1,161,63,204,121,21,213,29,42,158,63,207,3,52,7,227,70,178,191,124,19,160,129,155,210,183,191,100,167,160,119,163,77,192,63,45,58,28,124,196,20,201,63,137,157,192,182,247,250,207,191,199,234,35,73,186,254,209,191,223,179,98,64,219,7,230,63,26,220,27,7,213,222,224,191,30,131,25,105,45,22,200,63,234,55,222,73,101,79,155,191,155,194,125,45,80,167,185,190,203,65,12,241,146,203,234,62,31,63,246,86,74,107,249,190,148,180,184,4,105,51,23,191,164,11,190,49,132,120,57,63,15,4,204,36,199,115,219,62,193,192,110,24,192,218,97,191,108,209,248,209,171,107,98,63,22,165,255,75,132,125,123,63,131,40,62,98,74,76,138,191,107,52,63,81,23,6,137,191,125,80,57,190,141,69,165,63,167,82,28,157,17,56,134,63,152,48,25,130,198,175,184,191,228,89,141,135,234,243,117,63,170,221,86,126,117,91,199,63,57,174,243,240,150,89,152,191,175,90,164,141,68,60,212,191,12,135,217,193,74,235,166,191,241,120,41,92,36,130,224,63,219,110,142,157,197,7,229,63,35,64,46,39,150,38,216,63,205,247,130,6,137,12,188,63,182,249,210,120,153,218,138,63,182,249,210,120,153,218,138,191,205,247,130,6,137,12,188,63,35,64,46,39,150,38,216,191,219,110,142,157,197,7,229,63,241,120,41,92,36,130,224,191,12,135,217,193,74,235,166,191,175,90,164,141,68,60,212,63,57,174,243,240,150,89,152,191,170,221,86,126,117,91,199,191,228,89,141,135,234,243,117,63,152,48,25,130,198,175,184,63,167,82,28,157,17,56,134,63,125,80,57,190,141,69,165,191,107,52,63,81,23,6,137,191,131,40,62,98,74,76,138,63,22,165,255,75,132,125,123,63,108,209,248,209,171,107,98,191,193,192,110,24,192,218,97,191,15,4,204,36,199,115,219,190,164,11,190,49,132,120,57,63,148,180,184,4,105,51,23,63,31,63,246,86,74,107,249,190,203,65,12,241,146,203,234,190,155,194,125,45,80,167,185,190,182,249,210,120,153,218,138,63,205,247,130,6,137,12,188,63,35,64,46,39,150,38,216,63,219,110,142,157,197,7,229,63,241,120,41,92,36,130,224,63,12,135,217,193,74,235,166,191,175,90,164,141,68,60,212,191,57,174,243,240,150,89,152,191,170,221,86,126,117,91,199,63,228,89,141,135,234,243,117,63,152,48,25,130,198,175,184,191,167,82,28,157,17,56,134,63,125,80,57,190,141,69,165,63,107,52,63,81,23,6,137,191,131,40,62,98,74,76,138,191,22,165,255,75,132,125,123,63,108,209,248,209,171,107,98,63,193,192,110,24,192,218,97,191,15,4,204,36,199,115,219,62,164,11,190,49,132,120,57,63,148,180,184,4,105,51,23,191,31,63,246,86,74,107,249,190,203,65,12,241,146,203,234,62,155,194,125,45,80,167,185,190,155,194,125,45,80,167,185,190,203,65,12,241,146,203,234,190,31,63,246,86,74,107,249,190,148,180,184,4,105,51,23,63,164,11,190,49,132,120,57,63,15,4,204,36,199,115,219,190,193,192,110,24,192,218,97,191,108,209,248,209,171,107,98,191,22,165,255,75,132,125,123,63,131,40,62,98,74,76,138,63,107,52,63,81,23,6,137,191,125,80,57,190,141,69,165,191,167,82,28,157,17,56,134,63,152,48,25,130,198,175,184,63,228,89,141,135,234,243,117,63,170,221,86,126,117,91,199,191,57,174,243,240,150,89,152,191,175,90,164,141,68,60,212,63,12,135,217,193,74,235,166,191,241,120,41,92,36,130,224,191,219,110,142,157,197,7,229,63,35,64,46,39,150,38,216,191,205,247,130,6,137,12,188,63,182,249,210,120,153,218,138,191,99,163,141,219,249,131,161,62,237,189,195,164,8,183,211,190,193,215,140,2,248,229,229,62,43,66,85,134,154,21,0,63,172,100,0,54,207,164,37,191,155,21,127,132,109,210,9,63,39,76,226,30,235,140,78,63,143,44,31,27,86,142,85,191,200,125,172,205,37,160,102,191,45,36,23,115,9,184,125,63,104,155,26,3,141,18,112,63,118,181,69,146,67,103,152,191,117,171,227,223,41,127,99,63,70,9,82,68,80,190,172,63,60,153,35,222,198,31,155,191,232,232,200,67,53,22,187,191,205,127,85,4,200,172,178,63,48,28,200,121,18,249,198,63,247,212,106,184,66,228,191,191,93,197,111,32,132,40,212,191,20,15,41,81,178,68,182,63,51,164,190,240,46,216,226,63,128,52,24,0,197,141,227,63,175,175,9,108,191,247,211,63,16,61,138,252,100,54,181,63,8,126,211,116,145,216,130,63,8,126,211,116,145,216,130,191,16,61,138,252,100,54,181,63,175,175,9,108,191,247,211,191,128,52,24,0,197,141,227,63,51,164,190,240,46,216,226,191,20,15,41,81,178,68,182,63,93,197,111,32,132,40,212,63,247,212,106,184,66,228,191,191,48,28,200,121,18,249,198,191,205,127,85,4,200,172,178,63,232,232,200,67,53,22,187,63,60,153,35,222,198,31,155,191,70,9,82,68,80,190,172,191,117,171,227,223,41,127,99,63,118,181,69,146,67,103,152,63,104,155,26,3,141,18,112,63,45,36,23,115,9,184,125,191,200,125,172,205,37,160,102,191,143,44,31,27,86,142,85,63,39,76,226,30,235,140,78,63,155,21,127,132,109,210,9,191,172,100,0,54,207,164,37,191,43,66,85,134,154,21,0,191,193,215,140,2,248,229,229,62,237,189,195,164,8,183,211,62,99,163,141,219,249,131,161,62,8,126,211,116,145,216,130,63,16,61,138,252,100,54,181,63,175,175,9,108,191,247,211,63,128,52,24,0,197,141,227,63,51,164,190,240,46,216,226,63,20,15,41,81,178,68,182,63,93,197,111,32,132,40,212,191,247,212,106,184,66,228,191,191,48,28,200,121,18,249,198,63,205,127,85,4,200,172,178,63,232,232,200,67,53,22,187,191,60,153,35,222,198,31,155,191,70,9,82,68,80,190,172,63,117,171,227,223,41,127,99,63,118,181,69,146,67,103,152,191,104,155,26,3,141,18,112,63,45,36,23,115,9,184,125,63,200,125,172,205,37,160,102,191,143,44,31,27,86,142,85,191,39,76,226,30,235,140,78,63,155,21,127,132,109,210,9,63,172,100,0,54,207,164,37,191,43,66,85,134,154,21,0,63,193,215,140,2,248,229,229,62,237,189,195,164,8,183,211,190,99,163,141,219,249,131,161,62,99,163,141,219,249,131,161,62,237,189,195,164,8,183,211,62,193,215,140,2,248,229,229,62,43,66,85,134,154,21,0,191,172,100,0,54,207,164,37,191,155,21,127,132,109,210,9,191,39,76,226,30,235,140,78,63,143,44,31,27,86,142,85,63,200,125,172,205,37,160,102,191,45,36,23,115,9,184,125,191,104,155,26,3,141,18,112,63,118,181,69,146,67,103,152,63,117,171,227,223,41,127,99,63,70,9,82,68,80,190,172,191,60,153,35,222,198,31,155,191,232,232,200,67,53,22,187,63,205,127,85,4,200,172,178,63,48,28,200,121,18,249,198,191,247,212,106,184,66,228,191,191,93,197,111,32,132,40,212,63,20,15,41,81,178,68,182,63,51,164,190,240,46,216,226,191,128,52,24,0,197,141,227,63,175,175,9,108,191,247,211,191,16,61,138,252,100,54,181,63,8,126,211,116,145,216,130,191,189,12,225,180,176,217,210,62,218,61,187,254,160,40,2,191,3,59,25,93,176,138,12,63,248,109,188,240,21,84,48,63,56,173,253,211,56,67,77,191,91,18,132,60,84,57,52,191,124,248,117,10,210,47,116,63,13,107,52,243,73,94,107,191,88,131,104,90,151,119,143,191,190,138,149,106,81,87,149,63,43,128,106,39,39,11,160,63,21,254,190,219,33,2,177,191,128,149,74,126,56,204,167,191,201,167,11,63,10,45,195,63,185,79,106,139,59,232,176,63,254,202,168,137,255,140,209,191,185,244,43,107,111,197,196,191,89,231,239,204,159,93,218,63,5,18,50,100,37,241,229,63,205,200,152,97,40,203,220,63,30,20,35,196,201,112,194,63,216,95,7,22,153,36,147,63,216,95,7,22,153,36,147,191,30,20,35,196,201,112,194,63,205,200,152,97,40,203,220,191,5,18,50,100,37,241,229,63,89,231,239,204,159,93,218,191,185,244,43,107,111,197,196,191,254,202,168,137,255,140,209,63,185,79,106,139,59,232,176,63,201,167,11,63,10,45,195,191,128,149,74,126,56,204,167,191,21,254,190,219,33,2,177,63,43,128,106,39,39,11,160,63,190,138,149,106,81,87,149,191,88,131,104,90,151,119,143,191,13,107,52,243,73,94,107,63,124,248,117,10,210,47,116,63,91,18,132,60,84,57,52,63,56,173,253,211,56,67,77,191,248,109,188,240,21,84,48,191,3,59,25,93,176,138,12,63,218,61,187,254,160,40,2,63,189,12,225,180,176,217,210,62,216,95,7,22,153,36,147,63,30,20,35,196,201,112,194,63,205,200,152,97,40,203,220,63,5,18,50,100,37,241,229,63,89,231,239,204,159,93,218,63,185,244,43,107,111,197,196,191,254,202,168,137,255,140,209,191,185,79,106,139,59,232,176,63,201,167,11,63,10,45,195,63,128,149,74,126,56,204,167,191,21,254,190,219,33,2,177,191,43,128,106,39,39,11,160,63,190,138,149,106,81,87,149,63,88,131,104,90,151,119,143,191,13,107,52,243,73,94,107,191,124,248,117,10,210,47,116,63,91,18,132,60,84,57,52,191,56,173,253,211,56,67,77,191,248,109,188,240,21,84,48,63,3,59,25,93,176,138,12,63,218,61,187,254,160,40,2,191,189,12,225,180,176,217,210,62,189,12,225,180,176,217,210,62,218,61,187,254,160,40,2,63,3,59,25,93,176,138,12,63,248,109,188,240,21,84,48,191,56,173,253,211,56,67,77,191,91,18,132,60,84,57,52,63,124,248,117,10,210,47,116,63,13,107,52,243,73,94,107,63,88,131,104,90,151,119,143,191,190,138,149,106,81,87,149,191,43,128,106,39,39,11,160,63,21,254,190,219,33,2,177,63,128,149,74,126,56,204,167,191,201,167,11,63,10,45,195,191,185,79,106,139,59,232,176,63,254,202,168,137,255,140,209,63,185,244,43,107,111,197,196,191,89,231,239,204,159,93,218,191,5,18,50,100,37,241,229,63,205,200,152,97,40,203,220,191,30,20,35,196,201,112,194,63,216,95,7,22,153,36,147,191,47,103,196,240,144,252,135,190,36,54,19,180,203,240,188,62,236,178,63,229,104,105,210,190,219,88,79,54,191,173,229,190,218,15,232,162,18,6,18,63,229,0,2,60,63,231,5,191,73,212,16,144,246,89,57,191,251,135,229,217,79,51,71,63,200,198,110,31,14,101,81,63,200,9,68,33,71,137,111,191,158,12,200,19,189,115,72,191,78,161,125,186,96,49,138,63,47,79,146,97,206,255,118,191,102,128,188,166,232,232,158,191,108,113,33,169,3,161,155,63,97,244,157,101,10,72,172,63,133,219,243,71,8,81,178,191,85,60,170,214,36,53,182,191,212,196,3,252,40,235,193,63,58,113,188,50,239,182,193,63,94,75,96,208,133,232,203,191,30,2,175,97,88,99,209,191,246,82,66,174,102,253,203,63,2,50,49,220,176,50,228,63,9,110,161,34,223,188,225,63,32,240,98,127,119,79,208,63,146,176,92,15,70,238,175,63,28,93,227,172,2,119,122,63,28,93,227,172,2,119,122,191,146,176,92,15,70,238,175,63,32,240,98,127,119,79,208,191,9,110,161,34,223,188,225,63,2,50,49,220,176,50,228,191,246,82,66,174,102,253,203,63,30,2,175,97,88,99,209,63,94,75,96,208,133,232,203,191,58,113,188,50,239,182,193,191,212,196,3,252,40,235,193,63,85,60,170,214,36,53,182,63,133,219,243,71,8,81,178,191,97,244,157,101,10,72,172,191,108,113,33,169,3,161,155,63,102,128,188,166,232,232,158,63,47,79,146,97,206,255,118,191,78,161,125,186,96,49,138,191,158,12,200,19,189,115,72,191,200,9,68,33,71,137,111,63,200,198,110,31,14,101,81,63,251,135,229,217,79,51,71,191,73,212,16,144,246,89,57,191,229,0,2,60,63,231,5,63,218,15,232,162,18,6,18,63,219,88,79,54,191,173,229,62,236,178,63,229,104,105,210,190,36,54,19,180,203,240,188,190,47,103,196,240,144,252,135,190,28,93,227,172,2,119,122,63,146,176,92,15,70,238,175,63,32,240,98,127,119,79,208,63,9,110,161,34,223,188,225,63,2,50,49,220,176,50,228,63,246,82,66,174,102,253,203,63,30,2,175,97,88,99,209,191,94,75,96,208,133,232,203,191,58,113,188,50,239,182,193,63,212,196,3,252,40,235,193,63,85,60,170,214,36,53,182,191,133,219,243,71,8,81,178,191,97,244,157,101,10,72,172,63,108,113,33,169,3,161,155,63,102,128,188,166,232,232,158,191,47,79,146,97,206,255,118,191,78,161,125,186,96,49,138,63,158,12,200,19,189,115,72,191,200,9,68,33,71,137,111,191,200,198,110,31,14,101,81,63,251,135,229,217,79,51,71,63,73,212,16,144,246,89,57,191,229,0,2,60,63,231,5,191,218,15,232,162,18,6,18,63,219,88,79,54,191,173,229,190,236,178,63,229,104,105,210,190,36,54,19,180,203,240,188,62,47,103,196,240,144,252,135,190,47,103,196,240,144,252,135,190,36,54,19,180,203,240,188,190,236,178,63,229,104,105,210,190,219,88,79,54,191,173,229,62,218,15,232,162,18,6,18,63,229,0,2,60,63,231,5,63,73,212,16,144,246,89,57,191,251,135,229,217,79,51,71,191,200,198,110,31,14,101,81,63,200,9,68,33,71,137,111,63,158,12,200,19,189,115,72,191,78,161,125,186,96,49,138,191,47,79,146,97,206,255,118,191,102,128,188,166,232,232,158,63,108,113,33,169,3,161,155,63,97,244,157,101,10,72,172,191,133,219,243,71,8,81,178,191,85,60,170,214,36,53,182,63,212,196,3,252,40,235,193,63,58,113,188,50,239,182,193,191,94,75,96,208,133,232,203,191,30,2,175,97,88,99,209,63,246,82,66,174,102,253,203,63,2,50,49,220,176,50,228,191,9,110,161,34,223,188,225,63,32,240,98,127,119,79,208,191,146,176,92,15,70,238,175,63,28,93,227,172,2,119,122,191,21,106,51,22,208,118,112,62,121,183,28,29,41,50,165,190,149,63,228,223,88,99,190,62,102,40,84,193,245,53,204,62,54,110,244,101,249,127,253,190,123,191,32,202,172,11,251,62,225,82,203,166,4,111,36,63,131,214,30,247,128,144,55,191,168,160,36,127,254,121,56,191,84,216,61,60,228,214,95,63,85,12,92,113,0,176,47,191,114,177,47,252,225,146,122,191,55,49,153,91,201,228,116,63,132,112,0,53,81,228,142,63,105,120,160,211,58,79,149,191,140,29,42,151,170,98,154,191,224,99,111,66,50,12,172,63,253,152,119,82,88,88,161,63,149,47,46,242,107,114,188,191,197,227,32,6,32,79,164,191,116,24,13,63,186,86,200,63,45,197,120,51,98,182,176,63,215,216,40,110,13,125,210,191,136,81,137,202,233,186,200,191,190,121,194,176,55,178,213,63,44,41,165,81,128,170,228,63,227,51,29,105,71,135,223,63,205,123,2,111,253,94,202,63,244,155,188,16,192,238,167,63,242,102,162,88,0,151,114,63,242,102,162,88,0,151,114,191,244,155,188,16,192,238,167,63,205,123,2,111,253,94,202,191,227,51,29,105,71,135,223,63,44,41,165,81,128,170,228,191,190,121,194,176,55,178,213,63,136,81,137,202,233,186,200,63,215,216,40,110,13,125,210,191,45,197,120,51,98,182,176,191,116,24,13,63,186,86,200,63,197,227,32,6,32,79,164,63,149,47,46,242,107,114,188,191,253,152,119,82,88,88,161,191,224,99,111,66,50,12,172,63,140,29,42,151,170,98,154,63,105,120,160,211,58,79,149,191,132,112,0,53,81,228,142,191,55,49,153,91,201,228,116,63,114,177,47,252,225,146,122,63,85,12,92,113,0,176,47,191,84,216,61,60,228,214,95,191,168,160,36,127,254,121,56,191,131,214,30,247,128,144,55,63,225,82,203,166,4,111,36,63,123,191,32,202,172,11,251,190,54,110,244,101,249,127,253,190,102,40,84,193,245,53,204,190,149,63,228,223,88,99,190,62,121,183,28,29,41,50,165,62,21,106,51,22,208,118,112,62,242,102,162,88,0,151,114,63,244,155,188,16,192,238,167,63,205,123,2,111,253,94,202,63,227,51,29,105,71,135,223,63,44,41,165,81,128,170,228,63,190,121,194,176,55,178,213,63,136,81,137,202,233,186,200,191,215,216,40,110,13,125,210,191,45,197,120,51,98,182,176,63,116,24,13,63,186,86,200,63,197,227,32,6,32,79,164,191,149,47,46,242,107,114,188,191,253,152,119,82,88,88,161,63,224,99,111,66,50,12,172,63,140,29,42,151,170,98,154,191,105,120,160,211,58,79,149,191,132,112,0,53,81,228,142,63,55,49,153,91,201,228,116,63,114,177,47,252,225,146,122,191,85,12,92,113,0,176,47,191,84,216,61,60,228,214,95,63,168,160,36,127,254,121,56,191,131,214,30,247,128,144,55,191,225,82,203,166,4,111,36,63,123,191,32,202,172,11,251,62,54,110,244,101,249,127,253,190,102,40,84,193,245,53,204,62,149,63,228,223,88,99,190,62,121,183,28,29,41,50,165,190,21,106,51,22,208,118,112,62,21,106,51,22,208,118,112,62,121,183,28,29,41,50,165,62,149,63,228,223,88,99,190,62,102,40,84,193,245,53,204,190,54,110,244,101,249,127,253,190,123,191,32,202,172,11,251,190,225,82,203,166,4,111,36,63,131,214,30,247,128,144,55,63,168,160,36,127,254,121,56,191,84,216,61,60,228,214,95,191,85,12,92,113,0,176,47,191,114,177,47,252,225,146,122,63,55,49,153,91,201,228,116,63,132,112,0,53,81,228,142,191,105,120,160,211,58,79,149,191,140,29,42,151,170,98,154,63,224,99,111,66,50,12,172,63,253,152,119,82,88,88,161,191,149,47,46,242,107,114,188,191,197,227,32,6,32,79,164,63,116,24,13,63,186,86,200,63,45,197,120,51,98,182,176,191,215,216,40,110,13,125,210,191,136,81,137,202,233,186,200,63,190,121,194,176,55,178,213,63,44,41,165,81,128,170,228,191,227,51,29,105,71,135,223,63,205,123,2,111,253,94,202,191,244,155,188,16,192,238,167,63,242,102,162,88,0,151,114,191,205,59,127,102,158,160,230,191,205,59,127,102,158,160,230,63,205,59,127,102,158,160,230,63,205,59,127,102,158,160,230,63,205,59,127,102,158,160,230,63,205,59,127,102,158,160,230,191,218,108,223,204,118,248,144,63,218,108,223,204,118,248,144,191,58,242,238,204,217,28,191,191,58,242,238,204,217,28,191,63,205,59,127,102,158,160,230,63,205,59,127,102,158,160,230,63,58,242,238,204,217,28,191,63,58,242,238,204,217,28,191,191,218,108,223,204,118,248,144,191,218,108,223,204,118,248,144,63,218,108,223,204,118,248,144,63,218,108,223,204,118,248,144,63,58,242,238,204,217,28,191,191,58,242,238,204,217,28,191,191,205,59,127,102,158,160,230,63,205,59,127,102,158,160,230,191,58,242,238,204,217,28,191,63,58,242,238,204,217,28,191,63,218,108,223,204,118,248,144,191,218,108,223,204,118,248,144,191,0,0,0,0,0,0,0,0,218,108,223,204,118,248,160,63,218,108,223,204,118,248,176,191,205,59,127,102,158,160,198,191,3,23,183,25,188,222,218,63,24,236,34,192,222,209,239,63,3,23,183,25,188,222,218,63,205,59,127,102,158,160,198,191,218,108,223,204,118,248,176,191,218,108,223,204,118,248,160,63,0,0,0,0,0,0,0,0,218,108,223,204,118,248,160,191,218,108,223,204,118,248,176,191,205,59,127,102,158,160,198,63,3,23,183,25,188,222,218,63,24,236,34,192,222,209,239,191,3,23,183,25,188,222,218,63,205,59,127,102,158,160,198,63,218,108,223,204,118,248,176,191,218,108,223,204,118,248,160,191,0,0,0,0,0,0,0,0,192,10,31,0,198,72,124,191,192,10,31,0,198,72,140,63,138,47,231,76,168,10,168,63,226,16,235,12,193,147,187,191,119,67,126,54,88,190,197,191,175,7,185,121,72,163,220,63,194,243,33,144,152,239,238,63,175,7,185,121,72,163,220,63,119,67,126,54,88,190,197,191,226,16,235,12,193,147,187,191,138,47,231,76,168,10,168,63,192,10,31,0,198,72,140,63,192,10,31,0,198,72,124,191,0,0,0,0,0,0,0,0,192,10,31,0,198,72,124,63,192,10,31,0,198,72,140,63,138,47,231,76,168,10,168,191,226,16,235,12,193,147,187,191,119,67,126,54,88,190,197,63,175,7,185,121,72,163,220,63,194,243,33,144,152,239,238,191,175,7,185,121,72,163,220,63,119,67,126,54,88,190,197,63,226,16,235,12,193,147,187,191,138,47,231,76,168,10,168,191,192,10,31,0,198,72,140,63,192,10,31,0,198,72,124,63,0,0,0,0,0,0,0,0,104,41,27,64,173,191,88,63,104,41,27,64,173,191,104,191,20,26,29,160,57,132,138,191,65,127,32,72,47,156,157,63,183,148,234,244,157,34,171,63,68,90,121,227,212,68,193,191,44,106,125,204,90,248,196,191,78,23,58,62,197,154,221,63,243,107,225,45,218,115,238,63,78,23,58,62,197,154,221,63,44,106,125,204,90,248,196,191,68,90,121,227,212,68,193,191,183,148,234,244,157,34,171,63,65,127,32,72,47,156,157,63,20,26,29,160,57,132,138,191,104,41,27,64,173,191,104,191,104,41,27,64,173,191,88,63,0,0,0,0,0,0,0,0,104,41,27,64,173,191,88,191,104,41,27,64,173,191,104,191,20,26,29,160,57,132,138,63,65,127,32,72,47,156,157,63,183,148,234,244,157,34,171,191,68,90,121,227,212,68,193,191,44,106,125,204,90,248,196,63,78,23,58,62,197,154,221,63,243,107,225,45,218,115,238,191,78,23,58,62,197,154,221,63,44,106,125,204,90,248,196,63,68,90,121,227,212,68,193,191,183,148,234,244,157,34,171,191,65,127,32,72,47,156,157,63,20,26,29,160,57,132,138,63,104,41,27,64,173,191,104,191,104,41,27,64,173,191,88,191,205,59,127,102,158,160,214,191,218,108,223,204,118,248,240,63,218,108,223,204,118,248,240,63,205,59,127,102,158,160,214,191,205,59,127,102,158,160,198,191,218,108,223,204,118,248,224,63,218,108,223,204,118,248,224,191,205,59,127,102,158,160,198,63,205,59,127,102,158,160,198,63,218,108,223,204,118,248,224,63,218,108,223,204,118,248,224,63,205,59,127,102,158,160,198,63,205,59,127,102,158,160,214,191,218,108,223,204,118,248,240,191,218,108,223,204,118,248,240,63,205,59,127,102,158,160,214,63,218,108,223,204,118,248,176,63,71,35,79,51,178,116,201,191,83,84,175,153,138,204,195,191,24,236,34,192,222,209,239,63,24,236,34,192,222,209,239,63,83,84,175,153,138,204,195,191,71,35,79,51,178,116,201,191,218,108,223,204,118,248,176,63,218,108,223,204,118,248,176,63,71,35,79,51,178,116,201,63,83,84,175,153,138,204,195,191,24,236,34,192,222,209,239,191,24,236,34,192,222,209,239,63,83,84,175,153,138,204,195,63,71,35,79,51,178,116,201,191,218,108,223,204,118,248,176,191,192,10,31,0,198,72,140,191,16,72,23,128,148,54,165,63,3,23,183,25,188,222,170,63,81,107,172,9,184,37,209,191,151,96,71,179,128,98,178,191,194,243,33,144,152,239,238,63,194,243,33,144,152,239,238,63,151,96,71,179,128,98,178,191,81,107,172,9,184,37,209,191,3,23,183,25,188,222,170,63,16,72,23,128,148,54,165,63,192,10,31,0,198,72,140,191,192,10,31,0,198,72,140,191,16,72,23,128,148,54,165,191,3,23,183,25,188,222,170,63,81,107,172,9,184,37,209,63,151,96,71,179,128,98,178,191,194,243,33,144,152,239,238,191,194,243,33,144,152,239,238,63,151,96,71,179,128,98,178,63,81,107,172,9,184,37,209,191,3,23,183,25,188,222,170,191,16,72,23,128,148,54,165,63,192,10,31,0,198,72,140,63,104,41,27,64,173,191,104,63,14,95,20,240,193,143,130,191,141,234,18,168,88,60,145,191,68,250,20,206,45,29,179,63,230,52,171,77,224,10,160,63,224,192,46,237,48,70,211,191,183,148,234,244,157,34,155,191,243,107,225,45,218,115,238,63,243,107,225,45,218,115,238,63,183,148,234,244,157,34,155,191,224,192,46,237,48,70,211,191,230,52,171,77,224,10,160,63,68,250,20,206,45,29,179,63,141,234,18,168,88,60,145,191,14,95,20,240,193,143,130,191,104,41,27,64,173,191,104,63,104,41,27,64,173,191,104,63,14,95,20,240,193,143,130,63,141,234,18,168,88,60,145,191,68,250,20,206,45,29,179,191,230,52,171,77,224,10,160,63,224,192,46,237,48,70,211,63,183,148,234,244,157,34,155,191,243,107,225,45,218,115,238,191,243,107,225,45,218,115,238,63,183,148,234,244,157,34,155,63,224,192,46,237,48,70,211,191,230,52,171,77,224,10,160,191,68,250,20,206,45,29,179,63,141,234,18,168,88,60,145,63,14,95,20,240,193,143,130,191,104,41,27,64,173,191,104,191,222,62,229,236,27,70,70,191,38,239,171,241,148,180,96,63,71,140,227,24,33,186,116,63,237,248,227,205,31,29,149,191,99,133,236,84,42,231,140,191,242,115,181,168,229,96,185,63,147,165,27,88,208,48,137,63,80,74,35,116,6,126,212,191,98,110,18,144,53,203,96,63,151,73,36,204,228,37,238,63,151,73,36,204,228,37,238,63,98,110,18,144,53,203,96,63,80,74,35,116,6,126,212,191,147,165,27,88,208,48,137,63,242,115,181,168,229,96,185,63,99,133,236,84,42,231,140,191,237,248,227,205,31,29,149,191,71,140,227,24,33,186,116,63,38,239,171,241,148,180,96,63,222,62,229,236,27,70,70,191,222,62,229,236,27,70,70,191,38,239,171,241,148,180,96,191,71,140,227,24,33,186,116,63,237,248,227,205,31,29,149,63,99,133,236,84,42,231,140,191,242,115,181,168,229,96,185,191,147,165,27,88,208,48,137,63,80,74,35,116,6,126,212,63,98,110,18,144,53,203,96,63,151,73,36,204,228,37,238,191,151,73,36,204,228,37,238,63,98,110,18,144,53,203,96,191,80,74,35,116,6,126,212,191,147,165,27,88,208,48,137,191,242,115,181,168,229,96,185,63,99,133,236,84,42,231,140,63,237,248,227,205,31,29,149,191,71,140,227,24,33,186,116,191,38,239,171,241,148,180,96,63,222,62,229,236,27,70,70,63,0,0,0,0,0,0,0,0,119,22,134,86,64,94,163,63,120,245,36,129,254,107,152,191,204,221,29,135,225,81,188,191,37,139,145,78,94,39,216,63,113,240,117,189,78,73,235,63,37,139,145,78,94,39,216,63,204,221,29,135,225,81,188,191,120,245,36,129,254,107,152,191,119,22,134,86,64,94,163,63,0,0,0,0,0,0,0,0,68,236,53,198,158,133,176,191,56,107,217,75,62,213,164,63,252,157,12,24,6,194,218,63,22,130,250,47,70,59,233,191,252,157,12,24,6,194,218,63,56,107,217,75,62,213,164,63,68,236,53,198,158,133,176,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,68,236,53,198,158,133,176,191,56,107,217,75,62,213,164,191,252,157,12,24,6,194,218,63,22,130,250,47,70,59,233,63,252,157,12,24,6,194,218,63,56,107,217,75,62,213,164,191,68,236,53,198,158,133,176,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,119,22,134,86,64,94,163,191,120,245,36,129,254,107,152,191,204,221,29,135,225,81,188,63,37,139,145,78,94,39,216,63,113,240,117,189,78,73,235,191,37,139,145,78,94,39,216,63,204,221,29,135,225,81,188,63,120,245,36,129,254,107,152,191,119,22,134,86,64,94,163,191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,23,13,181,221,81,164,63,222,199,75,21,25,71,128,63,40,30,147,124,173,226,171,191,142,221,212,157,101,30,214,63,166,252,111,95,184,146,231,63,142,221,212,157,101,30,214,63,40,30,147,124,173,226,171,191,222,199,75,21,25,71,128,63,99,23,13,181,221,81,164,63,0,0,0,0,0,0,0,0,10,60,79,248,48,143,139,191,6,236,164,83,193,19,102,191,175,252,35,243,153,127,193,63,52,2,92,129,236,239,183,191,69,192,78,216,241,131,222,191,51,134,125,9,193,200,236,63,69,192,78,216,241,131,222,191,52,2,92,129,236,239,183,191,175,252,35,243,153,127,193,63,6,236,164,83,193,19,102,191,10,60,79,248,48,143,139,191,0,0,0,0,0,0,0,0,10,60,79,248,48,143,139,63,6,236,164,83,193,19,102,191,175,252,35,243,153,127,193,191,52,2,92,129,236,239,183,191,69,192,78,216,241,131,222,63,51,134,125,9,193,200,236,63,69,192,78,216,241,131,222,63,52,2,92,129,236,239,183,191,175,252,35,243,153,127,193,191,6,236,164,83,193,19,102,191,10,60,79,248,48,143,139,63], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE); /* memory initializer */ allocate([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,23,13,181,221,81,164,63,222,199,75,21,25,71,128,191,40,30,147,124,173,226,171,191,142,221,212,157,101,30,214,191,166,252,111,95,184,146,231,63,142,221,212,157,101,30,214,191,40,30,147,124,173,226,171,191,222,199,75,21,25,71,128,191,99,23,13,181,221,81,164,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,120,168,110,120,56,70,95,63,183,178,116,20,25,93,95,191,13,34,71,138,254,101,145,191,199,28,140,60,38,113,136,63,185,179,14,84,151,118,169,63,43,54,240,241,132,199,179,191,70,233,230,146,67,20,184,191,101,92,43,138,83,238,218,63,223,35,227,16,246,109,234,63,101,92,43,138,83,238,218,63,70,233,230,146,67,20,184,191,43,54,240,241,132,199,179,191,185,179,14,84,151,118,169,63,199,28,140,60,38,113,136,63,13,34,71,138,254,101,145,191,183,178,116,20,25,93,95,191,120,168,110,120,56,70,95,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,219,31,132,220,134,139,141,63,120,106,23,163,35,161,141,191,175,39,10,4,32,39,180,191,92,90,123,155,28,171,164,63,121,164,157,48,10,190,218,63,4,236,213,220,248,72,232,191,121,164,157,48,10,190,218,63,92,90,123,155,28,171,164,63,175,39,10,4,32,39,180,191,120,106,23,163,35,161,141,191,219,31,132,220,134,139,141,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,219,31,132,220,134,139,141,63,120,106,23,163,35,161,141,63,175,39,10,4,32,39,180,191,92,90,123,155,28,171,164,191,121,164,157,48,10,190,218,63,4,236,213,220,248,72,232,63,121,164,157,48,10,190,218,63,92,90,123,155,28,171,164,191,175,39,10,4,32,39,180,191,120,106,23,163,35,161,141,63,219,31,132,220,134,139,141,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,120,168,110,120,56,70,95,191,183,178,116,20,25,93,95,191,13,34,71,138,254,101,145,63,199,28,140,60,38,113,136,63,185,179,14,84,151,118,169,191,43,54,240,241,132,199,179,191,70,233,230,146,67,20,184,63,101,92,43,138,83,238,218,63,223,35,227,16,246,109,234,191,101,92,43,138,83,238,218,63,70,233,230,146,67,20,184,63,43,54,240,241,132,199,179,191,185,179,14,84,151,118,169,191,199,28,140,60,38,113,136,63,13,34,71,138,254,101,145,63,183,178,116,20,25,93,95,191,120,168,110,120,56,70,95,191,20,109,200,38,104,156,71,191,85,242,76,158,23,223,93,191,229,230,134,16,4,252,118,63,221,234,74,112,157,63,152,63,171,197,175,40,48,110,174,191,255,228,142,191,193,148,179,191,174,161,86,131,54,176,218,63,54,152,93,255,212,1,234,63,30,207,105,255,6,182,216,63,240,197,45,231,83,63,177,191,246,20,209,102,228,58,165,191,72,174,183,136,215,199,144,63,72,174,183,136,215,199,144,191,246,20,209,102,228,58,165,191,240,197,45,231,83,63,177,63,30,207,105,255,6,182,216,63,54,152,93,255,212,1,234,191,174,161,86,131,54,176,218,63,255,228,142,191,193,148,179,63,171,197,175,40,48,110,174,191,221,234,74,112,157,63,152,191,229,230,134,16,4,252,118,63,85,242,76,158,23,223,93,63,20,109,200,38,104,156,71,191,72,174,183,136,215,199,144,63,246,20,209,102,228,58,165,191,240,197,45,231,83,63,177,191,30,207,105,255,6,182,216,63,54,152,93,255,212,1,234,63,174,161,86,131,54,176,218,63,255,228,142,191,193,148,179,191,171,197,175,40,48,110,174,191,221,234,74,112,157,63,152,63,229,230,134,16,4,252,118,63,85,242,76,158,23,223,93,191,20,109,200,38,104,156,71,191,20,109,200,38,104,156,71,191,85,242,76,158,23,223,93,63,229,230,134,16,4,252,118,63,221,234,74,112,157,63,152,191,171,197,175,40,48,110,174,191,255,228,142,191,193,148,179,63,174,161,86,131,54,176,218,63,54,152,93,255,212,1,234,191,30,207,105,255,6,182,216,63,240,197,45,231,83,63,177,63,246,20,209,102,228,58,165,191,72,174,183,136,215,199,144,191,166,34,106,36,231,35,2,191,111,157,182,220,155,155,18,191,52,227,181,152,210,141,62,63,203,137,182,164,54,79,82,63,132,68,214,168,39,23,101,191,181,231,71,23,198,114,130,191,66,219,83,83,253,66,144,63,50,103,173,82,50,177,161,63,215,100,82,53,189,17,181,191,27,173,182,29,121,97,178,191,202,196,122,245,69,108,219,63,120,147,111,125,159,102,233,63,170,104,60,26,107,238,217,63,97,13,42,162,144,75,175,191,156,115,243,143,109,214,176,191,210,149,186,203,251,3,152,63,181,29,34,210,164,224,127,63,212,5,20,182,146,19,111,191,212,5,20,182,146,19,111,63,181,29,34,210,164,224,127,63,210,149,186,203,251,3,152,191,156,115,243,143,109,214,176,191,97,13,42,162,144,75,175,63,170,104,60,26,107,238,217,63,120,147,111,125,159,102,233,191,202,196,122,245,69,108,219,63,27,173,182,29,121,97,178,63,215,100,82,53,189,17,181,191,50,103,173,82,50,177,161,191,66,219,83,83,253,66,144,63,181,231,71,23,198,114,130,63,132,68,214,168,39,23,101,191,203,137,182,164,54,79,82,191,52,227,181,152,210,141,62,63,111,157,182,220,155,155,18,63,166,34,106,36,231,35,2,191,212,5,20,182,146,19,111,191,181,29,34,210,164,224,127,63,210,149,186,203,251,3,152,63,156,115,243,143,109,214,176,191,97,13,42,162,144,75,175,191,170,104,60,26,107,238,217,63,120,147,111,125,159,102,233,63,202,196,122,245,69,108,219,63,27,173,182,29,121,97,178,191,215,100,82,53,189,17,181,191,50,103,173,82,50,177,161,63,66,219,83,83,253,66,144,63,181,231,71,23,198,114,130,191,132,68,214,168,39,23,101,191,203,137,182,164,54,79,82,63,52,227,181,152,210,141,62,63,111,157,182,220,155,155,18,191,166,34,106,36,231,35,2,191,166,34,106,36,231,35,2,191,111,157,182,220,155,155,18,63,52,227,181,152,210,141,62,63,203,137,182,164,54,79,82,191,132,68,214,168,39,23,101,191,181,231,71,23,198,114,130,63,66,219,83,83,253,66,144,63,50,103,173,82,50,177,161,191,215,100,82,53,189,17,181,191,27,173,182,29,121,97,178,63,202,196,122,245,69,108,219,63,120,147,111,125,159,102,233,191,170,104,60,26,107,238,217,63,97,13,42,162,144,75,175,63,156,115,243,143,109,214,176,191,210,149,186,203,251,3,152,191,181,29,34,210,164,224,127,63,212,5,20,182,146,19,111,63,208,82,44,196,115,242,189,190,52,102,97,41,28,88,203,190,174,255,46,93,154,95,0,63,155,78,4,117,128,87,16,63,161,215,98,51,166,9,49,191,235,251,62,113,16,77,67,191,136,1,36,132,88,192,84,63,238,46,121,243,84,187,110,63,122,127,83,196,36,45,119,191,102,171,108,11,84,39,143,191,202,102,85,25,42,175,153,63,213,8,52,92,164,35,164,63,203,29,190,35,231,161,184,191,101,251,249,134,127,14,177,191,115,8,158,44,251,204,219,63,253,196,62,240,25,8,233,63,128,197,124,182,105,148,218,63,112,107,124,101,42,182,172,191,57,27,98,249,228,205,180,191,22,143,53,218,154,82,155,63,9,105,61,147,96,116,144,63,158,26,13,130,3,23,126,191,115,81,206,185,149,178,90,191,76,103,29,3,69,61,77,63,76,103,29,3,69,61,77,191,115,81,206,185,149,178,90,191,158,26,13,130,3,23,126,63,9,105,61,147,96,116,144,63,22,143,53,218,154,82,155,191,57,27,98,249,228,205,180,191,112,107,124,101,42,182,172,63,128,197,124,182,105,148,218,63,253,196,62,240,25,8,233,191,115,8,158,44,251,204,219,63,101,251,249,134,127,14,177,63,203,29,190,35,231,161,184,191,213,8,52,92,164,35,164,191,202,102,85,25,42,175,153,63,102,171,108,11,84,39,143,63,122,127,83,196,36,45,119,191,238,46,121,243,84,187,110,191,136,1,36,132,88,192,84,63,235,251,62,113,16,77,67,63,161,215,98,51,166,9,49,191,155,78,4,117,128,87,16,191,174,255,46,93,154,95,0,63,52,102,97,41,28,88,203,62,208,82,44,196,115,242,189,190,76,103,29,3,69,61,77,63,115,81,206,185,149,178,90,191,158,26,13,130,3,23,126,191,9,105,61,147,96,116,144,63,22,143,53,218,154,82,155,63,57,27,98,249,228,205,180,191,112,107,124,101,42,182,172,191,128,197,124,182,105,148,218,63,253,196,62,240,25,8,233,63,115,8,158,44,251,204,219,63,101,251,249,134,127,14,177,191,203,29,190,35,231,161,184,191,213,8,52,92,164,35,164,63,202,102,85,25,42,175,153,63,102,171,108,11,84,39,143,191,122,127,83,196,36,45,119,191,238,46,121,243,84,187,110,63,136,1,36,132,88,192,84,63,235,251,62,113,16,77,67,191,161,215,98,51,166,9,49,191,155,78,4,117,128,87,16,63,174,255,46,93,154,95,0,63,52,102,97,41,28,88,203,190,208,82,44,196,115,242,189,190,208,82,44,196,115,242,189,190,52,102,97,41,28,88,203,62,174,255,46,93,154,95,0,63,155,78,4,117,128,87,16,191,161,215,98,51,166,9,49,191,235,251,62,113,16,77,67,63,136,1,36,132,88,192,84,63,238,46,121,243,84,187,110,191,122,127,83,196,36,45,119,191,102,171,108,11,84,39,143,63,202,102,85,25,42,175,153,63,213,8,52,92,164,35,164,191,203,29,190,35,231,161,184,191,101,251,249,134,127,14,177,63,115,8,158,44,251,204,219,63,253,196,62,240,25,8,233,191,128,197,124,182,105,148,218,63,112,107,124,101,42,182,172,63,57,27,98,249,228,205,180,191,22,143,53,218,154,82,155,191,9,105,61,147,96,116,144,63,158,26,13,130,3,23,126,63,115,81,206,185,149,178,90,191,76,103,29,3,69,61,77,191,145,163,132,249,123,140,121,190,103,207,249,50,75,121,134,190,165,76,134,19,229,79,193,62,53,254,56,101,28,84,207,62,130,181,46,125,181,89,246,190,74,233,216,111,158,172,5,191,179,137,142,72,199,107,34,63,146,103,207,4,19,207,51,63,47,251,220,159,8,233,68,191,49,72,241,77,142,62,91,191,225,36,193,75,39,239,99,63,204,20,137,52,195,180,123,63,42,53,22,73,178,196,130,191,16,151,19,137,110,60,148,191,153,240,47,197,230,187,160,63,158,253,132,242,219,35,165,63,67,146,174,77,233,6,187,191,193,2,203,136,45,195,175,191,13,29,149,7,14,8,220,63,221,79,170,253,250,198,232,63,193,128,181,211,240,250,218,63,44,12,165,199,102,165,170,191,193,173,51,223,17,136,183,191,146,77,228,108,20,216,156,63,227,85,107,207,78,248,151,63,27,133,91,147,159,191,132,191,104,158,3,95,103,9,113,191,71,33,121,189,23,216,97,63,92,34,113,251,34,128,55,63,217,25,201,138,64,204,43,191,217,25,201,138,64,204,43,63,92,34,113,251,34,128,55,63,71,33,121,189,23,216,97,191,104,158,3,95,103,9,113,191,27,133,91,147,159,191,132,63,227,85,107,207,78,248,151,63,146,77,228,108,20,216,156,191,193,173,51,223,17,136,183,191,44,12,165,199,102,165,170,63,193,128,181,211,240,250,218,63,221,79,170,253,250,198,232,191,13,29,149,7,14,8,220,63,193,2,203,136,45,195,175,63,67,146,174,77,233,6,187,191,158,253,132,242,219,35,165,191,153,240,47,197,230,187,160,63,16,151,19,137,110,60,148,63,42,53,22,73,178,196,130,191,204,20,137,52,195,180,123,191,225,36,193,75,39,239,99,63,49,72,241,77,142,62,91,63,47,251,220,159,8,233,68,191,146,103,207,4,19,207,51,191,179,137,142,72,199,107,34,63,74,233,216,111,158,172,5,63,130,181,46,125,181,89,246,190,53,254,56,101,28,84,207,190,165,76,134,19,229,79,193,62,103,207,249,50,75,121,134,62,145,163,132,249,123,140,121,190,217,25,201,138,64,204,43,191,92,34,113,251,34,128,55,63,71,33,121,189,23,216,97,63,104,158,3,95,103,9,113,191,27,133,91,147,159,191,132,191,227,85,107,207,78,248,151,63,146,77,228,108,20,216,156,63,193,173,51,223,17,136,183,191,44,12,165,199,102,165,170,191,193,128,181,211,240,250,218,63,221,79,170,253,250,198,232,63,13,29,149,7,14,8,220,63,193,2,203,136,45,195,175,191,67,146,174,77,233,6,187,191,158,253,132,242,219,35,165,63,153,240,47,197,230,187,160,63,16,151,19,137,110,60,148,191,42,53,22,73,178,196,130,191,204,20,137,52,195,180,123,63,225,36,193,75,39,239,99,63,49,72,241,77,142,62,91,191,47,251,220,159,8,233,68,191,146,103,207,4,19,207,51,63,179,137,142,72,199,107,34,63,74,233,216,111,158,172,5,191,130,181,46,125,181,89,246,190,53,254,56,101,28,84,207,62,165,76,134,19,229,79,193,62,103,207,249,50,75,121,134,190,145,163,132,249,123,140,121,190,145,163,132,249,123,140,121,190,103,207,249,50,75,121,134,62,165,76,134,19,229,79,193,62,53,254,56,101,28,84,207,190,130,181,46,125,181,89,246,190,74,233,216,111,158,172,5,63,179,137,142,72,199,107,34,63,146,103,207,4,19,207,51,191,47,251,220,159,8,233,68,191,49,72,241,77,142,62,91,63,225,36,193,75,39,239,99,63,204,20,137,52,195,180,123,191,42,53,22,73,178,196,130,191,16,151,19,137,110,60,148,63,153,240,47,197,230,187,160,63,158,253,132,242,219,35,165,191,67,146,174,77,233,6,187,191,193,2,203,136,45,195,175,63,13,29,149,7,14,8,220,63,221,79,170,253,250,198,232,191,193,128,181,211,240,250,218,63,44,12,165,199,102,165,170,63,193,173,51,223,17,136,183,191,146,77,228,108,20,216,156,191,227,85,107,207,78,248,151,63,27,133,91,147,159,191,132,63,104,158,3,95,103,9,113,191,71,33,121,189,23,216,97,191,92,34,113,251,34,128,55,63,217,25,201,138,64,204,43,63,221,214,146,193,125,144,192,191,19,91,107,11,191,176,204,63,132,241,227,214,189,196,234,63,17,202,72,71,221,232,222,63,17,202,72,71,221,232,222,191,132,241,227,214,189,196,234,63,19,91,107,11,191,176,204,191,221,214,146,193,125,144,192,191,17,202,72,71,221,232,222,63,132,241,227,214,189,196,234,63,19,91,107,11,191,176,204,63,221,214,146,193,125,144,192,191,221,214,146,193,125,144,192,191,19,91,107,11,191,176,204,191,132,241,227,214,189,196,234,63,17,202,72,71,221,232,222,191,234,144,45,195,97,101,179,191,187,53,40,152,198,88,158,191,78,243,214,247,251,216,223,63,191,24,177,84,58,184,233,63,178,238,190,36,26,16,211,63,253,94,201,182,115,102,185,191,194,191,133,217,27,208,137,191,23,72,138,214,139,127,160,63,23,72,138,214,139,127,160,191,194,191,133,217,27,208,137,191,253,94,201,182,115,102,185,63,178,238,190,36,26,16,211,63,191,24,177,84,58,184,233,191,78,243,214,247,251,216,223,63,187,53,40,152,198,88,158,63,234,144,45,195,97,101,179,191,23,72,138,214,139,127,160,63,194,191,133,217,27,208,137,191,253,94,201,182,115,102,185,191,178,238,190,36,26,16,211,63,191,24,177,84,58,184,233,63,78,243,214,247,251,216,223,63,187,53,40,152,198,88,158,191,234,144,45,195,97,101,179,191,234,144,45,195,97,101,179,191,187,53,40,152,198,88,158,63,78,243,214,247,251,216,223,63,191,24,177,84,58,184,233,191,178,238,190,36,26,16,211,63,253,94,201,182,115,102,185,63,194,191,133,217,27,208,137,191,23,72,138,214,139,127,160,191,96,214,144,42,51,253,155,63,91,171,123,128,91,58,158,63,147,130,208,129,103,9,164,191,141,0,171,191,219,133,201,63,89,129,126,226,39,38,231,63,193,245,76,64,142,73,228,63,18,163,54,117,36,0,145,63,115,12,29,158,38,113,198,191,130,124,22,28,184,155,149,191,72,204,100,57,0,2,148,63,72,204,100,57,0,2,148,191,130,124,22,28,184,155,149,191,115,12,29,158,38,113,198,63,18,163,54,117,36,0,145,63,193,245,76,64,142,73,228,191,89,129,126,226,39,38,231,63,141,0,171,191,219,133,201,191,147,130,208,129,103,9,164,191,91,171,123,128,91,58,158,191,96,214,144,42,51,253,155,63,72,204,100,57,0,2,148,63,130,124,22,28,184,155,149,191,115,12,29,158,38,113,198,191,18,163,54,117,36,0,145,63,193,245,76,64,142,73,228,63,89,129,126,226,39,38,231,63,141,0,171,191,219,133,201,63,147,130,208,129,103,9,164,191,91,171,123,128,91,58,158,63,96,214,144,42,51,253,155,63,96,214,144,42,51,253,155,63,91,171,123,128,91,58,158,191,147,130,208,129,103,9,164,191,141,0,171,191,219,133,201,191,89,129,126,226,39,38,231,63,193,245,76,64,142,73,228,191,18,163,54,117,36,0,145,63,115,12,29,158,38,113,198,63,130,124,22,28,184,155,149,191,72,204,100,57,0,2,148,191,110,203,68,142,48,140,143,63,249,22,186,199,141,152,108,63,167,4,162,148,153,52,190,191,131,12,214,20,81,188,168,191,16,61,197,230,117,109,223,63,140,174,182,49,91,52,233,63,243,72,171,185,162,160,213,63,72,143,212,104,95,152,178,191,158,141,86,78,212,144,149,191,14,249,215,172,46,230,166,63,46,185,82,41,82,246,92,63,183,57,68,178,162,243,127,191,183,57,68,178,162,243,127,63,46,185,82,41,82,246,92,63,14,249,215,172,46,230,166,191,158,141,86,78,212,144,149,191,72,143,212,104,95,152,178,63,243,72,171,185,162,160,213,63,140,174,182,49,91,52,233,191,16,61,197,230,117,109,223,63,131,12,214,20,81,188,168,63,167,4,162,148,153,52,190,191,249,22,186,199,141,152,108,191,110,203,68,142,48,140,143,63,183,57,68,178,162,243,127,191,46,185,82,41,82,246,92,63,14,249,215,172,46,230,166,63,158,141,86,78,212,144,149,191,72,143,212,104,95,152,178,191,243,72,171,185,162,160,213,63,140,174,182,49,91,52,233,63,16,61,197,230,117,109,223,63,131,12,214,20,81,188,168,191,167,4,162,148,153,52,190,191,249,22,186,199,141,152,108,63,110,203,68,142,48,140,143,63,110,203,68,142,48,140,143,63,249,22,186,199,141,152,108,191,167,4,162,148,153,52,190,191,131,12,214,20,81,188,168,63,16,61,197,230,117,109,223,63,140,174,182,49,91,52,233,191,243,72,171,185,162,160,213,63,72,143,212,104,95,152,178,63,158,141,86,78,212,144,149,191,14,249,215,172,46,230,166,191,46,185,82,41,82,246,92,63,183,57,68,178,162,243,127,63,229,213,170,59,44,248,101,63,123,71,247,245,12,41,81,191,246,216,223,238,15,225,137,191,64,29,70,108,117,63,159,63,150,202,57,98,106,97,177,63,192,69,245,58,253,94,169,191,107,5,204,208,30,220,145,63,191,108,39,53,191,39,225,63,74,15,18,121,134,145,232,63,179,223,65,107,232,120,210,63,30,125,204,102,17,237,193,191,247,98,45,23,82,153,187,191,115,175,39,233,11,109,112,63,217,136,56,89,123,7,133,63,217,136,56,89,123,7,133,191,115,175,39,233,11,109,112,63,247,98,45,23,82,153,187,63,30,125,204,102,17,237,193,191,179,223,65,107,232,120,210,191,74,15,18,121,134,145,232,63,191,108,39,53,191,39,225,191,107,5,204,208,30,220,145,63,192,69,245,58,253,94,169,63,150,202,57,98,106,97,177,63,64,29,70,108,117,63,159,191,246,216,223,238,15,225,137,191,123,71,247,245,12,41,81,63,229,213,170,59,44,248,101,63,217,136,56,89,123,7,133,63,115,175,39,233,11,109,112,63,247,98,45,23,82,153,187,191,30,125,204,102,17,237,193,191,179,223,65,107,232,120,210,63,74,15,18,121,134,145,232,63,191,108,39,53,191,39,225,63,107,5,204,208,30,220,145,63,192,69,245,58,253,94,169,191,150,202,57,98,106,97,177,63,64,29,70,108,117,63,159,63,246,216,223,238,15,225,137,191,123,71,247,245,12,41,81,191,229,213,170,59,44,248,101,63,229,213,170,59,44,248,101,63,123,71,247,245,12,41,81,63,246,216,223,238,15,225,137,191,64,29,70,108,117,63,159,191,150,202,57,98,106,97,177,63,192,69,245,58,253,94,169,63,107,5,204,208,30,220,145,63,191,108,39,53,191,39,225,191,74,15,18,121,134,145,232,63,179,223,65,107,232,120,210,191,30,125,204,102,17,237,193,191,247,98,45,23,82,153,187,63,115,175,39,233,11,109,112,63,217,136,56,89,123,7,133,191,107,102,131,188,112,181,107,191,231,128,76,81,188,195,65,191,94,60,48,171,86,58,160,63,179,124,62,84,7,41,127,63,173,2,182,49,119,87,194,191,177,145,159,194,56,95,175,191,244,49,241,181,152,206,222,63,209,17,79,167,180,222,232,63,144,10,231,24,4,83,215,63,209,253,171,23,165,152,170,191,243,87,74,45,78,223,155,191,252,127,110,39,130,40,169,63,205,208,210,42,136,51,111,63,231,194,120,36,74,159,142,191,108,96,58,180,41,218,51,191,3,113,178,183,6,247,94,63,3,113,178,183,6,247,94,191,108,96,58,180,41,218,51,191,231,194,120,36,74,159,142,63,205,208,210,42,136,51,111,63,252,127,110,39,130,40,169,191,243,87,74,45,78,223,155,191,209,253,171,23,165,152,170,63,144,10,231,24,4,83,215,63,209,17,79,167,180,222,232,191,244,49,241,181,152,206,222,63,177,145,159,194,56,95,175,63,173,2,182,49,119,87,194,191,179,124,62,84,7,41,127,191,94,60,48,171,86,58,160,63,231,128,76,81,188,195,65,63,107,102,131,188,112,181,107,191,3,113,178,183,6,247,94,63,108,96,58,180,41,218,51,191,231,194,120,36,74,159,142,191,205,208,210,42,136,51,111,63,252,127,110,39,130,40,169,63,243,87,74,45,78,223,155,191,209,253,171,23,165,152,170,191,144,10,231,24,4,83,215,63,209,17,79,167,180,222,232,63,244,49,241,181,152,206,222,63,177,145,159,194,56,95,175,191,173,2,182,49,119,87,194,191,179,124,62,84,7,41,127,63,94,60,48,171,86,58,160,63,231,128,76,81,188,195,65,191,107,102,131,188,112,181,107,191,107,102,131,188,112,181,107,191,231,128,76,81,188,195,65,63,94,60,48,171,86,58,160,63,179,124,62,84,7,41,127,191,173,2,182,49,119,87,194,191,177,145,159,194,56,95,175,63,244,49,241,181,152,206,222,63,209,17,79,167,180,222,232,191,144,10,231,24,4,83,215,63,209,253,171,23,165,152,170,63,243,87,74,45,78,223,155,191,252,127,110,39,130,40,169,191,205,208,210,42,136,51,111,63,231,194,120,36,74,159,142,63,108,96,58,180,41,218,51,191,3,113,178,183,6,247,94,191,152,155,145,151,221,243,86,63,191,118,14,83,25,79,68,63,103,156,156,92,85,46,139,191,119,80,150,46,26,156,135,191,47,46,227,72,69,243,158,63,0,166,222,180,112,30,67,63,141,167,172,103,118,240,171,191,197,148,230,183,183,143,206,63,24,190,139,77,3,249,230,63,45,245,51,144,60,193,227,63,25,190,30,77,60,15,162,63,16,195,248,213,188,132,200,191,179,151,184,164,223,171,146,191,182,77,186,245,168,200,175,63,252,146,52,193,206,36,130,63,196,245,148,90,83,5,133,191,189,132,8,25,55,2,63,191,158,78,190,45,196,133,81,63,158,78,190,45,196,133,81,191,189,132,8,25,55,2,63,191,196,245,148,90,83,5,133,63,252,146,52,193,206,36,130,63,182,77,186,245,168,200,175,191,179,151,184,164,223,171,146,191,16,195,248,213,188,132,200,63,25,190,30,77,60,15,162,63,45,245,51,144,60,193,227,191,24,190,139,77,3,249,230,63,197,148,230,183,183,143,206,191,141,167,172,103,118,240,171,191,0,166,222,180,112,30,67,191,47,46,227,72,69,243,158,63,119,80,150,46,26,156,135,63,103,156,156,92,85,46,139,191,191,118,14,83,25,79,68,191,152,155,145,151,221,243,86,63,158,78,190,45,196,133,81,63,189,132,8,25,55,2,63,191,196,245,148,90,83,5,133,191,252,146,52,193,206,36,130,63,182,77,186,245,168,200,175,63,179,151,184,164,223,171,146,191,16,195,248,213,188,132,200,191,25,190,30,77,60,15,162,63,45,245,51,144,60,193,227,63,24,190,139,77,3,249,230,63,197,148,230,183,183,143,206,63,141,167,172,103,118,240,171,191,0,166,222,180,112,30,67,63,47,46,227,72,69,243,158,63,119,80,150,46,26,156,135,191,103,156,156,92,85,46,139,191,191,118,14,83,25,79,68,63,152,155,145,151,221,243,86,63,152,155,145,151,221,243,86,63,191,118,14,83,25,79,68,191,103,156,156,92,85,46,139,191,119,80,150,46,26,156,135,63,47,46,227,72,69,243,158,63,0,166,222,180,112,30,67,191,141,167,172,103,118,240,171,191,197,148,230,183,183,143,206,191,24,190,139,77,3,249,230,63,45,245,51,144,60,193,227,191,25,190,30,77,60,15,162,63,16,195,248,213,188,132,200,63,179,151,184,164,223,171,146,191,182,77,186,245,168,200,175,191,252,146,52,193,206,36,130,63,196,245,148,90,83,5,133,63,189,132,8,25,55,2,63,191,158,78,190,45,196,133,81,191,0,254,174,152,145,60,73,63,191,4,210,197,204,17,25,63,143,109,81,142,135,178,129,191,148,66,210,144,66,2,88,191,207,120,252,108,198,131,167,63,201,2,3,149,237,198,135,63,134,219,218,251,78,106,196,191,98,171,28,15,58,37,178,191,191,14,21,13,46,48,222,63,133,97,94,131,211,159,232,63,26,55,135,30,158,144,216,63,216,112,72,36,223,49,162,191,218,227,54,48,0,97,160,191,0,211,18,228,240,152,169,63,44,119,96,202,242,156,119,63,128,68,57,227,236,215,148,191,188,46,84,167,115,91,74,191,91,26,87,165,74,208,114,63,47,118,33,233,64,231,13,63,49,206,95,215,68,26,62,191,49,206,95,215,68,26,62,63,47,118,33,233,64,231,13,63,91,26,87,165,74,208,114,191,188,46,84,167,115,91,74,191,128,68,57,227,236,215,148,63,44,119,96,202,242,156,119,63,0,211,18,228,240,152,169,191,218,227,54,48,0,97,160,191,216,112,72,36,223,49,162,63,26,55,135,30,158,144,216,63,133,97,94,131,211,159,232,191,191,14,21,13,46,48,222,63,98,171,28,15,58,37,178,63,134,219,218,251,78,106,196,191,201,2,3,149,237,198,135,191,207,120,252,108,198,131,167,63,148,66,210,144,66,2,88,63,143,109,81,142,135,178,129,191,191,4,210,197,204,17,25,191,0,254,174,152,145,60,73,63,49,206,95,215,68,26,62,191,47,118,33,233,64,231,13,63,91,26,87,165,74,208,114,63,188,46,84,167,115,91,74,191,128,68,57,227,236,215,148,191,44,119,96,202,242,156,119,63,0,211,18,228,240,152,169,63,218,227,54,48,0,97,160,191,216,112,72,36,223,49,162,191,26,55,135,30,158,144,216,63,133,97,94,131,211,159,232,63,191,14,21,13,46,48,222,63,98,171,28,15,58,37,178,191,134,219,218,251,78,106,196,191,201,2,3,149,237,198,135,63,207,120,252,108,198,131,167,63,148,66,210,144,66,2,88,191,143,109,81,142,135,178,129,191,191,4,210,197,204,17,25,63,0,254,174,152,145,60,73,63,0,254,174,152,145,60,73,63,191,4,210,197,204,17,25,191,143,109,81,142,135,178,129,191,148,66,210,144,66,2,88,63,207,120,252,108,198,131,167,63,201,2,3,149,237,198,135,191,134,219,218,251,78,106,196,191,98,171,28,15,58,37,178,63,191,14,21,13,46,48,222,63,133,97,94,131,211,159,232,191,26,55,135,30,158,144,216,63,216,112,72,36,223,49,162,63,218,227,54,48,0,97,160,191,0,211,18,228,240,152,169,191,44,119,96,202,242,156,119,63,128,68,57,227,236,215,148,63,188,46,84,167,115,91,74,191,91,26,87,165,74,208,114,191,47,118,33,233,64,231,13,63,49,206,95,215,68,26,62,63,10,32,84,104,101,32,68,101,99,111,109,112,111,115,105,116,105,111,110,32,73,116,101,114,97,116,105,111,110,115,32,67,97,110,110,111,116,32,69,120,99,101,101,100,32,49,48,48,46,32,69,120,105,116,105,110,103,32,10,0,0,0,0,0,10,32,69,114,114,111,114,32,45,32,84,104,101,32,83,105,103,110,97,108,32,67,97,110,32,111,110,108,121,32,98,101,32,105,116,101,114,97,116,101,100,32,37,100,32,116,105,109,101,115,32,117,115,105,110,103,32,116,104,105,115,32,119,97,118,101,108,101,116,46,32,69,120,105,116,105,110,103,10,0,10,32,70,111,114,32,83,87,84,32,116,104,101,32,115,105,103,110,97,108,32,108,101,110,103,116,104,32,109,117,115,116,32,98,101,32,97,32,109,117,108,116,105,112,108,101,32,111,102,32,50,94,74,46,32,10,0,0,0,0,0,0,0,0,100,98,0,0,0,0,0,0,99,111,105,102,0,0,0,0,10,32,77,79,68,87,84,32,105,115,32,111,110,108,121,32,105,109,112,108,101,109,101,110,116,101,100,32,102,111,114,32,111,114,116,104,111,103,111,110,97,108,32,119,97,118,101,108,101,116,32,102,97,109,105,108,105,101,115,32,45,32,100,98,44,32,115,121,109,32,97,110,100,32,99,111,105,102,32,10,0,0,0,0,0,0,0,0,100,105,114,101,99,116,0,0,102,102,116,0,0,0,0,0,70,70,84,0,0,0,0,0,83,105,103,110,97,108,32,101,120,116,101,110,115,105,111,110,32,99,97,110,32,98,101,32,101,105,116,104,101,114,32,112,101,114,32,111,114,32,115,121,109,0,0,0,0,0,0,0,68,101,99,111,109,112,111,115,105,116,105,111,110,32,70,105,108,116,101,114,115,32,109,117,115,116,32,104,97,118,101,32,116,104,101,32,115,97,109,101,32,108,101,110,103,116,104,46,0,0,0,0,0,0,0,0,83,87,84,32,79,110,108,121,32,97,99,99,101,112,116,115,32,116,119,111,32,109,101,116,104,111,100,115,32,45,32,100,105,114,101,99,116,32,97,110,100,32,102,102,116,0,0,0,67,111,110,118,111,108,117,116,105,111,110,32,79,110,108,121,32,97,99,99,101,112,116,115,32,116,119,111,32,109,101,116,104,111,100,115,32,45,32,100,105,114,101,99,116,32,97,110,100,32,102,102,116,0,0,0,100,119,116,0,0,0,0,0,68,87,84,0,0,0,0,0,112,101,114,0,0,0,0,0,115,121,109,0,0,0,0,0,115,119,116,0,0,0,0,0,83,87,84,0,0,0,0,0,109,111,100,119,116,0,0,0,77,79,68,87,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+10240); /* no memory initializer */ var tempDoublePtr = Runtime.alignMemory(allocate(12, "i8", ALLOC_STATIC), 8); assert(tempDoublePtr % 8 == 0); function copyTempFloat(ptr) { // functions, because inlining this code increases code size too much HEAP8[tempDoublePtr] = HEAP8[ptr]; HEAP8[tempDoublePtr+1] = HEAP8[ptr+1]; HEAP8[tempDoublePtr+2] = HEAP8[ptr+2]; HEAP8[tempDoublePtr+3] = HEAP8[ptr+3]; } function copyTempDouble(ptr) { HEAP8[tempDoublePtr] = HEAP8[ptr]; HEAP8[tempDoublePtr+1] = HEAP8[ptr+1]; HEAP8[tempDoublePtr+2] = HEAP8[ptr+2]; HEAP8[tempDoublePtr+3] = HEAP8[ptr+3]; HEAP8[tempDoublePtr+4] = HEAP8[ptr+4]; HEAP8[tempDoublePtr+5] = HEAP8[ptr+5]; HEAP8[tempDoublePtr+6] = HEAP8[ptr+6]; HEAP8[tempDoublePtr+7] = HEAP8[ptr+7]; } // {{PRE_LIBRARY}} var _BDtoIHigh=true; var ___errno_state=0;function ___setErrNo(value) { // For convenient setting and returning of errno. HEAP32[((___errno_state)>>2)]=value; return value; } var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _sysconf(name) { // long sysconf(int name); // http://pubs.opengroup.org/onlinepubs/009695399/functions/sysconf.html switch(name) { case 30: return PAGE_SIZE; case 85: return totalMemory / PAGE_SIZE; case 132: case 133: case 12: case 137: case 138: case 15: case 235: case 16: case 17: case 18: case 19: case 20: case 149: case 13: case 10: case 236: case 153: case 9: case 21: case 22: case 159: case 154: case 14: case 77: case 78: case 139: case 80: case 81: case 82: case 68: case 67: case 164: case 11: case 29: case 47: case 48: case 95: case 52: case 51: case 46: return 200809; case 79: return 0; case 27: case 246: case 127: case 128: case 23: case 24: case 160: case 161: case 181: case 182: case 242: case 183: case 184: case 243: case 244: case 245: case 165: case 178: case 179: case 49: case 50: case 168: case 169: case 175: case 170: case 171: case 172: case 97: case 76: case 32: case 173: case 35: return -1; case 176: case 177: case 7: case 155: case 8: case 157: case 125: case 126: case 92: case 93: case 129: case 130: case 131: case 94: case 91: return 1; case 74: case 60: case 69: case 70: case 4: return 1024; case 31: case 42: case 72: return 32; case 87: case 26: case 33: return 2147483647; case 34: case 1: return 47839; case 38: case 36: return 99; case 43: case 37: return 2048; case 0: return 2097152; case 3: return 65536; case 28: return 32768; case 44: return 32767; case 75: return 16384; case 39: return 1000; case 89: return 700; case 71: return 256; case 40: return 255; case 2: return 100; case 180: return 64; case 25: return 20; case 5: return 16; case 6: return 6; case 73: return 4; case 84: { if (typeof navigator === 'object') return navigator['hardwareConcurrency'] || 1; return 1; } } ___setErrNo(ERRNO_CODES.EINVAL); return -1; } Module["_memset"] = _memset; var _BDtoILow=true; var _ceil=Math_ceil; function _abort() { Module['abort'](); } var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"}; var PATH={splitPath:function (filename) { var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; return splitPathRe.exec(filename).slice(1); },normalizeArray:function (parts, allowAboveRoot) { // if the path tries to go above the root, `up` ends up > 0 var up = 0; for (var i = parts.length - 1; i >= 0; i--) { var last = parts[i]; if (last === '.') { parts.splice(i, 1); } else if (last === '..') { parts.splice(i, 1); up++; } else if (up) { parts.splice(i, 1); up--; } } // if the path is allowed to go above the root, restore leading ..s if (allowAboveRoot) { for (; up--; up) { parts.unshift('..'); } } return parts; },normalize:function (path) { var isAbsolute = path.charAt(0) === '/', trailingSlash = path.substr(-1) === '/'; // Normalize the path path = PATH.normalizeArray(path.split('/').filter(function(p) { return !!p; }), !isAbsolute).join('/'); if (!path && !isAbsolute) { path = '.'; } if (path && trailingSlash) { path += '/'; } return (isAbsolute ? '/' : '') + path; },dirname:function (path) { var result = PATH.splitPath(path), root = result[0], dir = result[1]; if (!root && !dir) { // No dirname whatsoever return '.'; } if (dir) { // It has a dirname, strip trailing slash dir = dir.substr(0, dir.length - 1); } return root + dir; },basename:function (path) { // EMSCRIPTEN return '/'' for '/', not an empty string if (path === '/') return '/'; var lastSlash = path.lastIndexOf('/'); if (lastSlash === -1) return path; return path.substr(lastSlash+1); },extname:function (path) { return PATH.splitPath(path)[3]; },join:function () { var paths = Array.prototype.slice.call(arguments, 0); return PATH.normalize(paths.join('/')); },join2:function (l, r) { return PATH.normalize(l + '/' + r); },resolve:function () { var resolvedPath = '', resolvedAbsolute = false; for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { var path = (i >= 0) ? arguments[i] : FS.cwd(); // Skip empty and invalid entries if (typeof path !== 'string') { throw new TypeError('Arguments to path.resolve must be strings'); } else if (!path) { return ''; // an invalid portion invalidates the whole thing } resolvedPath = path + '/' + resolvedPath; resolvedAbsolute = path.charAt(0) === '/'; } // At this point the path should be resolved to a full absolute path, but // handle relative paths to be safe (might happen when process.cwd() fails) resolvedPath = PATH.normalizeArray(resolvedPath.split('/').filter(function(p) { return !!p; }), !resolvedAbsolute).join('/'); return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; },relative:function (from, to) { from = PATH.resolve(from).substr(1); to = PATH.resolve(to).substr(1); function trim(arr) { var start = 0; for (; start < arr.length; start++) { if (arr[start] !== '') break; } var end = arr.length - 1; for (; end >= 0; end--) { if (arr[end] !== '') break; } if (start > end) return []; return arr.slice(start, end - start + 1); } var fromParts = trim(from.split('/')); var toParts = trim(to.split('/')); var length = Math.min(fromParts.length, toParts.length); var samePartsLength = length; for (var i = 0; i < length; i++) { if (fromParts[i] !== toParts[i]) { samePartsLength = i; break; } } var outputParts = []; for (var i = samePartsLength; i < fromParts.length; i++) { outputParts.push('..'); } outputParts = outputParts.concat(toParts.slice(samePartsLength)); return outputParts.join('/'); }}; var TTY={ttys:[],init:function () { // https://github.com/kripken/emscripten/pull/1555 // if (ENVIRONMENT_IS_NODE) { // // currently, FS.init does not distinguish if process.stdin is a file or TTY // // device, it always assumes it's a TTY device. because of this, we're forcing // // process.stdin to UTF8 encoding to at least make stdin reading compatible // // with text files until FS.init can be refactored. // process['stdin']['setEncoding']('utf8'); // } },shutdown:function () { // https://github.com/kripken/emscripten/pull/1555 // if (ENVIRONMENT_IS_NODE) { // // inolen: any idea as to why node -e 'process.stdin.read()' wouldn't exit immediately (with process.stdin being a tty)? // // isaacs: because now it's reading from the stream, you've expressed interest in it, so that read() kicks off a _read() which creates a ReadReq operation // // inolen: I thought read() in that case was a synchronous operation that just grabbed some amount of buffered data if it exists? // // isaacs: it is. but it also triggers a _read() call, which calls readStart() on the handle // // isaacs: do process.stdin.pause() and i'd think it'd probably close the pending call // process['stdin']['pause'](); // } },register:function (dev, ops) { TTY.ttys[dev] = { input: [], output: [], ops: ops }; FS.registerDevice(dev, TTY.stream_ops); },stream_ops:{open:function (stream) { var tty = TTY.ttys[stream.node.rdev]; if (!tty) { throw new FS.ErrnoError(ERRNO_CODES.ENODEV); } stream.tty = tty; stream.seekable = false; },close:function (stream) { // flush any pending line data stream.tty.ops.flush(stream.tty); },flush:function (stream) { stream.tty.ops.flush(stream.tty); },read:function (stream, buffer, offset, length, pos /* ignored */) { if (!stream.tty || !stream.tty.ops.get_char) { throw new FS.ErrnoError(ERRNO_CODES.ENXIO); } var bytesRead = 0; for (var i = 0; i < length; i++) { var result; try { result = stream.tty.ops.get_char(stream.tty); } catch (e) { throw new FS.ErrnoError(ERRNO_CODES.EIO); } if (result === undefined && bytesRead === 0) { throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); } if (result === null || result === undefined) break; bytesRead++; buffer[offset+i] = result; } if (bytesRead) { stream.node.timestamp = Date.now(); } return bytesRead; },write:function (stream, buffer, offset, length, pos) { if (!stream.tty || !stream.tty.ops.put_char) { throw new FS.ErrnoError(ERRNO_CODES.ENXIO); } for (var i = 0; i < length; i++) { try { stream.tty.ops.put_char(stream.tty, buffer[offset+i]); } catch (e) { throw new FS.ErrnoError(ERRNO_CODES.EIO); } } if (length) { stream.node.timestamp = Date.now(); } return i; }},default_tty_ops:{get_char:function (tty) { if (!tty.input.length) { var result = null; if (ENVIRONMENT_IS_NODE) { // we will read data by chunks of BUFSIZE var BUFSIZE = 256; var buf = new Buffer(BUFSIZE); var bytesRead = 0; var fd = process.stdin.fd; // Linux and Mac cannot use process.stdin.fd (which isn't set up as sync) var usingDevice = false; try { fd = fs.openSync('/dev/stdin', 'r'); usingDevice = true; } catch (e) {} bytesRead = fs.readSync(fd, buf, 0, BUFSIZE, null); if (usingDevice) { fs.closeSync(fd); } if (bytesRead > 0) { result = buf.slice(0, bytesRead).toString('utf-8'); } else { result = null; } } else if (typeof window != 'undefined' && typeof window.prompt == 'function') { // Browser. result = window.prompt('Input: '); // returns null on cancel if (result !== null) { result += '\n'; } } else if (typeof readline == 'function') { // Command line. result = readline(); if (result !== null) { result += '\n'; } } if (!result) { return null; } tty.input = intArrayFromString(result, true); } return tty.input.shift(); },put_char:function (tty, val) { if (val === null || val === 10) { Module['print'](UTF8ArrayToString(tty.output, 0)); tty.output = []; } else { if (val != 0) tty.output.push(val); // val == 0 would cut text output off in the middle. } },flush:function (tty) { if (tty.output && tty.output.length > 0) { Module['print'](UTF8ArrayToString(tty.output, 0)); tty.output = []; } }},default_tty1_ops:{put_char:function (tty, val) { if (val === null || val === 10) { Module['printErr'](UTF8ArrayToString(tty.output, 0)); tty.output = []; } else { if (val != 0) tty.output.push(val); } },flush:function (tty) { if (tty.output && tty.output.length > 0) { Module['printErr'](UTF8ArrayToString(tty.output, 0)); tty.output = []; } }}}; var MEMFS={ops_table:null,mount:function (mount) { return MEMFS.createNode(null, '/', 16384 | 511 /* 0777 */, 0); },createNode:function (parent, name, mode, dev) { if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { // no supported throw new FS.ErrnoError(ERRNO_CODES.EPERM); } if (!MEMFS.ops_table) { MEMFS.ops_table = { dir: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, lookup: MEMFS.node_ops.lookup, mknod: MEMFS.node_ops.mknod, rename: MEMFS.node_ops.rename, unlink: MEMFS.node_ops.unlink, rmdir: MEMFS.node_ops.rmdir, readdir: MEMFS.node_ops.readdir, symlink: MEMFS.node_ops.symlink }, stream: { llseek: MEMFS.stream_ops.llseek } }, file: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: { llseek: MEMFS.stream_ops.llseek, read: MEMFS.stream_ops.read, write: MEMFS.stream_ops.write, allocate: MEMFS.stream_ops.allocate, mmap: MEMFS.stream_ops.mmap, msync: MEMFS.stream_ops.msync } }, link: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr, readlink: MEMFS.node_ops.readlink }, stream: {} }, chrdev: { node: { getattr: MEMFS.node_ops.getattr, setattr: MEMFS.node_ops.setattr }, stream: FS.chrdev_stream_ops } }; } var node = FS.createNode(parent, name, mode, dev); if (FS.isDir(node.mode)) { node.node_ops = MEMFS.ops_table.dir.node; node.stream_ops = MEMFS.ops_table.dir.stream; node.contents = {}; } else if (FS.isFile(node.mode)) { node.node_ops = MEMFS.ops_table.file.node; node.stream_ops = MEMFS.ops_table.file.stream; node.usedBytes = 0; // The actual number of bytes used in the typed array, as opposed to contents.buffer.byteLength which gives the whole capacity. // When the byte data of the file is populated, this will point to either a typed array, or a normal JS array. Typed arrays are preferred // for performance, and used by default. However, typed arrays are not resizable like normal JS arrays are, so there is a small disk size // penalty involved for appending file writes that continuously grow a file similar to std::vector capacity vs used -scheme. node.contents = null; } else if (FS.isLink(node.mode)) { node.node_ops = MEMFS.ops_table.link.node; node.stream_ops = MEMFS.ops_table.link.stream; } else if (FS.isChrdev(node.mode)) { node.node_ops = MEMFS.ops_table.chrdev.node; node.stream_ops = MEMFS.ops_table.chrdev.stream; } node.timestamp = Date.now(); // add the new node to the parent if (parent) { parent.contents[name] = node; } return node; },getFileDataAsRegularArray:function (node) { if (node.contents && node.contents.subarray) { var arr = []; for (var i = 0; i < node.usedBytes; ++i) arr.push(node.contents[i]); return arr; // Returns a copy of the original data. } return node.contents; // No-op, the file contents are already in a JS array. Return as-is. },getFileDataAsTypedArray:function (node) { if (!node.contents) return new Uint8Array; if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes); // Make sure to not return excess unused bytes. return new Uint8Array(node.contents); },expandFileStorage:function (node, newCapacity) { // If we are asked to expand the size of a file that already exists, revert to using a standard JS array to store the file // instead of a typed array. This makes resizing the array more flexible because we can just .push() elements at the back to // increase the size. if (node.contents && node.contents.subarray && newCapacity > node.contents.length) { node.contents = MEMFS.getFileDataAsRegularArray(node); node.usedBytes = node.contents.length; // We might be writing to a lazy-loaded file which had overridden this property, so force-reset it. } if (!node.contents || node.contents.subarray) { // Keep using a typed array if creating a new storage, or if old one was a typed array as well. var prevCapacity = node.contents ? node.contents.buffer.byteLength : 0; if (prevCapacity >= newCapacity) return; // No need to expand, the storage was already large enough. // Don't expand strictly to the given requested limit if it's only a very small increase, but instead geometrically grow capacity. // For small filesizes (<1MB), perform size*2 geometric increase, but for large sizes, do a much more conservative size*1.125 increase to // avoid overshooting the allocation cap by a very large margin. var CAPACITY_DOUBLING_MAX = 1024 * 1024; newCapacity = Math.max(newCapacity, (prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2.0 : 1.125)) | 0); if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256); // At minimum allocate 256b for each file when expanding. var oldContents = node.contents; node.contents = new Uint8Array(newCapacity); // Allocate new storage. if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0); // Copy old data over to the new storage. return; } // Not using a typed array to back the file storage. Use a standard JS array instead. if (!node.contents && newCapacity > 0) node.contents = []; while (node.contents.length < newCapacity) node.contents.push(0); },resizeFileStorage:function (node, newSize) { if (node.usedBytes == newSize) return; if (newSize == 0) { node.contents = null; // Fully decommit when requesting a resize to zero. node.usedBytes = 0; return; } if (!node.contents || node.contents.subarray) { // Resize a typed array if that is being used as the backing store. var oldContents = node.contents; node.contents = new Uint8Array(new ArrayBuffer(newSize)); // Allocate new storage. if (oldContents) { node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes))); // Copy old data over to the new storage. } node.usedBytes = newSize; return; } // Backing with a JS array. if (!node.contents) node.contents = []; if (node.contents.length > newSize) node.contents.length = newSize; else while (node.contents.length < newSize) node.contents.push(0); node.usedBytes = newSize; },node_ops:{getattr:function (node) { var attr = {}; // device numbers reuse inode numbers. attr.dev = FS.isChrdev(node.mode) ? node.id : 1; attr.ino = node.id; attr.mode = node.mode; attr.nlink = 1; attr.uid = 0; attr.gid = 0; attr.rdev = node.rdev; if (FS.isDir(node.mode)) { attr.size = 4096; } else if (FS.isFile(node.mode)) { attr.size = node.usedBytes; } else if (FS.isLink(node.mode)) { attr.size = node.link.length; } else { attr.size = 0; } attr.atime = new Date(node.timestamp); attr.mtime = new Date(node.timestamp); attr.ctime = new Date(node.timestamp); // NOTE: In our implementation, st_blocks = Math.ceil(st_size/st_blksize), // but this is not required by the standard. attr.blksize = 4096; attr.blocks = Math.ceil(attr.size / attr.blksize); return attr; },setattr:function (node, attr) { if (attr.mode !== undefined) { node.mode = attr.mode; } if (attr.timestamp !== undefined) { node.timestamp = attr.timestamp; } if (attr.size !== undefined) { MEMFS.resizeFileStorage(node, attr.size); } },lookup:function (parent, name) { throw FS.genericErrors[ERRNO_CODES.ENOENT]; },mknod:function (parent, name, mode, dev) { return MEMFS.createNode(parent, name, mode, dev); },rename:function (old_node, new_dir, new_name) { // if we're overwriting a directory at new_name, make sure it's empty. if (FS.isDir(old_node.mode)) { var new_node; try { new_node = FS.lookupNode(new_dir, new_name); } catch (e) { } if (new_node) { for (var i in new_node.contents) { throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); } } } // do the internal rewiring delete old_node.parent.contents[old_node.name]; old_node.name = new_name; new_dir.contents[new_name] = old_node; old_node.parent = new_dir; },unlink:function (parent, name) { delete parent.contents[name]; },rmdir:function (parent, name) { var node = FS.lookupNode(parent, name); for (var i in node.contents) { throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); } delete parent.contents[name]; },readdir:function (node) { var entries = ['.', '..'] for (var key in node.contents) { if (!node.contents.hasOwnProperty(key)) { continue; } entries.push(key); } return entries; },symlink:function (parent, newname, oldpath) { var node = MEMFS.createNode(parent, newname, 511 /* 0777 */ | 40960, 0); node.link = oldpath; return node; },readlink:function (node) { if (!FS.isLink(node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } return node.link; }},stream_ops:{read:function (stream, buffer, offset, length, position) { var contents = stream.node.contents; if (position >= stream.node.usedBytes) return 0; var size = Math.min(stream.node.usedBytes - position, length); assert(size >= 0); if (size > 8 && contents.subarray) { // non-trivial, and typed array buffer.set(contents.subarray(position, position + size), offset); } else { for (var i = 0; i < size; i++) buffer[offset + i] = contents[position + i]; } return size; },write:function (stream, buffer, offset, length, position, canOwn) { if (!length) return 0; var node = stream.node; node.timestamp = Date.now(); if (buffer.subarray && (!node.contents || node.contents.subarray)) { // This write is from a typed array to a typed array? if (canOwn) { // Can we just reuse the buffer we are given? assert(position === 0, 'canOwn must imply no weird position inside the file'); node.contents = buffer.subarray(offset, offset + length); node.usedBytes = length; return length; } else if (node.usedBytes === 0 && position === 0) { // If this is a simple first write to an empty file, do a fast set since we don't need to care about old data. node.contents = new Uint8Array(buffer.subarray(offset, offset + length)); node.usedBytes = length; return length; } else if (position + length <= node.usedBytes) { // Writing to an already allocated and used subrange of the file? node.contents.set(buffer.subarray(offset, offset + length), position); return length; } } // Appending to an existing file and we need to reallocate, or source data did not come as a typed array. MEMFS.expandFileStorage(node, position+length); if (node.contents.subarray && buffer.subarray) node.contents.set(buffer.subarray(offset, offset + length), position); // Use typed array write if available. else { for (var i = 0; i < length; i++) { node.contents[position + i] = buffer[offset + i]; // Or fall back to manual write if not. } } node.usedBytes = Math.max(node.usedBytes, position+length); return length; },llseek:function (stream, offset, whence) { var position = offset; if (whence === 1) { // SEEK_CUR. position += stream.position; } else if (whence === 2) { // SEEK_END. if (FS.isFile(stream.node.mode)) { position += stream.node.usedBytes; } } if (position < 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } return position; },allocate:function (stream, offset, length) { MEMFS.expandFileStorage(stream.node, offset + length); stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length); },mmap:function (stream, buffer, offset, length, position, prot, flags) { if (!FS.isFile(stream.node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.ENODEV); } var ptr; var allocated; var contents = stream.node.contents; // Only make a new copy when MAP_PRIVATE is specified. if ( !(flags & 2) && (contents.buffer === buffer || contents.buffer === buffer.buffer) ) { // We can't emulate MAP_SHARED when the file is not backed by the buffer // we're mapping to (e.g. the HEAP buffer). allocated = false; ptr = contents.byteOffset; } else { // Try to avoid unnecessary slices. if (position > 0 || position + length < stream.node.usedBytes) { if (contents.subarray) { contents = contents.subarray(position, position + length); } else { contents = Array.prototype.slice.call(contents, position, position + length); } } allocated = true; ptr = _malloc(length); if (!ptr) { throw new FS.ErrnoError(ERRNO_CODES.ENOMEM); } buffer.set(contents, ptr); } return { ptr: ptr, allocated: allocated }; },msync:function (stream, buffer, offset, length, mmapFlags) { if (!FS.isFile(stream.node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.ENODEV); } if (mmapFlags & 2) { // MAP_PRIVATE calls need not to be synced back to underlying fs return 0; } var bytesWritten = MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false); // should we check if bytesWritten and length are the same? return 0; }}}; var IDBFS={dbs:{},indexedDB:function () { if (typeof indexedDB !== 'undefined') return indexedDB; var ret = null; if (typeof window === 'object') ret = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; assert(ret, 'IDBFS used, but indexedDB not supported'); return ret; },DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function (mount) { // reuse all of the core MEMFS functionality return MEMFS.mount.apply(null, arguments); },syncfs:function (mount, populate, callback) { IDBFS.getLocalSet(mount, function(err, local) { if (err) return callback(err); IDBFS.getRemoteSet(mount, function(err, remote) { if (err) return callback(err); var src = populate ? remote : local; var dst = populate ? local : remote; IDBFS.reconcile(src, dst, callback); }); }); },getDB:function (name, callback) { // check the cache first var db = IDBFS.dbs[name]; if (db) { return callback(null, db); } var req; try { req = IDBFS.indexedDB().open(name, IDBFS.DB_VERSION); } catch (e) { return callback(e); } req.onupgradeneeded = function(e) { var db = e.target.result; var transaction = e.target.transaction; var fileStore; if (db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)) { fileStore = transaction.objectStore(IDBFS.DB_STORE_NAME); } else { fileStore = db.createObjectStore(IDBFS.DB_STORE_NAME); } if (!fileStore.indexNames.contains('timestamp')) { fileStore.createIndex('timestamp', 'timestamp', { unique: false }); } }; req.onsuccess = function() { db = req.result; // add to the cache IDBFS.dbs[name] = db; callback(null, db); }; req.onerror = function(e) { callback(this.error); e.preventDefault(); }; },getLocalSet:function (mount, callback) { var entries = {}; function isRealDir(p) { return p !== '.' && p !== '..'; }; function toAbsolute(root) { return function(p) { return PATH.join2(root, p); } }; var check = FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint)); while (check.length) { var path = check.pop(); var stat; try { stat = FS.stat(path); } catch (e) { return callback(e); } if (FS.isDir(stat.mode)) { check.push.apply(check, FS.readdir(path).filter(isRealDir).map(toAbsolute(path))); } entries[path] = { timestamp: stat.mtime }; } return callback(null, { type: 'local', entries: entries }); },getRemoteSet:function (mount, callback) { var entries = {}; IDBFS.getDB(mount.mountpoint, function(err, db) { if (err) return callback(err); var transaction = db.transaction([IDBFS.DB_STORE_NAME], 'readonly'); transaction.onerror = function(e) { callback(this.error); e.preventDefault(); }; var store = transaction.objectStore(IDBFS.DB_STORE_NAME); var index = store.index('timestamp'); index.openKeyCursor().onsuccess = function(event) { var cursor = event.target.result; if (!cursor) { return callback(null, { type: 'remote', db: db, entries: entries }); } entries[cursor.primaryKey] = { timestamp: cursor.key }; cursor.continue(); }; }); },loadLocalEntry:function (path, callback) { var stat, node; try { var lookup = FS.lookupPath(path); node = lookup.node; stat = FS.stat(path); } catch (e) { return callback(e); } if (FS.isDir(stat.mode)) { return callback(null, { timestamp: stat.mtime, mode: stat.mode }); } else if (FS.isFile(stat.mode)) { // Performance consideration: storing a normal JavaScript array to a IndexedDB is much slower than storing a typed array. // Therefore always convert the file contents to a typed array first before writing the data to IndexedDB. node.contents = MEMFS.getFileDataAsTypedArray(node); return callback(null, { timestamp: stat.mtime, mode: stat.mode, contents: node.contents }); } else { return callback(new Error('node type not supported')); } },storeLocalEntry:function (path, entry, callback) { try { if (FS.isDir(entry.mode)) { FS.mkdir(path, entry.mode); } else if (FS.isFile(entry.mode)) { FS.writeFile(path, entry.contents, { encoding: 'binary', canOwn: true }); } else { return callback(new Error('node type not supported')); } FS.chmod(path, entry.mode); FS.utime(path, entry.timestamp, entry.timestamp); } catch (e) { return callback(e); } callback(null); },removeLocalEntry:function (path, callback) { try { var lookup = FS.lookupPath(path); var stat = FS.stat(path); if (FS.isDir(stat.mode)) { FS.rmdir(path); } else if (FS.isFile(stat.mode)) { FS.unlink(path); } } catch (e) { return callback(e); } callback(null); },loadRemoteEntry:function (store, path, callback) { var req = store.get(path); req.onsuccess = function(event) { callback(null, event.target.result); }; req.onerror = function(e) { callback(this.error); e.preventDefault(); }; },storeRemoteEntry:function (store, path, entry, callback) { var req = store.put(entry, path); req.onsuccess = function() { callback(null); }; req.onerror = function(e) { callback(this.error); e.preventDefault(); }; },removeRemoteEntry:function (store, path, callback) { var req = store.delete(path); req.onsuccess = function() { callback(null); }; req.onerror = function(e) { callback(this.error); e.preventDefault(); }; },reconcile:function (src, dst, callback) { var total = 0; var create = []; Object.keys(src.entries).forEach(function (key) { var e = src.entries[key]; var e2 = dst.entries[key]; if (!e2 || e.timestamp > e2.timestamp) { create.push(key); total++; } }); var remove = []; Object.keys(dst.entries).forEach(function (key) { var e = dst.entries[key]; var e2 = src.entries[key]; if (!e2) { remove.push(key); total++; } }); if (!total) { return callback(null); } var errored = false; var completed = 0; var db = src.type === 'remote' ? src.db : dst.db; var transaction = db.transaction([IDBFS.DB_STORE_NAME], 'readwrite'); var store = transaction.objectStore(IDBFS.DB_STORE_NAME); function done(err) { if (err) { if (!done.errored) { done.errored = true; return callback(err); } return; } if (++completed >= total) { return callback(null); } }; transaction.onerror = function(e) { done(this.error); e.preventDefault(); }; // sort paths in ascending order so directory entries are created // before the files inside them create.sort().forEach(function (path) { if (dst.type === 'local') { IDBFS.loadRemoteEntry(store, path, function (err, entry) { if (err) return done(err); IDBFS.storeLocalEntry(path, entry, done); }); } else { IDBFS.loadLocalEntry(path, function (err, entry) { if (err) return done(err); IDBFS.storeRemoteEntry(store, path, entry, done); }); } }); // sort paths in descending order so files are deleted before their // parent directories remove.sort().reverse().forEach(function(path) { if (dst.type === 'local') { IDBFS.removeLocalEntry(path, done); } else { IDBFS.removeRemoteEntry(store, path, done); } }); }}; var NODEFS={isWindows:false,staticInit:function () { NODEFS.isWindows = !!process.platform.match(/^win/); },mount:function (mount) { assert(ENVIRONMENT_IS_NODE); return NODEFS.createNode(null, '/', NODEFS.getMode(mount.opts.root), 0); },createNode:function (parent, name, mode, dev) { if (!FS.isDir(mode) && !FS.isFile(mode) && !FS.isLink(mode)) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } var node = FS.createNode(parent, name, mode); node.node_ops = NODEFS.node_ops; node.stream_ops = NODEFS.stream_ops; return node; },getMode:function (path) { var stat; try { stat = fs.lstatSync(path); if (NODEFS.isWindows) { // On Windows, directories return permission bits 'rw-rw-rw-', even though they have 'rwxrwxrwx', so // propagate write bits to execute bits. stat.mode = stat.mode | ((stat.mode & 146) >> 1); } } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } return stat.mode; },realPath:function (node) { var parts = []; while (node.parent !== node) { parts.push(node.name); node = node.parent; } parts.push(node.mount.opts.root); parts.reverse(); return PATH.join.apply(null, parts); },flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:function (flags) { if (flags in NODEFS.flagsToPermissionStringMap) { return NODEFS.flagsToPermissionStringMap[flags]; } else { return flags; } },node_ops:{getattr:function (node) { var path = NODEFS.realPath(node); var stat; try { stat = fs.lstatSync(path); } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } // node.js v0.10.20 doesn't report blksize and blocks on Windows. Fake them with default blksize of 4096. // See http://support.microsoft.com/kb/140365 if (NODEFS.isWindows && !stat.blksize) { stat.blksize = 4096; } if (NODEFS.isWindows && !stat.blocks) { stat.blocks = (stat.size+stat.blksize-1)/stat.blksize|0; } return { dev: stat.dev, ino: stat.ino, mode: stat.mode, nlink: stat.nlink, uid: stat.uid, gid: stat.gid, rdev: stat.rdev, size: stat.size, atime: stat.atime, mtime: stat.mtime, ctime: stat.ctime, blksize: stat.blksize, blocks: stat.blocks }; },setattr:function (node, attr) { var path = NODEFS.realPath(node); try { if (attr.mode !== undefined) { fs.chmodSync(path, attr.mode); // update the common node structure mode as well node.mode = attr.mode; } if (attr.timestamp !== undefined) { var date = new Date(attr.timestamp); fs.utimesSync(path, date, date); } if (attr.size !== undefined) { fs.truncateSync(path, attr.size); } } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } },lookup:function (parent, name) { var path = PATH.join2(NODEFS.realPath(parent), name); var mode = NODEFS.getMode(path); return NODEFS.createNode(parent, name, mode); },mknod:function (parent, name, mode, dev) { var node = NODEFS.createNode(parent, name, mode, dev); // create the backing node for this in the fs root as well var path = NODEFS.realPath(node); try { if (FS.isDir(node.mode)) { fs.mkdirSync(path, node.mode); } else { fs.writeFileSync(path, '', { mode: node.mode }); } } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } return node; },rename:function (oldNode, newDir, newName) { var oldPath = NODEFS.realPath(oldNode); var newPath = PATH.join2(NODEFS.realPath(newDir), newName); try { fs.renameSync(oldPath, newPath); } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } },unlink:function (parent, name) { var path = PATH.join2(NODEFS.realPath(parent), name); try { fs.unlinkSync(path); } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } },rmdir:function (parent, name) { var path = PATH.join2(NODEFS.realPath(parent), name); try { fs.rmdirSync(path); } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } },readdir:function (node) { var path = NODEFS.realPath(node); try { return fs.readdirSync(path); } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } },symlink:function (parent, newName, oldPath) { var newPath = PATH.join2(NODEFS.realPath(parent), newName); try { fs.symlinkSync(oldPath, newPath); } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } },readlink:function (node) { var path = NODEFS.realPath(node); try { path = fs.readlinkSync(path); path = NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root), path); return path; } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } }},stream_ops:{open:function (stream) { var path = NODEFS.realPath(stream.node); try { if (FS.isFile(stream.node.mode)) { stream.nfd = fs.openSync(path, NODEFS.flagsToPermissionString(stream.flags)); } } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } },close:function (stream) { try { if (FS.isFile(stream.node.mode) && stream.nfd) { fs.closeSync(stream.nfd); } } catch (e) { if (!e.code) throw e; throw new FS.ErrnoError(ERRNO_CODES[e.code]); } },read:function (stream, buffer, offset, length, position) { if (length === 0) return 0; // node errors on 0 length reads // FIXME this is terrible. var nbuffer = new Buffer(length); var res; try { res = fs.readSync(stream.nfd, nbuffer, 0, length, position); } catch (e) { throw new FS.ErrnoError(ERRNO_CODES[e.code]); } if (res > 0) { for (var i = 0; i < res; i++) { buffer[offset + i] = nbuffer[i]; } } return res; },write:function (stream, buffer, offset, length, position) { // FIXME this is terrible. var nbuffer = new Buffer(buffer.subarray(offset, offset + length)); var res; try { res = fs.writeSync(stream.nfd, nbuffer, 0, length, position); } catch (e) { throw new FS.ErrnoError(ERRNO_CODES[e.code]); } return res; },llseek:function (stream, offset, whence) { var position = offset; if (whence === 1) { // SEEK_CUR. position += stream.position; } else if (whence === 2) { // SEEK_END. if (FS.isFile(stream.node.mode)) { try { var stat = fs.fstatSync(stream.nfd); position += stat.size; } catch (e) { throw new FS.ErrnoError(ERRNO_CODES[e.code]); } } } if (position < 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } return position; }}}; var _stdin=allocate(1, "i32*", ALLOC_STATIC); var _stdout=allocate(1, "i32*", ALLOC_STATIC); var _stderr=allocate(1, "i32*", ALLOC_STATIC); function _fflush(stream) { // int fflush(FILE *stream); // http://pubs.opengroup.org/onlinepubs/000095399/functions/fflush.html /* // Disabled, see https://github.com/kripken/emscripten/issues/2770 stream = FS.getStreamFromPtr(stream); if (stream.stream_ops.flush) { stream.stream_ops.flush(stream); } */ }var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},handleFSError:function (e) { if (!(e instanceof FS.ErrnoError)) throw e + ' : ' + stackTrace(); return ___setErrNo(e.errno); },lookupPath:function (path, opts) { path = PATH.resolve(FS.cwd(), path); opts = opts || {}; if (!path) return { path: '', node: null }; var defaults = { follow_mount: true, recurse_count: 0 }; for (var key in defaults) { if (opts[key] === undefined) { opts[key] = defaults[key]; } } if (opts.recurse_count > 8) { // max recursive lookup of 8 throw new FS.ErrnoError(ERRNO_CODES.ELOOP); } // split the path var parts = PATH.normalizeArray(path.split('/').filter(function(p) { return !!p; }), false); // start at the root var current = FS.root; var current_path = '/'; for (var i = 0; i < parts.length; i++) { var islast = (i === parts.length-1); if (islast && opts.parent) { // stop resolving break; } current = FS.lookupNode(current, parts[i]); current_path = PATH.join2(current_path, parts[i]); // jump to the mount's root node if this is a mountpoint if (FS.isMountpoint(current)) { if (!islast || (islast && opts.follow_mount)) { current = current.mounted.root; } } // by default, lookupPath will not follow a symlink if it is the final path component. // setting opts.follow = true will override this behavior. if (!islast || opts.follow) { var count = 0; while (FS.isLink(current.mode)) { var link = FS.readlink(current_path); current_path = PATH.resolve(PATH.dirname(current_path), link); var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count }); current = lookup.node; if (count++ > 40) { // limit max consecutive symlinks to 40 (SYMLOOP_MAX). throw new FS.ErrnoError(ERRNO_CODES.ELOOP); } } } } return { path: current_path, node: current }; },getPath:function (node) { var path; while (true) { if (FS.isRoot(node)) { var mount = node.mount.mountpoint; if (!path) return mount; return mount[mount.length-1] !== '/' ? mount + '/' + path : mount + path; } path = path ? node.name + '/' + path : node.name; node = node.parent; } },hashName:function (parentid, name) { var hash = 0; for (var i = 0; i < name.length; i++) { hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0; } return ((parentid + hash) >>> 0) % FS.nameTable.length; },hashAddNode:function (node) { var hash = FS.hashName(node.parent.id, node.name); node.name_next = FS.nameTable[hash]; FS.nameTable[hash] = node; },hashRemoveNode:function (node) { var hash = FS.hashName(node.parent.id, node.name); if (FS.nameTable[hash] === node) { FS.nameTable[hash] = node.name_next; } else { var current = FS.nameTable[hash]; while (current) { if (current.name_next === node) { current.name_next = node.name_next; break; } current = current.name_next; } } },lookupNode:function (parent, name) { var err = FS.mayLookup(parent); if (err) { throw new FS.ErrnoError(err, parent); } var hash = FS.hashName(parent.id, name); for (var node = FS.nameTable[hash]; node; node = node.name_next) { var nodeName = node.name; if (node.parent.id === parent.id && nodeName === name) { return node; } } // if we failed to find it in the cache, call into the VFS return FS.lookup(parent, name); },createNode:function (parent, name, mode, rdev) { if (!FS.FSNode) { FS.FSNode = function(parent, name, mode, rdev) { if (!parent) { parent = this; // root node sets parent to itself } this.parent = parent; this.mount = parent.mount; this.mounted = null; this.id = FS.nextInode++; this.name = name; this.mode = mode; this.node_ops = {}; this.stream_ops = {}; this.rdev = rdev; }; FS.FSNode.prototype = {}; // compatibility var readMode = 292 | 73; var writeMode = 146; // NOTE we must use Object.defineProperties instead of individual calls to // Object.defineProperty in order to make closure compiler happy Object.defineProperties(FS.FSNode.prototype, { read: { get: function() { return (this.mode & readMode) === readMode; }, set: function(val) { val ? this.mode |= readMode : this.mode &= ~readMode; } }, write: { get: function() { return (this.mode & writeMode) === writeMode; }, set: function(val) { val ? this.mode |= writeMode : this.mode &= ~writeMode; } }, isFolder: { get: function() { return FS.isDir(this.mode); } }, isDevice: { get: function() { return FS.isChrdev(this.mode); } } }); } var node = new FS.FSNode(parent, name, mode, rdev); FS.hashAddNode(node); return node; },destroyNode:function (node) { FS.hashRemoveNode(node); },isRoot:function (node) { return node === node.parent; },isMountpoint:function (node) { return !!node.mounted; },isFile:function (mode) { return (mode & 61440) === 32768; },isDir:function (mode) { return (mode & 61440) === 16384; },isLink:function (mode) { return (mode & 61440) === 40960; },isChrdev:function (mode) { return (mode & 61440) === 8192; },isBlkdev:function (mode) { return (mode & 61440) === 24576; },isFIFO:function (mode) { return (mode & 61440) === 4096; },isSocket:function (mode) { return (mode & 49152) === 49152; },flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function (str) { var flags = FS.flagModes[str]; if (typeof flags === 'undefined') { throw new Error('Unknown file open mode: ' + str); } return flags; },flagsToPermissionString:function (flag) { var accmode = flag & 2097155; var perms = ['r', 'w', 'rw'][accmode]; if ((flag & 512)) { perms += 'w'; } return perms; },nodePermissions:function (node, perms) { if (FS.ignorePermissions) { return 0; } // return 0 if any user, group or owner bits are set. if (perms.indexOf('r') !== -1 && !(node.mode & 292)) { return ERRNO_CODES.EACCES; } else if (perms.indexOf('w') !== -1 && !(node.mode & 146)) { return ERRNO_CODES.EACCES; } else if (perms.indexOf('x') !== -1 && !(node.mode & 73)) { return ERRNO_CODES.EACCES; } return 0; },mayLookup:function (dir) { var err = FS.nodePermissions(dir, 'x'); if (err) return err; if (!dir.node_ops.lookup) return ERRNO_CODES.EACCES; return 0; },mayCreate:function (dir, name) { try { var node = FS.lookupNode(dir, name); return ERRNO_CODES.EEXIST; } catch (e) { } return FS.nodePermissions(dir, 'wx'); },mayDelete:function (dir, name, isdir) { var node; try { node = FS.lookupNode(dir, name); } catch (e) { return e.errno; } var err = FS.nodePermissions(dir, 'wx'); if (err) { return err; } if (isdir) { if (!FS.isDir(node.mode)) { return ERRNO_CODES.ENOTDIR; } if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { return ERRNO_CODES.EBUSY; } } else { if (FS.isDir(node.mode)) { return ERRNO_CODES.EISDIR; } } return 0; },mayOpen:function (node, flags) { if (!node) { return ERRNO_CODES.ENOENT; } if (FS.isLink(node.mode)) { return ERRNO_CODES.ELOOP; } else if (FS.isDir(node.mode)) { if ((flags & 2097155) !== 0 || // opening for write (flags & 512)) { return ERRNO_CODES.EISDIR; } } return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); },MAX_OPEN_FDS:4096,nextfd:function (fd_start, fd_end) { fd_start = fd_start || 0; fd_end = fd_end || FS.MAX_OPEN_FDS; for (var fd = fd_start; fd <= fd_end; fd++) { if (!FS.streams[fd]) { return fd; } } throw new FS.ErrnoError(ERRNO_CODES.EMFILE); },getStream:function (fd) { return FS.streams[fd]; },createStream:function (stream, fd_start, fd_end) { if (!FS.FSStream) { FS.FSStream = function(){}; FS.FSStream.prototype = {}; // compatibility Object.defineProperties(FS.FSStream.prototype, { object: { get: function() { return this.node; }, set: function(val) { this.node = val; } }, isRead: { get: function() { return (this.flags & 2097155) !== 1; } }, isWrite: { get: function() { return (this.flags & 2097155) !== 0; } }, isAppend: { get: function() { return (this.flags & 1024); } } }); } // clone it, so we can return an instance of FSStream var newStream = new FS.FSStream(); for (var p in stream) { newStream[p] = stream[p]; } stream = newStream; var fd = FS.nextfd(fd_start, fd_end); stream.fd = fd; FS.streams[fd] = stream; return stream; },closeStream:function (fd) { FS.streams[fd] = null; },getStreamFromPtr:function (ptr) { return FS.streams[ptr - 1]; },getPtrForStream:function (stream) { return stream ? stream.fd + 1 : 0; },chrdev_stream_ops:{open:function (stream) { var device = FS.getDevice(stream.node.rdev); // override node's stream ops with the device's stream.stream_ops = device.stream_ops; // forward the open call if (stream.stream_ops.open) { stream.stream_ops.open(stream); } },llseek:function () { throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); }},major:function (dev) { return ((dev) >> 8); },minor:function (dev) { return ((dev) & 0xff); },makedev:function (ma, mi) { return ((ma) << 8 | (mi)); },registerDevice:function (dev, ops) { FS.devices[dev] = { stream_ops: ops }; },getDevice:function (dev) { return FS.devices[dev]; },getMounts:function (mount) { var mounts = []; var check = [mount]; while (check.length) { var m = check.pop(); mounts.push(m); check.push.apply(check, m.mounts); } return mounts; },syncfs:function (populate, callback) { if (typeof(populate) === 'function') { callback = populate; populate = false; } var mounts = FS.getMounts(FS.root.mount); var completed = 0; function done(err) { if (err) { if (!done.errored) { done.errored = true; return callback(err); } return; } if (++completed >= mounts.length) { callback(null); } }; // sync all mounts mounts.forEach(function (mount) { if (!mount.type.syncfs) { return done(null); } mount.type.syncfs(mount, populate, done); }); },mount:function (type, opts, mountpoint) { var root = mountpoint === '/'; var pseudo = !mountpoint; var node; if (root && FS.root) { throw new FS.ErrnoError(ERRNO_CODES.EBUSY); } else if (!root && !pseudo) { var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); mountpoint = lookup.path; // use the absolute path node = lookup.node; if (FS.isMountpoint(node)) { throw new FS.ErrnoError(ERRNO_CODES.EBUSY); } if (!FS.isDir(node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); } } var mount = { type: type, opts: opts, mountpoint: mountpoint, mounts: [] }; // create a root node for the fs var mountRoot = type.mount(mount); mountRoot.mount = mount; mount.root = mountRoot; if (root) { FS.root = mountRoot; } else if (node) { // set as a mountpoint node.mounted = mount; // add the new mount to the current mount's children if (node.mount) { node.mount.mounts.push(mount); } } return mountRoot; },unmount:function (mountpoint) { var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); if (!FS.isMountpoint(lookup.node)) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } // destroy the nodes for this mount, and all its child mounts var node = lookup.node; var mount = node.mounted; var mounts = FS.getMounts(mount); Object.keys(FS.nameTable).forEach(function (hash) { var current = FS.nameTable[hash]; while (current) { var next = current.name_next; if (mounts.indexOf(current.mount) !== -1) { FS.destroyNode(current); } current = next; } }); // no longer a mountpoint node.mounted = null; // remove this mount from the child mounts var idx = node.mount.mounts.indexOf(mount); assert(idx !== -1); node.mount.mounts.splice(idx, 1); },lookup:function (parent, name) { return parent.node_ops.lookup(parent, name); },mknod:function (path, mode, dev) { var lookup = FS.lookupPath(path, { parent: true }); var parent = lookup.node; var name = PATH.basename(path); if (!name || name === '.' || name === '..') { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } var err = FS.mayCreate(parent, name); if (err) { throw new FS.ErrnoError(err); } if (!parent.node_ops.mknod) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } return parent.node_ops.mknod(parent, name, mode, dev); },create:function (path, mode) { mode = mode !== undefined ? mode : 438 /* 0666 */; mode &= 4095; mode |= 32768; return FS.mknod(path, mode, 0); },mkdir:function (path, mode) { mode = mode !== undefined ? mode : 511 /* 0777 */; mode &= 511 | 512; mode |= 16384; return FS.mknod(path, mode, 0); },mkdev:function (path, mode, dev) { if (typeof(dev) === 'undefined') { dev = mode; mode = 438 /* 0666 */; } mode |= 8192; return FS.mknod(path, mode, dev); },symlink:function (oldpath, newpath) { if (!PATH.resolve(oldpath)) { throw new FS.ErrnoError(ERRNO_CODES.ENOENT); } var lookup = FS.lookupPath(newpath, { parent: true }); var parent = lookup.node; if (!parent) { throw new FS.ErrnoError(ERRNO_CODES.ENOENT); } var newname = PATH.basename(newpath); var err = FS.mayCreate(parent, newname); if (err) { throw new FS.ErrnoError(err); } if (!parent.node_ops.symlink) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } return parent.node_ops.symlink(parent, newname, oldpath); },rename:function (old_path, new_path) { var old_dirname = PATH.dirname(old_path); var new_dirname = PATH.dirname(new_path); var old_name = PATH.basename(old_path); var new_name = PATH.basename(new_path); // parents must exist var lookup, old_dir, new_dir; try { lookup = FS.lookupPath(old_path, { parent: true }); old_dir = lookup.node; lookup = FS.lookupPath(new_path, { parent: true }); new_dir = lookup.node; } catch (e) { throw new FS.ErrnoError(ERRNO_CODES.EBUSY); } if (!old_dir || !new_dir) throw new FS.ErrnoError(ERRNO_CODES.ENOENT); // need to be part of the same mount if (old_dir.mount !== new_dir.mount) { throw new FS.ErrnoError(ERRNO_CODES.EXDEV); } // source must exist var old_node = FS.lookupNode(old_dir, old_name); // old path should not be an ancestor of the new path var relative = PATH.relative(old_path, new_dirname); if (relative.charAt(0) !== '.') { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } // new path should not be an ancestor of the old path relative = PATH.relative(new_path, old_dirname); if (relative.charAt(0) !== '.') { throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); } // see if the new path already exists var new_node; try { new_node = FS.lookupNode(new_dir, new_name); } catch (e) { // not fatal } // early out if nothing needs to change if (old_node === new_node) { return; } // we'll need to delete the old entry var isdir = FS.isDir(old_node.mode); var err = FS.mayDelete(old_dir, old_name, isdir); if (err) { throw new FS.ErrnoError(err); } // need delete permissions if we'll be overwriting. // need create permissions if new doesn't already exist. err = new_node ? FS.mayDelete(new_dir, new_name, isdir) : FS.mayCreate(new_dir, new_name); if (err) { throw new FS.ErrnoError(err); } if (!old_dir.node_ops.rename) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) { throw new FS.ErrnoError(ERRNO_CODES.EBUSY); } // if we are going to change the parent, check write permissions if (new_dir !== old_dir) { err = FS.nodePermissions(old_dir, 'w'); if (err) { throw new FS.ErrnoError(err); } } try { if (FS.trackingDelegate['willMovePath']) { FS.trackingDelegate['willMovePath'](old_path, new_path); } } catch(e) { console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: " + e.message); } // remove the node from the lookup hash FS.hashRemoveNode(old_node); // do the underlying fs rename try { old_dir.node_ops.rename(old_node, new_dir, new_name); } catch (e) { throw e; } finally { // add the node back to the hash (in case node_ops.rename // changed its name) FS.hashAddNode(old_node); } try { if (FS.trackingDelegate['onMovePath']) FS.trackingDelegate['onMovePath'](old_path, new_path); } catch(e) { console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: " + e.message); } },rmdir:function (path) { var lookup = FS.lookupPath(path, { parent: true }); var parent = lookup.node; var name = PATH.basename(path); var node = FS.lookupNode(parent, name); var err = FS.mayDelete(parent, name, true); if (err) { throw new FS.ErrnoError(err); } if (!parent.node_ops.rmdir) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } if (FS.isMountpoint(node)) { throw new FS.ErrnoError(ERRNO_CODES.EBUSY); } try { if (FS.trackingDelegate['willDeletePath']) { FS.trackingDelegate['willDeletePath'](path); } } catch(e) { console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: " + e.message); } parent.node_ops.rmdir(parent, name); FS.destroyNode(node); try { if (FS.trackingDelegate['onDeletePath']) FS.trackingDelegate['onDeletePath'](path); } catch(e) { console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: " + e.message); } },readdir:function (path) { var lookup = FS.lookupPath(path, { follow: true }); var node = lookup.node; if (!node.node_ops.readdir) { throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); } return node.node_ops.readdir(node); },unlink:function (path) { var lookup = FS.lookupPath(path, { parent: true }); var parent = lookup.node; var name = PATH.basename(path); var node = FS.lookupNode(parent, name); var err = FS.mayDelete(parent, name, false); if (err) { // POSIX says unlink should set EPERM, not EISDIR if (err === ERRNO_CODES.EISDIR) err = ERRNO_CODES.EPERM; throw new FS.ErrnoError(err); } if (!parent.node_ops.unlink) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } if (FS.isMountpoint(node)) { throw new FS.ErrnoError(ERRNO_CODES.EBUSY); } try { if (FS.trackingDelegate['willDeletePath']) { FS.trackingDelegate['willDeletePath'](path); } } catch(e) { console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: " + e.message); } parent.node_ops.unlink(parent, name); FS.destroyNode(node); try { if (FS.trackingDelegate['onDeletePath']) FS.trackingDelegate['onDeletePath'](path); } catch(e) { console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: " + e.message); } },readlink:function (path) { var lookup = FS.lookupPath(path); var link = lookup.node; if (!link) { throw new FS.ErrnoError(ERRNO_CODES.ENOENT); } if (!link.node_ops.readlink) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } return PATH.resolve(FS.getPath(lookup.node.parent), link.node_ops.readlink(link)); },stat:function (path, dontFollow) { var lookup = FS.lookupPath(path, { follow: !dontFollow }); var node = lookup.node; if (!node) { throw new FS.ErrnoError(ERRNO_CODES.ENOENT); } if (!node.node_ops.getattr) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } return node.node_ops.getattr(node); },lstat:function (path) { return FS.stat(path, true); },chmod:function (path, mode, dontFollow) { var node; if (typeof path === 'string') { var lookup = FS.lookupPath(path, { follow: !dontFollow }); node = lookup.node; } else { node = path; } if (!node.node_ops.setattr) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } node.node_ops.setattr(node, { mode: (mode & 4095) | (node.mode & ~4095), timestamp: Date.now() }); },lchmod:function (path, mode) { FS.chmod(path, mode, true); },fchmod:function (fd, mode) { var stream = FS.getStream(fd); if (!stream) { throw new FS.ErrnoError(ERRNO_CODES.EBADF); } FS.chmod(stream.node, mode); },chown:function (path, uid, gid, dontFollow) { var node; if (typeof path === 'string') { var lookup = FS.lookupPath(path, { follow: !dontFollow }); node = lookup.node; } else { node = path; } if (!node.node_ops.setattr) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } node.node_ops.setattr(node, { timestamp: Date.now() // we ignore the uid / gid for now }); },lchown:function (path, uid, gid) { FS.chown(path, uid, gid, true); },fchown:function (fd, uid, gid) { var stream = FS.getStream(fd); if (!stream) { throw new FS.ErrnoError(ERRNO_CODES.EBADF); } FS.chown(stream.node, uid, gid); },truncate:function (path, len) { if (len < 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } var node; if (typeof path === 'string') { var lookup = FS.lookupPath(path, { follow: true }); node = lookup.node; } else { node = path; } if (!node.node_ops.setattr) { throw new FS.ErrnoError(ERRNO_CODES.EPERM); } if (FS.isDir(node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.EISDIR); } if (!FS.isFile(node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } var err = FS.nodePermissions(node, 'w'); if (err) { throw new FS.ErrnoError(err); } node.node_ops.setattr(node, { size: len, timestamp: Date.now() }); },ftruncate:function (fd, len) { var stream = FS.getStream(fd); if (!stream) { throw new FS.ErrnoError(ERRNO_CODES.EBADF); } if ((stream.flags & 2097155) === 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } FS.truncate(stream.node, len); },utime:function (path, atime, mtime) { var lookup = FS.lookupPath(path, { follow: true }); var node = lookup.node; node.node_ops.setattr(node, { timestamp: Math.max(atime, mtime) }); },open:function (path, flags, mode, fd_start, fd_end) { if (path === "") { throw new FS.ErrnoError(ERRNO_CODES.ENOENT); } flags = typeof flags === 'string' ? FS.modeStringToFlags(flags) : flags; mode = typeof mode === 'undefined' ? 438 /* 0666 */ : mode; if ((flags & 64)) { mode = (mode & 4095) | 32768; } else { mode = 0; } var node; if (typeof path === 'object') { node = path; } else { path = PATH.normalize(path); try { var lookup = FS.lookupPath(path, { follow: !(flags & 131072) }); node = lookup.node; } catch (e) { // ignore } } // perhaps we need to create the node var created = false; if ((flags & 64)) { if (node) { // if O_CREAT and O_EXCL are set, error out if the node already exists if ((flags & 128)) { throw new FS.ErrnoError(ERRNO_CODES.EEXIST); } } else { // node doesn't exist, try to create it node = FS.mknod(path, mode, 0); created = true; } } if (!node) { throw new FS.ErrnoError(ERRNO_CODES.ENOENT); } // can't truncate a device if (FS.isChrdev(node.mode)) { flags &= ~512; } // check permissions, if this is not a file we just created now (it is ok to // create and write to a file with read-only permissions; it is read-only // for later use) if (!created) { var err = FS.mayOpen(node, flags); if (err) { throw new FS.ErrnoError(err); } } // do truncation if necessary if ((flags & 512)) { FS.truncate(node, 0); } // we've already handled these, don't pass down to the underlying vfs flags &= ~(128 | 512); // register the stream with the filesystem var stream = FS.createStream({ node: node, path: FS.getPath(node), // we want the absolute path to the node flags: flags, seekable: true, position: 0, stream_ops: node.stream_ops, // used by the file family libc calls (fopen, fwrite, ferror, etc.) ungotten: [], error: false }, fd_start, fd_end); // call the new stream's open function if (stream.stream_ops.open) { stream.stream_ops.open(stream); } if (Module['logReadFiles'] && !(flags & 1)) { if (!FS.readFiles) FS.readFiles = {}; if (!(path in FS.readFiles)) { FS.readFiles[path] = 1; Module['printErr']('read file: ' + path); } } try { if (FS.trackingDelegate['onOpenFile']) { var trackingFlags = 0; if ((flags & 2097155) !== 1) { trackingFlags |= FS.tracking.openFlags.READ; } if ((flags & 2097155) !== 0) { trackingFlags |= FS.tracking.openFlags.WRITE; } FS.trackingDelegate['onOpenFile'](path, trackingFlags); } } catch(e) { console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: " + e.message); } return stream; },close:function (stream) { try { if (stream.stream_ops.close) { stream.stream_ops.close(stream); } } catch (e) { throw e; } finally { FS.closeStream(stream.fd); } },llseek:function (stream, offset, whence) { if (!stream.seekable || !stream.stream_ops.llseek) { throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); } stream.position = stream.stream_ops.llseek(stream, offset, whence); stream.ungotten = []; return stream.position; },read:function (stream, buffer, offset, length, position) { if (length < 0 || position < 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } if ((stream.flags & 2097155) === 1) { throw new FS.ErrnoError(ERRNO_CODES.EBADF); } if (FS.isDir(stream.node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.EISDIR); } if (!stream.stream_ops.read) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } var seeking = true; if (typeof position === 'undefined') { position = stream.position; seeking = false; } else if (!stream.seekable) { throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); } var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position); if (!seeking) stream.position += bytesRead; return bytesRead; },write:function (stream, buffer, offset, length, position, canOwn) { if (length < 0 || position < 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } if ((stream.flags & 2097155) === 0) { throw new FS.ErrnoError(ERRNO_CODES.EBADF); } if (FS.isDir(stream.node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.EISDIR); } if (!stream.stream_ops.write) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } if (stream.flags & 1024) { // seek to the end before writing in append mode FS.llseek(stream, 0, 2); } var seeking = true; if (typeof position === 'undefined') { position = stream.position; seeking = false; } else if (!stream.seekable) { throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); } var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn); if (!seeking) stream.position += bytesWritten; try { if (stream.path && FS.trackingDelegate['onWriteToFile']) FS.trackingDelegate['onWriteToFile'](stream.path); } catch(e) { console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: " + e.message); } return bytesWritten; },allocate:function (stream, offset, length) { if (offset < 0 || length <= 0) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } if ((stream.flags & 2097155) === 0) { throw new FS.ErrnoError(ERRNO_CODES.EBADF); } if (!FS.isFile(stream.node.mode) && !FS.isDir(node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.ENODEV); } if (!stream.stream_ops.allocate) { throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP); } stream.stream_ops.allocate(stream, offset, length); },mmap:function (stream, buffer, offset, length, position, prot, flags) { // TODO if PROT is PROT_WRITE, make sure we have write access if ((stream.flags & 2097155) === 1) { throw new FS.ErrnoError(ERRNO_CODES.EACCES); } if (!stream.stream_ops.mmap) { throw new FS.ErrnoError(ERRNO_CODES.ENODEV); } return stream.stream_ops.mmap(stream, buffer, offset, length, position, prot, flags); },msync:function (stream, buffer, offset, length, mmapFlags) { if (!stream || !stream.stream_ops.msync) { return 0; } return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags); },munmap:function (stream) { return 0; },ioctl:function (stream, cmd, arg) { if (!stream.stream_ops.ioctl) { throw new FS.ErrnoError(ERRNO_CODES.ENOTTY); } return stream.stream_ops.ioctl(stream, cmd, arg); },readFile:function (path, opts) { opts = opts || {}; opts.flags = opts.flags || 'r'; opts.encoding = opts.encoding || 'binary'; if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') { throw new Error('Invalid encoding type "' + opts.encoding + '"'); } var ret; var stream = FS.open(path, opts.flags); var stat = FS.stat(path); var length = stat.size; var buf = new Uint8Array(length); FS.read(stream, buf, 0, length, 0); if (opts.encoding === 'utf8') { ret = UTF8ArrayToString(buf, 0); } else if (opts.encoding === 'binary') { ret = buf; } FS.close(stream); return ret; },writeFile:function (path, data, opts) { opts = opts || {}; opts.flags = opts.flags || 'w'; opts.encoding = opts.encoding || 'utf8'; if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') { throw new Error('Invalid encoding type "' + opts.encoding + '"'); } var stream = FS.open(path, opts.flags, opts.mode); if (opts.encoding === 'utf8') { var buf = new Uint8Array(lengthBytesUTF8(data)+1); var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length); FS.write(stream, buf, 0, actualNumBytes, 0, opts.canOwn); } else if (opts.encoding === 'binary') { FS.write(stream, data, 0, data.length, 0, opts.canOwn); } FS.close(stream); },cwd:function () { return FS.currentPath; },chdir:function (path) { var lookup = FS.lookupPath(path, { follow: true }); if (!FS.isDir(lookup.node.mode)) { throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); } var err = FS.nodePermissions(lookup.node, 'x'); if (err) { throw new FS.ErrnoError(err); } FS.currentPath = lookup.path; },createDefaultDirectories:function () { FS.mkdir('/tmp'); FS.mkdir('/home'); FS.mkdir('/home/web_user'); },createDefaultDevices:function () { // create /dev FS.mkdir('/dev'); // setup /dev/null FS.registerDevice(FS.makedev(1, 3), { read: function() { return 0; }, write: function(stream, buffer, offset, length, pos) { return length; } }); FS.mkdev('/dev/null', FS.makedev(1, 3)); // setup /dev/tty and /dev/tty1 // stderr needs to print output using Module['printErr'] // so we register a second tty just for it. TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); FS.mkdev('/dev/tty', FS.makedev(5, 0)); FS.mkdev('/dev/tty1', FS.makedev(6, 0)); // setup /dev/[u]random var random_device; if (typeof crypto !== 'undefined') { // for modern web browsers var randomBuffer = new Uint8Array(1); random_device = function() { crypto.getRandomValues(randomBuffer); return randomBuffer[0]; }; } else if (ENVIRONMENT_IS_NODE) { // for nodejs random_device = function() { return require('crypto').randomBytes(1)[0]; }; } else { // default for ES5 platforms random_device = function() { return (Math.random()*256)|0; }; } FS.createDevice('/dev', 'random', random_device); FS.createDevice('/dev', 'urandom', random_device); // we're not going to emulate the actual shm device, // just create the tmp dirs that reside in it commonly FS.mkdir('/dev/shm'); FS.mkdir('/dev/shm/tmp'); },createStandardStreams:function () { // TODO deprecate the old functionality of a single // input / output callback and that utilizes FS.createDevice // and instead require a unique set of stream ops // by default, we symlink the standard streams to the // default tty devices. however, if the standard streams // have been overwritten we create a unique device for // them instead. if (Module['stdin']) { FS.createDevice('/dev', 'stdin', Module['stdin']); } else { FS.symlink('/dev/tty', '/dev/stdin'); } if (Module['stdout']) { FS.createDevice('/dev', 'stdout', null, Module['stdout']); } else { FS.symlink('/dev/tty', '/dev/stdout'); } if (Module['stderr']) { FS.createDevice('/dev', 'stderr', null, Module['stderr']); } else { FS.symlink('/dev/tty1', '/dev/stderr'); } // open default streams for the stdin, stdout and stderr devices var stdin = FS.open('/dev/stdin', 'r'); HEAP32[((_stdin)>>2)]=FS.getPtrForStream(stdin); assert(stdin.fd === 0, 'invalid handle for stdin (' + stdin.fd + ')'); var stdout = FS.open('/dev/stdout', 'w'); HEAP32[((_stdout)>>2)]=FS.getPtrForStream(stdout); assert(stdout.fd === 1, 'invalid handle for stdout (' + stdout.fd + ')'); var stderr = FS.open('/dev/stderr', 'w'); HEAP32[((_stderr)>>2)]=FS.getPtrForStream(stderr); assert(stderr.fd === 2, 'invalid handle for stderr (' + stderr.fd + ')'); },ensureErrnoError:function () { if (FS.ErrnoError) return; FS.ErrnoError = function ErrnoError(errno, node) { this.node = node; this.setErrno = function(errno) { this.errno = errno; for (var key in ERRNO_CODES) { if (ERRNO_CODES[key] === errno) { this.code = key; break; } } }; this.setErrno(errno); this.message = ERRNO_MESSAGES[errno]; if (this.stack) this.stack = demangleAll(this.stack); }; FS.ErrnoError.prototype = new Error(); FS.ErrnoError.prototype.constructor = FS.ErrnoError; // Some errors may happen quite a bit, to avoid overhead we reuse them (and suffer a lack of stack info) [ERRNO_CODES.ENOENT].forEach(function(code) { FS.genericErrors[code] = new FS.ErrnoError(code); FS.genericErrors[code].stack = ''; }); },staticInit:function () { FS.ensureErrnoError(); FS.nameTable = new Array(4096); FS.mount(MEMFS, {}, '/'); FS.createDefaultDirectories(); FS.createDefaultDevices(); },init:function (input, output, error) { assert(!FS.init.initialized, 'FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)'); FS.init.initialized = true; FS.ensureErrnoError(); // Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here Module['stdin'] = input || Module['stdin']; Module['stdout'] = output || Module['stdout']; Module['stderr'] = error || Module['stderr']; FS.createStandardStreams(); },quit:function () { FS.init.initialized = false; for (var i = 0; i < FS.streams.length; i++) { var stream = FS.streams[i]; if (!stream) { continue; } FS.close(stream); } },getMode:function (canRead, canWrite) { var mode = 0; if (canRead) mode |= 292 | 73; if (canWrite) mode |= 146; return mode; },joinPath:function (parts, forceRelative) { var path = PATH.join.apply(null, parts); if (forceRelative && path[0] == '/') path = path.substr(1); return path; },absolutePath:function (relative, base) { return PATH.resolve(base, relative); },standardizePath:function (path) { return PATH.normalize(path); },findObject:function (path, dontResolveLastLink) { var ret = FS.analyzePath(path, dontResolveLastLink); if (ret.exists) { return ret.object; } else { ___setErrNo(ret.error); return null; } },analyzePath:function (path, dontResolveLastLink) { // operate from within the context of the symlink's target try { var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); path = lookup.path; } catch (e) { } var ret = { isRoot: false, exists: false, error: 0, name: null, path: null, object: null, parentExists: false, parentPath: null, parentObject: null }; try { var lookup = FS.lookupPath(path, { parent: true }); ret.parentExists = true; ret.parentPath = lookup.path; ret.parentObject = lookup.node; ret.name = PATH.basename(path); lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); ret.exists = true; ret.path = lookup.path; ret.object = lookup.node; ret.name = lookup.node.name; ret.isRoot = lookup.path === '/'; } catch (e) { ret.error = e.errno; }; return ret; },createFolder:function (parent, name, canRead, canWrite) { var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); var mode = FS.getMode(canRead, canWrite); return FS.mkdir(path, mode); },createPath:function (parent, path, canRead, canWrite) { parent = typeof parent === 'string' ? parent : FS.getPath(parent); var parts = path.split('/').reverse(); while (parts.length) { var part = parts.pop(); if (!part) continue; var current = PATH.join2(parent, part); try { FS.mkdir(current); } catch (e) { // ignore EEXIST } parent = current; } return current; },createFile:function (parent, name, properties, canRead, canWrite) { var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); var mode = FS.getMode(canRead, canWrite); return FS.create(path, mode); },createDataFile:function (parent, name, data, canRead, canWrite, canOwn) { var path = name ? PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name) : parent; var mode = FS.getMode(canRead, canWrite); var node = FS.create(path, mode); if (data) { if (typeof data === 'string') { var arr = new Array(data.length); for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i); data = arr; } // make sure we can write to the file FS.chmod(node, mode | 146); var stream = FS.open(node, 'w'); FS.write(stream, data, 0, data.length, 0, canOwn); FS.close(stream); FS.chmod(node, mode); } return node; },createDevice:function (parent, name, input, output) { var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); var mode = FS.getMode(!!input, !!output); if (!FS.createDevice.major) FS.createDevice.major = 64; var dev = FS.makedev(FS.createDevice.major++, 0); // Create a fake device that a set of stream ops to emulate // the old behavior. FS.registerDevice(dev, { open: function(stream) { stream.seekable = false; }, close: function(stream) { // flush any pending line data if (output && output.buffer && output.buffer.length) { output(10); } }, read: function(stream, buffer, offset, length, pos /* ignored */) { var bytesRead = 0; for (var i = 0; i < length; i++) { var result; try { result = input(); } catch (e) { throw new FS.ErrnoError(ERRNO_CODES.EIO); } if (result === undefined && bytesRead === 0) { throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); } if (result === null || result === undefined) break; bytesRead++; buffer[offset+i] = result; } if (bytesRead) { stream.node.timestamp = Date.now(); } return bytesRead; }, write: function(stream, buffer, offset, length, pos) { for (var i = 0; i < length; i++) { try { output(buffer[offset+i]); } catch (e) { throw new FS.ErrnoError(ERRNO_CODES.EIO); } } if (length) { stream.node.timestamp = Date.now(); } return i; } }); return FS.mkdev(path, mode, dev); },createLink:function (parent, name, target, canRead, canWrite) { var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); return FS.symlink(target, path); },forceLoadFile:function (obj) { if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true; var success = true; if (typeof XMLHttpRequest !== 'undefined') { throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."); } else if (Module['read']) { // Command-line. try { // WARNING: Can't read binary files in V8's d8 or tracemonkey's js, as // read() will try to parse UTF8. obj.contents = intArrayFromString(Module['read'](obj.url), true); obj.usedBytes = obj.contents.length; } catch (e) { success = false; } } else { throw new Error('Cannot load without read() or XMLHttpRequest.'); } if (!success) ___setErrNo(ERRNO_CODES.EIO); return success; },createLazyFile:function (parent, name, url, canRead, canWrite) { // Lazy chunked Uint8Array (implements get and length from Uint8Array). Actual getting is abstracted away for eventual reuse. function LazyUint8Array() { this.lengthKnown = false; this.chunks = []; // Loaded chunks. Index is the chunk number } LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) { if (idx > this.length-1 || idx < 0) { return undefined; } var chunkOffset = idx % this.chunkSize; var chunkNum = (idx / this.chunkSize)|0; return this.getter(chunkNum)[chunkOffset]; } LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) { this.getter = getter; } LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() { // Find length var xhr = new XMLHttpRequest(); xhr.open('HEAD', url, false); xhr.send(null); if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); var datalength = Number(xhr.getResponseHeader("Content-length")); var header; var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; var chunkSize = 1024*1024; // Chunk size in bytes if (!hasByteServing) chunkSize = datalength; // Function to get a range from the remote URL. var doXHR = (function(from, to) { if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!"); if (to > datalength-1) throw new Error("only " + datalength + " bytes available! programmer error!"); // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available. var xhr = new XMLHttpRequest(); xhr.open('GET', url, false); if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to); // Some hints to the browser that we want binary data. if (typeof Uint8Array != 'undefined') xhr.responseType = 'arraybuffer'; if (xhr.overrideMimeType) { xhr.overrideMimeType('text/plain; charset=x-user-defined'); } xhr.send(null); if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); if (xhr.response !== undefined) { return new Uint8Array(xhr.response || []); } else { return intArrayFromString(xhr.responseText || '', true); } }); var lazyArray = this; lazyArray.setDataGetter(function(chunkNum) { var start = chunkNum * chunkSize; var end = (chunkNum+1) * chunkSize - 1; // including this byte end = Math.min(end, datalength-1); // if datalength-1 is selected, this is the last block if (typeof(lazyArray.chunks[chunkNum]) === "undefined") { lazyArray.chunks[chunkNum] = doXHR(start, end); } if (typeof(lazyArray.chunks[chunkNum]) === "undefined") throw new Error("doXHR failed!"); return lazyArray.chunks[chunkNum]; }); this._length = datalength; this._chunkSize = chunkSize; this.lengthKnown = true; } if (typeof XMLHttpRequest !== 'undefined') { if (!ENVIRONMENT_IS_WORKER) throw 'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc'; var lazyArray = new LazyUint8Array(); Object.defineProperty(lazyArray, "length", { get: function() { if(!this.lengthKnown) { this.cacheLength(); } return this._length; } }); Object.defineProperty(lazyArray, "chunkSize", { get: function() { if(!this.lengthKnown) { this.cacheLength(); } return this._chunkSize; } }); var properties = { isDevice: false, contents: lazyArray }; } else { var properties = { isDevice: false, url: url }; } var node = FS.createFile(parent, name, properties, canRead, canWrite); // This is a total hack, but I want to get this lazy file code out of the // core of MEMFS. If we want to keep this lazy file concept I feel it should // be its own thin LAZYFS proxying calls to MEMFS. if (properties.contents) { node.contents = properties.contents; } else if (properties.url) { node.contents = null; node.url = properties.url; } // Add a function that defers querying the file size until it is asked the first time. Object.defineProperty(node, "usedBytes", { get: function() { return this.contents.length; } }); // override each stream op with one that tries to force load the lazy file first var stream_ops = {}; var keys = Object.keys(node.stream_ops); keys.forEach(function(key) { var fn = node.stream_ops[key]; stream_ops[key] = function forceLoadLazyFile() { if (!FS.forceLoadFile(node)) { throw new FS.ErrnoError(ERRNO_CODES.EIO); } return fn.apply(null, arguments); }; }); // use a custom read function stream_ops.read = function stream_ops_read(stream, buffer, offset, length, position) { if (!FS.forceLoadFile(node)) { throw new FS.ErrnoError(ERRNO_CODES.EIO); } var contents = stream.node.contents; if (position >= contents.length) return 0; var size = Math.min(contents.length - position, length); assert(size >= 0); if (contents.slice) { // normal array for (var i = 0; i < size; i++) { buffer[offset + i] = contents[position + i]; } } else { for (var i = 0; i < size; i++) { // LazyUint8Array from sync binary XHR buffer[offset + i] = contents.get(position + i); } } return size; }; node.stream_ops = stream_ops; return node; },createPreloadedFile:function (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) { Browser.init(); // TODO we should allow people to just pass in a complete filename instead // of parent and name being that we just join them anyways var fullname = name ? PATH.resolve(PATH.join2(parent, name)) : parent; var dep = getUniqueRunDependency('cp ' + fullname); // might have several active requests for the same fullname function processData(byteArray) { function finish(byteArray) { if (preFinish) preFinish(); if (!dontCreateFile) { FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn); } if (onload) onload(); removeRunDependency(dep); } var handled = false; Module['preloadPlugins'].forEach(function(plugin) { if (handled) return; if (plugin['canHandle'](fullname)) { plugin['handle'](byteArray, fullname, finish, function() { if (onerror) onerror(); removeRunDependency(dep); }); handled = true; } }); if (!handled) finish(byteArray); } addRunDependency(dep); if (typeof url == 'string') { Browser.asyncLoad(url, function(byteArray) { processData(byteArray); }, onerror); } else { processData(url); } },indexedDB:function () { return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; },DB_NAME:function () { return 'EM_FS_' + window.location.pathname; },DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function (paths, onload, onerror) { onload = onload || function(){}; onerror = onerror || function(){}; var indexedDB = FS.indexedDB(); try { var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); } catch (e) { return onerror(e); } openRequest.onupgradeneeded = function openRequest_onupgradeneeded() { console.log('creating db'); var db = openRequest.result; db.createObjectStore(FS.DB_STORE_NAME); }; openRequest.onsuccess = function openRequest_onsuccess() { var db = openRequest.result; var transaction = db.transaction([FS.DB_STORE_NAME], 'readwrite'); var files = transaction.objectStore(FS.DB_STORE_NAME); var ok = 0, fail = 0, total = paths.length; function finish() { if (fail == 0) onload(); else onerror(); } paths.forEach(function(path) { var putRequest = files.put(FS.analyzePath(path).object.contents, path); putRequest.onsuccess = function putRequest_onsuccess() { ok++; if (ok + fail == total) finish() }; putRequest.onerror = function putRequest_onerror() { fail++; if (ok + fail == total) finish() }; }); transaction.onerror = onerror; }; openRequest.onerror = onerror; },loadFilesFromDB:function (paths, onload, onerror) { onload = onload || function(){}; onerror = onerror || function(){}; var indexedDB = FS.indexedDB(); try { var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); } catch (e) { return onerror(e); } openRequest.onupgradeneeded = onerror; // no database to load from openRequest.onsuccess = function openRequest_onsuccess() { var db = openRequest.result; try { var transaction = db.transaction([FS.DB_STORE_NAME], 'readonly'); } catch(e) { onerror(e); return; } var files = transaction.objectStore(FS.DB_STORE_NAME); var ok = 0, fail = 0, total = paths.length; function finish() { if (fail == 0) onload(); else onerror(); } paths.forEach(function(path) { var getRequest = files.get(path); getRequest.onsuccess = function getRequest_onsuccess() { if (FS.analyzePath(path).exists) { FS.unlink(path); } FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true); ok++; if (ok + fail == total) finish(); }; getRequest.onerror = function getRequest_onerror() { fail++; if (ok + fail == total) finish() }; }); transaction.onerror = onerror; }; openRequest.onerror = onerror; }}; function _mkport() { throw 'TODO' }var SOCKFS={mount:function (mount) { // If Module['websocket'] has already been defined (e.g. for configuring // the subprotocol/url) use that, if not initialise it to a new object. Module['websocket'] = (Module['websocket'] && ('object' === typeof Module['websocket'])) ? Module['websocket'] : {}; // Add the Event registration mechanism to the exported websocket configuration // object so we can register network callbacks from native JavaScript too. // For more documentation see system/include/emscripten/emscripten.h Module['websocket']._callbacks = {}; Module['websocket']['on'] = function(event, callback) { if ('function' === typeof callback) { this._callbacks[event] = callback; } return this; }; Module['websocket'].emit = function(event, param) { if ('function' === typeof this._callbacks[event]) { this._callbacks[event].call(this, param); } }; // If debug is enabled register simple default logging callbacks for each Event. return FS.createNode(null, '/', 16384 | 511 /* 0777 */, 0); },createSocket:function (family, type, protocol) { var streaming = type == 1; if (protocol) { assert(streaming == (protocol == 6)); // if SOCK_STREAM, must be tcp } // create our internal socket structure var sock = { family: family, type: type, protocol: protocol, server: null, error: null, // Used in getsockopt for SOL_SOCKET/SO_ERROR test peers: {}, pending: [], recv_queue: [], sock_ops: SOCKFS.websocket_sock_ops }; // create the filesystem node to store the socket structure var name = SOCKFS.nextname(); var node = FS.createNode(SOCKFS.root, name, 49152, 0); node.sock = sock; // and the wrapping stream that enables library functions such // as read and write to indirectly interact with the socket var stream = FS.createStream({ path: name, node: node, flags: FS.modeStringToFlags('r+'), seekable: false, stream_ops: SOCKFS.stream_ops }); // map the new stream to the socket structure (sockets have a 1:1 // relationship with a stream) sock.stream = stream; return sock; },getSocket:function (fd) { var stream = FS.getStream(fd); if (!stream || !FS.isSocket(stream.node.mode)) { return null; } return stream.node.sock; },stream_ops:{poll:function (stream) { var sock = stream.node.sock; return sock.sock_ops.poll(sock); },ioctl:function (stream, request, varargs) { var sock = stream.node.sock; return sock.sock_ops.ioctl(sock, request, varargs); },read:function (stream, buffer, offset, length, position /* ignored */) { var sock = stream.node.sock; var msg = sock.sock_ops.recvmsg(sock, length); if (!msg) { // socket is closed return 0; } buffer.set(msg.buffer, offset); return msg.buffer.length; },write:function (stream, buffer, offset, length, position /* ignored */) { var sock = stream.node.sock; return sock.sock_ops.sendmsg(sock, buffer, offset, length); },close:function (stream) { var sock = stream.node.sock; sock.sock_ops.close(sock); }},nextname:function () { if (!SOCKFS.nextname.current) { SOCKFS.nextname.current = 0; } return 'socket[' + (SOCKFS.nextname.current++) + ']'; },websocket_sock_ops:{createPeer:function (sock, addr, port) { var ws; if (typeof addr === 'object') { ws = addr; addr = null; port = null; } if (ws) { // for sockets that've already connected (e.g. we're the server) // we can inspect the _socket property for the address if (ws._socket) { addr = ws._socket.remoteAddress; port = ws._socket.remotePort; } // if we're just now initializing a connection to the remote, // inspect the url property else { var result = /ws[s]?:\/\/([^:]+):(\d+)/.exec(ws.url); if (!result) { throw new Error('WebSocket URL must be in the format ws(s)://address:port'); } addr = result[1]; port = parseInt(result[2], 10); } } else { // create the actual websocket object and connect try { // runtimeConfig gets set to true if WebSocket runtime configuration is available. var runtimeConfig = (Module['websocket'] && ('object' === typeof Module['websocket'])); // The default value is 'ws://' the replace is needed because the compiler replaces '//' comments with '#' // comments without checking context, so we'd end up with ws:#, the replace swaps the '#' for '//' again. var url = 'ws:#'.replace('#', '//'); if (runtimeConfig) { if ('string' === typeof Module['websocket']['url']) { url = Module['websocket']['url']; // Fetch runtime WebSocket URL config. } } if (url === 'ws://' || url === 'wss://') { // Is the supplied URL config just a prefix, if so complete it. var parts = addr.split('/'); url = url + parts[0] + ":" + port + "/" + parts.slice(1).join('/'); } // Make the WebSocket subprotocol (Sec-WebSocket-Protocol) default to binary if no configuration is set. var subProtocols = 'binary'; // The default value is 'binary' if (runtimeConfig) { if ('string' === typeof Module['websocket']['subprotocol']) { subProtocols = Module['websocket']['subprotocol']; // Fetch runtime WebSocket subprotocol config. } } // The regex trims the string (removes spaces at the beginning and end, then splits the string by // , into an Array. Whitespace removal is important for Websockify and ws. subProtocols = subProtocols.replace(/^ +| +$/g,"").split(/ *, */); // The node ws library API for specifying optional subprotocol is slightly different than the browser's. var opts = ENVIRONMENT_IS_NODE ? {'protocol': subProtocols.toString()} : subProtocols; // If node we use the ws library. var WebSocket = ENVIRONMENT_IS_NODE ? require('ws') : window['WebSocket']; ws = new WebSocket(url, opts); ws.binaryType = 'arraybuffer'; } catch (e) { throw new FS.ErrnoError(ERRNO_CODES.EHOSTUNREACH); } } var peer = { addr: addr, port: port, socket: ws, dgram_send_queue: [] }; SOCKFS.websocket_sock_ops.addPeer(sock, peer); SOCKFS.websocket_sock_ops.handlePeerEvents(sock, peer); // if this is a bound dgram socket, send the port number first to allow // us to override the ephemeral port reported to us by remotePort on the // remote end. if (sock.type === 2 && typeof sock.sport !== 'undefined') { peer.dgram_send_queue.push(new Uint8Array([ 255, 255, 255, 255, 'p'.charCodeAt(0), 'o'.charCodeAt(0), 'r'.charCodeAt(0), 't'.charCodeAt(0), ((sock.sport & 0xff00) >> 8) , (sock.sport & 0xff) ])); } return peer; },getPeer:function (sock, addr, port) { return sock.peers[addr + ':' + port]; },addPeer:function (sock, peer) { sock.peers[peer.addr + ':' + peer.port] = peer; },removePeer:function (sock, peer) { delete sock.peers[peer.addr + ':' + peer.port]; },handlePeerEvents:function (sock, peer) { var first = true; var handleOpen = function () { Module['websocket'].emit('open', sock.stream.fd); try { var queued = peer.dgram_send_queue.shift(); while (queued) { peer.socket.send(queued); queued = peer.dgram_send_queue.shift(); } } catch (e) { // not much we can do here in the way of proper error handling as we've already // lied and said this data was sent. shut it down. peer.socket.close(); } }; function handleMessage(data) { assert(typeof data !== 'string' && data.byteLength !== undefined); // must receive an ArrayBuffer data = new Uint8Array(data); // make a typed array view on the array buffer // if this is the port message, override the peer's port with it var wasfirst = first; first = false; if (wasfirst && data.length === 10 && data[0] === 255 && data[1] === 255 && data[2] === 255 && data[3] === 255 && data[4] === 'p'.charCodeAt(0) && data[5] === 'o'.charCodeAt(0) && data[6] === 'r'.charCodeAt(0) && data[7] === 't'.charCodeAt(0)) { // update the peer's port and it's key in the peer map var newport = ((data[8] << 8) | data[9]); SOCKFS.websocket_sock_ops.removePeer(sock, peer); peer.port = newport; SOCKFS.websocket_sock_ops.addPeer(sock, peer); return; } sock.recv_queue.push({ addr: peer.addr, port: peer.port, data: data }); Module['websocket'].emit('message', sock.stream.fd); }; if (ENVIRONMENT_IS_NODE) { peer.socket.on('open', handleOpen); peer.socket.on('message', function(data, flags) { if (!flags.binary) { return; } handleMessage((new Uint8Array(data)).buffer); // copy from node Buffer -> ArrayBuffer }); peer.socket.on('close', function() { Module['websocket'].emit('close', sock.stream.fd); }); peer.socket.on('error', function(error) { // Although the ws library may pass errors that may be more descriptive than // ECONNREFUSED they are not necessarily the expected error code e.g. // ENOTFOUND on getaddrinfo seems to be node.js specific, so using ECONNREFUSED // is still probably the most useful thing to do. sock.error = ERRNO_CODES.ECONNREFUSED; // Used in getsockopt for SOL_SOCKET/SO_ERROR test. Module['websocket'].emit('error', [sock.stream.fd, sock.error, 'ECONNREFUSED: Connection refused']); // don't throw }); } else { peer.socket.onopen = handleOpen; peer.socket.onclose = function() { Module['websocket'].emit('close', sock.stream.fd); }; peer.socket.onmessage = function peer_socket_onmessage(event) { handleMessage(event.data); }; peer.socket.onerror = function(error) { // The WebSocket spec only allows a 'simple event' to be thrown on error, // so we only really know as much as ECONNREFUSED. sock.error = ERRNO_CODES.ECONNREFUSED; // Used in getsockopt for SOL_SOCKET/SO_ERROR test. Module['websocket'].emit('error', [sock.stream.fd, sock.error, 'ECONNREFUSED: Connection refused']); }; } },poll:function (sock) { if (sock.type === 1 && sock.server) { // listen sockets should only say they're available for reading // if there are pending clients. return sock.pending.length ? (64 | 1) : 0; } var mask = 0; var dest = sock.type === 1 ? // we only care about the socket state for connection-based sockets SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport) : null; if (sock.recv_queue.length || !dest || // connection-less sockets are always ready to read (dest && dest.socket.readyState === dest.socket.CLOSING) || (dest && dest.socket.readyState === dest.socket.CLOSED)) { // let recv return 0 once closed mask |= (64 | 1); } if (!dest || // connection-less sockets are always ready to write (dest && dest.socket.readyState === dest.socket.OPEN)) { mask |= 4; } if ((dest && dest.socket.readyState === dest.socket.CLOSING) || (dest && dest.socket.readyState === dest.socket.CLOSED)) { mask |= 16; } return mask; },ioctl:function (sock, request, arg) { switch (request) { case 21531: var bytes = 0; if (sock.recv_queue.length) { bytes = sock.recv_queue[0].data.length; } HEAP32[((arg)>>2)]=bytes; return 0; default: return ERRNO_CODES.EINVAL; } },close:function (sock) { // if we've spawned a listen server, close it if (sock.server) { try { sock.server.close(); } catch (e) { } sock.server = null; } // close any peer connections var peers = Object.keys(sock.peers); for (var i = 0; i < peers.length; i++) { var peer = sock.peers[peers[i]]; try { peer.socket.close(); } catch (e) { } SOCKFS.websocket_sock_ops.removePeer(sock, peer); } return 0; },bind:function (sock, addr, port) { if (typeof sock.saddr !== 'undefined' || typeof sock.sport !== 'undefined') { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); // already bound } sock.saddr = addr; sock.sport = port || _mkport(); // in order to emulate dgram sockets, we need to launch a listen server when // binding on a connection-less socket // note: this is only required on the server side if (sock.type === 2) { // close the existing server if it exists if (sock.server) { sock.server.close(); sock.server = null; } // swallow error operation not supported error that occurs when binding in the // browser where this isn't supported try { sock.sock_ops.listen(sock, 0); } catch (e) { if (!(e instanceof FS.ErrnoError)) throw e; if (e.errno !== ERRNO_CODES.EOPNOTSUPP) throw e; } } },connect:function (sock, addr, port) { if (sock.server) { throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP); } // TODO autobind // if (!sock.addr && sock.type == 2) { // } // early out if we're already connected / in the middle of connecting if (typeof sock.daddr !== 'undefined' && typeof sock.dport !== 'undefined') { var dest = SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport); if (dest) { if (dest.socket.readyState === dest.socket.CONNECTING) { throw new FS.ErrnoError(ERRNO_CODES.EALREADY); } else { throw new FS.ErrnoError(ERRNO_CODES.EISCONN); } } } // add the socket to our peer list and set our // destination address / port to match var peer = SOCKFS.websocket_sock_ops.createPeer(sock, addr, port); sock.daddr = peer.addr; sock.dport = peer.port; // always "fail" in non-blocking mode throw new FS.ErrnoError(ERRNO_CODES.EINPROGRESS); },listen:function (sock, backlog) { if (!ENVIRONMENT_IS_NODE) { throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP); } if (sock.server) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); // already listening } var WebSocketServer = require('ws').Server; var host = sock.saddr; sock.server = new WebSocketServer({ host: host, port: sock.sport // TODO support backlog }); Module['websocket'].emit('listen', sock.stream.fd); // Send Event with listen fd. sock.server.on('connection', function(ws) { if (sock.type === 1) { var newsock = SOCKFS.createSocket(sock.family, sock.type, sock.protocol); // create a peer on the new socket var peer = SOCKFS.websocket_sock_ops.createPeer(newsock, ws); newsock.daddr = peer.addr; newsock.dport = peer.port; // push to queue for accept to pick up sock.pending.push(newsock); Module['websocket'].emit('connection', newsock.stream.fd); } else { // create a peer on the listen socket so calling sendto // with the listen socket and an address will resolve // to the correct client SOCKFS.websocket_sock_ops.createPeer(sock, ws); Module['websocket'].emit('connection', sock.stream.fd); } }); sock.server.on('closed', function() { Module['websocket'].emit('close', sock.stream.fd); sock.server = null; }); sock.server.on('error', function(error) { // Although the ws library may pass errors that may be more descriptive than // ECONNREFUSED they are not necessarily the expected error code e.g. // ENOTFOUND on getaddrinfo seems to be node.js specific, so using EHOSTUNREACH // is still probably the most useful thing to do. This error shouldn't // occur in a well written app as errors should get trapped in the compiled // app's own getaddrinfo call. sock.error = ERRNO_CODES.EHOSTUNREACH; // Used in getsockopt for SOL_SOCKET/SO_ERROR test. Module['websocket'].emit('error', [sock.stream.fd, sock.error, 'EHOSTUNREACH: Host is unreachable']); // don't throw }); },accept:function (listensock) { if (!listensock.server) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } var newsock = listensock.pending.shift(); newsock.stream.flags = listensock.stream.flags; return newsock; },getname:function (sock, peer) { var addr, port; if (peer) { if (sock.daddr === undefined || sock.dport === undefined) { throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN); } addr = sock.daddr; port = sock.dport; } else { // TODO saddr and sport will be set for bind()'d UDP sockets, but what // should we be returning for TCP sockets that've been connect()'d? addr = sock.saddr || 0; port = sock.sport || 0; } return { addr: addr, port: port }; },sendmsg:function (sock, buffer, offset, length, addr, port) { if (sock.type === 2) { // connection-less sockets will honor the message address, // and otherwise fall back to the bound destination address if (addr === undefined || port === undefined) { addr = sock.daddr; port = sock.dport; } // if there was no address to fall back to, error out if (addr === undefined || port === undefined) { throw new FS.ErrnoError(ERRNO_CODES.EDESTADDRREQ); } } else { // connection-based sockets will only use the bound addr = sock.daddr; port = sock.dport; } // find the peer for the destination address var dest = SOCKFS.websocket_sock_ops.getPeer(sock, addr, port); // early out if not connected with a connection-based socket if (sock.type === 1) { if (!dest || dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) { throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN); } else if (dest.socket.readyState === dest.socket.CONNECTING) { throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); } } // create a copy of the incoming data to send, as the WebSocket API // doesn't work entirely with an ArrayBufferView, it'll just send // the entire underlying buffer var data; if (buffer instanceof Array || buffer instanceof ArrayBuffer) { data = buffer.slice(offset, offset + length); } else { // ArrayBufferView data = buffer.buffer.slice(buffer.byteOffset + offset, buffer.byteOffset + offset + length); } // if we're emulating a connection-less dgram socket and don't have // a cached connection, queue the buffer to send upon connect and // lie, saying the data was sent now. if (sock.type === 2) { if (!dest || dest.socket.readyState !== dest.socket.OPEN) { // if we're not connected, open a new connection if (!dest || dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) { dest = SOCKFS.websocket_sock_ops.createPeer(sock, addr, port); } dest.dgram_send_queue.push(data); return length; } } try { // send the actual data dest.socket.send(data); return length; } catch (e) { throw new FS.ErrnoError(ERRNO_CODES.EINVAL); } },recvmsg:function (sock, length) { // http://pubs.opengroup.org/onlinepubs/7908799/xns/recvmsg.html if (sock.type === 1 && sock.server) { // tcp servers should not be recv()'ing on the listen socket throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN); } var queued = sock.recv_queue.shift(); if (!queued) { if (sock.type === 1) { var dest = SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport); if (!dest) { // if we have a destination address but are not connected, error out throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN); } else if (dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) { // return null if the socket has closed return null; } else { // else, our socket is in a valid state but truly has nothing available throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); } } else { throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); } } // queued.data will be an ArrayBuffer if it's unadulterated, but if it's // requeued TCP data it'll be an ArrayBufferView var queuedLength = queued.data.byteLength || queued.data.length; var queuedOffset = queued.data.byteOffset || 0; var queuedBuffer = queued.data.buffer || queued.data; var bytesRead = Math.min(length, queuedLength); var res = { buffer: new Uint8Array(queuedBuffer, queuedOffset, bytesRead), addr: queued.addr, port: queued.port }; // push back any unread data for TCP connections if (sock.type === 1 && bytesRead < queuedLength) { var bytesRemaining = queuedLength - bytesRead; queued.data = new Uint8Array(queuedBuffer, queuedOffset + bytesRead, bytesRemaining); sock.recv_queue.unshift(queued); } return res; }}};function _send(fd, buf, len, flags) { var sock = SOCKFS.getSocket(fd); if (!sock) { ___setErrNo(ERRNO_CODES.EBADF); return -1; } // TODO honor flags return _write(fd, buf, len); } function _pwrite(fildes, buf, nbyte, offset) { // ssize_t pwrite(int fildes, const void *buf, size_t nbyte, off_t offset); // http://pubs.opengroup.org/onlinepubs/000095399/functions/write.html var stream = FS.getStream(fildes); if (!stream) { ___setErrNo(ERRNO_CODES.EBADF); return -1; } try { var slab = HEAP8; return FS.write(stream, slab, buf, nbyte, offset); } catch (e) { FS.handleFSError(e); return -1; } }function _write(fildes, buf, nbyte) { // ssize_t write(int fildes, const void *buf, size_t nbyte); // http://pubs.opengroup.org/onlinepubs/000095399/functions/write.html var stream = FS.getStream(fildes); if (!stream) { ___setErrNo(ERRNO_CODES.EBADF); return -1; } try { var slab = HEAP8; return FS.write(stream, slab, buf, nbyte); } catch (e) { FS.handleFSError(e); return -1; } } function _fileno(stream) { // int fileno(FILE *stream); // http://pubs.opengroup.org/onlinepubs/000095399/functions/fileno.html stream = FS.getStreamFromPtr(stream); if (!stream) return -1; return stream.fd; }function _fwrite(ptr, size, nitems, stream) { // size_t fwrite(const void *restrict ptr, size_t size, size_t nitems, FILE *restrict stream); // http://pubs.opengroup.org/onlinepubs/000095399/functions/fwrite.html var bytesToWrite = nitems * size; if (bytesToWrite == 0) return 0; var fd = _fileno(stream); var bytesWritten = _write(fd, ptr, bytesToWrite); if (bytesWritten == -1) { var streamObj = FS.getStreamFromPtr(stream); if (streamObj) streamObj.error = true; return 0; } else { return (bytesWritten / size)|0; } } Module["_strlen"] = _strlen; function __reallyNegative(x) { return x < 0 || (x === 0 && (1/x) === -Infinity); }function __formatString(format, varargs) { assert((varargs & 3) === 0); var textIndex = format; var argIndex = 0; function getNextArg(type) { // NOTE: Explicitly ignoring type safety. Otherwise this fails: // int x = 4; printf("%c\n", (char)x); var ret; argIndex = Runtime.prepVararg(argIndex, type); if (type === 'double') { ret = (HEAP32[((tempDoublePtr)>>2)]=HEAP32[(((varargs)+(argIndex))>>2)],HEAP32[(((tempDoublePtr)+(4))>>2)]=HEAP32[(((varargs)+((argIndex)+(4)))>>2)],(+(HEAPF64[(tempDoublePtr)>>3]))); argIndex += 8; } else if (type == 'i64') { ret = [HEAP32[(((varargs)+(argIndex))>>2)], HEAP32[(((varargs)+(argIndex+4))>>2)]]; argIndex += 8; } else { assert((argIndex & 3) === 0); type = 'i32'; // varargs are always i32, i64, or double ret = HEAP32[(((varargs)+(argIndex))>>2)]; argIndex += 4; } return ret; } var ret = []; var curr, next, currArg; while(1) { var startTextIndex = textIndex; curr = HEAP8[((textIndex)>>0)]; if (curr === 0) break; next = HEAP8[((textIndex+1)>>0)]; if (curr == 37) { // Handle flags. var flagAlwaysSigned = false; var flagLeftAlign = false; var flagAlternative = false; var flagZeroPad = false; var flagPadSign = false; flagsLoop: while (1) { switch (next) { case 43: flagAlwaysSigned = true; break; case 45: flagLeftAlign = true; break; case 35: flagAlternative = true; break; case 48: if (flagZeroPad) { break flagsLoop; } else { flagZeroPad = true; break; } case 32: flagPadSign = true; break; default: break flagsLoop; } textIndex++; next = HEAP8[((textIndex+1)>>0)]; } // Handle width. var width = 0; if (next == 42) { width = getNextArg('i32'); textIndex++; next = HEAP8[((textIndex+1)>>0)]; } else { while (next >= 48 && next <= 57) { width = width * 10 + (next - 48); textIndex++; next = HEAP8[((textIndex+1)>>0)]; } } // Handle precision. var precisionSet = false, precision = -1; if (next == 46) { precision = 0; precisionSet = true; textIndex++; next = HEAP8[((textIndex+1)>>0)]; if (next == 42) { precision = getNextArg('i32'); textIndex++; } else { while(1) { var precisionChr = HEAP8[((textIndex+1)>>0)]; if (precisionChr < 48 || precisionChr > 57) break; precision = precision * 10 + (precisionChr - 48); textIndex++; } } next = HEAP8[((textIndex+1)>>0)]; } if (precision < 0) { precision = 6; // Standard default. precisionSet = false; } // Handle integer sizes. WARNING: These assume a 32-bit architecture! var argSize; switch (String.fromCharCode(next)) { case 'h': var nextNext = HEAP8[((textIndex+2)>>0)]; if (nextNext == 104) { textIndex++; argSize = 1; // char (actually i32 in varargs) } else { argSize = 2; // short (actually i32 in varargs) } break; case 'l': var nextNext = HEAP8[((textIndex+2)>>0)]; if (nextNext == 108) { textIndex++; argSize = 8; // long long } else { argSize = 4; // long } break; case 'L': // long long case 'q': // int64_t case 'j': // intmax_t argSize = 8; break; case 'z': // size_t case 't': // ptrdiff_t case 'I': // signed ptrdiff_t or unsigned size_t argSize = 4; break; default: argSize = null; } if (argSize) textIndex++; next = HEAP8[((textIndex+1)>>0)]; // Handle type specifier. switch (String.fromCharCode(next)) { case 'd': case 'i': case 'u': case 'o': case 'x': case 'X': case 'p': { // Integer. var signed = next == 100 || next == 105; argSize = argSize || 4; var currArg = getNextArg('i' + (argSize * 8)); var origArg = currArg; var argText; // Flatten i64-1 [low, high] into a (slightly rounded) double if (argSize == 8) { currArg = Runtime.makeBigInt(currArg[0], currArg[1], next == 117); } // Truncate to requested size. if (argSize <= 4) { var limit = Math.pow(256, argSize) - 1; currArg = (signed ? reSign : unSign)(currArg & limit, argSize * 8); } // Format the number. var currAbsArg = Math.abs(currArg); var prefix = ''; if (next == 100 || next == 105) { if (argSize == 8 && i64Math) argText = i64Math.stringify(origArg[0], origArg[1], null); else argText = reSign(currArg, 8 * argSize, 1).toString(10); } else if (next == 117) { if (argSize == 8 && i64Math) argText = i64Math.stringify(origArg[0], origArg[1], true); else argText = unSign(currArg, 8 * argSize, 1).toString(10); currArg = Math.abs(currArg); } else if (next == 111) { argText = (flagAlternative ? '0' : '') + currAbsArg.toString(8); } else if (next == 120 || next == 88) { prefix = (flagAlternative && currArg != 0) ? '0x' : ''; if (argSize == 8 && i64Math) { if (origArg[1]) { argText = (origArg[1]>>>0).toString(16); var lower = (origArg[0]>>>0).toString(16); while (lower.length < 8) lower = '0' + lower; argText += lower; } else { argText = (origArg[0]>>>0).toString(16); } } else if (currArg < 0) { // Represent negative numbers in hex as 2's complement. currArg = -currArg; argText = (currAbsArg - 1).toString(16); var buffer = []; for (var i = 0; i < argText.length; i++) { buffer.push((0xF - parseInt(argText[i], 16)).toString(16)); } argText = buffer.join(''); while (argText.length < argSize * 2) argText = 'f' + argText; } else { argText = currAbsArg.toString(16); } if (next == 88) { prefix = prefix.toUpperCase(); argText = argText.toUpperCase(); } } else if (next == 112) { if (currAbsArg === 0) { argText = '(nil)'; } else { prefix = '0x'; argText = currAbsArg.toString(16); } } if (precisionSet) { while (argText.length < precision) { argText = '0' + argText; } } // Add sign if needed if (currArg >= 0) { if (flagAlwaysSigned) { prefix = '+' + prefix; } else if (flagPadSign) { prefix = ' ' + prefix; } } // Move sign to prefix so we zero-pad after the sign if (argText.charAt(0) == '-') { prefix = '-' + prefix; argText = argText.substr(1); } // Add padding. while (prefix.length + argText.length < width) { if (flagLeftAlign) { argText += ' '; } else { if (flagZeroPad) { argText = '0' + argText; } else { prefix = ' ' + prefix; } } } // Insert the result into the buffer. argText = prefix + argText; argText.split('').forEach(function(chr) { ret.push(chr.charCodeAt(0)); }); break; } case 'f': case 'F': case 'e': case 'E': case 'g': case 'G': { // Float. var currArg = getNextArg('double'); var argText; if (isNaN(currArg)) { argText = 'nan'; flagZeroPad = false; } else if (!isFinite(currArg)) { argText = (currArg < 0 ? '-' : '') + 'inf'; flagZeroPad = false; } else { var isGeneral = false; var effectivePrecision = Math.min(precision, 20); // Convert g/G to f/F or e/E, as per: // http://pubs.opengroup.org/onlinepubs/9699919799/functions/printf.html if (next == 103 || next == 71) { isGeneral = true; precision = precision || 1; var exponent = parseInt(currArg.toExponential(effectivePrecision).split('e')[1], 10); if (precision > exponent && exponent >= -4) { next = ((next == 103) ? 'f' : 'F').charCodeAt(0); precision -= exponent + 1; } else { next = ((next == 103) ? 'e' : 'E').charCodeAt(0); precision--; } effectivePrecision = Math.min(precision, 20); } if (next == 101 || next == 69) { argText = currArg.toExponential(effectivePrecision); // Make sure the exponent has at least 2 digits. if (/[eE][-+]\d$/.test(argText)) { argText = argText.slice(0, -1) + '0' + argText.slice(-1); } } else if (next == 102 || next == 70) { argText = currArg.toFixed(effectivePrecision); if (currArg === 0 && __reallyNegative(currArg)) { argText = '-' + argText; } } var parts = argText.split('e'); if (isGeneral && !flagAlternative) { // Discard trailing zeros and periods. while (parts[0].length > 1 && parts[0].indexOf('.') != -1 && (parts[0].slice(-1) == '0' || parts[0].slice(-1) == '.')) { parts[0] = parts[0].slice(0, -1); } } else { // Make sure we have a period in alternative mode. if (flagAlternative && argText.indexOf('.') == -1) parts[0] += '.'; // Zero pad until required precision. while (precision > effectivePrecision++) parts[0] += '0'; } argText = parts[0] + (parts.length > 1 ? 'e' + parts[1] : ''); // Capitalize 'E' if needed. if (next == 69) argText = argText.toUpperCase(); // Add sign. if (currArg >= 0) { if (flagAlwaysSigned) { argText = '+' + argText; } else if (flagPadSign) { argText = ' ' + argText; } } } // Add padding. while (argText.length < width) { if (flagLeftAlign) { argText += ' '; } else { if (flagZeroPad && (argText[0] == '-' || argText[0] == '+')) { argText = argText[0] + '0' + argText.slice(1); } else { argText = (flagZeroPad ? '0' : ' ') + argText; } } } // Adjust case. if (next < 97) argText = argText.toUpperCase(); // Insert the result into the buffer. argText.split('').forEach(function(chr) { ret.push(chr.charCodeAt(0)); }); break; } case 's': { // String. var arg = getNextArg('i8*'); var argLength = arg ? _strlen(arg) : '(null)'.length; if (precisionSet) argLength = Math.min(argLength, precision); if (!flagLeftAlign) { while (argLength < width--) { ret.push(32); } } if (arg) { for (var i = 0; i < argLength; i++) { ret.push(HEAPU8[((arg++)>>0)]); } } else { ret = ret.concat(intArrayFromString('(null)'.substr(0, argLength), true)); } if (flagLeftAlign) { while (argLength < width--) { ret.push(32); } } break; } case 'c': { // Character. if (flagLeftAlign) ret.push(getNextArg('i8')); while (--width > 0) { ret.push(32); } if (!flagLeftAlign) ret.push(getNextArg('i8')); break; } case 'n': { // Write the length written so far to the next parameter. var ptr = getNextArg('i32*'); HEAP32[((ptr)>>2)]=ret.length; break; } case '%': { // Literal percent sign. ret.push(curr); break; } default: { // Unknown specifiers remain untouched. for (var i = startTextIndex; i < textIndex + 2; i++) { ret.push(HEAP8[((i)>>0)]); } } } textIndex += 2; // TODO: Support a/A (hex float) and m (last error) specifiers. // TODO: Support %1${specifier} for arg selection. } else { ret.push(curr); textIndex += 1; } } return ret; }function _fprintf(stream, format, varargs) { // int fprintf(FILE *restrict stream, const char *restrict format, ...); // http://pubs.opengroup.org/onlinepubs/000095399/functions/printf.html var result = __formatString(format, varargs); var stack = Runtime.stackSave(); var ret = _fwrite(allocate(result, 'i8', ALLOC_STACK), 1, result.length, stream); Runtime.stackRestore(stack); return ret; }function _printf(format, varargs) { // int printf(const char *restrict format, ...); // http://pubs.opengroup.org/onlinepubs/000095399/functions/printf.html var stdout = HEAP32[((_stdout)>>2)]; return _fprintf(stdout, format, varargs); } function _emscripten_memcpy_big(dest, src, num) { HEAPU8.set(HEAPU8.subarray(src, src+num), dest); return dest; } Module["_memcpy"] = _memcpy; var _llvm_pow_f64=Math_pow; var _cos=Math_cos; var _log=Math_log; function _sbrk(bytes) { // Implement a Linux-like 'memory area' for our 'process'. // Changes the size of the memory area by |bytes|; returns the // address of the previous top ('break') of the memory area // We control the "dynamic" memory - DYNAMIC_BASE to DYNAMICTOP var self = _sbrk; if (!self.called) { DYNAMICTOP = alignMemoryPage(DYNAMICTOP); // make sure we start out aligned self.called = true; assert(Runtime.dynamicAlloc); self.alloc = Runtime.dynamicAlloc; Runtime.dynamicAlloc = function() { abort('cannot dynamically allocate, sbrk now has control') }; } var ret = DYNAMICTOP; if (bytes != 0) { var success = self.alloc(bytes); if (!success) return -1 >>> 0; // sbrk failure code } return ret; // Previous break location. } function ___errno_location() { return ___errno_state; } var _BItoD=true; var _sqrt=Math_sqrt; Module["_strcpy"] = _strcpy; function __exit(status) { // void _exit(int status); // http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html Module['exit'](status); }function _exit(status) { __exit(status); } function _time(ptr) { var ret = (Date.now()/1000)|0; if (ptr) { HEAP32[((ptr)>>2)]=ret; } return ret; } function _emscripten_set_main_loop_timing(mode, value) { Browser.mainLoop.timingMode = mode; Browser.mainLoop.timingValue = value; if (!Browser.mainLoop.func) { console.error('emscripten_set_main_loop_timing: Cannot set timing mode for main loop since a main loop does not exist! Call emscripten_set_main_loop first to set one up.'); return 1; // Return non-zero on failure, can't set timing mode when there is no main loop. } if (mode == 0 /*EM_TIMING_SETTIMEOUT*/) { Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler() { setTimeout(Browser.mainLoop.runner, value); // doing this each time means that on exception, we stop }; Browser.mainLoop.method = 'timeout'; } else if (mode == 1 /*EM_TIMING_RAF*/) { Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler() { Browser.requestAnimationFrame(Browser.mainLoop.runner); }; Browser.mainLoop.method = 'rAF'; } return 0; }function _emscripten_set_main_loop(func, fps, simulateInfiniteLoop, arg, noSetTiming) { Module['noExitRuntime'] = true; assert(!Browser.mainLoop.func, 'emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.'); Browser.mainLoop.func = func; Browser.mainLoop.arg = arg; var thisMainLoopId = Browser.mainLoop.currentlyRunningMainloop; Browser.mainLoop.runner = function Browser_mainLoop_runner() { if (ABORT) return; if (Browser.mainLoop.queue.length > 0) { var start = Date.now(); var blocker = Browser.mainLoop.queue.shift(); blocker.func(blocker.arg); if (Browser.mainLoop.remainingBlockers) { var remaining = Browser.mainLoop.remainingBlockers; var next = remaining%1 == 0 ? remaining-1 : Math.floor(remaining); if (blocker.counted) { Browser.mainLoop.remainingBlockers = next; } else { // not counted, but move the progress along a tiny bit next = next + 0.5; // do not steal all the next one's progress Browser.mainLoop.remainingBlockers = (8*remaining + next)/9; } } console.log('main loop blocker "' + blocker.name + '" took ' + (Date.now() - start) + ' ms'); //, left: ' + Browser.mainLoop.remainingBlockers); Browser.mainLoop.updateStatus(); setTimeout(Browser.mainLoop.runner, 0); return; } // catch pauses from non-main loop sources if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; // Implement very basic swap interval control Browser.mainLoop.currentFrameNumber = Browser.mainLoop.currentFrameNumber + 1 | 0; if (Browser.mainLoop.timingMode == 1/*EM_TIMING_RAF*/ && Browser.mainLoop.timingValue > 1 && Browser.mainLoop.currentFrameNumber % Browser.mainLoop.timingValue != 0) { // Not the scheduled time to render this frame - skip. Browser.mainLoop.scheduler(); return; } // Signal GL rendering layer that processing of a new frame is about to start. This helps it optimize // VBO double-buffering and reduce GPU stalls. if (Browser.mainLoop.method === 'timeout' && Module.ctx) { Module.printErr('Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!'); Browser.mainLoop.method = ''; // just warn once per call to set main loop } Browser.mainLoop.runIter(function() { if (typeof arg !== 'undefined') { Runtime.dynCall('vi', func, [arg]); } else { Runtime.dynCall('v', func); } }); // catch pauses from the main loop itself if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return; // Queue new audio data. This is important to be right after the main loop invocation, so that we will immediately be able // to queue the newest produced audio samples. // TODO: Consider adding pre- and post- rAF callbacks so that GL.newRenderingFrameStarted() and SDL.audio.queueNewAudioData() // do not need to be hardcoded into this function, but can be more generic. if (typeof SDL === 'object' && SDL.audio && SDL.audio.queueNewAudioData) SDL.audio.queueNewAudioData(); Browser.mainLoop.scheduler(); } if (!noSetTiming) { if (fps && fps > 0) _emscripten_set_main_loop_timing(0/*EM_TIMING_SETTIMEOUT*/, 1000.0 / fps); else _emscripten_set_main_loop_timing(1/*EM_TIMING_RAF*/, 1); // Do rAF by rendering each frame (no decimating) Browser.mainLoop.scheduler(); } if (simulateInfiniteLoop) { throw 'SimulateInfiniteLoop'; } }var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function () { Browser.mainLoop.scheduler = null; Browser.mainLoop.currentlyRunningMainloop++; // Incrementing this signals the previous main loop that it's now become old, and it must return. },resume:function () { Browser.mainLoop.currentlyRunningMainloop++; var timingMode = Browser.mainLoop.timingMode; var timingValue = Browser.mainLoop.timingValue; var func = Browser.mainLoop.func; Browser.mainLoop.func = null; _emscripten_set_main_loop(func, 0, false, Browser.mainLoop.arg, true /* do not set timing and call scheduler, we will do it on the next lines */); _emscripten_set_main_loop_timing(timingMode, timingValue); Browser.mainLoop.scheduler(); },updateStatus:function () { if (Module['setStatus']) { var message = Module['statusMessage'] || 'Please wait...'; var remaining = Browser.mainLoop.remainingBlockers; var expected = Browser.mainLoop.expectedBlockers; if (remaining) { if (remaining < expected) { Module['setStatus'](message + ' (' + (expected - remaining) + '/' + expected + ')'); } else { Module['setStatus'](message); } } else { Module['setStatus'](''); } } },runIter:function (func) { if (ABORT) return; if (Module['preMainLoop']) { var preRet = Module['preMainLoop'](); if (preRet === false) { return; // |return false| skips a frame } } try { func(); } catch (e) { if (e instanceof ExitStatus) { return; } else { if (e && typeof e === 'object' && e.stack) Module.printErr('exception thrown: ' + [e, e.stack]); throw e; } } if (Module['postMainLoop']) Module['postMainLoop'](); }},isFullScreen:false,pointerLock:false,moduleContextCreatedCallbacks:[],workers:[],init:function () { if (!Module["preloadPlugins"]) Module["preloadPlugins"] = []; // needs to exist even in workers if (Browser.initted) return; Browser.initted = true; try { new Blob(); Browser.hasBlobConstructor = true; } catch(e) { Browser.hasBlobConstructor = false; console.log("warning: no blob constructor, cannot create blobs with mimetypes"); } Browser.BlobBuilder = typeof MozBlobBuilder != "undefined" ? MozBlobBuilder : (typeof WebKitBlobBuilder != "undefined" ? WebKitBlobBuilder : (!Browser.hasBlobConstructor ? console.log("warning: no BlobBuilder") : null)); Browser.URLObject = typeof window != "undefined" ? (window.URL ? window.URL : window.webkitURL) : undefined; if (!Module.noImageDecoding && typeof Browser.URLObject === 'undefined') { console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."); Module.noImageDecoding = true; } // Support for plugins that can process preloaded files. You can add more of these to // your app by creating and appending to Module.preloadPlugins. // // Each plugin is asked if it can handle a file based on the file's name. If it can, // it is given the file's raw data. When it is done, it calls a callback with the file's // (possibly modified) data. For example, a plugin might decompress a file, or it // might create some side data structure for use later (like an Image element, etc.). var imagePlugin = {}; imagePlugin['canHandle'] = function imagePlugin_canHandle(name) { return !Module.noImageDecoding && /\.(jpg|jpeg|png|bmp)$/i.test(name); }; imagePlugin['handle'] = function imagePlugin_handle(byteArray, name, onload, onerror) { var b = null; if (Browser.hasBlobConstructor) { try { b = new Blob([byteArray], { type: Browser.getMimetype(name) }); if (b.size !== byteArray.length) { // Safari bug #118630 // Safari's Blob can only take an ArrayBuffer b = new Blob([(new Uint8Array(byteArray)).buffer], { type: Browser.getMimetype(name) }); } } catch(e) { Runtime.warnOnce('Blob constructor present but fails: ' + e + '; falling back to blob builder'); } } if (!b) { var bb = new Browser.BlobBuilder(); bb.append((new Uint8Array(byteArray)).buffer); // we need to pass a buffer, and must copy the array to get the right data range b = bb.getBlob(); } var url = Browser.URLObject.createObjectURL(b); assert(typeof url == 'string', 'createObjectURL must return a url as a string'); var img = new Image(); img.onload = function img_onload() { assert(img.complete, 'Image ' + name + ' could not be decoded'); var canvas = document.createElement('canvas'); canvas.width = img.width; canvas.height = img.height; var ctx = canvas.getContext('2d'); ctx.drawImage(img, 0, 0); Module["preloadedImages"][name] = canvas; Browser.URLObject.revokeObjectURL(url); if (onload) onload(byteArray); }; img.onerror = function img_onerror(event) { console.log('Image ' + url + ' could not be decoded'); if (onerror) onerror(); }; img.src = url; }; Module['preloadPlugins'].push(imagePlugin); var audioPlugin = {}; audioPlugin['canHandle'] = function audioPlugin_canHandle(name) { return !Module.noAudioDecoding && name.substr(-4) in { '.ogg': 1, '.wav': 1, '.mp3': 1 }; }; audioPlugin['handle'] = function audioPlugin_handle(byteArray, name, onload, onerror) { var done = false; function finish(audio) { if (done) return; done = true; Module["preloadedAudios"][name] = audio; if (onload) onload(byteArray); } function fail() { if (done) return; done = true; Module["preloadedAudios"][name] = new Audio(); // empty shim if (onerror) onerror(); } if (Browser.hasBlobConstructor) { try { var b = new Blob([byteArray], { type: Browser.getMimetype(name) }); } catch(e) { return fail(); } var url = Browser.URLObject.createObjectURL(b); // XXX we never revoke this! assert(typeof url == 'string', 'createObjectURL must return a url as a string'); var audio = new Audio(); audio.addEventListener('canplaythrough', function() { finish(audio) }, false); // use addEventListener due to chromium bug 124926 audio.onerror = function audio_onerror(event) { if (done) return; console.log('warning: browser could not fully decode audio ' + name + ', trying slower base64 approach'); function encode64(data) { var BASE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; var PAD = '='; var ret = ''; var leftchar = 0; var leftbits = 0; for (var i = 0; i < data.length; i++) { leftchar = (leftchar << 8) | data[i]; leftbits += 8; while (leftbits >= 6) { var curr = (leftchar >> (leftbits-6)) & 0x3f; leftbits -= 6; ret += BASE[curr]; } } if (leftbits == 2) { ret += BASE[(leftchar&3) << 4]; ret += PAD + PAD; } else if (leftbits == 4) { ret += BASE[(leftchar&0xf) << 2]; ret += PAD; } return ret; } audio.src = 'data:audio/x-' + name.substr(-3) + ';base64,' + encode64(byteArray); finish(audio); // we don't wait for confirmation this worked - but it's worth trying }; audio.src = url; // workaround for chrome bug 124926 - we do not always get oncanplaythrough or onerror Browser.safeSetTimeout(function() { finish(audio); // try to use it even though it is not necessarily ready to play }, 10000); } else { return fail(); } }; Module['preloadPlugins'].push(audioPlugin); // Canvas event setup var canvas = Module['canvas']; function pointerLockChange() { Browser.pointerLock = document['pointerLockElement'] === canvas || document['mozPointerLockElement'] === canvas || document['webkitPointerLockElement'] === canvas || document['msPointerLockElement'] === canvas; } if (canvas) { // forced aspect ratio can be enabled by defining 'forcedAspectRatio' on Module // Module['forcedAspectRatio'] = 4 / 3; canvas.requestPointerLock = canvas['requestPointerLock'] || canvas['mozRequestPointerLock'] || canvas['webkitRequestPointerLock'] || canvas['msRequestPointerLock'] || function(){}; canvas.exitPointerLock = document['exitPointerLock'] || document['mozExitPointerLock'] || document['webkitExitPointerLock'] || document['msExitPointerLock'] || function(){}; // no-op if function does not exist canvas.exitPointerLock = canvas.exitPointerLock.bind(document); document.addEventListener('pointerlockchange', pointerLockChange, false); document.addEventListener('mozpointerlockchange', pointerLockChange, false); document.addEventListener('webkitpointerlockchange', pointerLockChange, false); document.addEventListener('mspointerlockchange', pointerLockChange, false); if (Module['elementPointerLock']) { canvas.addEventListener("click", function(ev) { if (!Browser.pointerLock && canvas.requestPointerLock) { canvas.requestPointerLock(); ev.preventDefault(); } }, false); } } },createContext:function (canvas, useWebGL, setInModule, webGLContextAttributes) { if (useWebGL && Module.ctx && canvas == Module.canvas) return Module.ctx; // no need to recreate GL context if it's already been created for this canvas. var ctx; var contextHandle; if (useWebGL) { // For GLES2/desktop GL compatibility, adjust a few defaults to be different to WebGL defaults, so that they align better with the desktop defaults. var contextAttributes = { antialias: false, alpha: false }; if (webGLContextAttributes) { for (var attribute in webGLContextAttributes) { contextAttributes[attribute] = webGLContextAttributes[attribute]; } } contextHandle = GL.createContext(canvas, contextAttributes); if (contextHandle) { ctx = GL.getContext(contextHandle).GLctx; } // Set the background of the WebGL canvas to black canvas.style.backgroundColor = "black"; } else { ctx = canvas.getContext('2d'); } if (!ctx) return null; if (setInModule) { if (!useWebGL) assert(typeof GLctx === 'undefined', 'cannot set in module if GLctx is used, but we are a non-GL context that would replace it'); Module.ctx = ctx; if (useWebGL) GL.makeContextCurrent(contextHandle); Module.useWebGL = useWebGL; Browser.moduleContextCreatedCallbacks.forEach(function(callback) { callback() }); Browser.init(); } return ctx; },destroyContext:function (canvas, useWebGL, setInModule) {},fullScreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullScreen:function (lockPointer, resizeCanvas, vrDevice) { Browser.lockPointer = lockPointer; Browser.resizeCanvas = resizeCanvas; Browser.vrDevice = vrDevice; if (typeof Browser.lockPointer === 'undefined') Browser.lockPointer = true; if (typeof Browser.resizeCanvas === 'undefined') Browser.resizeCanvas = false; if (typeof Browser.vrDevice === 'undefined') Browser.vrDevice = null; var canvas = Module['canvas']; function fullScreenChange() { Browser.isFullScreen = false; var canvasContainer = canvas.parentNode; if ((document['webkitFullScreenElement'] || document['webkitFullscreenElement'] || document['mozFullScreenElement'] || document['mozFullscreenElement'] || document['fullScreenElement'] || document['fullscreenElement'] || document['msFullScreenElement'] || document['msFullscreenElement'] || document['webkitCurrentFullScreenElement']) === canvasContainer) { canvas.cancelFullScreen = document['cancelFullScreen'] || document['mozCancelFullScreen'] || document['webkitCancelFullScreen'] || document['msExitFullscreen'] || document['exitFullscreen'] || function() {}; canvas.cancelFullScreen = canvas.cancelFullScreen.bind(document); if (Browser.lockPointer) canvas.requestPointerLock(); Browser.isFullScreen = true; if (Browser.resizeCanvas) Browser.setFullScreenCanvasSize(); } else { // remove the full screen specific parent of the canvas again to restore the HTML structure from before going full screen canvasContainer.parentNode.insertBefore(canvas, canvasContainer); canvasContainer.parentNode.removeChild(canvasContainer); if (Browser.resizeCanvas) Browser.setWindowedCanvasSize(); } if (Module['onFullScreen']) Module['onFullScreen'](Browser.isFullScreen); Browser.updateCanvasDimensions(canvas); } if (!Browser.fullScreenHandlersInstalled) { Browser.fullScreenHandlersInstalled = true; document.addEventListener('fullscreenchange', fullScreenChange, false); document.addEventListener('mozfullscreenchange', fullScreenChange, false); document.addEventListener('webkitfullscreenchange', fullScreenChange, false); document.addEventListener('MSFullscreenChange', fullScreenChange, false); } // create a new parent to ensure the canvas has no siblings. this allows browsers to optimize full screen performance when its parent is the full screen root var canvasContainer = document.createElement("div"); canvas.parentNode.insertBefore(canvasContainer, canvas); canvasContainer.appendChild(canvas); // use parent of canvas as full screen root to allow aspect ratio correction (Firefox stretches the root to screen size) canvasContainer.requestFullScreen = canvasContainer['requestFullScreen'] || canvasContainer['mozRequestFullScreen'] || canvasContainer['msRequestFullscreen'] || (canvasContainer['webkitRequestFullScreen'] ? function() { canvasContainer['webkitRequestFullScreen'](Element['ALLOW_KEYBOARD_INPUT']) } : null); if (vrDevice) { canvasContainer.requestFullScreen({ vrDisplay: vrDevice }); } else { canvasContainer.requestFullScreen(); } },nextRAF:0,fakeRequestAnimationFrame:function (func) { // try to keep 60fps between calls to here var now = Date.now(); if (Browser.nextRAF === 0) { Browser.nextRAF = now + 1000/60; } else { while (now + 2 >= Browser.nextRAF) { // fudge a little, to avoid timer jitter causing us to do lots of delay:0 Browser.nextRAF += 1000/60; } } var delay = Math.max(Browser.nextRAF - now, 0); setTimeout(func, delay); },requestAnimationFrame:function requestAnimationFrame(func) { if (typeof window === 'undefined') { // Provide fallback to setTimeout if window is undefined (e.g. in Node.js) Browser.fakeRequestAnimationFrame(func); } else { if (!window.requestAnimationFrame) { window.requestAnimationFrame = window['requestAnimationFrame'] || window['mozRequestAnimationFrame'] || window['webkitRequestAnimationFrame'] || window['msRequestAnimationFrame'] || window['oRequestAnimationFrame'] || Browser.fakeRequestAnimationFrame; } window.requestAnimationFrame(func); } },safeCallback:function (func) { return function() { if (!ABORT) return func.apply(null, arguments); }; },allowAsyncCallbacks:true,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function () { Browser.allowAsyncCallbacks = false; },resumeAsyncCallbacks:function () { // marks future callbacks as ok to execute, and synchronously runs any remaining ones right now Browser.allowAsyncCallbacks = true; if (Browser.queuedAsyncCallbacks.length > 0) { var callbacks = Browser.queuedAsyncCallbacks; Browser.queuedAsyncCallbacks = []; callbacks.forEach(function(func) { func(); }); } },safeRequestAnimationFrame:function (func) { return Browser.requestAnimationFrame(function() { if (ABORT) return; if (Browser.allowAsyncCallbacks) { func(); } else { Browser.queuedAsyncCallbacks.push(func); } }); },safeSetTimeout:function (func, timeout) { Module['noExitRuntime'] = true; return setTimeout(function() { if (ABORT) return; if (Browser.allowAsyncCallbacks) { func(); } else { Browser.queuedAsyncCallbacks.push(func); } }, timeout); },safeSetInterval:function (func, timeout) { Module['noExitRuntime'] = true; return setInterval(function() { if (ABORT) return; if (Browser.allowAsyncCallbacks) { func(); } // drop it on the floor otherwise, next interval will kick in }, timeout); },getMimetype:function (name) { return { 'jpg': 'image/jpeg', 'jpeg': 'image/jpeg', 'png': 'image/png', 'bmp': 'image/bmp', 'ogg': 'audio/ogg', 'wav': 'audio/wav', 'mp3': 'audio/mpeg' }[name.substr(name.lastIndexOf('.')+1)]; },getUserMedia:function (func) { if(!window.getUserMedia) { window.getUserMedia = navigator['getUserMedia'] || navigator['mozGetUserMedia']; } window.getUserMedia(func); },getMovementX:function (event) { return event['movementX'] || event['mozMovementX'] || event['webkitMovementX'] || 0; },getMovementY:function (event) { return event['movementY'] || event['mozMovementY'] || event['webkitMovementY'] || 0; },getMouseWheelDelta:function (event) { var delta = 0; switch (event.type) { case 'DOMMouseScroll': delta = event.detail; break; case 'mousewheel': delta = event.wheelDelta; break; case 'wheel': delta = event['deltaY']; break; default: throw 'unrecognized mouse wheel event: ' + event.type; } return delta; },mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function (event) { // event should be mousemove, mousedown or mouseup if (Browser.pointerLock) { // When the pointer is locked, calculate the coordinates // based on the movement of the mouse. // Workaround for Firefox bug 764498 if (event.type != 'mousemove' && ('mozMovementX' in event)) { Browser.mouseMovementX = Browser.mouseMovementY = 0; } else { Browser.mouseMovementX = Browser.getMovementX(event); Browser.mouseMovementY = Browser.getMovementY(event); } // check if SDL is available if (typeof SDL != "undefined") { Browser.mouseX = SDL.mouseX + Browser.mouseMovementX; Browser.mouseY = SDL.mouseY + Browser.mouseMovementY; } else { // just add the mouse delta to the current absolut mouse position // FIXME: ideally this should be clamped against the canvas size and zero Browser.mouseX += Browser.mouseMovementX; Browser.mouseY += Browser.mouseMovementY; } } else { // Otherwise, calculate the movement based on the changes // in the coordinates. var rect = Module["canvas"].getBoundingClientRect(); var cw = Module["canvas"].width; var ch = Module["canvas"].height; // Neither .scrollX or .pageXOffset are defined in a spec, but // we prefer .scrollX because it is currently in a spec draft. // (see: http://www.w3.org/TR/2013/WD-cssom-view-20131217/) var scrollX = ((typeof window.scrollX !== 'undefined') ? window.scrollX : window.pageXOffset); var scrollY = ((typeof window.scrollY !== 'undefined') ? window.scrollY : window.pageYOffset); // If this assert lands, it's likely because the browser doesn't support scrollX or pageXOffset // and we have no viable fallback. assert((typeof scrollX !== 'undefined') && (typeof scrollY !== 'undefined'), 'Unable to retrieve scroll position, mouse positions likely broken.'); if (event.type === 'touchstart' || event.type === 'touchend' || event.type === 'touchmove') { var touch = event.touch; if (touch === undefined) { return; // the "touch" property is only defined in SDL } var adjustedX = touch.pageX - (scrollX + rect.left); var adjustedY = touch.pageY - (scrollY + rect.top); adjustedX = adjustedX * (cw / rect.width); adjustedY = adjustedY * (ch / rect.height); var coords = { x: adjustedX, y: adjustedY }; if (event.type === 'touchstart') { Browser.lastTouches[touch.identifier] = coords; Browser.touches[touch.identifier] = coords; } else if (event.type === 'touchend' || event.type === 'touchmove') { var last = Browser.touches[touch.identifier]; if (!last) last = coords; Browser.lastTouches[touch.identifier] = last; Browser.touches[touch.identifier] = coords; } return; } var x = event.pageX - (scrollX + rect.left); var y = event.pageY - (scrollY + rect.top); // the canvas might be CSS-scaled compared to its backbuffer; // SDL-using content will want mouse coordinates in terms // of backbuffer units. x = x * (cw / rect.width); y = y * (ch / rect.height); Browser.mouseMovementX = x - Browser.mouseX; Browser.mouseMovementY = y - Browser.mouseY; Browser.mouseX = x; Browser.mouseY = y; } },xhrLoad:function (url, onload, onerror) { var xhr = new XMLHttpRequest(); xhr.open('GET', url, true); xhr.responseType = 'arraybuffer'; xhr.onload = function xhr_onload() { if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0 onload(xhr.response); } else { onerror(); } }; xhr.onerror = onerror; xhr.send(null); },asyncLoad:function (url, onload, onerror, noRunDep) { Browser.xhrLoad(url, function(arrayBuffer) { assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).'); onload(new Uint8Array(arrayBuffer)); if (!noRunDep) removeRunDependency('al ' + url); }, function(event) { if (onerror) { onerror(); } else { throw 'Loading data file "' + url + '" failed.'; } }); if (!noRunDep) addRunDependency('al ' + url); },resizeListeners:[],updateResizeListeners:function () { var canvas = Module['canvas']; Browser.resizeListeners.forEach(function(listener) { listener(canvas.width, canvas.height); }); },setCanvasSize:function (width, height, noUpdates) { var canvas = Module['canvas']; Browser.updateCanvasDimensions(canvas, width, height); if (!noUpdates) Browser.updateResizeListeners(); },windowedWidth:0,windowedHeight:0,setFullScreenCanvasSize:function () { // check if SDL is available if (typeof SDL != "undefined") { var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]; flags = flags | 0x00800000; // set SDL_FULLSCREEN flag HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags } Browser.updateResizeListeners(); },setWindowedCanvasSize:function () { // check if SDL is available if (typeof SDL != "undefined") { var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]; flags = flags & ~0x00800000; // clear SDL_FULLSCREEN flag HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags } Browser.updateResizeListeners(); },updateCanvasDimensions:function (canvas, wNative, hNative) { if (wNative && hNative) { canvas.widthNative = wNative; canvas.heightNative = hNative; } else { wNative = canvas.widthNative; hNative = canvas.heightNative; } var w = wNative; var h = hNative; if (Module['forcedAspectRatio'] && Module['forcedAspectRatio'] > 0) { if (w/h < Module['forcedAspectRatio']) { w = Math.round(h * Module['forcedAspectRatio']); } else { h = Math.round(w / Module['forcedAspectRatio']); } } if (((document['webkitFullScreenElement'] || document['webkitFullscreenElement'] || document['mozFullScreenElement'] || document['mozFullscreenElement'] || document['fullScreenElement'] || document['fullscreenElement'] || document['msFullScreenElement'] || document['msFullscreenElement'] || document['webkitCurrentFullScreenElement']) === canvas.parentNode) && (typeof screen != 'undefined')) { var factor = Math.min(screen.width / w, screen.height / h); w = Math.round(w * factor); h = Math.round(h * factor); } if (Browser.resizeCanvas) { if (canvas.width != w) canvas.width = w; if (canvas.height != h) canvas.height = h; if (typeof canvas.style != 'undefined') { canvas.style.removeProperty( "width"); canvas.style.removeProperty("height"); } } else { if (canvas.width != wNative) canvas.width = wNative; if (canvas.height != hNative) canvas.height = hNative; if (typeof canvas.style != 'undefined') { if (w != wNative || h != hNative) { canvas.style.setProperty( "width", w + "px", "important"); canvas.style.setProperty("height", h + "px", "important"); } else { canvas.style.removeProperty( "width"); canvas.style.removeProperty("height"); } } } },wgetRequests:{},nextWgetRequestHandle:0,getNextWgetRequestHandle:function () { var handle = Browser.nextWgetRequestHandle; Browser.nextWgetRequestHandle++; return handle; }}; var _sin=Math_sin; ___errno_state = Runtime.staticAlloc(4); HEAP32[((___errno_state)>>2)]=0; FS.staticInit();__ATINIT__.unshift(function() { if (!Module["noFSInit"] && !FS.init.initialized) FS.init() });__ATMAIN__.push(function() { FS.ignorePermissions = false });__ATEXIT__.push(function() { FS.quit() });Module["FS_createFolder"] = FS.createFolder;Module["FS_createPath"] = FS.createPath;Module["FS_createDataFile"] = FS.createDataFile;Module["FS_createPreloadedFile"] = FS.createPreloadedFile;Module["FS_createLazyFile"] = FS.createLazyFile;Module["FS_createLink"] = FS.createLink;Module["FS_createDevice"] = FS.createDevice; __ATINIT__.unshift(function() { TTY.init() });__ATEXIT__.push(function() { TTY.shutdown() }); if (ENVIRONMENT_IS_NODE) { var fs = require("fs"); var NODEJS_PATH = require("path"); NODEFS.staticInit(); } __ATINIT__.push(function() { SOCKFS.root = FS.mount(SOCKFS, {}, null); }); Module["requestFullScreen"] = function Module_requestFullScreen(lockPointer, resizeCanvas, vrDevice) { Browser.requestFullScreen(lockPointer, resizeCanvas, vrDevice) }; Module["requestAnimationFrame"] = function Module_requestAnimationFrame(func) { Browser.requestAnimationFrame(func) }; Module["setCanvasSize"] = function Module_setCanvasSize(width, height, noUpdates) { Browser.setCanvasSize(width, height, noUpdates) }; Module["pauseMainLoop"] = function Module_pauseMainLoop() { Browser.mainLoop.pause() }; Module["resumeMainLoop"] = function Module_resumeMainLoop() { Browser.mainLoop.resume() }; Module["getUserMedia"] = function Module_getUserMedia() { Browser.getUserMedia() } Module["createContext"] = function Module_createContext(canvas, useWebGL, setInModule, webGLContextAttributes) { return Browser.createContext(canvas, useWebGL, setInModule, webGLContextAttributes) } STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP); staticSealed = true; // seal the static portion of memory STACK_MAX = STACK_BASE + TOTAL_STACK; DYNAMIC_BASE = DYNAMICTOP = Runtime.alignMemory(STACK_MAX); assert(DYNAMIC_BASE < TOTAL_MEMORY, "TOTAL_MEMORY not big enough for stack"); Module.asmGlobalArg = { "Math": Math, "Int8Array": Int8Array, "Int16Array": Int16Array, "Int32Array": Int32Array, "Uint8Array": Uint8Array, "Uint16Array": Uint16Array, "Uint32Array": Uint32Array, "Float32Array": Float32Array, "Float64Array": Float64Array, "NaN": NaN, "Infinity": Infinity }; Module.asmLibraryArg = { "abort": abort, "assert": assert, "_sin": _sin, "_llvm_pow_f64": _llvm_pow_f64, "_send": _send, "__reallyNegative": __reallyNegative, "_fflush": _fflush, "_pwrite": _pwrite, "_emscripten_set_main_loop_timing": _emscripten_set_main_loop_timing, "_sbrk": _sbrk, "_emscripten_memcpy_big": _emscripten_memcpy_big, "_fileno": _fileno, "_sysconf": _sysconf, "___setErrNo": ___setErrNo, "_cos": _cos, "_printf": _printf, "_log": _log, "_write": _write, "_emscripten_set_main_loop": _emscripten_set_main_loop, "___errno_location": ___errno_location, "_mkport": _mkport, "__exit": __exit, "_abort": _abort, "_fwrite": _fwrite, "_time": _time, "_fprintf": _fprintf, "_ceil": _ceil, "__formatString": __formatString, "_sqrt": _sqrt, "_exit": _exit, "STACKTOP": STACKTOP, "STACK_MAX": STACK_MAX, "tempDoublePtr": tempDoublePtr, "ABORT": ABORT }; // EMSCRIPTEN_START_ASM var asm = (function(global, env, buffer) { 'almost asm'; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); var HEAP32 = new global.Int32Array(buffer); var HEAPU8 = new global.Uint8Array(buffer); var HEAPU16 = new global.Uint16Array(buffer); var HEAPU32 = new global.Uint32Array(buffer); var HEAPF32 = new global.Float32Array(buffer); var HEAPF64 = new global.Float64Array(buffer); var STACKTOP=env.STACKTOP|0; var STACK_MAX=env.STACK_MAX|0; var tempDoublePtr=env.tempDoublePtr|0; var ABORT=env.ABORT|0; var __THREW__ = 0; var threwValue = 0; var setjmpId = 0; var undef = 0; var nan = global.NaN, inf = global.Infinity; var tempInt = 0, tempBigInt = 0, tempBigIntP = 0, tempBigIntS = 0, tempBigIntR = 0.0, tempBigIntI = 0, tempBigIntD = 0, tempValue = 0, tempDouble = 0.0; var tempRet0 = 0; var tempRet1 = 0; var tempRet2 = 0; var tempRet3 = 0; var tempRet4 = 0; var tempRet5 = 0; var tempRet6 = 0; var tempRet7 = 0; var tempRet8 = 0; var tempRet9 = 0; var Math_floor=global.Math.floor; var Math_abs=global.Math.abs; var Math_sqrt=global.Math.sqrt; var Math_pow=global.Math.pow; var Math_cos=global.Math.cos; var Math_sin=global.Math.sin; var Math_tan=global.Math.tan; var Math_acos=global.Math.acos; var Math_asin=global.Math.asin; var Math_atan=global.Math.atan; var Math_atan2=global.Math.atan2; var Math_exp=global.Math.exp; var Math_log=global.Math.log; var Math_ceil=global.Math.ceil; var Math_imul=global.Math.imul; var Math_min=global.Math.min; var Math_clz32=global.Math.clz32; var abort=env.abort; var assert=env.assert; var _sin=env._sin; var _llvm_pow_f64=env._llvm_pow_f64; var _send=env._send; var __reallyNegative=env.__reallyNegative; var _fflush=env._fflush; var _pwrite=env._pwrite; var _emscripten_set_main_loop_timing=env._emscripten_set_main_loop_timing; var _sbrk=env._sbrk; var _emscripten_memcpy_big=env._emscripten_memcpy_big; var _fileno=env._fileno; var _sysconf=env._sysconf; var ___setErrNo=env.___setErrNo; var _cos=env._cos; var _printf=env._printf; var _log=env._log; var _write=env._write; var _emscripten_set_main_loop=env._emscripten_set_main_loop; var ___errno_location=env.___errno_location; var _mkport=env._mkport; var __exit=env.__exit; var _abort=env._abort; var _fwrite=env._fwrite; var _time=env._time; var _fprintf=env._fprintf; var _ceil=env._ceil; var __formatString=env.__formatString; var _sqrt=env._sqrt; var _exit=env._exit; var tempFloat = 0.0; // EMSCRIPTEN_START_FUNCS function stackAlloc(size) { size = size|0; var ret = 0; ret = STACKTOP; STACKTOP = (STACKTOP + size)|0; STACKTOP = (STACKTOP + 15)&-16; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); return ret|0; } function stackSave() { return STACKTOP|0; } function stackRestore(top) { top = top|0; STACKTOP = top; } function establishStackSpace(stackBase, stackMax) { stackBase = stackBase|0; stackMax = stackMax|0; STACKTOP = stackBase; STACK_MAX = stackMax; } function setThrew(threw, value) { threw = threw|0; value = value|0; if ((__THREW__|0) == 0) { __THREW__ = threw; threwValue = value; } } function copyTempFloat(ptr) { ptr = ptr|0; HEAP8[tempDoublePtr>>0] = HEAP8[ptr>>0]; HEAP8[tempDoublePtr+1>>0] = HEAP8[ptr+1>>0]; HEAP8[tempDoublePtr+2>>0] = HEAP8[ptr+2>>0]; HEAP8[tempDoublePtr+3>>0] = HEAP8[ptr+3>>0]; } function copyTempDouble(ptr) { ptr = ptr|0; HEAP8[tempDoublePtr>>0] = HEAP8[ptr>>0]; HEAP8[tempDoublePtr+1>>0] = HEAP8[ptr+1>>0]; HEAP8[tempDoublePtr+2>>0] = HEAP8[ptr+2>>0]; HEAP8[tempDoublePtr+3>>0] = HEAP8[ptr+3>>0]; HEAP8[tempDoublePtr+4>>0] = HEAP8[ptr+4>>0]; HEAP8[tempDoublePtr+5>>0] = HEAP8[ptr+5>>0]; HEAP8[tempDoublePtr+6>>0] = HEAP8[ptr+6>>0]; HEAP8[tempDoublePtr+7>>0] = HEAP8[ptr+7>>0]; } function setTempRet0(value) { value = value|0; tempRet0 = value; } function getTempRet0() { return tempRet0|0; } function _fft_init($N,$sgn) { $N = $N|0; $sgn = $sgn|0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; var $27 = 0, $28 = 0.0, $29 = 0.0, $3 = 0, $30 = 0.0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0.0, $8 = 0, $80 = 0.0; var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $9 = 0, $K = 0, $M = 0, $ct = 0, $obj = 0, $out = 0, $twi_len = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $N; $1 = $sgn; $obj = 0; $2 = $0; $3 = (_dividebyN($2)|0); $out = $3; $4 = $out; $5 = ($4|0)==(1); $6 = $0; if ($5) { $7 = (($6) - 1)|0; $8 = $7<<4; $9 = (288 + ($8))|0; $10 = (_malloc($9)|0); $obj = $10; $11 = $0; $12 = $obj; $13 = ((($12)) + 8|0); $14 = (_factors($11,$13)|0); $15 = $obj; $16 = ((($15)) + 264|0); HEAP32[$16>>2] = $14; $17 = $obj; $18 = ((($17)) + 272|0); $19 = $0; $20 = $obj; $21 = ((($20)) + 8|0); $22 = $obj; $23 = ((($22)) + 264|0); $24 = HEAP32[$23>>2]|0; _longvectorN($18,$19,$21,$24); $25 = $0; $twi_len = $25; $26 = $obj; $27 = ((($26)) + 268|0); HEAP32[$27>>2] = 0; } else { $28 = (+($6|0)); $29 = (+_log10($28)); $30 = (+_log10(2.0)); $31 = $29 / $30; $32 = (+Math_ceil((+$31))); $33 = (+Math_pow(2.0,(+$32))); $34 = (~~(($33))); $K = $34; $35 = $K; $36 = $0; $37 = $36<<1; $38 = (($37) - 2)|0; $39 = ($35|0)<($38|0); $40 = $K; if ($39) { $41 = $40<<1; $M = $41; } else { $M = $40; } $42 = $M; $43 = (($42) - 1)|0; $44 = $43<<4; $45 = (288 + ($44))|0; $46 = (_malloc($45)|0); $obj = $46; $47 = $M; $48 = $obj; $49 = ((($48)) + 8|0); $50 = (_factors($47,$49)|0); $51 = $obj; $52 = ((($51)) + 264|0); HEAP32[$52>>2] = $50; $53 = $obj; $54 = ((($53)) + 272|0); $55 = $M; $56 = $obj; $57 = ((($56)) + 8|0); $58 = $obj; $59 = ((($58)) + 264|0); $60 = HEAP32[$59>>2]|0; _longvectorN($54,$55,$57,$60); $61 = $obj; $62 = ((($61)) + 268|0); HEAP32[$62>>2] = 1; $63 = $M; $twi_len = $63; } $64 = $0; $65 = $obj; HEAP32[$65>>2] = $64; $66 = $1; $67 = $obj; $68 = ((($67)) + 4|0); HEAP32[$68>>2] = $66; $69 = $1; $70 = ($69|0)==(-1); if (!($70)) { $88 = $obj; STACKTOP = sp;return ($88|0); } $ct = 0; while(1) { $71 = $ct; $72 = $twi_len; $73 = ($71|0)<($72|0); if (!($73)) { break; } $74 = $obj; $75 = ((($74)) + 272|0); $76 = $ct; $77 = (($75) + ($76<<4)|0); $78 = ((($77)) + 8|0); $79 = +HEAPF64[$78>>3]; $80 = -$79; $81 = $obj; $82 = ((($81)) + 272|0); $83 = $ct; $84 = (($82) + ($83<<4)|0); $85 = ((($84)) + 8|0); HEAPF64[$85>>3] = $80; $86 = $ct; $87 = (($86) + 1)|0; $ct = $87; } $88 = $obj; STACKTOP = sp;return ($88|0); } function _dividebyN($N) { $N = $N|0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $9 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $1 = $N; while(1) { $2 = $1; $3 = (($2|0) % 53)&-1; $4 = ($3|0)==(0); if (!($4)) { break; } $5 = $1; $6 = (($5|0) / 53)&-1; $1 = $6; } while(1) { $7 = $1; $8 = (($7|0) % 47)&-1; $9 = ($8|0)==(0); if (!($9)) { break; } $10 = $1; $11 = (($10|0) / 47)&-1; $1 = $11; } while(1) { $12 = $1; $13 = (($12|0) % 43)&-1; $14 = ($13|0)==(0); if (!($14)) { break; } $15 = $1; $16 = (($15|0) / 43)&-1; $1 = $16; } while(1) { $17 = $1; $18 = (($17|0) % 41)&-1; $19 = ($18|0)==(0); if (!($19)) { break; } $20 = $1; $21 = (($20|0) / 41)&-1; $1 = $21; } while(1) { $22 = $1; $23 = (($22|0) % 37)&-1; $24 = ($23|0)==(0); if (!($24)) { break; } $25 = $1; $26 = (($25|0) / 37)&-1; $1 = $26; } while(1) { $27 = $1; $28 = (($27|0) % 31)&-1; $29 = ($28|0)==(0); if (!($29)) { break; } $30 = $1; $31 = (($30|0) / 31)&-1; $1 = $31; } while(1) { $32 = $1; $33 = (($32|0) % 29)&-1; $34 = ($33|0)==(0); if (!($34)) { break; } $35 = $1; $36 = (($35|0) / 29)&-1; $1 = $36; } while(1) { $37 = $1; $38 = (($37|0) % 23)&-1; $39 = ($38|0)==(0); if (!($39)) { break; } $40 = $1; $41 = (($40|0) / 23)&-1; $1 = $41; } while(1) { $42 = $1; $43 = (($42|0) % 17)&-1; $44 = ($43|0)==(0); if (!($44)) { break; } $45 = $1; $46 = (($45|0) / 17)&-1; $1 = $46; } while(1) { $47 = $1; $48 = (($47|0) % 13)&-1; $49 = ($48|0)==(0); if (!($49)) { break; } $50 = $1; $51 = (($50|0) / 13)&-1; $1 = $51; } while(1) { $52 = $1; $53 = (($52|0) % 11)&-1; $54 = ($53|0)==(0); if (!($54)) { break; } $55 = $1; $56 = (($55|0) / 11)&-1; $1 = $56; } while(1) { $57 = $1; $58 = (($57|0) % 8)&-1; $59 = ($58|0)==(0); if (!($59)) { break; } $60 = $1; $61 = (($60|0) / 8)&-1; $1 = $61; } while(1) { $62 = $1; $63 = (($62|0) % 7)&-1; $64 = ($63|0)==(0); if (!($64)) { break; } $65 = $1; $66 = (($65|0) / 7)&-1; $1 = $66; } while(1) { $67 = $1; $68 = (($67|0) % 5)&-1; $69 = ($68|0)==(0); if (!($69)) { break; } $70 = $1; $71 = (($70|0) / 5)&-1; $1 = $71; } while(1) { $72 = $1; $73 = (($72|0) % 4)&-1; $74 = ($73|0)==(0); if (!($74)) { break; } $75 = $1; $76 = (($75|0) / 4)&-1; $1 = $76; } while(1) { $77 = $1; $78 = (($77|0) % 3)&-1; $79 = ($78|0)==(0); if (!($79)) { break; } $80 = $1; $81 = (($80|0) / 3)&-1; $1 = $81; } while(1) { $82 = $1; $83 = (($82|0) % 2)&-1; $84 = ($83|0)==(0); $85 = $1; if (!($84)) { break; } $86 = (($85|0) / 2)&-1; $1 = $86; } $87 = ($85|0)==(1); if ($87) { $0 = 1; $88 = $0; STACKTOP = sp;return ($88|0); } else { $0 = 0; $88 = $0; STACKTOP = sp;return ($88|0); } return (0)|0; } function _factors($M,$arr) { $M = $M|0; $arr = $arr|0; var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0; var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0; var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0; var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0; var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0; var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $23 = 0, $24 = 0, $25 = 0; var $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0; var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0; var $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0; var $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0; var $99 = 0, $N = 0, $i = 0, $m1 = 0, $m2 = 0, $mult = 0, $num = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $M; $1 = $arr; $i = 0; $2 = $0; $N = $2; while(1) { $3 = $N; $4 = (($3|0) % 53)&-1; $5 = ($4|0)==(0); if (!($5)) { break; } $6 = $N; $7 = (($6|0) / 53)&-1; $N = $7; $8 = $i; $9 = $1; $10 = (($9) + ($8<<2)|0); HEAP32[$10>>2] = 53; $11 = $i; $12 = (($11) + 1)|0; $i = $12; } while(1) { $13 = $N; $14 = (($13|0) % 47)&-1; $15 = ($14|0)==(0); if (!($15)) { break; } $16 = $N; $17 = (($16|0) / 47)&-1; $N = $17; $18 = $i; $19 = $1; $20 = (($19) + ($18<<2)|0); HEAP32[$20>>2] = 47; $21 = $i; $22 = (($21) + 1)|0; $i = $22; } while(1) { $23 = $N; $24 = (($23|0) % 43)&-1; $25 = ($24|0)==(0); if (!($25)) { break; } $26 = $N; $27 = (($26|0) / 43)&-1; $N = $27; $28 = $i; $29 = $1; $30 = (($29) + ($28<<2)|0); HEAP32[$30>>2] = 43; $31 = $i; $32 = (($31) + 1)|0; $i = $32; } while(1) { $33 = $N; $34 = (($33|0) % 41)&-1; $35 = ($34|0)==(0); if (!($35)) { break; } $36 = $N; $37 = (($36|0) / 41)&-1; $N = $37; $38 = $i; $39 = $1; $40 = (($39) + ($38<<2)|0); HEAP32[$40>>2] = 41; $41 = $i; $42 = (($41) + 1)|0; $i = $42; } while(1) { $43 = $N; $44 = (($43|0) % 37)&-1; $45 = ($44|0)==(0); if (!($45)) { break; } $46 = $N; $47 = (($46|0) / 37)&-1; $N = $47; $48 = $i; $49 = $1; $50 = (($49) + ($48<<2)|0); HEAP32[$50>>2] = 37; $51 = $i; $52 = (($51) + 1)|0; $i = $52; } while(1) { $53 = $N; $54 = (($53|0) % 31)&-1; $55 = ($54|0)==(0); if (!($55)) { break; } $56 = $N; $57 = (($56|0) / 31)&-1; $N = $57; $58 = $i; $59 = $1; $60 = (($59) + ($58<<2)|0); HEAP32[$60>>2] = 31; $61 = $i; $62 = (($61) + 1)|0; $i = $62; } while(1) { $63 = $N; $64 = (($63|0) % 29)&-1; $65 = ($64|0)==(0); if (!($65)) { break; } $66 = $N; $67 = (($66|0) / 29)&-1; $N = $67; $68 = $i; $69 = $1; $70 = (($69) + ($68<<2)|0); HEAP32[$70>>2] = 29; $71 = $i; $72 = (($71) + 1)|0; $i = $72; } while(1) { $73 = $N; $74 = (($73|0) % 23)&-1; $75 = ($74|0)==(0); if (!($75)) { break; } $76 = $N; $77 = (($76|0) / 23)&-1; $N = $77; $78 = $i; $79 = $1; $80 = (($79) + ($78<<2)|0); HEAP32[$80>>2] = 23; $81 = $i; $82 = (($81) + 1)|0; $i = $82; } while(1) { $83 = $N; $84 = (($83|0) % 19)&-1; $85 = ($84|0)==(0); if (!($85)) { break; } $86 = $N; $87 = (($86|0) / 19)&-1; $N = $87; $88 = $i; $89 = $1; $90 = (($89) + ($88<<2)|0); HEAP32[$90>>2] = 19; $91 = $i; $92 = (($91) + 1)|0; $i = $92; } while(1) { $93 = $N; $94 = (($93|0) % 17)&-1; $95 = ($94|0)==(0); if (!($95)) { break; } $96 = $N; $97 = (($96|0) / 17)&-1; $N = $97; $98 = $i; $99 = $1; $100 = (($99) + ($98<<2)|0); HEAP32[$100>>2] = 17; $101 = $i; $102 = (($101) + 1)|0; $i = $102; } while(1) { $103 = $N; $104 = (($103|0) % 13)&-1; $105 = ($104|0)==(0); if (!($105)) { break; } $106 = $N; $107 = (($106|0) / 13)&-1; $N = $107; $108 = $i; $109 = $1; $110 = (($109) + ($108<<2)|0); HEAP32[$110>>2] = 13; $111 = $i; $112 = (($111) + 1)|0; $i = $112; } while(1) { $113 = $N; $114 = (($113|0) % 11)&-1; $115 = ($114|0)==(0); if (!($115)) { break; } $116 = $N; $117 = (($116|0) / 11)&-1; $N = $117; $118 = $i; $119 = $1; $120 = (($119) + ($118<<2)|0); HEAP32[$120>>2] = 11; $121 = $i; $122 = (($121) + 1)|0; $i = $122; } while(1) { $123 = $N; $124 = (($123|0) % 8)&-1; $125 = ($124|0)==(0); if (!($125)) { break; } $126 = $N; $127 = (($126|0) / 8)&-1; $N = $127; $128 = $i; $129 = $1; $130 = (($129) + ($128<<2)|0); HEAP32[$130>>2] = 8; $131 = $i; $132 = (($131) + 1)|0; $i = $132; } while(1) { $133 = $N; $134 = (($133|0) % 7)&-1; $135 = ($134|0)==(0); if (!($135)) { break; } $136 = $N; $137 = (($136|0) / 7)&-1; $N = $137; $138 = $i; $139 = $1; $140 = (($139) + ($138<<2)|0); HEAP32[$140>>2] = 7; $141 = $i; $142 = (($141) + 1)|0; $i = $142; } while(1) { $143 = $N; $144 = (($143|0) % 5)&-1; $145 = ($144|0)==(0); if (!($145)) { break; } $146 = $N; $147 = (($146|0) / 5)&-1; $N = $147; $148 = $i; $149 = $1; $150 = (($149) + ($148<<2)|0); HEAP32[$150>>2] = 5; $151 = $i; $152 = (($151) + 1)|0; $i = $152; } while(1) { $153 = $N; $154 = (($153|0) % 4)&-1; $155 = ($154|0)==(0); if (!($155)) { break; } $156 = $N; $157 = (($156|0) / 4)&-1; $N = $157; $158 = $i; $159 = $1; $160 = (($159) + ($158<<2)|0); HEAP32[$160>>2] = 4; $161 = $i; $162 = (($161) + 1)|0; $i = $162; } while(1) { $163 = $N; $164 = (($163|0) % 3)&-1; $165 = ($164|0)==(0); if (!($165)) { break; } $166 = $N; $167 = (($166|0) / 3)&-1; $N = $167; $168 = $i; $169 = $1; $170 = (($169) + ($168<<2)|0); HEAP32[$170>>2] = 3; $171 = $i; $172 = (($171) + 1)|0; $i = $172; } while(1) { $173 = $N; $174 = (($173|0) % 2)&-1; $175 = ($174|0)==(0); $176 = $N; if (!($175)) { break; } $177 = (($176|0) / 2)&-1; $N = $177; $178 = $i; $179 = $1; $180 = (($179) + ($178<<2)|0); HEAP32[$180>>2] = 2; $181 = $i; $182 = (($181) + 1)|0; $i = $182; } $183 = ($176|0)>(31); if (!($183)) { $220 = $i; STACKTOP = sp;return ($220|0); } $num = 2; while(1) { $184 = $N; $185 = ($184|0)>(1); if (!($185)) { break; } $186 = $num; $187 = ($186*6)|0; $mult = $187; $188 = $mult; $189 = (($188) - 1)|0; $m1 = $189; $190 = $mult; $191 = (($190) + 1)|0; $m2 = $191; while(1) { $192 = $N; $193 = $m1; $194 = (($192|0) % ($193|0))&-1; $195 = ($194|0)==(0); if (!($195)) { break; } $196 = $m1; $197 = $i; $198 = $1; $199 = (($198) + ($197<<2)|0); HEAP32[$199>>2] = $196; $200 = $i; $201 = (($200) + 1)|0; $i = $201; $202 = $N; $203 = $m1; $204 = (($202|0) / ($203|0))&-1; $N = $204; } while(1) { $205 = $N; $206 = $m2; $207 = (($205|0) % ($206|0))&-1; $208 = ($207|0)==(0); if (!($208)) { break; } $209 = $m2; $210 = $i; $211 = $1; $212 = (($211) + ($210<<2)|0); HEAP32[$212>>2] = $209; $213 = $i; $214 = (($213) + 1)|0; $i = $214; $215 = $N; $216 = $m2; $217 = (($215|0) / ($216|0))&-1; $N = $217; } $218 = $num; $219 = (($218) + 1)|0; $num = $219; } $220 = $i; STACKTOP = sp;return ($220|0); } function _longvectorN($sig,$N,$array,$tx) { $sig = $sig|0; $N = $N|0; $array = $array|0; $tx = $tx|0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0.0; var $27 = 0.0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; var $45 = 0.0, $46 = 0.0, $47 = 0.0, $48 = 0.0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $8 = 0, $9 = 0, $L = 0, $Ls = 0, $ct = 0, $i = 0, $j = 0, $k = 0, $theta = 0.0, label = 0; var sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $sig; $1 = $N; $2 = $array; $3 = $tx; $L = 1; $ct = 0; $i = 0; while(1) { $4 = $i; $5 = $3; $6 = ($4|0)<($5|0); if (!($6)) { break; } $7 = $L; $8 = $3; $9 = (($8) - 1)|0; $10 = $i; $11 = (($9) - ($10))|0; $12 = $2; $13 = (($12) + ($11<<2)|0); $14 = HEAP32[$13>>2]|0; $15 = Math_imul($7, $14)|0; $L = $15; $16 = $L; $17 = $3; $18 = (($17) - 1)|0; $19 = $i; $20 = (($18) - ($19))|0; $21 = $2; $22 = (($21) + ($20<<2)|0); $23 = HEAP32[$22>>2]|0; $24 = (($16|0) / ($23|0))&-1; $Ls = $24; $25 = $L; $26 = (+($25|0)); $27 = -6.2831853071795862 / $26; $theta = $27; $j = 0; while(1) { $28 = $j; $29 = $Ls; $30 = ($28|0)<($29|0); if (!($30)) { break; } $k = 0; while(1) { $31 = $k; $32 = $3; $33 = (($32) - 1)|0; $34 = $i; $35 = (($33) - ($34))|0; $36 = $2; $37 = (($36) + ($35<<2)|0); $38 = HEAP32[$37>>2]|0; $39 = (($38) - 1)|0; $40 = ($31|0)<($39|0); if (!($40)) { break; } $41 = $k; $42 = (($41) + 1)|0; $43 = $j; $44 = Math_imul($42, $43)|0; $45 = (+($44|0)); $46 = $theta; $47 = $45 * $46; $48 = (+Math_cos((+$47))); $49 = $ct; $50 = $0; $51 = (($50) + ($49<<4)|0); HEAPF64[$51>>3] = $48; $52 = $k; $53 = (($52) + 1)|0; $54 = $j; $55 = Math_imul($53, $54)|0; $56 = (+($55|0)); $57 = $theta; $58 = $56 * $57; $59 = (+Math_sin((+$58))); $60 = $ct; $61 = $0; $62 = (($61) + ($60<<4)|0); $63 = ((($62)) + 8|0); HEAPF64[$63>>3] = $59; $64 = $ct; $65 = (($64) + 1)|0; $ct = $65; $66 = $k; $67 = (($66) + 1)|0; $k = $67; } $68 = $j; $69 = (($68) + 1)|0; $j = $69; } $70 = $i; $71 = (($70) + 1)|0; $i = $71; } STACKTOP = sp;return; } function _fft_exec($obj,$inp,$oup) { $obj = $obj|0; $inp = $inp|0; $oup = $oup|0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $inc = 0, $l = 0, $nn = 0, $nn1 = 0, $sgn1 = 0, $sgn12 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $obj; $1 = $inp; $2 = $oup; $3 = $0; $4 = ((($3)) + 268|0); $5 = HEAP32[$4>>2]|0; $6 = ($5|0)==(0); $7 = $0; if ($6) { $8 = HEAP32[$7>>2]|0; $nn = $8; $9 = $0; $10 = ((($9)) + 4|0); $11 = HEAP32[$10>>2]|0; $sgn1 = $11; $l = 1; $inc = 0; $12 = $2; $13 = $1; $14 = $0; $15 = $sgn1; $16 = $nn; $17 = $l; $18 = $inc; _mixed_radix_dit_rec($12,$13,$14,$15,$16,$17,$18); STACKTOP = sp;return; } $19 = ((($7)) + 268|0); $20 = HEAP32[$19>>2]|0; $21 = ($20|0)==(1); if (!($21)) { STACKTOP = sp;return; } $22 = $0; $23 = HEAP32[$22>>2]|0; $nn1 = $23; $24 = $0; $25 = ((($24)) + 4|0); $26 = HEAP32[$25>>2]|0; $sgn12 = $26; $27 = $1; $28 = $2; $29 = $0; $30 = $sgn12; $31 = $nn1; _bluestein_fft($27,$28,$29,$30,$31); STACKTOP = sp;return; } function _mixed_radix_dit_rec($op,$ip,$obj,$sgn,$N,$l,$inc) { $op = $op|0; $ip = $ip|0; $obj = $obj|0; $sgn = $sgn|0; $N = $N|0; $l = $l|0; $inc = $inc|0; var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $1000 = 0, $1001 = 0, $1002 = 0.0, $1003 = 0.0, $1004 = 0.0, $1005 = 0.0, $1006 = 0.0, $1007 = 0.0, $1008 = 0.0, $1009 = 0.0, $101 = 0, $1010 = 0.0, $1011 = 0.0, $1012 = 0.0, $1013 = 0.0, $1014 = 0.0; var $1015 = 0.0, $1016 = 0.0, $1017 = 0.0, $1018 = 0.0, $1019 = 0.0, $102 = 0, $1020 = 0.0, $1021 = 0.0, $1022 = 0.0, $1023 = 0.0, $1024 = 0.0, $1025 = 0.0, $1026 = 0.0, $1027 = 0.0, $1028 = 0.0, $1029 = 0.0, $103 = 0.0, $1030 = 0.0, $1031 = 0.0, $1032 = 0.0; var $1033 = 0.0, $1034 = 0.0, $1035 = 0.0, $1036 = 0.0, $1037 = 0.0, $1038 = 0.0, $1039 = 0.0, $104 = 0, $1040 = 0.0, $1041 = 0.0, $1042 = 0.0, $1043 = 0.0, $1044 = 0.0, $1045 = 0.0, $1046 = 0.0, $1047 = 0.0, $1048 = 0.0, $1049 = 0.0, $105 = 0, $1050 = 0; var $1051 = 0, $1052 = 0.0, $1053 = 0.0, $1054 = 0.0, $1055 = 0, $1056 = 0, $1057 = 0.0, $1058 = 0.0, $1059 = 0.0, $106 = 0, $1060 = 0, $1061 = 0, $1062 = 0, $1063 = 0.0, $1064 = 0.0, $1065 = 0.0, $1066 = 0, $1067 = 0, $1068 = 0, $1069 = 0; var $107 = 0, $1070 = 0.0, $1071 = 0.0, $1072 = 0.0, $1073 = 0.0, $1074 = 0.0, $1075 = 0.0, $1076 = 0.0, $1077 = 0.0, $1078 = 0.0, $1079 = 0.0, $108 = 0, $1080 = 0.0, $1081 = 0.0, $1082 = 0.0, $1083 = 0, $1084 = 0, $1085 = 0.0, $1086 = 0.0, $1087 = 0.0; var $1088 = 0.0, $1089 = 0.0, $109 = 0, $1090 = 0.0, $1091 = 0.0, $1092 = 0.0, $1093 = 0.0, $1094 = 0.0, $1095 = 0.0, $1096 = 0.0, $1097 = 0.0, $1098 = 0, $1099 = 0, $11 = 0, $110 = 0, $1100 = 0.0, $1101 = 0.0, $1102 = 0.0, $1103 = 0.0, $1104 = 0.0; var $1105 = 0.0, $1106 = 0.0, $1107 = 0.0, $1108 = 0.0, $1109 = 0.0, $111 = 0.0, $1110 = 0.0, $1111 = 0.0, $1112 = 0.0, $1113 = 0.0, $1114 = 0.0, $1115 = 0.0, $1116 = 0.0, $1117 = 0.0, $1118 = 0.0, $1119 = 0.0, $112 = 0, $1120 = 0.0, $1121 = 0.0, $1122 = 0.0; var $1123 = 0.0, $1124 = 0.0, $1125 = 0.0, $1126 = 0.0, $1127 = 0.0, $1128 = 0.0, $1129 = 0.0, $113 = 0, $1130 = 0.0, $1131 = 0.0, $1132 = 0.0, $1133 = 0.0, $1134 = 0.0, $1135 = 0.0, $1136 = 0.0, $1137 = 0.0, $1138 = 0.0, $1139 = 0.0, $114 = 0, $1140 = 0.0; var $1141 = 0.0, $1142 = 0.0, $1143 = 0.0, $1144 = 0.0, $1145 = 0.0, $1146 = 0.0, $1147 = 0.0, $1148 = 0, $1149 = 0, $115 = 0, $1150 = 0.0, $1151 = 0.0, $1152 = 0.0, $1153 = 0, $1154 = 0, $1155 = 0.0, $1156 = 0.0, $1157 = 0.0, $1158 = 0, $1159 = 0; var $116 = 0, $1160 = 0, $1161 = 0.0, $1162 = 0.0, $1163 = 0.0, $1164 = 0, $1165 = 0, $1166 = 0, $1167 = 0.0, $1168 = 0.0, $1169 = 0.0, $117 = 0, $1170 = 0.0, $1171 = 0.0, $1172 = 0, $1173 = 0.0, $1174 = 0.0, $1175 = 0.0, $1176 = 0.0, $1177 = 0.0; var $1178 = 0.0, $1179 = 0.0, $118 = 0, $1180 = 0, $1181 = 0, $1182 = 0.0, $1183 = 0.0, $1184 = 0, $1185 = 0, $1186 = 0, $1187 = 0.0, $1188 = 0, $1189 = 0, $119 = 0.0, $1190 = 0, $1191 = 0.0, $1192 = 0, $1193 = 0, $1194 = 0, $1195 = 0; var $1196 = 0, $1197 = 0.0, $1198 = 0, $1199 = 0, $12 = 0, $120 = 0, $1200 = 0, $1201 = 0, $1202 = 0, $1203 = 0, $1204 = 0.0, $1205 = 0, $1206 = 0, $1207 = 0, $1208 = 0, $1209 = 0, $121 = 0, $1210 = 0, $1211 = 0, $1212 = 0.0; var $1213 = 0, $1214 = 0, $1215 = 0, $1216 = 0, $1217 = 0, $1218 = 0, $1219 = 0, $122 = 0, $1220 = 0.0, $1221 = 0, $1222 = 0, $1223 = 0, $1224 = 0, $1225 = 0, $1226 = 0, $1227 = 0, $1228 = 0.0, $1229 = 0, $123 = 0, $1230 = 0; var $1231 = 0, $1232 = 0, $1233 = 0, $1234 = 0, $1235 = 0, $1236 = 0.0, $1237 = 0, $1238 = 0, $1239 = 0, $124 = 0, $1240 = 0, $1241 = 0, $1242 = 0, $1243 = 0, $1244 = 0.0, $1245 = 0, $1246 = 0, $1247 = 0, $1248 = 0, $1249 = 0; var $125 = 0.0, $1250 = 0, $1251 = 0, $1252 = 0.0, $1253 = 0, $1254 = 0, $1255 = 0, $1256 = 0, $1257 = 0, $1258 = 0, $1259 = 0, $126 = 0, $1260 = 0.0, $1261 = 0, $1262 = 0, $1263 = 0, $1264 = 0, $1265 = 0, $1266 = 0, $1267 = 0; var $1268 = 0.0, $1269 = 0, $127 = 0, $1270 = 0, $1271 = 0, $1272 = 0, $1273 = 0, $1274 = 0, $1275 = 0, $1276 = 0.0, $1277 = 0, $1278 = 0, $1279 = 0, $128 = 0.0, $1280 = 0, $1281 = 0, $1282 = 0, $1283 = 0, $1284 = 0.0, $1285 = 0; var $1286 = 0, $1287 = 0, $1288 = 0, $1289 = 0, $129 = 0.0, $1290 = 0, $1291 = 0, $1292 = 0.0, $1293 = 0, $1294 = 0, $1295 = 0, $1296 = 0, $1297 = 0, $1298 = 0, $1299 = 0, $13 = 0, $130 = 0, $1300 = 0.0, $1301 = 0, $1302 = 0; var $1303 = 0, $1304 = 0, $1305 = 0.0, $1306 = 0, $1307 = 0, $1308 = 0.0, $1309 = 0.0, $131 = 0, $1310 = 0, $1311 = 0.0, $1312 = 0, $1313 = 0, $1314 = 0.0, $1315 = 0.0, $1316 = 0, $1317 = 0, $1318 = 0.0, $1319 = 0, $132 = 0, $1320 = 0; var $1321 = 0, $1322 = 0.0, $1323 = 0.0, $1324 = 0, $1325 = 0, $1326 = 0.0, $1327 = 0, $1328 = 0, $1329 = 0, $133 = 0.0, $1330 = 0.0, $1331 = 0.0, $1332 = 0, $1333 = 0, $1334 = 0.0, $1335 = 0, $1336 = 0, $1337 = 0.0, $1338 = 0.0, $1339 = 0; var $134 = 0, $1340 = 0, $1341 = 0.0, $1342 = 0, $1343 = 0, $1344 = 0.0, $1345 = 0.0, $1346 = 0, $1347 = 0, $1348 = 0, $1349 = 0.0, $135 = 0, $1350 = 0, $1351 = 0, $1352 = 0, $1353 = 0.0, $1354 = 0.0, $1355 = 0, $1356 = 0, $1357 = 0; var $1358 = 0.0, $1359 = 0, $136 = 0, $1360 = 0, $1361 = 0, $1362 = 0.0, $1363 = 0.0, $1364 = 0, $1365 = 0, $1366 = 0.0, $1367 = 0, $1368 = 0, $1369 = 0.0, $137 = 0.0, $1370 = 0.0, $1371 = 0, $1372 = 0, $1373 = 0.0, $1374 = 0, $1375 = 0; var $1376 = 0.0, $1377 = 0.0, $1378 = 0, $1379 = 0, $138 = 0.0, $1380 = 0, $1381 = 0.0, $1382 = 0, $1383 = 0, $1384 = 0, $1385 = 0.0, $1386 = 0.0, $1387 = 0, $1388 = 0, $1389 = 0, $139 = 0, $1390 = 0.0, $1391 = 0, $1392 = 0, $1393 = 0; var $1394 = 0.0, $1395 = 0.0, $1396 = 0, $1397 = 0, $1398 = 0.0, $1399 = 0, $14 = 0, $140 = 0.0, $1400 = 0, $1401 = 0.0, $1402 = 0.0, $1403 = 0, $1404 = 0, $1405 = 0.0, $1406 = 0, $1407 = 0, $1408 = 0.0, $1409 = 0.0, $141 = 0.0, $1410 = 0; var $1411 = 0, $1412 = 0, $1413 = 0.0, $1414 = 0, $1415 = 0, $1416 = 0, $1417 = 0.0, $1418 = 0.0, $1419 = 0, $142 = 0, $1420 = 0, $1421 = 0, $1422 = 0.0, $1423 = 0, $1424 = 0, $1425 = 0, $1426 = 0.0, $1427 = 0.0, $1428 = 0.0, $1429 = 0.0; var $143 = 0, $1430 = 0.0, $1431 = 0.0, $1432 = 0.0, $1433 = 0.0, $1434 = 0.0, $1435 = 0, $1436 = 0.0, $1437 = 0.0, $1438 = 0.0, $1439 = 0.0, $144 = 0.0, $1440 = 0.0, $1441 = 0.0, $1442 = 0.0, $1443 = 0, $1444 = 0, $1445 = 0.0, $1446 = 0.0, $1447 = 0.0; var $1448 = 0.0, $1449 = 0.0, $145 = 0, $1450 = 0.0, $1451 = 0.0, $1452 = 0, $1453 = 0, $1454 = 0.0, $1455 = 0.0, $1456 = 0.0, $1457 = 0.0, $1458 = 0.0, $1459 = 0.0, $146 = 0, $1460 = 0.0, $1461 = 0, $1462 = 0, $1463 = 0, $1464 = 0.0, $1465 = 0.0; var $1466 = 0.0, $1467 = 0.0, $1468 = 0.0, $1469 = 0.0, $147 = 0.0, $1470 = 0.0, $1471 = 0.0, $1472 = 0.0, $1473 = 0.0, $1474 = 0.0, $1475 = 0.0, $1476 = 0.0, $1477 = 0.0, $1478 = 0.0, $1479 = 0.0, $148 = 0.0, $1480 = 0.0, $1481 = 0.0, $1482 = 0.0, $1483 = 0.0; var $1484 = 0.0, $1485 = 0.0, $1486 = 0, $1487 = 0, $1488 = 0.0, $1489 = 0.0, $149 = 0.0, $1490 = 0.0, $1491 = 0.0, $1492 = 0.0, $1493 = 0.0, $1494 = 0.0, $1495 = 0.0, $1496 = 0.0, $1497 = 0.0, $1498 = 0.0, $1499 = 0.0, $15 = 0, $150 = 0, $1500 = 0.0; var $1501 = 0.0, $1502 = 0.0, $1503 = 0.0, $1504 = 0.0, $1505 = 0.0, $1506 = 0.0, $1507 = 0.0, $1508 = 0.0, $1509 = 0.0, $151 = 0.0, $1510 = 0.0, $1511 = 0.0, $1512 = 0, $1513 = 0, $1514 = 0.0, $1515 = 0.0, $1516 = 0.0, $1517 = 0, $1518 = 0, $1519 = 0; var $152 = 0.0, $1520 = 0.0, $1521 = 0.0, $1522 = 0.0, $1523 = 0, $1524 = 0, $1525 = 0.0, $1526 = 0.0, $1527 = 0.0, $1528 = 0, $1529 = 0, $153 = 0, $1530 = 0, $1531 = 0.0, $1532 = 0.0, $1533 = 0.0, $1534 = 0.0, $1535 = 0.0, $1536 = 0.0, $1537 = 0; var $1538 = 0, $1539 = 0.0, $154 = 0, $1540 = 0.0, $1541 = 0.0, $1542 = 0.0, $1543 = 0.0, $1544 = 0.0, $1545 = 0.0, $1546 = 0.0, $1547 = 0.0, $1548 = 0.0, $1549 = 0.0, $155 = 0, $1550 = 0.0, $1551 = 0.0, $1552 = 0.0, $1553 = 0.0, $1554 = 0.0, $1555 = 0; var $1556 = 0, $1557 = 0.0, $1558 = 0.0, $1559 = 0.0, $156 = 0.0, $1560 = 0, $1561 = 0, $1562 = 0, $1563 = 0.0, $1564 = 0.0, $1565 = 0.0, $1566 = 0, $1567 = 0, $1568 = 0.0, $1569 = 0.0, $157 = 0, $1570 = 0.0, $1571 = 0, $1572 = 0, $1573 = 0; var $1574 = 0.0, $1575 = 0.0, $1576 = 0.0, $1577 = 0.0, $1578 = 0.0, $1579 = 0.0, $158 = 0, $1580 = 0.0, $1581 = 0.0, $1582 = 0.0, $1583 = 0.0, $1584 = 0, $1585 = 0, $1586 = 0.0, $1587 = 0.0, $1588 = 0.0, $1589 = 0.0, $159 = 0, $1590 = 0.0, $1591 = 0.0; var $1592 = 0.0, $1593 = 0.0, $1594 = 0.0, $1595 = 0.0, $1596 = 0.0, $1597 = 0.0, $1598 = 0.0, $1599 = 0.0, $16 = 0, $160 = 0.0, $1600 = 0.0, $1601 = 0.0, $1602 = 0.0, $1603 = 0.0, $1604 = 0.0, $1605 = 0.0, $1606 = 0.0, $1607 = 0.0, $1608 = 0.0, $1609 = 0.0; var $161 = 0.0, $1610 = 0, $1611 = 0, $1612 = 0.0, $1613 = 0.0, $1614 = 0.0, $1615 = 0, $1616 = 0, $1617 = 0, $1618 = 0.0, $1619 = 0.0, $162 = 0.0, $1620 = 0.0, $1621 = 0, $1622 = 0, $1623 = 0.0, $1624 = 0.0, $1625 = 0.0, $1626 = 0, $1627 = 0; var $1628 = 0, $1629 = 0, $163 = 0, $1630 = 0, $1631 = 0, $1632 = 0, $1633 = 0, $1634 = 0, $1635 = 0, $1636 = 0, $1637 = 0, $1638 = 0, $1639 = 0, $164 = 0.0, $1640 = 0, $1641 = 0, $1642 = 0, $1643 = 0, $1644 = 0, $1645 = 0; var $1646 = 0, $1647 = 0, $1648 = 0, $1649 = 0, $165 = 0.0, $1650 = 0, $1651 = 0, $1652 = 0, $1653 = 0, $1654 = 0, $1655 = 0, $1656 = 0, $1657 = 0, $1658 = 0, $1659 = 0, $166 = 0.0, $1660 = 0, $1661 = 0, $1662 = 0, $1663 = 0; var $1664 = 0, $1665 = 0, $1666 = 0.0, $1667 = 0, $1668 = 0, $1669 = 0, $167 = 0.0, $1670 = 0, $1671 = 0, $1672 = 0.0, $1673 = 0, $1674 = 0, $1675 = 0, $1676 = 0, $1677 = 0, $1678 = 0, $1679 = 0.0, $168 = 0, $1680 = 0, $1681 = 0; var $1682 = 0, $1683 = 0, $1684 = 0.0, $1685 = 0, $1686 = 0, $1687 = 0, $1688 = 0.0, $1689 = 0.0, $169 = 0, $1690 = 0.0, $1691 = 0, $1692 = 0, $1693 = 0, $1694 = 0, $1695 = 0.0, $1696 = 0.0, $1697 = 0.0, $1698 = 0.0, $1699 = 0, $17 = 0.0; var $170 = 0.0, $1700 = 0, $1701 = 0, $1702 = 0, $1703 = 0.0, $1704 = 0.0, $1705 = 0.0, $1706 = 0, $1707 = 0, $1708 = 0, $1709 = 0.0, $171 = 0.0, $1710 = 0.0, $1711 = 0.0, $1712 = 0.0, $1713 = 0.0, $1714 = 0.0, $1715 = 0.0, $1716 = 0, $1717 = 0; var $1718 = 0, $1719 = 0.0, $172 = 0.0, $1720 = 0.0, $1721 = 0.0, $1722 = 0, $1723 = 0, $1724 = 0, $1725 = 0, $1726 = 0.0, $1727 = 0.0, $1728 = 0.0, $1729 = 0, $173 = 0.0, $1730 = 0, $1731 = 0, $1732 = 0.0, $1733 = 0.0, $1734 = 0.0, $1735 = 0; var $1736 = 0, $1737 = 0, $1738 = 0, $1739 = 0, $174 = 0.0, $1740 = 0, $1741 = 0, $1742 = 0, $1743 = 0, $1744 = 0, $1745 = 0, $1746 = 0, $1747 = 0, $1748 = 0, $1749 = 0, $175 = 0, $1750 = 0, $1751 = 0, $1752 = 0, $1753 = 0; var $1754 = 0, $1755 = 0, $1756 = 0, $1757 = 0, $1758 = 0, $1759 = 0, $176 = 0.0, $1760 = 0, $1761 = 0, $1762 = 0, $1763 = 0, $1764 = 0, $1765 = 0, $1766 = 0, $1767 = 0, $1768 = 0, $1769 = 0, $177 = 0.0, $1770 = 0, $1771 = 0; var $1772 = 0, $1773 = 0, $1774 = 0, $1775 = 0, $1776 = 0, $1777 = 0, $1778 = 0, $1779 = 0, $178 = 0, $1780 = 0, $1781 = 0, $1782 = 0, $1783 = 0, $1784 = 0, $1785 = 0, $1786 = 0, $1787 = 0, $1788 = 0, $1789 = 0, $179 = 0.0; var $1790 = 0, $1791 = 0, $1792 = 0, $1793 = 0.0, $1794 = 0, $1795 = 0, $1796 = 0, $1797 = 0, $1798 = 0, $1799 = 0.0, $18 = 0, $180 = 0, $1800 = 0, $1801 = 0, $1802 = 0, $1803 = 0, $1804 = 0, $1805 = 0, $1806 = 0.0, $1807 = 0; var $1808 = 0, $1809 = 0, $181 = 0, $1810 = 0, $1811 = 0, $1812 = 0.0, $1813 = 0, $1814 = 0, $1815 = 0, $1816 = 0, $1817 = 0, $1818 = 0, $1819 = 0, $182 = 0.0, $1820 = 0, $1821 = 0, $1822 = 0.0, $1823 = 0, $1824 = 0, $1825 = 0; var $1826 = 0, $1827 = 0.0, $1828 = 0, $1829 = 0, $183 = 0.0, $1830 = 0, $1831 = 0.0, $1832 = 0.0, $1833 = 0.0, $1834 = 0, $1835 = 0, $1836 = 0, $1837 = 0, $1838 = 0.0, $1839 = 0.0, $184 = 0, $1840 = 0.0, $1841 = 0.0, $1842 = 0, $1843 = 0; var $1844 = 0, $1845 = 0, $1846 = 0.0, $1847 = 0.0, $1848 = 0.0, $1849 = 0, $185 = 0, $1850 = 0, $1851 = 0, $1852 = 0.0, $1853 = 0.0, $1854 = 0.0, $1855 = 0.0, $1856 = 0, $1857 = 0, $1858 = 0, $1859 = 0.0, $186 = 0.0, $1860 = 0.0, $1861 = 0.0; var $1862 = 0, $1863 = 0, $1864 = 0, $1865 = 0, $1866 = 0.0, $1867 = 0.0, $1868 = 0.0, $1869 = 0.0, $187 = 0.0, $1870 = 0, $1871 = 0, $1872 = 0, $1873 = 0, $1874 = 0.0, $1875 = 0.0, $1876 = 0.0, $1877 = 0, $1878 = 0, $1879 = 0, $188 = 0.0; var $1880 = 0.0, $1881 = 0.0, $1882 = 0.0, $1883 = 0.0, $1884 = 0.0, $1885 = 0.0, $1886 = 0.0, $1887 = 0.0, $1888 = 0.0, $1889 = 0.0, $189 = 0, $1890 = 0, $1891 = 0.0, $1892 = 0.0, $1893 = 0.0, $1894 = 0.0, $1895 = 0.0, $1896 = 0.0, $1897 = 0, $1898 = 0.0; var $1899 = 0.0, $19 = 0, $190 = 0, $1900 = 0.0, $1901 = 0.0, $1902 = 0.0, $1903 = 0.0, $1904 = 0.0, $1905 = 0.0, $1906 = 0.0, $1907 = 0.0, $1908 = 0.0, $1909 = 0.0, $191 = 0.0, $1910 = 0.0, $1911 = 0.0, $1912 = 0.0, $1913 = 0.0, $1914 = 0.0, $1915 = 0; var $1916 = 0, $1917 = 0, $1918 = 0.0, $1919 = 0.0, $192 = 0.0, $1920 = 0.0, $1921 = 0, $1922 = 0, $1923 = 0, $1924 = 0, $1925 = 0.0, $1926 = 0.0, $1927 = 0.0, $1928 = 0, $1929 = 0, $193 = 0.0, $1930 = 0, $1931 = 0.0, $1932 = 0.0, $1933 = 0.0; var $1934 = 0, $1935 = 0, $1936 = 0, $1937 = 0, $1938 = 0.0, $1939 = 0.0, $194 = 0, $1940 = 0.0, $1941 = 0, $1942 = 0, $1943 = 0, $1944 = 0.0, $1945 = 0.0, $1946 = 0.0, $1947 = 0, $1948 = 0, $1949 = 0, $195 = 0, $1950 = 0, $1951 = 0; var $1952 = 0, $1953 = 0, $1954 = 0, $1955 = 0, $1956 = 0, $1957 = 0, $1958 = 0, $1959 = 0, $196 = 0, $1960 = 0, $1961 = 0, $1962 = 0, $1963 = 0, $1964 = 0, $1965 = 0, $1966 = 0, $1967 = 0, $1968 = 0, $1969 = 0, $197 = 0.0; var $1970 = 0, $1971 = 0, $1972 = 0, $1973 = 0, $1974 = 0, $1975 = 0, $1976 = 0, $1977 = 0, $1978 = 0, $1979 = 0, $198 = 0.0, $1980 = 0, $1981 = 0, $1982 = 0, $1983 = 0, $1984 = 0, $1985 = 0, $1986 = 0, $1987 = 0, $1988 = 0; var $1989 = 0, $199 = 0.0, $1990 = 0, $1991 = 0, $1992 = 0, $1993 = 0, $1994 = 0, $1995 = 0, $1996 = 0, $1997 = 0, $1998 = 0, $1999 = 0, $2 = 0, $20 = 0, $200 = 0, $2000 = 0, $2001 = 0, $2002 = 0, $2003 = 0, $2004 = 0; var $2005 = 0, $2006 = 0, $2007 = 0, $2008 = 0, $2009 = 0, $201 = 0, $2010 = 0, $2011 = 0, $2012 = 0, $2013 = 0, $2014 = 0, $2015 = 0.0, $2016 = 0, $2017 = 0, $2018 = 0.0, $2019 = 0, $202 = 0.0, $2020 = 0, $2021 = 0, $2022 = 0.0; var $2023 = 0, $2024 = 0, $2025 = 0, $2026 = 0, $2027 = 0.0, $2028 = 0, $2029 = 0, $203 = 0.0, $2030 = 0, $2031 = 0.0, $2032 = 0, $2033 = 0, $2034 = 0, $2035 = 0, $2036 = 0.0, $2037 = 0, $2038 = 0, $2039 = 0, $204 = 0.0, $2040 = 0.0; var $2041 = 0, $2042 = 0, $2043 = 0, $2044 = 0, $2045 = 0.0, $2046 = 0.0, $2047 = 0.0, $2048 = 0.0, $2049 = 0.0, $205 = 0, $2050 = 0.0, $2051 = 0.0, $2052 = 0.0, $2053 = 0.0, $2054 = 0.0, $2055 = 0.0, $2056 = 0.0, $2057 = 0.0, $2058 = 0.0, $2059 = 0.0; var $206 = 0, $2060 = 0.0, $2061 = 0.0, $2062 = 0.0, $2063 = 0.0, $2064 = 0, $2065 = 0.0, $2066 = 0.0, $2067 = 0.0, $2068 = 0.0, $2069 = 0.0, $207 = 0, $2070 = 0, $2071 = 0.0, $2072 = 0.0, $2073 = 0.0, $2074 = 0.0, $2075 = 0.0, $2076 = 0.0, $2077 = 0.0; var $2078 = 0.0, $2079 = 0, $208 = 0, $2080 = 0.0, $2081 = 0.0, $2082 = 0.0, $2083 = 0, $2084 = 0, $2085 = 0.0, $2086 = 0.0, $2087 = 0.0, $2088 = 0, $2089 = 0, $209 = 0, $2090 = 0, $2091 = 0.0, $2092 = 0.0, $2093 = 0.0, $2094 = 0, $2095 = 0; var $2096 = 0, $2097 = 0, $2098 = 0.0, $2099 = 0.0, $21 = 0.0, $210 = 0, $2100 = 0.0, $2101 = 0, $2102 = 0, $2103 = 0, $2104 = 0.0, $2105 = 0.0, $2106 = 0.0, $2107 = 0, $2108 = 0, $2109 = 0, $211 = 0.0, $2110 = 0, $2111 = 0.0, $2112 = 0.0; var $2113 = 0.0, $2114 = 0, $2115 = 0, $2116 = 0, $2117 = 0.0, $2118 = 0.0, $2119 = 0.0, $212 = 0, $2120 = 0, $2121 = 0, $2122 = 0, $2123 = 0, $2124 = 0, $2125 = 0, $2126 = 0, $2127 = 0, $2128 = 0, $2129 = 0, $213 = 0, $2130 = 0; var $2131 = 0, $2132 = 0, $2133 = 0, $2134 = 0, $2135 = 0, $2136 = 0.0, $2137 = 0, $2138 = 0, $2139 = 0, $214 = 0, $2140 = 0, $2141 = 0, $2142 = 0.0, $2143 = 0, $2144 = 0, $2145 = 0, $2146 = 0, $2147 = 0, $2148 = 0, $2149 = 0.0; var $215 = 0.0, $2150 = 0, $2151 = 0, $2152 = 0, $2153 = 0, $2154 = 0, $2155 = 0.0, $2156 = 0, $2157 = 0, $2158 = 0, $2159 = 0, $216 = 0, $2160 = 0, $2161 = 0, $2162 = 0.0, $2163 = 0, $2164 = 0, $2165 = 0, $2166 = 0, $2167 = 0; var $2168 = 0.0, $2169 = 0, $217 = 0, $2170 = 0, $2171 = 0, $2172 = 0, $2173 = 0, $2174 = 0, $2175 = 0, $2176 = 0, $2177 = 0, $2178 = 0, $2179 = 0, $218 = 0, $2180 = 0, $2181 = 0.0, $2182 = 0, $2183 = 0, $2184 = 0, $2185 = 0; var $2186 = 0.0, $2187 = 0, $2188 = 0, $2189 = 0, $219 = 0, $2190 = 0.0, $2191 = 0.0, $2192 = 0.0, $2193 = 0, $2194 = 0, $2195 = 0, $2196 = 0, $2197 = 0.0, $2198 = 0.0, $2199 = 0.0, $22 = 0, $220 = 0, $2200 = 0.0, $2201 = 0, $2202 = 0; var $2203 = 0, $2204 = 0, $2205 = 0.0, $2206 = 0.0, $2207 = 0.0, $2208 = 0, $2209 = 0, $221 = 0.0, $2210 = 0, $2211 = 0.0, $2212 = 0.0, $2213 = 0.0, $2214 = 0.0, $2215 = 0, $2216 = 0, $2217 = 0, $2218 = 0.0, $2219 = 0.0, $222 = 0, $2220 = 0.0; var $2221 = 0, $2222 = 0, $2223 = 0, $2224 = 0, $2225 = 0.0, $2226 = 0.0, $2227 = 0.0, $2228 = 0.0, $2229 = 0, $223 = 0, $2230 = 0, $2231 = 0, $2232 = 0, $2233 = 0.0, $2234 = 0.0, $2235 = 0.0, $2236 = 0, $2237 = 0, $2238 = 0, $2239 = 0.0; var $224 = 0, $2240 = 0.0, $2241 = 0.0, $2242 = 0.0, $2243 = 0, $2244 = 0, $2245 = 0, $2246 = 0.0, $2247 = 0.0, $2248 = 0.0, $2249 = 0, $225 = 0, $2250 = 0, $2251 = 0, $2252 = 0, $2253 = 0.0, $2254 = 0.0, $2255 = 0.0, $2256 = 0.0, $2257 = 0; var $2258 = 0, $2259 = 0, $226 = 0, $2260 = 0, $2261 = 0.0, $2262 = 0.0, $2263 = 0.0, $2264 = 0, $2265 = 0, $2266 = 0, $2267 = 0.0, $2268 = 0.0, $2269 = 0.0, $227 = 0, $2270 = 0.0, $2271 = 0.0, $2272 = 0.0, $2273 = 0.0, $2274 = 0.0, $2275 = 0.0; var $2276 = 0.0, $2277 = 0.0, $2278 = 0.0, $2279 = 0.0, $228 = 0.0, $2280 = 0.0, $2281 = 0.0, $2282 = 0.0, $2283 = 0.0, $2284 = 0.0, $2285 = 0.0, $2286 = 0.0, $2287 = 0.0, $2288 = 0.0, $2289 = 0, $229 = 0, $2290 = 0.0, $2291 = 0.0, $2292 = 0.0, $2293 = 0.0; var $2294 = 0.0, $2295 = 0, $2296 = 0.0, $2297 = 0.0, $2298 = 0.0, $2299 = 0.0, $23 = 0, $230 = 0, $2300 = 0.0, $2301 = 0.0, $2302 = 0.0, $2303 = 0.0, $2304 = 0, $2305 = 0, $2306 = 0, $2307 = 0.0, $2308 = 0.0, $2309 = 0.0, $231 = 0, $2310 = 0; var $2311 = 0, $2312 = 0, $2313 = 0, $2314 = 0.0, $2315 = 0.0, $2316 = 0.0, $2317 = 0, $2318 = 0, $2319 = 0, $232 = 0, $2320 = 0.0, $2321 = 0.0, $2322 = 0.0, $2323 = 0, $2324 = 0, $2325 = 0, $2326 = 0, $2327 = 0.0, $2328 = 0.0, $2329 = 0.0; var $233 = 0, $2330 = 0, $2331 = 0, $2332 = 0, $2333 = 0.0, $2334 = 0.0, $2335 = 0.0, $2336 = 0, $2337 = 0, $2338 = 0, $2339 = 0, $234 = 0, $2340 = 0.0, $2341 = 0.0, $2342 = 0.0, $2343 = 0, $2344 = 0, $2345 = 0, $2346 = 0.0, $2347 = 0.0; var $2348 = 0.0, $2349 = 0, $235 = 0, $2350 = 0, $2351 = 0, $2352 = 0, $2353 = 0, $2354 = 0, $2355 = 0, $2356 = 0, $2357 = 0, $2358 = 0, $2359 = 0, $236 = 0.0, $2360 = 0, $2361 = 0, $2362 = 0, $2363 = 0, $2364 = 0, $2365 = 0; var $2366 = 0, $2367 = 0, $2368 = 0, $2369 = 0, $237 = 0, $2370 = 0, $2371 = 0, $2372 = 0, $2373 = 0, $2374 = 0, $2375 = 0, $2376 = 0, $2377 = 0, $2378 = 0, $2379 = 0, $238 = 0, $2380 = 0, $2381 = 0, $2382 = 0, $2383 = 0; var $2384 = 0, $2385 = 0, $2386 = 0, $2387 = 0, $2388 = 0, $2389 = 0, $239 = 0, $2390 = 0, $2391 = 0, $2392 = 0, $2393 = 0, $2394 = 0, $2395 = 0, $2396 = 0, $2397 = 0, $2398 = 0, $2399 = 0, $24 = 0, $240 = 0, $2400 = 0; var $2401 = 0, $2402 = 0, $2403 = 0, $2404 = 0, $2405 = 0, $2406 = 0, $2407 = 0, $2408 = 0, $2409 = 0, $241 = 0, $2410 = 0, $2411 = 0, $2412 = 0, $2413 = 0, $2414 = 0, $2415 = 0, $2416 = 0, $2417 = 0, $2418 = 0, $2419 = 0; var $242 = 0, $2420 = 0, $2421 = 0, $2422 = 0, $2423 = 0, $2424 = 0, $2425 = 0, $2426 = 0, $2427 = 0, $2428 = 0, $2429 = 0, $243 = 0, $2430 = 0, $2431 = 0, $2432 = 0, $2433 = 0, $2434 = 0.0, $2435 = 0, $2436 = 0, $2437 = 0.0; var $2438 = 0, $2439 = 0, $244 = 0.0, $2440 = 0, $2441 = 0.0, $2442 = 0, $2443 = 0, $2444 = 0, $2445 = 0, $2446 = 0.0, $2447 = 0, $2448 = 0, $2449 = 0, $245 = 0, $2450 = 0.0, $2451 = 0, $2452 = 0, $2453 = 0, $2454 = 0, $2455 = 0.0; var $2456 = 0, $2457 = 0, $2458 = 0, $2459 = 0.0, $246 = 0, $2460 = 0, $2461 = 0, $2462 = 0, $2463 = 0, $2464 = 0.0, $2465 = 0, $2466 = 0, $2467 = 0, $2468 = 0.0, $2469 = 0, $247 = 0, $2470 = 0, $2471 = 0, $2472 = 0, $2473 = 0.0; var $2474 = 0.0, $2475 = 0.0, $2476 = 0.0, $2477 = 0.0, $2478 = 0.0, $2479 = 0.0, $248 = 0, $2480 = 0.0, $2481 = 0.0, $2482 = 0.0, $2483 = 0.0, $2484 = 0.0, $2485 = 0.0, $2486 = 0.0, $2487 = 0.0, $2488 = 0.0, $2489 = 0.0, $249 = 0, $2490 = 0.0, $2491 = 0.0; var $2492 = 0.0, $2493 = 0.0, $2494 = 0.0, $2495 = 0.0, $2496 = 0.0, $2497 = 0.0, $2498 = 0.0, $2499 = 0.0, $25 = 0, $250 = 0, $2500 = 0.0, $2501 = 0.0, $2502 = 0.0, $2503 = 0, $2504 = 0.0, $2505 = 0.0, $2506 = 0.0, $2507 = 0.0, $2508 = 0.0, $2509 = 0; var $251 = 0, $2510 = 0, $2511 = 0.0, $2512 = 0.0, $2513 = 0.0, $2514 = 0.0, $2515 = 0.0, $2516 = 0.0, $2517 = 0.0, $2518 = 0.0, $2519 = 0.0, $252 = 0.0, $2520 = 0.0, $2521 = 0.0, $2522 = 0.0, $2523 = 0.0, $2524 = 0.0, $2525 = 0, $2526 = 0.0, $2527 = 0.0; var $2528 = 0.0, $2529 = 0.0, $253 = 0, $2530 = 0.0, $2531 = 0.0, $2532 = 0.0, $2533 = 0.0, $2534 = 0.0, $2535 = 0, $2536 = 0.0, $2537 = 0.0, $2538 = 0.0, $2539 = 0.0, $254 = 0, $2540 = 0.0, $2541 = 0.0, $2542 = 0.0, $2543 = 0.0, $2544 = 0.0, $2545 = 0.0; var $2546 = 0.0, $2547 = 0.0, $2548 = 0.0, $2549 = 0.0, $255 = 0, $2550 = 0.0, $2551 = 0.0, $2552 = 0.0, $2553 = 0.0, $2554 = 0, $2555 = 0, $2556 = 0, $2557 = 0.0, $2558 = 0.0, $2559 = 0.0, $256 = 0, $2560 = 0, $2561 = 0, $2562 = 0, $2563 = 0; var $2564 = 0.0, $2565 = 0.0, $2566 = 0.0, $2567 = 0, $2568 = 0, $2569 = 0, $257 = 0, $2570 = 0.0, $2571 = 0.0, $2572 = 0.0, $2573 = 0, $2574 = 0, $2575 = 0, $2576 = 0, $2577 = 0.0, $2578 = 0.0, $2579 = 0.0, $258 = 0, $2580 = 0.0, $2581 = 0.0; var $2582 = 0.0, $2583 = 0.0, $2584 = 0.0, $2585 = 0.0, $2586 = 0.0, $2587 = 0.0, $2588 = 0.0, $2589 = 0.0, $259 = 0, $2590 = 0.0, $2591 = 0, $2592 = 0.0, $2593 = 0.0, $2594 = 0.0, $2595 = 0.0, $2596 = 0.0, $2597 = 0.0, $2598 = 0.0, $2599 = 0.0, $26 = 0; var $260 = 0.0, $2600 = 0.0, $2601 = 0, $2602 = 0.0, $2603 = 0.0, $2604 = 0.0, $2605 = 0.0, $2606 = 0.0, $2607 = 0.0, $2608 = 0.0, $2609 = 0.0, $261 = 0, $2610 = 0.0, $2611 = 0.0, $2612 = 0.0, $2613 = 0.0, $2614 = 0.0, $2615 = 0.0, $2616 = 0.0, $2617 = 0.0; var $2618 = 0.0, $2619 = 0.0, $262 = 0, $2620 = 0, $2621 = 0, $2622 = 0, $2623 = 0.0, $2624 = 0.0, $2625 = 0.0, $2626 = 0, $2627 = 0, $2628 = 0, $2629 = 0, $263 = 0, $2630 = 0.0, $2631 = 0.0, $2632 = 0.0, $2633 = 0, $2634 = 0, $2635 = 0; var $2636 = 0.0, $2637 = 0.0, $2638 = 0.0, $2639 = 0, $264 = 0, $2640 = 0, $2641 = 0, $2642 = 0, $2643 = 0, $2644 = 0, $2645 = 0, $2646 = 0, $2647 = 0, $2648 = 0, $2649 = 0, $265 = 0.0, $2650 = 0, $2651 = 0, $2652 = 0, $2653 = 0; var $2654 = 0, $2655 = 0.0, $2656 = 0, $2657 = 0, $2658 = 0, $2659 = 0, $266 = 0, $2660 = 0, $2661 = 0.0, $2662 = 0, $2663 = 0, $2664 = 0, $2665 = 0, $2666 = 0, $2667 = 0, $2668 = 0.0, $2669 = 0, $267 = 0, $2670 = 0, $2671 = 0; var $2672 = 0, $2673 = 0, $2674 = 0.0, $2675 = 0, $2676 = 0, $2677 = 0, $2678 = 0, $2679 = 0, $268 = 0.0, $2680 = 0, $2681 = 0.0, $2682 = 0, $2683 = 0, $2684 = 0, $2685 = 0, $2686 = 0, $2687 = 0.0, $2688 = 0, $2689 = 0, $269 = 0.0; var $2690 = 0, $2691 = 0, $2692 = 0, $2693 = 0, $2694 = 0.0, $2695 = 0, $2696 = 0, $2697 = 0, $2698 = 0, $2699 = 0, $27 = 0.0, $270 = 0, $2700 = 0.0, $2701 = 0, $2702 = 0, $2703 = 0, $2704 = 0, $2705 = 0, $2706 = 0, $2707 = 0; var $2708 = 0, $2709 = 0, $271 = 0, $2710 = 0, $2711 = 0, $2712 = 0, $2713 = 0, $2714 = 0, $2715 = 0, $2716 = 0.0, $2717 = 0, $2718 = 0, $2719 = 0, $272 = 0.0, $2720 = 0, $2721 = 0.0, $2722 = 0, $2723 = 0, $2724 = 0, $2725 = 0.0; var $2726 = 0.0, $2727 = 0.0, $2728 = 0, $2729 = 0, $273 = 0, $2730 = 0, $2731 = 0, $2732 = 0.0, $2733 = 0.0, $2734 = 0.0, $2735 = 0.0, $2736 = 0, $2737 = 0, $2738 = 0, $2739 = 0, $274 = 0, $2740 = 0.0, $2741 = 0.0, $2742 = 0.0, $2743 = 0; var $2744 = 0, $2745 = 0, $2746 = 0.0, $2747 = 0.0, $2748 = 0.0, $2749 = 0.0, $275 = 0, $2750 = 0, $2751 = 0, $2752 = 0, $2753 = 0.0, $2754 = 0.0, $2755 = 0.0, $2756 = 0, $2757 = 0, $2758 = 0, $2759 = 0, $276 = 0.0, $2760 = 0.0, $2761 = 0.0; var $2762 = 0.0, $2763 = 0.0, $2764 = 0, $2765 = 0, $2766 = 0, $2767 = 0, $2768 = 0.0, $2769 = 0.0, $277 = 0.0, $2770 = 0.0, $2771 = 0, $2772 = 0, $2773 = 0, $2774 = 0.0, $2775 = 0.0, $2776 = 0.0, $2777 = 0.0, $2778 = 0, $2779 = 0, $278 = 0; var $2780 = 0, $2781 = 0.0, $2782 = 0.0, $2783 = 0.0, $2784 = 0, $2785 = 0, $2786 = 0, $2787 = 0, $2788 = 0.0, $2789 = 0.0, $279 = 0.0, $2790 = 0.0, $2791 = 0.0, $2792 = 0, $2793 = 0, $2794 = 0, $2795 = 0, $2796 = 0.0, $2797 = 0.0, $2798 = 0.0; var $2799 = 0, $28 = 0, $280 = 0, $2800 = 0, $2801 = 0, $2802 = 0.0, $2803 = 0.0, $2804 = 0.0, $2805 = 0.0, $2806 = 0, $2807 = 0, $2808 = 0, $2809 = 0.0, $281 = 0, $2810 = 0.0, $2811 = 0.0, $2812 = 0, $2813 = 0, $2814 = 0, $2815 = 0; var $2816 = 0.0, $2817 = 0.0, $2818 = 0.0, $2819 = 0.0, $282 = 0.0, $2820 = 0, $2821 = 0, $2822 = 0, $2823 = 0, $2824 = 0.0, $2825 = 0.0, $2826 = 0.0, $2827 = 0, $2828 = 0, $2829 = 0, $283 = 0.0, $2830 = 0.0, $2831 = 0.0, $2832 = 0.0, $2833 = 0.0; var $2834 = 0.0, $2835 = 0.0, $2836 = 0.0, $2837 = 0.0, $2838 = 0.0, $2839 = 0.0, $284 = 0, $2840 = 0.0, $2841 = 0.0, $2842 = 0.0, $2843 = 0.0, $2844 = 0.0, $2845 = 0.0, $2846 = 0.0, $2847 = 0.0, $2848 = 0.0, $2849 = 0.0, $285 = 0, $2850 = 0.0, $2851 = 0.0; var $2852 = 0.0, $2853 = 0.0, $2854 = 0.0, $2855 = 0.0, $2856 = 0.0, $2857 = 0.0, $2858 = 0.0, $2859 = 0.0, $286 = 0.0, $2860 = 0.0, $2861 = 0.0, $2862 = 0.0, $2863 = 0, $2864 = 0, $2865 = 0, $2866 = 0.0, $2867 = 0.0, $2868 = 0.0, $2869 = 0.0, $287 = 0; var $2870 = 0.0, $2871 = 0, $2872 = 0, $2873 = 0, $2874 = 0, $2875 = 0.0, $2876 = 0.0, $2877 = 0.0, $2878 = 0.0, $2879 = 0.0, $288 = 0, $2880 = 0.0, $2881 = 0.0, $2882 = 0.0, $2883 = 0.0, $2884 = 0.0, $2885 = 0.0, $2886 = 0.0, $2887 = 0.0, $2888 = 0.0; var $2889 = 0, $289 = 0, $2890 = 0, $2891 = 0.0, $2892 = 0.0, $2893 = 0.0, $2894 = 0.0, $2895 = 0.0, $2896 = 0.0, $2897 = 0.0, $2898 = 0.0, $2899 = 0.0, $29 = 0, $290 = 0.0, $2900 = 0.0, $2901 = 0.0, $2902 = 0.0, $2903 = 0.0, $2904 = 0.0, $2905 = 0.0; var $2906 = 0.0, $2907 = 0.0, $2908 = 0.0, $2909 = 0.0, $291 = 0.0, $2910 = 0.0, $2911 = 0.0, $2912 = 0.0, $2913 = 0.0, $2914 = 0.0, $2915 = 0.0, $2916 = 0.0, $2917 = 0.0, $2918 = 0.0, $2919 = 0.0, $292 = 0, $2920 = 0.0, $2921 = 0.0, $2922 = 0.0, $2923 = 0.0; var $2924 = 0.0, $2925 = 0.0, $2926 = 0.0, $2927 = 0.0, $2928 = 0.0, $2929 = 0, $293 = 0, $2930 = 0, $2931 = 0, $2932 = 0.0, $2933 = 0.0, $2934 = 0.0, $2935 = 0, $2936 = 0, $2937 = 0, $2938 = 0, $2939 = 0.0, $294 = 0.0, $2940 = 0.0, $2941 = 0.0; var $2942 = 0, $2943 = 0, $2944 = 0, $2945 = 0.0, $2946 = 0.0, $2947 = 0.0, $2948 = 0, $2949 = 0, $295 = 0, $2950 = 0, $2951 = 0, $2952 = 0.0, $2953 = 0.0, $2954 = 0.0, $2955 = 0.0, $2956 = 0.0, $2957 = 0.0, $2958 = 0.0, $2959 = 0.0, $296 = 0; var $2960 = 0.0, $2961 = 0.0, $2962 = 0.0, $2963 = 0.0, $2964 = 0.0, $2965 = 0.0, $2966 = 0, $2967 = 0, $2968 = 0.0, $2969 = 0.0, $297 = 0.0, $2970 = 0.0, $2971 = 0.0, $2972 = 0.0, $2973 = 0.0, $2974 = 0.0, $2975 = 0.0, $2976 = 0.0, $2977 = 0.0, $2978 = 0.0; var $2979 = 0.0, $298 = 0.0, $2980 = 0.0, $2981 = 0.0, $2982 = 0.0, $2983 = 0.0, $2984 = 0.0, $2985 = 0.0, $2986 = 0.0, $2987 = 0.0, $2988 = 0.0, $2989 = 0.0, $299 = 0, $2990 = 0.0, $2991 = 0.0, $2992 = 0.0, $2993 = 0.0, $2994 = 0.0, $2995 = 0.0, $2996 = 0.0; var $2997 = 0.0, $2998 = 0.0, $2999 = 0.0, $3 = 0, $30 = 0, $300 = 0, $3000 = 0.0, $3001 = 0.0, $3002 = 0.0, $3003 = 0.0, $3004 = 0.0, $3005 = 0.0, $3006 = 0, $3007 = 0, $3008 = 0, $3009 = 0.0, $301 = 0, $3010 = 0.0, $3011 = 0.0, $3012 = 0; var $3013 = 0, $3014 = 0, $3015 = 0, $3016 = 0.0, $3017 = 0.0, $3018 = 0.0, $3019 = 0, $302 = 0.0, $3020 = 0, $3021 = 0, $3022 = 0.0, $3023 = 0.0, $3024 = 0.0, $3025 = 0, $3026 = 0, $3027 = 0, $3028 = 0, $3029 = 0, $303 = 0, $3030 = 0; var $3031 = 0, $3032 = 0, $3033 = 0, $3034 = 0, $3035 = 0, $3036 = 0, $3037 = 0, $3038 = 0, $3039 = 0, $304 = 0, $3040 = 0, $3041 = 0, $3042 = 0, $3043 = 0, $3044 = 0, $3045 = 0, $3046 = 0, $3047 = 0, $3048 = 0, $3049 = 0; var $305 = 0, $3050 = 0, $3051 = 0, $3052 = 0, $3053 = 0, $3054 = 0, $3055 = 0, $3056 = 0, $3057 = 0, $3058 = 0, $3059 = 0, $306 = 0.0, $3060 = 0, $3061 = 0, $3062 = 0, $3063 = 0, $3064 = 0, $3065 = 0, $3066 = 0, $3067 = 0; var $3068 = 0, $3069 = 0, $307 = 0.0, $3070 = 0, $3071 = 0, $3072 = 0, $3073 = 0, $3074 = 0, $3075 = 0, $3076 = 0, $3077 = 0, $3078 = 0, $3079 = 0, $308 = 0, $3080 = 0, $3081 = 0, $3082 = 0, $3083 = 0, $3084 = 0, $3085 = 0; var $3086 = 0, $3087 = 0, $3088 = 0, $3089 = 0, $309 = 0.0, $3090 = 0, $3091 = 0, $3092 = 0, $3093 = 0, $3094 = 0, $3095 = 0, $3096 = 0, $3097 = 0, $3098 = 0, $3099 = 0, $31 = 0.0, $310 = 0, $3100 = 0, $3101 = 0, $3102 = 0; var $3103 = 0, $3104 = 0, $3105 = 0, $3106 = 0, $3107 = 0, $3108 = 0, $3109 = 0, $311 = 0, $3110 = 0, $3111 = 0, $3112 = 0, $3113 = 0, $3114 = 0, $3115 = 0, $3116 = 0, $3117 = 0, $3118 = 0, $3119 = 0, $312 = 0.0, $3120 = 0; var $3121 = 0, $3122 = 0, $3123 = 0, $3124 = 0, $3125 = 0, $3126 = 0, $3127 = 0, $3128 = 0, $3129 = 0, $313 = 0, $3130 = 0, $3131 = 0, $3132 = 0, $3133 = 0, $3134 = 0, $3135 = 0, $3136 = 0, $3137 = 0, $3138 = 0, $3139 = 0; var $314 = 0, $3140 = 0, $3141 = 0, $3142 = 0, $3143 = 0, $3144 = 0.0, $3145 = 0, $3146 = 0, $3147 = 0.0, $3148 = 0, $3149 = 0, $315 = 0.0, $3150 = 0, $3151 = 0.0, $3152 = 0, $3153 = 0, $3154 = 0, $3155 = 0, $3156 = 0.0, $3157 = 0; var $3158 = 0, $3159 = 0, $316 = 0.0, $3160 = 0.0, $3161 = 0, $3162 = 0, $3163 = 0, $3164 = 0, $3165 = 0.0, $3166 = 0, $3167 = 0, $3168 = 0, $3169 = 0.0, $317 = 0.0, $3170 = 0, $3171 = 0, $3172 = 0, $3173 = 0, $3174 = 0.0, $3175 = 0; var $3176 = 0, $3177 = 0, $3178 = 0.0, $3179 = 0, $318 = 0, $3180 = 0, $3181 = 0, $3182 = 0, $3183 = 0.0, $3184 = 0, $3185 = 0, $3186 = 0, $3187 = 0.0, $3188 = 0, $3189 = 0, $319 = 0.0, $3190 = 0, $3191 = 0, $3192 = 0.0, $3193 = 0; var $3194 = 0, $3195 = 0, $3196 = 0.0, $3197 = 0, $3198 = 0, $3199 = 0, $32 = 0, $320 = 0, $3200 = 0, $3201 = 0.0, $3202 = 0.0, $3203 = 0.0, $3204 = 0.0, $3205 = 0.0, $3206 = 0.0, $3207 = 0.0, $3208 = 0.0, $3209 = 0.0, $321 = 0, $3210 = 0.0; var $3211 = 0.0, $3212 = 0.0, $3213 = 0.0, $3214 = 0.0, $3215 = 0.0, $3216 = 0.0, $3217 = 0.0, $3218 = 0.0, $3219 = 0.0, $322 = 0, $3220 = 0.0, $3221 = 0.0, $3222 = 0.0, $3223 = 0.0, $3224 = 0.0, $3225 = 0.0, $3226 = 0.0, $3227 = 0.0, $3228 = 0.0, $3229 = 0.0; var $323 = 0.0, $3230 = 0.0, $3231 = 0.0, $3232 = 0.0, $3233 = 0.0, $3234 = 0.0, $3235 = 0.0, $3236 = 0.0, $3237 = 0.0, $3238 = 0.0, $3239 = 0.0, $324 = 0, $3240 = 0.0, $3241 = 0.0, $3242 = 0.0, $3243 = 0.0, $3244 = 0.0, $3245 = 0, $3246 = 0.0, $3247 = 0.0; var $3248 = 0.0, $3249 = 0.0, $325 = 0, $3250 = 0.0, $3251 = 0.0, $3252 = 0.0, $3253 = 0, $3254 = 0, $3255 = 0.0, $3256 = 0.0, $3257 = 0.0, $3258 = 0.0, $3259 = 0.0, $326 = 0, $3260 = 0.0, $3261 = 0.0, $3262 = 0.0, $3263 = 0.0, $3264 = 0.0, $3265 = 0.0; var $3266 = 0.0, $3267 = 0.0, $3268 = 0.0, $3269 = 0.0, $327 = 0.0, $3270 = 0.0, $3271 = 0.0, $3272 = 0.0, $3273 = 0.0, $3274 = 0.0, $3275 = 0.0, $3276 = 0.0, $3277 = 0.0, $3278 = 0.0, $3279 = 0.0, $328 = 0.0, $3280 = 0.0, $3281 = 0, $3282 = 0, $3283 = 0.0; var $3284 = 0.0, $3285 = 0.0, $3286 = 0.0, $3287 = 0.0, $3288 = 0.0, $3289 = 0.0, $329 = 0.0, $3290 = 0.0, $3291 = 0.0, $3292 = 0.0, $3293 = 0.0, $3294 = 0.0, $3295 = 0.0, $3296 = 0.0, $3297 = 0.0, $3298 = 0.0, $3299 = 0.0, $33 = 0, $330 = 0.0, $3300 = 0.0; var $3301 = 0.0, $3302 = 0.0, $3303 = 0.0, $3304 = 0.0, $3305 = 0.0, $3306 = 0.0, $3307 = 0.0, $3308 = 0.0, $3309 = 0.0, $331 = 0.0, $3310 = 0.0, $3311 = 0.0, $3312 = 0.0, $3313 = 0.0, $3314 = 0.0, $3315 = 0.0, $3316 = 0.0, $3317 = 0.0, $3318 = 0.0, $3319 = 0.0; var $332 = 0.0, $3320 = 0.0, $3321 = 0.0, $3322 = 0.0, $3323 = 0.0, $3324 = 0.0, $3325 = 0.0, $3326 = 0.0, $3327 = 0.0, $3328 = 0.0, $3329 = 0.0, $333 = 0, $3330 = 0.0, $3331 = 0, $3332 = 0, $3333 = 0, $3334 = 0.0, $3335 = 0.0, $3336 = 0.0, $3337 = 0; var $3338 = 0, $3339 = 0, $334 = 0.0, $3340 = 0, $3341 = 0.0, $3342 = 0.0, $3343 = 0.0, $3344 = 0, $3345 = 0, $3346 = 0, $3347 = 0.0, $3348 = 0.0, $3349 = 0.0, $335 = 0.0, $3350 = 0, $3351 = 0, $3352 = 0, $3353 = 0, $3354 = 0.0, $3355 = 0.0; var $3356 = 0.0, $3357 = 0.0, $3358 = 0.0, $3359 = 0.0, $336 = 0.0, $3360 = 0.0, $3361 = 0.0, $3362 = 0.0, $3363 = 0.0, $3364 = 0.0, $3365 = 0.0, $3366 = 0.0, $3367 = 0.0, $3368 = 0.0, $3369 = 0.0, $337 = 0, $3370 = 0.0, $3371 = 0.0, $3372 = 0.0, $3373 = 0.0; var $3374 = 0.0, $3375 = 0.0, $3376 = 0.0, $3377 = 0.0, $3378 = 0.0, $3379 = 0.0, $338 = 0, $3380 = 0, $3381 = 0, $3382 = 0.0, $3383 = 0.0, $3384 = 0.0, $3385 = 0.0, $3386 = 0.0, $3387 = 0.0, $3388 = 0.0, $3389 = 0.0, $339 = 0.0, $3390 = 0.0, $3391 = 0.0; var $3392 = 0.0, $3393 = 0.0, $3394 = 0.0, $3395 = 0.0, $3396 = 0.0, $3397 = 0.0, $3398 = 0.0, $3399 = 0.0, $34 = 0, $340 = 0.0, $3400 = 0.0, $3401 = 0.0, $3402 = 0.0, $3403 = 0.0, $3404 = 0.0, $3405 = 0.0, $3406 = 0.0, $3407 = 0.0, $3408 = 0.0, $3409 = 0.0; var $341 = 0.0, $3410 = 0.0, $3411 = 0.0, $3412 = 0.0, $3413 = 0.0, $3414 = 0.0, $3415 = 0.0, $3416 = 0.0, $3417 = 0.0, $3418 = 0.0, $3419 = 0.0, $342 = 0, $3420 = 0.0, $3421 = 0.0, $3422 = 0.0, $3423 = 0.0, $3424 = 0.0, $3425 = 0.0, $3426 = 0.0, $3427 = 0.0; var $3428 = 0.0, $3429 = 0.0, $343 = 0, $3430 = 0, $3431 = 0, $3432 = 0, $3433 = 0.0, $3434 = 0.0, $3435 = 0.0, $3436 = 0, $3437 = 0, $3438 = 0, $3439 = 0, $344 = 0.0, $3440 = 0.0, $3441 = 0.0, $3442 = 0.0, $3443 = 0, $3444 = 0, $3445 = 0; var $3446 = 0.0, $3447 = 0.0, $3448 = 0.0, $3449 = 0, $345 = 0.0, $3450 = 0, $3451 = 0, $3452 = 0, $3453 = 0.0, $3454 = 0.0, $3455 = 0.0, $3456 = 0.0, $3457 = 0.0, $3458 = 0.0, $3459 = 0.0, $346 = 0.0, $3460 = 0.0, $3461 = 0.0, $3462 = 0.0, $3463 = 0.0; var $3464 = 0.0, $3465 = 0.0, $3466 = 0.0, $3467 = 0.0, $3468 = 0.0, $3469 = 0.0, $347 = 0, $3470 = 0.0, $3471 = 0.0, $3472 = 0.0, $3473 = 0.0, $3474 = 0.0, $3475 = 0.0, $3476 = 0.0, $3477 = 0.0, $3478 = 0.0, $3479 = 0, $348 = 0, $3480 = 0, $3481 = 0.0; var $3482 = 0.0, $3483 = 0.0, $3484 = 0.0, $3485 = 0.0, $3486 = 0.0, $3487 = 0.0, $3488 = 0.0, $3489 = 0.0, $349 = 0, $3490 = 0.0, $3491 = 0.0, $3492 = 0.0, $3493 = 0.0, $3494 = 0.0, $3495 = 0.0, $3496 = 0.0, $3497 = 0.0, $3498 = 0.0, $3499 = 0.0, $35 = 0; var $350 = 0.0, $3500 = 0.0, $3501 = 0.0, $3502 = 0.0, $3503 = 0.0, $3504 = 0.0, $3505 = 0.0, $3506 = 0.0, $3507 = 0.0, $3508 = 0.0, $3509 = 0.0, $351 = 0.0, $3510 = 0.0, $3511 = 0.0, $3512 = 0.0, $3513 = 0.0, $3514 = 0.0, $3515 = 0.0, $3516 = 0.0, $3517 = 0.0; var $3518 = 0.0, $3519 = 0.0, $352 = 0.0, $3520 = 0.0, $3521 = 0.0, $3522 = 0.0, $3523 = 0.0, $3524 = 0.0, $3525 = 0.0, $3526 = 0.0, $3527 = 0.0, $3528 = 0.0, $3529 = 0, $353 = 0, $3530 = 0, $3531 = 0, $3532 = 0.0, $3533 = 0.0, $3534 = 0.0, $3535 = 0; var $3536 = 0, $3537 = 0, $3538 = 0, $3539 = 0.0, $354 = 0, $3540 = 0.0, $3541 = 0.0, $3542 = 0, $3543 = 0, $3544 = 0, $3545 = 0.0, $3546 = 0.0, $3547 = 0.0, $3548 = 0, $3549 = 0, $355 = 0.0, $3550 = 0, $3551 = 0, $3552 = 0, $3553 = 0; var $3554 = 0, $3555 = 0, $3556 = 0, $3557 = 0, $3558 = 0, $3559 = 0, $356 = 0.0, $3560 = 0, $3561 = 0, $3562 = 0, $3563 = 0, $3564 = 0.0, $3565 = 0, $3566 = 0, $3567 = 0, $3568 = 0, $3569 = 0, $357 = 0.0, $3570 = 0.0, $3571 = 0; var $3572 = 0, $3573 = 0, $3574 = 0, $3575 = 0, $3576 = 0, $3577 = 0.0, $3578 = 0, $3579 = 0, $358 = 0, $3580 = 0, $3581 = 0, $3582 = 0, $3583 = 0.0, $3584 = 0, $3585 = 0, $3586 = 0, $3587 = 0, $3588 = 0, $3589 = 0, $359 = 0; var $3590 = 0.0, $3591 = 0, $3592 = 0, $3593 = 0, $3594 = 0, $3595 = 0, $3596 = 0.0, $3597 = 0, $3598 = 0, $3599 = 0, $36 = 0, $360 = 0, $3600 = 0, $3601 = 0, $3602 = 0, $3603 = 0.0, $3604 = 0, $3605 = 0, $3606 = 0, $3607 = 0; var $3608 = 0, $3609 = 0.0, $361 = 0.0, $3610 = 0, $3611 = 0, $3612 = 0, $3613 = 0, $3614 = 0, $3615 = 0, $3616 = 0.0, $3617 = 0, $3618 = 0, $3619 = 0, $362 = 0.0, $3620 = 0, $3621 = 0, $3622 = 0.0, $3623 = 0, $3624 = 0, $3625 = 0; var $3626 = 0, $3627 = 0, $3628 = 0, $3629 = 0.0, $363 = 0.0, $3630 = 0, $3631 = 0, $3632 = 0, $3633 = 0, $3634 = 0, $3635 = 0.0, $3636 = 0, $3637 = 0, $3638 = 0, $3639 = 0, $364 = 0, $3640 = 0, $3641 = 0, $3642 = 0, $3643 = 0; var $3644 = 0, $3645 = 0, $3646 = 0, $3647 = 0, $3648 = 0, $3649 = 0, $365 = 0, $3650 = 0, $3651 = 0, $3652 = 0, $3653 = 0, $3654 = 0, $3655 = 0, $3656 = 0, $3657 = 0.0, $3658 = 0, $3659 = 0, $366 = 0.0, $3660 = 0, $3661 = 0; var $3662 = 0.0, $3663 = 0, $3664 = 0, $3665 = 0, $3666 = 0.0, $3667 = 0.0, $3668 = 0.0, $3669 = 0, $367 = 0.0, $3670 = 0, $3671 = 0, $3672 = 0, $3673 = 0.0, $3674 = 0.0, $3675 = 0.0, $3676 = 0.0, $3677 = 0, $3678 = 0, $3679 = 0, $368 = 0.0; var $3680 = 0, $3681 = 0.0, $3682 = 0.0, $3683 = 0.0, $3684 = 0, $3685 = 0, $3686 = 0, $3687 = 0.0, $3688 = 0.0, $3689 = 0.0, $369 = 0, $3690 = 0.0, $3691 = 0, $3692 = 0, $3693 = 0, $3694 = 0.0, $3695 = 0.0, $3696 = 0.0, $3697 = 0, $3698 = 0; var $3699 = 0, $37 = 0.0, $370 = 0, $3700 = 0, $3701 = 0.0, $3702 = 0.0, $3703 = 0.0, $3704 = 0.0, $3705 = 0, $3706 = 0, $3707 = 0, $3708 = 0, $3709 = 0.0, $371 = 0, $3710 = 0.0, $3711 = 0.0, $3712 = 0, $3713 = 0, $3714 = 0, $3715 = 0.0; var $3716 = 0.0, $3717 = 0.0, $3718 = 0.0, $3719 = 0, $372 = 0, $3720 = 0, $3721 = 0, $3722 = 0.0, $3723 = 0.0, $3724 = 0.0, $3725 = 0, $3726 = 0, $3727 = 0, $3728 = 0, $3729 = 0.0, $373 = 0, $3730 = 0.0, $3731 = 0.0, $3732 = 0.0, $3733 = 0; var $3734 = 0, $3735 = 0, $3736 = 0, $3737 = 0.0, $3738 = 0.0, $3739 = 0.0, $374 = 0, $3740 = 0, $3741 = 0, $3742 = 0, $3743 = 0.0, $3744 = 0.0, $3745 = 0.0, $3746 = 0.0, $3747 = 0, $3748 = 0, $3749 = 0, $375 = 0.0, $3750 = 0.0, $3751 = 0.0; var $3752 = 0.0, $3753 = 0, $3754 = 0, $3755 = 0, $3756 = 0, $3757 = 0.0, $3758 = 0.0, $3759 = 0.0, $376 = 0, $3760 = 0.0, $3761 = 0, $3762 = 0, $3763 = 0, $3764 = 0, $3765 = 0.0, $3766 = 0.0, $3767 = 0.0, $3768 = 0, $3769 = 0, $377 = 0; var $3770 = 0, $3771 = 0.0, $3772 = 0.0, $3773 = 0.0, $3774 = 0.0, $3775 = 0, $3776 = 0, $3777 = 0, $3778 = 0.0, $3779 = 0.0, $378 = 0, $3780 = 0.0, $3781 = 0, $3782 = 0, $3783 = 0, $3784 = 0, $3785 = 0.0, $3786 = 0.0, $3787 = 0.0, $3788 = 0.0; var $3789 = 0, $379 = 0.0, $3790 = 0, $3791 = 0, $3792 = 0, $3793 = 0.0, $3794 = 0.0, $3795 = 0.0, $3796 = 0, $3797 = 0, $3798 = 0, $3799 = 0.0, $38 = 0, $380 = 0, $3800 = 0.0, $3801 = 0.0, $3802 = 0.0, $3803 = 0, $3804 = 0, $3805 = 0; var $3806 = 0.0, $3807 = 0.0, $3808 = 0.0, $3809 = 0, $381 = 0, $3810 = 0, $3811 = 0, $3812 = 0, $3813 = 0.0, $3814 = 0.0, $3815 = 0.0, $3816 = 0.0, $3817 = 0, $3818 = 0, $3819 = 0, $382 = 0, $3820 = 0, $3821 = 0.0, $3822 = 0.0, $3823 = 0.0; var $3824 = 0, $3825 = 0, $3826 = 0, $3827 = 0.0, $3828 = 0.0, $3829 = 0.0, $383 = 0, $3830 = 0.0, $3831 = 0.0, $3832 = 0.0, $3833 = 0.0, $3834 = 0.0, $3835 = 0.0, $3836 = 0.0, $3837 = 0.0, $3838 = 0.0, $3839 = 0.0, $384 = 0, $3840 = 0.0, $3841 = 0.0; var $3842 = 0.0, $3843 = 0.0, $3844 = 0.0, $3845 = 0.0, $3846 = 0.0, $3847 = 0.0, $3848 = 0.0, $3849 = 0.0, $385 = 0.0, $3850 = 0.0, $3851 = 0.0, $3852 = 0.0, $3853 = 0.0, $3854 = 0.0, $3855 = 0.0, $3856 = 0.0, $3857 = 0.0, $3858 = 0.0, $3859 = 0.0, $386 = 0; var $3860 = 0.0, $3861 = 0.0, $3862 = 0.0, $3863 = 0.0, $3864 = 0.0, $3865 = 0.0, $3866 = 0.0, $3867 = 0.0, $3868 = 0.0, $3869 = 0.0, $387 = 0, $3870 = 0.0, $3871 = 0.0, $3872 = 0.0, $3873 = 0.0, $3874 = 0, $3875 = 0, $3876 = 0, $3877 = 0.0, $3878 = 0.0; var $3879 = 0.0, $388 = 0, $3880 = 0.0, $3881 = 0.0, $3882 = 0.0, $3883 = 0.0, $3884 = 0, $3885 = 0, $3886 = 0, $3887 = 0, $3888 = 0.0, $3889 = 0.0, $389 = 0, $3890 = 0.0, $3891 = 0.0, $3892 = 0.0, $3893 = 0.0, $3894 = 0.0, $3895 = 0.0, $3896 = 0.0; var $3897 = 0.0, $3898 = 0.0, $3899 = 0.0, $39 = 0, $390 = 0, $3900 = 0.0, $3901 = 0.0, $3902 = 0.0, $3903 = 0.0, $3904 = 0.0, $3905 = 0.0, $3906 = 0.0, $3907 = 0.0, $3908 = 0.0, $3909 = 0.0, $391 = 0, $3910 = 0.0, $3911 = 0.0, $3912 = 0.0, $3913 = 0.0; var $3914 = 0, $3915 = 0, $3916 = 0.0, $3917 = 0.0, $3918 = 0.0, $3919 = 0.0, $392 = 0.0, $3920 = 0.0, $3921 = 0.0, $3922 = 0.0, $3923 = 0.0, $3924 = 0.0, $3925 = 0.0, $3926 = 0.0, $3927 = 0.0, $3928 = 0.0, $3929 = 0.0, $393 = 0, $3930 = 0.0, $3931 = 0.0; var $3932 = 0.0, $3933 = 0.0, $3934 = 0.0, $3935 = 0.0, $3936 = 0.0, $3937 = 0.0, $3938 = 0.0, $3939 = 0.0, $394 = 0, $3940 = 0.0, $3941 = 0.0, $3942 = 0.0, $3943 = 0.0, $3944 = 0.0, $3945 = 0.0, $3946 = 0.0, $3947 = 0.0, $3948 = 0.0, $3949 = 0.0, $395 = 0; var $3950 = 0.0, $3951 = 0.0, $3952 = 0.0, $3953 = 0.0, $3954 = 0.0, $3955 = 0.0, $3956 = 0.0, $3957 = 0.0, $3958 = 0.0, $3959 = 0.0, $396 = 0, $3960 = 0.0, $3961 = 0.0, $3962 = 0.0, $3963 = 0.0, $3964 = 0, $3965 = 0, $3966 = 0, $3967 = 0.0, $3968 = 0.0; var $3969 = 0.0, $397 = 0, $3970 = 0, $3971 = 0, $3972 = 0, $3973 = 0, $3974 = 0.0, $3975 = 0.0, $3976 = 0.0, $3977 = 0, $3978 = 0, $3979 = 0, $398 = 0, $3980 = 0.0, $3981 = 0.0, $3982 = 0.0, $3983 = 0, $3984 = 0, $3985 = 0, $3986 = 0; var $3987 = 0.0, $3988 = 0.0, $3989 = 0.0, $399 = 0, $3990 = 0.0, $3991 = 0.0, $3992 = 0.0, $3993 = 0.0, $3994 = 0.0, $3995 = 0.0, $3996 = 0.0, $3997 = 0.0, $3998 = 0.0, $3999 = 0.0, $4 = 0, $40 = 0, $400 = 0.0, $4000 = 0.0, $4001 = 0.0, $4002 = 0.0; var $4003 = 0.0, $4004 = 0.0, $4005 = 0.0, $4006 = 0.0, $4007 = 0.0, $4008 = 0.0, $4009 = 0.0, $401 = 0, $4010 = 0.0, $4011 = 0.0, $4012 = 0.0, $4013 = 0, $4014 = 0, $4015 = 0.0, $4016 = 0.0, $4017 = 0.0, $4018 = 0.0, $4019 = 0.0, $402 = 0, $4020 = 0.0; var $4021 = 0.0, $4022 = 0.0, $4023 = 0.0, $4024 = 0.0, $4025 = 0.0, $4026 = 0.0, $4027 = 0.0, $4028 = 0.0, $4029 = 0.0, $403 = 0, $4030 = 0.0, $4031 = 0.0, $4032 = 0.0, $4033 = 0.0, $4034 = 0.0, $4035 = 0.0, $4036 = 0.0, $4037 = 0.0, $4038 = 0.0, $4039 = 0.0; var $404 = 0, $4040 = 0.0, $4041 = 0.0, $4042 = 0.0, $4043 = 0.0, $4044 = 0.0, $4045 = 0.0, $4046 = 0.0, $4047 = 0.0, $4048 = 0.0, $4049 = 0.0, $405 = 0, $4050 = 0.0, $4051 = 0.0, $4052 = 0.0, $4053 = 0.0, $4054 = 0.0, $4055 = 0.0, $4056 = 0.0, $4057 = 0.0; var $4058 = 0.0, $4059 = 0.0, $406 = 0, $4060 = 0.0, $4061 = 0.0, $4062 = 0.0, $4063 = 0, $4064 = 0, $4065 = 0, $4066 = 0.0, $4067 = 0.0, $4068 = 0.0, $4069 = 0, $407 = 0, $4070 = 0, $4071 = 0, $4072 = 0, $4073 = 0.0, $4074 = 0.0, $4075 = 0.0; var $4076 = 0, $4077 = 0, $4078 = 0, $4079 = 0.0, $408 = 0.0, $4080 = 0.0, $4081 = 0.0, $4082 = 0, $4083 = 0, $4084 = 0, $4085 = 0, $4086 = 0.0, $4087 = 0.0, $4088 = 0.0, $4089 = 0.0, $409 = 0, $4090 = 0.0, $4091 = 0.0, $4092 = 0.0, $4093 = 0.0; var $4094 = 0.0, $4095 = 0.0, $4096 = 0.0, $4097 = 0.0, $4098 = 0.0, $4099 = 0.0, $41 = 0, $410 = 0, $4100 = 0.0, $4101 = 0.0, $4102 = 0.0, $4103 = 0.0, $4104 = 0.0, $4105 = 0.0, $4106 = 0.0, $4107 = 0.0, $4108 = 0.0, $4109 = 0.0, $411 = 0, $4110 = 0.0; var $4111 = 0.0, $4112 = 0, $4113 = 0, $4114 = 0.0, $4115 = 0.0, $4116 = 0.0, $4117 = 0.0, $4118 = 0.0, $4119 = 0.0, $412 = 0, $4120 = 0.0, $4121 = 0.0, $4122 = 0.0, $4123 = 0.0, $4124 = 0.0, $4125 = 0.0, $4126 = 0.0, $4127 = 0.0, $4128 = 0.0, $4129 = 0.0; var $413 = 0, $4130 = 0.0, $4131 = 0.0, $4132 = 0.0, $4133 = 0.0, $4134 = 0.0, $4135 = 0.0, $4136 = 0.0, $4137 = 0.0, $4138 = 0.0, $4139 = 0.0, $414 = 0, $4140 = 0.0, $4141 = 0.0, $4142 = 0.0, $4143 = 0.0, $4144 = 0.0, $4145 = 0.0, $4146 = 0.0, $4147 = 0.0; var $4148 = 0.0, $4149 = 0.0, $415 = 0, $4150 = 0.0, $4151 = 0.0, $4152 = 0.0, $4153 = 0.0, $4154 = 0.0, $4155 = 0.0, $4156 = 0.0, $4157 = 0.0, $4158 = 0.0, $4159 = 0.0, $416 = 0.0, $4160 = 0.0, $4161 = 0.0, $4162 = 0, $4163 = 0, $4164 = 0, $4165 = 0.0; var $4166 = 0.0, $4167 = 0.0, $4168 = 0, $4169 = 0, $417 = 0, $4170 = 0, $4171 = 0, $4172 = 0.0, $4173 = 0.0, $4174 = 0.0, $4175 = 0, $4176 = 0, $4177 = 0, $4178 = 0.0, $4179 = 0.0, $418 = 0, $4180 = 0.0, $4181 = 0, $4182 = 0, $4183 = 0; var $4184 = 0, $4185 = 0, $4186 = 0, $4187 = 0, $4188 = 0, $4189 = 0, $419 = 0, $4190 = 0, $4191 = 0, $4192 = 0, $4193 = 0, $4194 = 0, $4195 = 0, $4196 = 0, $4197 = 0, $4198 = 0, $4199 = 0, $42 = 0, $420 = 0, $4200 = 0; var $4201 = 0, $4202 = 0, $4203 = 0, $4204 = 0, $4205 = 0, $4206 = 0, $4207 = 0, $4208 = 0, $4209 = 0, $421 = 0, $4210 = 0, $4211 = 0, $4212 = 0, $4213 = 0, $4214 = 0, $4215 = 0, $4216 = 0, $4217 = 0, $4218 = 0, $4219 = 0; var $422 = 0, $4220 = 0, $4221 = 0, $4222 = 0, $4223 = 0, $4224 = 0, $4225 = 0, $4226 = 0, $4227 = 0, $4228 = 0, $4229 = 0, $423 = 0, $4230 = 0, $4231 = 0, $4232 = 0, $4233 = 0, $4234 = 0, $4235 = 0, $4236 = 0, $4237 = 0; var $4238 = 0, $4239 = 0, $424 = 0.0, $4240 = 0, $4241 = 0, $4242 = 0, $4243 = 0, $4244 = 0, $4245 = 0, $4246 = 0, $4247 = 0, $4248 = 0, $4249 = 0, $425 = 0, $4250 = 0, $4251 = 0, $4252 = 0, $4253 = 0, $4254 = 0, $4255 = 0; var $4256 = 0, $4257 = 0, $4258 = 0, $4259 = 0, $426 = 0, $4260 = 0, $4261 = 0, $4262 = 0, $4263 = 0, $4264 = 0, $4265 = 0, $4266 = 0, $4267 = 0, $4268 = 0, $4269 = 0, $427 = 0, $4270 = 0, $4271 = 0, $4272 = 0, $4273 = 0; var $4274 = 0, $4275 = 0, $4276 = 0, $4277 = 0, $4278 = 0, $4279 = 0, $428 = 0, $4280 = 0, $4281 = 0, $4282 = 0, $4283 = 0, $4284 = 0, $4285 = 0, $4286 = 0, $4287 = 0, $4288 = 0, $4289 = 0, $429 = 0, $4290 = 0, $4291 = 0; var $4292 = 0, $4293 = 0, $4294 = 0, $4295 = 0, $4296 = 0, $4297 = 0, $4298 = 0, $4299 = 0, $43 = 0, $430 = 0, $4300 = 0, $4301 = 0, $4302 = 0, $4303 = 0, $4304 = 0, $4305 = 0, $4306 = 0, $4307 = 0, $4308 = 0, $4309 = 0.0; var $431 = 0, $4310 = 0, $4311 = 0, $4312 = 0, $4313 = 0, $4314 = 0, $4315 = 0.0, $4316 = 0, $4317 = 0, $4318 = 0, $4319 = 0, $432 = 0.0, $4320 = 0, $4321 = 0, $4322 = 0.0, $4323 = 0, $4324 = 0, $4325 = 0, $4326 = 0, $4327 = 0; var $4328 = 0.0, $4329 = 0, $433 = 0, $4330 = 0, $4331 = 0, $4332 = 0, $4333 = 0, $4334 = 0, $4335 = 0.0, $4336 = 0, $4337 = 0, $4338 = 0, $4339 = 0, $434 = 0, $4340 = 0, $4341 = 0.0, $4342 = 0, $4343 = 0, $4344 = 0, $4345 = 0; var $4346 = 0, $4347 = 0, $4348 = 0.0, $4349 = 0, $435 = 0, $4350 = 0, $4351 = 0, $4352 = 0, $4353 = 0, $4354 = 0.0, $4355 = 0, $4356 = 0, $4357 = 0, $4358 = 0, $4359 = 0, $436 = 0, $4360 = 0, $4361 = 0.0, $4362 = 0, $4363 = 0; var $4364 = 0, $4365 = 0, $4366 = 0, $4367 = 0.0, $4368 = 0, $4369 = 0, $437 = 0, $4370 = 0, $4371 = 0, $4372 = 0, $4373 = 0, $4374 = 0.0, $4375 = 0, $4376 = 0, $4377 = 0, $4378 = 0, $4379 = 0, $438 = 0, $4380 = 0.0, $4381 = 0; var $4382 = 0, $4383 = 0, $4384 = 0, $4385 = 0, $4386 = 0, $4387 = 0.0, $4388 = 0, $4389 = 0, $439 = 0, $4390 = 0, $4391 = 0, $4392 = 0, $4393 = 0.0, $4394 = 0, $4395 = 0, $4396 = 0, $4397 = 0, $4398 = 0, $4399 = 0, $44 = 0.0; var $440 = 0.0, $4400 = 0, $4401 = 0, $4402 = 0, $4403 = 0, $4404 = 0, $4405 = 0, $4406 = 0, $4407 = 0, $4408 = 0, $4409 = 0, $441 = 0, $4410 = 0, $4411 = 0, $4412 = 0, $4413 = 0, $4414 = 0, $4415 = 0, $4416 = 0, $4417 = 0; var $4418 = 0.0, $4419 = 0, $442 = 0, $4420 = 0, $4421 = 0, $4422 = 0, $4423 = 0.0, $4424 = 0, $4425 = 0, $4426 = 0, $4427 = 0.0, $4428 = 0.0, $4429 = 0.0, $443 = 0, $4430 = 0, $4431 = 0, $4432 = 0, $4433 = 0, $4434 = 0.0, $4435 = 0.0; var $4436 = 0.0, $4437 = 0.0, $4438 = 0, $4439 = 0, $444 = 0, $4440 = 0, $4441 = 0, $4442 = 0.0, $4443 = 0.0, $4444 = 0.0, $4445 = 0, $4446 = 0, $4447 = 0, $4448 = 0.0, $4449 = 0.0, $445 = 0, $4450 = 0.0, $4451 = 0.0, $4452 = 0, $4453 = 0; var $4454 = 0, $4455 = 0.0, $4456 = 0.0, $4457 = 0.0, $4458 = 0, $4459 = 0, $446 = 0.0, $4460 = 0, $4461 = 0, $4462 = 0.0, $4463 = 0.0, $4464 = 0.0, $4465 = 0.0, $4466 = 0, $4467 = 0, $4468 = 0, $4469 = 0, $447 = 0, $4470 = 0.0, $4471 = 0.0; var $4472 = 0.0, $4473 = 0, $4474 = 0, $4475 = 0, $4476 = 0.0, $4477 = 0.0, $4478 = 0.0, $4479 = 0.0, $448 = 0, $4480 = 0, $4481 = 0, $4482 = 0, $4483 = 0.0, $4484 = 0.0, $4485 = 0.0, $4486 = 0, $4487 = 0, $4488 = 0, $4489 = 0, $449 = 0.0; var $4490 = 0.0, $4491 = 0.0, $4492 = 0.0, $4493 = 0.0, $4494 = 0, $4495 = 0, $4496 = 0, $4497 = 0, $4498 = 0.0, $4499 = 0.0, $45 = 0, $450 = 0.0, $4500 = 0.0, $4501 = 0, $4502 = 0, $4503 = 0, $4504 = 0.0, $4505 = 0.0, $4506 = 0.0, $4507 = 0.0; var $4508 = 0, $4509 = 0, $451 = 0, $4510 = 0, $4511 = 0.0, $4512 = 0.0, $4513 = 0.0, $4514 = 0, $4515 = 0, $4516 = 0, $4517 = 0, $4518 = 0.0, $4519 = 0.0, $452 = 0, $4520 = 0.0, $4521 = 0.0, $4522 = 0, $4523 = 0, $4524 = 0, $4525 = 0; var $4526 = 0.0, $4527 = 0.0, $4528 = 0.0, $4529 = 0, $453 = 0.0, $4530 = 0, $4531 = 0, $4532 = 0.0, $4533 = 0.0, $4534 = 0.0, $4535 = 0.0, $4536 = 0, $4537 = 0, $4538 = 0, $4539 = 0.0, $454 = 0, $4540 = 0.0, $4541 = 0.0, $4542 = 0, $4543 = 0; var $4544 = 0, $4545 = 0, $4546 = 0.0, $4547 = 0.0, $4548 = 0.0, $4549 = 0.0, $455 = 0, $4550 = 0, $4551 = 0, $4552 = 0, $4553 = 0, $4554 = 0.0, $4555 = 0.0, $4556 = 0.0, $4557 = 0, $4558 = 0, $4559 = 0, $456 = 0.0, $4560 = 0.0, $4561 = 0.0; var $4562 = 0.0, $4563 = 0.0, $4564 = 0, $4565 = 0, $4566 = 0, $4567 = 0.0, $4568 = 0.0, $4569 = 0.0, $457 = 0.0, $4570 = 0, $4571 = 0, $4572 = 0, $4573 = 0, $4574 = 0.0, $4575 = 0.0, $4576 = 0.0, $4577 = 0.0, $4578 = 0, $4579 = 0, $458 = 0; var $4580 = 0, $4581 = 0, $4582 = 0.0, $4583 = 0.0, $4584 = 0.0, $4585 = 0, $4586 = 0, $4587 = 0, $4588 = 0.0, $4589 = 0.0, $459 = 0, $4590 = 0.0, $4591 = 0.0, $4592 = 0, $4593 = 0, $4594 = 0, $4595 = 0.0, $4596 = 0.0, $4597 = 0.0, $4598 = 0; var $4599 = 0, $46 = 0, $460 = 0, $4600 = 0, $4601 = 0, $4602 = 0.0, $4603 = 0.0, $4604 = 0.0, $4605 = 0.0, $4606 = 0, $4607 = 0, $4608 = 0, $4609 = 0, $461 = 0.0, $4610 = 0.0, $4611 = 0.0, $4612 = 0.0, $4613 = 0, $4614 = 0, $4615 = 0; var $4616 = 0.0, $4617 = 0.0, $4618 = 0.0, $4619 = 0.0, $462 = 0, $4620 = 0.0, $4621 = 0.0, $4622 = 0.0, $4623 = 0.0, $4624 = 0.0, $4625 = 0.0, $4626 = 0.0, $4627 = 0.0, $4628 = 0.0, $4629 = 0.0, $463 = 0, $4630 = 0.0, $4631 = 0.0, $4632 = 0.0, $4633 = 0.0; var $4634 = 0.0, $4635 = 0.0, $4636 = 0.0, $4637 = 0.0, $4638 = 0.0, $4639 = 0.0, $464 = 0, $4640 = 0.0, $4641 = 0.0, $4642 = 0.0, $4643 = 0.0, $4644 = 0.0, $4645 = 0.0, $4646 = 0.0, $4647 = 0.0, $4648 = 0.0, $4649 = 0.0, $465 = 0.0, $4650 = 0.0, $4651 = 0.0; var $4652 = 0.0, $4653 = 0.0, $4654 = 0.0, $4655 = 0.0, $4656 = 0.0, $4657 = 0.0, $4658 = 0.0, $4659 = 0.0, $466 = 0.0, $4660 = 0.0, $4661 = 0.0, $4662 = 0.0, $4663 = 0.0, $4664 = 0.0, $4665 = 0.0, $4666 = 0.0, $4667 = 0.0, $4668 = 0.0, $4669 = 0.0, $467 = 0; var $4670 = 0.0, $4671 = 0.0, $4672 = 0.0, $4673 = 0.0, $4674 = 0.0, $4675 = 0, $4676 = 0, $4677 = 0, $4678 = 0.0, $4679 = 0.0, $468 = 0, $4680 = 0.0, $4681 = 0.0, $4682 = 0.0, $4683 = 0.0, $4684 = 0.0, $4685 = 0, $4686 = 0, $4687 = 0, $4688 = 0; var $4689 = 0.0, $469 = 0, $4690 = 0.0, $4691 = 0.0, $4692 = 0.0, $4693 = 0.0, $4694 = 0.0, $4695 = 0.0, $4696 = 0, $4697 = 0, $4698 = 0, $4699 = 0.0, $47 = 0, $470 = 0.0, $4700 = 0.0, $4701 = 0.0, $4702 = 0.0, $4703 = 0.0, $4704 = 0.0, $4705 = 0.0; var $4706 = 0, $4707 = 0, $4708 = 0, $4709 = 0, $471 = 0, $4710 = 0.0, $4711 = 0.0, $4712 = 0.0, $4713 = 0.0, $4714 = 0.0, $4715 = 0.0, $4716 = 0.0, $4717 = 0.0, $4718 = 0.0, $4719 = 0.0, $472 = 0, $4720 = 0.0, $4721 = 0.0, $4722 = 0.0, $4723 = 0.0; var $4724 = 0.0, $4725 = 0.0, $4726 = 0.0, $4727 = 0.0, $4728 = 0.0, $4729 = 0.0, $473 = 0, $4730 = 0.0, $4731 = 0.0, $4732 = 0, $4733 = 0, $4734 = 0.0, $4735 = 0.0, $4736 = 0.0, $4737 = 0.0, $4738 = 0.0, $4739 = 0.0, $474 = 0.0, $4740 = 0.0, $4741 = 0.0; var $4742 = 0.0, $4743 = 0.0, $4744 = 0.0, $4745 = 0.0, $4746 = 0.0, $4747 = 0.0, $4748 = 0.0, $4749 = 0.0, $475 = 0.0, $4750 = 0.0, $4751 = 0.0, $4752 = 0.0, $4753 = 0.0, $4754 = 0.0, $4755 = 0.0, $4756 = 0.0, $4757 = 0.0, $4758 = 0, $4759 = 0, $476 = 0; var $4760 = 0, $4761 = 0.0, $4762 = 0.0, $4763 = 0.0, $4764 = 0, $4765 = 0, $4766 = 0, $4767 = 0, $4768 = 0.0, $4769 = 0.0, $477 = 0, $4770 = 0.0, $4771 = 0, $4772 = 0, $4773 = 0, $4774 = 0.0, $4775 = 0.0, $4776 = 0.0, $4777 = 0, $4778 = 0; var $4779 = 0, $478 = 0.0, $4780 = 0, $4781 = 0.0, $4782 = 0.0, $4783 = 0.0, $4784 = 0.0, $4785 = 0.0, $4786 = 0.0, $4787 = 0, $4788 = 0, $4789 = 0.0, $479 = 0, $4790 = 0.0, $4791 = 0.0, $4792 = 0.0, $4793 = 0.0, $4794 = 0.0, $4795 = 0.0, $4796 = 0.0; var $4797 = 0.0, $4798 = 0.0, $4799 = 0.0, $48 = 0, $480 = 0, $4800 = 0.0, $4801 = 0.0, $4802 = 0.0, $4803 = 0.0, $4804 = 0.0, $4805 = 0, $4806 = 0, $4807 = 0, $4808 = 0.0, $4809 = 0.0, $481 = 0.0, $4810 = 0.0, $4811 = 0, $4812 = 0, $4813 = 0; var $4814 = 0, $4815 = 0.0, $4816 = 0.0, $4817 = 0.0, $4818 = 0, $4819 = 0, $482 = 0.0, $4820 = 0, $4821 = 0.0, $4822 = 0.0, $4823 = 0.0, $4824 = 0, $4825 = 0, $4826 = 0, $4827 = 0, $4828 = 0.0, $4829 = 0.0, $483 = 0, $4830 = 0.0, $4831 = 0.0; var $4832 = 0.0, $4833 = 0.0, $4834 = 0.0, $4835 = 0.0, $4836 = 0.0, $4837 = 0.0, $4838 = 0, $4839 = 0, $484 = 0, $4840 = 0.0, $4841 = 0.0, $4842 = 0.0, $4843 = 0.0, $4844 = 0.0, $4845 = 0.0, $4846 = 0.0, $4847 = 0.0, $4848 = 0.0, $4849 = 0.0, $485 = 0.0; var $4850 = 0.0, $4851 = 0.0, $4852 = 0.0, $4853 = 0.0, $4854 = 0.0, $4855 = 0.0, $4856 = 0.0, $4857 = 0.0, $4858 = 0.0, $4859 = 0.0, $486 = 0, $4860 = 0.0, $4861 = 0.0, $4862 = 0.0, $4863 = 0.0, $4864 = 0, $4865 = 0, $4866 = 0, $4867 = 0.0, $4868 = 0.0; var $4869 = 0.0, $487 = 0, $4870 = 0, $4871 = 0, $4872 = 0, $4873 = 0, $4874 = 0.0, $4875 = 0.0, $4876 = 0.0, $4877 = 0, $4878 = 0, $4879 = 0, $488 = 0.0, $4880 = 0.0, $4881 = 0.0, $4882 = 0.0, $4883 = 0, $4884 = 0, $4885 = 0, $4886 = 0; var $4887 = 0, $4888 = 0, $4889 = 0, $489 = 0.0, $4890 = 0, $4891 = 0, $4892 = 0, $4893 = 0, $4894 = 0, $4895 = 0, $4896 = 0, $4897 = 0, $4898 = 0, $4899 = 0, $49 = 0.0, $490 = 0, $4900 = 0, $4901 = 0, $4902 = 0, $4903 = 0; var $4904 = 0, $4905 = 0, $4906 = 0, $4907 = 0, $4908 = 0, $4909 = 0, $491 = 0, $4910 = 0, $4911 = 0, $4912 = 0, $4913 = 0, $4914 = 0, $4915 = 0, $4916 = 0, $4917 = 0, $4918 = 0, $4919 = 0, $492 = 0, $4920 = 0, $4921 = 0; var $4922 = 0, $4923 = 0, $4924 = 0, $4925 = 0, $4926 = 0, $4927 = 0, $4928 = 0, $4929 = 0, $493 = 0.0, $4930 = 0, $4931 = 0, $4932 = 0, $4933 = 0, $4934 = 0, $4935 = 0, $4936 = 0, $4937 = 0, $4938 = 0, $4939 = 0, $494 = 0; var $4940 = 0, $4941 = 0, $4942 = 0, $4943 = 0, $4944 = 0, $4945 = 0, $4946 = 0, $4947 = 0, $4948 = 0, $4949 = 0, $495 = 0, $4950 = 0, $4951 = 0, $4952 = 0, $4953 = 0, $4954 = 0.0, $4955 = 0.0, $4956 = 0, $4957 = 0.0, $4958 = 0.0; var $4959 = 0.0, $496 = 0, $4960 = 0, $4961 = 0, $4962 = 0, $4963 = 0, $4964 = 0, $4965 = 0.0, $4966 = 0.0, $4967 = 0, $4968 = 0.0, $4969 = 0.0, $497 = 0.0, $4970 = 0.0, $4971 = 0, $4972 = 0, $4973 = 0, $4974 = 0, $4975 = 0, $4976 = 0; var $4977 = 0, $4978 = 0, $4979 = 0, $498 = 0.0, $4980 = 0, $4981 = 0, $4982 = 0, $4983 = 0, $4984 = 0, $4985 = 0, $4986 = 0.0, $4987 = 0.0, $4988 = 0, $4989 = 0, $499 = 0, $4990 = 0, $4991 = 0, $4992 = 0, $4993 = 0, $4994 = 0; var $4995 = 0, $4996 = 0, $4997 = 0, $4998 = 0, $4999 = 0.0, $5 = 0, $50 = 0, $500 = 0, $5000 = 0, $5001 = 0, $5002 = 0, $5003 = 0, $5004 = 0, $5005 = 0, $5006 = 0, $5007 = 0, $5008 = 0, $5009 = 0, $501 = 0, $5010 = 0; var $5011 = 0, $5012 = 0, $5013 = 0, $5014 = 0, $5015 = 0, $5016 = 0, $5017 = 0, $5018 = 0, $5019 = 0, $502 = 0.0, $5020 = 0.0, $5021 = 0, $5022 = 0, $5023 = 0, $5024 = 0, $5025 = 0, $5026 = 0.0, $5027 = 0, $5028 = 0, $5029 = 0; var $503 = 0, $5030 = 0, $5031 = 0, $5032 = 0, $5033 = 0, $5034 = 0, $5035 = 0, $5036 = 0.0, $5037 = 0, $5038 = 0, $5039 = 0, $504 = 0, $5040 = 0, $5041 = 0, $5042 = 0, $5043 = 0, $5044 = 0, $5045 = 0.0, $5046 = 0, $5047 = 0; var $5048 = 0, $5049 = 0, $505 = 0, $5050 = 0, $5051 = 0, $5052 = 0, $5053 = 0, $5054 = 0, $5055 = 0, $5056 = 0, $5057 = 0, $5058 = 0.0, $5059 = 0, $506 = 0.0, $5060 = 0, $5061 = 0, $5062 = 0.0, $5063 = 0.0, $5064 = 0, $5065 = 0; var $5066 = 0, $5067 = 0, $5068 = 0.0, $5069 = 0, $507 = 0.0, $5070 = 0, $5071 = 0, $5072 = 0.0, $5073 = 0.0, $5074 = 0.0, $5075 = 0, $5076 = 0, $5077 = 0, $5078 = 0, $5079 = 0, $508 = 0.0, $5080 = 0, $5081 = 0, $5082 = 0, $5083 = 0.0; var $5084 = 0, $5085 = 0, $5086 = 0, $5087 = 0.0, $5088 = 0.0, $5089 = 0, $509 = 0.0, $5090 = 0, $5091 = 0, $5092 = 0.0, $5093 = 0, $5094 = 0, $5095 = 0, $5096 = 0.0, $5097 = 0.0, $5098 = 0.0, $5099 = 0, $51 = 0, $510 = 0.0, $5100 = 0; var $5101 = 0, $5102 = 0, $5103 = 0, $5104 = 0, $5105 = 0, $5106 = 0, $5107 = 0, $5108 = 0, $5109 = 0, $511 = 0.0, $5110 = 0, $5111 = 0, $5112 = 0, $5113 = 0, $5114 = 0.0, $5115 = 0, $5116 = 0, $5117 = 0, $5118 = 0, $5119 = 0; var $512 = 0.0, $5120 = 0, $5121 = 0.0, $5122 = 0.0, $5123 = 0, $5124 = 0, $5125 = 0, $5126 = 0, $5127 = 0, $5128 = 0, $5129 = 0, $513 = 0.0, $5130 = 0.0, $5131 = 0, $5132 = 0, $5133 = 0, $5134 = 0, $5135 = 0, $5136 = 0, $5137 = 0.0; var $5138 = 0.0, $5139 = 0, $514 = 0.0, $5140 = 0, $5141 = 0, $5142 = 0, $5143 = 0, $5144 = 0, $5145 = 0, $5146 = 0, $5147 = 0, $5148 = 0.0, $5149 = 0, $515 = 0.0, $5150 = 0, $5151 = 0, $5152 = 0, $5153 = 0, $5154 = 0, $5155 = 0.0; var $5156 = 0.0, $5157 = 0, $5158 = 0, $5159 = 0, $516 = 0.0, $5160 = 0, $5161 = 0, $5162 = 0, $5163 = 0, $5164 = 0.0, $5165 = 0, $5166 = 0, $5167 = 0, $5168 = 0, $5169 = 0, $517 = 0.0, $5170 = 0, $5171 = 0.0, $5172 = 0.0, $5173 = 0; var $5174 = 0, $5175 = 0, $5176 = 0, $5177 = 0, $5178 = 0, $5179 = 0, $518 = 0.0, $5180 = 0, $5181 = 0.0, $5182 = 0, $5183 = 0.0, $5184 = 0, $5185 = 0, $5186 = 0, $5187 = 0, $5188 = 0, $5189 = 0, $519 = 0.0, $5190 = 0.0, $5191 = 0.0; var $5192 = 0.0, $5193 = 0, $5194 = 0, $5195 = 0, $5196 = 0.0, $5197 = 0.0, $5198 = 0.0, $5199 = 0, $52 = 0.0, $520 = 0.0, $5200 = 0, $5201 = 0.0, $5202 = 0, $5203 = 0, $5204 = 0, $5205 = 0.0, $5206 = 0, $5207 = 0, $5208 = 0, $5209 = 0; var $521 = 0.0, $5210 = 0, $5211 = 0, $5212 = 0, $5213 = 0, $5214 = 0.0, $5215 = 0, $5216 = 0.0, $5217 = 0, $5218 = 0, $5219 = 0, $522 = 0, $5220 = 0, $5221 = 0, $5222 = 0, $5223 = 0, $5224 = 0, $5225 = 0, $5226 = 0, $5227 = 0; var $5228 = 0, $5229 = 0, $523 = 0, $5230 = 0, $5231 = 0, $5232 = 0, $5233 = 0, $5234 = 0, $5235 = 0, $5236 = 0.0, $5237 = 0, $5238 = 0, $5239 = 0, $524 = 0.0, $5240 = 0.0, $5241 = 0.0, $5242 = 0.0, $5243 = 0.0, $5244 = 0, $5245 = 0; var $5246 = 0, $5247 = 0.0, $5248 = 0, $5249 = 0, $525 = 0.0, $5250 = 0, $5251 = 0.0, $5252 = 0.0, $5253 = 0.0, $5254 = 0.0, $5255 = 0, $5256 = 0, $5257 = 0, $5258 = 0.0, $5259 = 0, $526 = 0.0, $5260 = 0, $5261 = 0, $5262 = 0, $5263 = 0; var $5264 = 0.0, $5265 = 0.0, $5266 = 0.0, $5267 = 0.0, $5268 = 0, $5269 = 0, $527 = 0.0, $5270 = 0, $5271 = 0.0, $5272 = 0, $5273 = 0, $5274 = 0, $5275 = 0, $5276 = 0, $5277 = 0.0, $5278 = 0.0, $5279 = 0.0, $528 = 0.0, $5280 = 0.0, $5281 = 0; var $5282 = 0, $5283 = 0, $5284 = 0.0, $5285 = 0.0, $5286 = 0.0, $5287 = 0, $5288 = 0.0, $5289 = 0.0, $529 = 0.0, $5290 = 0.0, $5291 = 0.0, $5292 = 0.0, $5293 = 0.0, $5294 = 0, $5295 = 0, $5296 = 0, $5297 = 0, $5298 = 0, $5299 = 0, $53 = 0.0; var $530 = 0.0, $5300 = 0, $5301 = 0, $5302 = 0.0, $5303 = 0.0, $5304 = 0.0, $5305 = 0, $5306 = 0, $5307 = 0, $5308 = 0, $5309 = 0, $531 = 0.0, $5310 = 0, $5311 = 0, $5312 = 0, $5313 = 0, $5314 = 0.0, $5315 = 0.0, $5316 = 0.0, $5317 = 0; var $5318 = 0, $5319 = 0, $532 = 0.0, $5320 = 0, $5321 = 0, $5322 = 0, $5323 = 0, $5324 = 0, $5325 = 0, $5326 = 0, $5327 = 0.0, $5328 = 0.0, $5329 = 0.0, $533 = 0.0, $5330 = 0, $5331 = 0, $5332 = 0, $5333 = 0, $5334 = 0, $5335 = 0; var $5336 = 0, $5337 = 0, $5338 = 0, $5339 = 0, $534 = 0.0, $5340 = 0, $5341 = 0, $5342 = 0, $5343 = 0, $5344 = 0, $5345 = 0, $5346 = 0, $5347 = 0, $5348 = 0, $5349 = 0, $535 = 0.0, $5350 = 0, $5351 = 0, $5352 = 0, $536 = 0.0; var $537 = 0.0, $538 = 0.0, $539 = 0.0, $54 = 0, $540 = 0.0, $541 = 0.0, $542 = 0.0, $543 = 0.0, $544 = 0.0, $545 = 0.0, $546 = 0.0, $547 = 0.0, $548 = 0.0, $549 = 0.0, $55 = 0, $550 = 0.0, $551 = 0.0, $552 = 0.0, $553 = 0, $554 = 0.0; var $555 = 0.0, $556 = 0.0, $557 = 0, $558 = 0, $559 = 0.0, $56 = 0.0, $560 = 0.0, $561 = 0.0, $562 = 0.0, $563 = 0.0, $564 = 0.0, $565 = 0, $566 = 0, $567 = 0.0, $568 = 0.0, $569 = 0.0, $57 = 0.0, $570 = 0, $571 = 0, $572 = 0; var $573 = 0.0, $574 = 0.0, $575 = 0.0, $576 = 0, $577 = 0, $578 = 0.0, $579 = 0.0, $58 = 0, $580 = 0.0, $581 = 0, $582 = 0, $583 = 0, $584 = 0.0, $585 = 0.0, $586 = 0.0, $587 = 0.0, $588 = 0.0, $589 = 0.0, $59 = 0.0, $590 = 0.0; var $591 = 0.0, $592 = 0.0, $593 = 0.0, $594 = 0.0, $595 = 0.0, $596 = 0.0, $597 = 0.0, $598 = 0, $599 = 0, $6 = 0, $60 = 0, $600 = 0.0, $601 = 0.0, $602 = 0.0, $603 = 0.0, $604 = 0.0, $605 = 0.0, $606 = 0.0, $607 = 0.0, $608 = 0.0; var $609 = 0.0, $61 = 0, $610 = 0.0, $611 = 0.0, $612 = 0.0, $613 = 0.0, $614 = 0.0, $615 = 0.0, $616 = 0.0, $617 = 0.0, $618 = 0.0, $619 = 0.0, $62 = 0, $620 = 0.0, $621 = 0.0, $622 = 0.0, $623 = 0.0, $624 = 0.0, $625 = 0.0, $626 = 0.0; var $627 = 0.0, $628 = 0.0, $629 = 0, $63 = 0.0, $630 = 0.0, $631 = 0.0, $632 = 0.0, $633 = 0, $634 = 0, $635 = 0.0, $636 = 0.0, $637 = 0.0, $638 = 0.0, $639 = 0.0, $64 = 0.0, $640 = 0.0, $641 = 0, $642 = 0, $643 = 0.0, $644 = 0.0; var $645 = 0.0, $646 = 0, $647 = 0, $648 = 0, $649 = 0.0, $65 = 0, $650 = 0.0, $651 = 0.0, $652 = 0, $653 = 0, $654 = 0.0, $655 = 0.0, $656 = 0.0, $657 = 0, $658 = 0, $659 = 0, $66 = 0, $660 = 0.0, $661 = 0.0, $662 = 0.0; var $663 = 0, $664 = 0.0, $665 = 0.0, $666 = 0.0, $667 = 0.0, $668 = 0.0, $669 = 0, $67 = 0.0, $670 = 0, $671 = 0.0, $672 = 0.0, $673 = 0, $674 = 0, $675 = 0, $676 = 0.0, $677 = 0, $678 = 0, $679 = 0, $68 = 0, $680 = 0.0; var $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0.0, $687 = 0, $688 = 0, $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0.0, $694 = 0, $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0; var $7 = 0, $70 = 0.0, $700 = 0, $701 = 0.0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0, $708 = 0, $709 = 0.0, $71 = 0.0, $710 = 0, $711 = 0, $712 = 0, $713 = 0, $714 = 0, $715 = 0, $716 = 0; var $717 = 0.0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0.0, $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0, $732 = 0, $733 = 0.0, $734 = 0; var $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0.0, $740 = 0, $741 = 0.0, $742 = 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0.0, $75 = 0, $750 = 0, $751 = 0, $752 = 0; var $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0.0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0, $765 = 0.0, $766 = 0, $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0; var $771 = 0, $772 = 0, $773 = 0.0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0.0, $78 = 0.0, $780 = 0, $781 = 0, $782 = 0.0, $783 = 0.0, $784 = 0, $785 = 0, $786 = 0.0, $787 = 0, $788 = 0, $789 = 0.0; var $79 = 0.0, $790 = 0.0, $791 = 0, $792 = 0, $793 = 0, $794 = 0.0, $795 = 0, $796 = 0, $797 = 0, $798 = 0.0, $799 = 0.0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0.0, $804 = 0, $805 = 0, $806 = 0; var $807 = 0.0, $808 = 0.0, $809 = 0, $81 = 0, $810 = 0, $811 = 0.0, $812 = 0, $813 = 0, $814 = 0.0, $815 = 0.0, $816 = 0, $817 = 0, $818 = 0.0, $819 = 0, $82 = 0, $820 = 0, $821 = 0.0, $822 = 0.0, $823 = 0, $824 = 0; var $825 = 0, $826 = 0.0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0.0, $831 = 0.0, $832 = 0, $833 = 0, $834 = 0, $835 = 0.0, $836 = 0, $837 = 0, $838 = 0, $839 = 0.0, $84 = 0, $840 = 0.0, $841 = 0, $842 = 0; var $843 = 0.0, $844 = 0, $845 = 0, $846 = 0.0, $847 = 0.0, $848 = 0, $849 = 0, $85 = 0, $850 = 0.0, $851 = 0, $852 = 0, $853 = 0.0, $854 = 0.0, $855 = 0, $856 = 0, $857 = 0, $858 = 0.0, $859 = 0, $86 = 0.0, $860 = 0; var $861 = 0, $862 = 0.0, $863 = 0.0, $864 = 0, $865 = 0, $866 = 0, $867 = 0.0, $868 = 0, $869 = 0, $87 = 0, $870 = 0, $871 = 0.0, $872 = 0.0, $873 = 0, $874 = 0.0, $875 = 0.0, $876 = 0.0, $877 = 0.0, $878 = 0.0, $879 = 0.0; var $88 = 0, $880 = 0.0, $881 = 0.0, $882 = 0.0, $883 = 0.0, $884 = 0.0, $885 = 0.0, $886 = 0.0, $887 = 0, $888 = 0, $889 = 0.0, $89 = 0, $890 = 0.0, $891 = 0.0, $892 = 0.0, $893 = 0.0, $894 = 0.0, $895 = 0.0, $896 = 0.0, $897 = 0.0; var $898 = 0.0, $899 = 0.0, $9 = 0, $90 = 0.0, $900 = 0.0, $901 = 0.0, $902 = 0, $903 = 0, $904 = 0.0, $905 = 0.0, $906 = 0.0, $907 = 0.0, $908 = 0.0, $909 = 0.0, $91 = 0, $910 = 0.0, $911 = 0.0, $912 = 0.0, $913 = 0.0, $914 = 0.0; var $915 = 0.0, $916 = 0.0, $917 = 0.0, $918 = 0.0, $919 = 0.0, $92 = 0, $920 = 0.0, $921 = 0.0, $922 = 0.0, $923 = 0.0, $924 = 0.0, $925 = 0.0, $926 = 0.0, $927 = 0.0, $928 = 0.0, $929 = 0.0, $93 = 0, $930 = 0.0, $931 = 0.0, $932 = 0.0; var $933 = 0.0, $934 = 0.0, $935 = 0.0, $936 = 0.0, $937 = 0.0, $938 = 0.0, $939 = 0.0, $94 = 0, $940 = 0.0, $941 = 0.0, $942 = 0.0, $943 = 0.0, $944 = 0.0, $945 = 0.0, $946 = 0.0, $947 = 0.0, $948 = 0.0, $949 = 0.0, $95 = 0, $950 = 0.0; var $951 = 0.0, $952 = 0, $953 = 0, $954 = 0.0, $955 = 0.0, $956 = 0.0, $957 = 0, $958 = 0, $959 = 0.0, $96 = 0.0, $960 = 0.0, $961 = 0.0, $962 = 0, $963 = 0, $964 = 0, $965 = 0.0, $966 = 0.0, $967 = 0.0, $968 = 0, $969 = 0; var $97 = 0, $970 = 0, $971 = 0, $972 = 0.0, $973 = 0.0, $974 = 0.0, $975 = 0.0, $976 = 0.0, $977 = 0.0, $978 = 0.0, $979 = 0.0, $98 = 0, $980 = 0.0, $981 = 0.0, $982 = 0.0, $983 = 0.0, $984 = 0.0, $985 = 0, $986 = 0, $987 = 0.0; var $988 = 0.0, $989 = 0.0, $99 = 0, $990 = 0.0, $991 = 0.0, $992 = 0.0, $993 = 0.0, $994 = 0.0, $995 = 0.0, $996 = 0.0, $997 = 0.0, $998 = 0.0, $999 = 0.0, $M = 0, $ai = 0.0, $ai110 = 0.0, $ai150 = 0.0, $ai202 = 0.0, $ai85 = 0.0, $ar = 0.0; var $ar109 = 0.0, $ar149 = 0.0, $ar201 = 0.0, $ar84 = 0.0, $bi = 0.0, $bi112 = 0.0, $bi152 = 0.0, $bi204 = 0.0, $bi87 = 0.0, $br = 0.0, $br111 = 0.0, $br151 = 0.0, $br203 = 0.0, $br86 = 0.0, $c1 = 0.0, $c1123 = 0.0, $c1167 = 0.0, $c1227 = 0.0, $c1241 = 0, $c131 = 0.0; var $c151 = 0.0, $c2 = 0.0, $c2124 = 0.0, $c2168 = 0.0, $c232 = 0.0, $c3 = 0.0, $c3169 = 0.0, $ci = 0.0, $ci114 = 0.0, $ci154 = 0.0, $ci206 = 0.0, $ci89 = 0.0, $cr = 0.0, $cr113 = 0.0, $cr153 = 0.0, $cr205 = 0.0, $cr88 = 0.0, $di = 0.0, $di116 = 0.0, $di156 = 0.0; var $di208 = 0.0, $dr = 0.0, $dr115 = 0.0, $dr155 = 0.0, $dr207 = 0.0, $ei = 0.0, $ei158 = 0.0, $ei210 = 0.0, $er = 0.0, $er157 = 0.0, $er209 = 0.0, $fi = 0.0, $fi212 = 0.0, $fr = 0.0, $fr211 = 0.0, $gi = 0.0, $gi214 = 0.0, $gr = 0.0, $gr213 = 0.0, $hi = 0.0; var $hr = 0.0, $i = 0, $ind = 0, $ind132 = 0, $ind180 = 0, $ind234 = 0, $ind59 = 0, $ind71 = 0, $ind94 = 0, $k = 0, $k127 = 0, $k173 = 0, $k233 = 0, $k57 = 0, $k68 = 0, $k90 = 0, $ll = 0, $m = 0, $radix = 0, $s1 = 0.0; var $s1125 = 0.0, $s1170 = 0.0, $s1228 = 0.0, $s1242 = 0, $s133 = 0.0, $s152 = 0.0, $s2 = 0.0, $s2126 = 0.0, $s2171 = 0.0, $s234 = 0.0, $s3 = 0.0, $s3172 = 0.0, $t = 0, $tau0i = 0.0, $tau0i10 = 0.0, $tau0i102 = 0.0, $tau0i142 = 0.0, $tau0i18 = 0.0, $tau0i194 = 0.0, $tau0i36 = 0.0; var $tau0i4 = 0.0, $tau0i63 = 0.0, $tau0i77 = 0.0, $tau0r = 0.0, $tau0r101 = 0.0, $tau0r141 = 0.0, $tau0r17 = 0.0, $tau0r193 = 0.0, $tau0r3 = 0.0, $tau0r35 = 0.0, $tau0r62 = 0.0, $tau0r76 = 0.0, $tau0r9 = 0.0, $tau1i = 0.0, $tau1i104 = 0.0, $tau1i12 = 0.0, $tau1i144 = 0.0, $tau1i196 = 0.0, $tau1i2 = 0.0, $tau1i20 = 0.0; var $tau1i38 = 0.0, $tau1i54 = 0.0, $tau1i6 = 0.0, $tau1i65 = 0.0, $tau1i79 = 0.0, $tau1r = 0.0, $tau1r1 = 0.0, $tau1r103 = 0.0, $tau1r11 = 0.0, $tau1r143 = 0.0, $tau1r19 = 0.0, $tau1r195 = 0.0, $tau1r37 = 0.0, $tau1r5 = 0.0, $tau1r53 = 0.0, $tau1r64 = 0.0, $tau1r78 = 0.0, $tau2i = 0.0, $tau2i106 = 0.0, $tau2i14 = 0.0; var $tau2i146 = 0.0, $tau2i198 = 0.0, $tau2i22 = 0.0, $tau2i40 = 0.0, $tau2i56 = 0.0, $tau2i67 = 0.0, $tau2i8 = 0.0, $tau2i81 = 0.0, $tau2r = 0.0, $tau2r105 = 0.0, $tau2r13 = 0.0, $tau2r145 = 0.0, $tau2r197 = 0.0, $tau2r21 = 0.0, $tau2r39 = 0.0, $tau2r55 = 0.0, $tau2r66 = 0.0, $tau2r7 = 0.0, $tau2r80 = 0.0, $tau3i = 0.0; var $tau3i108 = 0.0, $tau3i148 = 0.0, $tau3i16 = 0.0, $tau3i200 = 0.0, $tau3i24 = 0.0, $tau3i42 = 0.0, $tau3i83 = 0.0, $tau3r = 0.0, $tau3r107 = 0.0, $tau3r147 = 0.0, $tau3r15 = 0.0, $tau3r199 = 0.0, $tau3r23 = 0.0, $tau3r41 = 0.0, $tau3r82 = 0.0, $tau4i = 0.0, $tau4i118 = 0.0, $tau4i160 = 0.0, $tau4i216 = 0.0, $tau4i26 = 0.0; var $tau4i44 = 0.0, $tau4r = 0.0, $tau4r117 = 0.0, $tau4r159 = 0.0, $tau4r215 = 0.0, $tau4r25 = 0.0, $tau4r43 = 0.0, $tau5i = 0.0, $tau5i120 = 0.0, $tau5i162 = 0.0, $tau5i218 = 0.0, $tau5i28 = 0.0, $tau5i46 = 0.0, $tau5r = 0.0, $tau5r119 = 0.0, $tau5r161 = 0.0, $tau5r217 = 0.0, $tau5r27 = 0.0, $tau5r45 = 0.0, $tau6i = 0.0; var $tau6i122 = 0.0, $tau6i164 = 0.0, $tau6i220 = 0.0, $tau6i30 = 0.0, $tau6i48 = 0.0, $tau6r = 0.0, $tau6r121 = 0.0, $tau6r163 = 0.0, $tau6r219 = 0.0, $tau6r29 = 0.0, $tau6r47 = 0.0, $tau7i = 0.0, $tau7i166 = 0.0, $tau7i222 = 0.0, $tau7i50 = 0.0, $tau7r = 0.0, $tau7r165 = 0.0, $tau7r221 = 0.0, $tau7r49 = 0.0, $tau8i = 0.0; var $tau8i224 = 0.0, $tau8r = 0.0, $tau8r223 = 0.0, $tau9i = 0.0, $tau9i226 = 0.0, $tau9r = 0.0, $tau9r225 = 0.0, $taui = 0, $taur = 0, $temp1i = 0.0, $temp1i230 = 0.0, $temp1i236 = 0.0, $temp1r = 0.0, $temp1r229 = 0.0, $temp1r235 = 0.0, $temp2i = 0.0, $temp2i232 = 0.0, $temp2i238 = 0.0, $temp2r = 0.0, $temp2r231 = 0.0; var $temp2r237 = 0.0, $tkm = 0, $tkm1 = 0, $tkm1128 = 0, $tkm1174 = 0, $tkm158 = 0, $tkm169 = 0, $tkm191 = 0, $tkm2 = 0, $tkm2129 = 0, $tkm2175 = 0, $tkm270 = 0, $tkm292 = 0, $tkm3 = 0, $tkm3130 = 0, $tkm3176 = 0, $tkm393 = 0, $tkm4 = 0, $tkm4131 = 0, $tkm4177 = 0; var $tkm5 = 0, $tkm5178 = 0, $tkm6 = 0, $tkm6179 = 0, $tkm7 = 0, $tt = 0, $u = 0, $v = 0, $wl2i = 0.0, $wl2i136 = 0.0, $wl2i184 = 0.0, $wl2i75 = 0.0, $wl2i98 = 0.0, $wl2r = 0.0, $wl2r135 = 0.0, $wl2r183 = 0.0, $wl2r74 = 0.0, $wl2r97 = 0.0, $wl3i = 0.0, $wl3i100 = 0.0; var $wl3i138 = 0.0, $wl3i186 = 0.0, $wl3r = 0.0, $wl3r137 = 0.0, $wl3r185 = 0.0, $wl3r99 = 0.0, $wl4i = 0.0, $wl4i140 = 0.0, $wl4i188 = 0.0, $wl4r = 0.0, $wl4r139 = 0.0, $wl4r187 = 0.0, $wl5i = 0.0, $wl5i190 = 0.0, $wl5r = 0.0, $wl5r189 = 0.0, $wl6i = 0.0, $wl6i192 = 0.0, $wl6r = 0.0, $wl6r191 = 0.0; var $wl7i = 0.0, $wl7r = 0.0, $wli = 0.0, $wli134 = 0.0, $wli182 = 0.0, $wli240 = 0, $wli61 = 0.0, $wli73 = 0.0, $wli96 = 0.0, $wlr = 0.0, $wlr133 = 0.0, $wlr181 = 0.0, $wlr239 = 0, $wlr60 = 0.0, $wlr72 = 0.0, $wlr95 = 0.0, $yi = 0, $yr = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 2416|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $op; $1 = $ip; $2 = $obj; $3 = $sgn; $4 = $N; $5 = $l; $6 = $inc; $7 = $4; $8 = ($7|0)>(1); if ($8) { $9 = $6; $10 = $2; $11 = ((($10)) + 8|0); $12 = (($11) + ($9<<2)|0); $13 = HEAP32[$12>>2]|0; $radix = $13; } $14 = $4; $15 = ($14|0)==(1); if ($15) { $16 = $1; $17 = +HEAPF64[$16>>3]; $18 = $0; HEAPF64[$18>>3] = $17; $19 = $1; $20 = ((($19)) + 8|0); $21 = +HEAPF64[$20>>3]; $22 = $0; $23 = ((($22)) + 8|0); HEAPF64[$23>>3] = $21; STACKTOP = sp;return; } $24 = $4; $25 = ($24|0)==(2); if ($25) { $26 = $1; $27 = +HEAPF64[$26>>3]; $28 = $0; HEAPF64[$28>>3] = $27; $29 = $1; $30 = ((($29)) + 8|0); $31 = +HEAPF64[$30>>3]; $32 = $0; $33 = ((($32)) + 8|0); HEAPF64[$33>>3] = $31; $34 = $5; $35 = $1; $36 = (($35) + ($34<<4)|0); $37 = +HEAPF64[$36>>3]; $38 = $0; $39 = ((($38)) + 16|0); HEAPF64[$39>>3] = $37; $40 = $5; $41 = $1; $42 = (($41) + ($40<<4)|0); $43 = ((($42)) + 8|0); $44 = +HEAPF64[$43>>3]; $45 = $0; $46 = ((($45)) + 16|0); $47 = ((($46)) + 8|0); HEAPF64[$47>>3] = $44; $48 = $0; $49 = +HEAPF64[$48>>3]; $tau1r = $49; $50 = $0; $51 = ((($50)) + 8|0); $52 = +HEAPF64[$51>>3]; $tau1i = $52; $53 = $tau1r; $54 = $0; $55 = ((($54)) + 16|0); $56 = +HEAPF64[$55>>3]; $57 = $53 + $56; $58 = $0; HEAPF64[$58>>3] = $57; $59 = $tau1i; $60 = $0; $61 = ((($60)) + 16|0); $62 = ((($61)) + 8|0); $63 = +HEAPF64[$62>>3]; $64 = $59 + $63; $65 = $0; $66 = ((($65)) + 8|0); HEAPF64[$66>>3] = $64; $67 = $tau1r; $68 = $0; $69 = ((($68)) + 16|0); $70 = +HEAPF64[$69>>3]; $71 = $67 - $70; $72 = $0; $73 = ((($72)) + 16|0); HEAPF64[$73>>3] = $71; $74 = $tau1i; $75 = $0; $76 = ((($75)) + 16|0); $77 = ((($76)) + 8|0); $78 = +HEAPF64[$77>>3]; $79 = $74 - $78; $80 = $0; $81 = ((($80)) + 16|0); $82 = ((($81)) + 8|0); HEAPF64[$82>>3] = $79; STACKTOP = sp;return; } $83 = $4; $84 = ($83|0)==(3); if ($84) { $85 = $1; $86 = +HEAPF64[$85>>3]; $87 = $0; HEAPF64[$87>>3] = $86; $88 = $1; $89 = ((($88)) + 8|0); $90 = +HEAPF64[$89>>3]; $91 = $0; $92 = ((($91)) + 8|0); HEAPF64[$92>>3] = $90; $93 = $5; $94 = $1; $95 = (($94) + ($93<<4)|0); $96 = +HEAPF64[$95>>3]; $97 = $0; $98 = ((($97)) + 16|0); HEAPF64[$98>>3] = $96; $99 = $5; $100 = $1; $101 = (($100) + ($99<<4)|0); $102 = ((($101)) + 8|0); $103 = +HEAPF64[$102>>3]; $104 = $0; $105 = ((($104)) + 16|0); $106 = ((($105)) + 8|0); HEAPF64[$106>>3] = $103; $107 = $5; $108 = $107<<1; $109 = $1; $110 = (($109) + ($108<<4)|0); $111 = +HEAPF64[$110>>3]; $112 = $0; $113 = ((($112)) + 32|0); HEAPF64[$113>>3] = $111; $114 = $5; $115 = $114<<1; $116 = $1; $117 = (($116) + ($115<<4)|0); $118 = ((($117)) + 8|0); $119 = +HEAPF64[$118>>3]; $120 = $0; $121 = ((($120)) + 32|0); $122 = ((($121)) + 8|0); HEAPF64[$122>>3] = $119; $123 = $0; $124 = ((($123)) + 16|0); $125 = +HEAPF64[$124>>3]; $126 = $0; $127 = ((($126)) + 32|0); $128 = +HEAPF64[$127>>3]; $129 = $125 + $128; $tau0r = $129; $130 = $0; $131 = ((($130)) + 16|0); $132 = ((($131)) + 8|0); $133 = +HEAPF64[$132>>3]; $134 = $0; $135 = ((($134)) + 32|0); $136 = ((($135)) + 8|0); $137 = +HEAPF64[$136>>3]; $138 = $133 + $137; $tau0i = $138; $139 = $3; $140 = (+($139|0)); $141 = $140 * 0.86602540378000004; $142 = $0; $143 = ((($142)) + 16|0); $144 = +HEAPF64[$143>>3]; $145 = $0; $146 = ((($145)) + 32|0); $147 = +HEAPF64[$146>>3]; $148 = $144 - $147; $149 = $141 * $148; $tau1r1 = $149; $150 = $3; $151 = (+($150|0)); $152 = $151 * 0.86602540378000004; $153 = $0; $154 = ((($153)) + 16|0); $155 = ((($154)) + 8|0); $156 = +HEAPF64[$155>>3]; $157 = $0; $158 = ((($157)) + 32|0); $159 = ((($158)) + 8|0); $160 = +HEAPF64[$159>>3]; $161 = $156 - $160; $162 = $152 * $161; $tau1i2 = $162; $163 = $0; $164 = +HEAPF64[$163>>3]; $165 = $tau0r; $166 = $165 * 0.5; $167 = $164 - $166; $tau2r = $167; $168 = $0; $169 = ((($168)) + 8|0); $170 = +HEAPF64[$169>>3]; $171 = $tau0i; $172 = $171 * 0.5; $173 = $170 - $172; $tau2i = $173; $174 = $tau0r; $175 = $0; $176 = +HEAPF64[$175>>3]; $177 = $174 + $176; $178 = $0; HEAPF64[$178>>3] = $177; $179 = $tau0i; $180 = $0; $181 = ((($180)) + 8|0); $182 = +HEAPF64[$181>>3]; $183 = $179 + $182; $184 = $0; $185 = ((($184)) + 8|0); HEAPF64[$185>>3] = $183; $186 = $tau2r; $187 = $tau1i2; $188 = $186 + $187; $189 = $0; $190 = ((($189)) + 16|0); HEAPF64[$190>>3] = $188; $191 = $tau2i; $192 = $tau1r1; $193 = $191 - $192; $194 = $0; $195 = ((($194)) + 16|0); $196 = ((($195)) + 8|0); HEAPF64[$196>>3] = $193; $197 = $tau2r; $198 = $tau1i2; $199 = $197 - $198; $200 = $0; $201 = ((($200)) + 32|0); HEAPF64[$201>>3] = $199; $202 = $tau2i; $203 = $tau1r1; $204 = $202 + $203; $205 = $0; $206 = ((($205)) + 32|0); $207 = ((($206)) + 8|0); HEAPF64[$207>>3] = $204; STACKTOP = sp;return; } $208 = $4; $209 = ($208|0)==(4); if ($209) { $210 = $1; $211 = +HEAPF64[$210>>3]; $212 = $0; HEAPF64[$212>>3] = $211; $213 = $1; $214 = ((($213)) + 8|0); $215 = +HEAPF64[$214>>3]; $216 = $0; $217 = ((($216)) + 8|0); HEAPF64[$217>>3] = $215; $218 = $5; $219 = $1; $220 = (($219) + ($218<<4)|0); $221 = +HEAPF64[$220>>3]; $222 = $0; $223 = ((($222)) + 16|0); HEAPF64[$223>>3] = $221; $224 = $5; $225 = $1; $226 = (($225) + ($224<<4)|0); $227 = ((($226)) + 8|0); $228 = +HEAPF64[$227>>3]; $229 = $0; $230 = ((($229)) + 16|0); $231 = ((($230)) + 8|0); HEAPF64[$231>>3] = $228; $232 = $5; $233 = $232<<1; $234 = $1; $235 = (($234) + ($233<<4)|0); $236 = +HEAPF64[$235>>3]; $237 = $0; $238 = ((($237)) + 32|0); HEAPF64[$238>>3] = $236; $239 = $5; $240 = $239<<1; $241 = $1; $242 = (($241) + ($240<<4)|0); $243 = ((($242)) + 8|0); $244 = +HEAPF64[$243>>3]; $245 = $0; $246 = ((($245)) + 32|0); $247 = ((($246)) + 8|0); HEAPF64[$247>>3] = $244; $248 = $5; $249 = ($248*3)|0; $250 = $1; $251 = (($250) + ($249<<4)|0); $252 = +HEAPF64[$251>>3]; $253 = $0; $254 = ((($253)) + 48|0); HEAPF64[$254>>3] = $252; $255 = $5; $256 = ($255*3)|0; $257 = $1; $258 = (($257) + ($256<<4)|0); $259 = ((($258)) + 8|0); $260 = +HEAPF64[$259>>3]; $261 = $0; $262 = ((($261)) + 48|0); $263 = ((($262)) + 8|0); HEAPF64[$263>>3] = $260; $264 = $0; $265 = +HEAPF64[$264>>3]; $266 = $0; $267 = ((($266)) + 32|0); $268 = +HEAPF64[$267>>3]; $269 = $265 + $268; $tau0r3 = $269; $270 = $0; $271 = ((($270)) + 8|0); $272 = +HEAPF64[$271>>3]; $273 = $0; $274 = ((($273)) + 32|0); $275 = ((($274)) + 8|0); $276 = +HEAPF64[$275>>3]; $277 = $272 + $276; $tau0i4 = $277; $278 = $0; $279 = +HEAPF64[$278>>3]; $280 = $0; $281 = ((($280)) + 32|0); $282 = +HEAPF64[$281>>3]; $283 = $279 - $282; $tau1r5 = $283; $284 = $0; $285 = ((($284)) + 8|0); $286 = +HEAPF64[$285>>3]; $287 = $0; $288 = ((($287)) + 32|0); $289 = ((($288)) + 8|0); $290 = +HEAPF64[$289>>3]; $291 = $286 - $290; $tau1i6 = $291; $292 = $0; $293 = ((($292)) + 16|0); $294 = +HEAPF64[$293>>3]; $295 = $0; $296 = ((($295)) + 48|0); $297 = +HEAPF64[$296>>3]; $298 = $294 + $297; $tau2r7 = $298; $299 = $0; $300 = ((($299)) + 16|0); $301 = ((($300)) + 8|0); $302 = +HEAPF64[$301>>3]; $303 = $0; $304 = ((($303)) + 48|0); $305 = ((($304)) + 8|0); $306 = +HEAPF64[$305>>3]; $307 = $302 + $306; $tau2i8 = $307; $308 = $3; $309 = (+($308|0)); $310 = $0; $311 = ((($310)) + 16|0); $312 = +HEAPF64[$311>>3]; $313 = $0; $314 = ((($313)) + 48|0); $315 = +HEAPF64[$314>>3]; $316 = $312 - $315; $317 = $309 * $316; $tau3r = $317; $318 = $3; $319 = (+($318|0)); $320 = $0; $321 = ((($320)) + 16|0); $322 = ((($321)) + 8|0); $323 = +HEAPF64[$322>>3]; $324 = $0; $325 = ((($324)) + 48|0); $326 = ((($325)) + 8|0); $327 = +HEAPF64[$326>>3]; $328 = $323 - $327; $329 = $319 * $328; $tau3i = $329; $330 = $tau0r3; $331 = $tau2r7; $332 = $330 + $331; $333 = $0; HEAPF64[$333>>3] = $332; $334 = $tau0i4; $335 = $tau2i8; $336 = $334 + $335; $337 = $0; $338 = ((($337)) + 8|0); HEAPF64[$338>>3] = $336; $339 = $tau1r5; $340 = $tau3i; $341 = $339 + $340; $342 = $0; $343 = ((($342)) + 16|0); HEAPF64[$343>>3] = $341; $344 = $tau1i6; $345 = $tau3r; $346 = $344 - $345; $347 = $0; $348 = ((($347)) + 16|0); $349 = ((($348)) + 8|0); HEAPF64[$349>>3] = $346; $350 = $tau0r3; $351 = $tau2r7; $352 = $350 - $351; $353 = $0; $354 = ((($353)) + 32|0); HEAPF64[$354>>3] = $352; $355 = $tau0i4; $356 = $tau2i8; $357 = $355 - $356; $358 = $0; $359 = ((($358)) + 32|0); $360 = ((($359)) + 8|0); HEAPF64[$360>>3] = $357; $361 = $tau1r5; $362 = $tau3i; $363 = $361 - $362; $364 = $0; $365 = ((($364)) + 48|0); HEAPF64[$365>>3] = $363; $366 = $tau1i6; $367 = $tau3r; $368 = $366 + $367; $369 = $0; $370 = ((($369)) + 48|0); $371 = ((($370)) + 8|0); HEAPF64[$371>>3] = $368; STACKTOP = sp;return; } $372 = $4; $373 = ($372|0)==(5); if ($373) { $374 = $1; $375 = +HEAPF64[$374>>3]; $376 = $0; HEAPF64[$376>>3] = $375; $377 = $1; $378 = ((($377)) + 8|0); $379 = +HEAPF64[$378>>3]; $380 = $0; $381 = ((($380)) + 8|0); HEAPF64[$381>>3] = $379; $382 = $5; $383 = $1; $384 = (($383) + ($382<<4)|0); $385 = +HEAPF64[$384>>3]; $386 = $0; $387 = ((($386)) + 16|0); HEAPF64[$387>>3] = $385; $388 = $5; $389 = $1; $390 = (($389) + ($388<<4)|0); $391 = ((($390)) + 8|0); $392 = +HEAPF64[$391>>3]; $393 = $0; $394 = ((($393)) + 16|0); $395 = ((($394)) + 8|0); HEAPF64[$395>>3] = $392; $396 = $5; $397 = $396<<1; $398 = $1; $399 = (($398) + ($397<<4)|0); $400 = +HEAPF64[$399>>3]; $401 = $0; $402 = ((($401)) + 32|0); HEAPF64[$402>>3] = $400; $403 = $5; $404 = $403<<1; $405 = $1; $406 = (($405) + ($404<<4)|0); $407 = ((($406)) + 8|0); $408 = +HEAPF64[$407>>3]; $409 = $0; $410 = ((($409)) + 32|0); $411 = ((($410)) + 8|0); HEAPF64[$411>>3] = $408; $412 = $5; $413 = ($412*3)|0; $414 = $1; $415 = (($414) + ($413<<4)|0); $416 = +HEAPF64[$415>>3]; $417 = $0; $418 = ((($417)) + 48|0); HEAPF64[$418>>3] = $416; $419 = $5; $420 = ($419*3)|0; $421 = $1; $422 = (($421) + ($420<<4)|0); $423 = ((($422)) + 8|0); $424 = +HEAPF64[$423>>3]; $425 = $0; $426 = ((($425)) + 48|0); $427 = ((($426)) + 8|0); HEAPF64[$427>>3] = $424; $428 = $5; $429 = $428<<2; $430 = $1; $431 = (($430) + ($429<<4)|0); $432 = +HEAPF64[$431>>3]; $433 = $0; $434 = ((($433)) + 64|0); HEAPF64[$434>>3] = $432; $435 = $5; $436 = $435<<2; $437 = $1; $438 = (($437) + ($436<<4)|0); $439 = ((($438)) + 8|0); $440 = +HEAPF64[$439>>3]; $441 = $0; $442 = ((($441)) + 64|0); $443 = ((($442)) + 8|0); HEAPF64[$443>>3] = $440; $c1 = 0.30901699437000002; $c2 = -0.80901699436999996; $s1 = 0.95105651628999998; $s2 = 0.58778525229; $444 = $0; $445 = ((($444)) + 16|0); $446 = +HEAPF64[$445>>3]; $447 = $0; $448 = ((($447)) + 64|0); $449 = +HEAPF64[$448>>3]; $450 = $446 + $449; $tau0r9 = $450; $451 = $0; $452 = ((($451)) + 16|0); $453 = +HEAPF64[$452>>3]; $454 = $0; $455 = ((($454)) + 64|0); $456 = +HEAPF64[$455>>3]; $457 = $453 - $456; $tau2r13 = $457; $458 = $0; $459 = ((($458)) + 16|0); $460 = ((($459)) + 8|0); $461 = +HEAPF64[$460>>3]; $462 = $0; $463 = ((($462)) + 64|0); $464 = ((($463)) + 8|0); $465 = +HEAPF64[$464>>3]; $466 = $461 + $465; $tau0i10 = $466; $467 = $0; $468 = ((($467)) + 16|0); $469 = ((($468)) + 8|0); $470 = +HEAPF64[$469>>3]; $471 = $0; $472 = ((($471)) + 64|0); $473 = ((($472)) + 8|0); $474 = +HEAPF64[$473>>3]; $475 = $470 - $474; $tau2i14 = $475; $476 = $0; $477 = ((($476)) + 32|0); $478 = +HEAPF64[$477>>3]; $479 = $0; $480 = ((($479)) + 48|0); $481 = +HEAPF64[$480>>3]; $482 = $478 + $481; $tau1r11 = $482; $483 = $0; $484 = ((($483)) + 32|0); $485 = +HEAPF64[$484>>3]; $486 = $0; $487 = ((($486)) + 48|0); $488 = +HEAPF64[$487>>3]; $489 = $485 - $488; $tau3r15 = $489; $490 = $0; $491 = ((($490)) + 32|0); $492 = ((($491)) + 8|0); $493 = +HEAPF64[$492>>3]; $494 = $0; $495 = ((($494)) + 48|0); $496 = ((($495)) + 8|0); $497 = +HEAPF64[$496>>3]; $498 = $493 + $497; $tau1i12 = $498; $499 = $0; $500 = ((($499)) + 32|0); $501 = ((($500)) + 8|0); $502 = +HEAPF64[$501>>3]; $503 = $0; $504 = ((($503)) + 48|0); $505 = ((($504)) + 8|0); $506 = +HEAPF64[$505>>3]; $507 = $502 - $506; $tau3i16 = $507; $508 = $c1; $509 = $tau0r9; $510 = $508 * $509; $511 = $c2; $512 = $tau1r11; $513 = $511 * $512; $514 = $510 + $513; $tau4r = $514; $515 = $c1; $516 = $tau0i10; $517 = $515 * $516; $518 = $c2; $519 = $tau1i12; $520 = $518 * $519; $521 = $517 + $520; $tau4i = $521; $522 = $3; $523 = ($522|0)==(1); $524 = $s1; if ($523) { $525 = $tau2r13; $526 = $524 * $525; $527 = $s2; $528 = $tau3r15; $529 = $527 * $528; $530 = $526 + $529; $tau5r = $530; $531 = $s1; $532 = $tau2i14; $533 = $531 * $532; $534 = $s2; $535 = $tau3i16; $536 = $534 * $535; $537 = $533 + $536; $tau5i = $537; } else { $538 = -$524; $539 = $tau2r13; $540 = $538 * $539; $541 = $s2; $542 = $tau3r15; $543 = $541 * $542; $544 = $540 - $543; $tau5r = $544; $545 = $s1; $546 = -$545; $547 = $tau2i14; $548 = $546 * $547; $549 = $s2; $550 = $tau3i16; $551 = $549 * $550; $552 = $548 - $551; $tau5i = $552; } $553 = $0; $554 = +HEAPF64[$553>>3]; $555 = $tau4r; $556 = $554 + $555; $tau6r = $556; $557 = $0; $558 = ((($557)) + 8|0); $559 = +HEAPF64[$558>>3]; $560 = $tau4i; $561 = $559 + $560; $tau6i = $561; $562 = $tau6r; $563 = $tau5i; $564 = $562 + $563; $565 = $0; $566 = ((($565)) + 16|0); HEAPF64[$566>>3] = $564; $567 = $tau6i; $568 = $tau5r; $569 = $567 - $568; $570 = $0; $571 = ((($570)) + 16|0); $572 = ((($571)) + 8|0); HEAPF64[$572>>3] = $569; $573 = $tau6r; $574 = $tau5i; $575 = $573 - $574; $576 = $0; $577 = ((($576)) + 64|0); HEAPF64[$577>>3] = $575; $578 = $tau6i; $579 = $tau5r; $580 = $578 + $579; $581 = $0; $582 = ((($581)) + 64|0); $583 = ((($582)) + 8|0); HEAPF64[$583>>3] = $580; $584 = $c2; $585 = $tau0r9; $586 = $584 * $585; $587 = $c1; $588 = $tau1r11; $589 = $587 * $588; $590 = $586 + $589; $tau4r = $590; $591 = $c2; $592 = $tau0i10; $593 = $591 * $592; $594 = $c1; $595 = $tau1i12; $596 = $594 * $595; $597 = $593 + $596; $tau4i = $597; $598 = $3; $599 = ($598|0)==(1); $600 = $s2; if ($599) { $601 = $tau2r13; $602 = $600 * $601; $603 = $s1; $604 = $tau3r15; $605 = $603 * $604; $606 = $602 - $605; $tau5r = $606; $607 = $s2; $608 = $tau2i14; $609 = $607 * $608; $610 = $s1; $611 = $tau3i16; $612 = $610 * $611; $613 = $609 - $612; $tau5i = $613; } else { $614 = -$600; $615 = $tau2r13; $616 = $614 * $615; $617 = $s1; $618 = $tau3r15; $619 = $617 * $618; $620 = $616 + $619; $tau5r = $620; $621 = $s2; $622 = -$621; $623 = $tau2i14; $624 = $622 * $623; $625 = $s1; $626 = $tau3i16; $627 = $625 * $626; $628 = $624 + $627; $tau5i = $628; } $629 = $0; $630 = +HEAPF64[$629>>3]; $631 = $tau4r; $632 = $630 + $631; $tau6r = $632; $633 = $0; $634 = ((($633)) + 8|0); $635 = +HEAPF64[$634>>3]; $636 = $tau4i; $637 = $635 + $636; $tau6i = $637; $638 = $tau6r; $639 = $tau5i; $640 = $638 + $639; $641 = $0; $642 = ((($641)) + 32|0); HEAPF64[$642>>3] = $640; $643 = $tau6i; $644 = $tau5r; $645 = $643 - $644; $646 = $0; $647 = ((($646)) + 32|0); $648 = ((($647)) + 8|0); HEAPF64[$648>>3] = $645; $649 = $tau6r; $650 = $tau5i; $651 = $649 - $650; $652 = $0; $653 = ((($652)) + 48|0); HEAPF64[$653>>3] = $651; $654 = $tau6i; $655 = $tau5r; $656 = $654 + $655; $657 = $0; $658 = ((($657)) + 48|0); $659 = ((($658)) + 8|0); HEAPF64[$659>>3] = $656; $660 = $tau0r9; $661 = $tau1r11; $662 = $660 + $661; $663 = $0; $664 = +HEAPF64[$663>>3]; $665 = $664 + $662; HEAPF64[$663>>3] = $665; $666 = $tau0i10; $667 = $tau1i12; $668 = $666 + $667; $669 = $0; $670 = ((($669)) + 8|0); $671 = +HEAPF64[$670>>3]; $672 = $671 + $668; HEAPF64[$670>>3] = $672; STACKTOP = sp;return; } $673 = $4; $674 = ($673|0)==(7); if ($674) { $675 = $1; $676 = +HEAPF64[$675>>3]; $677 = $0; HEAPF64[$677>>3] = $676; $678 = $1; $679 = ((($678)) + 8|0); $680 = +HEAPF64[$679>>3]; $681 = $0; $682 = ((($681)) + 8|0); HEAPF64[$682>>3] = $680; $683 = $5; $684 = $1; $685 = (($684) + ($683<<4)|0); $686 = +HEAPF64[$685>>3]; $687 = $0; $688 = ((($687)) + 16|0); HEAPF64[$688>>3] = $686; $689 = $5; $690 = $1; $691 = (($690) + ($689<<4)|0); $692 = ((($691)) + 8|0); $693 = +HEAPF64[$692>>3]; $694 = $0; $695 = ((($694)) + 16|0); $696 = ((($695)) + 8|0); HEAPF64[$696>>3] = $693; $697 = $5; $698 = $697<<1; $699 = $1; $700 = (($699) + ($698<<4)|0); $701 = +HEAPF64[$700>>3]; $702 = $0; $703 = ((($702)) + 32|0); HEAPF64[$703>>3] = $701; $704 = $5; $705 = $704<<1; $706 = $1; $707 = (($706) + ($705<<4)|0); $708 = ((($707)) + 8|0); $709 = +HEAPF64[$708>>3]; $710 = $0; $711 = ((($710)) + 32|0); $712 = ((($711)) + 8|0); HEAPF64[$712>>3] = $709; $713 = $5; $714 = ($713*3)|0; $715 = $1; $716 = (($715) + ($714<<4)|0); $717 = +HEAPF64[$716>>3]; $718 = $0; $719 = ((($718)) + 48|0); HEAPF64[$719>>3] = $717; $720 = $5; $721 = ($720*3)|0; $722 = $1; $723 = (($722) + ($721<<4)|0); $724 = ((($723)) + 8|0); $725 = +HEAPF64[$724>>3]; $726 = $0; $727 = ((($726)) + 48|0); $728 = ((($727)) + 8|0); HEAPF64[$728>>3] = $725; $729 = $5; $730 = $729<<2; $731 = $1; $732 = (($731) + ($730<<4)|0); $733 = +HEAPF64[$732>>3]; $734 = $0; $735 = ((($734)) + 64|0); HEAPF64[$735>>3] = $733; $736 = $5; $737 = $736<<2; $738 = $1; $739 = (($738) + ($737<<4)|0); $740 = ((($739)) + 8|0); $741 = +HEAPF64[$740>>3]; $742 = $0; $743 = ((($742)) + 64|0); $744 = ((($743)) + 8|0); HEAPF64[$744>>3] = $741; $745 = $5; $746 = ($745*5)|0; $747 = $1; $748 = (($747) + ($746<<4)|0); $749 = +HEAPF64[$748>>3]; $750 = $0; $751 = ((($750)) + 80|0); HEAPF64[$751>>3] = $749; $752 = $5; $753 = ($752*5)|0; $754 = $1; $755 = (($754) + ($753<<4)|0); $756 = ((($755)) + 8|0); $757 = +HEAPF64[$756>>3]; $758 = $0; $759 = ((($758)) + 80|0); $760 = ((($759)) + 8|0); HEAPF64[$760>>3] = $757; $761 = $5; $762 = ($761*6)|0; $763 = $1; $764 = (($763) + ($762<<4)|0); $765 = +HEAPF64[$764>>3]; $766 = $0; $767 = ((($766)) + 96|0); HEAPF64[$767>>3] = $765; $768 = $5; $769 = ($768*6)|0; $770 = $1; $771 = (($770) + ($769<<4)|0); $772 = ((($771)) + 8|0); $773 = +HEAPF64[$772>>3]; $774 = $0; $775 = ((($774)) + 96|0); $776 = ((($775)) + 8|0); HEAPF64[$776>>3] = $773; $c131 = 0.62348980185000002; $c232 = -0.22252093395; $c3 = -0.90096886789999997; $s133 = 0.78183148246; $s234 = 0.97492791217999996; $s3 = 0.43388373911; $777 = $0; $778 = ((($777)) + 16|0); $779 = +HEAPF64[$778>>3]; $780 = $0; $781 = ((($780)) + 96|0); $782 = +HEAPF64[$781>>3]; $783 = $779 + $782; $tau0r17 = $783; $784 = $0; $785 = ((($784)) + 16|0); $786 = +HEAPF64[$785>>3]; $787 = $0; $788 = ((($787)) + 96|0); $789 = +HEAPF64[$788>>3]; $790 = $786 - $789; $tau3r23 = $790; $791 = $0; $792 = ((($791)) + 16|0); $793 = ((($792)) + 8|0); $794 = +HEAPF64[$793>>3]; $795 = $0; $796 = ((($795)) + 96|0); $797 = ((($796)) + 8|0); $798 = +HEAPF64[$797>>3]; $799 = $794 + $798; $tau0i18 = $799; $800 = $0; $801 = ((($800)) + 16|0); $802 = ((($801)) + 8|0); $803 = +HEAPF64[$802>>3]; $804 = $0; $805 = ((($804)) + 96|0); $806 = ((($805)) + 8|0); $807 = +HEAPF64[$806>>3]; $808 = $803 - $807; $tau3i24 = $808; $809 = $0; $810 = ((($809)) + 32|0); $811 = +HEAPF64[$810>>3]; $812 = $0; $813 = ((($812)) + 80|0); $814 = +HEAPF64[$813>>3]; $815 = $811 + $814; $tau1r19 = $815; $816 = $0; $817 = ((($816)) + 32|0); $818 = +HEAPF64[$817>>3]; $819 = $0; $820 = ((($819)) + 80|0); $821 = +HEAPF64[$820>>3]; $822 = $818 - $821; $tau4r25 = $822; $823 = $0; $824 = ((($823)) + 32|0); $825 = ((($824)) + 8|0); $826 = +HEAPF64[$825>>3]; $827 = $0; $828 = ((($827)) + 80|0); $829 = ((($828)) + 8|0); $830 = +HEAPF64[$829>>3]; $831 = $826 + $830; $tau1i20 = $831; $832 = $0; $833 = ((($832)) + 32|0); $834 = ((($833)) + 8|0); $835 = +HEAPF64[$834>>3]; $836 = $0; $837 = ((($836)) + 80|0); $838 = ((($837)) + 8|0); $839 = +HEAPF64[$838>>3]; $840 = $835 - $839; $tau4i26 = $840; $841 = $0; $842 = ((($841)) + 48|0); $843 = +HEAPF64[$842>>3]; $844 = $0; $845 = ((($844)) + 64|0); $846 = +HEAPF64[$845>>3]; $847 = $843 + $846; $tau2r21 = $847; $848 = $0; $849 = ((($848)) + 48|0); $850 = +HEAPF64[$849>>3]; $851 = $0; $852 = ((($851)) + 64|0); $853 = +HEAPF64[$852>>3]; $854 = $850 - $853; $tau5r27 = $854; $855 = $0; $856 = ((($855)) + 48|0); $857 = ((($856)) + 8|0); $858 = +HEAPF64[$857>>3]; $859 = $0; $860 = ((($859)) + 64|0); $861 = ((($860)) + 8|0); $862 = +HEAPF64[$861>>3]; $863 = $858 + $862; $tau2i22 = $863; $864 = $0; $865 = ((($864)) + 48|0); $866 = ((($865)) + 8|0); $867 = +HEAPF64[$866>>3]; $868 = $0; $869 = ((($868)) + 64|0); $870 = ((($869)) + 8|0); $871 = +HEAPF64[$870>>3]; $872 = $867 - $871; $tau5i28 = $872; $873 = $0; $874 = +HEAPF64[$873>>3]; $875 = $c131; $876 = $tau0r17; $877 = $875 * $876; $878 = $874 + $877; $879 = $c232; $880 = $tau1r19; $881 = $879 * $880; $882 = $878 + $881; $883 = $c3; $884 = $tau2r21; $885 = $883 * $884; $886 = $882 + $885; $tau6r29 = $886; $887 = $0; $888 = ((($887)) + 8|0); $889 = +HEAPF64[$888>>3]; $890 = $c131; $891 = $tau0i18; $892 = $890 * $891; $893 = $889 + $892; $894 = $c232; $895 = $tau1i20; $896 = $894 * $895; $897 = $893 + $896; $898 = $c3; $899 = $tau2i22; $900 = $898 * $899; $901 = $897 + $900; $tau6i30 = $901; $902 = $3; $903 = ($902|0)==(1); $904 = $s133; if ($903) { $905 = -$904; $906 = $tau3r23; $907 = $905 * $906; $908 = $s234; $909 = $tau4r25; $910 = $908 * $909; $911 = $907 - $910; $912 = $s3; $913 = $tau5r27; $914 = $912 * $913; $915 = $911 - $914; $tau7r = $915; $916 = $s133; $917 = -$916; $918 = $tau3i24; $919 = $917 * $918; $920 = $s234; $921 = $tau4i26; $922 = $920 * $921; $923 = $919 - $922; $924 = $s3; $925 = $tau5i28; $926 = $924 * $925; $927 = $923 - $926; $tau7i = $927; } else { $928 = $tau3r23; $929 = $904 * $928; $930 = $s234; $931 = $tau4r25; $932 = $930 * $931; $933 = $929 + $932; $934 = $s3; $935 = $tau5r27; $936 = $934 * $935; $937 = $933 + $936; $tau7r = $937; $938 = $s133; $939 = $tau3i24; $940 = $938 * $939; $941 = $s234; $942 = $tau4i26; $943 = $941 * $942; $944 = $940 + $943; $945 = $s3; $946 = $tau5i28; $947 = $945 * $946; $948 = $944 + $947; $tau7i = $948; } $949 = $tau6r29; $950 = $tau7i; $951 = $949 - $950; $952 = $0; $953 = ((($952)) + 16|0); HEAPF64[$953>>3] = $951; $954 = $tau6r29; $955 = $tau7i; $956 = $954 + $955; $957 = $0; $958 = ((($957)) + 96|0); HEAPF64[$958>>3] = $956; $959 = $tau6i30; $960 = $tau7r; $961 = $959 + $960; $962 = $0; $963 = ((($962)) + 16|0); $964 = ((($963)) + 8|0); HEAPF64[$964>>3] = $961; $965 = $tau6i30; $966 = $tau7r; $967 = $965 - $966; $968 = $0; $969 = ((($968)) + 96|0); $970 = ((($969)) + 8|0); HEAPF64[$970>>3] = $967; $971 = $0; $972 = +HEAPF64[$971>>3]; $973 = $c232; $974 = $tau0r17; $975 = $973 * $974; $976 = $972 + $975; $977 = $c3; $978 = $tau1r19; $979 = $977 * $978; $980 = $976 + $979; $981 = $c131; $982 = $tau2r21; $983 = $981 * $982; $984 = $980 + $983; $tau6r29 = $984; $985 = $0; $986 = ((($985)) + 8|0); $987 = +HEAPF64[$986>>3]; $988 = $c232; $989 = $tau0i18; $990 = $988 * $989; $991 = $987 + $990; $992 = $c3; $993 = $tau1i20; $994 = $992 * $993; $995 = $991 + $994; $996 = $c131; $997 = $tau2i22; $998 = $996 * $997; $999 = $995 + $998; $tau6i30 = $999; $1000 = $3; $1001 = ($1000|0)==(1); $1002 = $s234; if ($1001) { $1003 = -$1002; $1004 = $tau3r23; $1005 = $1003 * $1004; $1006 = $s3; $1007 = $tau4r25; $1008 = $1006 * $1007; $1009 = $1005 + $1008; $1010 = $s133; $1011 = $tau5r27; $1012 = $1010 * $1011; $1013 = $1009 + $1012; $tau7r = $1013; $1014 = $s234; $1015 = -$1014; $1016 = $tau3i24; $1017 = $1015 * $1016; $1018 = $s3; $1019 = $tau4i26; $1020 = $1018 * $1019; $1021 = $1017 + $1020; $1022 = $s133; $1023 = $tau5i28; $1024 = $1022 * $1023; $1025 = $1021 + $1024; $tau7i = $1025; } else { $1026 = $tau3r23; $1027 = $1002 * $1026; $1028 = $s3; $1029 = $tau4r25; $1030 = $1028 * $1029; $1031 = $1027 - $1030; $1032 = $s133; $1033 = $tau5r27; $1034 = $1032 * $1033; $1035 = $1031 - $1034; $tau7r = $1035; $1036 = $s234; $1037 = $tau3i24; $1038 = $1036 * $1037; $1039 = $s3; $1040 = $tau4i26; $1041 = $1039 * $1040; $1042 = $1038 - $1041; $1043 = $s133; $1044 = $tau5i28; $1045 = $1043 * $1044; $1046 = $1042 - $1045; $tau7i = $1046; } $1047 = $tau6r29; $1048 = $tau7i; $1049 = $1047 - $1048; $1050 = $0; $1051 = ((($1050)) + 32|0); HEAPF64[$1051>>3] = $1049; $1052 = $tau6r29; $1053 = $tau7i; $1054 = $1052 + $1053; $1055 = $0; $1056 = ((($1055)) + 80|0); HEAPF64[$1056>>3] = $1054; $1057 = $tau6i30; $1058 = $tau7r; $1059 = $1057 + $1058; $1060 = $0; $1061 = ((($1060)) + 32|0); $1062 = ((($1061)) + 8|0); HEAPF64[$1062>>3] = $1059; $1063 = $tau6i30; $1064 = $tau7r; $1065 = $1063 - $1064; $1066 = $0; $1067 = ((($1066)) + 80|0); $1068 = ((($1067)) + 8|0); HEAPF64[$1068>>3] = $1065; $1069 = $0; $1070 = +HEAPF64[$1069>>3]; $1071 = $c3; $1072 = $tau0r17; $1073 = $1071 * $1072; $1074 = $1070 + $1073; $1075 = $c131; $1076 = $tau1r19; $1077 = $1075 * $1076; $1078 = $1074 + $1077; $1079 = $c232; $1080 = $tau2r21; $1081 = $1079 * $1080; $1082 = $1078 + $1081; $tau6r29 = $1082; $1083 = $0; $1084 = ((($1083)) + 8|0); $1085 = +HEAPF64[$1084>>3]; $1086 = $c3; $1087 = $tau0i18; $1088 = $1086 * $1087; $1089 = $1085 + $1088; $1090 = $c131; $1091 = $tau1i20; $1092 = $1090 * $1091; $1093 = $1089 + $1092; $1094 = $c232; $1095 = $tau2i22; $1096 = $1094 * $1095; $1097 = $1093 + $1096; $tau6i30 = $1097; $1098 = $3; $1099 = ($1098|0)==(1); $1100 = $s3; if ($1099) { $1101 = -$1100; $1102 = $tau3r23; $1103 = $1101 * $1102; $1104 = $s133; $1105 = $tau4r25; $1106 = $1104 * $1105; $1107 = $1103 + $1106; $1108 = $s234; $1109 = $tau5r27; $1110 = $1108 * $1109; $1111 = $1107 - $1110; $tau7r = $1111; $1112 = $s3; $1113 = -$1112; $1114 = $tau3i24; $1115 = $1113 * $1114; $1116 = $s133; $1117 = $tau4i26; $1118 = $1116 * $1117; $1119 = $1115 + $1118; $1120 = $s234; $1121 = $tau5i28; $1122 = $1120 * $1121; $1123 = $1119 - $1122; $tau7i = $1123; } else { $1124 = $tau3r23; $1125 = $1100 * $1124; $1126 = $s133; $1127 = $tau4r25; $1128 = $1126 * $1127; $1129 = $1125 - $1128; $1130 = $s234; $1131 = $tau5r27; $1132 = $1130 * $1131; $1133 = $1129 + $1132; $tau7r = $1133; $1134 = $s3; $1135 = $tau3i24; $1136 = $1134 * $1135; $1137 = $s133; $1138 = $tau4i26; $1139 = $1137 * $1138; $1140 = $1136 - $1139; $1141 = $s234; $1142 = $tau5i28; $1143 = $1141 * $1142; $1144 = $1140 + $1143; $tau7i = $1144; } $1145 = $tau6r29; $1146 = $tau7i; $1147 = $1145 - $1146; $1148 = $0; $1149 = ((($1148)) + 48|0); HEAPF64[$1149>>3] = $1147; $1150 = $tau6r29; $1151 = $tau7i; $1152 = $1150 + $1151; $1153 = $0; $1154 = ((($1153)) + 64|0); HEAPF64[$1154>>3] = $1152; $1155 = $tau6i30; $1156 = $tau7r; $1157 = $1155 + $1156; $1158 = $0; $1159 = ((($1158)) + 48|0); $1160 = ((($1159)) + 8|0); HEAPF64[$1160>>3] = $1157; $1161 = $tau6i30; $1162 = $tau7r; $1163 = $1161 - $1162; $1164 = $0; $1165 = ((($1164)) + 64|0); $1166 = ((($1165)) + 8|0); HEAPF64[$1166>>3] = $1163; $1167 = $tau0r17; $1168 = $tau1r19; $1169 = $1167 + $1168; $1170 = $tau2r21; $1171 = $1169 + $1170; $1172 = $0; $1173 = +HEAPF64[$1172>>3]; $1174 = $1173 + $1171; HEAPF64[$1172>>3] = $1174; $1175 = $tau0i18; $1176 = $tau1i20; $1177 = $1175 + $1176; $1178 = $tau2i22; $1179 = $1177 + $1178; $1180 = $0; $1181 = ((($1180)) + 8|0); $1182 = +HEAPF64[$1181>>3]; $1183 = $1182 + $1179; HEAPF64[$1181>>3] = $1183; STACKTOP = sp;return; } $1184 = $4; $1185 = ($1184|0)==(8); if ($1185) { $1186 = $1; $1187 = +HEAPF64[$1186>>3]; $1188 = $0; HEAPF64[$1188>>3] = $1187; $1189 = $1; $1190 = ((($1189)) + 8|0); $1191 = +HEAPF64[$1190>>3]; $1192 = $0; $1193 = ((($1192)) + 8|0); HEAPF64[$1193>>3] = $1191; $1194 = $5; $1195 = $1; $1196 = (($1195) + ($1194<<4)|0); $1197 = +HEAPF64[$1196>>3]; $1198 = $0; $1199 = ((($1198)) + 16|0); HEAPF64[$1199>>3] = $1197; $1200 = $5; $1201 = $1; $1202 = (($1201) + ($1200<<4)|0); $1203 = ((($1202)) + 8|0); $1204 = +HEAPF64[$1203>>3]; $1205 = $0; $1206 = ((($1205)) + 16|0); $1207 = ((($1206)) + 8|0); HEAPF64[$1207>>3] = $1204; $1208 = $5; $1209 = $1208<<1; $1210 = $1; $1211 = (($1210) + ($1209<<4)|0); $1212 = +HEAPF64[$1211>>3]; $1213 = $0; $1214 = ((($1213)) + 32|0); HEAPF64[$1214>>3] = $1212; $1215 = $5; $1216 = $1215<<1; $1217 = $1; $1218 = (($1217) + ($1216<<4)|0); $1219 = ((($1218)) + 8|0); $1220 = +HEAPF64[$1219>>3]; $1221 = $0; $1222 = ((($1221)) + 32|0); $1223 = ((($1222)) + 8|0); HEAPF64[$1223>>3] = $1220; $1224 = $5; $1225 = ($1224*3)|0; $1226 = $1; $1227 = (($1226) + ($1225<<4)|0); $1228 = +HEAPF64[$1227>>3]; $1229 = $0; $1230 = ((($1229)) + 48|0); HEAPF64[$1230>>3] = $1228; $1231 = $5; $1232 = ($1231*3)|0; $1233 = $1; $1234 = (($1233) + ($1232<<4)|0); $1235 = ((($1234)) + 8|0); $1236 = +HEAPF64[$1235>>3]; $1237 = $0; $1238 = ((($1237)) + 48|0); $1239 = ((($1238)) + 8|0); HEAPF64[$1239>>3] = $1236; $1240 = $5; $1241 = $1240<<2; $1242 = $1; $1243 = (($1242) + ($1241<<4)|0); $1244 = +HEAPF64[$1243>>3]; $1245 = $0; $1246 = ((($1245)) + 64|0); HEAPF64[$1246>>3] = $1244; $1247 = $5; $1248 = $1247<<2; $1249 = $1; $1250 = (($1249) + ($1248<<4)|0); $1251 = ((($1250)) + 8|0); $1252 = +HEAPF64[$1251>>3]; $1253 = $0; $1254 = ((($1253)) + 64|0); $1255 = ((($1254)) + 8|0); HEAPF64[$1255>>3] = $1252; $1256 = $5; $1257 = ($1256*5)|0; $1258 = $1; $1259 = (($1258) + ($1257<<4)|0); $1260 = +HEAPF64[$1259>>3]; $1261 = $0; $1262 = ((($1261)) + 80|0); HEAPF64[$1262>>3] = $1260; $1263 = $5; $1264 = ($1263*5)|0; $1265 = $1; $1266 = (($1265) + ($1264<<4)|0); $1267 = ((($1266)) + 8|0); $1268 = +HEAPF64[$1267>>3]; $1269 = $0; $1270 = ((($1269)) + 80|0); $1271 = ((($1270)) + 8|0); HEAPF64[$1271>>3] = $1268; $1272 = $5; $1273 = ($1272*6)|0; $1274 = $1; $1275 = (($1274) + ($1273<<4)|0); $1276 = +HEAPF64[$1275>>3]; $1277 = $0; $1278 = ((($1277)) + 96|0); HEAPF64[$1278>>3] = $1276; $1279 = $5; $1280 = ($1279*6)|0; $1281 = $1; $1282 = (($1281) + ($1280<<4)|0); $1283 = ((($1282)) + 8|0); $1284 = +HEAPF64[$1283>>3]; $1285 = $0; $1286 = ((($1285)) + 96|0); $1287 = ((($1286)) + 8|0); HEAPF64[$1287>>3] = $1284; $1288 = $5; $1289 = ($1288*7)|0; $1290 = $1; $1291 = (($1290) + ($1289<<4)|0); $1292 = +HEAPF64[$1291>>3]; $1293 = $0; $1294 = ((($1293)) + 112|0); HEAPF64[$1294>>3] = $1292; $1295 = $5; $1296 = ($1295*7)|0; $1297 = $1; $1298 = (($1297) + ($1296<<4)|0); $1299 = ((($1298)) + 8|0); $1300 = +HEAPF64[$1299>>3]; $1301 = $0; $1302 = ((($1301)) + 112|0); $1303 = ((($1302)) + 8|0); HEAPF64[$1303>>3] = $1300; $c151 = 0.70710678118654757; $s152 = 0.70710678118654757; $1304 = $0; $1305 = +HEAPF64[$1304>>3]; $1306 = $0; $1307 = ((($1306)) + 64|0); $1308 = +HEAPF64[$1307>>3]; $1309 = $1305 + $1308; $tau0r35 = $1309; $1310 = $0; $1311 = +HEAPF64[$1310>>3]; $1312 = $0; $1313 = ((($1312)) + 64|0); $1314 = +HEAPF64[$1313>>3]; $1315 = $1311 - $1314; $tau4r43 = $1315; $1316 = $0; $1317 = ((($1316)) + 8|0); $1318 = +HEAPF64[$1317>>3]; $1319 = $0; $1320 = ((($1319)) + 64|0); $1321 = ((($1320)) + 8|0); $1322 = +HEAPF64[$1321>>3]; $1323 = $1318 + $1322; $tau0i36 = $1323; $1324 = $0; $1325 = ((($1324)) + 8|0); $1326 = +HEAPF64[$1325>>3]; $1327 = $0; $1328 = ((($1327)) + 64|0); $1329 = ((($1328)) + 8|0); $1330 = +HEAPF64[$1329>>3]; $1331 = $1326 - $1330; $tau4i44 = $1331; $1332 = $0; $1333 = ((($1332)) + 16|0); $1334 = +HEAPF64[$1333>>3]; $1335 = $0; $1336 = ((($1335)) + 112|0); $1337 = +HEAPF64[$1336>>3]; $1338 = $1334 + $1337; $tau1r37 = $1338; $1339 = $0; $1340 = ((($1339)) + 16|0); $1341 = +HEAPF64[$1340>>3]; $1342 = $0; $1343 = ((($1342)) + 112|0); $1344 = +HEAPF64[$1343>>3]; $1345 = $1341 - $1344; $tau5r45 = $1345; $1346 = $0; $1347 = ((($1346)) + 16|0); $1348 = ((($1347)) + 8|0); $1349 = +HEAPF64[$1348>>3]; $1350 = $0; $1351 = ((($1350)) + 112|0); $1352 = ((($1351)) + 8|0); $1353 = +HEAPF64[$1352>>3]; $1354 = $1349 + $1353; $tau1i38 = $1354; $1355 = $0; $1356 = ((($1355)) + 16|0); $1357 = ((($1356)) + 8|0); $1358 = +HEAPF64[$1357>>3]; $1359 = $0; $1360 = ((($1359)) + 112|0); $1361 = ((($1360)) + 8|0); $1362 = +HEAPF64[$1361>>3]; $1363 = $1358 - $1362; $tau5i46 = $1363; $1364 = $0; $1365 = ((($1364)) + 48|0); $1366 = +HEAPF64[$1365>>3]; $1367 = $0; $1368 = ((($1367)) + 80|0); $1369 = +HEAPF64[$1368>>3]; $1370 = $1366 + $1369; $tau2r39 = $1370; $1371 = $0; $1372 = ((($1371)) + 48|0); $1373 = +HEAPF64[$1372>>3]; $1374 = $0; $1375 = ((($1374)) + 80|0); $1376 = +HEAPF64[$1375>>3]; $1377 = $1373 - $1376; $tau6r47 = $1377; $1378 = $0; $1379 = ((($1378)) + 48|0); $1380 = ((($1379)) + 8|0); $1381 = +HEAPF64[$1380>>3]; $1382 = $0; $1383 = ((($1382)) + 80|0); $1384 = ((($1383)) + 8|0); $1385 = +HEAPF64[$1384>>3]; $1386 = $1381 + $1385; $tau2i40 = $1386; $1387 = $0; $1388 = ((($1387)) + 48|0); $1389 = ((($1388)) + 8|0); $1390 = +HEAPF64[$1389>>3]; $1391 = $0; $1392 = ((($1391)) + 80|0); $1393 = ((($1392)) + 8|0); $1394 = +HEAPF64[$1393>>3]; $1395 = $1390 - $1394; $tau6i48 = $1395; $1396 = $0; $1397 = ((($1396)) + 32|0); $1398 = +HEAPF64[$1397>>3]; $1399 = $0; $1400 = ((($1399)) + 96|0); $1401 = +HEAPF64[$1400>>3]; $1402 = $1398 + $1401; $tau3r41 = $1402; $1403 = $0; $1404 = ((($1403)) + 32|0); $1405 = +HEAPF64[$1404>>3]; $1406 = $0; $1407 = ((($1406)) + 96|0); $1408 = +HEAPF64[$1407>>3]; $1409 = $1405 - $1408; $tau7r49 = $1409; $1410 = $0; $1411 = ((($1410)) + 32|0); $1412 = ((($1411)) + 8|0); $1413 = +HEAPF64[$1412>>3]; $1414 = $0; $1415 = ((($1414)) + 96|0); $1416 = ((($1415)) + 8|0); $1417 = +HEAPF64[$1416>>3]; $1418 = $1413 + $1417; $tau3i42 = $1418; $1419 = $0; $1420 = ((($1419)) + 32|0); $1421 = ((($1420)) + 8|0); $1422 = +HEAPF64[$1421>>3]; $1423 = $0; $1424 = ((($1423)) + 96|0); $1425 = ((($1424)) + 8|0); $1426 = +HEAPF64[$1425>>3]; $1427 = $1422 - $1426; $tau7i50 = $1427; $1428 = $tau0r35; $1429 = $tau1r37; $1430 = $1428 + $1429; $1431 = $tau2r39; $1432 = $1430 + $1431; $1433 = $tau3r41; $1434 = $1432 + $1433; $1435 = $0; HEAPF64[$1435>>3] = $1434; $1436 = $tau0i36; $1437 = $tau1i38; $1438 = $1436 + $1437; $1439 = $tau2i40; $1440 = $1438 + $1439; $1441 = $tau3i42; $1442 = $1440 + $1441; $1443 = $0; $1444 = ((($1443)) + 8|0); HEAPF64[$1444>>3] = $1442; $1445 = $tau0r35; $1446 = $tau1r37; $1447 = $1445 - $1446; $1448 = $tau2r39; $1449 = $1447 - $1448; $1450 = $tau3r41; $1451 = $1449 + $1450; $1452 = $0; $1453 = ((($1452)) + 64|0); HEAPF64[$1453>>3] = $1451; $1454 = $tau0i36; $1455 = $tau1i38; $1456 = $1454 - $1455; $1457 = $tau2i40; $1458 = $1456 - $1457; $1459 = $tau3i42; $1460 = $1458 + $1459; $1461 = $0; $1462 = ((($1461)) + 64|0); $1463 = ((($1462)) + 8|0); HEAPF64[$1463>>3] = $1460; $1464 = $tau1r37; $1465 = $tau2r39; $1466 = $1464 - $1465; $temp1r = $1466; $1467 = $tau1i38; $1468 = $tau2i40; $1469 = $1467 - $1468; $temp1i = $1469; $1470 = $tau5r45; $1471 = $tau6r47; $1472 = $1470 + $1471; $temp2r = $1472; $1473 = $tau5i46; $1474 = $tau6i48; $1475 = $1473 + $1474; $temp2i = $1475; $1476 = $tau4r43; $1477 = $c151; $1478 = $temp1r; $1479 = $1477 * $1478; $1480 = $1476 + $1479; $tau8r = $1480; $1481 = $tau4i44; $1482 = $c151; $1483 = $temp1i; $1484 = $1482 * $1483; $1485 = $1481 + $1484; $tau8i = $1485; $1486 = $3; $1487 = ($1486|0)==(1); $1488 = $s152; if ($1487) { $1489 = -$1488; $1490 = $temp2r; $1491 = $1489 * $1490; $1492 = $tau7r49; $1493 = $1491 - $1492; $tau9r = $1493; $1494 = $s152; $1495 = -$1494; $1496 = $temp2i; $1497 = $1495 * $1496; $1498 = $tau7i50; $1499 = $1497 - $1498; $tau9i = $1499; } else { $1500 = $temp2r; $1501 = $1488 * $1500; $1502 = $tau7r49; $1503 = $1501 + $1502; $tau9r = $1503; $1504 = $s152; $1505 = $temp2i; $1506 = $1504 * $1505; $1507 = $tau7i50; $1508 = $1506 + $1507; $tau9i = $1508; } $1509 = $tau8r; $1510 = $tau9i; $1511 = $1509 - $1510; $1512 = $0; $1513 = ((($1512)) + 16|0); HEAPF64[$1513>>3] = $1511; $1514 = $tau8i; $1515 = $tau9r; $1516 = $1514 + $1515; $1517 = $0; $1518 = ((($1517)) + 16|0); $1519 = ((($1518)) + 8|0); HEAPF64[$1519>>3] = $1516; $1520 = $tau8r; $1521 = $tau9i; $1522 = $1520 + $1521; $1523 = $0; $1524 = ((($1523)) + 112|0); HEAPF64[$1524>>3] = $1522; $1525 = $tau8i; $1526 = $tau9r; $1527 = $1525 - $1526; $1528 = $0; $1529 = ((($1528)) + 112|0); $1530 = ((($1529)) + 8|0); HEAPF64[$1530>>3] = $1527; $1531 = $tau0r35; $1532 = $tau3r41; $1533 = $1531 - $1532; $tau8r = $1533; $1534 = $tau0i36; $1535 = $tau3i42; $1536 = $1534 - $1535; $tau8i = $1536; $1537 = $3; $1538 = ($1537|0)==(1); $1539 = $tau5r45; if ($1538) { $1540 = -$1539; $1541 = $tau6r47; $1542 = $1540 + $1541; $tau9r = $1542; $1543 = $tau5i46; $1544 = -$1543; $1545 = $tau6i48; $1546 = $1544 + $1545; $tau9i = $1546; } else { $1547 = $tau6r47; $1548 = $1539 - $1547; $tau9r = $1548; $1549 = $tau5i46; $1550 = $tau6i48; $1551 = $1549 - $1550; $tau9i = $1551; } $1552 = $tau8r; $1553 = $tau9i; $1554 = $1552 - $1553; $1555 = $0; $1556 = ((($1555)) + 32|0); HEAPF64[$1556>>3] = $1554; $1557 = $tau8i; $1558 = $tau9r; $1559 = $1557 + $1558; $1560 = $0; $1561 = ((($1560)) + 32|0); $1562 = ((($1561)) + 8|0); HEAPF64[$1562>>3] = $1559; $1563 = $tau8r; $1564 = $tau9i; $1565 = $1563 + $1564; $1566 = $0; $1567 = ((($1566)) + 96|0); HEAPF64[$1567>>3] = $1565; $1568 = $tau8i; $1569 = $tau9r; $1570 = $1568 - $1569; $1571 = $0; $1572 = ((($1571)) + 96|0); $1573 = ((($1572)) + 8|0); HEAPF64[$1573>>3] = $1570; $1574 = $tau4r43; $1575 = $c151; $1576 = $temp1r; $1577 = $1575 * $1576; $1578 = $1574 - $1577; $tau8r = $1578; $1579 = $tau4i44; $1580 = $c151; $1581 = $temp1i; $1582 = $1580 * $1581; $1583 = $1579 - $1582; $tau8i = $1583; $1584 = $3; $1585 = ($1584|0)==(1); $1586 = $s152; if ($1585) { $1587 = -$1586; $1588 = $temp2r; $1589 = $1587 * $1588; $1590 = $tau7r49; $1591 = $1589 + $1590; $tau9r = $1591; $1592 = $s152; $1593 = -$1592; $1594 = $temp2i; $1595 = $1593 * $1594; $1596 = $tau7i50; $1597 = $1595 + $1596; $tau9i = $1597; } else { $1598 = $temp2r; $1599 = $1586 * $1598; $1600 = $tau7r49; $1601 = $1599 - $1600; $tau9r = $1601; $1602 = $s152; $1603 = $temp2i; $1604 = $1602 * $1603; $1605 = $tau7i50; $1606 = $1604 - $1605; $tau9i = $1606; } $1607 = $tau8r; $1608 = $tau9i; $1609 = $1607 - $1608; $1610 = $0; $1611 = ((($1610)) + 48|0); HEAPF64[$1611>>3] = $1609; $1612 = $tau8i; $1613 = $tau9r; $1614 = $1612 + $1613; $1615 = $0; $1616 = ((($1615)) + 48|0); $1617 = ((($1616)) + 8|0); HEAPF64[$1617>>3] = $1614; $1618 = $tau8r; $1619 = $tau9i; $1620 = $1618 + $1619; $1621 = $0; $1622 = ((($1621)) + 80|0); HEAPF64[$1622>>3] = $1620; $1623 = $tau8i; $1624 = $tau9r; $1625 = $1623 - $1624; $1626 = $0; $1627 = ((($1626)) + 80|0); $1628 = ((($1627)) + 8|0); HEAPF64[$1628>>3] = $1625; STACKTOP = sp;return; } $1629 = $radix; $1630 = ($1629|0)==(2); if ($1630) { $1631 = $4; $1632 = (($1631|0) / 2)&-1; $m = $1632; $1633 = $5; $1634 = $1633<<1; $ll = $1634; $1635 = $0; $1636 = $1; $1637 = $2; $1638 = $3; $1639 = $m; $1640 = $ll; $1641 = $6; $1642 = (($1641) + 1)|0; _mixed_radix_dit_rec($1635,$1636,$1637,$1638,$1639,$1640,$1642); $1643 = $0; $1644 = $m; $1645 = (($1643) + ($1644<<4)|0); $1646 = $1; $1647 = $5; $1648 = (($1646) + ($1647<<4)|0); $1649 = $2; $1650 = $3; $1651 = $m; $1652 = $ll; $1653 = $6; $1654 = (($1653) + 1)|0; _mixed_radix_dit_rec($1645,$1648,$1649,$1650,$1651,$1652,$1654); $k = 0; while(1) { $1655 = $k; $1656 = $m; $1657 = ($1655|0)<($1656|0); if (!($1657)) { break; } $1658 = $m; $1659 = (($1658) - 1)|0; $1660 = $k; $1661 = (($1659) + ($1660))|0; $ind = $1661; $1662 = $2; $1663 = ((($1662)) + 272|0); $1664 = $ind; $1665 = (($1663) + ($1664<<4)|0); $1666 = +HEAPF64[$1665>>3]; $wlr = $1666; $1667 = $2; $1668 = ((($1667)) + 272|0); $1669 = $ind; $1670 = (($1668) + ($1669<<4)|0); $1671 = ((($1670)) + 8|0); $1672 = +HEAPF64[$1671>>3]; $wli = $1672; $1673 = $k; $1674 = $m; $1675 = (($1673) + ($1674))|0; $tkm1 = $1675; $1676 = $k; $1677 = $0; $1678 = (($1677) + ($1676<<4)|0); $1679 = +HEAPF64[$1678>>3]; $tau1r53 = $1679; $1680 = $k; $1681 = $0; $1682 = (($1681) + ($1680<<4)|0); $1683 = ((($1682)) + 8|0); $1684 = +HEAPF64[$1683>>3]; $tau1i54 = $1684; $1685 = $tkm1; $1686 = $0; $1687 = (($1686) + ($1685<<4)|0); $1688 = +HEAPF64[$1687>>3]; $1689 = $wlr; $1690 = $1688 * $1689; $1691 = $tkm1; $1692 = $0; $1693 = (($1692) + ($1691<<4)|0); $1694 = ((($1693)) + 8|0); $1695 = +HEAPF64[$1694>>3]; $1696 = $wli; $1697 = $1695 * $1696; $1698 = $1690 - $1697; $tau2r55 = $1698; $1699 = $tkm1; $1700 = $0; $1701 = (($1700) + ($1699<<4)|0); $1702 = ((($1701)) + 8|0); $1703 = +HEAPF64[$1702>>3]; $1704 = $wlr; $1705 = $1703 * $1704; $1706 = $tkm1; $1707 = $0; $1708 = (($1707) + ($1706<<4)|0); $1709 = +HEAPF64[$1708>>3]; $1710 = $wli; $1711 = $1709 * $1710; $1712 = $1705 + $1711; $tau2i56 = $1712; $1713 = $tau1r53; $1714 = $tau2r55; $1715 = $1713 + $1714; $1716 = $k; $1717 = $0; $1718 = (($1717) + ($1716<<4)|0); HEAPF64[$1718>>3] = $1715; $1719 = $tau1i54; $1720 = $tau2i56; $1721 = $1719 + $1720; $1722 = $k; $1723 = $0; $1724 = (($1723) + ($1722<<4)|0); $1725 = ((($1724)) + 8|0); HEAPF64[$1725>>3] = $1721; $1726 = $tau1r53; $1727 = $tau2r55; $1728 = $1726 - $1727; $1729 = $tkm1; $1730 = $0; $1731 = (($1730) + ($1729<<4)|0); HEAPF64[$1731>>3] = $1728; $1732 = $tau1i54; $1733 = $tau2i56; $1734 = $1732 - $1733; $1735 = $tkm1; $1736 = $0; $1737 = (($1736) + ($1735<<4)|0); $1738 = ((($1737)) + 8|0); HEAPF64[$1738>>3] = $1734; $1739 = $k; $1740 = (($1739) + 1)|0; $k = $1740; } STACKTOP = sp;return; } $1741 = $radix; $1742 = ($1741|0)==(3); if ($1742) { $1743 = $4; $1744 = (($1743|0) / 3)&-1; $m = $1744; $1745 = $5; $1746 = ($1745*3)|0; $ll = $1746; $1747 = $0; $1748 = $1; $1749 = $2; $1750 = $3; $1751 = $m; $1752 = $ll; $1753 = $6; $1754 = (($1753) + 1)|0; _mixed_radix_dit_rec($1747,$1748,$1749,$1750,$1751,$1752,$1754); $1755 = $0; $1756 = $m; $1757 = (($1755) + ($1756<<4)|0); $1758 = $1; $1759 = $5; $1760 = (($1758) + ($1759<<4)|0); $1761 = $2; $1762 = $3; $1763 = $m; $1764 = $ll; $1765 = $6; $1766 = (($1765) + 1)|0; _mixed_radix_dit_rec($1757,$1760,$1761,$1762,$1763,$1764,$1766); $1767 = $0; $1768 = $m; $1769 = $1768<<1; $1770 = (($1767) + ($1769<<4)|0); $1771 = $1; $1772 = $5; $1773 = $1772<<1; $1774 = (($1771) + ($1773<<4)|0); $1775 = $2; $1776 = $3; $1777 = $m; $1778 = $ll; $1779 = $6; $1780 = (($1779) + 1)|0; _mixed_radix_dit_rec($1770,$1774,$1775,$1776,$1777,$1778,$1780); $k57 = 0; while(1) { $1781 = $k57; $1782 = $m; $1783 = ($1781|0)<($1782|0); if (!($1783)) { break; } $1784 = $m; $1785 = (($1784) - 1)|0; $1786 = $k57; $1787 = $1786<<1; $1788 = (($1785) + ($1787))|0; $ind59 = $1788; $1789 = $2; $1790 = ((($1789)) + 272|0); $1791 = $ind59; $1792 = (($1790) + ($1791<<4)|0); $1793 = +HEAPF64[$1792>>3]; $wlr60 = $1793; $1794 = $2; $1795 = ((($1794)) + 272|0); $1796 = $ind59; $1797 = (($1795) + ($1796<<4)|0); $1798 = ((($1797)) + 8|0); $1799 = +HEAPF64[$1798>>3]; $wli61 = $1799; $1800 = $ind59; $1801 = (($1800) + 1)|0; $ind59 = $1801; $1802 = $2; $1803 = ((($1802)) + 272|0); $1804 = $ind59; $1805 = (($1803) + ($1804<<4)|0); $1806 = +HEAPF64[$1805>>3]; $wl2r = $1806; $1807 = $2; $1808 = ((($1807)) + 272|0); $1809 = $ind59; $1810 = (($1808) + ($1809<<4)|0); $1811 = ((($1810)) + 8|0); $1812 = +HEAPF64[$1811>>3]; $wl2i = $1812; $1813 = $k57; $1814 = $m; $1815 = (($1813) + ($1814))|0; $tkm158 = $1815; $1816 = $tkm158; $1817 = $m; $1818 = (($1816) + ($1817))|0; $tkm2 = $1818; $1819 = $k57; $1820 = $0; $1821 = (($1820) + ($1819<<4)|0); $1822 = +HEAPF64[$1821>>3]; $ar = $1822; $1823 = $k57; $1824 = $0; $1825 = (($1824) + ($1823<<4)|0); $1826 = ((($1825)) + 8|0); $1827 = +HEAPF64[$1826>>3]; $ai = $1827; $1828 = $tkm158; $1829 = $0; $1830 = (($1829) + ($1828<<4)|0); $1831 = +HEAPF64[$1830>>3]; $1832 = $wlr60; $1833 = $1831 * $1832; $1834 = $tkm158; $1835 = $0; $1836 = (($1835) + ($1834<<4)|0); $1837 = ((($1836)) + 8|0); $1838 = +HEAPF64[$1837>>3]; $1839 = $wli61; $1840 = $1838 * $1839; $1841 = $1833 - $1840; $br = $1841; $1842 = $tkm158; $1843 = $0; $1844 = (($1843) + ($1842<<4)|0); $1845 = ((($1844)) + 8|0); $1846 = +HEAPF64[$1845>>3]; $1847 = $wlr60; $1848 = $1846 * $1847; $1849 = $tkm158; $1850 = $0; $1851 = (($1850) + ($1849<<4)|0); $1852 = +HEAPF64[$1851>>3]; $1853 = $wli61; $1854 = $1852 * $1853; $1855 = $1848 + $1854; $bi = $1855; $1856 = $tkm2; $1857 = $0; $1858 = (($1857) + ($1856<<4)|0); $1859 = +HEAPF64[$1858>>3]; $1860 = $wl2r; $1861 = $1859 * $1860; $1862 = $tkm2; $1863 = $0; $1864 = (($1863) + ($1862<<4)|0); $1865 = ((($1864)) + 8|0); $1866 = +HEAPF64[$1865>>3]; $1867 = $wl2i; $1868 = $1866 * $1867; $1869 = $1861 - $1868; $cr = $1869; $1870 = $tkm2; $1871 = $0; $1872 = (($1871) + ($1870<<4)|0); $1873 = ((($1872)) + 8|0); $1874 = +HEAPF64[$1873>>3]; $1875 = $wl2r; $1876 = $1874 * $1875; $1877 = $tkm2; $1878 = $0; $1879 = (($1878) + ($1877<<4)|0); $1880 = +HEAPF64[$1879>>3]; $1881 = $wl2i; $1882 = $1880 * $1881; $1883 = $1876 + $1882; $ci = $1883; $1884 = $br; $1885 = $cr; $1886 = $1884 + $1885; $tau0r62 = $1886; $1887 = $bi; $1888 = $ci; $1889 = $1887 + $1888; $tau0i63 = $1889; $1890 = $3; $1891 = (+($1890|0)); $1892 = $1891 * 0.86602540378000004; $1893 = $br; $1894 = $cr; $1895 = $1893 - $1894; $1896 = $1892 * $1895; $tau1r64 = $1896; $1897 = $3; $1898 = (+($1897|0)); $1899 = $1898 * 0.86602540378000004; $1900 = $bi; $1901 = $ci; $1902 = $1900 - $1901; $1903 = $1899 * $1902; $tau1i65 = $1903; $1904 = $ar; $1905 = $tau0r62; $1906 = $1905 * 0.5; $1907 = $1904 - $1906; $tau2r66 = $1907; $1908 = $ai; $1909 = $tau0i63; $1910 = $1909 * 0.5; $1911 = $1908 - $1910; $tau2i67 = $1911; $1912 = $ar; $1913 = $tau0r62; $1914 = $1912 + $1913; $1915 = $k57; $1916 = $0; $1917 = (($1916) + ($1915<<4)|0); HEAPF64[$1917>>3] = $1914; $1918 = $ai; $1919 = $tau0i63; $1920 = $1918 + $1919; $1921 = $k57; $1922 = $0; $1923 = (($1922) + ($1921<<4)|0); $1924 = ((($1923)) + 8|0); HEAPF64[$1924>>3] = $1920; $1925 = $tau2r66; $1926 = $tau1i65; $1927 = $1925 + $1926; $1928 = $tkm158; $1929 = $0; $1930 = (($1929) + ($1928<<4)|0); HEAPF64[$1930>>3] = $1927; $1931 = $tau2i67; $1932 = $tau1r64; $1933 = $1931 - $1932; $1934 = $tkm158; $1935 = $0; $1936 = (($1935) + ($1934<<4)|0); $1937 = ((($1936)) + 8|0); HEAPF64[$1937>>3] = $1933; $1938 = $tau2r66; $1939 = $tau1i65; $1940 = $1938 - $1939; $1941 = $tkm2; $1942 = $0; $1943 = (($1942) + ($1941<<4)|0); HEAPF64[$1943>>3] = $1940; $1944 = $tau2i67; $1945 = $tau1r64; $1946 = $1944 + $1945; $1947 = $tkm2; $1948 = $0; $1949 = (($1948) + ($1947<<4)|0); $1950 = ((($1949)) + 8|0); HEAPF64[$1950>>3] = $1946; $1951 = $k57; $1952 = (($1951) + 1)|0; $k57 = $1952; } STACKTOP = sp;return; } $1953 = $radix; $1954 = ($1953|0)==(4); if ($1954) { $1955 = $4; $1956 = (($1955|0) / 4)&-1; $m = $1956; $1957 = $5; $1958 = $1957<<2; $ll = $1958; $1959 = $0; $1960 = $1; $1961 = $2; $1962 = $3; $1963 = $m; $1964 = $ll; $1965 = $6; $1966 = (($1965) + 1)|0; _mixed_radix_dit_rec($1959,$1960,$1961,$1962,$1963,$1964,$1966); $1967 = $0; $1968 = $m; $1969 = (($1967) + ($1968<<4)|0); $1970 = $1; $1971 = $5; $1972 = (($1970) + ($1971<<4)|0); $1973 = $2; $1974 = $3; $1975 = $m; $1976 = $ll; $1977 = $6; $1978 = (($1977) + 1)|0; _mixed_radix_dit_rec($1969,$1972,$1973,$1974,$1975,$1976,$1978); $1979 = $0; $1980 = $m; $1981 = $1980<<1; $1982 = (($1979) + ($1981<<4)|0); $1983 = $1; $1984 = $5; $1985 = $1984<<1; $1986 = (($1983) + ($1985<<4)|0); $1987 = $2; $1988 = $3; $1989 = $m; $1990 = $ll; $1991 = $6; $1992 = (($1991) + 1)|0; _mixed_radix_dit_rec($1982,$1986,$1987,$1988,$1989,$1990,$1992); $1993 = $0; $1994 = $m; $1995 = ($1994*3)|0; $1996 = (($1993) + ($1995<<4)|0); $1997 = $1; $1998 = $5; $1999 = ($1998*3)|0; $2000 = (($1997) + ($1999<<4)|0); $2001 = $2; $2002 = $3; $2003 = $m; $2004 = $ll; $2005 = $6; $2006 = (($2005) + 1)|0; _mixed_radix_dit_rec($1996,$2000,$2001,$2002,$2003,$2004,$2006); $2007 = $m; $tkm169 = $2007; $2008 = $tkm169; $2009 = $m; $2010 = (($2008) + ($2009))|0; $tkm270 = $2010; $2011 = $tkm270; $2012 = $m; $2013 = (($2011) + ($2012))|0; $tkm3 = $2013; $2014 = $0; $2015 = +HEAPF64[$2014>>3]; $ar84 = $2015; $2016 = $0; $2017 = ((($2016)) + 8|0); $2018 = +HEAPF64[$2017>>3]; $ai85 = $2018; $2019 = $tkm169; $2020 = $0; $2021 = (($2020) + ($2019<<4)|0); $2022 = +HEAPF64[$2021>>3]; $br86 = $2022; $2023 = $tkm169; $2024 = $0; $2025 = (($2024) + ($2023<<4)|0); $2026 = ((($2025)) + 8|0); $2027 = +HEAPF64[$2026>>3]; $bi87 = $2027; $2028 = $tkm270; $2029 = $0; $2030 = (($2029) + ($2028<<4)|0); $2031 = +HEAPF64[$2030>>3]; $cr88 = $2031; $2032 = $tkm270; $2033 = $0; $2034 = (($2033) + ($2032<<4)|0); $2035 = ((($2034)) + 8|0); $2036 = +HEAPF64[$2035>>3]; $ci89 = $2036; $2037 = $tkm3; $2038 = $0; $2039 = (($2038) + ($2037<<4)|0); $2040 = +HEAPF64[$2039>>3]; $dr = $2040; $2041 = $tkm3; $2042 = $0; $2043 = (($2042) + ($2041<<4)|0); $2044 = ((($2043)) + 8|0); $2045 = +HEAPF64[$2044>>3]; $di = $2045; $2046 = $ar84; $2047 = $cr88; $2048 = $2046 + $2047; $tau0r76 = $2048; $2049 = $ai85; $2050 = $ci89; $2051 = $2049 + $2050; $tau0i77 = $2051; $2052 = $ar84; $2053 = $cr88; $2054 = $2052 - $2053; $tau1r78 = $2054; $2055 = $ai85; $2056 = $ci89; $2057 = $2055 - $2056; $tau1i79 = $2057; $2058 = $br86; $2059 = $dr; $2060 = $2058 + $2059; $tau2r80 = $2060; $2061 = $bi87; $2062 = $di; $2063 = $2061 + $2062; $tau2i81 = $2063; $2064 = $3; $2065 = (+($2064|0)); $2066 = $br86; $2067 = $dr; $2068 = $2066 - $2067; $2069 = $2065 * $2068; $tau3r82 = $2069; $2070 = $3; $2071 = (+($2070|0)); $2072 = $bi87; $2073 = $di; $2074 = $2072 - $2073; $2075 = $2071 * $2074; $tau3i83 = $2075; $2076 = $tau0r76; $2077 = $tau2r80; $2078 = $2076 + $2077; $2079 = $0; HEAPF64[$2079>>3] = $2078; $2080 = $tau0i77; $2081 = $tau2i81; $2082 = $2080 + $2081; $2083 = $0; $2084 = ((($2083)) + 8|0); HEAPF64[$2084>>3] = $2082; $2085 = $tau1r78; $2086 = $tau3i83; $2087 = $2085 + $2086; $2088 = $tkm169; $2089 = $0; $2090 = (($2089) + ($2088<<4)|0); HEAPF64[$2090>>3] = $2087; $2091 = $tau1i79; $2092 = $tau3r82; $2093 = $2091 - $2092; $2094 = $tkm169; $2095 = $0; $2096 = (($2095) + ($2094<<4)|0); $2097 = ((($2096)) + 8|0); HEAPF64[$2097>>3] = $2093; $2098 = $tau0r76; $2099 = $tau2r80; $2100 = $2098 - $2099; $2101 = $tkm270; $2102 = $0; $2103 = (($2102) + ($2101<<4)|0); HEAPF64[$2103>>3] = $2100; $2104 = $tau0i77; $2105 = $tau2i81; $2106 = $2104 - $2105; $2107 = $tkm270; $2108 = $0; $2109 = (($2108) + ($2107<<4)|0); $2110 = ((($2109)) + 8|0); HEAPF64[$2110>>3] = $2106; $2111 = $tau1r78; $2112 = $tau3i83; $2113 = $2111 - $2112; $2114 = $tkm3; $2115 = $0; $2116 = (($2115) + ($2114<<4)|0); HEAPF64[$2116>>3] = $2113; $2117 = $tau1i79; $2118 = $tau3r82; $2119 = $2117 + $2118; $2120 = $tkm3; $2121 = $0; $2122 = (($2121) + ($2120<<4)|0); $2123 = ((($2122)) + 8|0); HEAPF64[$2123>>3] = $2119; $k68 = 1; while(1) { $2124 = $k68; $2125 = $m; $2126 = ($2124|0)<($2125|0); if (!($2126)) { break; } $2127 = $m; $2128 = (($2127) - 1)|0; $2129 = $k68; $2130 = ($2129*3)|0; $2131 = (($2128) + ($2130))|0; $ind71 = $2131; $2132 = $2; $2133 = ((($2132)) + 272|0); $2134 = $ind71; $2135 = (($2133) + ($2134<<4)|0); $2136 = +HEAPF64[$2135>>3]; $wlr72 = $2136; $2137 = $2; $2138 = ((($2137)) + 272|0); $2139 = $ind71; $2140 = (($2138) + ($2139<<4)|0); $2141 = ((($2140)) + 8|0); $2142 = +HEAPF64[$2141>>3]; $wli73 = $2142; $2143 = $ind71; $2144 = (($2143) + 1)|0; $ind71 = $2144; $2145 = $2; $2146 = ((($2145)) + 272|0); $2147 = $ind71; $2148 = (($2146) + ($2147<<4)|0); $2149 = +HEAPF64[$2148>>3]; $wl2r74 = $2149; $2150 = $2; $2151 = ((($2150)) + 272|0); $2152 = $ind71; $2153 = (($2151) + ($2152<<4)|0); $2154 = ((($2153)) + 8|0); $2155 = +HEAPF64[$2154>>3]; $wl2i75 = $2155; $2156 = $ind71; $2157 = (($2156) + 1)|0; $ind71 = $2157; $2158 = $2; $2159 = ((($2158)) + 272|0); $2160 = $ind71; $2161 = (($2159) + ($2160<<4)|0); $2162 = +HEAPF64[$2161>>3]; $wl3r = $2162; $2163 = $2; $2164 = ((($2163)) + 272|0); $2165 = $ind71; $2166 = (($2164) + ($2165<<4)|0); $2167 = ((($2166)) + 8|0); $2168 = +HEAPF64[$2167>>3]; $wl3i = $2168; $2169 = $k68; $2170 = $m; $2171 = (($2169) + ($2170))|0; $tkm169 = $2171; $2172 = $tkm169; $2173 = $m; $2174 = (($2172) + ($2173))|0; $tkm270 = $2174; $2175 = $tkm270; $2176 = $m; $2177 = (($2175) + ($2176))|0; $tkm3 = $2177; $2178 = $k68; $2179 = $0; $2180 = (($2179) + ($2178<<4)|0); $2181 = +HEAPF64[$2180>>3]; $ar84 = $2181; $2182 = $k68; $2183 = $0; $2184 = (($2183) + ($2182<<4)|0); $2185 = ((($2184)) + 8|0); $2186 = +HEAPF64[$2185>>3]; $ai85 = $2186; $2187 = $tkm169; $2188 = $0; $2189 = (($2188) + ($2187<<4)|0); $2190 = +HEAPF64[$2189>>3]; $2191 = $wlr72; $2192 = $2190 * $2191; $2193 = $tkm169; $2194 = $0; $2195 = (($2194) + ($2193<<4)|0); $2196 = ((($2195)) + 8|0); $2197 = +HEAPF64[$2196>>3]; $2198 = $wli73; $2199 = $2197 * $2198; $2200 = $2192 - $2199; $br86 = $2200; $2201 = $tkm169; $2202 = $0; $2203 = (($2202) + ($2201<<4)|0); $2204 = ((($2203)) + 8|0); $2205 = +HEAPF64[$2204>>3]; $2206 = $wlr72; $2207 = $2205 * $2206; $2208 = $tkm169; $2209 = $0; $2210 = (($2209) + ($2208<<4)|0); $2211 = +HEAPF64[$2210>>3]; $2212 = $wli73; $2213 = $2211 * $2212; $2214 = $2207 + $2213; $bi87 = $2214; $2215 = $tkm270; $2216 = $0; $2217 = (($2216) + ($2215<<4)|0); $2218 = +HEAPF64[$2217>>3]; $2219 = $wl2r74; $2220 = $2218 * $2219; $2221 = $tkm270; $2222 = $0; $2223 = (($2222) + ($2221<<4)|0); $2224 = ((($2223)) + 8|0); $2225 = +HEAPF64[$2224>>3]; $2226 = $wl2i75; $2227 = $2225 * $2226; $2228 = $2220 - $2227; $cr88 = $2228; $2229 = $tkm270; $2230 = $0; $2231 = (($2230) + ($2229<<4)|0); $2232 = ((($2231)) + 8|0); $2233 = +HEAPF64[$2232>>3]; $2234 = $wl2r74; $2235 = $2233 * $2234; $2236 = $tkm270; $2237 = $0; $2238 = (($2237) + ($2236<<4)|0); $2239 = +HEAPF64[$2238>>3]; $2240 = $wl2i75; $2241 = $2239 * $2240; $2242 = $2235 + $2241; $ci89 = $2242; $2243 = $tkm3; $2244 = $0; $2245 = (($2244) + ($2243<<4)|0); $2246 = +HEAPF64[$2245>>3]; $2247 = $wl3r; $2248 = $2246 * $2247; $2249 = $tkm3; $2250 = $0; $2251 = (($2250) + ($2249<<4)|0); $2252 = ((($2251)) + 8|0); $2253 = +HEAPF64[$2252>>3]; $2254 = $wl3i; $2255 = $2253 * $2254; $2256 = $2248 - $2255; $dr = $2256; $2257 = $tkm3; $2258 = $0; $2259 = (($2258) + ($2257<<4)|0); $2260 = ((($2259)) + 8|0); $2261 = +HEAPF64[$2260>>3]; $2262 = $wl3r; $2263 = $2261 * $2262; $2264 = $tkm3; $2265 = $0; $2266 = (($2265) + ($2264<<4)|0); $2267 = +HEAPF64[$2266>>3]; $2268 = $wl3i; $2269 = $2267 * $2268; $2270 = $2263 + $2269; $di = $2270; $2271 = $ar84; $2272 = $cr88; $2273 = $2271 + $2272; $tau0r76 = $2273; $2274 = $ai85; $2275 = $ci89; $2276 = $2274 + $2275; $tau0i77 = $2276; $2277 = $ar84; $2278 = $cr88; $2279 = $2277 - $2278; $tau1r78 = $2279; $2280 = $ai85; $2281 = $ci89; $2282 = $2280 - $2281; $tau1i79 = $2282; $2283 = $br86; $2284 = $dr; $2285 = $2283 + $2284; $tau2r80 = $2285; $2286 = $bi87; $2287 = $di; $2288 = $2286 + $2287; $tau2i81 = $2288; $2289 = $3; $2290 = (+($2289|0)); $2291 = $br86; $2292 = $dr; $2293 = $2291 - $2292; $2294 = $2290 * $2293; $tau3r82 = $2294; $2295 = $3; $2296 = (+($2295|0)); $2297 = $bi87; $2298 = $di; $2299 = $2297 - $2298; $2300 = $2296 * $2299; $tau3i83 = $2300; $2301 = $tau0r76; $2302 = $tau2r80; $2303 = $2301 + $2302; $2304 = $k68; $2305 = $0; $2306 = (($2305) + ($2304<<4)|0); HEAPF64[$2306>>3] = $2303; $2307 = $tau0i77; $2308 = $tau2i81; $2309 = $2307 + $2308; $2310 = $k68; $2311 = $0; $2312 = (($2311) + ($2310<<4)|0); $2313 = ((($2312)) + 8|0); HEAPF64[$2313>>3] = $2309; $2314 = $tau1r78; $2315 = $tau3i83; $2316 = $2314 + $2315; $2317 = $tkm169; $2318 = $0; $2319 = (($2318) + ($2317<<4)|0); HEAPF64[$2319>>3] = $2316; $2320 = $tau1i79; $2321 = $tau3r82; $2322 = $2320 - $2321; $2323 = $tkm169; $2324 = $0; $2325 = (($2324) + ($2323<<4)|0); $2326 = ((($2325)) + 8|0); HEAPF64[$2326>>3] = $2322; $2327 = $tau0r76; $2328 = $tau2r80; $2329 = $2327 - $2328; $2330 = $tkm270; $2331 = $0; $2332 = (($2331) + ($2330<<4)|0); HEAPF64[$2332>>3] = $2329; $2333 = $tau0i77; $2334 = $tau2i81; $2335 = $2333 - $2334; $2336 = $tkm270; $2337 = $0; $2338 = (($2337) + ($2336<<4)|0); $2339 = ((($2338)) + 8|0); HEAPF64[$2339>>3] = $2335; $2340 = $tau1r78; $2341 = $tau3i83; $2342 = $2340 - $2341; $2343 = $tkm3; $2344 = $0; $2345 = (($2344) + ($2343<<4)|0); HEAPF64[$2345>>3] = $2342; $2346 = $tau1i79; $2347 = $tau3r82; $2348 = $2346 + $2347; $2349 = $tkm3; $2350 = $0; $2351 = (($2350) + ($2349<<4)|0); $2352 = ((($2351)) + 8|0); HEAPF64[$2352>>3] = $2348; $2353 = $k68; $2354 = (($2353) + 1)|0; $k68 = $2354; } STACKTOP = sp;return; } $2355 = $radix; $2356 = ($2355|0)==(5); if ($2356) { $2357 = $4; $2358 = (($2357|0) / 5)&-1; $m = $2358; $2359 = $5; $2360 = ($2359*5)|0; $ll = $2360; $2361 = $0; $2362 = $1; $2363 = $2; $2364 = $3; $2365 = $m; $2366 = $ll; $2367 = $6; $2368 = (($2367) + 1)|0; _mixed_radix_dit_rec($2361,$2362,$2363,$2364,$2365,$2366,$2368); $2369 = $0; $2370 = $m; $2371 = (($2369) + ($2370<<4)|0); $2372 = $1; $2373 = $5; $2374 = (($2372) + ($2373<<4)|0); $2375 = $2; $2376 = $3; $2377 = $m; $2378 = $ll; $2379 = $6; $2380 = (($2379) + 1)|0; _mixed_radix_dit_rec($2371,$2374,$2375,$2376,$2377,$2378,$2380); $2381 = $0; $2382 = $m; $2383 = $2382<<1; $2384 = (($2381) + ($2383<<4)|0); $2385 = $1; $2386 = $5; $2387 = $2386<<1; $2388 = (($2385) + ($2387<<4)|0); $2389 = $2; $2390 = $3; $2391 = $m; $2392 = $ll; $2393 = $6; $2394 = (($2393) + 1)|0; _mixed_radix_dit_rec($2384,$2388,$2389,$2390,$2391,$2392,$2394); $2395 = $0; $2396 = $m; $2397 = ($2396*3)|0; $2398 = (($2395) + ($2397<<4)|0); $2399 = $1; $2400 = $5; $2401 = ($2400*3)|0; $2402 = (($2399) + ($2401<<4)|0); $2403 = $2; $2404 = $3; $2405 = $m; $2406 = $ll; $2407 = $6; $2408 = (($2407) + 1)|0; _mixed_radix_dit_rec($2398,$2402,$2403,$2404,$2405,$2406,$2408); $2409 = $0; $2410 = $m; $2411 = $2410<<2; $2412 = (($2409) + ($2411<<4)|0); $2413 = $1; $2414 = $5; $2415 = $2414<<2; $2416 = (($2413) + ($2415<<4)|0); $2417 = $2; $2418 = $3; $2419 = $m; $2420 = $ll; $2421 = $6; $2422 = (($2421) + 1)|0; _mixed_radix_dit_rec($2412,$2416,$2417,$2418,$2419,$2420,$2422); $c1123 = 0.30901699437000002; $c2124 = -0.80901699436999996; $s1125 = 0.95105651628999998; $s2126 = 0.58778525229; $2423 = $m; $tkm191 = $2423; $2424 = $tkm191; $2425 = $m; $2426 = (($2424) + ($2425))|0; $tkm292 = $2426; $2427 = $tkm292; $2428 = $m; $2429 = (($2427) + ($2428))|0; $tkm393 = $2429; $2430 = $tkm393; $2431 = $m; $2432 = (($2430) + ($2431))|0; $tkm4 = $2432; $2433 = $0; $2434 = +HEAPF64[$2433>>3]; $ar109 = $2434; $2435 = $0; $2436 = ((($2435)) + 8|0); $2437 = +HEAPF64[$2436>>3]; $ai110 = $2437; $2438 = $tkm191; $2439 = $0; $2440 = (($2439) + ($2438<<4)|0); $2441 = +HEAPF64[$2440>>3]; $br111 = $2441; $2442 = $tkm191; $2443 = $0; $2444 = (($2443) + ($2442<<4)|0); $2445 = ((($2444)) + 8|0); $2446 = +HEAPF64[$2445>>3]; $bi112 = $2446; $2447 = $tkm292; $2448 = $0; $2449 = (($2448) + ($2447<<4)|0); $2450 = +HEAPF64[$2449>>3]; $cr113 = $2450; $2451 = $tkm292; $2452 = $0; $2453 = (($2452) + ($2451<<4)|0); $2454 = ((($2453)) + 8|0); $2455 = +HEAPF64[$2454>>3]; $ci114 = $2455; $2456 = $tkm393; $2457 = $0; $2458 = (($2457) + ($2456<<4)|0); $2459 = +HEAPF64[$2458>>3]; $dr115 = $2459; $2460 = $tkm393; $2461 = $0; $2462 = (($2461) + ($2460<<4)|0); $2463 = ((($2462)) + 8|0); $2464 = +HEAPF64[$2463>>3]; $di116 = $2464; $2465 = $tkm4; $2466 = $0; $2467 = (($2466) + ($2465<<4)|0); $2468 = +HEAPF64[$2467>>3]; $er = $2468; $2469 = $tkm4; $2470 = $0; $2471 = (($2470) + ($2469<<4)|0); $2472 = ((($2471)) + 8|0); $2473 = +HEAPF64[$2472>>3]; $ei = $2473; $2474 = $br111; $2475 = $er; $2476 = $2474 + $2475; $tau0r101 = $2476; $2477 = $bi112; $2478 = $ei; $2479 = $2477 + $2478; $tau0i102 = $2479; $2480 = $cr113; $2481 = $dr115; $2482 = $2480 + $2481; $tau1r103 = $2482; $2483 = $ci114; $2484 = $di116; $2485 = $2483 + $2484; $tau1i104 = $2485; $2486 = $br111; $2487 = $er; $2488 = $2486 - $2487; $tau2r105 = $2488; $2489 = $bi112; $2490 = $ei; $2491 = $2489 - $2490; $tau2i106 = $2491; $2492 = $cr113; $2493 = $dr115; $2494 = $2492 - $2493; $tau3r107 = $2494; $2495 = $ci114; $2496 = $di116; $2497 = $2495 - $2496; $tau3i108 = $2497; $2498 = $ar109; $2499 = $tau0r101; $2500 = $2498 + $2499; $2501 = $tau1r103; $2502 = $2500 + $2501; $2503 = $0; HEAPF64[$2503>>3] = $2502; $2504 = $ai110; $2505 = $tau0i102; $2506 = $2504 + $2505; $2507 = $tau1i104; $2508 = $2506 + $2507; $2509 = $0; $2510 = ((($2509)) + 8|0); HEAPF64[$2510>>3] = $2508; $2511 = $c1123; $2512 = $tau0r101; $2513 = $2511 * $2512; $2514 = $c2124; $2515 = $tau1r103; $2516 = $2514 * $2515; $2517 = $2513 + $2516; $tau4r117 = $2517; $2518 = $c1123; $2519 = $tau0i102; $2520 = $2518 * $2519; $2521 = $c2124; $2522 = $tau1i104; $2523 = $2521 * $2522; $2524 = $2520 + $2523; $tau4i118 = $2524; $2525 = $3; $2526 = (+($2525|0)); $2527 = $s1125; $2528 = $tau2r105; $2529 = $2527 * $2528; $2530 = $s2126; $2531 = $tau3r107; $2532 = $2530 * $2531; $2533 = $2529 + $2532; $2534 = $2526 * $2533; $tau5r119 = $2534; $2535 = $3; $2536 = (+($2535|0)); $2537 = $s1125; $2538 = $tau2i106; $2539 = $2537 * $2538; $2540 = $s2126; $2541 = $tau3i108; $2542 = $2540 * $2541; $2543 = $2539 + $2542; $2544 = $2536 * $2543; $tau5i120 = $2544; $2545 = $ar109; $2546 = $tau4r117; $2547 = $2545 + $2546; $tau6r121 = $2547; $2548 = $ai110; $2549 = $tau4i118; $2550 = $2548 + $2549; $tau6i122 = $2550; $2551 = $tau6r121; $2552 = $tau5i120; $2553 = $2551 + $2552; $2554 = $tkm191; $2555 = $0; $2556 = (($2555) + ($2554<<4)|0); HEAPF64[$2556>>3] = $2553; $2557 = $tau6i122; $2558 = $tau5r119; $2559 = $2557 - $2558; $2560 = $tkm191; $2561 = $0; $2562 = (($2561) + ($2560<<4)|0); $2563 = ((($2562)) + 8|0); HEAPF64[$2563>>3] = $2559; $2564 = $tau6r121; $2565 = $tau5i120; $2566 = $2564 - $2565; $2567 = $tkm4; $2568 = $0; $2569 = (($2568) + ($2567<<4)|0); HEAPF64[$2569>>3] = $2566; $2570 = $tau6i122; $2571 = $tau5r119; $2572 = $2570 + $2571; $2573 = $tkm4; $2574 = $0; $2575 = (($2574) + ($2573<<4)|0); $2576 = ((($2575)) + 8|0); HEAPF64[$2576>>3] = $2572; $2577 = $c2124; $2578 = $tau0r101; $2579 = $2577 * $2578; $2580 = $c1123; $2581 = $tau1r103; $2582 = $2580 * $2581; $2583 = $2579 + $2582; $tau4r117 = $2583; $2584 = $c2124; $2585 = $tau0i102; $2586 = $2584 * $2585; $2587 = $c1123; $2588 = $tau1i104; $2589 = $2587 * $2588; $2590 = $2586 + $2589; $tau4i118 = $2590; $2591 = $3; $2592 = (+($2591|0)); $2593 = $s2126; $2594 = $tau2r105; $2595 = $2593 * $2594; $2596 = $s1125; $2597 = $tau3r107; $2598 = $2596 * $2597; $2599 = $2595 - $2598; $2600 = $2592 * $2599; $tau5r119 = $2600; $2601 = $3; $2602 = (+($2601|0)); $2603 = $s2126; $2604 = $tau2i106; $2605 = $2603 * $2604; $2606 = $s1125; $2607 = $tau3i108; $2608 = $2606 * $2607; $2609 = $2605 - $2608; $2610 = $2602 * $2609; $tau5i120 = $2610; $2611 = $ar109; $2612 = $tau4r117; $2613 = $2611 + $2612; $tau6r121 = $2613; $2614 = $ai110; $2615 = $tau4i118; $2616 = $2614 + $2615; $tau6i122 = $2616; $2617 = $tau6r121; $2618 = $tau5i120; $2619 = $2617 + $2618; $2620 = $tkm292; $2621 = $0; $2622 = (($2621) + ($2620<<4)|0); HEAPF64[$2622>>3] = $2619; $2623 = $tau6i122; $2624 = $tau5r119; $2625 = $2623 - $2624; $2626 = $tkm292; $2627 = $0; $2628 = (($2627) + ($2626<<4)|0); $2629 = ((($2628)) + 8|0); HEAPF64[$2629>>3] = $2625; $2630 = $tau6r121; $2631 = $tau5i120; $2632 = $2630 - $2631; $2633 = $tkm393; $2634 = $0; $2635 = (($2634) + ($2633<<4)|0); HEAPF64[$2635>>3] = $2632; $2636 = $tau6i122; $2637 = $tau5r119; $2638 = $2636 + $2637; $2639 = $tkm393; $2640 = $0; $2641 = (($2640) + ($2639<<4)|0); $2642 = ((($2641)) + 8|0); HEAPF64[$2642>>3] = $2638; $k90 = 1; while(1) { $2643 = $k90; $2644 = $m; $2645 = ($2643|0)<($2644|0); if (!($2645)) { break; } $2646 = $m; $2647 = (($2646) - 1)|0; $2648 = $k90; $2649 = $2648<<2; $2650 = (($2647) + ($2649))|0; $ind94 = $2650; $2651 = $2; $2652 = ((($2651)) + 272|0); $2653 = $ind94; $2654 = (($2652) + ($2653<<4)|0); $2655 = +HEAPF64[$2654>>3]; $wlr95 = $2655; $2656 = $2; $2657 = ((($2656)) + 272|0); $2658 = $ind94; $2659 = (($2657) + ($2658<<4)|0); $2660 = ((($2659)) + 8|0); $2661 = +HEAPF64[$2660>>3]; $wli96 = $2661; $2662 = $ind94; $2663 = (($2662) + 1)|0; $ind94 = $2663; $2664 = $2; $2665 = ((($2664)) + 272|0); $2666 = $ind94; $2667 = (($2665) + ($2666<<4)|0); $2668 = +HEAPF64[$2667>>3]; $wl2r97 = $2668; $2669 = $2; $2670 = ((($2669)) + 272|0); $2671 = $ind94; $2672 = (($2670) + ($2671<<4)|0); $2673 = ((($2672)) + 8|0); $2674 = +HEAPF64[$2673>>3]; $wl2i98 = $2674; $2675 = $ind94; $2676 = (($2675) + 1)|0; $ind94 = $2676; $2677 = $2; $2678 = ((($2677)) + 272|0); $2679 = $ind94; $2680 = (($2678) + ($2679<<4)|0); $2681 = +HEAPF64[$2680>>3]; $wl3r99 = $2681; $2682 = $2; $2683 = ((($2682)) + 272|0); $2684 = $ind94; $2685 = (($2683) + ($2684<<4)|0); $2686 = ((($2685)) + 8|0); $2687 = +HEAPF64[$2686>>3]; $wl3i100 = $2687; $2688 = $ind94; $2689 = (($2688) + 1)|0; $ind94 = $2689; $2690 = $2; $2691 = ((($2690)) + 272|0); $2692 = $ind94; $2693 = (($2691) + ($2692<<4)|0); $2694 = +HEAPF64[$2693>>3]; $wl4r = $2694; $2695 = $2; $2696 = ((($2695)) + 272|0); $2697 = $ind94; $2698 = (($2696) + ($2697<<4)|0); $2699 = ((($2698)) + 8|0); $2700 = +HEAPF64[$2699>>3]; $wl4i = $2700; $2701 = $k90; $2702 = $m; $2703 = (($2701) + ($2702))|0; $tkm191 = $2703; $2704 = $tkm191; $2705 = $m; $2706 = (($2704) + ($2705))|0; $tkm292 = $2706; $2707 = $tkm292; $2708 = $m; $2709 = (($2707) + ($2708))|0; $tkm393 = $2709; $2710 = $tkm393; $2711 = $m; $2712 = (($2710) + ($2711))|0; $tkm4 = $2712; $2713 = $k90; $2714 = $0; $2715 = (($2714) + ($2713<<4)|0); $2716 = +HEAPF64[$2715>>3]; $ar109 = $2716; $2717 = $k90; $2718 = $0; $2719 = (($2718) + ($2717<<4)|0); $2720 = ((($2719)) + 8|0); $2721 = +HEAPF64[$2720>>3]; $ai110 = $2721; $2722 = $tkm191; $2723 = $0; $2724 = (($2723) + ($2722<<4)|0); $2725 = +HEAPF64[$2724>>3]; $2726 = $wlr95; $2727 = $2725 * $2726; $2728 = $tkm191; $2729 = $0; $2730 = (($2729) + ($2728<<4)|0); $2731 = ((($2730)) + 8|0); $2732 = +HEAPF64[$2731>>3]; $2733 = $wli96; $2734 = $2732 * $2733; $2735 = $2727 - $2734; $br111 = $2735; $2736 = $tkm191; $2737 = $0; $2738 = (($2737) + ($2736<<4)|0); $2739 = ((($2738)) + 8|0); $2740 = +HEAPF64[$2739>>3]; $2741 = $wlr95; $2742 = $2740 * $2741; $2743 = $tkm191; $2744 = $0; $2745 = (($2744) + ($2743<<4)|0); $2746 = +HEAPF64[$2745>>3]; $2747 = $wli96; $2748 = $2746 * $2747; $2749 = $2742 + $2748; $bi112 = $2749; $2750 = $tkm292; $2751 = $0; $2752 = (($2751) + ($2750<<4)|0); $2753 = +HEAPF64[$2752>>3]; $2754 = $wl2r97; $2755 = $2753 * $2754; $2756 = $tkm292; $2757 = $0; $2758 = (($2757) + ($2756<<4)|0); $2759 = ((($2758)) + 8|0); $2760 = +HEAPF64[$2759>>3]; $2761 = $wl2i98; $2762 = $2760 * $2761; $2763 = $2755 - $2762; $cr113 = $2763; $2764 = $tkm292; $2765 = $0; $2766 = (($2765) + ($2764<<4)|0); $2767 = ((($2766)) + 8|0); $2768 = +HEAPF64[$2767>>3]; $2769 = $wl2r97; $2770 = $2768 * $2769; $2771 = $tkm292; $2772 = $0; $2773 = (($2772) + ($2771<<4)|0); $2774 = +HEAPF64[$2773>>3]; $2775 = $wl2i98; $2776 = $2774 * $2775; $2777 = $2770 + $2776; $ci114 = $2777; $2778 = $tkm393; $2779 = $0; $2780 = (($2779) + ($2778<<4)|0); $2781 = +HEAPF64[$2780>>3]; $2782 = $wl3r99; $2783 = $2781 * $2782; $2784 = $tkm393; $2785 = $0; $2786 = (($2785) + ($2784<<4)|0); $2787 = ((($2786)) + 8|0); $2788 = +HEAPF64[$2787>>3]; $2789 = $wl3i100; $2790 = $2788 * $2789; $2791 = $2783 - $2790; $dr115 = $2791; $2792 = $tkm393; $2793 = $0; $2794 = (($2793) + ($2792<<4)|0); $2795 = ((($2794)) + 8|0); $2796 = +HEAPF64[$2795>>3]; $2797 = $wl3r99; $2798 = $2796 * $2797; $2799 = $tkm393; $2800 = $0; $2801 = (($2800) + ($2799<<4)|0); $2802 = +HEAPF64[$2801>>3]; $2803 = $wl3i100; $2804 = $2802 * $2803; $2805 = $2798 + $2804; $di116 = $2805; $2806 = $tkm4; $2807 = $0; $2808 = (($2807) + ($2806<<4)|0); $2809 = +HEAPF64[$2808>>3]; $2810 = $wl4r; $2811 = $2809 * $2810; $2812 = $tkm4; $2813 = $0; $2814 = (($2813) + ($2812<<4)|0); $2815 = ((($2814)) + 8|0); $2816 = +HEAPF64[$2815>>3]; $2817 = $wl4i; $2818 = $2816 * $2817; $2819 = $2811 - $2818; $er = $2819; $2820 = $tkm4; $2821 = $0; $2822 = (($2821) + ($2820<<4)|0); $2823 = ((($2822)) + 8|0); $2824 = +HEAPF64[$2823>>3]; $2825 = $wl4r; $2826 = $2824 * $2825; $2827 = $tkm4; $2828 = $0; $2829 = (($2828) + ($2827<<4)|0); $2830 = +HEAPF64[$2829>>3]; $2831 = $wl4i; $2832 = $2830 * $2831; $2833 = $2826 + $2832; $ei = $2833; $2834 = $br111; $2835 = $er; $2836 = $2834 + $2835; $tau0r101 = $2836; $2837 = $bi112; $2838 = $ei; $2839 = $2837 + $2838; $tau0i102 = $2839; $2840 = $cr113; $2841 = $dr115; $2842 = $2840 + $2841; $tau1r103 = $2842; $2843 = $ci114; $2844 = $di116; $2845 = $2843 + $2844; $tau1i104 = $2845; $2846 = $br111; $2847 = $er; $2848 = $2846 - $2847; $tau2r105 = $2848; $2849 = $bi112; $2850 = $ei; $2851 = $2849 - $2850; $tau2i106 = $2851; $2852 = $cr113; $2853 = $dr115; $2854 = $2852 - $2853; $tau3r107 = $2854; $2855 = $ci114; $2856 = $di116; $2857 = $2855 - $2856; $tau3i108 = $2857; $2858 = $ar109; $2859 = $tau0r101; $2860 = $2858 + $2859; $2861 = $tau1r103; $2862 = $2860 + $2861; $2863 = $k90; $2864 = $0; $2865 = (($2864) + ($2863<<4)|0); HEAPF64[$2865>>3] = $2862; $2866 = $ai110; $2867 = $tau0i102; $2868 = $2866 + $2867; $2869 = $tau1i104; $2870 = $2868 + $2869; $2871 = $k90; $2872 = $0; $2873 = (($2872) + ($2871<<4)|0); $2874 = ((($2873)) + 8|0); HEAPF64[$2874>>3] = $2870; $2875 = $c1123; $2876 = $tau0r101; $2877 = $2875 * $2876; $2878 = $c2124; $2879 = $tau1r103; $2880 = $2878 * $2879; $2881 = $2877 + $2880; $tau4r117 = $2881; $2882 = $c1123; $2883 = $tau0i102; $2884 = $2882 * $2883; $2885 = $c2124; $2886 = $tau1i104; $2887 = $2885 * $2886; $2888 = $2884 + $2887; $tau4i118 = $2888; $2889 = $3; $2890 = ($2889|0)==(1); $2891 = $s1125; if ($2890) { $2892 = $tau2r105; $2893 = $2891 * $2892; $2894 = $s2126; $2895 = $tau3r107; $2896 = $2894 * $2895; $2897 = $2893 + $2896; $tau5r119 = $2897; $2898 = $s1125; $2899 = $tau2i106; $2900 = $2898 * $2899; $2901 = $s2126; $2902 = $tau3i108; $2903 = $2901 * $2902; $2904 = $2900 + $2903; $tau5i120 = $2904; } else { $2905 = -$2891; $2906 = $tau2r105; $2907 = $2905 * $2906; $2908 = $s2126; $2909 = $tau3r107; $2910 = $2908 * $2909; $2911 = $2907 - $2910; $tau5r119 = $2911; $2912 = $s1125; $2913 = -$2912; $2914 = $tau2i106; $2915 = $2913 * $2914; $2916 = $s2126; $2917 = $tau3i108; $2918 = $2916 * $2917; $2919 = $2915 - $2918; $tau5i120 = $2919; } $2920 = $ar109; $2921 = $tau4r117; $2922 = $2920 + $2921; $tau6r121 = $2922; $2923 = $ai110; $2924 = $tau4i118; $2925 = $2923 + $2924; $tau6i122 = $2925; $2926 = $tau6r121; $2927 = $tau5i120; $2928 = $2926 + $2927; $2929 = $tkm191; $2930 = $0; $2931 = (($2930) + ($2929<<4)|0); HEAPF64[$2931>>3] = $2928; $2932 = $tau6i122; $2933 = $tau5r119; $2934 = $2932 - $2933; $2935 = $tkm191; $2936 = $0; $2937 = (($2936) + ($2935<<4)|0); $2938 = ((($2937)) + 8|0); HEAPF64[$2938>>3] = $2934; $2939 = $tau6r121; $2940 = $tau5i120; $2941 = $2939 - $2940; $2942 = $tkm4; $2943 = $0; $2944 = (($2943) + ($2942<<4)|0); HEAPF64[$2944>>3] = $2941; $2945 = $tau6i122; $2946 = $tau5r119; $2947 = $2945 + $2946; $2948 = $tkm4; $2949 = $0; $2950 = (($2949) + ($2948<<4)|0); $2951 = ((($2950)) + 8|0); HEAPF64[$2951>>3] = $2947; $2952 = $c2124; $2953 = $tau0r101; $2954 = $2952 * $2953; $2955 = $c1123; $2956 = $tau1r103; $2957 = $2955 * $2956; $2958 = $2954 + $2957; $tau4r117 = $2958; $2959 = $c2124; $2960 = $tau0i102; $2961 = $2959 * $2960; $2962 = $c1123; $2963 = $tau1i104; $2964 = $2962 * $2963; $2965 = $2961 + $2964; $tau4i118 = $2965; $2966 = $3; $2967 = ($2966|0)==(1); $2968 = $s2126; if ($2967) { $2969 = $tau2r105; $2970 = $2968 * $2969; $2971 = $s1125; $2972 = $tau3r107; $2973 = $2971 * $2972; $2974 = $2970 - $2973; $tau5r119 = $2974; $2975 = $s2126; $2976 = $tau2i106; $2977 = $2975 * $2976; $2978 = $s1125; $2979 = $tau3i108; $2980 = $2978 * $2979; $2981 = $2977 - $2980; $tau5i120 = $2981; } else { $2982 = -$2968; $2983 = $tau2r105; $2984 = $2982 * $2983; $2985 = $s1125; $2986 = $tau3r107; $2987 = $2985 * $2986; $2988 = $2984 + $2987; $tau5r119 = $2988; $2989 = $s2126; $2990 = -$2989; $2991 = $tau2i106; $2992 = $2990 * $2991; $2993 = $s1125; $2994 = $tau3i108; $2995 = $2993 * $2994; $2996 = $2992 + $2995; $tau5i120 = $2996; } $2997 = $ar109; $2998 = $tau4r117; $2999 = $2997 + $2998; $tau6r121 = $2999; $3000 = $ai110; $3001 = $tau4i118; $3002 = $3000 + $3001; $tau6i122 = $3002; $3003 = $tau6r121; $3004 = $tau5i120; $3005 = $3003 + $3004; $3006 = $tkm292; $3007 = $0; $3008 = (($3007) + ($3006<<4)|0); HEAPF64[$3008>>3] = $3005; $3009 = $tau6i122; $3010 = $tau5r119; $3011 = $3009 - $3010; $3012 = $tkm292; $3013 = $0; $3014 = (($3013) + ($3012<<4)|0); $3015 = ((($3014)) + 8|0); HEAPF64[$3015>>3] = $3011; $3016 = $tau6r121; $3017 = $tau5i120; $3018 = $3016 - $3017; $3019 = $tkm393; $3020 = $0; $3021 = (($3020) + ($3019<<4)|0); HEAPF64[$3021>>3] = $3018; $3022 = $tau6i122; $3023 = $tau5r119; $3024 = $3022 + $3023; $3025 = $tkm393; $3026 = $0; $3027 = (($3026) + ($3025<<4)|0); $3028 = ((($3027)) + 8|0); HEAPF64[$3028>>3] = $3024; $3029 = $k90; $3030 = (($3029) + 1)|0; $k90 = $3030; } STACKTOP = sp;return; } $3031 = $radix; $3032 = ($3031|0)==(7); if ($3032) { $3033 = $4; $3034 = (($3033|0) / 7)&-1; $m = $3034; $3035 = $5; $3036 = ($3035*7)|0; $ll = $3036; $3037 = $0; $3038 = $1; $3039 = $2; $3040 = $3; $3041 = $m; $3042 = $ll; $3043 = $6; $3044 = (($3043) + 1)|0; _mixed_radix_dit_rec($3037,$3038,$3039,$3040,$3041,$3042,$3044); $3045 = $0; $3046 = $m; $3047 = (($3045) + ($3046<<4)|0); $3048 = $1; $3049 = $5; $3050 = (($3048) + ($3049<<4)|0); $3051 = $2; $3052 = $3; $3053 = $m; $3054 = $ll; $3055 = $6; $3056 = (($3055) + 1)|0; _mixed_radix_dit_rec($3047,$3050,$3051,$3052,$3053,$3054,$3056); $3057 = $0; $3058 = $m; $3059 = $3058<<1; $3060 = (($3057) + ($3059<<4)|0); $3061 = $1; $3062 = $5; $3063 = $3062<<1; $3064 = (($3061) + ($3063<<4)|0); $3065 = $2; $3066 = $3; $3067 = $m; $3068 = $ll; $3069 = $6; $3070 = (($3069) + 1)|0; _mixed_radix_dit_rec($3060,$3064,$3065,$3066,$3067,$3068,$3070); $3071 = $0; $3072 = $m; $3073 = ($3072*3)|0; $3074 = (($3071) + ($3073<<4)|0); $3075 = $1; $3076 = $5; $3077 = ($3076*3)|0; $3078 = (($3075) + ($3077<<4)|0); $3079 = $2; $3080 = $3; $3081 = $m; $3082 = $ll; $3083 = $6; $3084 = (($3083) + 1)|0; _mixed_radix_dit_rec($3074,$3078,$3079,$3080,$3081,$3082,$3084); $3085 = $0; $3086 = $m; $3087 = $3086<<2; $3088 = (($3085) + ($3087<<4)|0); $3089 = $1; $3090 = $5; $3091 = $3090<<2; $3092 = (($3089) + ($3091<<4)|0); $3093 = $2; $3094 = $3; $3095 = $m; $3096 = $ll; $3097 = $6; $3098 = (($3097) + 1)|0; _mixed_radix_dit_rec($3088,$3092,$3093,$3094,$3095,$3096,$3098); $3099 = $0; $3100 = $m; $3101 = ($3100*5)|0; $3102 = (($3099) + ($3101<<4)|0); $3103 = $1; $3104 = $5; $3105 = ($3104*5)|0; $3106 = (($3103) + ($3105<<4)|0); $3107 = $2; $3108 = $3; $3109 = $m; $3110 = $ll; $3111 = $6; $3112 = (($3111) + 1)|0; _mixed_radix_dit_rec($3102,$3106,$3107,$3108,$3109,$3110,$3112); $3113 = $0; $3114 = $m; $3115 = ($3114*6)|0; $3116 = (($3113) + ($3115<<4)|0); $3117 = $1; $3118 = $5; $3119 = ($3118*6)|0; $3120 = (($3117) + ($3119<<4)|0); $3121 = $2; $3122 = $3; $3123 = $m; $3124 = $ll; $3125 = $6; $3126 = (($3125) + 1)|0; _mixed_radix_dit_rec($3116,$3120,$3121,$3122,$3123,$3124,$3126); $c1167 = 0.62348980185000002; $c2168 = -0.22252093395; $c3169 = -0.90096886789999997; $s1170 = 0.78183148246; $s2171 = 0.97492791217999996; $s3172 = 0.43388373911; $3127 = $m; $tkm1128 = $3127; $3128 = $tkm1128; $3129 = $m; $3130 = (($3128) + ($3129))|0; $tkm2129 = $3130; $3131 = $tkm2129; $3132 = $m; $3133 = (($3131) + ($3132))|0; $tkm3130 = $3133; $3134 = $tkm3130; $3135 = $m; $3136 = (($3134) + ($3135))|0; $tkm4131 = $3136; $3137 = $tkm4131; $3138 = $m; $3139 = (($3137) + ($3138))|0; $tkm5 = $3139; $3140 = $tkm5; $3141 = $m; $3142 = (($3140) + ($3141))|0; $tkm6 = $3142; $3143 = $0; $3144 = +HEAPF64[$3143>>3]; $ar149 = $3144; $3145 = $0; $3146 = ((($3145)) + 8|0); $3147 = +HEAPF64[$3146>>3]; $ai150 = $3147; $3148 = $tkm1128; $3149 = $0; $3150 = (($3149) + ($3148<<4)|0); $3151 = +HEAPF64[$3150>>3]; $br151 = $3151; $3152 = $tkm1128; $3153 = $0; $3154 = (($3153) + ($3152<<4)|0); $3155 = ((($3154)) + 8|0); $3156 = +HEAPF64[$3155>>3]; $bi152 = $3156; $3157 = $tkm2129; $3158 = $0; $3159 = (($3158) + ($3157<<4)|0); $3160 = +HEAPF64[$3159>>3]; $cr153 = $3160; $3161 = $tkm2129; $3162 = $0; $3163 = (($3162) + ($3161<<4)|0); $3164 = ((($3163)) + 8|0); $3165 = +HEAPF64[$3164>>3]; $ci154 = $3165; $3166 = $tkm3130; $3167 = $0; $3168 = (($3167) + ($3166<<4)|0); $3169 = +HEAPF64[$3168>>3]; $dr155 = $3169; $3170 = $tkm3130; $3171 = $0; $3172 = (($3171) + ($3170<<4)|0); $3173 = ((($3172)) + 8|0); $3174 = +HEAPF64[$3173>>3]; $di156 = $3174; $3175 = $tkm4131; $3176 = $0; $3177 = (($3176) + ($3175<<4)|0); $3178 = +HEAPF64[$3177>>3]; $er157 = $3178; $3179 = $tkm4131; $3180 = $0; $3181 = (($3180) + ($3179<<4)|0); $3182 = ((($3181)) + 8|0); $3183 = +HEAPF64[$3182>>3]; $ei158 = $3183; $3184 = $tkm5; $3185 = $0; $3186 = (($3185) + ($3184<<4)|0); $3187 = +HEAPF64[$3186>>3]; $fr = $3187; $3188 = $tkm5; $3189 = $0; $3190 = (($3189) + ($3188<<4)|0); $3191 = ((($3190)) + 8|0); $3192 = +HEAPF64[$3191>>3]; $fi = $3192; $3193 = $tkm6; $3194 = $0; $3195 = (($3194) + ($3193<<4)|0); $3196 = +HEAPF64[$3195>>3]; $gr = $3196; $3197 = $tkm6; $3198 = $0; $3199 = (($3198) + ($3197<<4)|0); $3200 = ((($3199)) + 8|0); $3201 = +HEAPF64[$3200>>3]; $gi = $3201; $3202 = $br151; $3203 = $gr; $3204 = $3202 + $3203; $tau0r141 = $3204; $3205 = $br151; $3206 = $gr; $3207 = $3205 - $3206; $tau3r147 = $3207; $3208 = $bi152; $3209 = $gi; $3210 = $3208 + $3209; $tau0i142 = $3210; $3211 = $bi152; $3212 = $gi; $3213 = $3211 - $3212; $tau3i148 = $3213; $3214 = $cr153; $3215 = $fr; $3216 = $3214 + $3215; $tau1r143 = $3216; $3217 = $cr153; $3218 = $fr; $3219 = $3217 - $3218; $tau4r159 = $3219; $3220 = $ci154; $3221 = $fi; $3222 = $3220 + $3221; $tau1i144 = $3222; $3223 = $ci154; $3224 = $fi; $3225 = $3223 - $3224; $tau4i160 = $3225; $3226 = $dr155; $3227 = $er157; $3228 = $3226 + $3227; $tau2r145 = $3228; $3229 = $dr155; $3230 = $er157; $3231 = $3229 - $3230; $tau5r161 = $3231; $3232 = $di156; $3233 = $ei158; $3234 = $3232 + $3233; $tau2i146 = $3234; $3235 = $di156; $3236 = $ei158; $3237 = $3235 - $3236; $tau5i162 = $3237; $3238 = $ar149; $3239 = $tau0r141; $3240 = $3238 + $3239; $3241 = $tau1r143; $3242 = $3240 + $3241; $3243 = $tau2r145; $3244 = $3242 + $3243; $3245 = $0; HEAPF64[$3245>>3] = $3244; $3246 = $ai150; $3247 = $tau0i142; $3248 = $3246 + $3247; $3249 = $tau1i144; $3250 = $3248 + $3249; $3251 = $tau2i146; $3252 = $3250 + $3251; $3253 = $0; $3254 = ((($3253)) + 8|0); HEAPF64[$3254>>3] = $3252; $3255 = $ar149; $3256 = $c1167; $3257 = $tau0r141; $3258 = $3256 * $3257; $3259 = $3255 + $3258; $3260 = $c2168; $3261 = $tau1r143; $3262 = $3260 * $3261; $3263 = $3259 + $3262; $3264 = $c3169; $3265 = $tau2r145; $3266 = $3264 * $3265; $3267 = $3263 + $3266; $tau6r163 = $3267; $3268 = $ai150; $3269 = $c1167; $3270 = $tau0i142; $3271 = $3269 * $3270; $3272 = $3268 + $3271; $3273 = $c2168; $3274 = $tau1i144; $3275 = $3273 * $3274; $3276 = $3272 + $3275; $3277 = $c3169; $3278 = $tau2i146; $3279 = $3277 * $3278; $3280 = $3276 + $3279; $tau6i164 = $3280; $3281 = $3; $3282 = ($3281|0)==(1); $3283 = $s1170; if ($3282) { $3284 = -$3283; $3285 = $tau3r147; $3286 = $3284 * $3285; $3287 = $s2171; $3288 = $tau4r159; $3289 = $3287 * $3288; $3290 = $3286 - $3289; $3291 = $s3172; $3292 = $tau5r161; $3293 = $3291 * $3292; $3294 = $3290 - $3293; $tau7r165 = $3294; $3295 = $s1170; $3296 = -$3295; $3297 = $tau3i148; $3298 = $3296 * $3297; $3299 = $s2171; $3300 = $tau4i160; $3301 = $3299 * $3300; $3302 = $3298 - $3301; $3303 = $s3172; $3304 = $tau5i162; $3305 = $3303 * $3304; $3306 = $3302 - $3305; $tau7i166 = $3306; } else { $3307 = $tau3r147; $3308 = $3283 * $3307; $3309 = $s2171; $3310 = $tau4r159; $3311 = $3309 * $3310; $3312 = $3308 + $3311; $3313 = $s3172; $3314 = $tau5r161; $3315 = $3313 * $3314; $3316 = $3312 + $3315; $tau7r165 = $3316; $3317 = $s1170; $3318 = $tau3i148; $3319 = $3317 * $3318; $3320 = $s2171; $3321 = $tau4i160; $3322 = $3320 * $3321; $3323 = $3319 + $3322; $3324 = $s3172; $3325 = $tau5i162; $3326 = $3324 * $3325; $3327 = $3323 + $3326; $tau7i166 = $3327; } $3328 = $tau6r163; $3329 = $tau7i166; $3330 = $3328 - $3329; $3331 = $tkm1128; $3332 = $0; $3333 = (($3332) + ($3331<<4)|0); HEAPF64[$3333>>3] = $3330; $3334 = $tau6i164; $3335 = $tau7r165; $3336 = $3334 + $3335; $3337 = $tkm1128; $3338 = $0; $3339 = (($3338) + ($3337<<4)|0); $3340 = ((($3339)) + 8|0); HEAPF64[$3340>>3] = $3336; $3341 = $tau6r163; $3342 = $tau7i166; $3343 = $3341 + $3342; $3344 = $tkm6; $3345 = $0; $3346 = (($3345) + ($3344<<4)|0); HEAPF64[$3346>>3] = $3343; $3347 = $tau6i164; $3348 = $tau7r165; $3349 = $3347 - $3348; $3350 = $tkm6; $3351 = $0; $3352 = (($3351) + ($3350<<4)|0); $3353 = ((($3352)) + 8|0); HEAPF64[$3353>>3] = $3349; $3354 = $ar149; $3355 = $c2168; $3356 = $tau0r141; $3357 = $3355 * $3356; $3358 = $3354 + $3357; $3359 = $c3169; $3360 = $tau1r143; $3361 = $3359 * $3360; $3362 = $3358 + $3361; $3363 = $c1167; $3364 = $tau2r145; $3365 = $3363 * $3364; $3366 = $3362 + $3365; $tau6r163 = $3366; $3367 = $ai150; $3368 = $c2168; $3369 = $tau0i142; $3370 = $3368 * $3369; $3371 = $3367 + $3370; $3372 = $c3169; $3373 = $tau1i144; $3374 = $3372 * $3373; $3375 = $3371 + $3374; $3376 = $c1167; $3377 = $tau2i146; $3378 = $3376 * $3377; $3379 = $3375 + $3378; $tau6i164 = $3379; $3380 = $3; $3381 = ($3380|0)==(1); $3382 = $s2171; if ($3381) { $3383 = -$3382; $3384 = $tau3r147; $3385 = $3383 * $3384; $3386 = $s3172; $3387 = $tau4r159; $3388 = $3386 * $3387; $3389 = $3385 + $3388; $3390 = $s1170; $3391 = $tau5r161; $3392 = $3390 * $3391; $3393 = $3389 + $3392; $tau7r165 = $3393; $3394 = $s2171; $3395 = -$3394; $3396 = $tau3i148; $3397 = $3395 * $3396; $3398 = $s3172; $3399 = $tau4i160; $3400 = $3398 * $3399; $3401 = $3397 + $3400; $3402 = $s1170; $3403 = $tau5i162; $3404 = $3402 * $3403; $3405 = $3401 + $3404; $tau7i166 = $3405; } else { $3406 = $tau3r147; $3407 = $3382 * $3406; $3408 = $s3172; $3409 = $tau4r159; $3410 = $3408 * $3409; $3411 = $3407 - $3410; $3412 = $s1170; $3413 = $tau5r161; $3414 = $3412 * $3413; $3415 = $3411 - $3414; $tau7r165 = $3415; $3416 = $s2171; $3417 = $tau3i148; $3418 = $3416 * $3417; $3419 = $s3172; $3420 = $tau4i160; $3421 = $3419 * $3420; $3422 = $3418 - $3421; $3423 = $s1170; $3424 = $tau5i162; $3425 = $3423 * $3424; $3426 = $3422 - $3425; $tau7i166 = $3426; } $3427 = $tau6r163; $3428 = $tau7i166; $3429 = $3427 - $3428; $3430 = $tkm2129; $3431 = $0; $3432 = (($3431) + ($3430<<4)|0); HEAPF64[$3432>>3] = $3429; $3433 = $tau6i164; $3434 = $tau7r165; $3435 = $3433 + $3434; $3436 = $tkm2129; $3437 = $0; $3438 = (($3437) + ($3436<<4)|0); $3439 = ((($3438)) + 8|0); HEAPF64[$3439>>3] = $3435; $3440 = $tau6r163; $3441 = $tau7i166; $3442 = $3440 + $3441; $3443 = $tkm5; $3444 = $0; $3445 = (($3444) + ($3443<<4)|0); HEAPF64[$3445>>3] = $3442; $3446 = $tau6i164; $3447 = $tau7r165; $3448 = $3446 - $3447; $3449 = $tkm5; $3450 = $0; $3451 = (($3450) + ($3449<<4)|0); $3452 = ((($3451)) + 8|0); HEAPF64[$3452>>3] = $3448; $3453 = $ar149; $3454 = $c3169; $3455 = $tau0r141; $3456 = $3454 * $3455; $3457 = $3453 + $3456; $3458 = $c1167; $3459 = $tau1r143; $3460 = $3458 * $3459; $3461 = $3457 + $3460; $3462 = $c2168; $3463 = $tau2r145; $3464 = $3462 * $3463; $3465 = $3461 + $3464; $tau6r163 = $3465; $3466 = $ai150; $3467 = $c3169; $3468 = $tau0i142; $3469 = $3467 * $3468; $3470 = $3466 + $3469; $3471 = $c1167; $3472 = $tau1i144; $3473 = $3471 * $3472; $3474 = $3470 + $3473; $3475 = $c2168; $3476 = $tau2i146; $3477 = $3475 * $3476; $3478 = $3474 + $3477; $tau6i164 = $3478; $3479 = $3; $3480 = ($3479|0)==(1); $3481 = $s3172; if ($3480) { $3482 = -$3481; $3483 = $tau3r147; $3484 = $3482 * $3483; $3485 = $s1170; $3486 = $tau4r159; $3487 = $3485 * $3486; $3488 = $3484 + $3487; $3489 = $s2171; $3490 = $tau5r161; $3491 = $3489 * $3490; $3492 = $3488 - $3491; $tau7r165 = $3492; $3493 = $s3172; $3494 = -$3493; $3495 = $tau3i148; $3496 = $3494 * $3495; $3497 = $s1170; $3498 = $tau4i160; $3499 = $3497 * $3498; $3500 = $3496 + $3499; $3501 = $s2171; $3502 = $tau5i162; $3503 = $3501 * $3502; $3504 = $3500 - $3503; $tau7i166 = $3504; } else { $3505 = $tau3r147; $3506 = $3481 * $3505; $3507 = $s1170; $3508 = $tau4r159; $3509 = $3507 * $3508; $3510 = $3506 - $3509; $3511 = $s2171; $3512 = $tau5r161; $3513 = $3511 * $3512; $3514 = $3510 + $3513; $tau7r165 = $3514; $3515 = $s3172; $3516 = $tau3i148; $3517 = $3515 * $3516; $3518 = $s1170; $3519 = $tau4i160; $3520 = $3518 * $3519; $3521 = $3517 - $3520; $3522 = $s2171; $3523 = $tau5i162; $3524 = $3522 * $3523; $3525 = $3521 + $3524; $tau7i166 = $3525; } $3526 = $tau6r163; $3527 = $tau7i166; $3528 = $3526 - $3527; $3529 = $tkm3130; $3530 = $0; $3531 = (($3530) + ($3529<<4)|0); HEAPF64[$3531>>3] = $3528; $3532 = $tau6i164; $3533 = $tau7r165; $3534 = $3532 + $3533; $3535 = $tkm3130; $3536 = $0; $3537 = (($3536) + ($3535<<4)|0); $3538 = ((($3537)) + 8|0); HEAPF64[$3538>>3] = $3534; $3539 = $tau6r163; $3540 = $tau7i166; $3541 = $3539 + $3540; $3542 = $tkm4131; $3543 = $0; $3544 = (($3543) + ($3542<<4)|0); HEAPF64[$3544>>3] = $3541; $3545 = $tau6i164; $3546 = $tau7r165; $3547 = $3545 - $3546; $3548 = $tkm4131; $3549 = $0; $3550 = (($3549) + ($3548<<4)|0); $3551 = ((($3550)) + 8|0); HEAPF64[$3551>>3] = $3547; $k127 = 1; while(1) { $3552 = $k127; $3553 = $m; $3554 = ($3552|0)<($3553|0); if (!($3554)) { break; } $3555 = $m; $3556 = (($3555) - 1)|0; $3557 = $k127; $3558 = ($3557*6)|0; $3559 = (($3556) + ($3558))|0; $ind132 = $3559; $3560 = $2; $3561 = ((($3560)) + 272|0); $3562 = $ind132; $3563 = (($3561) + ($3562<<4)|0); $3564 = +HEAPF64[$3563>>3]; $wlr133 = $3564; $3565 = $2; $3566 = ((($3565)) + 272|0); $3567 = $ind132; $3568 = (($3566) + ($3567<<4)|0); $3569 = ((($3568)) + 8|0); $3570 = +HEAPF64[$3569>>3]; $wli134 = $3570; $3571 = $ind132; $3572 = (($3571) + 1)|0; $ind132 = $3572; $3573 = $2; $3574 = ((($3573)) + 272|0); $3575 = $ind132; $3576 = (($3574) + ($3575<<4)|0); $3577 = +HEAPF64[$3576>>3]; $wl2r135 = $3577; $3578 = $2; $3579 = ((($3578)) + 272|0); $3580 = $ind132; $3581 = (($3579) + ($3580<<4)|0); $3582 = ((($3581)) + 8|0); $3583 = +HEAPF64[$3582>>3]; $wl2i136 = $3583; $3584 = $ind132; $3585 = (($3584) + 1)|0; $ind132 = $3585; $3586 = $2; $3587 = ((($3586)) + 272|0); $3588 = $ind132; $3589 = (($3587) + ($3588<<4)|0); $3590 = +HEAPF64[$3589>>3]; $wl3r137 = $3590; $3591 = $2; $3592 = ((($3591)) + 272|0); $3593 = $ind132; $3594 = (($3592) + ($3593<<4)|0); $3595 = ((($3594)) + 8|0); $3596 = +HEAPF64[$3595>>3]; $wl3i138 = $3596; $3597 = $ind132; $3598 = (($3597) + 1)|0; $ind132 = $3598; $3599 = $2; $3600 = ((($3599)) + 272|0); $3601 = $ind132; $3602 = (($3600) + ($3601<<4)|0); $3603 = +HEAPF64[$3602>>3]; $wl4r139 = $3603; $3604 = $2; $3605 = ((($3604)) + 272|0); $3606 = $ind132; $3607 = (($3605) + ($3606<<4)|0); $3608 = ((($3607)) + 8|0); $3609 = +HEAPF64[$3608>>3]; $wl4i140 = $3609; $3610 = $ind132; $3611 = (($3610) + 1)|0; $ind132 = $3611; $3612 = $2; $3613 = ((($3612)) + 272|0); $3614 = $ind132; $3615 = (($3613) + ($3614<<4)|0); $3616 = +HEAPF64[$3615>>3]; $wl5r = $3616; $3617 = $2; $3618 = ((($3617)) + 272|0); $3619 = $ind132; $3620 = (($3618) + ($3619<<4)|0); $3621 = ((($3620)) + 8|0); $3622 = +HEAPF64[$3621>>3]; $wl5i = $3622; $3623 = $ind132; $3624 = (($3623) + 1)|0; $ind132 = $3624; $3625 = $2; $3626 = ((($3625)) + 272|0); $3627 = $ind132; $3628 = (($3626) + ($3627<<4)|0); $3629 = +HEAPF64[$3628>>3]; $wl6r = $3629; $3630 = $2; $3631 = ((($3630)) + 272|0); $3632 = $ind132; $3633 = (($3631) + ($3632<<4)|0); $3634 = ((($3633)) + 8|0); $3635 = +HEAPF64[$3634>>3]; $wl6i = $3635; $3636 = $k127; $3637 = $m; $3638 = (($3636) + ($3637))|0; $tkm1128 = $3638; $3639 = $tkm1128; $3640 = $m; $3641 = (($3639) + ($3640))|0; $tkm2129 = $3641; $3642 = $tkm2129; $3643 = $m; $3644 = (($3642) + ($3643))|0; $tkm3130 = $3644; $3645 = $tkm3130; $3646 = $m; $3647 = (($3645) + ($3646))|0; $tkm4131 = $3647; $3648 = $tkm4131; $3649 = $m; $3650 = (($3648) + ($3649))|0; $tkm5 = $3650; $3651 = $tkm5; $3652 = $m; $3653 = (($3651) + ($3652))|0; $tkm6 = $3653; $3654 = $k127; $3655 = $0; $3656 = (($3655) + ($3654<<4)|0); $3657 = +HEAPF64[$3656>>3]; $ar149 = $3657; $3658 = $k127; $3659 = $0; $3660 = (($3659) + ($3658<<4)|0); $3661 = ((($3660)) + 8|0); $3662 = +HEAPF64[$3661>>3]; $ai150 = $3662; $3663 = $tkm1128; $3664 = $0; $3665 = (($3664) + ($3663<<4)|0); $3666 = +HEAPF64[$3665>>3]; $3667 = $wlr133; $3668 = $3666 * $3667; $3669 = $tkm1128; $3670 = $0; $3671 = (($3670) + ($3669<<4)|0); $3672 = ((($3671)) + 8|0); $3673 = +HEAPF64[$3672>>3]; $3674 = $wli134; $3675 = $3673 * $3674; $3676 = $3668 - $3675; $br151 = $3676; $3677 = $tkm1128; $3678 = $0; $3679 = (($3678) + ($3677<<4)|0); $3680 = ((($3679)) + 8|0); $3681 = +HEAPF64[$3680>>3]; $3682 = $wlr133; $3683 = $3681 * $3682; $3684 = $tkm1128; $3685 = $0; $3686 = (($3685) + ($3684<<4)|0); $3687 = +HEAPF64[$3686>>3]; $3688 = $wli134; $3689 = $3687 * $3688; $3690 = $3683 + $3689; $bi152 = $3690; $3691 = $tkm2129; $3692 = $0; $3693 = (($3692) + ($3691<<4)|0); $3694 = +HEAPF64[$3693>>3]; $3695 = $wl2r135; $3696 = $3694 * $3695; $3697 = $tkm2129; $3698 = $0; $3699 = (($3698) + ($3697<<4)|0); $3700 = ((($3699)) + 8|0); $3701 = +HEAPF64[$3700>>3]; $3702 = $wl2i136; $3703 = $3701 * $3702; $3704 = $3696 - $3703; $cr153 = $3704; $3705 = $tkm2129; $3706 = $0; $3707 = (($3706) + ($3705<<4)|0); $3708 = ((($3707)) + 8|0); $3709 = +HEAPF64[$3708>>3]; $3710 = $wl2r135; $3711 = $3709 * $3710; $3712 = $tkm2129; $3713 = $0; $3714 = (($3713) + ($3712<<4)|0); $3715 = +HEAPF64[$3714>>3]; $3716 = $wl2i136; $3717 = $3715 * $3716; $3718 = $3711 + $3717; $ci154 = $3718; $3719 = $tkm3130; $3720 = $0; $3721 = (($3720) + ($3719<<4)|0); $3722 = +HEAPF64[$3721>>3]; $3723 = $wl3r137; $3724 = $3722 * $3723; $3725 = $tkm3130; $3726 = $0; $3727 = (($3726) + ($3725<<4)|0); $3728 = ((($3727)) + 8|0); $3729 = +HEAPF64[$3728>>3]; $3730 = $wl3i138; $3731 = $3729 * $3730; $3732 = $3724 - $3731; $dr155 = $3732; $3733 = $tkm3130; $3734 = $0; $3735 = (($3734) + ($3733<<4)|0); $3736 = ((($3735)) + 8|0); $3737 = +HEAPF64[$3736>>3]; $3738 = $wl3r137; $3739 = $3737 * $3738; $3740 = $tkm3130; $3741 = $0; $3742 = (($3741) + ($3740<<4)|0); $3743 = +HEAPF64[$3742>>3]; $3744 = $wl3i138; $3745 = $3743 * $3744; $3746 = $3739 + $3745; $di156 = $3746; $3747 = $tkm4131; $3748 = $0; $3749 = (($3748) + ($3747<<4)|0); $3750 = +HEAPF64[$3749>>3]; $3751 = $wl4r139; $3752 = $3750 * $3751; $3753 = $tkm4131; $3754 = $0; $3755 = (($3754) + ($3753<<4)|0); $3756 = ((($3755)) + 8|0); $3757 = +HEAPF64[$3756>>3]; $3758 = $wl4i140; $3759 = $3757 * $3758; $3760 = $3752 - $3759; $er157 = $3760; $3761 = $tkm4131; $3762 = $0; $3763 = (($3762) + ($3761<<4)|0); $3764 = ((($3763)) + 8|0); $3765 = +HEAPF64[$3764>>3]; $3766 = $wl4r139; $3767 = $3765 * $3766; $3768 = $tkm4131; $3769 = $0; $3770 = (($3769) + ($3768<<4)|0); $3771 = +HEAPF64[$3770>>3]; $3772 = $wl4i140; $3773 = $3771 * $3772; $3774 = $3767 + $3773; $ei158 = $3774; $3775 = $tkm5; $3776 = $0; $3777 = (($3776) + ($3775<<4)|0); $3778 = +HEAPF64[$3777>>3]; $3779 = $wl5r; $3780 = $3778 * $3779; $3781 = $tkm5; $3782 = $0; $3783 = (($3782) + ($3781<<4)|0); $3784 = ((($3783)) + 8|0); $3785 = +HEAPF64[$3784>>3]; $3786 = $wl5i; $3787 = $3785 * $3786; $3788 = $3780 - $3787; $fr = $3788; $3789 = $tkm5; $3790 = $0; $3791 = (($3790) + ($3789<<4)|0); $3792 = ((($3791)) + 8|0); $3793 = +HEAPF64[$3792>>3]; $3794 = $wl5r; $3795 = $3793 * $3794; $3796 = $tkm5; $3797 = $0; $3798 = (($3797) + ($3796<<4)|0); $3799 = +HEAPF64[$3798>>3]; $3800 = $wl5i; $3801 = $3799 * $3800; $3802 = $3795 + $3801; $fi = $3802; $3803 = $tkm6; $3804 = $0; $3805 = (($3804) + ($3803<<4)|0); $3806 = +HEAPF64[$3805>>3]; $3807 = $wl6r; $3808 = $3806 * $3807; $3809 = $tkm6; $3810 = $0; $3811 = (($3810) + ($3809<<4)|0); $3812 = ((($3811)) + 8|0); $3813 = +HEAPF64[$3812>>3]; $3814 = $wl6i; $3815 = $3813 * $3814; $3816 = $3808 - $3815; $gr = $3816; $3817 = $tkm6; $3818 = $0; $3819 = (($3818) + ($3817<<4)|0); $3820 = ((($3819)) + 8|0); $3821 = +HEAPF64[$3820>>3]; $3822 = $wl6r; $3823 = $3821 * $3822; $3824 = $tkm6; $3825 = $0; $3826 = (($3825) + ($3824<<4)|0); $3827 = +HEAPF64[$3826>>3]; $3828 = $wl6i; $3829 = $3827 * $3828; $3830 = $3823 + $3829; $gi = $3830; $3831 = $br151; $3832 = $gr; $3833 = $3831 + $3832; $tau0r141 = $3833; $3834 = $br151; $3835 = $gr; $3836 = $3834 - $3835; $tau3r147 = $3836; $3837 = $bi152; $3838 = $gi; $3839 = $3837 + $3838; $tau0i142 = $3839; $3840 = $bi152; $3841 = $gi; $3842 = $3840 - $3841; $tau3i148 = $3842; $3843 = $cr153; $3844 = $fr; $3845 = $3843 + $3844; $tau1r143 = $3845; $3846 = $cr153; $3847 = $fr; $3848 = $3846 - $3847; $tau4r159 = $3848; $3849 = $ci154; $3850 = $fi; $3851 = $3849 + $3850; $tau1i144 = $3851; $3852 = $ci154; $3853 = $fi; $3854 = $3852 - $3853; $tau4i160 = $3854; $3855 = $dr155; $3856 = $er157; $3857 = $3855 + $3856; $tau2r145 = $3857; $3858 = $dr155; $3859 = $er157; $3860 = $3858 - $3859; $tau5r161 = $3860; $3861 = $di156; $3862 = $ei158; $3863 = $3861 + $3862; $tau2i146 = $3863; $3864 = $di156; $3865 = $ei158; $3866 = $3864 - $3865; $tau5i162 = $3866; $3867 = $ar149; $3868 = $tau0r141; $3869 = $3867 + $3868; $3870 = $tau1r143; $3871 = $3869 + $3870; $3872 = $tau2r145; $3873 = $3871 + $3872; $3874 = $k127; $3875 = $0; $3876 = (($3875) + ($3874<<4)|0); HEAPF64[$3876>>3] = $3873; $3877 = $ai150; $3878 = $tau0i142; $3879 = $3877 + $3878; $3880 = $tau1i144; $3881 = $3879 + $3880; $3882 = $tau2i146; $3883 = $3881 + $3882; $3884 = $k127; $3885 = $0; $3886 = (($3885) + ($3884<<4)|0); $3887 = ((($3886)) + 8|0); HEAPF64[$3887>>3] = $3883; $3888 = $ar149; $3889 = $c1167; $3890 = $tau0r141; $3891 = $3889 * $3890; $3892 = $3888 + $3891; $3893 = $c2168; $3894 = $tau1r143; $3895 = $3893 * $3894; $3896 = $3892 + $3895; $3897 = $c3169; $3898 = $tau2r145; $3899 = $3897 * $3898; $3900 = $3896 + $3899; $tau6r163 = $3900; $3901 = $ai150; $3902 = $c1167; $3903 = $tau0i142; $3904 = $3902 * $3903; $3905 = $3901 + $3904; $3906 = $c2168; $3907 = $tau1i144; $3908 = $3906 * $3907; $3909 = $3905 + $3908; $3910 = $c3169; $3911 = $tau2i146; $3912 = $3910 * $3911; $3913 = $3909 + $3912; $tau6i164 = $3913; $3914 = $3; $3915 = ($3914|0)==(1); $3916 = $s1170; if ($3915) { $3917 = -$3916; $3918 = $tau3r147; $3919 = $3917 * $3918; $3920 = $s2171; $3921 = $tau4r159; $3922 = $3920 * $3921; $3923 = $3919 - $3922; $3924 = $s3172; $3925 = $tau5r161; $3926 = $3924 * $3925; $3927 = $3923 - $3926; $tau7r165 = $3927; $3928 = $s1170; $3929 = -$3928; $3930 = $tau3i148; $3931 = $3929 * $3930; $3932 = $s2171; $3933 = $tau4i160; $3934 = $3932 * $3933; $3935 = $3931 - $3934; $3936 = $s3172; $3937 = $tau5i162; $3938 = $3936 * $3937; $3939 = $3935 - $3938; $tau7i166 = $3939; } else { $3940 = $tau3r147; $3941 = $3916 * $3940; $3942 = $s2171; $3943 = $tau4r159; $3944 = $3942 * $3943; $3945 = $3941 + $3944; $3946 = $s3172; $3947 = $tau5r161; $3948 = $3946 * $3947; $3949 = $3945 + $3948; $tau7r165 = $3949; $3950 = $s1170; $3951 = $tau3i148; $3952 = $3950 * $3951; $3953 = $s2171; $3954 = $tau4i160; $3955 = $3953 * $3954; $3956 = $3952 + $3955; $3957 = $s3172; $3958 = $tau5i162; $3959 = $3957 * $3958; $3960 = $3956 + $3959; $tau7i166 = $3960; } $3961 = $tau6r163; $3962 = $tau7i166; $3963 = $3961 - $3962; $3964 = $tkm1128; $3965 = $0; $3966 = (($3965) + ($3964<<4)|0); HEAPF64[$3966>>3] = $3963; $3967 = $tau6i164; $3968 = $tau7r165; $3969 = $3967 + $3968; $3970 = $tkm1128; $3971 = $0; $3972 = (($3971) + ($3970<<4)|0); $3973 = ((($3972)) + 8|0); HEAPF64[$3973>>3] = $3969; $3974 = $tau6r163; $3975 = $tau7i166; $3976 = $3974 + $3975; $3977 = $tkm6; $3978 = $0; $3979 = (($3978) + ($3977<<4)|0); HEAPF64[$3979>>3] = $3976; $3980 = $tau6i164; $3981 = $tau7r165; $3982 = $3980 - $3981; $3983 = $tkm6; $3984 = $0; $3985 = (($3984) + ($3983<<4)|0); $3986 = ((($3985)) + 8|0); HEAPF64[$3986>>3] = $3982; $3987 = $ar149; $3988 = $c2168; $3989 = $tau0r141; $3990 = $3988 * $3989; $3991 = $3987 + $3990; $3992 = $c3169; $3993 = $tau1r143; $3994 = $3992 * $3993; $3995 = $3991 + $3994; $3996 = $c1167; $3997 = $tau2r145; $3998 = $3996 * $3997; $3999 = $3995 + $3998; $tau6r163 = $3999; $4000 = $ai150; $4001 = $c2168; $4002 = $tau0i142; $4003 = $4001 * $4002; $4004 = $4000 + $4003; $4005 = $c3169; $4006 = $tau1i144; $4007 = $4005 * $4006; $4008 = $4004 + $4007; $4009 = $c1167; $4010 = $tau2i146; $4011 = $4009 * $4010; $4012 = $4008 + $4011; $tau6i164 = $4012; $4013 = $3; $4014 = ($4013|0)==(1); $4015 = $s2171; if ($4014) { $4016 = -$4015; $4017 = $tau3r147; $4018 = $4016 * $4017; $4019 = $s3172; $4020 = $tau4r159; $4021 = $4019 * $4020; $4022 = $4018 + $4021; $4023 = $s1170; $4024 = $tau5r161; $4025 = $4023 * $4024; $4026 = $4022 + $4025; $tau7r165 = $4026; $4027 = $s2171; $4028 = -$4027; $4029 = $tau3i148; $4030 = $4028 * $4029; $4031 = $s3172; $4032 = $tau4i160; $4033 = $4031 * $4032; $4034 = $4030 + $4033; $4035 = $s1170; $4036 = $tau5i162; $4037 = $4035 * $4036; $4038 = $4034 + $4037; $tau7i166 = $4038; } else { $4039 = $tau3r147; $4040 = $4015 * $4039; $4041 = $s3172; $4042 = $tau4r159; $4043 = $4041 * $4042; $4044 = $4040 - $4043; $4045 = $s1170; $4046 = $tau5r161; $4047 = $4045 * $4046; $4048 = $4044 - $4047; $tau7r165 = $4048; $4049 = $s2171; $4050 = $tau3i148; $4051 = $4049 * $4050; $4052 = $s3172; $4053 = $tau4i160; $4054 = $4052 * $4053; $4055 = $4051 - $4054; $4056 = $s1170; $4057 = $tau5i162; $4058 = $4056 * $4057; $4059 = $4055 - $4058; $tau7i166 = $4059; } $4060 = $tau6r163; $4061 = $tau7i166; $4062 = $4060 - $4061; $4063 = $tkm2129; $4064 = $0; $4065 = (($4064) + ($4063<<4)|0); HEAPF64[$4065>>3] = $4062; $4066 = $tau6i164; $4067 = $tau7r165; $4068 = $4066 + $4067; $4069 = $tkm2129; $4070 = $0; $4071 = (($4070) + ($4069<<4)|0); $4072 = ((($4071)) + 8|0); HEAPF64[$4072>>3] = $4068; $4073 = $tau6r163; $4074 = $tau7i166; $4075 = $4073 + $4074; $4076 = $tkm5; $4077 = $0; $4078 = (($4077) + ($4076<<4)|0); HEAPF64[$4078>>3] = $4075; $4079 = $tau6i164; $4080 = $tau7r165; $4081 = $4079 - $4080; $4082 = $tkm5; $4083 = $0; $4084 = (($4083) + ($4082<<4)|0); $4085 = ((($4084)) + 8|0); HEAPF64[$4085>>3] = $4081; $4086 = $ar149; $4087 = $c3169; $4088 = $tau0r141; $4089 = $4087 * $4088; $4090 = $4086 + $4089; $4091 = $c1167; $4092 = $tau1r143; $4093 = $4091 * $4092; $4094 = $4090 + $4093; $4095 = $c2168; $4096 = $tau2r145; $4097 = $4095 * $4096; $4098 = $4094 + $4097; $tau6r163 = $4098; $4099 = $ai150; $4100 = $c3169; $4101 = $tau0i142; $4102 = $4100 * $4101; $4103 = $4099 + $4102; $4104 = $c1167; $4105 = $tau1i144; $4106 = $4104 * $4105; $4107 = $4103 + $4106; $4108 = $c2168; $4109 = $tau2i146; $4110 = $4108 * $4109; $4111 = $4107 + $4110; $tau6i164 = $4111; $4112 = $3; $4113 = ($4112|0)==(1); $4114 = $s3172; if ($4113) { $4115 = -$4114; $4116 = $tau3r147; $4117 = $4115 * $4116; $4118 = $s1170; $4119 = $tau4r159; $4120 = $4118 * $4119; $4121 = $4117 + $4120; $4122 = $s2171; $4123 = $tau5r161; $4124 = $4122 * $4123; $4125 = $4121 - $4124; $tau7r165 = $4125; $4126 = $s3172; $4127 = -$4126; $4128 = $tau3i148; $4129 = $4127 * $4128; $4130 = $s1170; $4131 = $tau4i160; $4132 = $4130 * $4131; $4133 = $4129 + $4132; $4134 = $s2171; $4135 = $tau5i162; $4136 = $4134 * $4135; $4137 = $4133 - $4136; $tau7i166 = $4137; } else { $4138 = $tau3r147; $4139 = $4114 * $4138; $4140 = $s1170; $4141 = $tau4r159; $4142 = $4140 * $4141; $4143 = $4139 - $4142; $4144 = $s2171; $4145 = $tau5r161; $4146 = $4144 * $4145; $4147 = $4143 + $4146; $tau7r165 = $4147; $4148 = $s3172; $4149 = $tau3i148; $4150 = $4148 * $4149; $4151 = $s1170; $4152 = $tau4i160; $4153 = $4151 * $4152; $4154 = $4150 - $4153; $4155 = $s2171; $4156 = $tau5i162; $4157 = $4155 * $4156; $4158 = $4154 + $4157; $tau7i166 = $4158; } $4159 = $tau6r163; $4160 = $tau7i166; $4161 = $4159 - $4160; $4162 = $tkm3130; $4163 = $0; $4164 = (($4163) + ($4162<<4)|0); HEAPF64[$4164>>3] = $4161; $4165 = $tau6i164; $4166 = $tau7r165; $4167 = $4165 + $4166; $4168 = $tkm3130; $4169 = $0; $4170 = (($4169) + ($4168<<4)|0); $4171 = ((($4170)) + 8|0); HEAPF64[$4171>>3] = $4167; $4172 = $tau6r163; $4173 = $tau7i166; $4174 = $4172 + $4173; $4175 = $tkm4131; $4176 = $0; $4177 = (($4176) + ($4175<<4)|0); HEAPF64[$4177>>3] = $4174; $4178 = $tau6i164; $4179 = $tau7r165; $4180 = $4178 - $4179; $4181 = $tkm4131; $4182 = $0; $4183 = (($4182) + ($4181<<4)|0); $4184 = ((($4183)) + 8|0); HEAPF64[$4184>>3] = $4180; $4185 = $k127; $4186 = (($4185) + 1)|0; $k127 = $4186; } STACKTOP = sp;return; } $4187 = $radix; $4188 = ($4187|0)==(8); if ($4188) { $4189 = $4; $4190 = (($4189|0) / 8)&-1; $m = $4190; $4191 = $5; $4192 = $4191<<3; $ll = $4192; $4193 = $0; $4194 = $1; $4195 = $2; $4196 = $3; $4197 = $m; $4198 = $ll; $4199 = $6; $4200 = (($4199) + 1)|0; _mixed_radix_dit_rec($4193,$4194,$4195,$4196,$4197,$4198,$4200); $4201 = $0; $4202 = $m; $4203 = (($4201) + ($4202<<4)|0); $4204 = $1; $4205 = $5; $4206 = (($4204) + ($4205<<4)|0); $4207 = $2; $4208 = $3; $4209 = $m; $4210 = $ll; $4211 = $6; $4212 = (($4211) + 1)|0; _mixed_radix_dit_rec($4203,$4206,$4207,$4208,$4209,$4210,$4212); $4213 = $0; $4214 = $m; $4215 = $4214<<1; $4216 = (($4213) + ($4215<<4)|0); $4217 = $1; $4218 = $5; $4219 = $4218<<1; $4220 = (($4217) + ($4219<<4)|0); $4221 = $2; $4222 = $3; $4223 = $m; $4224 = $ll; $4225 = $6; $4226 = (($4225) + 1)|0; _mixed_radix_dit_rec($4216,$4220,$4221,$4222,$4223,$4224,$4226); $4227 = $0; $4228 = $m; $4229 = ($4228*3)|0; $4230 = (($4227) + ($4229<<4)|0); $4231 = $1; $4232 = $5; $4233 = ($4232*3)|0; $4234 = (($4231) + ($4233<<4)|0); $4235 = $2; $4236 = $3; $4237 = $m; $4238 = $ll; $4239 = $6; $4240 = (($4239) + 1)|0; _mixed_radix_dit_rec($4230,$4234,$4235,$4236,$4237,$4238,$4240); $4241 = $0; $4242 = $m; $4243 = $4242<<2; $4244 = (($4241) + ($4243<<4)|0); $4245 = $1; $4246 = $5; $4247 = $4246<<2; $4248 = (($4245) + ($4247<<4)|0); $4249 = $2; $4250 = $3; $4251 = $m; $4252 = $ll; $4253 = $6; $4254 = (($4253) + 1)|0; _mixed_radix_dit_rec($4244,$4248,$4249,$4250,$4251,$4252,$4254); $4255 = $0; $4256 = $m; $4257 = ($4256*5)|0; $4258 = (($4255) + ($4257<<4)|0); $4259 = $1; $4260 = $5; $4261 = ($4260*5)|0; $4262 = (($4259) + ($4261<<4)|0); $4263 = $2; $4264 = $3; $4265 = $m; $4266 = $ll; $4267 = $6; $4268 = (($4267) + 1)|0; _mixed_radix_dit_rec($4258,$4262,$4263,$4264,$4265,$4266,$4268); $4269 = $0; $4270 = $m; $4271 = ($4270*6)|0; $4272 = (($4269) + ($4271<<4)|0); $4273 = $1; $4274 = $5; $4275 = ($4274*6)|0; $4276 = (($4273) + ($4275<<4)|0); $4277 = $2; $4278 = $3; $4279 = $m; $4280 = $ll; $4281 = $6; $4282 = (($4281) + 1)|0; _mixed_radix_dit_rec($4272,$4276,$4277,$4278,$4279,$4280,$4282); $4283 = $0; $4284 = $m; $4285 = ($4284*7)|0; $4286 = (($4283) + ($4285<<4)|0); $4287 = $1; $4288 = $5; $4289 = ($4288*7)|0; $4290 = (($4287) + ($4289<<4)|0); $4291 = $2; $4292 = $3; $4293 = $m; $4294 = $ll; $4295 = $6; $4296 = (($4295) + 1)|0; _mixed_radix_dit_rec($4286,$4290,$4291,$4292,$4293,$4294,$4296); $c1227 = 0.70710678118654757; $s1228 = 0.70710678118654757; $k173 = 0; while(1) { $4297 = $k173; $4298 = $m; $4299 = ($4297|0)<($4298|0); if (!($4299)) { break; } $4300 = $m; $4301 = (($4300) - 1)|0; $4302 = $k173; $4303 = ($4302*7)|0; $4304 = (($4301) + ($4303))|0; $ind180 = $4304; $4305 = $2; $4306 = ((($4305)) + 272|0); $4307 = $ind180; $4308 = (($4306) + ($4307<<4)|0); $4309 = +HEAPF64[$4308>>3]; $wlr181 = $4309; $4310 = $2; $4311 = ((($4310)) + 272|0); $4312 = $ind180; $4313 = (($4311) + ($4312<<4)|0); $4314 = ((($4313)) + 8|0); $4315 = +HEAPF64[$4314>>3]; $wli182 = $4315; $4316 = $ind180; $4317 = (($4316) + 1)|0; $ind180 = $4317; $4318 = $2; $4319 = ((($4318)) + 272|0); $4320 = $ind180; $4321 = (($4319) + ($4320<<4)|0); $4322 = +HEAPF64[$4321>>3]; $wl2r183 = $4322; $4323 = $2; $4324 = ((($4323)) + 272|0); $4325 = $ind180; $4326 = (($4324) + ($4325<<4)|0); $4327 = ((($4326)) + 8|0); $4328 = +HEAPF64[$4327>>3]; $wl2i184 = $4328; $4329 = $ind180; $4330 = (($4329) + 1)|0; $ind180 = $4330; $4331 = $2; $4332 = ((($4331)) + 272|0); $4333 = $ind180; $4334 = (($4332) + ($4333<<4)|0); $4335 = +HEAPF64[$4334>>3]; $wl3r185 = $4335; $4336 = $2; $4337 = ((($4336)) + 272|0); $4338 = $ind180; $4339 = (($4337) + ($4338<<4)|0); $4340 = ((($4339)) + 8|0); $4341 = +HEAPF64[$4340>>3]; $wl3i186 = $4341; $4342 = $ind180; $4343 = (($4342) + 1)|0; $ind180 = $4343; $4344 = $2; $4345 = ((($4344)) + 272|0); $4346 = $ind180; $4347 = (($4345) + ($4346<<4)|0); $4348 = +HEAPF64[$4347>>3]; $wl4r187 = $4348; $4349 = $2; $4350 = ((($4349)) + 272|0); $4351 = $ind180; $4352 = (($4350) + ($4351<<4)|0); $4353 = ((($4352)) + 8|0); $4354 = +HEAPF64[$4353>>3]; $wl4i188 = $4354; $4355 = $ind180; $4356 = (($4355) + 1)|0; $ind180 = $4356; $4357 = $2; $4358 = ((($4357)) + 272|0); $4359 = $ind180; $4360 = (($4358) + ($4359<<4)|0); $4361 = +HEAPF64[$4360>>3]; $wl5r189 = $4361; $4362 = $2; $4363 = ((($4362)) + 272|0); $4364 = $ind180; $4365 = (($4363) + ($4364<<4)|0); $4366 = ((($4365)) + 8|0); $4367 = +HEAPF64[$4366>>3]; $wl5i190 = $4367; $4368 = $ind180; $4369 = (($4368) + 1)|0; $ind180 = $4369; $4370 = $2; $4371 = ((($4370)) + 272|0); $4372 = $ind180; $4373 = (($4371) + ($4372<<4)|0); $4374 = +HEAPF64[$4373>>3]; $wl6r191 = $4374; $4375 = $2; $4376 = ((($4375)) + 272|0); $4377 = $ind180; $4378 = (($4376) + ($4377<<4)|0); $4379 = ((($4378)) + 8|0); $4380 = +HEAPF64[$4379>>3]; $wl6i192 = $4380; $4381 = $ind180; $4382 = (($4381) + 1)|0; $ind180 = $4382; $4383 = $2; $4384 = ((($4383)) + 272|0); $4385 = $ind180; $4386 = (($4384) + ($4385<<4)|0); $4387 = +HEAPF64[$4386>>3]; $wl7r = $4387; $4388 = $2; $4389 = ((($4388)) + 272|0); $4390 = $ind180; $4391 = (($4389) + ($4390<<4)|0); $4392 = ((($4391)) + 8|0); $4393 = +HEAPF64[$4392>>3]; $wl7i = $4393; $4394 = $k173; $4395 = $m; $4396 = (($4394) + ($4395))|0; $tkm1174 = $4396; $4397 = $tkm1174; $4398 = $m; $4399 = (($4397) + ($4398))|0; $tkm2175 = $4399; $4400 = $tkm2175; $4401 = $m; $4402 = (($4400) + ($4401))|0; $tkm3176 = $4402; $4403 = $tkm3176; $4404 = $m; $4405 = (($4403) + ($4404))|0; $tkm4177 = $4405; $4406 = $tkm4177; $4407 = $m; $4408 = (($4406) + ($4407))|0; $tkm5178 = $4408; $4409 = $tkm5178; $4410 = $m; $4411 = (($4409) + ($4410))|0; $tkm6179 = $4411; $4412 = $tkm6179; $4413 = $m; $4414 = (($4412) + ($4413))|0; $tkm7 = $4414; $4415 = $k173; $4416 = $0; $4417 = (($4416) + ($4415<<4)|0); $4418 = +HEAPF64[$4417>>3]; $ar201 = $4418; $4419 = $k173; $4420 = $0; $4421 = (($4420) + ($4419<<4)|0); $4422 = ((($4421)) + 8|0); $4423 = +HEAPF64[$4422>>3]; $ai202 = $4423; $4424 = $tkm1174; $4425 = $0; $4426 = (($4425) + ($4424<<4)|0); $4427 = +HEAPF64[$4426>>3]; $4428 = $wlr181; $4429 = $4427 * $4428; $4430 = $tkm1174; $4431 = $0; $4432 = (($4431) + ($4430<<4)|0); $4433 = ((($4432)) + 8|0); $4434 = +HEAPF64[$4433>>3]; $4435 = $wli182; $4436 = $4434 * $4435; $4437 = $4429 - $4436; $br203 = $4437; $4438 = $tkm1174; $4439 = $0; $4440 = (($4439) + ($4438<<4)|0); $4441 = ((($4440)) + 8|0); $4442 = +HEAPF64[$4441>>3]; $4443 = $wlr181; $4444 = $4442 * $4443; $4445 = $tkm1174; $4446 = $0; $4447 = (($4446) + ($4445<<4)|0); $4448 = +HEAPF64[$4447>>3]; $4449 = $wli182; $4450 = $4448 * $4449; $4451 = $4444 + $4450; $bi204 = $4451; $4452 = $tkm2175; $4453 = $0; $4454 = (($4453) + ($4452<<4)|0); $4455 = +HEAPF64[$4454>>3]; $4456 = $wl2r183; $4457 = $4455 * $4456; $4458 = $tkm2175; $4459 = $0; $4460 = (($4459) + ($4458<<4)|0); $4461 = ((($4460)) + 8|0); $4462 = +HEAPF64[$4461>>3]; $4463 = $wl2i184; $4464 = $4462 * $4463; $4465 = $4457 - $4464; $cr205 = $4465; $4466 = $tkm2175; $4467 = $0; $4468 = (($4467) + ($4466<<4)|0); $4469 = ((($4468)) + 8|0); $4470 = +HEAPF64[$4469>>3]; $4471 = $wl2r183; $4472 = $4470 * $4471; $4473 = $tkm2175; $4474 = $0; $4475 = (($4474) + ($4473<<4)|0); $4476 = +HEAPF64[$4475>>3]; $4477 = $wl2i184; $4478 = $4476 * $4477; $4479 = $4472 + $4478; $ci206 = $4479; $4480 = $tkm3176; $4481 = $0; $4482 = (($4481) + ($4480<<4)|0); $4483 = +HEAPF64[$4482>>3]; $4484 = $wl3r185; $4485 = $4483 * $4484; $4486 = $tkm3176; $4487 = $0; $4488 = (($4487) + ($4486<<4)|0); $4489 = ((($4488)) + 8|0); $4490 = +HEAPF64[$4489>>3]; $4491 = $wl3i186; $4492 = $4490 * $4491; $4493 = $4485 - $4492; $dr207 = $4493; $4494 = $tkm3176; $4495 = $0; $4496 = (($4495) + ($4494<<4)|0); $4497 = ((($4496)) + 8|0); $4498 = +HEAPF64[$4497>>3]; $4499 = $wl3r185; $4500 = $4498 * $4499; $4501 = $tkm3176; $4502 = $0; $4503 = (($4502) + ($4501<<4)|0); $4504 = +HEAPF64[$4503>>3]; $4505 = $wl3i186; $4506 = $4504 * $4505; $4507 = $4500 + $4506; $di208 = $4507; $4508 = $tkm4177; $4509 = $0; $4510 = (($4509) + ($4508<<4)|0); $4511 = +HEAPF64[$4510>>3]; $4512 = $wl4r187; $4513 = $4511 * $4512; $4514 = $tkm4177; $4515 = $0; $4516 = (($4515) + ($4514<<4)|0); $4517 = ((($4516)) + 8|0); $4518 = +HEAPF64[$4517>>3]; $4519 = $wl4i188; $4520 = $4518 * $4519; $4521 = $4513 - $4520; $er209 = $4521; $4522 = $tkm4177; $4523 = $0; $4524 = (($4523) + ($4522<<4)|0); $4525 = ((($4524)) + 8|0); $4526 = +HEAPF64[$4525>>3]; $4527 = $wl4r187; $4528 = $4526 * $4527; $4529 = $tkm4177; $4530 = $0; $4531 = (($4530) + ($4529<<4)|0); $4532 = +HEAPF64[$4531>>3]; $4533 = $wl4i188; $4534 = $4532 * $4533; $4535 = $4528 + $4534; $ei210 = $4535; $4536 = $tkm5178; $4537 = $0; $4538 = (($4537) + ($4536<<4)|0); $4539 = +HEAPF64[$4538>>3]; $4540 = $wl5r189; $4541 = $4539 * $4540; $4542 = $tkm5178; $4543 = $0; $4544 = (($4543) + ($4542<<4)|0); $4545 = ((($4544)) + 8|0); $4546 = +HEAPF64[$4545>>3]; $4547 = $wl5i190; $4548 = $4546 * $4547; $4549 = $4541 - $4548; $fr211 = $4549; $4550 = $tkm5178; $4551 = $0; $4552 = (($4551) + ($4550<<4)|0); $4553 = ((($4552)) + 8|0); $4554 = +HEAPF64[$4553>>3]; $4555 = $wl5r189; $4556 = $4554 * $4555; $4557 = $tkm5178; $4558 = $0; $4559 = (($4558) + ($4557<<4)|0); $4560 = +HEAPF64[$4559>>3]; $4561 = $wl5i190; $4562 = $4560 * $4561; $4563 = $4556 + $4562; $fi212 = $4563; $4564 = $tkm6179; $4565 = $0; $4566 = (($4565) + ($4564<<4)|0); $4567 = +HEAPF64[$4566>>3]; $4568 = $wl6r191; $4569 = $4567 * $4568; $4570 = $tkm6179; $4571 = $0; $4572 = (($4571) + ($4570<<4)|0); $4573 = ((($4572)) + 8|0); $4574 = +HEAPF64[$4573>>3]; $4575 = $wl6i192; $4576 = $4574 * $4575; $4577 = $4569 - $4576; $gr213 = $4577; $4578 = $tkm6179; $4579 = $0; $4580 = (($4579) + ($4578<<4)|0); $4581 = ((($4580)) + 8|0); $4582 = +HEAPF64[$4581>>3]; $4583 = $wl6r191; $4584 = $4582 * $4583; $4585 = $tkm6179; $4586 = $0; $4587 = (($4586) + ($4585<<4)|0); $4588 = +HEAPF64[$4587>>3]; $4589 = $wl6i192; $4590 = $4588 * $4589; $4591 = $4584 + $4590; $gi214 = $4591; $4592 = $tkm7; $4593 = $0; $4594 = (($4593) + ($4592<<4)|0); $4595 = +HEAPF64[$4594>>3]; $4596 = $wl7r; $4597 = $4595 * $4596; $4598 = $tkm7; $4599 = $0; $4600 = (($4599) + ($4598<<4)|0); $4601 = ((($4600)) + 8|0); $4602 = +HEAPF64[$4601>>3]; $4603 = $wl7i; $4604 = $4602 * $4603; $4605 = $4597 - $4604; $hr = $4605; $4606 = $tkm7; $4607 = $0; $4608 = (($4607) + ($4606<<4)|0); $4609 = ((($4608)) + 8|0); $4610 = +HEAPF64[$4609>>3]; $4611 = $wl7r; $4612 = $4610 * $4611; $4613 = $tkm7; $4614 = $0; $4615 = (($4614) + ($4613<<4)|0); $4616 = +HEAPF64[$4615>>3]; $4617 = $wl7i; $4618 = $4616 * $4617; $4619 = $4612 + $4618; $hi = $4619; $4620 = $ar201; $4621 = $er209; $4622 = $4620 + $4621; $tau0r193 = $4622; $4623 = $ar201; $4624 = $er209; $4625 = $4623 - $4624; $tau4r215 = $4625; $4626 = $ai202; $4627 = $ei210; $4628 = $4626 + $4627; $tau0i194 = $4628; $4629 = $ai202; $4630 = $ei210; $4631 = $4629 - $4630; $tau4i216 = $4631; $4632 = $br203; $4633 = $hr; $4634 = $4632 + $4633; $tau1r195 = $4634; $4635 = $br203; $4636 = $hr; $4637 = $4635 - $4636; $tau5r217 = $4637; $4638 = $bi204; $4639 = $hi; $4640 = $4638 + $4639; $tau1i196 = $4640; $4641 = $bi204; $4642 = $hi; $4643 = $4641 - $4642; $tau5i218 = $4643; $4644 = $dr207; $4645 = $fr211; $4646 = $4644 + $4645; $tau2r197 = $4646; $4647 = $dr207; $4648 = $fr211; $4649 = $4647 - $4648; $tau6r219 = $4649; $4650 = $di208; $4651 = $fi212; $4652 = $4650 - $4651; $tau6i220 = $4652; $4653 = $di208; $4654 = $fi212; $4655 = $4653 + $4654; $tau2i198 = $4655; $4656 = $cr205; $4657 = $gr213; $4658 = $4656 + $4657; $tau3r199 = $4658; $4659 = $cr205; $4660 = $gr213; $4661 = $4659 - $4660; $tau7r221 = $4661; $4662 = $ci206; $4663 = $gi214; $4664 = $4662 - $4663; $tau7i222 = $4664; $4665 = $ci206; $4666 = $gi214; $4667 = $4665 + $4666; $tau3i200 = $4667; $4668 = $tau0r193; $4669 = $tau1r195; $4670 = $4668 + $4669; $4671 = $tau2r197; $4672 = $4670 + $4671; $4673 = $tau3r199; $4674 = $4672 + $4673; $4675 = $k173; $4676 = $0; $4677 = (($4676) + ($4675<<4)|0); HEAPF64[$4677>>3] = $4674; $4678 = $tau0i194; $4679 = $tau1i196; $4680 = $4678 + $4679; $4681 = $tau2i198; $4682 = $4680 + $4681; $4683 = $tau3i200; $4684 = $4682 + $4683; $4685 = $k173; $4686 = $0; $4687 = (($4686) + ($4685<<4)|0); $4688 = ((($4687)) + 8|0); HEAPF64[$4688>>3] = $4684; $4689 = $tau0r193; $4690 = $tau1r195; $4691 = $4689 - $4690; $4692 = $tau2r197; $4693 = $4691 - $4692; $4694 = $tau3r199; $4695 = $4693 + $4694; $4696 = $tkm4177; $4697 = $0; $4698 = (($4697) + ($4696<<4)|0); HEAPF64[$4698>>3] = $4695; $4699 = $tau0i194; $4700 = $tau1i196; $4701 = $4699 - $4700; $4702 = $tau2i198; $4703 = $4701 - $4702; $4704 = $tau3i200; $4705 = $4703 + $4704; $4706 = $tkm4177; $4707 = $0; $4708 = (($4707) + ($4706<<4)|0); $4709 = ((($4708)) + 8|0); HEAPF64[$4709>>3] = $4705; $4710 = $tau1r195; $4711 = $tau2r197; $4712 = $4710 - $4711; $temp1r229 = $4712; $4713 = $tau1i196; $4714 = $tau2i198; $4715 = $4713 - $4714; $temp1i230 = $4715; $4716 = $tau5r217; $4717 = $tau6r219; $4718 = $4716 + $4717; $temp2r231 = $4718; $4719 = $tau5i218; $4720 = $tau6i220; $4721 = $4719 + $4720; $temp2i232 = $4721; $4722 = $tau4r215; $4723 = $c1227; $4724 = $temp1r229; $4725 = $4723 * $4724; $4726 = $4722 + $4725; $tau8r223 = $4726; $4727 = $tau4i216; $4728 = $c1227; $4729 = $temp1i230; $4730 = $4728 * $4729; $4731 = $4727 + $4730; $tau8i224 = $4731; $4732 = $3; $4733 = ($4732|0)==(1); $4734 = $s1228; if ($4733) { $4735 = -$4734; $4736 = $temp2r231; $4737 = $4735 * $4736; $4738 = $tau7r221; $4739 = $4737 - $4738; $tau9r225 = $4739; $4740 = $s1228; $4741 = -$4740; $4742 = $temp2i232; $4743 = $4741 * $4742; $4744 = $tau7i222; $4745 = $4743 - $4744; $tau9i226 = $4745; } else { $4746 = $temp2r231; $4747 = $4734 * $4746; $4748 = $tau7r221; $4749 = $4747 + $4748; $tau9r225 = $4749; $4750 = $s1228; $4751 = $temp2i232; $4752 = $4750 * $4751; $4753 = $tau7i222; $4754 = $4752 + $4753; $tau9i226 = $4754; } $4755 = $tau8r223; $4756 = $tau9i226; $4757 = $4755 - $4756; $4758 = $tkm1174; $4759 = $0; $4760 = (($4759) + ($4758<<4)|0); HEAPF64[$4760>>3] = $4757; $4761 = $tau8i224; $4762 = $tau9r225; $4763 = $4761 + $4762; $4764 = $tkm1174; $4765 = $0; $4766 = (($4765) + ($4764<<4)|0); $4767 = ((($4766)) + 8|0); HEAPF64[$4767>>3] = $4763; $4768 = $tau8r223; $4769 = $tau9i226; $4770 = $4768 + $4769; $4771 = $tkm7; $4772 = $0; $4773 = (($4772) + ($4771<<4)|0); HEAPF64[$4773>>3] = $4770; $4774 = $tau8i224; $4775 = $tau9r225; $4776 = $4774 - $4775; $4777 = $tkm7; $4778 = $0; $4779 = (($4778) + ($4777<<4)|0); $4780 = ((($4779)) + 8|0); HEAPF64[$4780>>3] = $4776; $4781 = $tau0r193; $4782 = $tau3r199; $4783 = $4781 - $4782; $tau8r223 = $4783; $4784 = $tau0i194; $4785 = $tau3i200; $4786 = $4784 - $4785; $tau8i224 = $4786; $4787 = $3; $4788 = ($4787|0)==(1); $4789 = $tau5r217; if ($4788) { $4790 = -$4789; $4791 = $tau6r219; $4792 = $4790 + $4791; $tau9r225 = $4792; $4793 = $tau5i218; $4794 = -$4793; $4795 = $tau6i220; $4796 = $4794 + $4795; $tau9i226 = $4796; } else { $4797 = $tau6r219; $4798 = $4789 - $4797; $tau9r225 = $4798; $4799 = $tau5i218; $4800 = $tau6i220; $4801 = $4799 - $4800; $tau9i226 = $4801; } $4802 = $tau8r223; $4803 = $tau9i226; $4804 = $4802 - $4803; $4805 = $tkm2175; $4806 = $0; $4807 = (($4806) + ($4805<<4)|0); HEAPF64[$4807>>3] = $4804; $4808 = $tau8i224; $4809 = $tau9r225; $4810 = $4808 + $4809; $4811 = $tkm2175; $4812 = $0; $4813 = (($4812) + ($4811<<4)|0); $4814 = ((($4813)) + 8|0); HEAPF64[$4814>>3] = $4810; $4815 = $tau8r223; $4816 = $tau9i226; $4817 = $4815 + $4816; $4818 = $tkm6179; $4819 = $0; $4820 = (($4819) + ($4818<<4)|0); HEAPF64[$4820>>3] = $4817; $4821 = $tau8i224; $4822 = $tau9r225; $4823 = $4821 - $4822; $4824 = $tkm6179; $4825 = $0; $4826 = (($4825) + ($4824<<4)|0); $4827 = ((($4826)) + 8|0); HEAPF64[$4827>>3] = $4823; $4828 = $tau4r215; $4829 = $c1227; $4830 = $temp1r229; $4831 = $4829 * $4830; $4832 = $4828 - $4831; $tau8r223 = $4832; $4833 = $tau4i216; $4834 = $c1227; $4835 = $temp1i230; $4836 = $4834 * $4835; $4837 = $4833 - $4836; $tau8i224 = $4837; $4838 = $3; $4839 = ($4838|0)==(1); $4840 = $s1228; if ($4839) { $4841 = -$4840; $4842 = $temp2r231; $4843 = $4841 * $4842; $4844 = $tau7r221; $4845 = $4843 + $4844; $tau9r225 = $4845; $4846 = $s1228; $4847 = -$4846; $4848 = $temp2i232; $4849 = $4847 * $4848; $4850 = $tau7i222; $4851 = $4849 + $4850; $tau9i226 = $4851; } else { $4852 = $temp2r231; $4853 = $4840 * $4852; $4854 = $tau7r221; $4855 = $4853 - $4854; $tau9r225 = $4855; $4856 = $s1228; $4857 = $temp2i232; $4858 = $4856 * $4857; $4859 = $tau7i222; $4860 = $4858 - $4859; $tau9i226 = $4860; } $4861 = $tau8r223; $4862 = $tau9i226; $4863 = $4861 - $4862; $4864 = $tkm3176; $4865 = $0; $4866 = (($4865) + ($4864<<4)|0); HEAPF64[$4866>>3] = $4863; $4867 = $tau8i224; $4868 = $tau9r225; $4869 = $4867 + $4868; $4870 = $tkm3176; $4871 = $0; $4872 = (($4871) + ($4870<<4)|0); $4873 = ((($4872)) + 8|0); HEAPF64[$4873>>3] = $4869; $4874 = $tau8r223; $4875 = $tau9i226; $4876 = $4874 + $4875; $4877 = $tkm5178; $4878 = $0; $4879 = (($4878) + ($4877<<4)|0); HEAPF64[$4879>>3] = $4876; $4880 = $tau8i224; $4881 = $tau9r225; $4882 = $4880 - $4881; $4883 = $tkm5178; $4884 = $0; $4885 = (($4884) + ($4883<<4)|0); $4886 = ((($4885)) + 8|0); HEAPF64[$4886>>3] = $4882; $4887 = $k173; $4888 = (($4887) + 1)|0; $k173 = $4888; } STACKTOP = sp;return; } $4889 = $radix; $4890 = (($4889) - 1)|0; $4891 = $4890<<3; $4892 = (_malloc($4891)|0); $wlr239 = $4892; $4893 = $radix; $4894 = (($4893) - 1)|0; $4895 = $4894<<3; $4896 = (_malloc($4895)|0); $wli240 = $4896; $4897 = $radix; $4898 = (($4897) - 1)|0; $4899 = $4898<<3; $4900 = (_malloc($4899)|0); $taur = $4900; $4901 = $radix; $4902 = (($4901) - 1)|0; $4903 = $4902<<3; $4904 = (_malloc($4903)|0); $taui = $4904; $4905 = $radix; $4906 = (($4905) - 1)|0; $4907 = $4906<<3; $4908 = (_malloc($4907)|0); $c1241 = $4908; $4909 = $radix; $4910 = (($4909) - 1)|0; $4911 = $4910<<3; $4912 = (_malloc($4911)|0); $s1242 = $4912; $4913 = $radix; $4914 = $4913<<3; $4915 = (_malloc($4914)|0); $yr = $4915; $4916 = $radix; $4917 = $4916<<3; $4918 = (_malloc($4917)|0); $yi = $4918; $4919 = $4; $4920 = $radix; $4921 = (($4919|0) / ($4920|0))&-1; $m = $4921; $4922 = $radix; $4923 = $5; $4924 = Math_imul($4922, $4923)|0; $ll = $4924; $i = 0; while(1) { $4925 = $i; $4926 = $radix; $4927 = ($4925|0)<($4926|0); if (!($4927)) { break; } $4928 = $0; $4929 = $i; $4930 = $m; $4931 = Math_imul($4929, $4930)|0; $4932 = (($4928) + ($4931<<4)|0); $4933 = $1; $4934 = $i; $4935 = $5; $4936 = Math_imul($4934, $4935)|0; $4937 = (($4933) + ($4936<<4)|0); $4938 = $2; $4939 = $3; $4940 = $m; $4941 = $ll; $4942 = $6; $4943 = (($4942) + 1)|0; _mixed_radix_dit_rec($4932,$4937,$4938,$4939,$4940,$4941,$4943); $4944 = $i; $4945 = (($4944) + 1)|0; $i = $4945; } $4946 = $radix; $4947 = (($4946) - 1)|0; $4948 = (($4947|0) / 2)&-1; $M = $4948; $i = 1; while(1) { $4949 = $i; $4950 = $M; $4951 = (($4950) + 1)|0; $4952 = ($4949|0)<($4951|0); if (!($4952)) { break; } $4953 = $i; $4954 = (+($4953|0)); $4955 = $4954 * 6.2831853071795862; $4956 = $radix; $4957 = (+($4956|0)); $4958 = $4955 / $4957; $4959 = (+Math_cos((+$4958))); $4960 = $i; $4961 = (($4960) - 1)|0; $4962 = $c1241; $4963 = (($4962) + ($4961<<3)|0); HEAPF64[$4963>>3] = $4959; $4964 = $i; $4965 = (+($4964|0)); $4966 = $4965 * 6.2831853071795862; $4967 = $radix; $4968 = (+($4967|0)); $4969 = $4966 / $4968; $4970 = (+Math_sin((+$4969))); $4971 = $i; $4972 = (($4971) - 1)|0; $4973 = $s1242; $4974 = (($4973) + ($4972<<3)|0); HEAPF64[$4974>>3] = $4970; $4975 = $i; $4976 = (($4975) + 1)|0; $i = $4976; } $i = 0; while(1) { $4977 = $i; $4978 = $M; $4979 = ($4977|0)<($4978|0); if (!($4979)) { break; } $4980 = $M; $4981 = (($4980) - 1)|0; $4982 = $i; $4983 = (($4981) - ($4982))|0; $4984 = $s1242; $4985 = (($4984) + ($4983<<3)|0); $4986 = +HEAPF64[$4985>>3]; $4987 = -$4986; $4988 = $i; $4989 = $M; $4990 = (($4988) + ($4989))|0; $4991 = $s1242; $4992 = (($4991) + ($4990<<3)|0); HEAPF64[$4992>>3] = $4987; $4993 = $M; $4994 = (($4993) - 1)|0; $4995 = $i; $4996 = (($4994) - ($4995))|0; $4997 = $c1241; $4998 = (($4997) + ($4996<<3)|0); $4999 = +HEAPF64[$4998>>3]; $5000 = $i; $5001 = $M; $5002 = (($5000) + ($5001))|0; $5003 = $c1241; $5004 = (($5003) + ($5002<<3)|0); HEAPF64[$5004>>3] = $4999; $5005 = $i; $5006 = (($5005) + 1)|0; $i = $5006; } $k233 = 0; while(1) { $5007 = $k233; $5008 = $m; $5009 = ($5007|0)<($5008|0); if (!($5009)) { break; } $5010 = $m; $5011 = (($5010) - 1)|0; $5012 = $radix; $5013 = (($5012) - 1)|0; $5014 = $k233; $5015 = Math_imul($5013, $5014)|0; $5016 = (($5011) + ($5015))|0; $ind234 = $5016; $5017 = $k233; $5018 = $0; $5019 = (($5018) + ($5017<<4)|0); $5020 = +HEAPF64[$5019>>3]; $5021 = $yr; HEAPF64[$5021>>3] = $5020; $5022 = $k233; $5023 = $0; $5024 = (($5023) + ($5022<<4)|0); $5025 = ((($5024)) + 8|0); $5026 = +HEAPF64[$5025>>3]; $5027 = $yi; HEAPF64[$5027>>3] = $5026; $i = 0; while(1) { $5028 = $i; $5029 = $radix; $5030 = (($5029) - 1)|0; $5031 = ($5028|0)<($5030|0); if (!($5031)) { break; } $5032 = $2; $5033 = ((($5032)) + 272|0); $5034 = $ind234; $5035 = (($5033) + ($5034<<4)|0); $5036 = +HEAPF64[$5035>>3]; $5037 = $i; $5038 = $wlr239; $5039 = (($5038) + ($5037<<3)|0); HEAPF64[$5039>>3] = $5036; $5040 = $2; $5041 = ((($5040)) + 272|0); $5042 = $ind234; $5043 = (($5041) + ($5042<<4)|0); $5044 = ((($5043)) + 8|0); $5045 = +HEAPF64[$5044>>3]; $5046 = $i; $5047 = $wli240; $5048 = (($5047) + ($5046<<3)|0); HEAPF64[$5048>>3] = $5045; $5049 = $k233; $5050 = $i; $5051 = (($5050) + 1)|0; $5052 = $m; $5053 = Math_imul($5051, $5052)|0; $5054 = (($5049) + ($5053))|0; $tkm = $5054; $5055 = $tkm; $5056 = $0; $5057 = (($5056) + ($5055<<4)|0); $5058 = +HEAPF64[$5057>>3]; $5059 = $i; $5060 = $wlr239; $5061 = (($5060) + ($5059<<3)|0); $5062 = +HEAPF64[$5061>>3]; $5063 = $5058 * $5062; $5064 = $tkm; $5065 = $0; $5066 = (($5065) + ($5064<<4)|0); $5067 = ((($5066)) + 8|0); $5068 = +HEAPF64[$5067>>3]; $5069 = $i; $5070 = $wli240; $5071 = (($5070) + ($5069<<3)|0); $5072 = +HEAPF64[$5071>>3]; $5073 = $5068 * $5072; $5074 = $5063 - $5073; $5075 = $i; $5076 = (($5075) + 1)|0; $5077 = $yr; $5078 = (($5077) + ($5076<<3)|0); HEAPF64[$5078>>3] = $5074; $5079 = $tkm; $5080 = $0; $5081 = (($5080) + ($5079<<4)|0); $5082 = ((($5081)) + 8|0); $5083 = +HEAPF64[$5082>>3]; $5084 = $i; $5085 = $wlr239; $5086 = (($5085) + ($5084<<3)|0); $5087 = +HEAPF64[$5086>>3]; $5088 = $5083 * $5087; $5089 = $tkm; $5090 = $0; $5091 = (($5090) + ($5089<<4)|0); $5092 = +HEAPF64[$5091>>3]; $5093 = $i; $5094 = $wli240; $5095 = (($5094) + ($5093<<3)|0); $5096 = +HEAPF64[$5095>>3]; $5097 = $5092 * $5096; $5098 = $5088 + $5097; $5099 = $i; $5100 = (($5099) + 1)|0; $5101 = $yi; $5102 = (($5101) + ($5100<<3)|0); HEAPF64[$5102>>3] = $5098; $5103 = $ind234; $5104 = (($5103) + 1)|0; $ind234 = $5104; $5105 = $i; $5106 = (($5105) + 1)|0; $i = $5106; } $i = 0; while(1) { $5107 = $i; $5108 = $M; $5109 = ($5107|0)<($5108|0); if (!($5109)) { break; } $5110 = $i; $5111 = (($5110) + 1)|0; $5112 = $yr; $5113 = (($5112) + ($5111<<3)|0); $5114 = +HEAPF64[$5113>>3]; $5115 = $radix; $5116 = (($5115) - 1)|0; $5117 = $i; $5118 = (($5116) - ($5117))|0; $5119 = $yr; $5120 = (($5119) + ($5118<<3)|0); $5121 = +HEAPF64[$5120>>3]; $5122 = $5114 + $5121; $5123 = $i; $5124 = $taur; $5125 = (($5124) + ($5123<<3)|0); HEAPF64[$5125>>3] = $5122; $5126 = $i; $5127 = (($5126) + 1)|0; $5128 = $yi; $5129 = (($5128) + ($5127<<3)|0); $5130 = +HEAPF64[$5129>>3]; $5131 = $radix; $5132 = (($5131) - 1)|0; $5133 = $i; $5134 = (($5132) - ($5133))|0; $5135 = $yi; $5136 = (($5135) + ($5134<<3)|0); $5137 = +HEAPF64[$5136>>3]; $5138 = $5130 - $5137; $5139 = $i; $5140 = $M; $5141 = (($5139) + ($5140))|0; $5142 = $taui; $5143 = (($5142) + ($5141<<3)|0); HEAPF64[$5143>>3] = $5138; $5144 = $i; $5145 = (($5144) + 1)|0; $5146 = $yi; $5147 = (($5146) + ($5145<<3)|0); $5148 = +HEAPF64[$5147>>3]; $5149 = $radix; $5150 = (($5149) - 1)|0; $5151 = $i; $5152 = (($5150) - ($5151))|0; $5153 = $yi; $5154 = (($5153) + ($5152<<3)|0); $5155 = +HEAPF64[$5154>>3]; $5156 = $5148 + $5155; $5157 = $i; $5158 = $taui; $5159 = (($5158) + ($5157<<3)|0); HEAPF64[$5159>>3] = $5156; $5160 = $i; $5161 = (($5160) + 1)|0; $5162 = $yr; $5163 = (($5162) + ($5161<<3)|0); $5164 = +HEAPF64[$5163>>3]; $5165 = $radix; $5166 = (($5165) - 1)|0; $5167 = $i; $5168 = (($5166) - ($5167))|0; $5169 = $yr; $5170 = (($5169) + ($5168<<3)|0); $5171 = +HEAPF64[$5170>>3]; $5172 = $5164 - $5171; $5173 = $i; $5174 = $M; $5175 = (($5173) + ($5174))|0; $5176 = $taur; $5177 = (($5176) + ($5175<<3)|0); HEAPF64[$5177>>3] = $5172; $5178 = $i; $5179 = (($5178) + 1)|0; $i = $5179; } $5180 = $yr; $5181 = +HEAPF64[$5180>>3]; $temp1r235 = $5181; $5182 = $yi; $5183 = +HEAPF64[$5182>>3]; $temp1i236 = $5183; $i = 0; while(1) { $5184 = $i; $5185 = $M; $5186 = ($5184|0)<($5185|0); if (!($5186)) { break; } $5187 = $i; $5188 = $taur; $5189 = (($5188) + ($5187<<3)|0); $5190 = +HEAPF64[$5189>>3]; $5191 = $temp1r235; $5192 = $5191 + $5190; $temp1r235 = $5192; $5193 = $i; $5194 = $taui; $5195 = (($5194) + ($5193<<3)|0); $5196 = +HEAPF64[$5195>>3]; $5197 = $temp1i236; $5198 = $5197 + $5196; $temp1i236 = $5198; $5199 = $i; $5200 = (($5199) + 1)|0; $i = $5200; } $5201 = $temp1r235; $5202 = $k233; $5203 = $0; $5204 = (($5203) + ($5202<<4)|0); HEAPF64[$5204>>3] = $5201; $5205 = $temp1i236; $5206 = $k233; $5207 = $0; $5208 = (($5207) + ($5206<<4)|0); $5209 = ((($5208)) + 8|0); HEAPF64[$5209>>3] = $5205; $u = 0; while(1) { $5210 = $u; $5211 = $M; $5212 = ($5210|0)<($5211|0); if (!($5212)) { break; } $5213 = $yr; $5214 = +HEAPF64[$5213>>3]; $temp1r235 = $5214; $5215 = $yi; $5216 = +HEAPF64[$5215>>3]; $temp1i236 = $5216; $temp2r237 = 0.0; $temp2i238 = 0.0; $v = 0; while(1) { $5217 = $v; $5218 = $M; $5219 = ($5217|0)<($5218|0); if (!($5219)) { break; } $5220 = $u; $5221 = (($5220) + 1)|0; $5222 = $v; $5223 = (($5222) + 1)|0; $5224 = Math_imul($5221, $5223)|0; $t = $5224; while(1) { $5225 = $t; $5226 = $radix; $5227 = ($5225|0)>=($5226|0); if (!($5227)) { break; } $5228 = $radix; $5229 = $t; $5230 = (($5229) - ($5228))|0; $t = $5230; } $5231 = $t; $5232 = (($5231) - 1)|0; $tt = $5232; $5233 = $tt; $5234 = $c1241; $5235 = (($5234) + ($5233<<3)|0); $5236 = +HEAPF64[$5235>>3]; $5237 = $v; $5238 = $taur; $5239 = (($5238) + ($5237<<3)|0); $5240 = +HEAPF64[$5239>>3]; $5241 = $5236 * $5240; $5242 = $temp1r235; $5243 = $5242 + $5241; $temp1r235 = $5243; $5244 = $tt; $5245 = $c1241; $5246 = (($5245) + ($5244<<3)|0); $5247 = +HEAPF64[$5246>>3]; $5248 = $v; $5249 = $taui; $5250 = (($5249) + ($5248<<3)|0); $5251 = +HEAPF64[$5250>>3]; $5252 = $5247 * $5251; $5253 = $temp1i236; $5254 = $5253 + $5252; $temp1i236 = $5254; $5255 = $tt; $5256 = $s1242; $5257 = (($5256) + ($5255<<3)|0); $5258 = +HEAPF64[$5257>>3]; $5259 = $v; $5260 = $M; $5261 = (($5259) + ($5260))|0; $5262 = $taur; $5263 = (($5262) + ($5261<<3)|0); $5264 = +HEAPF64[$5263>>3]; $5265 = $5258 * $5264; $5266 = $temp2r237; $5267 = $5266 - $5265; $temp2r237 = $5267; $5268 = $tt; $5269 = $s1242; $5270 = (($5269) + ($5268<<3)|0); $5271 = +HEAPF64[$5270>>3]; $5272 = $v; $5273 = $M; $5274 = (($5272) + ($5273))|0; $5275 = $taui; $5276 = (($5275) + ($5274<<3)|0); $5277 = +HEAPF64[$5276>>3]; $5278 = $5271 * $5277; $5279 = $temp2i238; $5280 = $5279 - $5278; $temp2i238 = $5280; $5281 = $v; $5282 = (($5281) + 1)|0; $v = $5282; } $5283 = $3; $5284 = (+($5283|0)); $5285 = $temp2r237; $5286 = $5284 * $5285; $temp2r237 = $5286; $5287 = $3; $5288 = (+($5287|0)); $5289 = $temp2i238; $5290 = $5288 * $5289; $temp2i238 = $5290; $5291 = $temp1r235; $5292 = $temp2i238; $5293 = $5291 - $5292; $5294 = $k233; $5295 = $u; $5296 = (($5295) + 1)|0; $5297 = $m; $5298 = Math_imul($5296, $5297)|0; $5299 = (($5294) + ($5298))|0; $5300 = $0; $5301 = (($5300) + ($5299<<4)|0); HEAPF64[$5301>>3] = $5293; $5302 = $temp1i236; $5303 = $temp2r237; $5304 = $5302 + $5303; $5305 = $k233; $5306 = $u; $5307 = (($5306) + 1)|0; $5308 = $m; $5309 = Math_imul($5307, $5308)|0; $5310 = (($5305) + ($5309))|0; $5311 = $0; $5312 = (($5311) + ($5310<<4)|0); $5313 = ((($5312)) + 8|0); HEAPF64[$5313>>3] = $5304; $5314 = $temp1r235; $5315 = $temp2i238; $5316 = $5314 + $5315; $5317 = $k233; $5318 = $radix; $5319 = $u; $5320 = (($5318) - ($5319))|0; $5321 = (($5320) - 1)|0; $5322 = $m; $5323 = Math_imul($5321, $5322)|0; $5324 = (($5317) + ($5323))|0; $5325 = $0; $5326 = (($5325) + ($5324<<4)|0); HEAPF64[$5326>>3] = $5316; $5327 = $temp1i236; $5328 = $temp2r237; $5329 = $5327 - $5328; $5330 = $k233; $5331 = $radix; $5332 = $u; $5333 = (($5331) - ($5332))|0; $5334 = (($5333) - 1)|0; $5335 = $m; $5336 = Math_imul($5334, $5335)|0; $5337 = (($5330) + ($5336))|0; $5338 = $0; $5339 = (($5338) + ($5337<<4)|0); $5340 = ((($5339)) + 8|0); HEAPF64[$5340>>3] = $5329; $5341 = $u; $5342 = (($5341) + 1)|0; $u = $5342; } $5343 = $k233; $5344 = (($5343) + 1)|0; $k233 = $5344; } $5345 = $wlr239; _free($5345); $5346 = $wli240; _free($5346); $5347 = $taur; _free($5347); $5348 = $taui; _free($5348); $5349 = $c1241; _free($5349); $5350 = $s1242; _free($5350); $5351 = $yr; _free($5351); $5352 = $yi; _free($5352); STACKTOP = sp;return; } function _bluestein_fft($data,$oup,$obj,$sgn,$N) { $data = $data|0; $oup = $oup|0; $obj = $obj|0; $sgn = $sgn|0; $N = $N|0; var $0 = 0, $1 = 0, $10 = 0.0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0.0, $105 = 0.0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0.0, $110 = 0.0, $111 = 0.0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; var $116 = 0.0, $117 = 0, $118 = 0, $119 = 0, $12 = 0.0, $120 = 0.0, $121 = 0.0, $122 = 0.0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0.0, $130 = 0, $131 = 0, $132 = 0, $133 = 0; var $134 = 0, $135 = 0.0, $136 = 0, $137 = 0, $138 = 0, $139 = 0.0, $14 = 0, $140 = 0.0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0.0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0.0, $151 = 0.0; var $152 = 0.0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0.0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0.0, $165 = 0.0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0; var $170 = 0.0, $171 = 0, $172 = 0, $173 = 0, $174 = 0.0, $175 = 0.0, $176 = 0.0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0; var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0; var $206 = 0, $207 = 0.0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0.0, $212 = 0.0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0.0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0.0, $223 = 0.0; var $224 = 0.0, $225 = 0, $226 = 0, $227 = 0, $228 = 0.0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0.0, $234 = 0.0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0.0, $24 = 0, $240 = 0, $241 = 0; var $242 = 0, $243 = 0.0, $244 = 0.0, $245 = 0.0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0.0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0; var $260 = 0, $261 = 0, $262 = 0.0, $263 = 0, $264 = 0, $265 = 0, $266 = 0.0, $267 = 0.0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0.0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0.0, $278 = 0.0; var $279 = 0.0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0.0, $284 = 0.0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0.0, $29 = 0, $290 = 0.0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0.0, $296 = 0; var $297 = 0, $298 = 0, $299 = 0.0, $3 = 0, $30 = 0, $300 = 0.0, $301 = 0.0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0.0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0; var $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0.0, $321 = 0.0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0; var $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0.0, $345 = 0, $346 = 0, $347 = 0, $348 = 0.0, $349 = 0.0, $35 = 0; var $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0.0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0.0, $36 = 0, $360 = 0.0, $361 = 0.0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0.0; var $369 = 0.0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0.0, $375 = 0.0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0.0, $381 = 0, $382 = 0, $383 = 0, $384 = 0.0, $385 = 0.0, $386 = 0.0; var $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0.0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0.0; var $404 = 0.0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0.0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0.0, $415 = 0.0, $416 = 0.0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0; var $422 = 0, $423 = 0.0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0.0, $429 = 0.0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0.0, $435 = 0, $436 = 0, $437 = 0, $438 = 0.0, $439 = 0.0, $44 = 0; var $440 = 0.0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0; var $459 = 0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0.0, $464 = 0.0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0; var $48 = 0, $49 = 0.0, $5 = 0, $50 = 0.0, $51 = 0, $52 = 0, $53 = 0, $54 = 0.0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0.0, $62 = 0, $63 = 0, $64 = 0, $65 = 0.0; var $66 = 0.0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0.0, $80 = 0.0, $81 = 0, $82 = 0, $83 = 0; var $84 = 0.0, $85 = 0.0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0.0, $90 = 0.0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0.0, $96 = 0.0, $97 = 0.0, $98 = 0, $99 = 0, $K = 0, $M = 0, $def_N = 0; var $def_lt = 0, $def_sgn = 0, $hk = 0, $hlt = 0, $i = 0, $ii = 0, $scale = 0.0, $temp = 0.0, $tempop = 0, $yn = 0, $yno = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 96|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $data; $1 = $oup; $2 = $obj; $3 = $sgn; $4 = $N; $5 = $2; $6 = ((($5)) + 268|0); HEAP32[$6>>2] = 0; $7 = $4; $8 = (+($7|0)); $9 = (+_log10($8)); $10 = (+_log10(2.0)); $11 = $9 / $10; $12 = (+Math_ceil((+$11))); $13 = (+Math_pow(2.0,(+$12))); $14 = (~~(($13))); $K = $14; $def_lt = 1; $15 = $2; $16 = ((($15)) + 4|0); $17 = HEAP32[$16>>2]|0; $def_sgn = $17; $18 = $2; $19 = HEAP32[$18>>2]|0; $def_N = $19; $20 = $K; $21 = $4; $22 = $21<<1; $23 = (($22) - 2)|0; $24 = ($20|0)<($23|0); $25 = $K; if ($24) { $26 = $25<<1; $M = $26; } else { $M = $25; } $27 = $M; $28 = $2; HEAP32[$28>>2] = $27; $29 = $M; $30 = $29<<4; $31 = (_malloc($30)|0); $yn = $31; $32 = $M; $33 = $32<<4; $34 = (_malloc($33)|0); $hk = $34; $35 = $M; $36 = $35<<4; $37 = (_malloc($36)|0); $tempop = $37; $38 = $M; $39 = $38<<4; $40 = (_malloc($39)|0); $yno = $40; $41 = $4; $42 = $41<<4; $43 = (_malloc($42)|0); $hlt = $43; $44 = $tempop; $45 = $hlt; $46 = $4; $47 = $M; _bluestein_exp($44,$45,$46,$47); $48 = $M; $49 = (+($48|0)); $50 = 1.0 / $49; $scale = $50; $ii = 0; while(1) { $51 = $ii; $52 = $M; $53 = ($51|0)<($52|0); if (!($53)) { break; } $54 = $scale; $55 = $ii; $56 = $tempop; $57 = (($56) + ($55<<4)|0); $58 = ((($57)) + 8|0); $59 = +HEAPF64[$58>>3]; $60 = $59 * $54; HEAPF64[$58>>3] = $60; $61 = $scale; $62 = $ii; $63 = $tempop; $64 = (($63) + ($62<<4)|0); $65 = +HEAPF64[$64>>3]; $66 = $65 * $61; HEAPF64[$64>>3] = $66; $67 = $ii; $68 = (($67) + 1)|0; $ii = $68; } $69 = $2; $70 = $tempop; $71 = $hk; _fft_exec($69,$70,$71); $72 = $3; $73 = ($72|0)==(1); $i = 0; L9: do { if ($73) { while(1) { $74 = $i; $75 = $4; $76 = ($74|0)<($75|0); if (!($76)) { break L9; } $77 = $i; $78 = $0; $79 = (($78) + ($77<<4)|0); $80 = +HEAPF64[$79>>3]; $81 = $i; $82 = $hlt; $83 = (($82) + ($81<<4)|0); $84 = +HEAPF64[$83>>3]; $85 = $80 * $84; $86 = $i; $87 = $0; $88 = (($87) + ($86<<4)|0); $89 = ((($88)) + 8|0); $90 = +HEAPF64[$89>>3]; $91 = $i; $92 = $hlt; $93 = (($92) + ($91<<4)|0); $94 = ((($93)) + 8|0); $95 = +HEAPF64[$94>>3]; $96 = $90 * $95; $97 = $85 + $96; $98 = $i; $99 = $tempop; $100 = (($99) + ($98<<4)|0); HEAPF64[$100>>3] = $97; $101 = $i; $102 = $0; $103 = (($102) + ($101<<4)|0); $104 = +HEAPF64[$103>>3]; $105 = -$104; $106 = $i; $107 = $hlt; $108 = (($107) + ($106<<4)|0); $109 = ((($108)) + 8|0); $110 = +HEAPF64[$109>>3]; $111 = $105 * $110; $112 = $i; $113 = $0; $114 = (($113) + ($112<<4)|0); $115 = ((($114)) + 8|0); $116 = +HEAPF64[$115>>3]; $117 = $i; $118 = $hlt; $119 = (($118) + ($117<<4)|0); $120 = +HEAPF64[$119>>3]; $121 = $116 * $120; $122 = $111 + $121; $123 = $i; $124 = $tempop; $125 = (($124) + ($123<<4)|0); $126 = ((($125)) + 8|0); HEAPF64[$126>>3] = $122; $127 = $i; $128 = (($127) + 1)|0; $i = $128; } } else { while(1) { $129 = $i; $130 = $4; $131 = ($129|0)<($130|0); if (!($131)) { break L9; } $132 = $i; $133 = $0; $134 = (($133) + ($132<<4)|0); $135 = +HEAPF64[$134>>3]; $136 = $i; $137 = $hlt; $138 = (($137) + ($136<<4)|0); $139 = +HEAPF64[$138>>3]; $140 = $135 * $139; $141 = $i; $142 = $0; $143 = (($142) + ($141<<4)|0); $144 = ((($143)) + 8|0); $145 = +HEAPF64[$144>>3]; $146 = $i; $147 = $hlt; $148 = (($147) + ($146<<4)|0); $149 = ((($148)) + 8|0); $150 = +HEAPF64[$149>>3]; $151 = $145 * $150; $152 = $140 - $151; $153 = $i; $154 = $tempop; $155 = (($154) + ($153<<4)|0); HEAPF64[$155>>3] = $152; $156 = $i; $157 = $0; $158 = (($157) + ($156<<4)|0); $159 = +HEAPF64[$158>>3]; $160 = $i; $161 = $hlt; $162 = (($161) + ($160<<4)|0); $163 = ((($162)) + 8|0); $164 = +HEAPF64[$163>>3]; $165 = $159 * $164; $166 = $i; $167 = $0; $168 = (($167) + ($166<<4)|0); $169 = ((($168)) + 8|0); $170 = +HEAPF64[$169>>3]; $171 = $i; $172 = $hlt; $173 = (($172) + ($171<<4)|0); $174 = +HEAPF64[$173>>3]; $175 = $170 * $174; $176 = $165 + $175; $177 = $i; $178 = $tempop; $179 = (($178) + ($177<<4)|0); $180 = ((($179)) + 8|0); HEAPF64[$180>>3] = $176; $181 = $i; $182 = (($181) + 1)|0; $i = $182; } } } while(0); $183 = $4; $i = $183; while(1) { $184 = $i; $185 = $M; $186 = ($184|0)<($185|0); if (!($186)) { break; } $187 = $i; $188 = $tempop; $189 = (($188) + ($187<<4)|0); HEAPF64[$189>>3] = 0.0; $190 = $i; $191 = $tempop; $192 = (($191) + ($190<<4)|0); $193 = ((($192)) + 8|0); HEAPF64[$193>>3] = 0.0; $194 = $i; $195 = (($194) + 1)|0; $i = $195; } $196 = $2; $197 = $tempop; $198 = $yn; _fft_exec($196,$197,$198); $199 = $3; $200 = ($199|0)==(1); $i = 0; L21: do { if ($200) { while(1) { $201 = $i; $202 = $M; $203 = ($201|0)<($202|0); if (!($203)) { break L21; } $204 = $i; $205 = $yn; $206 = (($205) + ($204<<4)|0); $207 = +HEAPF64[$206>>3]; $208 = $i; $209 = $hk; $210 = (($209) + ($208<<4)|0); $211 = +HEAPF64[$210>>3]; $212 = $207 * $211; $213 = $i; $214 = $yn; $215 = (($214) + ($213<<4)|0); $216 = ((($215)) + 8|0); $217 = +HEAPF64[$216>>3]; $218 = $i; $219 = $hk; $220 = (($219) + ($218<<4)|0); $221 = ((($220)) + 8|0); $222 = +HEAPF64[$221>>3]; $223 = $217 * $222; $224 = $212 - $223; $temp = $224; $225 = $i; $226 = $yn; $227 = (($226) + ($225<<4)|0); $228 = +HEAPF64[$227>>3]; $229 = $i; $230 = $hk; $231 = (($230) + ($229<<4)|0); $232 = ((($231)) + 8|0); $233 = +HEAPF64[$232>>3]; $234 = $228 * $233; $235 = $i; $236 = $yn; $237 = (($236) + ($235<<4)|0); $238 = ((($237)) + 8|0); $239 = +HEAPF64[$238>>3]; $240 = $i; $241 = $hk; $242 = (($241) + ($240<<4)|0); $243 = +HEAPF64[$242>>3]; $244 = $239 * $243; $245 = $234 + $244; $246 = $i; $247 = $yn; $248 = (($247) + ($246<<4)|0); $249 = ((($248)) + 8|0); HEAPF64[$249>>3] = $245; $250 = $temp; $251 = $i; $252 = $yn; $253 = (($252) + ($251<<4)|0); HEAPF64[$253>>3] = $250; $254 = $i; $255 = (($254) + 1)|0; $i = $255; } } else { while(1) { $256 = $i; $257 = $M; $258 = ($256|0)<($257|0); if (!($258)) { break L21; } $259 = $i; $260 = $yn; $261 = (($260) + ($259<<4)|0); $262 = +HEAPF64[$261>>3]; $263 = $i; $264 = $hk; $265 = (($264) + ($263<<4)|0); $266 = +HEAPF64[$265>>3]; $267 = $262 * $266; $268 = $i; $269 = $yn; $270 = (($269) + ($268<<4)|0); $271 = ((($270)) + 8|0); $272 = +HEAPF64[$271>>3]; $273 = $i; $274 = $hk; $275 = (($274) + ($273<<4)|0); $276 = ((($275)) + 8|0); $277 = +HEAPF64[$276>>3]; $278 = $272 * $277; $279 = $267 + $278; $temp = $279; $280 = $i; $281 = $yn; $282 = (($281) + ($280<<4)|0); $283 = +HEAPF64[$282>>3]; $284 = -$283; $285 = $i; $286 = $hk; $287 = (($286) + ($285<<4)|0); $288 = ((($287)) + 8|0); $289 = +HEAPF64[$288>>3]; $290 = $284 * $289; $291 = $i; $292 = $yn; $293 = (($292) + ($291<<4)|0); $294 = ((($293)) + 8|0); $295 = +HEAPF64[$294>>3]; $296 = $i; $297 = $hk; $298 = (($297) + ($296<<4)|0); $299 = +HEAPF64[$298>>3]; $300 = $295 * $299; $301 = $290 + $300; $302 = $i; $303 = $yn; $304 = (($303) + ($302<<4)|0); $305 = ((($304)) + 8|0); HEAPF64[$305>>3] = $301; $306 = $temp; $307 = $i; $308 = $yn; $309 = (($308) + ($307<<4)|0); HEAPF64[$309>>3] = $306; $310 = $i; $311 = (($310) + 1)|0; $i = $311; } } } while(0); $ii = 0; while(1) { $312 = $ii; $313 = $M; $314 = ($312|0)<($313|0); if (!($314)) { break; } $315 = $2; $316 = ((($315)) + 272|0); $317 = $ii; $318 = (($316) + ($317<<4)|0); $319 = ((($318)) + 8|0); $320 = +HEAPF64[$319>>3]; $321 = -$320; $322 = $2; $323 = ((($322)) + 272|0); $324 = $ii; $325 = (($323) + ($324<<4)|0); $326 = ((($325)) + 8|0); HEAPF64[$326>>3] = $321; $327 = $ii; $328 = (($327) + 1)|0; $ii = $328; } $329 = $3; $330 = Math_imul(-1, $329)|0; $331 = $2; $332 = ((($331)) + 4|0); HEAP32[$332>>2] = $330; $333 = $2; $334 = $yn; $335 = $yno; _fft_exec($333,$334,$335); $336 = $3; $337 = ($336|0)==(1); $i = 0; L33: do { if ($337) { while(1) { $338 = $i; $339 = $4; $340 = ($338|0)<($339|0); if (!($340)) { break L33; } $341 = $i; $342 = $yno; $343 = (($342) + ($341<<4)|0); $344 = +HEAPF64[$343>>3]; $345 = $i; $346 = $hlt; $347 = (($346) + ($345<<4)|0); $348 = +HEAPF64[$347>>3]; $349 = $344 * $348; $350 = $i; $351 = $yno; $352 = (($351) + ($350<<4)|0); $353 = ((($352)) + 8|0); $354 = +HEAPF64[$353>>3]; $355 = $i; $356 = $hlt; $357 = (($356) + ($355<<4)|0); $358 = ((($357)) + 8|0); $359 = +HEAPF64[$358>>3]; $360 = $354 * $359; $361 = $349 + $360; $362 = $i; $363 = $1; $364 = (($363) + ($362<<4)|0); HEAPF64[$364>>3] = $361; $365 = $i; $366 = $yno; $367 = (($366) + ($365<<4)|0); $368 = +HEAPF64[$367>>3]; $369 = -$368; $370 = $i; $371 = $hlt; $372 = (($371) + ($370<<4)|0); $373 = ((($372)) + 8|0); $374 = +HEAPF64[$373>>3]; $375 = $369 * $374; $376 = $i; $377 = $yno; $378 = (($377) + ($376<<4)|0); $379 = ((($378)) + 8|0); $380 = +HEAPF64[$379>>3]; $381 = $i; $382 = $hlt; $383 = (($382) + ($381<<4)|0); $384 = +HEAPF64[$383>>3]; $385 = $380 * $384; $386 = $375 + $385; $387 = $i; $388 = $1; $389 = (($388) + ($387<<4)|0); $390 = ((($389)) + 8|0); HEAPF64[$390>>3] = $386; $391 = $i; $392 = (($391) + 1)|0; $i = $392; } } else { while(1) { $393 = $i; $394 = $4; $395 = ($393|0)<($394|0); if (!($395)) { break L33; } $396 = $i; $397 = $yno; $398 = (($397) + ($396<<4)|0); $399 = +HEAPF64[$398>>3]; $400 = $i; $401 = $hlt; $402 = (($401) + ($400<<4)|0); $403 = +HEAPF64[$402>>3]; $404 = $399 * $403; $405 = $i; $406 = $yno; $407 = (($406) + ($405<<4)|0); $408 = ((($407)) + 8|0); $409 = +HEAPF64[$408>>3]; $410 = $i; $411 = $hlt; $412 = (($411) + ($410<<4)|0); $413 = ((($412)) + 8|0); $414 = +HEAPF64[$413>>3]; $415 = $409 * $414; $416 = $404 - $415; $417 = $i; $418 = $1; $419 = (($418) + ($417<<4)|0); HEAPF64[$419>>3] = $416; $420 = $i; $421 = $yno; $422 = (($421) + ($420<<4)|0); $423 = +HEAPF64[$422>>3]; $424 = $i; $425 = $hlt; $426 = (($425) + ($424<<4)|0); $427 = ((($426)) + 8|0); $428 = +HEAPF64[$427>>3]; $429 = $423 * $428; $430 = $i; $431 = $yno; $432 = (($431) + ($430<<4)|0); $433 = ((($432)) + 8|0); $434 = +HEAPF64[$433>>3]; $435 = $i; $436 = $hlt; $437 = (($436) + ($435<<4)|0); $438 = +HEAPF64[$437>>3]; $439 = $434 * $438; $440 = $429 + $439; $441 = $i; $442 = $1; $443 = (($442) + ($441<<4)|0); $444 = ((($443)) + 8|0); HEAPF64[$444>>3] = $440; $445 = $i; $446 = (($445) + 1)|0; $i = $446; } } } while(0); $447 = $def_sgn; $448 = $2; $449 = ((($448)) + 4|0); HEAP32[$449>>2] = $447; $450 = $def_N; $451 = $2; HEAP32[$451>>2] = $450; $452 = $def_lt; $453 = $2; $454 = ((($453)) + 268|0); HEAP32[$454>>2] = $452; $ii = 0; while(1) { $455 = $ii; $456 = $M; $457 = ($455|0)<($456|0); if (!($457)) { break; } $458 = $2; $459 = ((($458)) + 272|0); $460 = $ii; $461 = (($459) + ($460<<4)|0); $462 = ((($461)) + 8|0); $463 = +HEAPF64[$462>>3]; $464 = -$463; $465 = $2; $466 = ((($465)) + 272|0); $467 = $ii; $468 = (($466) + ($467<<4)|0); $469 = ((($468)) + 8|0); HEAPF64[$469>>3] = $464; $470 = $ii; $471 = (($470) + 1)|0; $ii = $471; } $472 = $yn; _free($472); $473 = $yno; _free($473); $474 = $tempop; _free($474); $475 = $hk; _free($475); $476 = $hlt; _free($476); STACKTOP = sp;return; } function _bluestein_exp($hl,$hlt,$len,$M) { $hl = $hl|0; $hlt = $hlt|0; $len = $len|0; $M = $M|0; var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $11 = 0, $12 = 0, $13 = 0.0, $14 = 0, $15 = 0.0, $16 = 0.0, $17 = 0.0, $18 = 0.0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0.0, $23 = 0.0, $24 = 0; var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0.0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0.0, $4 = 0.0, $40 = 0, $41 = 0, $42 = 0; var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0.0, $60 = 0; var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0.0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0; var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0.0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0.0, $96 = 0, $97 = 0; var $98 = 0, $99 = 0, $PI = 0.0, $angle = 0.0, $i = 0, $l2 = 0, $len2 = 0, $theta = 0.0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $hl; $1 = $hlt; $2 = $len; $3 = $M; $PI = 3.1415926535897931; $4 = $PI; $5 = $2; $6 = (+($5|0)); $7 = $4 / $6; $theta = $7; $l2 = 0; $8 = $2; $9 = $8<<1; $len2 = $9; $i = 0; while(1) { $10 = $i; $11 = $2; $12 = ($10|0)<($11|0); if (!($12)) { break; } $13 = $theta; $14 = $l2; $15 = (+($14|0)); $16 = $13 * $15; $angle = $16; $17 = $angle; $18 = (+Math_cos((+$17))); $19 = $i; $20 = $1; $21 = (($20) + ($19<<4)|0); HEAPF64[$21>>3] = $18; $22 = $angle; $23 = (+Math_sin((+$22))); $24 = $i; $25 = $1; $26 = (($25) + ($24<<4)|0); $27 = ((($26)) + 8|0); HEAPF64[$27>>3] = $23; $28 = $i; $29 = $1; $30 = (($29) + ($28<<4)|0); $31 = +HEAPF64[$30>>3]; $32 = $i; $33 = $0; $34 = (($33) + ($32<<4)|0); HEAPF64[$34>>3] = $31; $35 = $i; $36 = $1; $37 = (($36) + ($35<<4)|0); $38 = ((($37)) + 8|0); $39 = +HEAPF64[$38>>3]; $40 = $i; $41 = $0; $42 = (($41) + ($40<<4)|0); $43 = ((($42)) + 8|0); HEAPF64[$43>>3] = $39; $44 = $i; $45 = $44<<1; $46 = (($45) + 1)|0; $47 = $l2; $48 = (($47) + ($46))|0; $l2 = $48; while(1) { $49 = $l2; $50 = $len2; $51 = ($49|0)>($50|0); if (!($51)) { break; } $52 = $len2; $53 = $l2; $54 = (($53) - ($52))|0; $l2 = $54; } $55 = $i; $56 = (($55) + 1)|0; $i = $56; } $57 = $2; $i = $57; while(1) { $58 = $i; $59 = $3; $60 = $2; $61 = (($59) - ($60))|0; $62 = (($61) + 1)|0; $63 = ($58|0)<($62|0); if (!($63)) { break; } $64 = $i; $65 = $0; $66 = (($65) + ($64<<4)|0); HEAPF64[$66>>3] = 0.0; $67 = $i; $68 = $0; $69 = (($68) + ($67<<4)|0); $70 = ((($69)) + 8|0); HEAPF64[$70>>3] = 0.0; $71 = $i; $72 = (($71) + 1)|0; $i = $72; } $73 = $3; $74 = $2; $75 = (($73) - ($74))|0; $76 = (($75) + 1)|0; $i = $76; while(1) { $77 = $i; $78 = $3; $79 = ($77|0)<($78|0); if (!($79)) { break; } $80 = $3; $81 = $i; $82 = (($80) - ($81))|0; $83 = $1; $84 = (($83) + ($82<<4)|0); $85 = +HEAPF64[$84>>3]; $86 = $i; $87 = $0; $88 = (($87) + ($86<<4)|0); HEAPF64[$88>>3] = $85; $89 = $3; $90 = $i; $91 = (($89) - ($90))|0; $92 = $1; $93 = (($92) + ($91<<4)|0); $94 = ((($93)) + 8|0); $95 = +HEAPF64[$94>>3]; $96 = $i; $97 = $0; $98 = (($97) + ($96<<4)|0); $99 = ((($98)) + 8|0); HEAPF64[$99>>3] = $95; $100 = $i; $101 = (($100) + 1)|0; $i = $101; } STACKTOP = sp;return; } function _fft_real_init($N,$sgn) { $N = $N|0; $sgn = $sgn|0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0.0, $18 = 0.0, $19 = 0, $2 = 0, $20 = 0.0, $21 = 0.0, $22 = 0.0, $23 = 0.0, $24 = 0, $25 = 0, $26 = 0; var $27 = 0, $28 = 0.0, $29 = 0.0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $PI = 0.0, $k = 0; var $obj = 0, $theta = 0.0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $N; $1 = $sgn; $obj = 0; $PI = 3.1415926535897931; $2 = $0; $3 = (($2|0) / 2)&-1; $4 = $3<<4; $5 = (24 + ($4))|0; $6 = (_malloc($5)|0); $obj = $6; $7 = $0; $8 = (($7|0) / 2)&-1; $9 = $1; $10 = (_fft_init($8,$9)|0); $11 = $obj; HEAP32[$11>>2] = $10; $k = 0; while(1) { $12 = $k; $13 = $0; $14 = (($13|0) / 2)&-1; $15 = ($12|0)<($14|0); if (!($15)) { break; } $16 = $k; $17 = (+($16|0)); $18 = 6.2831853071795862 * $17; $19 = $0; $20 = (+($19|0)); $21 = $18 / $20; $theta = $21; $22 = $theta; $23 = (+Math_cos((+$22))); $24 = $k; $25 = $obj; $26 = ((($25)) + 8|0); $27 = (($26) + ($24<<4)|0); HEAPF64[$27>>3] = $23; $28 = $theta; $29 = (+Math_sin((+$28))); $30 = $k; $31 = $obj; $32 = ((($31)) + 8|0); $33 = (($32) + ($30<<4)|0); $34 = ((($33)) + 8|0); HEAPF64[$34>>3] = $29; $35 = $k; $36 = (($35) + 1)|0; $k = $36; } $37 = $obj; STACKTOP = sp;return ($37|0); } function _fft_r2c_exec($obj,$inp,$oup) { $obj = $obj|0; $inp = $inp|0; $oup = $oup|0; var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0.0, $103 = 0.0, $104 = 0.0, $105 = 0.0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0.0, $114 = 0, $115 = 0; var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0.0, $121 = 0.0, $122 = 0.0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0.0, $128 = 0.0, $129 = 0.0, $13 = 0, $130 = 0.0, $131 = 0, $132 = 0, $133 = 0; var $134 = 0, $135 = 0, $136 = 0.0, $137 = 0.0, $138 = 0.0, $139 = 0.0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0.0, $148 = 0, $149 = 0, $15 = 0, $150 = 0.0, $151 = 0.0; var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0.0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0; var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0.0, $176 = 0.0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $19 = 0, $2 = 0; var $20 = 0, $21 = 0.0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0.0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0; var $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0.0, $43 = 0, $44 = 0, $45 = 0.0, $46 = 0.0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0; var $57 = 0.0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0.0, $65 = 0.0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0.0, $72 = 0, $73 = 0, $74 = 0; var $75 = 0.0, $76 = 0.0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0.0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0.0, $87 = 0.0, $88 = 0.0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0; var $93 = 0.0, $94 = 0.0, $95 = 0.0, $96 = 0.0, $97 = 0, $98 = 0, $99 = 0, $N = 0, $N2 = 0, $cinp = 0, $coup = 0, $i = 0, $temp1 = 0.0, $temp2 = 0.0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $obj; $1 = $inp; $2 = $oup; $3 = $0; $4 = HEAP32[$3>>2]|0; $5 = HEAP32[$4>>2]|0; $N2 = $5; $6 = $N2; $7 = $6<<1; $N = $7; $8 = $N2; $9 = $8<<4; $10 = (_malloc($9)|0); $cinp = $10; $11 = $N2; $12 = $11<<4; $13 = (_malloc($12)|0); $coup = $13; $i = 0; while(1) { $14 = $i; $15 = $N2; $16 = ($14|0)<($15|0); if (!($16)) { break; } $17 = $i; $18 = $17<<1; $19 = $1; $20 = (($19) + ($18<<3)|0); $21 = +HEAPF64[$20>>3]; $22 = $i; $23 = $cinp; $24 = (($23) + ($22<<4)|0); HEAPF64[$24>>3] = $21; $25 = $i; $26 = $25<<1; $27 = (($26) + 1)|0; $28 = $1; $29 = (($28) + ($27<<3)|0); $30 = +HEAPF64[$29>>3]; $31 = $i; $32 = $cinp; $33 = (($32) + ($31<<4)|0); $34 = ((($33)) + 8|0); HEAPF64[$34>>3] = $30; $35 = $i; $36 = (($35) + 1)|0; $i = $36; } $37 = $0; $38 = HEAP32[$37>>2]|0; $39 = $cinp; $40 = $coup; _fft_exec($38,$39,$40); $41 = $coup; $42 = +HEAPF64[$41>>3]; $43 = $coup; $44 = ((($43)) + 8|0); $45 = +HEAPF64[$44>>3]; $46 = $42 + $45; $47 = $2; HEAPF64[$47>>3] = $46; $48 = $2; $49 = ((($48)) + 8|0); HEAPF64[$49>>3] = 0.0; $i = 1; while(1) { $50 = $i; $51 = $N2; $52 = ($50|0)<($51|0); if (!($52)) { break; } $53 = $i; $54 = $coup; $55 = (($54) + ($53<<4)|0); $56 = ((($55)) + 8|0); $57 = +HEAPF64[$56>>3]; $58 = $N2; $59 = $i; $60 = (($58) - ($59))|0; $61 = $coup; $62 = (($61) + ($60<<4)|0); $63 = ((($62)) + 8|0); $64 = +HEAPF64[$63>>3]; $65 = $57 + $64; $temp1 = $65; $66 = $N2; $67 = $i; $68 = (($66) - ($67))|0; $69 = $coup; $70 = (($69) + ($68<<4)|0); $71 = +HEAPF64[$70>>3]; $72 = $i; $73 = $coup; $74 = (($73) + ($72<<4)|0); $75 = +HEAPF64[$74>>3]; $76 = $71 - $75; $temp2 = $76; $77 = $i; $78 = $coup; $79 = (($78) + ($77<<4)|0); $80 = +HEAPF64[$79>>3]; $81 = $N2; $82 = $i; $83 = (($81) - ($82))|0; $84 = $coup; $85 = (($84) + ($83<<4)|0); $86 = +HEAPF64[$85>>3]; $87 = $80 + $86; $88 = $temp1; $89 = $i; $90 = $0; $91 = ((($90)) + 8|0); $92 = (($91) + ($89<<4)|0); $93 = +HEAPF64[$92>>3]; $94 = $88 * $93; $95 = $87 + $94; $96 = $temp2; $97 = $i; $98 = $0; $99 = ((($98)) + 8|0); $100 = (($99) + ($97<<4)|0); $101 = ((($100)) + 8|0); $102 = +HEAPF64[$101>>3]; $103 = $96 * $102; $104 = $95 + $103; $105 = $104 / 2.0; $106 = $i; $107 = $2; $108 = (($107) + ($106<<4)|0); HEAPF64[$108>>3] = $105; $109 = $i; $110 = $coup; $111 = (($110) + ($109<<4)|0); $112 = ((($111)) + 8|0); $113 = +HEAPF64[$112>>3]; $114 = $N2; $115 = $i; $116 = (($114) - ($115))|0; $117 = $coup; $118 = (($117) + ($116<<4)|0); $119 = ((($118)) + 8|0); $120 = +HEAPF64[$119>>3]; $121 = $113 - $120; $122 = $temp2; $123 = $i; $124 = $0; $125 = ((($124)) + 8|0); $126 = (($125) + ($123<<4)|0); $127 = +HEAPF64[$126>>3]; $128 = $122 * $127; $129 = $121 + $128; $130 = $temp1; $131 = $i; $132 = $0; $133 = ((($132)) + 8|0); $134 = (($133) + ($131<<4)|0); $135 = ((($134)) + 8|0); $136 = +HEAPF64[$135>>3]; $137 = $130 * $136; $138 = $129 - $137; $139 = $138 / 2.0; $140 = $i; $141 = $2; $142 = (($141) + ($140<<4)|0); $143 = ((($142)) + 8|0); HEAPF64[$143>>3] = $139; $144 = $i; $145 = (($144) + 1)|0; $i = $145; } $146 = $coup; $147 = +HEAPF64[$146>>3]; $148 = $coup; $149 = ((($148)) + 8|0); $150 = +HEAPF64[$149>>3]; $151 = $147 - $150; $152 = $N2; $153 = $2; $154 = (($153) + ($152<<4)|0); HEAPF64[$154>>3] = $151; $155 = $N2; $156 = $2; $157 = (($156) + ($155<<4)|0); $158 = ((($157)) + 8|0); HEAPF64[$158>>3] = 0.0; $i = 1; while(1) { $159 = $i; $160 = $N2; $161 = ($159|0)<($160|0); if (!($161)) { break; } $162 = $i; $163 = $2; $164 = (($163) + ($162<<4)|0); $165 = +HEAPF64[$164>>3]; $166 = $N; $167 = $i; $168 = (($166) - ($167))|0; $169 = $2; $170 = (($169) + ($168<<4)|0); HEAPF64[$170>>3] = $165; $171 = $i; $172 = $2; $173 = (($172) + ($171<<4)|0); $174 = ((($173)) + 8|0); $175 = +HEAPF64[$174>>3]; $176 = -$175; $177 = $N; $178 = $i; $179 = (($177) - ($178))|0; $180 = $2; $181 = (($180) + ($179<<4)|0); $182 = ((($181)) + 8|0); HEAPF64[$182>>3] = $176; $183 = $i; $184 = (($183) + 1)|0; $i = $184; } $185 = $cinp; _free($185); $186 = $coup; _free($186); STACKTOP = sp;return; } function _fft_c2r_exec($obj,$inp,$oup) { $obj = $obj|0; $inp = $inp|0; $oup = $oup|0; var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0.0, $102 = 0.0, $103 = 0.0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0.0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0.0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0; var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0.0, $22 = 0.0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0; var $28 = 0, $29 = 0.0, $3 = 0, $30 = 0.0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0.0, $37 = 0.0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0.0, $42 = 0.0, $43 = 0, $44 = 0, $45 = 0; var $46 = 0.0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0.0, $62 = 0.0, $63 = 0; var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0.0, $69 = 0.0, $7 = 0, $70 = 0.0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0.0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; var $82 = 0, $83 = 0, $84 = 0, $85 = 0.0, $86 = 0.0, $87 = 0.0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0.0, $93 = 0.0, $94 = 0.0, $95 = 0.0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $N = 0; var $N2 = 0, $cinp = 0, $coup = 0, $i = 0, $temp1 = 0.0, $temp2 = 0.0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $obj; $1 = $inp; $2 = $oup; $3 = $0; $4 = HEAP32[$3>>2]|0; $5 = HEAP32[$4>>2]|0; $N2 = $5; $6 = $N2; $7 = $6<<1; $N = $7; $8 = $N2; $9 = $8<<4; $10 = (_malloc($9)|0); $cinp = $10; $11 = $N2; $12 = $11<<4; $13 = (_malloc($12)|0); $coup = $13; $i = 0; while(1) { $14 = $i; $15 = $N2; $16 = ($14|0)<($15|0); if (!($16)) { break; } $17 = $i; $18 = $1; $19 = (($18) + ($17<<4)|0); $20 = ((($19)) + 8|0); $21 = +HEAPF64[$20>>3]; $22 = -$21; $23 = $N2; $24 = $i; $25 = (($23) - ($24))|0; $26 = $1; $27 = (($26) + ($25<<4)|0); $28 = ((($27)) + 8|0); $29 = +HEAPF64[$28>>3]; $30 = $22 - $29; $temp1 = $30; $31 = $N2; $32 = $i; $33 = (($31) - ($32))|0; $34 = $1; $35 = (($34) + ($33<<4)|0); $36 = +HEAPF64[$35>>3]; $37 = -$36; $38 = $i; $39 = $1; $40 = (($39) + ($38<<4)|0); $41 = +HEAPF64[$40>>3]; $42 = $37 + $41; $temp2 = $42; $43 = $i; $44 = $1; $45 = (($44) + ($43<<4)|0); $46 = +HEAPF64[$45>>3]; $47 = $N2; $48 = $i; $49 = (($47) - ($48))|0; $50 = $1; $51 = (($50) + ($49<<4)|0); $52 = +HEAPF64[$51>>3]; $53 = $46 + $52; $54 = $temp1; $55 = $i; $56 = $0; $57 = ((($56)) + 8|0); $58 = (($57) + ($55<<4)|0); $59 = +HEAPF64[$58>>3]; $60 = $54 * $59; $61 = $53 + $60; $62 = $temp2; $63 = $i; $64 = $0; $65 = ((($64)) + 8|0); $66 = (($65) + ($63<<4)|0); $67 = ((($66)) + 8|0); $68 = +HEAPF64[$67>>3]; $69 = $62 * $68; $70 = $61 - $69; $71 = $i; $72 = $cinp; $73 = (($72) + ($71<<4)|0); HEAPF64[$73>>3] = $70; $74 = $i; $75 = $1; $76 = (($75) + ($74<<4)|0); $77 = ((($76)) + 8|0); $78 = +HEAPF64[$77>>3]; $79 = $N2; $80 = $i; $81 = (($79) - ($80))|0; $82 = $1; $83 = (($82) + ($81<<4)|0); $84 = ((($83)) + 8|0); $85 = +HEAPF64[$84>>3]; $86 = $78 - $85; $87 = $temp2; $88 = $i; $89 = $0; $90 = ((($89)) + 8|0); $91 = (($90) + ($88<<4)|0); $92 = +HEAPF64[$91>>3]; $93 = $87 * $92; $94 = $86 + $93; $95 = $temp1; $96 = $i; $97 = $0; $98 = ((($97)) + 8|0); $99 = (($98) + ($96<<4)|0); $100 = ((($99)) + 8|0); $101 = +HEAPF64[$100>>3]; $102 = $95 * $101; $103 = $94 + $102; $104 = $i; $105 = $cinp; $106 = (($105) + ($104<<4)|0); $107 = ((($106)) + 8|0); HEAPF64[$107>>3] = $103; $108 = $i; $109 = (($108) + 1)|0; $i = $109; } $110 = $0; $111 = HEAP32[$110>>2]|0; $112 = $cinp; $113 = $coup; _fft_exec($111,$112,$113); $i = 0; while(1) { $114 = $i; $115 = $N2; $116 = ($114|0)<($115|0); if (!($116)) { break; } $117 = $i; $118 = $coup; $119 = (($118) + ($117<<4)|0); $120 = +HEAPF64[$119>>3]; $121 = $i; $122 = $121<<1; $123 = $2; $124 = (($123) + ($122<<3)|0); HEAPF64[$124>>3] = $120; $125 = $i; $126 = $coup; $127 = (($126) + ($125<<4)|0); $128 = ((($127)) + 8|0); $129 = +HEAPF64[$128>>3]; $130 = $i; $131 = $130<<1; $132 = (($131) + 1)|0; $133 = $2; $134 = (($133) + ($132<<3)|0); HEAPF64[$134>>3] = $129; $135 = $i; $136 = (($135) + 1)|0; $i = $136; } $137 = $cinp; _free($137); $138 = $coup; _free($138); STACKTOP = sp;return; } function _factorf($M) { $M = $M|0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0; var $8 = 0, $9 = 0, $N = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $M; $1 = $0; $N = $1; while(1) { $2 = $N; $3 = (($2|0) % 7)&-1; $4 = ($3|0)==(0); if (!($4)) { break; } $5 = $N; $6 = (($5|0) / 7)&-1; $N = $6; } while(1) { $7 = $N; $8 = (($7|0) % 3)&-1; $9 = ($8|0)==(0); if (!($9)) { break; } $10 = $N; $11 = (($10|0) / 3)&-1; $N = $11; } while(1) { $12 = $N; $13 = (($12|0) % 5)&-1; $14 = ($13|0)==(0); if (!($14)) { break; } $15 = $N; $16 = (($15|0) / 5)&-1; $N = $16; } while(1) { $17 = $N; $18 = (($17|0) % 2)&-1; $19 = ($18|0)==(0); $20 = $N; if (!($19)) { break; } $21 = (($20|0) / 2)&-1; $N = $21; } STACKTOP = sp;return ($20|0); } function _findnexte($M) { $M = $M|0; var $0 = 0, $1 = 0, $10 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $N = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $M; $1 = $0; $N = $1; while(1) { $2 = $N; $3 = (_factorf($2)|0); $4 = ($3|0)!=(1); if ($4) { $10 = 1; } else { $5 = $N; $6 = (($5|0) % 2)&-1; $7 = ($6|0)!=(0); $10 = $7; } $8 = $N; if (!($10)) { break; } $9 = (($8) + 1)|0; $N = $9; } STACKTOP = sp;return ($8|0); } function _conv_init($N,$L) { $N = $N|0; $L = $L|0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; var $27 = 0, $28 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $conv_len = 0, $obj = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $N; $1 = $L; $obj = 0; $2 = $0; $3 = $1; $4 = (($2) + ($3))|0; $5 = (($4) - 1)|0; $conv_len = $5; $6 = (_malloc(20)|0); $obj = $6; $7 = $conv_len; $8 = (_findnexte($7)|0); $9 = $obj; $10 = ((($9)) + 16|0); HEAP32[$10>>2] = $8; $11 = $0; $12 = $obj; $13 = ((($12)) + 8|0); HEAP32[$13>>2] = $11; $14 = $1; $15 = $obj; $16 = ((($15)) + 12|0); HEAP32[$16>>2] = $14; $17 = $obj; $18 = ((($17)) + 16|0); $19 = HEAP32[$18>>2]|0; $20 = (_fft_real_init($19,1)|0); $21 = $obj; HEAP32[$21>>2] = $20; $22 = $obj; $23 = ((($22)) + 16|0); $24 = HEAP32[$23>>2]|0; $25 = (_fft_real_init($24,-1)|0); $26 = $obj; $27 = ((($26)) + 4|0); HEAP32[$27>>2] = $25; $28 = $obj; STACKTOP = sp;return ($28|0); } function _conv_direct($inp1,$N,$inp2,$L,$oup) { $inp1 = $inp1|0; $N = $N|0; $inp2 = $inp2|0; $L = $L|0; $oup = $oup|0; var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0.0, $106 = 0.0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0.0, $111 = 0.0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0.0, $129 = 0.0, $13 = 0, $130 = 0, $131 = 0.0, $132 = 0, $133 = 0.0; var $134 = 0, $135 = 0.0, $136 = 0.0, $137 = 0, $138 = 0, $139 = 0.0, $14 = 0, $140 = 0.0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0.0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0.0; var $152 = 0.0, $153 = 0, $154 = 0, $155 = 0, $156 = 0.0, $157 = 0.0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0.0; var $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0.0, $31 = 0.0, $32 = 0, $33 = 0, $34 = 0, $35 = 0.0, $36 = 0.0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0; var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0.0, $54 = 0.0, $55 = 0, $56 = 0.0, $57 = 0, $58 = 0.0, $59 = 0, $6 = 0, $60 = 0.0; var $61 = 0.0, $62 = 0, $63 = 0, $64 = 0.0, $65 = 0.0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0.0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0.0, $77 = 0.0, $78 = 0, $79 = 0; var $8 = 0, $80 = 0, $81 = 0.0, $82 = 0.0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0; var $98 = 0, $99 = 0.0, $M = 0, $i = 0, $k = 0, $m = 0, $t1 = 0.0, $tmin = 0.0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $inp1; $1 = $N; $2 = $inp2; $3 = $L; $4 = $oup; $5 = $1; $6 = $3; $7 = (($5) + ($6))|0; $8 = (($7) - 1)|0; $M = $8; $i = 0; $9 = $1; $10 = $3; $11 = ($9|0)>=($10|0); $k = 0; if ($11) { while(1) { $12 = $k; $13 = $3; $14 = ($12|0)<($13|0); if (!($14)) { break; } $15 = $k; $16 = $4; $17 = (($16) + ($15<<3)|0); HEAPF64[$17>>3] = 0.0; $m = 0; while(1) { $18 = $m; $19 = $k; $20 = ($18|0)<=($19|0); if (!($20)) { break; } $21 = $m; $22 = $0; $23 = (($22) + ($21<<3)|0); $24 = +HEAPF64[$23>>3]; $25 = $k; $26 = $m; $27 = (($25) - ($26))|0; $28 = $2; $29 = (($28) + ($27<<3)|0); $30 = +HEAPF64[$29>>3]; $31 = $24 * $30; $32 = $k; $33 = $4; $34 = (($33) + ($32<<3)|0); $35 = +HEAPF64[$34>>3]; $36 = $35 + $31; HEAPF64[$34>>3] = $36; $37 = $m; $38 = (($37) + 1)|0; $m = $38; } $39 = $k; $40 = (($39) + 1)|0; $k = $40; } $41 = $3; $k = $41; while(1) { $42 = $k; $43 = $M; $44 = ($42|0)<($43|0); if (!($44)) { break; } $45 = $k; $46 = $4; $47 = (($46) + ($45<<3)|0); HEAPF64[$47>>3] = 0.0; $48 = $i; $49 = (($48) + 1)|0; $i = $49; $50 = $3; $51 = $i; $52 = (($50) + ($51))|0; $53 = (+($52|0)); $t1 = $53; $54 = $t1; $55 = $1; $56 = (+($55|0)); $57 = $54 < $56; $58 = $t1; $59 = $1; $60 = (+($59|0)); $61 = $57 ? $58 : $60; $tmin = $61; $62 = $i; $m = $62; while(1) { $63 = $m; $64 = (+($63|0)); $65 = $tmin; $66 = $64 < $65; if (!($66)) { break; } $67 = $m; $68 = $0; $69 = (($68) + ($67<<3)|0); $70 = +HEAPF64[$69>>3]; $71 = $k; $72 = $m; $73 = (($71) - ($72))|0; $74 = $2; $75 = (($74) + ($73<<3)|0); $76 = +HEAPF64[$75>>3]; $77 = $70 * $76; $78 = $k; $79 = $4; $80 = (($79) + ($78<<3)|0); $81 = +HEAPF64[$80>>3]; $82 = $81 + $77; HEAPF64[$80>>3] = $82; $83 = $m; $84 = (($83) + 1)|0; $m = $84; } $85 = $k; $86 = (($85) + 1)|0; $k = $86; } STACKTOP = sp;return; } else { while(1) { $87 = $k; $88 = $1; $89 = ($87|0)<($88|0); if (!($89)) { break; } $90 = $k; $91 = $4; $92 = (($91) + ($90<<3)|0); HEAPF64[$92>>3] = 0.0; $m = 0; while(1) { $93 = $m; $94 = $k; $95 = ($93|0)<=($94|0); if (!($95)) { break; } $96 = $m; $97 = $2; $98 = (($97) + ($96<<3)|0); $99 = +HEAPF64[$98>>3]; $100 = $k; $101 = $m; $102 = (($100) - ($101))|0; $103 = $0; $104 = (($103) + ($102<<3)|0); $105 = +HEAPF64[$104>>3]; $106 = $99 * $105; $107 = $k; $108 = $4; $109 = (($108) + ($107<<3)|0); $110 = +HEAPF64[$109>>3]; $111 = $110 + $106; HEAPF64[$109>>3] = $111; $112 = $m; $113 = (($112) + 1)|0; $m = $113; } $114 = $k; $115 = (($114) + 1)|0; $k = $115; } $116 = $1; $k = $116; while(1) { $117 = $k; $118 = $M; $119 = ($117|0)<($118|0); if (!($119)) { break; } $120 = $k; $121 = $4; $122 = (($121) + ($120<<3)|0); HEAPF64[$122>>3] = 0.0; $123 = $i; $124 = (($123) + 1)|0; $i = $124; $125 = $1; $126 = $i; $127 = (($125) + ($126))|0; $128 = (+($127|0)); $t1 = $128; $129 = $t1; $130 = $3; $131 = (+($130|0)); $132 = $129 < $131; $133 = $t1; $134 = $3; $135 = (+($134|0)); $136 = $132 ? $133 : $135; $tmin = $136; $137 = $i; $m = $137; while(1) { $138 = $m; $139 = (+($138|0)); $140 = $tmin; $141 = $139 < $140; if (!($141)) { break; } $142 = $m; $143 = $2; $144 = (($143) + ($142<<3)|0); $145 = +HEAPF64[$144>>3]; $146 = $k; $147 = $m; $148 = (($146) - ($147))|0; $149 = $0; $150 = (($149) + ($148<<3)|0); $151 = +HEAPF64[$150>>3]; $152 = $145 * $151; $153 = $k; $154 = $4; $155 = (($154) + ($153<<3)|0); $156 = +HEAPF64[$155>>3]; $157 = $156 + $152; HEAPF64[$155>>3] = $157; $158 = $m; $159 = (($158) + 1)|0; $m = $159; } $160 = $k; $161 = (($160) + 1)|0; $k = $161; } STACKTOP = sp;return; } } function _conv_fft($obj,$inp1,$inp2,$oup) { $obj = $obj|0; $inp1 = $inp1|0; $inp2 = $inp2|0; $oup = $oup|0; var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0.0, $104 = 0, $105 = 0, $106 = 0, $107 = 0.0, $108 = 0.0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0.0, $113 = 0, $114 = 0, $115 = 0; var $116 = 0, $117 = 0.0, $118 = 0.0, $119 = 0.0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0; var $134 = 0, $135 = 0, $136 = 0, $137 = 0.0, $138 = 0, $139 = 0.0, $14 = 0, $140 = 0.0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0; var $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0; var $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0.0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0; var $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0.0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0; var $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0.0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0.0, $83 = 0.0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0.0; var $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0.0, $94 = 0.0, $95 = 0.0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $L1 = 0, $L2 = 0, $N = 0, $a = 0, $ao = 0, $b = 0, $bo = 0, $c = 0; var $co = 0, $i = 0, $ls = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $obj; $1 = $inp1; $2 = $inp2; $3 = $oup; $4 = $0; $5 = ((($4)) + 16|0); $6 = HEAP32[$5>>2]|0; $N = $6; $7 = $0; $8 = ((($7)) + 8|0); $9 = HEAP32[$8>>2]|0; $L1 = $9; $10 = $0; $11 = ((($10)) + 12|0); $12 = HEAP32[$11>>2]|0; $L2 = $12; $13 = $L1; $14 = $L2; $15 = (($13) + ($14))|0; $16 = (($15) - 1)|0; $ls = $16; $17 = $N; $18 = $17<<4; $19 = (_malloc($18)|0); $a = $19; $20 = $N; $21 = $20<<4; $22 = (_malloc($21)|0); $b = $22; $23 = $N; $24 = $23<<4; $25 = (_malloc($24)|0); $c = $25; $26 = $N; $27 = $26<<4; $28 = (_malloc($27)|0); $ao = $28; $29 = $N; $30 = $29<<4; $31 = (_malloc($30)|0); $bo = $31; $32 = $N; $33 = $32<<4; $34 = (_malloc($33)|0); $co = $34; $i = 0; while(1) { $35 = $i; $36 = $N; $37 = ($35|0)<($36|0); if (!($37)) { break; } $38 = $i; $39 = $L1; $40 = ($38|0)<($39|0); $41 = $i; if ($40) { $42 = $1; $43 = (($42) + ($41<<3)|0); $44 = +HEAPF64[$43>>3]; $45 = $i; $46 = $a; $47 = (($46) + ($45<<3)|0); HEAPF64[$47>>3] = $44; } else { $48 = $a; $49 = (($48) + ($41<<3)|0); HEAPF64[$49>>3] = 0.0; } $50 = $i; $51 = $L2; $52 = ($50|0)<($51|0); $53 = $i; if ($52) { $54 = $2; $55 = (($54) + ($53<<3)|0); $56 = +HEAPF64[$55>>3]; $57 = $i; $58 = $b; $59 = (($58) + ($57<<3)|0); HEAPF64[$59>>3] = $56; } else { $60 = $b; $61 = (($60) + ($53<<3)|0); HEAPF64[$61>>3] = 0.0; } $62 = $i; $63 = (($62) + 1)|0; $i = $63; } $64 = $0; $65 = HEAP32[$64>>2]|0; $66 = $a; $67 = $ao; _fft_r2c_exec($65,$66,$67); $68 = $0; $69 = HEAP32[$68>>2]|0; $70 = $b; $71 = $bo; _fft_r2c_exec($69,$70,$71); $i = 0; while(1) { $72 = $i; $73 = $N; $74 = ($72|0)<($73|0); if (!($74)) { break; } $75 = $i; $76 = $ao; $77 = (($76) + ($75<<4)|0); $78 = +HEAPF64[$77>>3]; $79 = $i; $80 = $bo; $81 = (($80) + ($79<<4)|0); $82 = +HEAPF64[$81>>3]; $83 = $78 * $82; $84 = $i; $85 = $ao; $86 = (($85) + ($84<<4)|0); $87 = ((($86)) + 8|0); $88 = +HEAPF64[$87>>3]; $89 = $i; $90 = $bo; $91 = (($90) + ($89<<4)|0); $92 = ((($91)) + 8|0); $93 = +HEAPF64[$92>>3]; $94 = $88 * $93; $95 = $83 - $94; $96 = $i; $97 = $c; $98 = (($97) + ($96<<4)|0); HEAPF64[$98>>3] = $95; $99 = $i; $100 = $ao; $101 = (($100) + ($99<<4)|0); $102 = ((($101)) + 8|0); $103 = +HEAPF64[$102>>3]; $104 = $i; $105 = $bo; $106 = (($105) + ($104<<4)|0); $107 = +HEAPF64[$106>>3]; $108 = $103 * $107; $109 = $i; $110 = $ao; $111 = (($110) + ($109<<4)|0); $112 = +HEAPF64[$111>>3]; $113 = $i; $114 = $bo; $115 = (($114) + ($113<<4)|0); $116 = ((($115)) + 8|0); $117 = +HEAPF64[$116>>3]; $118 = $112 * $117; $119 = $108 + $118; $120 = $i; $121 = $c; $122 = (($121) + ($120<<4)|0); $123 = ((($122)) + 8|0); HEAPF64[$123>>3] = $119; $124 = $i; $125 = (($124) + 1)|0; $i = $125; } $126 = $0; $127 = ((($126)) + 4|0); $128 = HEAP32[$127>>2]|0; $129 = $c; $130 = $co; _fft_c2r_exec($128,$129,$130); $i = 0; while(1) { $131 = $i; $132 = $ls; $133 = ($131|0)<($132|0); if (!($133)) { break; } $134 = $i; $135 = $co; $136 = (($135) + ($134<<3)|0); $137 = +HEAPF64[$136>>3]; $138 = $N; $139 = (+($138|0)); $140 = $137 / $139; $141 = $i; $142 = $3; $143 = (($142) + ($141<<3)|0); HEAPF64[$143>>3] = $140; $144 = $i; $145 = (($144) + 1)|0; $i = $145; } $146 = $a; _free($146); $147 = $b; _free($147); $148 = $c; _free($148); $149 = $ao; _free($149); $150 = $bo; _free($150); $151 = $co; _free($151); STACKTOP = sp;return; } function _free_conv($object) { $object = $object|0; var $0 = 0, $1 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $object; $1 = $0; _free($1); STACKTOP = sp;return; } function _filtlength($name) { $name = $name|0; var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0; var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0; var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0; var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0; var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $vararg_buffer = 0, label = 0; var sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $vararg_buffer = sp; $1 = $name; $2 = $1; $3 = (_strcmp($2,8)|0); $4 = ($3|0)!=(0); do { if ($4) { $5 = $1; $6 = (_strcmp($5,16)|0); $7 = ($6|0)!=(0); if ($7) { $8 = $1; $9 = (_strcmp($8,24)|0); $10 = ($9|0)!=(0); if (!($10)) { $0 = 4; break; } $11 = $1; $12 = (_strcmp($11,32)|0); $13 = ($12|0)!=(0); if (!($13)) { $0 = 6; break; } $14 = $1; $15 = (_strcmp($14,40)|0); $16 = ($15|0)!=(0); if (!($16)) { $0 = 8; break; } $17 = $1; $18 = (_strcmp($17,48)|0); $19 = ($18|0)!=(0); if (!($19)) { $0 = 10; break; } $20 = $1; $21 = (_strcmp($20,56)|0); $22 = ($21|0)!=(0); if (!($22)) { $0 = 12; break; } $23 = $1; $24 = (_strcmp($23,64)|0); $25 = ($24|0)!=(0); if (!($25)) { $0 = 14; break; } $26 = $1; $27 = (_strcmp($26,72)|0); $28 = ($27|0)!=(0); if (!($28)) { $0 = 16; break; } $29 = $1; $30 = (_strcmp($29,80)|0); $31 = ($30|0)!=(0); if (!($31)) { $0 = 18; break; } $32 = $1; $33 = (_strcmp($32,88)|0); $34 = ($33|0)!=(0); if (!($34)) { $0 = 20; break; } $35 = $1; $36 = (_strcmp($35,96)|0); $37 = ($36|0)!=(0); if (!($37)) { $0 = 24; break; } $38 = $1; $39 = (_strcmp($38,104)|0); $40 = ($39|0)!=(0); if (!($40)) { $0 = 26; break; } $41 = $1; $42 = (_strcmp($41,112)|0); $43 = ($42|0)!=(0); if (!($43)) { $0 = 22; break; } $44 = $1; $45 = (_strcmp($44,120)|0); $46 = ($45|0)!=(0); if (!($46)) { $0 = 28; break; } $47 = $1; $48 = (_strcmp($47,128)|0); $49 = ($48|0)!=(0); if (!($49)) { $0 = 30; break; } $50 = $1; $51 = (_strcmp($50,136)|0); $52 = ($51|0)!=(0); if (!($52)) { $0 = 2; break; } $53 = $1; $54 = (_strcmp($53,144)|0); $55 = ($54|0)!=(0); if (!($55)) { $0 = 6; break; } $56 = $1; $57 = (_strcmp($56,152)|0); $58 = ($57|0)!=(0); if (!($58)) { $0 = 10; break; } $59 = $1; $60 = (_strcmp($59,160)|0); $61 = ($60|0)!=(0); if (!($61)) { $0 = 6; break; } $62 = $1; $63 = (_strcmp($62,168)|0); $64 = ($63|0)!=(0); if (!($64)) { $0 = 10; break; } $65 = $1; $66 = (_strcmp($65,176)|0); $67 = ($66|0)!=(0); if (!($67)) { $0 = 14; break; } $68 = $1; $69 = (_strcmp($68,184)|0); $70 = ($69|0)!=(0); if (!($70)) { $0 = 18; break; } $71 = $1; $72 = (_strcmp($71,192)|0); $73 = ($72|0)!=(0); if (!($73)) { $0 = 4; break; } $74 = $1; $75 = (_strcmp($74,200)|0); $76 = ($75|0)!=(0); if (!($76)) { $0 = 8; break; } $77 = $1; $78 = (_strcmp($77,208)|0); $79 = ($78|0)!=(0); if (!($79)) { $0 = 12; break; } $80 = $1; $81 = (_strcmp($80,216)|0); $82 = ($81|0)!=(0); if (!($82)) { $0 = 16; break; } $83 = $1; $84 = (_strcmp($83,224)|0); $85 = ($84|0)!=(0); if (!($85)) { $0 = 20; break; } $86 = $1; $87 = (_strcmp($86,232)|0); $88 = ($87|0)!=(0); if (!($88)) { $0 = 10; break; } $89 = $1; $90 = (_strcmp($89,240)|0); $91 = ($90|0)!=(0); if (!($91)) { $0 = 12; break; } $92 = $1; $93 = (_strcmp($92,248)|0); $94 = ($93|0)!=(0); if (!($94)) { $0 = 18; break; } $95 = $1; $96 = (_strcmp($95,256)|0); $97 = ($96|0)!=(0); if (!($97)) { $0 = 6; break; } $98 = $1; $99 = (_strcmp($98,264)|0); $100 = ($99|0)!=(0); if (!($100)) { $0 = 12; break; } $101 = $1; $102 = (_strcmp($101,272)|0); $103 = ($102|0)!=(0); if (!($103)) { $0 = 18; break; } $104 = $1; $105 = (_strcmp($104,280)|0); $106 = ($105|0)!=(0); if (!($106)) { $0 = 24; break; } $107 = $1; $108 = (_strcmp($107,288)|0); $109 = ($108|0)!=(0); if (!($109)) { $0 = 30; break; } $110 = $1; $111 = (_strcmp($110,296)|0); $112 = ($111|0)!=(0); if (!($112)) { $0 = 4; break; } $113 = $1; $114 = (_strcmp($113,304)|0); $115 = ($114|0)!=(0); if (!($115)) { $0 = 6; break; } $116 = $1; $117 = (_strcmp($116,312)|0); $118 = ($117|0)!=(0); if (!($118)) { $0 = 8; break; } $119 = $1; $120 = (_strcmp($119,320)|0); $121 = ($120|0)!=(0); if (!($121)) { $0 = 10; break; } $122 = $1; $123 = (_strcmp($122,328)|0); $124 = ($123|0)!=(0); if (!($124)) { $0 = 12; break; } $125 = $1; $126 = (_strcmp($125,336)|0); $127 = ($126|0)!=(0); if (!($127)) { $0 = 14; break; } $128 = $1; $129 = (_strcmp($128,344)|0); $130 = ($129|0)!=(0); if (!($130)) { $0 = 16; break; } $131 = $1; $132 = (_strcmp($131,352)|0); $133 = ($132|0)!=(0); if (!($133)) { $0 = 18; break; } $134 = $1; $135 = (_strcmp($134,360)|0); $136 = ($135|0)!=(0); if ($136) { (_printf((368|0),($vararg_buffer|0))|0); $0 = -1; break; } else { $0 = 20; break; } } else { label = 3; } } else { label = 3; } } while(0); if ((label|0) == 3) { $0 = 2; } $137 = $0; STACKTOP = sp;return ($137|0); } function _filtcoef($name,$lp1,$hp1,$lp2,$hp2) { $name = $name|0; $lp1 = $lp1|0; $hp1 = $hp1|0; $lp2 = $lp2|0; $hp2 = $hp2|0; var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $1000 = 0.0, $1001 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1006 = 0.0, $1007 = 0, $1008 = 0, $1009 = 0, $101 = 0, $1010 = 0, $1011 = 0, $1012 = 0, $1013 = 0, $1014 = 0; var $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0, $1019 = 0.0, $102 = 0, $1020 = 0, $1021 = 0, $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0.0, $1026 = 0, $1027 = 0, $1028 = 0, $1029 = 0, $103 = 0, $1030 = 0, $1031 = 0.0, $1032 = 0; var $1033 = 0, $1034 = 0, $1035 = 0, $1036 = 0, $1037 = 0.0, $1038 = 0, $1039 = 0, $104 = 0.0, $1040 = 0, $1041 = 0, $1042 = 0, $1043 = 0, $1044 = 0, $1045 = 0, $1046 = 0, $1047 = 0, $1048 = 0, $1049 = 0, $105 = 0, $1050 = 0; var $1051 = 0, $1052 = 0, $1053 = 0, $1054 = 0, $1055 = 0, $1056 = 0, $1057 = 0, $1058 = 0, $1059 = 0, $106 = 0, $1060 = 0, $1061 = 0, $1062 = 0, $1063 = 0, $1064 = 0, $1065 = 0, $1066 = 0, $1067 = 0, $1068 = 0, $1069 = 0; var $107 = 0, $1070 = 0.0, $1071 = 0, $1072 = 0, $1073 = 0, $1074 = 0, $1075 = 0, $1076 = 0.0, $1077 = 0, $1078 = 0, $1079 = 0, $108 = 0, $1080 = 0, $1081 = 0, $1082 = 0.0, $1083 = 0, $1084 = 0, $1085 = 0, $1086 = 0, $1087 = 0; var $1088 = 0.0, $1089 = 0, $109 = 0, $1090 = 0, $1091 = 0, $1092 = 0, $1093 = 0, $1094 = 0, $1095 = 0, $1096 = 0, $1097 = 0, $1098 = 0, $1099 = 0, $11 = 0, $110 = 0.0, $1100 = 0, $1101 = 0.0, $1102 = 0, $1103 = 0, $1104 = 0; var $1105 = 0, $1106 = 0, $1107 = 0.0, $1108 = 0, $1109 = 0, $111 = 0, $1110 = 0, $1111 = 0, $1112 = 0, $1113 = 0.0, $1114 = 0, $1115 = 0, $1116 = 0, $1117 = 0, $1118 = 0, $1119 = 0.0, $112 = 0, $1120 = 0, $1121 = 0, $1122 = 0; var $1123 = 0, $1124 = 0, $1125 = 0, $1126 = 0, $1127 = 0, $1128 = 0, $1129 = 0, $113 = 0, $1130 = 0, $1131 = 0, $1132 = 0.0, $1133 = 0, $1134 = 0, $1135 = 0, $1136 = 0, $1137 = 0, $1138 = 0.0, $1139 = 0, $114 = 0, $1140 = 0; var $1141 = 0, $1142 = 0, $1143 = 0, $1144 = 0.0, $1145 = 0, $1146 = 0, $1147 = 0, $1148 = 0, $1149 = 0, $115 = 0, $1150 = 0.0, $1151 = 0, $1152 = 0, $1153 = 0, $1154 = 0, $1155 = 0, $1156 = 0, $1157 = 0, $1158 = 0, $1159 = 0; var $116 = 0.0, $1160 = 0, $1161 = 0, $1162 = 0, $1163 = 0.0, $1164 = 0, $1165 = 0, $1166 = 0, $1167 = 0, $1168 = 0, $1169 = 0.0, $117 = 0, $1170 = 0, $1171 = 0, $1172 = 0, $1173 = 0, $1174 = 0, $1175 = 0.0, $1176 = 0, $1177 = 0; var $1178 = 0, $1179 = 0, $118 = 0, $1180 = 0, $1181 = 0.0, $1182 = 0, $1183 = 0, $1184 = 0, $1185 = 0, $1186 = 0, $1187 = 0, $1188 = 0, $1189 = 0, $119 = 0, $1190 = 0, $1191 = 0, $1192 = 0, $1193 = 0, $1194 = 0.0, $1195 = 0; var $1196 = 0, $1197 = 0, $1198 = 0, $1199 = 0, $12 = 0, $120 = 0, $1200 = 0.0, $1201 = 0, $1202 = 0, $1203 = 0, $1204 = 0, $1205 = 0, $1206 = 0.0, $1207 = 0, $1208 = 0, $1209 = 0, $121 = 0, $1210 = 0, $1211 = 0, $1212 = 0.0; var $1213 = 0, $1214 = 0, $1215 = 0, $1216 = 0, $1217 = 0, $1218 = 0, $1219 = 0, $122 = 0, $1220 = 0, $1221 = 0, $1222 = 0, $1223 = 0, $1224 = 0, $1225 = 0.0, $1226 = 0, $1227 = 0, $1228 = 0, $1229 = 0, $123 = 0, $1230 = 0; var $1231 = 0.0, $1232 = 0, $1233 = 0, $1234 = 0, $1235 = 0, $1236 = 0, $1237 = 0.0, $1238 = 0, $1239 = 0, $124 = 0, $1240 = 0, $1241 = 0, $1242 = 0, $1243 = 0.0, $1244 = 0, $1245 = 0, $1246 = 0, $1247 = 0, $1248 = 0, $1249 = 0; var $125 = 0, $1250 = 0, $1251 = 0, $1252 = 0, $1253 = 0, $1254 = 0, $1255 = 0, $1256 = 0, $1257 = 0, $1258 = 0, $1259 = 0, $126 = 0, $1260 = 0, $1261 = 0, $1262 = 0, $1263 = 0, $1264 = 0, $1265 = 0, $1266 = 0, $1267 = 0; var $1268 = 0, $1269 = 0, $127 = 0, $1270 = 0, $1271 = 0, $1272 = 0, $1273 = 0, $1274 = 0, $1275 = 0, $1276 = 0.0, $1277 = 0, $1278 = 0, $1279 = 0, $128 = 0, $1280 = 0, $1281 = 0, $1282 = 0.0, $1283 = 0, $1284 = 0, $1285 = 0; var $1286 = 0, $1287 = 0, $1288 = 0.0, $1289 = 0, $129 = 0.0, $1290 = 0, $1291 = 0, $1292 = 0, $1293 = 0, $1294 = 0.0, $1295 = 0, $1296 = 0, $1297 = 0, $1298 = 0, $1299 = 0, $13 = 0, $130 = 0, $1300 = 0, $1301 = 0, $1302 = 0; var $1303 = 0, $1304 = 0, $1305 = 0, $1306 = 0, $1307 = 0.0, $1308 = 0, $1309 = 0, $131 = 0, $1310 = 0, $1311 = 0, $1312 = 0, $1313 = 0.0, $1314 = 0, $1315 = 0, $1316 = 0, $1317 = 0, $1318 = 0, $1319 = 0.0, $132 = 0, $1320 = 0; var $1321 = 0, $1322 = 0, $1323 = 0, $1324 = 0, $1325 = 0.0, $1326 = 0, $1327 = 0, $1328 = 0, $1329 = 0, $133 = 0, $1330 = 0, $1331 = 0, $1332 = 0, $1333 = 0, $1334 = 0, $1335 = 0, $1336 = 0, $1337 = 0, $1338 = 0.0, $1339 = 0; var $134 = 0, $1340 = 0, $1341 = 0, $1342 = 0, $1343 = 0, $1344 = 0.0, $1345 = 0, $1346 = 0, $1347 = 0, $1348 = 0, $1349 = 0, $135 = 0.0, $1350 = 0.0, $1351 = 0, $1352 = 0, $1353 = 0, $1354 = 0, $1355 = 0, $1356 = 0.0, $1357 = 0; var $1358 = 0, $1359 = 0, $136 = 0, $1360 = 0, $1361 = 0, $1362 = 0, $1363 = 0, $1364 = 0, $1365 = 0, $1366 = 0, $1367 = 0, $1368 = 0, $1369 = 0.0, $137 = 0, $1370 = 0, $1371 = 0, $1372 = 0, $1373 = 0, $1374 = 0, $1375 = 0.0; var $1376 = 0, $1377 = 0, $1378 = 0, $1379 = 0, $138 = 0, $1380 = 0, $1381 = 0.0, $1382 = 0, $1383 = 0, $1384 = 0, $1385 = 0, $1386 = 0, $1387 = 0.0, $1388 = 0, $1389 = 0, $139 = 0, $1390 = 0, $1391 = 0, $1392 = 0, $1393 = 0; var $1394 = 0, $1395 = 0, $1396 = 0, $1397 = 0, $1398 = 0, $1399 = 0, $14 = 0, $140 = 0, $1400 = 0.0, $1401 = 0, $1402 = 0, $1403 = 0, $1404 = 0, $1405 = 0, $1406 = 0.0, $1407 = 0, $1408 = 0, $1409 = 0, $141 = 0.0, $1410 = 0; var $1411 = 0, $1412 = 0.0, $1413 = 0, $1414 = 0, $1415 = 0, $1416 = 0, $1417 = 0, $1418 = 0.0, $1419 = 0, $142 = 0, $1420 = 0, $1421 = 0, $1422 = 0, $1423 = 0, $1424 = 0, $1425 = 0, $1426 = 0, $1427 = 0, $1428 = 0, $1429 = 0; var $143 = 0, $1430 = 0, $1431 = 0.0, $1432 = 0, $1433 = 0, $1434 = 0, $1435 = 0, $1436 = 0, $1437 = 0.0, $1438 = 0, $1439 = 0, $144 = 0, $1440 = 0, $1441 = 0, $1442 = 0, $1443 = 0.0, $1444 = 0, $1445 = 0, $1446 = 0, $1447 = 0; var $1448 = 0, $1449 = 0.0, $145 = 0, $1450 = 0, $1451 = 0, $1452 = 0, $1453 = 0, $1454 = 0, $1455 = 0, $1456 = 0, $1457 = 0, $1458 = 0, $1459 = 0, $146 = 0, $1460 = 0, $1461 = 0, $1462 = 0.0, $1463 = 0, $1464 = 0, $1465 = 0; var $1466 = 0, $1467 = 0, $1468 = 0.0, $1469 = 0, $147 = 0.0, $1470 = 0, $1471 = 0, $1472 = 0, $1473 = 0, $1474 = 0.0, $1475 = 0, $1476 = 0, $1477 = 0, $1478 = 0, $1479 = 0, $148 = 0, $1480 = 0.0, $1481 = 0, $1482 = 0, $1483 = 0; var $1484 = 0, $1485 = 0, $1486 = 0, $1487 = 0, $1488 = 0, $1489 = 0, $149 = 0, $1490 = 0, $1491 = 0, $1492 = 0, $1493 = 0.0, $1494 = 0, $1495 = 0, $1496 = 0, $1497 = 0, $1498 = 0, $1499 = 0.0, $15 = 0, $150 = 0, $1500 = 0; var $1501 = 0, $1502 = 0, $1503 = 0, $1504 = 0, $1505 = 0.0, $1506 = 0, $1507 = 0, $1508 = 0, $1509 = 0, $151 = 0, $1510 = 0, $1511 = 0.0, $1512 = 0, $1513 = 0, $1514 = 0, $1515 = 0, $1516 = 0, $1517 = 0, $152 = 0, $153 = 0; var $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0.0, $160 = 0.0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0.0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0; var $172 = 0.0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0.0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0; var $190 = 0, $191 = 0.0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0.0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0.0, $204 = 0, $205 = 0, $206 = 0, $207 = 0; var $208 = 0, $209 = 0.0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0.0, $220 = 0, $221 = 0, $222 = 0.0, $223 = 0, $224 = 0, $225 = 0; var $226 = 0, $227 = 0, $228 = 0.0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0.0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0.0, $241 = 0, $242 = 0, $243 = 0; var $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0.0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0.0, $26 = 0, $260 = 0, $261 = 0; var $262 = 0, $263 = 0, $264 = 0, $265 = 0.0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0.0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0.0; var $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0.0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0.0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0.0, $297 = 0, $298 = 0; var $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0.0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0.0; var $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0.0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0.0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0.0; var $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0.0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0.0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0; var $352 = 0.0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0.0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0.0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0; var $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0.0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0.0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0; var $389 = 0.0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0.0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0; var $406 = 0, $407 = 0, $408 = 0.0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0.0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0.0, $421 = 0, $422 = 0, $423 = 0; var $424 = 0, $425 = 0, $426 = 0.0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0.0, $44 = 0, $440 = 0, $441 = 0; var $442 = 0, $443 = 0, $444 = 0, $445 = 0.0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0.0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0.0, $458 = 0, $459 = 0, $46 = 0; var $460 = 0, $461 = 0, $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0.0, $470 = 0.0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0.0, $477 = 0, $478 = 0; var $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0.0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0.0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0; var $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0.0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0.0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0.0; var $514 = 0, $515 = 0, $516 = 0, $517 = 0, $518 = 0, $519 = 0.0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0.0, $530 = 0, $531 = 0; var $532 = 0, $533 = 0, $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0.0, $547 = 0, $548 = 0, $549 = 0, $55 = 0; var $550 = 0, $551 = 0, $552 = 0.0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0.0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0, $564 = 0.0, $565 = 0, $566 = 0, $567 = 0, $568 = 0; var $569 = 0, $57 = 0, $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0.0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0; var $587 = 0.0, $588 = 0, $589 = 0, $59 = 0.0, $590 = 0, $591 = 0, $592 = 0, $593 = 0.0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0.0, $6 = 0, $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0; var $604 = 0, $605 = 0, $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0, $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0; var $622 = 0, $623 = 0, $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0.0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0.0, $635 = 0, $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0; var $640 = 0.0, $641 = 0, $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0.0, $647 = 0, $648 = 0, $649 = 0, $65 = 0.0, $650 = 0, $651 = 0, $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0; var $659 = 0, $66 = 0, $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0.0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0.0, $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0; var $677 = 0.0, $678 = 0, $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0.0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0; var $695 = 0, $696 = 0, $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0.0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0, $708 = 0.0, $709 = 0, $71 = 0, $710 = 0, $711 = 0; var $712 = 0, $713 = 0, $714 = 0.0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0.0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0; var $730 = 0, $731 = 0, $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0.0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0, $744 = 0, $745 = 0.0, $746 = 0, $747 = 0, $748 = 0; var $749 = 0, $75 = 0, $750 = 0, $751 = 0.0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0.0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0; var $767 = 0, $768 = 0, $769 = 0, $77 = 0, $770 = 0.0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0.0, $777 = 0, $778 = 0, $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0.0, $783 = 0, $784 = 0; var $785 = 0, $786 = 0, $787 = 0, $788 = 0.0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0; var $802 = 0, $803 = 0, $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0.0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0.0, $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0; var $820 = 0, $821 = 0.0, $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0.0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0, $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0; var $839 = 0, $84 = 0, $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0.0, $849 = 0, $85 = 0, $850 = 0, $851 = 0, $852 = 0, $853 = 0, $854 = 0.0, $855 = 0, $856 = 0; var $857 = 0, $858 = 0, $859 = 0, $86 = 0, $860 = 0.0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0.0, $867 = 0, $868 = 0, $869 = 0, $87 = 0, $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0; var $875 = 0, $876 = 0, $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0, $887 = 0.0, $888 = 0, $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0; var $893 = 0.0, $894 = 0, $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0.0, $9 = 0, $90 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0, $904 = 0, $905 = 0.0, $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0; var $910 = 0, $911 = 0, $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0, $922 = 0, $923 = 0, $924 = 0, $925 = 0, $926 = 0.0, $927 = 0, $928 = 0; var $929 = 0, $93 = 0, $930 = 0, $931 = 0, $932 = 0.0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0, $938 = 0.0, $939 = 0, $94 = 0, $940 = 0, $941 = 0, $942 = 0, $943 = 0, $944 = 0.0, $945 = 0, $946 = 0; var $947 = 0, $948 = 0, $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0.0, $958 = 0, $959 = 0, $96 = 0, $960 = 0, $961 = 0, $962 = 0, $963 = 0.0, $964 = 0; var $965 = 0, $966 = 0, $967 = 0, $968 = 0, $969 = 0.0, $97 = 0, $970 = 0, $971 = 0, $972 = 0, $973 = 0, $974 = 0, $975 = 0.0, $976 = 0, $977 = 0, $978 = 0, $979 = 0, $98 = 0.0, $980 = 0, $981 = 0, $982 = 0; var $983 = 0, $984 = 0, $985 = 0, $986 = 0, $987 = 0, $988 = 0.0, $989 = 0, $99 = 0, $990 = 0, $991 = 0, $992 = 0, $993 = 0, $994 = 0.0, $995 = 0, $996 = 0, $997 = 0, $998 = 0, $999 = 0, $hp1_a = 0, $hp1_a10 = 0; var $hp1_a102 = 0, $hp1_a106 = 0, $hp1_a110 = 0, $hp1_a114 = 0, $hp1_a118 = 0, $hp1_a122 = 0, $hp1_a126 = 0, $hp1_a130 = 0, $hp1_a134 = 0, $hp1_a138 = 0, $hp1_a14 = 0, $hp1_a142 = 0, $hp1_a146 = 0, $hp1_a150 = 0, $hp1_a154 = 0, $hp1_a158 = 0, $hp1_a162 = 0, $hp1_a166 = 0, $hp1_a170 = 0, $hp1_a18 = 0; var $hp1_a2 = 0, $hp1_a22 = 0, $hp1_a26 = 0, $hp1_a30 = 0, $hp1_a34 = 0, $hp1_a38 = 0, $hp1_a42 = 0, $hp1_a46 = 0, $hp1_a50 = 0, $hp1_a54 = 0, $hp1_a58 = 0, $hp1_a6 = 0, $hp1_a62 = 0, $hp1_a66 = 0, $hp1_a70 = 0, $hp1_a74 = 0, $hp1_a78 = 0, $hp1_a82 = 0, $hp1_a86 = 0, $hp1_a90 = 0; var $hp1_a94 = 0, $hp1_a98 = 0, $hp2_a = 0, $hp2_a100 = 0, $hp2_a104 = 0, $hp2_a108 = 0, $hp2_a112 = 0, $hp2_a116 = 0, $hp2_a12 = 0, $hp2_a120 = 0, $hp2_a124 = 0, $hp2_a128 = 0, $hp2_a132 = 0, $hp2_a136 = 0, $hp2_a140 = 0, $hp2_a144 = 0, $hp2_a148 = 0, $hp2_a152 = 0, $hp2_a156 = 0, $hp2_a16 = 0; var $hp2_a160 = 0, $hp2_a164 = 0, $hp2_a168 = 0, $hp2_a172 = 0, $hp2_a20 = 0, $hp2_a24 = 0, $hp2_a28 = 0, $hp2_a32 = 0, $hp2_a36 = 0, $hp2_a4 = 0, $hp2_a40 = 0, $hp2_a44 = 0, $hp2_a48 = 0, $hp2_a52 = 0, $hp2_a56 = 0, $hp2_a60 = 0, $hp2_a64 = 0, $hp2_a68 = 0, $hp2_a72 = 0, $hp2_a76 = 0; var $hp2_a8 = 0, $hp2_a80 = 0, $hp2_a84 = 0, $hp2_a88 = 0, $hp2_a92 = 0, $hp2_a96 = 0, $i = 0, $lp1_a = 0, $lp1_a1 = 0, $lp1_a101 = 0, $lp1_a105 = 0, $lp1_a109 = 0, $lp1_a113 = 0, $lp1_a117 = 0, $lp1_a121 = 0, $lp1_a125 = 0, $lp1_a129 = 0, $lp1_a13 = 0, $lp1_a133 = 0, $lp1_a137 = 0; var $lp1_a141 = 0, $lp1_a145 = 0, $lp1_a149 = 0, $lp1_a153 = 0, $lp1_a157 = 0, $lp1_a161 = 0, $lp1_a165 = 0, $lp1_a169 = 0, $lp1_a17 = 0, $lp1_a21 = 0, $lp1_a25 = 0, $lp1_a29 = 0, $lp1_a33 = 0, $lp1_a37 = 0, $lp1_a41 = 0, $lp1_a45 = 0, $lp1_a49 = 0, $lp1_a5 = 0, $lp1_a53 = 0, $lp1_a57 = 0; var $lp1_a61 = 0, $lp1_a65 = 0, $lp1_a69 = 0, $lp1_a73 = 0, $lp1_a77 = 0, $lp1_a81 = 0, $lp1_a85 = 0, $lp1_a89 = 0, $lp1_a9 = 0, $lp1_a93 = 0, $lp1_a97 = 0, $lp2_a = 0, $lp2_a103 = 0, $lp2_a107 = 0, $lp2_a11 = 0, $lp2_a111 = 0, $lp2_a115 = 0, $lp2_a119 = 0, $lp2_a123 = 0, $lp2_a127 = 0; var $lp2_a131 = 0, $lp2_a135 = 0, $lp2_a139 = 0, $lp2_a143 = 0, $lp2_a147 = 0, $lp2_a15 = 0, $lp2_a151 = 0, $lp2_a155 = 0, $lp2_a159 = 0, $lp2_a163 = 0, $lp2_a167 = 0, $lp2_a171 = 0, $lp2_a19 = 0, $lp2_a23 = 0, $lp2_a27 = 0, $lp2_a3 = 0, $lp2_a31 = 0, $lp2_a35 = 0, $lp2_a39 = 0, $lp2_a43 = 0; var $lp2_a47 = 0, $lp2_a51 = 0, $lp2_a55 = 0, $lp2_a59 = 0, $lp2_a63 = 0, $lp2_a67 = 0, $lp2_a7 = 0, $lp2_a71 = 0, $lp2_a75 = 0, $lp2_a79 = 0, $lp2_a83 = 0, $lp2_a87 = 0, $lp2_a91 = 0, $lp2_a95 = 0, $lp2_a99 = 0, $vararg_buffer = 0, dest = 0, label = 0, sp = 0, src = 0; var stop = 0; sp = STACKTOP; STACKTOP = STACKTOP + 19360|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $vararg_buffer = sp + 19328|0; $lp1_a = sp + 19312|0; $hp1_a = sp + 19296|0; $lp2_a = sp + 19280|0; $hp2_a = sp + 19264|0; $lp1_a1 = sp + 19232|0; $hp1_a2 = sp + 19200|0; $lp2_a3 = sp + 19168|0; $hp2_a4 = sp + 19136|0; $lp1_a5 = sp + 19088|0; $hp1_a6 = sp + 19040|0; $lp2_a7 = sp + 18992|0; $hp2_a8 = sp + 18944|0; $lp1_a9 = sp + 18880|0; $hp1_a10 = sp + 18816|0; $lp2_a11 = sp + 18752|0; $hp2_a12 = sp + 18688|0; $lp1_a13 = sp + 18608|0; $hp1_a14 = sp + 18528|0; $lp2_a15 = sp + 18448|0; $hp2_a16 = sp + 18368|0; $lp1_a17 = sp + 18272|0; $hp1_a18 = sp + 18176|0; $lp2_a19 = sp + 18080|0; $hp2_a20 = sp + 17984|0; $lp1_a21 = sp + 17872|0; $hp1_a22 = sp + 17760|0; $lp2_a23 = sp + 17648|0; $hp2_a24 = sp + 17536|0; $lp1_a25 = sp + 17408|0; $hp1_a26 = sp + 17280|0; $lp2_a27 = sp + 17152|0; $hp2_a28 = sp + 17024|0; $lp1_a29 = sp + 16880|0; $hp1_a30 = sp + 16736|0; $lp2_a31 = sp + 16592|0; $hp2_a32 = sp + 16448|0; $lp1_a33 = sp + 16288|0; $hp1_a34 = sp + 16128|0; $lp2_a35 = sp + 15968|0; $hp2_a36 = sp + 15808|0; $lp1_a37 = sp + 15616|0; $hp1_a38 = sp + 15424|0; $lp2_a39 = sp + 15232|0; $hp2_a40 = sp + 15040|0; $lp1_a41 = sp + 14832|0; $hp1_a42 = sp + 14624|0; $lp2_a43 = sp + 14416|0; $hp2_a44 = sp + 14208|0; $lp1_a45 = sp + 14032|0; $hp1_a46 = sp + 13856|0; $lp2_a47 = sp + 13680|0; $hp2_a48 = sp + 13504|0; $lp1_a49 = sp + 13280|0; $hp1_a50 = sp + 13056|0; $lp2_a51 = sp + 12832|0; $hp2_a52 = sp + 12608|0; $lp1_a53 = sp + 12368|0; $hp1_a54 = sp + 12128|0; $lp2_a55 = sp + 11888|0; $hp2_a56 = sp + 11648|0; $lp1_a57 = sp + 11632|0; $hp1_a58 = sp + 11616|0; $lp2_a59 = sp + 11600|0; $hp2_a60 = sp + 11584|0; $lp1_a61 = sp + 11536|0; $hp1_a62 = sp + 11488|0; $lp2_a63 = sp + 11440|0; $hp2_a64 = sp + 11392|0; $lp1_a65 = sp + 11312|0; $hp1_a66 = sp + 11232|0; $lp2_a67 = sp + 11152|0; $hp2_a68 = sp + 11072|0; $lp1_a69 = sp + 11024|0; $hp1_a70 = sp + 10976|0; $lp2_a71 = sp + 10928|0; $hp2_a72 = sp + 10880|0; $lp1_a73 = sp + 10800|0; $hp1_a74 = sp + 10720|0; $lp2_a75 = sp + 10640|0; $hp2_a76 = sp + 10560|0; $lp1_a77 = sp + 10448|0; $hp1_a78 = sp + 10336|0; $lp2_a79 = sp + 10224|0; $hp2_a80 = sp + 10112|0; $lp1_a81 = sp + 9968|0; $hp1_a82 = sp + 4352|0; $lp2_a83 = sp + 4208|0; $hp2_a84 = sp + 4064|0; $lp1_a85 = sp + 4032|0; $hp1_a86 = sp + 4000|0; $lp2_a87 = sp + 3968|0; $hp2_a88 = sp + 3936|0; $lp1_a89 = sp + 3872|0; $hp1_a90 = sp + 3808|0; $lp2_a91 = sp + 3744|0; $hp2_a92 = sp + 3680|0; $lp1_a93 = sp + 3584|0; $hp1_a94 = sp + 3488|0; $lp2_a95 = sp + 3392|0; $hp2_a96 = sp + 3296|0; $lp1_a97 = sp + 3168|0; $hp1_a98 = sp + 3040|0; $lp2_a99 = sp + 2912|0; $hp2_a100 = sp + 2784|0; $lp1_a101 = sp + 2624|0; $hp1_a102 = sp + 2464|0; $lp2_a103 = sp + 2304|0; $hp2_a104 = sp + 2144|0; $lp1_a105 = sp + 912|0; $hp1_a106 = sp + 832|0; $lp2_a107 = sp + 752|0; $hp2_a108 = sp + 672|0; $lp1_a109 = sp + 576|0; $hp1_a110 = sp + 480|0; $lp2_a111 = sp + 240|0; $hp2_a112 = sp + 144|0; $lp1_a113 = sp; $hp1_a114 = sp + 336|0; $lp2_a115 = sp + 992|0; $hp2_a116 = sp + 1136|0; $lp1_a117 = sp + 1280|0; $hp1_a118 = sp + 1328|0; $lp2_a119 = sp + 1376|0; $hp2_a120 = sp + 1424|0; $lp1_a121 = sp + 1472|0; $hp1_a122 = sp + 1568|0; $lp2_a123 = sp + 1664|0; $hp2_a124 = sp + 1760|0; $lp1_a125 = sp + 1856|0; $hp1_a126 = sp + 2000|0; $lp2_a127 = sp + 4496|0; $hp2_a128 = sp + 4640|0; $lp1_a129 = sp + 4784|0; $hp1_a130 = sp + 4976|0; $lp2_a131 = sp + 5168|0; $hp2_a132 = sp + 5360|0; $lp1_a133 = sp + 5552|0; $hp1_a134 = sp + 5792|0; $lp2_a135 = sp + 6032|0; $hp2_a136 = sp + 6272|0; $lp1_a137 = sp + 6512|0; $hp1_a138 = sp + 6544|0; $lp2_a139 = sp + 6576|0; $hp2_a140 = sp + 6608|0; $lp1_a141 = sp + 6640|0; $hp1_a142 = sp + 6688|0; $lp2_a143 = sp + 6736|0; $hp2_a144 = sp + 6784|0; $lp1_a145 = sp + 6832|0; $hp1_a146 = sp + 6896|0; $lp2_a147 = sp + 6960|0; $hp2_a148 = sp + 7024|0; $lp1_a149 = sp + 7088|0; $hp1_a150 = sp + 7168|0; $lp2_a151 = sp + 7248|0; $hp2_a152 = sp + 7328|0; $lp1_a153 = sp + 7408|0; $hp1_a154 = sp + 7504|0; $lp2_a155 = sp + 7600|0; $hp2_a156 = sp + 7696|0; $lp1_a157 = sp + 7792|0; $hp1_a158 = sp + 7904|0; $lp2_a159 = sp + 8016|0; $hp2_a160 = sp + 8128|0; $lp1_a161 = sp + 8240|0; $hp1_a162 = sp + 8368|0; $lp2_a163 = sp + 8496|0; $hp2_a164 = sp + 8624|0; $lp1_a165 = sp + 8752|0; $hp1_a166 = sp + 8896|0; $lp2_a167 = sp + 9040|0; $hp2_a168 = sp + 9184|0; $lp1_a169 = sp + 9328|0; $hp1_a170 = sp + 9488|0; $lp2_a171 = sp + 9648|0; $hp2_a172 = sp + 9808|0; $1 = $name; $2 = $lp1; $3 = $hp1; $4 = $lp2; $5 = $hp2; $6 = $1; $7 = (_strcmp($6,8)|0); $8 = ($7|0)!=(0); if ($8) { $9 = $1; $10 = (_strcmp($9,16)|0); $11 = ($10|0)!=(0); if ($11) { $40 = $1; $41 = (_strcmp($40,24)|0); $42 = ($41|0)!=(0); if (!($42)) { ;HEAP32[$lp1_a1>>2]=HEAP32[13616>>2]|0;HEAP32[$lp1_a1+4>>2]=HEAP32[13616+4>>2]|0;HEAP32[$lp1_a1+8>>2]=HEAP32[13616+8>>2]|0;HEAP32[$lp1_a1+12>>2]=HEAP32[13616+12>>2]|0;HEAP32[$lp1_a1+16>>2]=HEAP32[13616+16>>2]|0;HEAP32[$lp1_a1+20>>2]=HEAP32[13616+20>>2]|0;HEAP32[$lp1_a1+24>>2]=HEAP32[13616+24>>2]|0;HEAP32[$lp1_a1+28>>2]=HEAP32[13616+28>>2]|0; ;HEAP32[$hp1_a2>>2]=HEAP32[13648>>2]|0;HEAP32[$hp1_a2+4>>2]=HEAP32[13648+4>>2]|0;HEAP32[$hp1_a2+8>>2]=HEAP32[13648+8>>2]|0;HEAP32[$hp1_a2+12>>2]=HEAP32[13648+12>>2]|0;HEAP32[$hp1_a2+16>>2]=HEAP32[13648+16>>2]|0;HEAP32[$hp1_a2+20>>2]=HEAP32[13648+20>>2]|0;HEAP32[$hp1_a2+24>>2]=HEAP32[13648+24>>2]|0;HEAP32[$hp1_a2+28>>2]=HEAP32[13648+28>>2]|0; ;HEAP32[$lp2_a3>>2]=HEAP32[13680>>2]|0;HEAP32[$lp2_a3+4>>2]=HEAP32[13680+4>>2]|0;HEAP32[$lp2_a3+8>>2]=HEAP32[13680+8>>2]|0;HEAP32[$lp2_a3+12>>2]=HEAP32[13680+12>>2]|0;HEAP32[$lp2_a3+16>>2]=HEAP32[13680+16>>2]|0;HEAP32[$lp2_a3+20>>2]=HEAP32[13680+20>>2]|0;HEAP32[$lp2_a3+24>>2]=HEAP32[13680+24>>2]|0;HEAP32[$lp2_a3+28>>2]=HEAP32[13680+28>>2]|0; ;HEAP32[$hp2_a4>>2]=HEAP32[13712>>2]|0;HEAP32[$hp2_a4+4>>2]=HEAP32[13712+4>>2]|0;HEAP32[$hp2_a4+8>>2]=HEAP32[13712+8>>2]|0;HEAP32[$hp2_a4+12>>2]=HEAP32[13712+12>>2]|0;HEAP32[$hp2_a4+16>>2]=HEAP32[13712+16>>2]|0;HEAP32[$hp2_a4+20>>2]=HEAP32[13712+20>>2]|0;HEAP32[$hp2_a4+24>>2]=HEAP32[13712+24>>2]|0;HEAP32[$hp2_a4+28>>2]=HEAP32[13712+28>>2]|0; $i = 0; while(1) { $43 = $i; $44 = ($43|0)<(4); if (!($44)) { break; } $45 = $i; $46 = (($lp1_a1) + ($45<<3)|0); $47 = +HEAPF64[$46>>3]; $48 = $i; $49 = $2; $50 = (($49) + ($48<<3)|0); HEAPF64[$50>>3] = $47; $51 = $i; $52 = (($hp1_a2) + ($51<<3)|0); $53 = +HEAPF64[$52>>3]; $54 = $i; $55 = $3; $56 = (($55) + ($54<<3)|0); HEAPF64[$56>>3] = $53; $57 = $i; $58 = (($lp2_a3) + ($57<<3)|0); $59 = +HEAPF64[$58>>3]; $60 = $i; $61 = $4; $62 = (($61) + ($60<<3)|0); HEAPF64[$62>>3] = $59; $63 = $i; $64 = (($hp2_a4) + ($63<<3)|0); $65 = +HEAPF64[$64>>3]; $66 = $i; $67 = $5; $68 = (($67) + ($66<<3)|0); HEAPF64[$68>>3] = $65; $69 = $i; $70 = (($69) + 1)|0; $i = $70; } $0 = 4; $1517 = $0; STACKTOP = sp;return ($1517|0); } $71 = $1; $72 = (_strcmp($71,32)|0); $73 = ($72|0)!=(0); if (!($73)) { dest=$lp1_a5; stop=dest+48|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); HEAPF64[$lp1_a5>>3] = 0.035226291882100656; $74 = ((($lp1_a5)) + 8|0); HEAPF64[$74>>3] = -0.085441273882241486; $75 = ((($lp1_a5)) + 16|0); HEAPF64[$75>>3] = -0.13501102001039084; $76 = ((($lp1_a5)) + 24|0); HEAPF64[$76>>3] = 0.45987750211933132; $77 = ((($lp1_a5)) + 32|0); HEAPF64[$77>>3] = 0.80689150931333875; $78 = ((($lp1_a5)) + 40|0); HEAPF64[$78>>3] = 0.33267055295095688; dest=$hp1_a6; stop=dest+48|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); HEAPF64[$hp1_a6>>3] = -0.33267055295095688; $79 = ((($hp1_a6)) + 8|0); HEAPF64[$79>>3] = 0.80689150931333875; $80 = ((($hp1_a6)) + 16|0); HEAPF64[$80>>3] = -0.45987750211933132; $81 = ((($hp1_a6)) + 24|0); HEAPF64[$81>>3] = -0.13501102001039084; $82 = ((($hp1_a6)) + 32|0); HEAPF64[$82>>3] = 0.085441273882241486; $83 = ((($hp1_a6)) + 40|0); HEAPF64[$83>>3] = 0.035226291882100656; dest=$lp2_a7; stop=dest+48|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); HEAPF64[$lp2_a7>>3] = 0.33267055295095688; $84 = ((($lp2_a7)) + 8|0); HEAPF64[$84>>3] = 0.80689150931333875; $85 = ((($lp2_a7)) + 16|0); HEAPF64[$85>>3] = 0.45987750211933132; $86 = ((($lp2_a7)) + 24|0); HEAPF64[$86>>3] = -0.13501102001039084; $87 = ((($lp2_a7)) + 32|0); HEAPF64[$87>>3] = -0.085441273882241486; $88 = ((($lp2_a7)) + 40|0); HEAPF64[$88>>3] = 0.035226291882100656; dest=$hp2_a8; stop=dest+48|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); HEAPF64[$hp2_a8>>3] = 0.035226291882100656; $89 = ((($hp2_a8)) + 8|0); HEAPF64[$89>>3] = 0.085441273882241486; $90 = ((($hp2_a8)) + 16|0); HEAPF64[$90>>3] = -0.13501102001039084; $91 = ((($hp2_a8)) + 24|0); HEAPF64[$91>>3] = -0.45987750211933132; $92 = ((($hp2_a8)) + 32|0); HEAPF64[$92>>3] = 0.80689150931333875; $93 = ((($hp2_a8)) + 40|0); HEAPF64[$93>>3] = -0.33267055295095688; $i = 0; while(1) { $94 = $i; $95 = ($94|0)<(6); if (!($95)) { break; } $96 = $i; $97 = (($lp1_a5) + ($96<<3)|0); $98 = +HEAPF64[$97>>3]; $99 = $i; $100 = $2; $101 = (($100) + ($99<<3)|0); HEAPF64[$101>>3] = $98; $102 = $i; $103 = (($hp1_a6) + ($102<<3)|0); $104 = +HEAPF64[$103>>3]; $105 = $i; $106 = $3; $107 = (($106) + ($105<<3)|0); HEAPF64[$107>>3] = $104; $108 = $i; $109 = (($lp2_a7) + ($108<<3)|0); $110 = +HEAPF64[$109>>3]; $111 = $i; $112 = $4; $113 = (($112) + ($111<<3)|0); HEAPF64[$113>>3] = $110; $114 = $i; $115 = (($hp2_a8) + ($114<<3)|0); $116 = +HEAPF64[$115>>3]; $117 = $i; $118 = $5; $119 = (($118) + ($117<<3)|0); HEAPF64[$119>>3] = $116; $120 = $i; $121 = (($120) + 1)|0; $i = $121; } $0 = 6; $1517 = $0; STACKTOP = sp;return ($1517|0); } $122 = $1; $123 = (_strcmp($122,40)|0); $124 = ($123|0)!=(0); if (!($124)) { dest=$lp1_a9; src=448; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$hp1_a10; src=512; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$lp2_a11; src=576; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$hp2_a12; src=640; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); $i = 0; while(1) { $125 = $i; $126 = ($125|0)<(8); if (!($126)) { break; } $127 = $i; $128 = (($lp1_a9) + ($127<<3)|0); $129 = +HEAPF64[$128>>3]; $130 = $i; $131 = $2; $132 = (($131) + ($130<<3)|0); HEAPF64[$132>>3] = $129; $133 = $i; $134 = (($hp1_a10) + ($133<<3)|0); $135 = +HEAPF64[$134>>3]; $136 = $i; $137 = $3; $138 = (($137) + ($136<<3)|0); HEAPF64[$138>>3] = $135; $139 = $i; $140 = (($lp2_a11) + ($139<<3)|0); $141 = +HEAPF64[$140>>3]; $142 = $i; $143 = $4; $144 = (($143) + ($142<<3)|0); HEAPF64[$144>>3] = $141; $145 = $i; $146 = (($hp2_a12) + ($145<<3)|0); $147 = +HEAPF64[$146>>3]; $148 = $i; $149 = $5; $150 = (($149) + ($148<<3)|0); HEAPF64[$150>>3] = $147; $151 = $i; $152 = (($151) + 1)|0; $i = $152; } $0 = 8; $1517 = $0; STACKTOP = sp;return ($1517|0); } $153 = $1; $154 = (_strcmp($153,48)|0); $155 = ($154|0)!=(0); if (!($155)) { dest=$lp1_a13; src=704; stop=dest+80|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$hp1_a14; src=784; stop=dest+80|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$lp2_a15; src=864; stop=dest+80|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$hp2_a16; src=944; stop=dest+80|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); $i = 0; while(1) { $156 = $i; $157 = ($156|0)<(10); if (!($157)) { break; } $158 = $i; $159 = (($lp1_a13) + ($158<<3)|0); $160 = +HEAPF64[$159>>3]; $161 = $i; $162 = $2; $163 = (($162) + ($161<<3)|0); HEAPF64[$163>>3] = $160; $164 = $i; $165 = (($hp1_a14) + ($164<<3)|0); $166 = +HEAPF64[$165>>3]; $167 = $i; $168 = $3; $169 = (($168) + ($167<<3)|0); HEAPF64[$169>>3] = $166; $170 = $i; $171 = (($lp2_a15) + ($170<<3)|0); $172 = +HEAPF64[$171>>3]; $173 = $i; $174 = $4; $175 = (($174) + ($173<<3)|0); HEAPF64[$175>>3] = $172; $176 = $i; $177 = (($hp2_a16) + ($176<<3)|0); $178 = +HEAPF64[$177>>3]; $179 = $i; $180 = $5; $181 = (($180) + ($179<<3)|0); HEAPF64[$181>>3] = $178; $182 = $i; $183 = (($182) + 1)|0; $i = $183; } $0 = 10; $1517 = $0; STACKTOP = sp;return ($1517|0); } $184 = $1; $185 = (_strcmp($184,56)|0); $186 = ($185|0)!=(0); if (!($186)) { dest=$lp1_a17; src=1024; stop=dest+96|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$hp1_a18; src=1120; stop=dest+96|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$lp2_a19; src=1216; stop=dest+96|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$hp2_a20; src=1312; stop=dest+96|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); $i = 0; while(1) { $187 = $i; $188 = ($187|0)<(12); if (!($188)) { break; } $189 = $i; $190 = (($lp1_a17) + ($189<<3)|0); $191 = +HEAPF64[$190>>3]; $192 = $i; $193 = $2; $194 = (($193) + ($192<<3)|0); HEAPF64[$194>>3] = $191; $195 = $i; $196 = (($hp1_a18) + ($195<<3)|0); $197 = +HEAPF64[$196>>3]; $198 = $i; $199 = $3; $200 = (($199) + ($198<<3)|0); HEAPF64[$200>>3] = $197; $201 = $i; $202 = (($lp2_a19) + ($201<<3)|0); $203 = +HEAPF64[$202>>3]; $204 = $i; $205 = $4; $206 = (($205) + ($204<<3)|0); HEAPF64[$206>>3] = $203; $207 = $i; $208 = (($hp2_a20) + ($207<<3)|0); $209 = +HEAPF64[$208>>3]; $210 = $i; $211 = $5; $212 = (($211) + ($210<<3)|0); HEAPF64[$212>>3] = $209; $213 = $i; $214 = (($213) + 1)|0; $i = $214; } $0 = 12; $1517 = $0; STACKTOP = sp;return ($1517|0); } $215 = $1; $216 = (_strcmp($215,64)|0); $217 = ($216|0)!=(0); if (!($217)) { dest=$lp1_a21; src=1408; stop=dest+112|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$hp1_a22; src=1520; stop=dest+112|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$lp2_a23; src=1632; stop=dest+112|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$hp2_a24; src=1744; stop=dest+112|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); $i = 0; while(1) { $218 = $i; $219 = ($218|0)<(14); if (!($219)) { break; } $220 = $i; $221 = (($lp1_a21) + ($220<<3)|0); $222 = +HEAPF64[$221>>3]; $223 = $i; $224 = $2; $225 = (($224) + ($223<<3)|0); HEAPF64[$225>>3] = $222; $226 = $i; $227 = (($hp1_a22) + ($226<<3)|0); $228 = +HEAPF64[$227>>3]; $229 = $i; $230 = $3; $231 = (($230) + ($229<<3)|0); HEAPF64[$231>>3] = $228; $232 = $i; $233 = (($lp2_a23) + ($232<<3)|0); $234 = +HEAPF64[$233>>3]; $235 = $i; $236 = $4; $237 = (($236) + ($235<<3)|0); HEAPF64[$237>>3] = $234; $238 = $i; $239 = (($hp2_a24) + ($238<<3)|0); $240 = +HEAPF64[$239>>3]; $241 = $i; $242 = $5; $243 = (($242) + ($241<<3)|0); HEAPF64[$243>>3] = $240; $244 = $i; $245 = (($244) + 1)|0; $i = $245; } $0 = 14; $1517 = $0; STACKTOP = sp;return ($1517|0); } $246 = $1; $247 = (_strcmp($246,72)|0); $248 = ($247|0)!=(0); if (!($248)) { dest=$lp1_a25; src=1856; stop=dest+128|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$hp1_a26; src=1984; stop=dest+128|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$lp2_a27; src=2112; stop=dest+128|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$hp2_a28; src=2240; stop=dest+128|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); $i = 0; while(1) { $249 = $i; $250 = ($249|0)<(16); if (!($250)) { break; } $251 = $i; $252 = (($lp1_a25) + ($251<<3)|0); $253 = +HEAPF64[$252>>3]; $254 = $i; $255 = $2; $256 = (($255) + ($254<<3)|0); HEAPF64[$256>>3] = $253; $257 = $i; $258 = (($hp1_a26) + ($257<<3)|0); $259 = +HEAPF64[$258>>3]; $260 = $i; $261 = $3; $262 = (($261) + ($260<<3)|0); HEAPF64[$262>>3] = $259; $263 = $i; $264 = (($lp2_a27) + ($263<<3)|0); $265 = +HEAPF64[$264>>3]; $266 = $i; $267 = $4; $268 = (($267) + ($266<<3)|0); HEAPF64[$268>>3] = $265; $269 = $i; $270 = (($hp2_a28) + ($269<<3)|0); $271 = +HEAPF64[$270>>3]; $272 = $i; $273 = $5; $274 = (($273) + ($272<<3)|0); HEAPF64[$274>>3] = $271; $275 = $i; $276 = (($275) + 1)|0; $i = $276; } $0 = 16; $1517 = $0; STACKTOP = sp;return ($1517|0); } $277 = $1; $278 = (_strcmp($277,80)|0); $279 = ($278|0)!=(0); if (!($279)) { _memcpy(($lp1_a29|0),(2368|0),144)|0; _memcpy(($hp1_a30|0),(2512|0),144)|0; _memcpy(($lp2_a31|0),(2656|0),144)|0; _memcpy(($hp2_a32|0),(2800|0),144)|0; $i = 0; while(1) { $280 = $i; $281 = ($280|0)<(18); if (!($281)) { break; } $282 = $i; $283 = (($lp1_a29) + ($282<<3)|0); $284 = +HEAPF64[$283>>3]; $285 = $i; $286 = $2; $287 = (($286) + ($285<<3)|0); HEAPF64[$287>>3] = $284; $288 = $i; $289 = (($hp1_a30) + ($288<<3)|0); $290 = +HEAPF64[$289>>3]; $291 = $i; $292 = $3; $293 = (($292) + ($291<<3)|0); HEAPF64[$293>>3] = $290; $294 = $i; $295 = (($lp2_a31) + ($294<<3)|0); $296 = +HEAPF64[$295>>3]; $297 = $i; $298 = $4; $299 = (($298) + ($297<<3)|0); HEAPF64[$299>>3] = $296; $300 = $i; $301 = (($hp2_a32) + ($300<<3)|0); $302 = +HEAPF64[$301>>3]; $303 = $i; $304 = $5; $305 = (($304) + ($303<<3)|0); HEAPF64[$305>>3] = $302; $306 = $i; $307 = (($306) + 1)|0; $i = $307; } $0 = 18; $1517 = $0; STACKTOP = sp;return ($1517|0); } $308 = $1; $309 = (_strcmp($308,88)|0); $310 = ($309|0)!=(0); if (!($310)) { _memcpy(($lp1_a33|0),(2944|0),160)|0; _memcpy(($hp1_a34|0),(3104|0),160)|0; _memcpy(($lp2_a35|0),(3264|0),160)|0; _memcpy(($hp2_a36|0),(3424|0),160)|0; $i = 0; while(1) { $311 = $i; $312 = ($311|0)<(20); if (!($312)) { break; } $313 = $i; $314 = (($lp1_a33) + ($313<<3)|0); $315 = +HEAPF64[$314>>3]; $316 = $i; $317 = $2; $318 = (($317) + ($316<<3)|0); HEAPF64[$318>>3] = $315; $319 = $i; $320 = (($hp1_a34) + ($319<<3)|0); $321 = +HEAPF64[$320>>3]; $322 = $i; $323 = $3; $324 = (($323) + ($322<<3)|0); HEAPF64[$324>>3] = $321; $325 = $i; $326 = (($lp2_a35) + ($325<<3)|0); $327 = +HEAPF64[$326>>3]; $328 = $i; $329 = $4; $330 = (($329) + ($328<<3)|0); HEAPF64[$330>>3] = $327; $331 = $i; $332 = (($hp2_a36) + ($331<<3)|0); $333 = +HEAPF64[$332>>3]; $334 = $i; $335 = $5; $336 = (($335) + ($334<<3)|0); HEAPF64[$336>>3] = $333; $337 = $i; $338 = (($337) + 1)|0; $i = $338; } $0 = 20; $1517 = $0; STACKTOP = sp;return ($1517|0); } $339 = $1; $340 = (_strcmp($339,96)|0); $341 = ($340|0)!=(0); if (!($341)) { _memcpy(($lp1_a37|0),(3584|0),192)|0; _memcpy(($hp1_a38|0),(3776|0),192)|0; _memcpy(($lp2_a39|0),(3968|0),192)|0; _memcpy(($hp2_a40|0),(4160|0),192)|0; $i = 0; while(1) { $342 = $i; $343 = ($342|0)<(24); if (!($343)) { break; } $344 = $i; $345 = (($lp1_a37) + ($344<<3)|0); $346 = +HEAPF64[$345>>3]; $347 = $i; $348 = $2; $349 = (($348) + ($347<<3)|0); HEAPF64[$349>>3] = $346; $350 = $i; $351 = (($hp1_a38) + ($350<<3)|0); $352 = +HEAPF64[$351>>3]; $353 = $i; $354 = $3; $355 = (($354) + ($353<<3)|0); HEAPF64[$355>>3] = $352; $356 = $i; $357 = (($lp2_a39) + ($356<<3)|0); $358 = +HEAPF64[$357>>3]; $359 = $i; $360 = $4; $361 = (($360) + ($359<<3)|0); HEAPF64[$361>>3] = $358; $362 = $i; $363 = (($hp2_a40) + ($362<<3)|0); $364 = +HEAPF64[$363>>3]; $365 = $i; $366 = $5; $367 = (($366) + ($365<<3)|0); HEAPF64[$367>>3] = $364; $368 = $i; $369 = (($368) + 1)|0; $i = $369; } $0 = 24; $1517 = $0; STACKTOP = sp;return ($1517|0); } $370 = $1; $371 = (_strcmp($370,104)|0); $372 = ($371|0)!=(0); if (!($372)) { _memcpy(($lp1_a41|0),(4352|0),208)|0; _memcpy(($hp1_a42|0),(4560|0),208)|0; _memcpy(($lp2_a43|0),(4768|0),208)|0; _memcpy(($hp2_a44|0),(4976|0),208)|0; $i = 0; while(1) { $373 = $i; $374 = ($373|0)<(26); if (!($374)) { break; } $375 = $i; $376 = (($lp1_a41) + ($375<<3)|0); $377 = +HEAPF64[$376>>3]; $378 = $i; $379 = $2; $380 = (($379) + ($378<<3)|0); HEAPF64[$380>>3] = $377; $381 = $i; $382 = (($hp1_a42) + ($381<<3)|0); $383 = +HEAPF64[$382>>3]; $384 = $i; $385 = $3; $386 = (($385) + ($384<<3)|0); HEAPF64[$386>>3] = $383; $387 = $i; $388 = (($lp2_a43) + ($387<<3)|0); $389 = +HEAPF64[$388>>3]; $390 = $i; $391 = $4; $392 = (($391) + ($390<<3)|0); HEAPF64[$392>>3] = $389; $393 = $i; $394 = (($hp2_a44) + ($393<<3)|0); $395 = +HEAPF64[$394>>3]; $396 = $i; $397 = $5; $398 = (($397) + ($396<<3)|0); HEAPF64[$398>>3] = $395; $399 = $i; $400 = (($399) + 1)|0; $i = $400; } $0 = 26; $1517 = $0; STACKTOP = sp;return ($1517|0); } $401 = $1; $402 = (_strcmp($401,112)|0); $403 = ($402|0)!=(0); if (!($403)) { _memcpy(($lp1_a45|0),(5184|0),176)|0; _memcpy(($hp1_a46|0),(5360|0),176)|0; _memcpy(($lp2_a47|0),(5536|0),176)|0; _memcpy(($hp2_a48|0),(5712|0),176)|0; $i = 0; while(1) { $404 = $i; $405 = ($404|0)<(22); if (!($405)) { break; } $406 = $i; $407 = (($lp1_a45) + ($406<<3)|0); $408 = +HEAPF64[$407>>3]; $409 = $i; $410 = $2; $411 = (($410) + ($409<<3)|0); HEAPF64[$411>>3] = $408; $412 = $i; $413 = (($hp1_a46) + ($412<<3)|0); $414 = +HEAPF64[$413>>3]; $415 = $i; $416 = $3; $417 = (($416) + ($415<<3)|0); HEAPF64[$417>>3] = $414; $418 = $i; $419 = (($lp2_a47) + ($418<<3)|0); $420 = +HEAPF64[$419>>3]; $421 = $i; $422 = $4; $423 = (($422) + ($421<<3)|0); HEAPF64[$423>>3] = $420; $424 = $i; $425 = (($hp2_a48) + ($424<<3)|0); $426 = +HEAPF64[$425>>3]; $427 = $i; $428 = $5; $429 = (($428) + ($427<<3)|0); HEAPF64[$429>>3] = $426; $430 = $i; $431 = (($430) + 1)|0; $i = $431; } $0 = 22; $1517 = $0; STACKTOP = sp;return ($1517|0); } $432 = $1; $433 = (_strcmp($432,120)|0); $434 = ($433|0)!=(0); if (!($434)) { _memcpy(($lp1_a49|0),(5888|0),224)|0; _memcpy(($hp1_a50|0),(6112|0),224)|0; _memcpy(($lp2_a51|0),(6336|0),224)|0; _memcpy(($hp2_a52|0),(6560|0),224)|0; $i = 0; while(1) { $435 = $i; $436 = ($435|0)<(28); if (!($436)) { break; } $437 = $i; $438 = (($lp1_a49) + ($437<<3)|0); $439 = +HEAPF64[$438>>3]; $440 = $i; $441 = $2; $442 = (($441) + ($440<<3)|0); HEAPF64[$442>>3] = $439; $443 = $i; $444 = (($hp1_a50) + ($443<<3)|0); $445 = +HEAPF64[$444>>3]; $446 = $i; $447 = $3; $448 = (($447) + ($446<<3)|0); HEAPF64[$448>>3] = $445; $449 = $i; $450 = (($lp2_a51) + ($449<<3)|0); $451 = +HEAPF64[$450>>3]; $452 = $i; $453 = $4; $454 = (($453) + ($452<<3)|0); HEAPF64[$454>>3] = $451; $455 = $i; $456 = (($hp2_a52) + ($455<<3)|0); $457 = +HEAPF64[$456>>3]; $458 = $i; $459 = $5; $460 = (($459) + ($458<<3)|0); HEAPF64[$460>>3] = $457; $461 = $i; $462 = (($461) + 1)|0; $i = $462; } $0 = 28; $1517 = $0; STACKTOP = sp;return ($1517|0); } $463 = $1; $464 = (_strcmp($463,128)|0); $465 = ($464|0)!=(0); if (!($465)) { _memcpy(($lp1_a53|0),(6784|0),240)|0; _memcpy(($hp1_a54|0),(7024|0),240)|0; _memcpy(($lp2_a55|0),(7264|0),240)|0; _memcpy(($hp2_a56|0),(7504|0),240)|0; $i = 0; while(1) { $466 = $i; $467 = ($466|0)<(30); if (!($467)) { break; } $468 = $i; $469 = (($lp1_a53) + ($468<<3)|0); $470 = +HEAPF64[$469>>3]; $471 = $i; $472 = $2; $473 = (($472) + ($471<<3)|0); HEAPF64[$473>>3] = $470; $474 = $i; $475 = (($hp1_a54) + ($474<<3)|0); $476 = +HEAPF64[$475>>3]; $477 = $i; $478 = $3; $479 = (($478) + ($477<<3)|0); HEAPF64[$479>>3] = $476; $480 = $i; $481 = (($lp2_a55) + ($480<<3)|0); $482 = +HEAPF64[$481>>3]; $483 = $i; $484 = $4; $485 = (($484) + ($483<<3)|0); HEAPF64[$485>>3] = $482; $486 = $i; $487 = (($hp2_a56) + ($486<<3)|0); $488 = +HEAPF64[$487>>3]; $489 = $i; $490 = $5; $491 = (($490) + ($489<<3)|0); HEAPF64[$491>>3] = $488; $492 = $i; $493 = (($492) + 1)|0; $i = $493; } $0 = 30; $1517 = $0; STACKTOP = sp;return ($1517|0); } $494 = $1; $495 = (_strcmp($494,136)|0); $496 = ($495|0)!=(0); if (!($496)) { ;HEAP32[$lp1_a57>>2]=HEAP32[7760>>2]|0;HEAP32[$lp1_a57+4>>2]=HEAP32[7760+4>>2]|0;HEAP32[$lp1_a57+8>>2]=HEAP32[7760+8>>2]|0;HEAP32[$lp1_a57+12>>2]=HEAP32[7760+12>>2]|0; ;HEAP32[$hp1_a58>>2]=HEAP32[7744>>2]|0;HEAP32[$hp1_a58+4>>2]=HEAP32[7744+4>>2]|0;HEAP32[$hp1_a58+8>>2]=HEAP32[7744+8>>2]|0;HEAP32[$hp1_a58+12>>2]=HEAP32[7744+12>>2]|0; ;HEAP32[$lp2_a59>>2]=HEAP32[7760>>2]|0;HEAP32[$lp2_a59+4>>2]=HEAP32[7760+4>>2]|0;HEAP32[$lp2_a59+8>>2]=HEAP32[7760+8>>2]|0;HEAP32[$lp2_a59+12>>2]=HEAP32[7760+12>>2]|0; ;HEAP32[$hp2_a60>>2]=HEAP32[7776>>2]|0;HEAP32[$hp2_a60+4>>2]=HEAP32[7776+4>>2]|0;HEAP32[$hp2_a60+8>>2]=HEAP32[7776+8>>2]|0;HEAP32[$hp2_a60+12>>2]=HEAP32[7776+12>>2]|0; $i = 0; while(1) { $497 = $i; $498 = ($497|0)<(2); if (!($498)) { break; } $499 = $i; $500 = (($lp1_a57) + ($499<<3)|0); $501 = +HEAPF64[$500>>3]; $502 = $i; $503 = $2; $504 = (($503) + ($502<<3)|0); HEAPF64[$504>>3] = $501; $505 = $i; $506 = (($hp1_a58) + ($505<<3)|0); $507 = +HEAPF64[$506>>3]; $508 = $i; $509 = $3; $510 = (($509) + ($508<<3)|0); HEAPF64[$510>>3] = $507; $511 = $i; $512 = (($lp2_a59) + ($511<<3)|0); $513 = +HEAPF64[$512>>3]; $514 = $i; $515 = $4; $516 = (($515) + ($514<<3)|0); HEAPF64[$516>>3] = $513; $517 = $i; $518 = (($hp2_a60) + ($517<<3)|0); $519 = +HEAPF64[$518>>3]; $520 = $i; $521 = $5; $522 = (($521) + ($520<<3)|0); HEAPF64[$522>>3] = $519; $523 = $i; $524 = (($523) + 1)|0; $i = $524; } $0 = 2; $1517 = $0; STACKTOP = sp;return ($1517|0); } $525 = $1; $526 = (_strcmp($525,144)|0); $527 = ($526|0)!=(0); if (!($527)) { dest=$lp1_a61; stop=dest+48|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); HEAPF64[$lp1_a61>>3] = -0.088388347648318447; $528 = ((($lp1_a61)) + 8|0); HEAPF64[$528>>3] = 0.088388347648318447; $529 = ((($lp1_a61)) + 16|0); HEAPF64[$529>>3] = 0.70710678118654757; $530 = ((($lp1_a61)) + 24|0); HEAPF64[$530>>3] = 0.70710678118654757; $531 = ((($lp1_a61)) + 32|0); HEAPF64[$531>>3] = 0.088388347648318447; $532 = ((($lp1_a61)) + 40|0); HEAPF64[$532>>3] = -0.088388347648318447; dest=$hp1_a62; stop=dest+48|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); $533 = ((($hp1_a62)) + 16|0); HEAPF64[$533>>3] = -0.70710678118654757; $534 = ((($hp1_a62)) + 24|0); HEAPF64[$534>>3] = 0.70710678118654757; dest=$lp2_a63; stop=dest+48|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); $535 = ((($lp2_a63)) + 16|0); HEAPF64[$535>>3] = 0.70710678118654757; $536 = ((($lp2_a63)) + 24|0); HEAPF64[$536>>3] = 0.70710678118654757; dest=$hp2_a64; stop=dest+48|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); HEAPF64[$hp2_a64>>3] = -0.088388347648318447; $537 = ((($hp2_a64)) + 8|0); HEAPF64[$537>>3] = -0.088388347648318447; $538 = ((($hp2_a64)) + 16|0); HEAPF64[$538>>3] = 0.70710678118654757; $539 = ((($hp2_a64)) + 24|0); HEAPF64[$539>>3] = -0.70710678118654757; $540 = ((($hp2_a64)) + 32|0); HEAPF64[$540>>3] = 0.088388347648318447; $541 = ((($hp2_a64)) + 40|0); HEAPF64[$541>>3] = 0.088388347648318447; $i = 0; while(1) { $542 = $i; $543 = ($542|0)<(6); if (!($543)) { break; } $544 = $i; $545 = (($lp1_a61) + ($544<<3)|0); $546 = +HEAPF64[$545>>3]; $547 = $i; $548 = $2; $549 = (($548) + ($547<<3)|0); HEAPF64[$549>>3] = $546; $550 = $i; $551 = (($hp1_a62) + ($550<<3)|0); $552 = +HEAPF64[$551>>3]; $553 = $i; $554 = $3; $555 = (($554) + ($553<<3)|0); HEAPF64[$555>>3] = $552; $556 = $i; $557 = (($lp2_a63) + ($556<<3)|0); $558 = +HEAPF64[$557>>3]; $559 = $i; $560 = $4; $561 = (($560) + ($559<<3)|0); HEAPF64[$561>>3] = $558; $562 = $i; $563 = (($hp2_a64) + ($562<<3)|0); $564 = +HEAPF64[$563>>3]; $565 = $i; $566 = $5; $567 = (($566) + ($565<<3)|0); HEAPF64[$567>>3] = $564; $568 = $i; $569 = (($568) + 1)|0; $i = $569; } $0 = 6; $1517 = $0; STACKTOP = sp;return ($1517|0); } $570 = $1; $571 = (_strcmp($570,152)|0); $572 = ($571|0)!=(0); if (!($572)) { dest=$lp1_a65; src=7792; stop=dest+80|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$hp1_a66; stop=dest+80|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); $573 = ((($hp1_a66)) + 32|0); HEAPF64[$573>>3] = -0.70710678118654757; $574 = ((($hp1_a66)) + 40|0); HEAPF64[$574>>3] = 0.70710678118654757; dest=$lp2_a67; stop=dest+80|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); $575 = ((($lp2_a67)) + 32|0); HEAPF64[$575>>3] = 0.70710678118654757; $576 = ((($lp2_a67)) + 40|0); HEAPF64[$576>>3] = 0.70710678118654757; dest=$hp2_a68; src=7872; stop=dest+80|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); $i = 0; while(1) { $577 = $i; $578 = ($577|0)<(10); if (!($578)) { break; } $579 = $i; $580 = (($lp1_a65) + ($579<<3)|0); $581 = +HEAPF64[$580>>3]; $582 = $i; $583 = $2; $584 = (($583) + ($582<<3)|0); HEAPF64[$584>>3] = $581; $585 = $i; $586 = (($hp1_a66) + ($585<<3)|0); $587 = +HEAPF64[$586>>3]; $588 = $i; $589 = $3; $590 = (($589) + ($588<<3)|0); HEAPF64[$590>>3] = $587; $591 = $i; $592 = (($lp2_a67) + ($591<<3)|0); $593 = +HEAPF64[$592>>3]; $594 = $i; $595 = $4; $596 = (($595) + ($594<<3)|0); HEAPF64[$596>>3] = $593; $597 = $i; $598 = (($hp2_a68) + ($597<<3)|0); $599 = +HEAPF64[$598>>3]; $600 = $i; $601 = $5; $602 = (($601) + ($600<<3)|0); HEAPF64[$602>>3] = $599; $603 = $i; $604 = (($603) + 1)|0; $i = $604; } $0 = 10; $1517 = $0; STACKTOP = sp;return ($1517|0); } $605 = $1; $606 = (_strcmp($605,160)|0); $607 = ($606|0)!=(0); if (!($607)) { dest=$lp1_a69; stop=dest+48|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); $608 = ((($lp1_a69)) + 8|0); HEAPF64[$608>>3] = -0.17677669529663689; $609 = ((($lp1_a69)) + 16|0); HEAPF64[$609>>3] = 0.35355339059327379; $610 = ((($lp1_a69)) + 24|0); HEAPF64[$610>>3] = 1.0606601717798214; $611 = ((($lp1_a69)) + 32|0); HEAPF64[$611>>3] = 0.35355339059327379; $612 = ((($lp1_a69)) + 40|0); HEAPF64[$612>>3] = -0.17677669529663689; dest=$hp1_a70; stop=dest+48|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); $613 = ((($hp1_a70)) + 8|0); HEAPF64[$613>>3] = 0.35355339059327379; $614 = ((($hp1_a70)) + 16|0); HEAPF64[$614>>3] = -0.70710678118654757; $615 = ((($hp1_a70)) + 24|0); HEAPF64[$615>>3] = 0.35355339059327379; dest=$lp2_a71; stop=dest+48|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); $616 = ((($lp2_a71)) + 8|0); HEAPF64[$616>>3] = 0.35355339059327379; $617 = ((($lp2_a71)) + 16|0); HEAPF64[$617>>3] = 0.70710678118654757; $618 = ((($lp2_a71)) + 24|0); HEAPF64[$618>>3] = 0.35355339059327379; dest=$hp2_a72; stop=dest+48|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); $619 = ((($hp2_a72)) + 8|0); HEAPF64[$619>>3] = 0.17677669529663689; $620 = ((($hp2_a72)) + 16|0); HEAPF64[$620>>3] = 0.35355339059327379; $621 = ((($hp2_a72)) + 24|0); HEAPF64[$621>>3] = -1.0606601717798214; $622 = ((($hp2_a72)) + 32|0); HEAPF64[$622>>3] = 0.35355339059327379; $623 = ((($hp2_a72)) + 40|0); HEAPF64[$623>>3] = 0.17677669529663689; $i = 0; while(1) { $624 = $i; $625 = ($624|0)<(6); if (!($625)) { break; } $626 = $i; $627 = (($lp1_a69) + ($626<<3)|0); $628 = +HEAPF64[$627>>3]; $629 = $i; $630 = $2; $631 = (($630) + ($629<<3)|0); HEAPF64[$631>>3] = $628; $632 = $i; $633 = (($hp1_a70) + ($632<<3)|0); $634 = +HEAPF64[$633>>3]; $635 = $i; $636 = $3; $637 = (($636) + ($635<<3)|0); HEAPF64[$637>>3] = $634; $638 = $i; $639 = (($lp2_a71) + ($638<<3)|0); $640 = +HEAPF64[$639>>3]; $641 = $i; $642 = $4; $643 = (($642) + ($641<<3)|0); HEAPF64[$643>>3] = $640; $644 = $i; $645 = (($hp2_a72) + ($644<<3)|0); $646 = +HEAPF64[$645>>3]; $647 = $i; $648 = $5; $649 = (($648) + ($647<<3)|0); HEAPF64[$649>>3] = $646; $650 = $i; $651 = (($650) + 1)|0; $i = $651; } $0 = 6; $1517 = $0; STACKTOP = sp;return ($1517|0); } $652 = $1; $653 = (_strcmp($652,168)|0); $654 = ($653|0)!=(0); if (!($654)) { dest=$lp1_a73; src=7952; stop=dest+80|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$hp1_a74; stop=dest+80|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); $655 = ((($hp1_a74)) + 24|0); HEAPF64[$655>>3] = 0.35355339059327379; $656 = ((($hp1_a74)) + 32|0); HEAPF64[$656>>3] = -0.70710678118654757; $657 = ((($hp1_a74)) + 40|0); HEAPF64[$657>>3] = 0.35355339059327379; dest=$lp2_a75; stop=dest+80|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); $658 = ((($lp2_a75)) + 24|0); HEAPF64[$658>>3] = 0.35355339059327379; $659 = ((($lp2_a75)) + 32|0); HEAPF64[$659>>3] = 0.70710678118654757; $660 = ((($lp2_a75)) + 40|0); HEAPF64[$660>>3] = 0.35355339059327379; dest=$hp2_a76; src=8032; stop=dest+80|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); $i = 0; while(1) { $661 = $i; $662 = ($661|0)<(10); if (!($662)) { break; } $663 = $i; $664 = (($lp1_a73) + ($663<<3)|0); $665 = +HEAPF64[$664>>3]; $666 = $i; $667 = $2; $668 = (($667) + ($666<<3)|0); HEAPF64[$668>>3] = $665; $669 = $i; $670 = (($hp1_a74) + ($669<<3)|0); $671 = +HEAPF64[$670>>3]; $672 = $i; $673 = $3; $674 = (($673) + ($672<<3)|0); HEAPF64[$674>>3] = $671; $675 = $i; $676 = (($lp2_a75) + ($675<<3)|0); $677 = +HEAPF64[$676>>3]; $678 = $i; $679 = $4; $680 = (($679) + ($678<<3)|0); HEAPF64[$680>>3] = $677; $681 = $i; $682 = (($hp2_a76) + ($681<<3)|0); $683 = +HEAPF64[$682>>3]; $684 = $i; $685 = $5; $686 = (($685) + ($684<<3)|0); HEAPF64[$686>>3] = $683; $687 = $i; $688 = (($687) + 1)|0; $i = $688; } $0 = 10; $1517 = $0; STACKTOP = sp;return ($1517|0); } $689 = $1; $690 = (_strcmp($689,176)|0); $691 = ($690|0)!=(0); if (!($691)) { dest=$lp1_a77; src=8112; stop=dest+112|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$hp1_a78; stop=dest+112|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); $692 = ((($hp1_a78)) + 40|0); HEAPF64[$692>>3] = 0.35355339059327379; $693 = ((($hp1_a78)) + 48|0); HEAPF64[$693>>3] = -0.70710678118654757; $694 = ((($hp1_a78)) + 56|0); HEAPF64[$694>>3] = 0.35355339059327379; dest=$lp2_a79; stop=dest+112|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); $695 = ((($lp2_a79)) + 40|0); HEAPF64[$695>>3] = 0.35355339059327379; $696 = ((($lp2_a79)) + 48|0); HEAPF64[$696>>3] = 0.70710678118654757; $697 = ((($lp2_a79)) + 56|0); HEAPF64[$697>>3] = 0.35355339059327379; dest=$hp2_a80; src=8224; stop=dest+112|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); $i = 0; while(1) { $698 = $i; $699 = ($698|0)<(14); if (!($699)) { break; } $700 = $i; $701 = (($lp1_a77) + ($700<<3)|0); $702 = +HEAPF64[$701>>3]; $703 = $i; $704 = $2; $705 = (($704) + ($703<<3)|0); HEAPF64[$705>>3] = $702; $706 = $i; $707 = (($hp1_a78) + ($706<<3)|0); $708 = +HEAPF64[$707>>3]; $709 = $i; $710 = $3; $711 = (($710) + ($709<<3)|0); HEAPF64[$711>>3] = $708; $712 = $i; $713 = (($lp2_a79) + ($712<<3)|0); $714 = +HEAPF64[$713>>3]; $715 = $i; $716 = $4; $717 = (($716) + ($715<<3)|0); HEAPF64[$717>>3] = $714; $718 = $i; $719 = (($hp2_a80) + ($718<<3)|0); $720 = +HEAPF64[$719>>3]; $721 = $i; $722 = $5; $723 = (($722) + ($721<<3)|0); HEAPF64[$723>>3] = $720; $724 = $i; $725 = (($724) + 1)|0; $i = $725; } $0 = 14; $1517 = $0; STACKTOP = sp;return ($1517|0); } $726 = $1; $727 = (_strcmp($726,184)|0); $728 = ($727|0)!=(0); if (!($728)) { _memcpy(($lp1_a81|0),(8336|0),144)|0; _memset(($hp1_a82|0),0,144)|0; $729 = ((($hp1_a82)) + 56|0); HEAPF64[$729>>3] = 0.35355339059327379; $730 = ((($hp1_a82)) + 64|0); HEAPF64[$730>>3] = -0.70710678118654757; $731 = ((($hp1_a82)) + 72|0); HEAPF64[$731>>3] = 0.35355339059327379; _memset(($lp2_a83|0),0,144)|0; $732 = ((($lp2_a83)) + 56|0); HEAPF64[$732>>3] = 0.35355339059327379; $733 = ((($lp2_a83)) + 64|0); HEAPF64[$733>>3] = 0.70710678118654757; $734 = ((($lp2_a83)) + 72|0); HEAPF64[$734>>3] = 0.35355339059327379; _memcpy(($hp2_a84|0),(8480|0),144)|0; $i = 0; while(1) { $735 = $i; $736 = ($735|0)<(18); if (!($736)) { break; } $737 = $i; $738 = (($lp1_a81) + ($737<<3)|0); $739 = +HEAPF64[$738>>3]; $740 = $i; $741 = $2; $742 = (($741) + ($740<<3)|0); HEAPF64[$742>>3] = $739; $743 = $i; $744 = (($hp1_a82) + ($743<<3)|0); $745 = +HEAPF64[$744>>3]; $746 = $i; $747 = $3; $748 = (($747) + ($746<<3)|0); HEAPF64[$748>>3] = $745; $749 = $i; $750 = (($lp2_a83) + ($749<<3)|0); $751 = +HEAPF64[$750>>3]; $752 = $i; $753 = $4; $754 = (($753) + ($752<<3)|0); HEAPF64[$754>>3] = $751; $755 = $i; $756 = (($hp2_a84) + ($755<<3)|0); $757 = +HEAPF64[$756>>3]; $758 = $i; $759 = $5; $760 = (($759) + ($758<<3)|0); HEAPF64[$760>>3] = $757; $761 = $i; $762 = (($761) + 1)|0; $i = $762; } $0 = 18; $1517 = $0; STACKTOP = sp;return ($1517|0); } $763 = $1; $764 = (_strcmp($763,192)|0); $765 = ($764|0)!=(0); if (!($765)) { ;HEAP32[$lp1_a85>>2]=HEAP32[8624>>2]|0;HEAP32[$lp1_a85+4>>2]=HEAP32[8624+4>>2]|0;HEAP32[$lp1_a85+8>>2]=HEAP32[8624+8>>2]|0;HEAP32[$lp1_a85+12>>2]=HEAP32[8624+12>>2]|0;HEAP32[$lp1_a85+16>>2]=HEAP32[8624+16>>2]|0;HEAP32[$lp1_a85+20>>2]=HEAP32[8624+20>>2]|0;HEAP32[$lp1_a85+24>>2]=HEAP32[8624+24>>2]|0;HEAP32[$lp1_a85+28>>2]=HEAP32[8624+28>>2]|0; ;HEAP32[$hp1_a86>>2]=HEAP32[8656>>2]|0;HEAP32[$hp1_a86+4>>2]=HEAP32[8656+4>>2]|0;HEAP32[$hp1_a86+8>>2]=HEAP32[8656+8>>2]|0;HEAP32[$hp1_a86+12>>2]=HEAP32[8656+12>>2]|0;HEAP32[$hp1_a86+16>>2]=HEAP32[8656+16>>2]|0;HEAP32[$hp1_a86+20>>2]=HEAP32[8656+20>>2]|0;HEAP32[$hp1_a86+24>>2]=HEAP32[8656+24>>2]|0;HEAP32[$hp1_a86+28>>2]=HEAP32[8656+28>>2]|0; ;HEAP32[$lp2_a87>>2]=HEAP32[8688>>2]|0;HEAP32[$lp2_a87+4>>2]=HEAP32[8688+4>>2]|0;HEAP32[$lp2_a87+8>>2]=HEAP32[8688+8>>2]|0;HEAP32[$lp2_a87+12>>2]=HEAP32[8688+12>>2]|0;HEAP32[$lp2_a87+16>>2]=HEAP32[8688+16>>2]|0;HEAP32[$lp2_a87+20>>2]=HEAP32[8688+20>>2]|0;HEAP32[$lp2_a87+24>>2]=HEAP32[8688+24>>2]|0;HEAP32[$lp2_a87+28>>2]=HEAP32[8688+28>>2]|0; ;HEAP32[$hp2_a88>>2]=HEAP32[8720>>2]|0;HEAP32[$hp2_a88+4>>2]=HEAP32[8720+4>>2]|0;HEAP32[$hp2_a88+8>>2]=HEAP32[8720+8>>2]|0;HEAP32[$hp2_a88+12>>2]=HEAP32[8720+12>>2]|0;HEAP32[$hp2_a88+16>>2]=HEAP32[8720+16>>2]|0;HEAP32[$hp2_a88+20>>2]=HEAP32[8720+20>>2]|0;HEAP32[$hp2_a88+24>>2]=HEAP32[8720+24>>2]|0;HEAP32[$hp2_a88+28>>2]=HEAP32[8720+28>>2]|0; $i = 0; while(1) { $766 = $i; $767 = ($766|0)<(4); if (!($767)) { break; } $768 = $i; $769 = (($lp1_a85) + ($768<<3)|0); $770 = +HEAPF64[$769>>3]; $771 = $i; $772 = $2; $773 = (($772) + ($771<<3)|0); HEAPF64[$773>>3] = $770; $774 = $i; $775 = (($hp1_a86) + ($774<<3)|0); $776 = +HEAPF64[$775>>3]; $777 = $i; $778 = $3; $779 = (($778) + ($777<<3)|0); HEAPF64[$779>>3] = $776; $780 = $i; $781 = (($lp2_a87) + ($780<<3)|0); $782 = +HEAPF64[$781>>3]; $783 = $i; $784 = $4; $785 = (($784) + ($783<<3)|0); HEAPF64[$785>>3] = $782; $786 = $i; $787 = (($hp2_a88) + ($786<<3)|0); $788 = +HEAPF64[$787>>3]; $789 = $i; $790 = $5; $791 = (($790) + ($789<<3)|0); HEAPF64[$791>>3] = $788; $792 = $i; $793 = (($792) + 1)|0; $i = $793; } $0 = 4; $1517 = $0; STACKTOP = sp;return ($1517|0); } $794 = $1; $795 = (_strcmp($794,200)|0); $796 = ($795|0)!=(0); if (!($796)) { dest=$lp1_a89; src=8752; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$hp1_a90; stop=dest+64|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); $797 = ((($hp1_a90)) + 16|0); HEAPF64[$797>>3] = -0.17677669529663689; $798 = ((($hp1_a90)) + 24|0); HEAPF64[$798>>3] = 0.53033008588991071; $799 = ((($hp1_a90)) + 32|0); HEAPF64[$799>>3] = -0.53033008588991071; $800 = ((($hp1_a90)) + 40|0); HEAPF64[$800>>3] = 0.17677669529663689; dest=$lp2_a91; stop=dest+64|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); $801 = ((($lp2_a91)) + 16|0); HEAPF64[$801>>3] = 0.17677669529663689; $802 = ((($lp2_a91)) + 24|0); HEAPF64[$802>>3] = 0.53033008588991071; $803 = ((($lp2_a91)) + 32|0); HEAPF64[$803>>3] = 0.53033008588991071; $804 = ((($lp2_a91)) + 40|0); HEAPF64[$804>>3] = 0.17677669529663689; dest=$hp2_a92; src=8816; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); $i = 0; while(1) { $805 = $i; $806 = ($805|0)<(8); if (!($806)) { break; } $807 = $i; $808 = (($lp1_a89) + ($807<<3)|0); $809 = +HEAPF64[$808>>3]; $810 = $i; $811 = $2; $812 = (($811) + ($810<<3)|0); HEAPF64[$812>>3] = $809; $813 = $i; $814 = (($hp1_a90) + ($813<<3)|0); $815 = +HEAPF64[$814>>3]; $816 = $i; $817 = $3; $818 = (($817) + ($816<<3)|0); HEAPF64[$818>>3] = $815; $819 = $i; $820 = (($lp2_a91) + ($819<<3)|0); $821 = +HEAPF64[$820>>3]; $822 = $i; $823 = $4; $824 = (($823) + ($822<<3)|0); HEAPF64[$824>>3] = $821; $825 = $i; $826 = (($hp2_a92) + ($825<<3)|0); $827 = +HEAPF64[$826>>3]; $828 = $i; $829 = $5; $830 = (($829) + ($828<<3)|0); HEAPF64[$830>>3] = $827; $831 = $i; $832 = (($831) + 1)|0; $i = $832; } $0 = 8; $1517 = $0; STACKTOP = sp;return ($1517|0); } $833 = $1; $834 = (_strcmp($833,208)|0); $835 = ($834|0)!=(0); if (!($835)) { dest=$lp1_a93; src=8880; stop=dest+96|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$hp1_a94; stop=dest+96|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); $836 = ((($hp1_a94)) + 32|0); HEAPF64[$836>>3] = -0.17677669529663689; $837 = ((($hp1_a94)) + 40|0); HEAPF64[$837>>3] = 0.53033008588991071; $838 = ((($hp1_a94)) + 48|0); HEAPF64[$838>>3] = -0.53033008588991071; $839 = ((($hp1_a94)) + 56|0); HEAPF64[$839>>3] = 0.17677669529663689; dest=$lp2_a95; stop=dest+96|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); $840 = ((($lp2_a95)) + 32|0); HEAPF64[$840>>3] = 0.17677669529663689; $841 = ((($lp2_a95)) + 40|0); HEAPF64[$841>>3] = 0.53033008588991071; $842 = ((($lp2_a95)) + 48|0); HEAPF64[$842>>3] = 0.53033008588991071; $843 = ((($lp2_a95)) + 56|0); HEAPF64[$843>>3] = 0.17677669529663689; dest=$hp2_a96; src=8976; stop=dest+96|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); $i = 0; while(1) { $844 = $i; $845 = ($844|0)<(12); if (!($845)) { break; } $846 = $i; $847 = (($lp1_a93) + ($846<<3)|0); $848 = +HEAPF64[$847>>3]; $849 = $i; $850 = $2; $851 = (($850) + ($849<<3)|0); HEAPF64[$851>>3] = $848; $852 = $i; $853 = (($hp1_a94) + ($852<<3)|0); $854 = +HEAPF64[$853>>3]; $855 = $i; $856 = $3; $857 = (($856) + ($855<<3)|0); HEAPF64[$857>>3] = $854; $858 = $i; $859 = (($lp2_a95) + ($858<<3)|0); $860 = +HEAPF64[$859>>3]; $861 = $i; $862 = $4; $863 = (($862) + ($861<<3)|0); HEAPF64[$863>>3] = $860; $864 = $i; $865 = (($hp2_a96) + ($864<<3)|0); $866 = +HEAPF64[$865>>3]; $867 = $i; $868 = $5; $869 = (($868) + ($867<<3)|0); HEAPF64[$869>>3] = $866; $870 = $i; $871 = (($870) + 1)|0; $i = $871; } $0 = 12; $1517 = $0; STACKTOP = sp;return ($1517|0); } $872 = $1; $873 = (_strcmp($872,216)|0); $874 = ($873|0)!=(0); if (!($874)) { dest=$lp1_a97; src=9072; stop=dest+128|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$hp1_a98; stop=dest+128|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); $875 = ((($hp1_a98)) + 48|0); HEAPF64[$875>>3] = -0.17677669529663689; $876 = ((($hp1_a98)) + 56|0); HEAPF64[$876>>3] = 0.53033008588991071; $877 = ((($hp1_a98)) + 64|0); HEAPF64[$877>>3] = -0.53033008588991071; $878 = ((($hp1_a98)) + 72|0); HEAPF64[$878>>3] = 0.17677669529663689; dest=$lp2_a99; stop=dest+128|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); $879 = ((($lp2_a99)) + 48|0); HEAPF64[$879>>3] = 0.17677669529663689; $880 = ((($lp2_a99)) + 56|0); HEAPF64[$880>>3] = 0.53033008588991071; $881 = ((($lp2_a99)) + 64|0); HEAPF64[$881>>3] = 0.53033008588991071; $882 = ((($lp2_a99)) + 72|0); HEAPF64[$882>>3] = 0.17677669529663689; dest=$hp2_a100; src=9200; stop=dest+128|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); $i = 0; while(1) { $883 = $i; $884 = ($883|0)<(16); if (!($884)) { break; } $885 = $i; $886 = (($lp1_a97) + ($885<<3)|0); $887 = +HEAPF64[$886>>3]; $888 = $i; $889 = $2; $890 = (($889) + ($888<<3)|0); HEAPF64[$890>>3] = $887; $891 = $i; $892 = (($hp1_a98) + ($891<<3)|0); $893 = +HEAPF64[$892>>3]; $894 = $i; $895 = $3; $896 = (($895) + ($894<<3)|0); HEAPF64[$896>>3] = $893; $897 = $i; $898 = (($lp2_a99) + ($897<<3)|0); $899 = +HEAPF64[$898>>3]; $900 = $i; $901 = $4; $902 = (($901) + ($900<<3)|0); HEAPF64[$902>>3] = $899; $903 = $i; $904 = (($hp2_a100) + ($903<<3)|0); $905 = +HEAPF64[$904>>3]; $906 = $i; $907 = $5; $908 = (($907) + ($906<<3)|0); HEAPF64[$908>>3] = $905; $909 = $i; $910 = (($909) + 1)|0; $i = $910; } $0 = 16; $1517 = $0; STACKTOP = sp;return ($1517|0); } $911 = $1; $912 = (_strcmp($911,224)|0); $913 = ($912|0)!=(0); if (!($913)) { _memcpy(($lp1_a101|0),(9328|0),160)|0; _memset(($hp1_a102|0),0,160)|0; $914 = ((($hp1_a102)) + 64|0); HEAPF64[$914>>3] = -0.17677669529663689; $915 = ((($hp1_a102)) + 72|0); HEAPF64[$915>>3] = 0.53033008588991071; $916 = ((($hp1_a102)) + 80|0); HEAPF64[$916>>3] = -0.53033008588991071; $917 = ((($hp1_a102)) + 88|0); HEAPF64[$917>>3] = 0.17677669529663689; _memset(($lp2_a103|0),0,160)|0; $918 = ((($lp2_a103)) + 64|0); HEAPF64[$918>>3] = 0.17677669529663689; $919 = ((($lp2_a103)) + 72|0); HEAPF64[$919>>3] = 0.53033008588991071; $920 = ((($lp2_a103)) + 80|0); HEAPF64[$920>>3] = 0.53033008588991071; $921 = ((($lp2_a103)) + 88|0); HEAPF64[$921>>3] = 0.17677669529663689; _memcpy(($hp2_a104|0),(9488|0),160)|0; $i = 0; while(1) { $922 = $i; $923 = ($922|0)<(20); if (!($923)) { break; } $924 = $i; $925 = (($lp1_a101) + ($924<<3)|0); $926 = +HEAPF64[$925>>3]; $927 = $i; $928 = $2; $929 = (($928) + ($927<<3)|0); HEAPF64[$929>>3] = $926; $930 = $i; $931 = (($hp1_a102) + ($930<<3)|0); $932 = +HEAPF64[$931>>3]; $933 = $i; $934 = $3; $935 = (($934) + ($933<<3)|0); HEAPF64[$935>>3] = $932; $936 = $i; $937 = (($lp2_a103) + ($936<<3)|0); $938 = +HEAPF64[$937>>3]; $939 = $i; $940 = $4; $941 = (($940) + ($939<<3)|0); HEAPF64[$941>>3] = $938; $942 = $i; $943 = (($hp2_a104) + ($942<<3)|0); $944 = +HEAPF64[$943>>3]; $945 = $i; $946 = $5; $947 = (($946) + ($945<<3)|0); HEAPF64[$947>>3] = $944; $948 = $i; $949 = (($948) + 1)|0; $i = $949; } $0 = 20; $1517 = $0; STACKTOP = sp;return ($1517|0); } $950 = $1; $951 = (_strcmp($950,232)|0); $952 = ($951|0)!=(0); if (!($952)) { dest=$lp1_a105; src=9648; stop=dest+80|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$hp1_a106; src=9728; stop=dest+80|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$lp2_a107; src=9808; stop=dest+80|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$hp2_a108; src=9888; stop=dest+80|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); $i = 0; while(1) { $953 = $i; $954 = ($953|0)<(10); if (!($954)) { break; } $955 = $i; $956 = (($lp1_a105) + ($955<<3)|0); $957 = +HEAPF64[$956>>3]; $958 = $i; $959 = $2; $960 = (($959) + ($958<<3)|0); HEAPF64[$960>>3] = $957; $961 = $i; $962 = (($hp1_a106) + ($961<<3)|0); $963 = +HEAPF64[$962>>3]; $964 = $i; $965 = $3; $966 = (($965) + ($964<<3)|0); HEAPF64[$966>>3] = $963; $967 = $i; $968 = (($lp2_a107) + ($967<<3)|0); $969 = +HEAPF64[$968>>3]; $970 = $i; $971 = $4; $972 = (($971) + ($970<<3)|0); HEAPF64[$972>>3] = $969; $973 = $i; $974 = (($hp2_a108) + ($973<<3)|0); $975 = +HEAPF64[$974>>3]; $976 = $i; $977 = $5; $978 = (($977) + ($976<<3)|0); HEAPF64[$978>>3] = $975; $979 = $i; $980 = (($979) + 1)|0; $i = $980; } $0 = 10; $1517 = $0; STACKTOP = sp;return ($1517|0); } $981 = $1; $982 = (_strcmp($981,240)|0); $983 = ($982|0)!=(0); if (!($983)) { dest=$lp1_a109; src=9968; stop=dest+96|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$hp1_a110; src=10064; stop=dest+96|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$lp2_a111; src=10160; stop=dest+96|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$hp2_a112; src=10256; stop=dest+96|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); $i = 0; while(1) { $984 = $i; $985 = ($984|0)<(12); if (!($985)) { break; } $986 = $i; $987 = (($lp1_a109) + ($986<<3)|0); $988 = +HEAPF64[$987>>3]; $989 = $i; $990 = $2; $991 = (($990) + ($989<<3)|0); HEAPF64[$991>>3] = $988; $992 = $i; $993 = (($hp1_a110) + ($992<<3)|0); $994 = +HEAPF64[$993>>3]; $995 = $i; $996 = $3; $997 = (($996) + ($995<<3)|0); HEAPF64[$997>>3] = $994; $998 = $i; $999 = (($lp2_a111) + ($998<<3)|0); $1000 = +HEAPF64[$999>>3]; $1001 = $i; $1002 = $4; $1003 = (($1002) + ($1001<<3)|0); HEAPF64[$1003>>3] = $1000; $1004 = $i; $1005 = (($hp2_a112) + ($1004<<3)|0); $1006 = +HEAPF64[$1005>>3]; $1007 = $i; $1008 = $5; $1009 = (($1008) + ($1007<<3)|0); HEAPF64[$1009>>3] = $1006; $1010 = $i; $1011 = (($1010) + 1)|0; $i = $1011; } $0 = 12; $1517 = $0; STACKTOP = sp;return ($1517|0); } $1012 = $1; $1013 = (_strcmp($1012,248)|0); $1014 = ($1013|0)!=(0); if (!($1014)) { _memcpy(($lp1_a113|0),(10352|0),144)|0; _memcpy(($hp1_a114|0),(10496|0),144)|0; _memcpy(($lp2_a115|0),(10640|0),144)|0; _memcpy(($hp2_a116|0),(10784|0),144)|0; $i = 0; while(1) { $1015 = $i; $1016 = ($1015|0)<(18); if (!($1016)) { break; } $1017 = $i; $1018 = (($lp1_a113) + ($1017<<3)|0); $1019 = +HEAPF64[$1018>>3]; $1020 = $i; $1021 = $2; $1022 = (($1021) + ($1020<<3)|0); HEAPF64[$1022>>3] = $1019; $1023 = $i; $1024 = (($hp1_a114) + ($1023<<3)|0); $1025 = +HEAPF64[$1024>>3]; $1026 = $i; $1027 = $3; $1028 = (($1027) + ($1026<<3)|0); HEAPF64[$1028>>3] = $1025; $1029 = $i; $1030 = (($lp2_a115) + ($1029<<3)|0); $1031 = +HEAPF64[$1030>>3]; $1032 = $i; $1033 = $4; $1034 = (($1033) + ($1032<<3)|0); HEAPF64[$1034>>3] = $1031; $1035 = $i; $1036 = (($hp2_a116) + ($1035<<3)|0); $1037 = +HEAPF64[$1036>>3]; $1038 = $i; $1039 = $5; $1040 = (($1039) + ($1038<<3)|0); HEAPF64[$1040>>3] = $1037; $1041 = $i; $1042 = (($1041) + 1)|0; $i = $1042; } $0 = 18; $1517 = $0; STACKTOP = sp;return ($1517|0); } $1043 = $1; $1044 = (_strcmp($1043,256)|0); $1045 = ($1044|0)!=(0); if (!($1045)) { dest=$lp1_a117; stop=dest+48|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); HEAPF64[$lp1_a117>>3] = -0.01565572813546454; $1046 = ((($lp1_a117)) + 8|0); HEAPF64[$1046>>3] = -0.072732619512853897; $1047 = ((($lp1_a117)) + 16|0); HEAPF64[$1047>>3] = 0.38486484686420286; $1048 = ((($lp1_a117)) + 24|0); HEAPF64[$1048>>3] = 0.85257202021225542; $1049 = ((($lp1_a117)) + 32|0); HEAPF64[$1049>>3] = 0.33789766245780922; $1050 = ((($lp1_a117)) + 40|0); HEAPF64[$1050>>3] = -0.072732619512853897; dest=$hp1_a118; stop=dest+48|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); HEAPF64[$hp1_a118>>3] = 0.072732619512853897; $1051 = ((($hp1_a118)) + 8|0); HEAPF64[$1051>>3] = 0.33789766245780922; $1052 = ((($hp1_a118)) + 16|0); HEAPF64[$1052>>3] = -0.85257202021225542; $1053 = ((($hp1_a118)) + 24|0); HEAPF64[$1053>>3] = 0.38486484686420286; $1054 = ((($hp1_a118)) + 32|0); HEAPF64[$1054>>3] = 0.072732619512853897; $1055 = ((($hp1_a118)) + 40|0); HEAPF64[$1055>>3] = -0.01565572813546454; dest=$lp2_a119; stop=dest+48|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); HEAPF64[$lp2_a119>>3] = -0.072732619512853897; $1056 = ((($lp2_a119)) + 8|0); HEAPF64[$1056>>3] = 0.33789766245780922; $1057 = ((($lp2_a119)) + 16|0); HEAPF64[$1057>>3] = 0.85257202021225542; $1058 = ((($lp2_a119)) + 24|0); HEAPF64[$1058>>3] = 0.38486484686420286; $1059 = ((($lp2_a119)) + 32|0); HEAPF64[$1059>>3] = -0.072732619512853897; $1060 = ((($lp2_a119)) + 40|0); HEAPF64[$1060>>3] = -0.01565572813546454; dest=$hp2_a120; stop=dest+48|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); HEAPF64[$hp2_a120>>3] = -0.01565572813546454; $1061 = ((($hp2_a120)) + 8|0); HEAPF64[$1061>>3] = 0.072732619512853897; $1062 = ((($hp2_a120)) + 16|0); HEAPF64[$1062>>3] = 0.38486484686420286; $1063 = ((($hp2_a120)) + 24|0); HEAPF64[$1063>>3] = -0.85257202021225542; $1064 = ((($hp2_a120)) + 32|0); HEAPF64[$1064>>3] = 0.33789766245780922; $1065 = ((($hp2_a120)) + 40|0); HEAPF64[$1065>>3] = 0.072732619512853897; $i = 0; while(1) { $1066 = $i; $1067 = ($1066|0)<(6); if (!($1067)) { break; } $1068 = $i; $1069 = (($lp1_a117) + ($1068<<3)|0); $1070 = +HEAPF64[$1069>>3]; $1071 = $i; $1072 = $2; $1073 = (($1072) + ($1071<<3)|0); HEAPF64[$1073>>3] = $1070; $1074 = $i; $1075 = (($hp1_a118) + ($1074<<3)|0); $1076 = +HEAPF64[$1075>>3]; $1077 = $i; $1078 = $3; $1079 = (($1078) + ($1077<<3)|0); HEAPF64[$1079>>3] = $1076; $1080 = $i; $1081 = (($lp2_a119) + ($1080<<3)|0); $1082 = +HEAPF64[$1081>>3]; $1083 = $i; $1084 = $4; $1085 = (($1084) + ($1083<<3)|0); HEAPF64[$1085>>3] = $1082; $1086 = $i; $1087 = (($hp2_a120) + ($1086<<3)|0); $1088 = +HEAPF64[$1087>>3]; $1089 = $i; $1090 = $5; $1091 = (($1090) + ($1089<<3)|0); HEAPF64[$1091>>3] = $1088; $1092 = $i; $1093 = (($1092) + 1)|0; $i = $1093; } $0 = 6; $1517 = $0; STACKTOP = sp;return ($1517|0); } $1094 = $1; $1095 = (_strcmp($1094,264)|0); $1096 = ($1095|0)!=(0); if (!($1096)) { dest=$lp1_a121; src=10928; stop=dest+96|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$hp1_a122; src=11024; stop=dest+96|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$lp2_a123; src=11120; stop=dest+96|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$hp2_a124; src=11216; stop=dest+96|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); $i = 0; while(1) { $1097 = $i; $1098 = ($1097|0)<(12); if (!($1098)) { break; } $1099 = $i; $1100 = (($lp1_a121) + ($1099<<3)|0); $1101 = +HEAPF64[$1100>>3]; $1102 = $i; $1103 = $2; $1104 = (($1103) + ($1102<<3)|0); HEAPF64[$1104>>3] = $1101; $1105 = $i; $1106 = (($hp1_a122) + ($1105<<3)|0); $1107 = +HEAPF64[$1106>>3]; $1108 = $i; $1109 = $3; $1110 = (($1109) + ($1108<<3)|0); HEAPF64[$1110>>3] = $1107; $1111 = $i; $1112 = (($lp2_a123) + ($1111<<3)|0); $1113 = +HEAPF64[$1112>>3]; $1114 = $i; $1115 = $4; $1116 = (($1115) + ($1114<<3)|0); HEAPF64[$1116>>3] = $1113; $1117 = $i; $1118 = (($hp2_a124) + ($1117<<3)|0); $1119 = +HEAPF64[$1118>>3]; $1120 = $i; $1121 = $5; $1122 = (($1121) + ($1120<<3)|0); HEAPF64[$1122>>3] = $1119; $1123 = $i; $1124 = (($1123) + 1)|0; $i = $1124; } $0 = 12; $1517 = $0; STACKTOP = sp;return ($1517|0); } $1125 = $1; $1126 = (_strcmp($1125,272)|0); $1127 = ($1126|0)!=(0); if (!($1127)) { _memcpy(($lp1_a125|0),(11312|0),144)|0; _memcpy(($hp1_a126|0),(11456|0),144)|0; _memcpy(($lp2_a127|0),(11600|0),144)|0; _memcpy(($hp2_a128|0),(11744|0),144)|0; $i = 0; while(1) { $1128 = $i; $1129 = ($1128|0)<(18); if (!($1129)) { break; } $1130 = $i; $1131 = (($lp1_a125) + ($1130<<3)|0); $1132 = +HEAPF64[$1131>>3]; $1133 = $i; $1134 = $2; $1135 = (($1134) + ($1133<<3)|0); HEAPF64[$1135>>3] = $1132; $1136 = $i; $1137 = (($hp1_a126) + ($1136<<3)|0); $1138 = +HEAPF64[$1137>>3]; $1139 = $i; $1140 = $3; $1141 = (($1140) + ($1139<<3)|0); HEAPF64[$1141>>3] = $1138; $1142 = $i; $1143 = (($lp2_a127) + ($1142<<3)|0); $1144 = +HEAPF64[$1143>>3]; $1145 = $i; $1146 = $4; $1147 = (($1146) + ($1145<<3)|0); HEAPF64[$1147>>3] = $1144; $1148 = $i; $1149 = (($hp2_a128) + ($1148<<3)|0); $1150 = +HEAPF64[$1149>>3]; $1151 = $i; $1152 = $5; $1153 = (($1152) + ($1151<<3)|0); HEAPF64[$1153>>3] = $1150; $1154 = $i; $1155 = (($1154) + 1)|0; $i = $1155; } $0 = 18; $1517 = $0; STACKTOP = sp;return ($1517|0); } $1156 = $1; $1157 = (_strcmp($1156,280)|0); $1158 = ($1157|0)!=(0); if (!($1158)) { _memcpy(($lp1_a129|0),(11888|0),192)|0; _memcpy(($hp1_a130|0),(12080|0),192)|0; _memcpy(($lp2_a131|0),(12272|0),192)|0; _memcpy(($hp2_a132|0),(12464|0),192)|0; $i = 0; while(1) { $1159 = $i; $1160 = ($1159|0)<(24); if (!($1160)) { break; } $1161 = $i; $1162 = (($lp1_a129) + ($1161<<3)|0); $1163 = +HEAPF64[$1162>>3]; $1164 = $i; $1165 = $2; $1166 = (($1165) + ($1164<<3)|0); HEAPF64[$1166>>3] = $1163; $1167 = $i; $1168 = (($hp1_a130) + ($1167<<3)|0); $1169 = +HEAPF64[$1168>>3]; $1170 = $i; $1171 = $3; $1172 = (($1171) + ($1170<<3)|0); HEAPF64[$1172>>3] = $1169; $1173 = $i; $1174 = (($lp2_a131) + ($1173<<3)|0); $1175 = +HEAPF64[$1174>>3]; $1176 = $i; $1177 = $4; $1178 = (($1177) + ($1176<<3)|0); HEAPF64[$1178>>3] = $1175; $1179 = $i; $1180 = (($hp2_a132) + ($1179<<3)|0); $1181 = +HEAPF64[$1180>>3]; $1182 = $i; $1183 = $5; $1184 = (($1183) + ($1182<<3)|0); HEAPF64[$1184>>3] = $1181; $1185 = $i; $1186 = (($1185) + 1)|0; $i = $1186; } $0 = 24; $1517 = $0; STACKTOP = sp;return ($1517|0); } $1187 = $1; $1188 = (_strcmp($1187,288)|0); $1189 = ($1188|0)!=(0); if (!($1189)) { _memcpy(($lp1_a133|0),(12656|0),240)|0; _memcpy(($hp1_a134|0),(12896|0),240)|0; _memcpy(($lp2_a135|0),(13136|0),240)|0; _memcpy(($hp2_a136|0),(13376|0),240)|0; $i = 0; while(1) { $1190 = $i; $1191 = ($1190|0)<(30); if (!($1191)) { break; } $1192 = $i; $1193 = (($lp1_a133) + ($1192<<3)|0); $1194 = +HEAPF64[$1193>>3]; $1195 = $i; $1196 = $2; $1197 = (($1196) + ($1195<<3)|0); HEAPF64[$1197>>3] = $1194; $1198 = $i; $1199 = (($hp1_a134) + ($1198<<3)|0); $1200 = +HEAPF64[$1199>>3]; $1201 = $i; $1202 = $3; $1203 = (($1202) + ($1201<<3)|0); HEAPF64[$1203>>3] = $1200; $1204 = $i; $1205 = (($lp2_a135) + ($1204<<3)|0); $1206 = +HEAPF64[$1205>>3]; $1207 = $i; $1208 = $4; $1209 = (($1208) + ($1207<<3)|0); HEAPF64[$1209>>3] = $1206; $1210 = $i; $1211 = (($hp2_a136) + ($1210<<3)|0); $1212 = +HEAPF64[$1211>>3]; $1213 = $i; $1214 = $5; $1215 = (($1214) + ($1213<<3)|0); HEAPF64[$1215>>3] = $1212; $1216 = $i; $1217 = (($1216) + 1)|0; $i = $1217; } $0 = 30; $1517 = $0; STACKTOP = sp;return ($1517|0); } $1218 = $1; $1219 = (_strcmp($1218,296)|0); $1220 = ($1219|0)!=(0); if (!($1220)) { ;HEAP32[$lp1_a137>>2]=HEAP32[13616>>2]|0;HEAP32[$lp1_a137+4>>2]=HEAP32[13616+4>>2]|0;HEAP32[$lp1_a137+8>>2]=HEAP32[13616+8>>2]|0;HEAP32[$lp1_a137+12>>2]=HEAP32[13616+12>>2]|0;HEAP32[$lp1_a137+16>>2]=HEAP32[13616+16>>2]|0;HEAP32[$lp1_a137+20>>2]=HEAP32[13616+20>>2]|0;HEAP32[$lp1_a137+24>>2]=HEAP32[13616+24>>2]|0;HEAP32[$lp1_a137+28>>2]=HEAP32[13616+28>>2]|0; ;HEAP32[$hp1_a138>>2]=HEAP32[13648>>2]|0;HEAP32[$hp1_a138+4>>2]=HEAP32[13648+4>>2]|0;HEAP32[$hp1_a138+8>>2]=HEAP32[13648+8>>2]|0;HEAP32[$hp1_a138+12>>2]=HEAP32[13648+12>>2]|0;HEAP32[$hp1_a138+16>>2]=HEAP32[13648+16>>2]|0;HEAP32[$hp1_a138+20>>2]=HEAP32[13648+20>>2]|0;HEAP32[$hp1_a138+24>>2]=HEAP32[13648+24>>2]|0;HEAP32[$hp1_a138+28>>2]=HEAP32[13648+28>>2]|0; ;HEAP32[$lp2_a139>>2]=HEAP32[13680>>2]|0;HEAP32[$lp2_a139+4>>2]=HEAP32[13680+4>>2]|0;HEAP32[$lp2_a139+8>>2]=HEAP32[13680+8>>2]|0;HEAP32[$lp2_a139+12>>2]=HEAP32[13680+12>>2]|0;HEAP32[$lp2_a139+16>>2]=HEAP32[13680+16>>2]|0;HEAP32[$lp2_a139+20>>2]=HEAP32[13680+20>>2]|0;HEAP32[$lp2_a139+24>>2]=HEAP32[13680+24>>2]|0;HEAP32[$lp2_a139+28>>2]=HEAP32[13680+28>>2]|0; ;HEAP32[$hp2_a140>>2]=HEAP32[13712>>2]|0;HEAP32[$hp2_a140+4>>2]=HEAP32[13712+4>>2]|0;HEAP32[$hp2_a140+8>>2]=HEAP32[13712+8>>2]|0;HEAP32[$hp2_a140+12>>2]=HEAP32[13712+12>>2]|0;HEAP32[$hp2_a140+16>>2]=HEAP32[13712+16>>2]|0;HEAP32[$hp2_a140+20>>2]=HEAP32[13712+20>>2]|0;HEAP32[$hp2_a140+24>>2]=HEAP32[13712+24>>2]|0;HEAP32[$hp2_a140+28>>2]=HEAP32[13712+28>>2]|0; $i = 0; while(1) { $1221 = $i; $1222 = ($1221|0)<(4); if (!($1222)) { break; } $1223 = $i; $1224 = (($lp1_a137) + ($1223<<3)|0); $1225 = +HEAPF64[$1224>>3]; $1226 = $i; $1227 = $2; $1228 = (($1227) + ($1226<<3)|0); HEAPF64[$1228>>3] = $1225; $1229 = $i; $1230 = (($hp1_a138) + ($1229<<3)|0); $1231 = +HEAPF64[$1230>>3]; $1232 = $i; $1233 = $3; $1234 = (($1233) + ($1232<<3)|0); HEAPF64[$1234>>3] = $1231; $1235 = $i; $1236 = (($lp2_a139) + ($1235<<3)|0); $1237 = +HEAPF64[$1236>>3]; $1238 = $i; $1239 = $4; $1240 = (($1239) + ($1238<<3)|0); HEAPF64[$1240>>3] = $1237; $1241 = $i; $1242 = (($hp2_a140) + ($1241<<3)|0); $1243 = +HEAPF64[$1242>>3]; $1244 = $i; $1245 = $5; $1246 = (($1245) + ($1244<<3)|0); HEAPF64[$1246>>3] = $1243; $1247 = $i; $1248 = (($1247) + 1)|0; $i = $1248; } $0 = 4; $1517 = $0; STACKTOP = sp;return ($1517|0); } $1249 = $1; $1250 = (_strcmp($1249,304)|0); $1251 = ($1250|0)!=(0); if (!($1251)) { dest=$lp1_a141; stop=dest+48|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); HEAPF64[$lp1_a141>>3] = 0.035226291882100656; $1252 = ((($lp1_a141)) + 8|0); HEAPF64[$1252>>3] = -0.085441273882241486; $1253 = ((($lp1_a141)) + 16|0); HEAPF64[$1253>>3] = -0.13501102001039084; $1254 = ((($lp1_a141)) + 24|0); HEAPF64[$1254>>3] = 0.45987750211933132; $1255 = ((($lp1_a141)) + 32|0); HEAPF64[$1255>>3] = 0.80689150931333875; $1256 = ((($lp1_a141)) + 40|0); HEAPF64[$1256>>3] = 0.33267055295095688; dest=$hp1_a142; stop=dest+48|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); HEAPF64[$hp1_a142>>3] = -0.33267055295095688; $1257 = ((($hp1_a142)) + 8|0); HEAPF64[$1257>>3] = 0.80689150931333875; $1258 = ((($hp1_a142)) + 16|0); HEAPF64[$1258>>3] = -0.45987750211933132; $1259 = ((($hp1_a142)) + 24|0); HEAPF64[$1259>>3] = -0.13501102001039084; $1260 = ((($hp1_a142)) + 32|0); HEAPF64[$1260>>3] = 0.085441273882241486; $1261 = ((($hp1_a142)) + 40|0); HEAPF64[$1261>>3] = 0.035226291882100656; dest=$lp2_a143; stop=dest+48|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); HEAPF64[$lp2_a143>>3] = 0.33267055295095688; $1262 = ((($lp2_a143)) + 8|0); HEAPF64[$1262>>3] = 0.80689150931333875; $1263 = ((($lp2_a143)) + 16|0); HEAPF64[$1263>>3] = 0.45987750211933132; $1264 = ((($lp2_a143)) + 24|0); HEAPF64[$1264>>3] = -0.13501102001039084; $1265 = ((($lp2_a143)) + 32|0); HEAPF64[$1265>>3] = -0.085441273882241486; $1266 = ((($lp2_a143)) + 40|0); HEAPF64[$1266>>3] = 0.035226291882100656; dest=$hp2_a144; stop=dest+48|0; do { HEAP32[dest>>2]=0|0; dest=dest+4|0; } while ((dest|0) < (stop|0)); HEAPF64[$hp2_a144>>3] = 0.035226291882100656; $1267 = ((($hp2_a144)) + 8|0); HEAPF64[$1267>>3] = 0.085441273882241486; $1268 = ((($hp2_a144)) + 16|0); HEAPF64[$1268>>3] = -0.13501102001039084; $1269 = ((($hp2_a144)) + 24|0); HEAPF64[$1269>>3] = -0.45987750211933132; $1270 = ((($hp2_a144)) + 32|0); HEAPF64[$1270>>3] = 0.80689150931333875; $1271 = ((($hp2_a144)) + 40|0); HEAPF64[$1271>>3] = -0.33267055295095688; $i = 0; while(1) { $1272 = $i; $1273 = ($1272|0)<(6); if (!($1273)) { break; } $1274 = $i; $1275 = (($lp1_a141) + ($1274<<3)|0); $1276 = +HEAPF64[$1275>>3]; $1277 = $i; $1278 = $2; $1279 = (($1278) + ($1277<<3)|0); HEAPF64[$1279>>3] = $1276; $1280 = $i; $1281 = (($hp1_a142) + ($1280<<3)|0); $1282 = +HEAPF64[$1281>>3]; $1283 = $i; $1284 = $3; $1285 = (($1284) + ($1283<<3)|0); HEAPF64[$1285>>3] = $1282; $1286 = $i; $1287 = (($lp2_a143) + ($1286<<3)|0); $1288 = +HEAPF64[$1287>>3]; $1289 = $i; $1290 = $4; $1291 = (($1290) + ($1289<<3)|0); HEAPF64[$1291>>3] = $1288; $1292 = $i; $1293 = (($hp2_a144) + ($1292<<3)|0); $1294 = +HEAPF64[$1293>>3]; $1295 = $i; $1296 = $5; $1297 = (($1296) + ($1295<<3)|0); HEAPF64[$1297>>3] = $1294; $1298 = $i; $1299 = (($1298) + 1)|0; $i = $1299; } $0 = 6; $1517 = $0; STACKTOP = sp;return ($1517|0); } $1300 = $1; $1301 = (_strcmp($1300,312)|0); $1302 = ($1301|0)!=(0); if (!($1302)) { dest=$lp1_a145; src=13744; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$hp1_a146; src=13808; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$lp2_a147; src=13872; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$hp2_a148; src=13936; stop=dest+64|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); $i = 0; while(1) { $1303 = $i; $1304 = ($1303|0)<(8); if (!($1304)) { break; } $1305 = $i; $1306 = (($lp1_a145) + ($1305<<3)|0); $1307 = +HEAPF64[$1306>>3]; $1308 = $i; $1309 = $2; $1310 = (($1309) + ($1308<<3)|0); HEAPF64[$1310>>3] = $1307; $1311 = $i; $1312 = (($hp1_a146) + ($1311<<3)|0); $1313 = +HEAPF64[$1312>>3]; $1314 = $i; $1315 = $3; $1316 = (($1315) + ($1314<<3)|0); HEAPF64[$1316>>3] = $1313; $1317 = $i; $1318 = (($lp2_a147) + ($1317<<3)|0); $1319 = +HEAPF64[$1318>>3]; $1320 = $i; $1321 = $4; $1322 = (($1321) + ($1320<<3)|0); HEAPF64[$1322>>3] = $1319; $1323 = $i; $1324 = (($hp2_a148) + ($1323<<3)|0); $1325 = +HEAPF64[$1324>>3]; $1326 = $i; $1327 = $5; $1328 = (($1327) + ($1326<<3)|0); HEAPF64[$1328>>3] = $1325; $1329 = $i; $1330 = (($1329) + 1)|0; $i = $1330; } $0 = 8; $1517 = $0; STACKTOP = sp;return ($1517|0); } $1331 = $1; $1332 = (_strcmp($1331,320)|0); $1333 = ($1332|0)!=(0); if (!($1333)) { dest=$lp1_a149; src=14000; stop=dest+80|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$hp1_a150; src=14080; stop=dest+80|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$lp2_a151; src=14160; stop=dest+80|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$hp2_a152; src=14240; stop=dest+80|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); $i = 0; while(1) { $1334 = $i; $1335 = ($1334|0)<(10); if (!($1335)) { break; } $1336 = $i; $1337 = (($lp1_a149) + ($1336<<3)|0); $1338 = +HEAPF64[$1337>>3]; $1339 = $i; $1340 = $2; $1341 = (($1340) + ($1339<<3)|0); HEAPF64[$1341>>3] = $1338; $1342 = $i; $1343 = (($hp1_a150) + ($1342<<3)|0); $1344 = +HEAPF64[$1343>>3]; $1345 = $i; $1346 = $3; $1347 = (($1346) + ($1345<<3)|0); HEAPF64[$1347>>3] = $1344; $1348 = $i; $1349 = (($lp2_a151) + ($1348<<3)|0); $1350 = +HEAPF64[$1349>>3]; $1351 = $i; $1352 = $4; $1353 = (($1352) + ($1351<<3)|0); HEAPF64[$1353>>3] = $1350; $1354 = $i; $1355 = (($hp2_a152) + ($1354<<3)|0); $1356 = +HEAPF64[$1355>>3]; $1357 = $i; $1358 = $5; $1359 = (($1358) + ($1357<<3)|0); HEAPF64[$1359>>3] = $1356; $1360 = $i; $1361 = (($1360) + 1)|0; $i = $1361; } $0 = 10; $1517 = $0; STACKTOP = sp;return ($1517|0); } $1362 = $1; $1363 = (_strcmp($1362,328)|0); $1364 = ($1363|0)!=(0); if (!($1364)) { dest=$lp1_a153; src=14320; stop=dest+96|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$hp1_a154; src=14416; stop=dest+96|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$lp2_a155; src=14512; stop=dest+96|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$hp2_a156; src=14608; stop=dest+96|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); $i = 0; while(1) { $1365 = $i; $1366 = ($1365|0)<(12); if (!($1366)) { break; } $1367 = $i; $1368 = (($lp1_a153) + ($1367<<3)|0); $1369 = +HEAPF64[$1368>>3]; $1370 = $i; $1371 = $2; $1372 = (($1371) + ($1370<<3)|0); HEAPF64[$1372>>3] = $1369; $1373 = $i; $1374 = (($hp1_a154) + ($1373<<3)|0); $1375 = +HEAPF64[$1374>>3]; $1376 = $i; $1377 = $3; $1378 = (($1377) + ($1376<<3)|0); HEAPF64[$1378>>3] = $1375; $1379 = $i; $1380 = (($lp2_a155) + ($1379<<3)|0); $1381 = +HEAPF64[$1380>>3]; $1382 = $i; $1383 = $4; $1384 = (($1383) + ($1382<<3)|0); HEAPF64[$1384>>3] = $1381; $1385 = $i; $1386 = (($hp2_a156) + ($1385<<3)|0); $1387 = +HEAPF64[$1386>>3]; $1388 = $i; $1389 = $5; $1390 = (($1389) + ($1388<<3)|0); HEAPF64[$1390>>3] = $1387; $1391 = $i; $1392 = (($1391) + 1)|0; $i = $1392; } $0 = 12; $1517 = $0; STACKTOP = sp;return ($1517|0); } $1393 = $1; $1394 = (_strcmp($1393,336)|0); $1395 = ($1394|0)!=(0); if (!($1395)) { dest=$lp1_a157; src=14704; stop=dest+112|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$hp1_a158; src=14816; stop=dest+112|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$lp2_a159; src=14928; stop=dest+112|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$hp2_a160; src=15040; stop=dest+112|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); $i = 0; while(1) { $1396 = $i; $1397 = ($1396|0)<(14); if (!($1397)) { break; } $1398 = $i; $1399 = (($lp1_a157) + ($1398<<3)|0); $1400 = +HEAPF64[$1399>>3]; $1401 = $i; $1402 = $2; $1403 = (($1402) + ($1401<<3)|0); HEAPF64[$1403>>3] = $1400; $1404 = $i; $1405 = (($hp1_a158) + ($1404<<3)|0); $1406 = +HEAPF64[$1405>>3]; $1407 = $i; $1408 = $3; $1409 = (($1408) + ($1407<<3)|0); HEAPF64[$1409>>3] = $1406; $1410 = $i; $1411 = (($lp2_a159) + ($1410<<3)|0); $1412 = +HEAPF64[$1411>>3]; $1413 = $i; $1414 = $4; $1415 = (($1414) + ($1413<<3)|0); HEAPF64[$1415>>3] = $1412; $1416 = $i; $1417 = (($hp2_a160) + ($1416<<3)|0); $1418 = +HEAPF64[$1417>>3]; $1419 = $i; $1420 = $5; $1421 = (($1420) + ($1419<<3)|0); HEAPF64[$1421>>3] = $1418; $1422 = $i; $1423 = (($1422) + 1)|0; $i = $1423; } $0 = 14; $1517 = $0; STACKTOP = sp;return ($1517|0); } $1424 = $1; $1425 = (_strcmp($1424,344)|0); $1426 = ($1425|0)!=(0); if (!($1426)) { dest=$lp1_a161; src=15152; stop=dest+128|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$hp1_a162; src=15280; stop=dest+128|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$lp2_a163; src=15408; stop=dest+128|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); dest=$hp2_a164; src=15536; stop=dest+128|0; do { HEAP32[dest>>2]=HEAP32[src>>2]|0; dest=dest+4|0; src=src+4|0; } while ((dest|0) < (stop|0)); $i = 0; while(1) { $1427 = $i; $1428 = ($1427|0)<(16); if (!($1428)) { break; } $1429 = $i; $1430 = (($lp1_a161) + ($1429<<3)|0); $1431 = +HEAPF64[$1430>>3]; $1432 = $i; $1433 = $2; $1434 = (($1433) + ($1432<<3)|0); HEAPF64[$1434>>3] = $1431; $1435 = $i; $1436 = (($hp1_a162) + ($1435<<3)|0); $1437 = +HEAPF64[$1436>>3]; $1438 = $i; $1439 = $3; $1440 = (($1439) + ($1438<<3)|0); HEAPF64[$1440>>3] = $1437; $1441 = $i; $1442 = (($lp2_a163) + ($1441<<3)|0); $1443 = +HEAPF64[$1442>>3]; $1444 = $i; $1445 = $4; $1446 = (($1445) + ($1444<<3)|0); HEAPF64[$1446>>3] = $1443; $1447 = $i; $1448 = (($hp2_a164) + ($1447<<3)|0); $1449 = +HEAPF64[$1448>>3]; $1450 = $i; $1451 = $5; $1452 = (($1451) + ($1450<<3)|0); HEAPF64[$1452>>3] = $1449; $1453 = $i; $1454 = (($1453) + 1)|0; $i = $1454; } $0 = 16; $1517 = $0; STACKTOP = sp;return ($1517|0); } $1455 = $1; $1456 = (_strcmp($1455,352)|0); $1457 = ($1456|0)!=(0); if (!($1457)) { _memcpy(($lp1_a165|0),(15664|0),144)|0; _memcpy(($hp1_a166|0),(15808|0),144)|0; _memcpy(($lp2_a167|0),(15952|0),144)|0; _memcpy(($hp2_a168|0),(16096|0),144)|0; $i = 0; while(1) { $1458 = $i; $1459 = ($1458|0)<(18); if (!($1459)) { break; } $1460 = $i; $1461 = (($lp1_a165) + ($1460<<3)|0); $1462 = +HEAPF64[$1461>>3]; $1463 = $i; $1464 = $2; $1465 = (($1464) + ($1463<<3)|0); HEAPF64[$1465>>3] = $1462; $1466 = $i; $1467 = (($hp1_a166) + ($1466<<3)|0); $1468 = +HEAPF64[$1467>>3]; $1469 = $i; $1470 = $3; $1471 = (($1470) + ($1469<<3)|0); HEAPF64[$1471>>3] = $1468; $1472 = $i; $1473 = (($lp2_a167) + ($1472<<3)|0); $1474 = +HEAPF64[$1473>>3]; $1475 = $i; $1476 = $4; $1477 = (($1476) + ($1475<<3)|0); HEAPF64[$1477>>3] = $1474; $1478 = $i; $1479 = (($hp2_a168) + ($1478<<3)|0); $1480 = +HEAPF64[$1479>>3]; $1481 = $i; $1482 = $5; $1483 = (($1482) + ($1481<<3)|0); HEAPF64[$1483>>3] = $1480; $1484 = $i; $1485 = (($1484) + 1)|0; $i = $1485; } $0 = 18; $1517 = $0; STACKTOP = sp;return ($1517|0); } $1486 = $1; $1487 = (_strcmp($1486,360)|0); $1488 = ($1487|0)!=(0); if ($1488) { (_printf((368|0),($vararg_buffer|0))|0); $0 = -1; $1517 = $0; STACKTOP = sp;return ($1517|0); } _memcpy(($lp1_a169|0),(16240|0),160)|0; _memcpy(($hp1_a170|0),(16400|0),160)|0; _memcpy(($lp2_a171|0),(16560|0),160)|0; _memcpy(($hp2_a172|0),(16720|0),160)|0; $i = 0; while(1) { $1489 = $i; $1490 = ($1489|0)<(20); if (!($1490)) { break; } $1491 = $i; $1492 = (($lp1_a169) + ($1491<<3)|0); $1493 = +HEAPF64[$1492>>3]; $1494 = $i; $1495 = $2; $1496 = (($1495) + ($1494<<3)|0); HEAPF64[$1496>>3] = $1493; $1497 = $i; $1498 = (($hp1_a170) + ($1497<<3)|0); $1499 = +HEAPF64[$1498>>3]; $1500 = $i; $1501 = $3; $1502 = (($1501) + ($1500<<3)|0); HEAPF64[$1502>>3] = $1499; $1503 = $i; $1504 = (($lp2_a171) + ($1503<<3)|0); $1505 = +HEAPF64[$1504>>3]; $1506 = $i; $1507 = $4; $1508 = (($1507) + ($1506<<3)|0); HEAPF64[$1508>>3] = $1505; $1509 = $i; $1510 = (($hp2_a172) + ($1509<<3)|0); $1511 = +HEAPF64[$1510>>3]; $1512 = $i; $1513 = $5; $1514 = (($1513) + ($1512<<3)|0); HEAPF64[$1514>>3] = $1511; $1515 = $i; $1516 = (($1515) + 1)|0; $i = $1516; } $0 = 20; $1517 = $0; STACKTOP = sp;return ($1517|0); } } ;HEAP32[$lp1_a>>2]=HEAP32[416>>2]|0;HEAP32[$lp1_a+4>>2]=HEAP32[416+4>>2]|0;HEAP32[$lp1_a+8>>2]=HEAP32[416+8>>2]|0;HEAP32[$lp1_a+12>>2]=HEAP32[416+12>>2]|0; ;HEAP32[$hp1_a>>2]=HEAP32[400>>2]|0;HEAP32[$hp1_a+4>>2]=HEAP32[400+4>>2]|0;HEAP32[$hp1_a+8>>2]=HEAP32[400+8>>2]|0;HEAP32[$hp1_a+12>>2]=HEAP32[400+12>>2]|0; ;HEAP32[$lp2_a>>2]=HEAP32[416>>2]|0;HEAP32[$lp2_a+4>>2]=HEAP32[416+4>>2]|0;HEAP32[$lp2_a+8>>2]=HEAP32[416+8>>2]|0;HEAP32[$lp2_a+12>>2]=HEAP32[416+12>>2]|0; ;HEAP32[$hp2_a>>2]=HEAP32[432>>2]|0;HEAP32[$hp2_a+4>>2]=HEAP32[432+4>>2]|0;HEAP32[$hp2_a+8>>2]=HEAP32[432+8>>2]|0;HEAP32[$hp2_a+12>>2]=HEAP32[432+12>>2]|0; $i = 0; while(1) { $12 = $i; $13 = ($12|0)<(2); if (!($13)) { break; } $14 = $i; $15 = (($lp1_a) + ($14<<3)|0); $16 = +HEAPF64[$15>>3]; $17 = $i; $18 = $2; $19 = (($18) + ($17<<3)|0); HEAPF64[$19>>3] = $16; $20 = $i; $21 = (($hp1_a) + ($20<<3)|0); $22 = +HEAPF64[$21>>3]; $23 = $i; $24 = $3; $25 = (($24) + ($23<<3)|0); HEAPF64[$25>>3] = $22; $26 = $i; $27 = (($lp2_a) + ($26<<3)|0); $28 = +HEAPF64[$27>>3]; $29 = $i; $30 = $4; $31 = (($30) + ($29<<3)|0); HEAPF64[$31>>3] = $28; $32 = $i; $33 = (($hp2_a) + ($32<<3)|0); $34 = +HEAPF64[$33>>3]; $35 = $i; $36 = $5; $37 = (($36) + ($35<<3)|0); HEAPF64[$37>>3] = $34; $38 = $i; $39 = (($38) + 1)|0; $i = $39; } $0 = 2; $1517 = $0; STACKTOP = sp;return ($1517|0); } function _upsamp($x,$lenx,$M,$y) { $x = $x|0; $lenx = $lenx|0; $M = $M|0; $y = $y|0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0.0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $N = 0, $i = 0, $j = 0, $k = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $1 = $x; $2 = $lenx; $3 = $M; $4 = $y; $5 = $3; $6 = ($5|0)<(0); if ($6) { $0 = -1; $50 = $0; STACKTOP = sp;return ($50|0); } $7 = $3; $8 = ($7|0)==(0); if ($8) { $i = 0; while(1) { $9 = $i; $10 = $2; $11 = ($9|0)<($10|0); if (!($11)) { break; } $12 = $i; $13 = $1; $14 = (($13) + ($12<<3)|0); $15 = +HEAPF64[$14>>3]; $16 = $i; $17 = $4; $18 = (($17) + ($16<<3)|0); HEAPF64[$18>>3] = $15; $19 = $i; $20 = (($19) + 1)|0; $i = $20; } $21 = $2; $0 = $21; $50 = $0; STACKTOP = sp;return ($50|0); } $22 = $3; $23 = $2; $24 = (($23) - 1)|0; $25 = Math_imul($22, $24)|0; $26 = (($25) + 1)|0; $N = $26; $j = 1; $k = 0; $i = 0; while(1) { $27 = $i; $28 = $N; $29 = ($27|0)<($28|0); if (!($29)) { break; } $30 = $j; $31 = (($30) + -1)|0; $j = $31; $32 = $i; $33 = $4; $34 = (($33) + ($32<<3)|0); HEAPF64[$34>>3] = 0.0; $35 = $j; $36 = ($35|0)==(0); if ($36) { $37 = $k; $38 = $1; $39 = (($38) + ($37<<3)|0); $40 = +HEAPF64[$39>>3]; $41 = $i; $42 = $4; $43 = (($42) + ($41<<3)|0); HEAPF64[$43>>3] = $40; $44 = $k; $45 = (($44) + 1)|0; $k = $45; $46 = $3; $j = $46; } $47 = $i; $48 = (($47) + 1)|0; $i = $48; } $49 = $N; $0 = $49; $50 = $0; STACKTOP = sp;return ($50|0); } function _upsamp2($x,$lenx,$M,$y) { $x = $x|0; $lenx = $lenx|0; $M = $M|0; $y = $y|0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0.0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $N = 0, $i = 0, $j = 0, $k = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $1 = $x; $2 = $lenx; $3 = $M; $4 = $y; $5 = $3; $6 = ($5|0)<(0); if ($6) { $0 = -1; $48 = $0; STACKTOP = sp;return ($48|0); } $7 = $3; $8 = ($7|0)==(0); if ($8) { $i = 0; while(1) { $9 = $i; $10 = $2; $11 = ($9|0)<($10|0); if (!($11)) { break; } $12 = $i; $13 = $1; $14 = (($13) + ($12<<3)|0); $15 = +HEAPF64[$14>>3]; $16 = $i; $17 = $4; $18 = (($17) + ($16<<3)|0); HEAPF64[$18>>3] = $15; $19 = $i; $20 = (($19) + 1)|0; $i = $20; } $21 = $2; $0 = $21; $48 = $0; STACKTOP = sp;return ($48|0); } $22 = $3; $23 = $2; $24 = Math_imul($22, $23)|0; $N = $24; $j = 1; $k = 0; $i = 0; while(1) { $25 = $i; $26 = $N; $27 = ($25|0)<($26|0); if (!($27)) { break; } $28 = $j; $29 = (($28) + -1)|0; $j = $29; $30 = $i; $31 = $4; $32 = (($31) + ($30<<3)|0); HEAPF64[$32>>3] = 0.0; $33 = $j; $34 = ($33|0)==(0); if ($34) { $35 = $k; $36 = $1; $37 = (($36) + ($35<<3)|0); $38 = +HEAPF64[$37>>3]; $39 = $i; $40 = $4; $41 = (($40) + ($39<<3)|0); HEAPF64[$41>>3] = $38; $42 = $k; $43 = (($42) + 1)|0; $k = $43; $44 = $3; $j = $44; } $45 = $i; $46 = (($45) + 1)|0; $i = $46; } $47 = $N; $0 = $47; $48 = $0; STACKTOP = sp;return ($48|0); } function _downsamp($x,$lenx,$M,$y) { $x = $x|0; $lenx = $lenx|0; $M = $M|0; $y = $y|0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0.0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $5 = 0, $6 = 0; var $7 = 0, $8 = 0, $9 = 0, $N = 0, $i = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $1 = $x; $2 = $lenx; $3 = $M; $4 = $y; $5 = $3; $6 = ($5|0)<(0); if ($6) { $0 = -1; $42 = $0; STACKTOP = sp;return ($42|0); } $7 = $3; $8 = ($7|0)==(0); if ($8) { $i = 0; while(1) { $9 = $i; $10 = $2; $11 = ($9|0)<($10|0); if (!($11)) { break; } $12 = $i; $13 = $1; $14 = (($13) + ($12<<3)|0); $15 = +HEAPF64[$14>>3]; $16 = $i; $17 = $4; $18 = (($17) + ($16<<3)|0); HEAPF64[$18>>3] = $15; $19 = $i; $20 = (($19) + 1)|0; $i = $20; } $21 = $2; $0 = $21; $42 = $0; STACKTOP = sp;return ($42|0); } else { $22 = $2; $23 = (($22) - 1)|0; $24 = $3; $25 = (($23|0) / ($24|0))&-1; $26 = (($25) + 1)|0; $N = $26; $i = 0; while(1) { $27 = $i; $28 = $N; $29 = ($27|0)<($28|0); if (!($29)) { break; } $30 = $i; $31 = $3; $32 = Math_imul($30, $31)|0; $33 = $1; $34 = (($33) + ($32<<3)|0); $35 = +HEAPF64[$34>>3]; $36 = $i; $37 = $4; $38 = (($37) + ($36<<3)|0); HEAPF64[$38>>3] = $35; $39 = $i; $40 = (($39) + 1)|0; $i = $40; } $41 = $N; $0 = $41; $42 = $0; STACKTOP = sp;return ($42|0); } return (0)|0; } function _per_ext($sig,$len,$a,$oup) { $sig = $sig|0; $len = $len|0; $a = $a|0; $oup = $oup|0; var $0 = 0, $1 = 0, $10 = 0.0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; var $27 = 0, $28 = 0.0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0.0, $43 = 0, $44 = 0; var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0.0, $52 = 0.0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0.0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $8 = 0, $9 = 0, $i = 0, $len2 = 0, $temp1 = 0.0, $temp2 = 0.0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $sig; $1 = $len; $2 = $a; $3 = $oup; $i = 0; while(1) { $4 = $i; $5 = $1; $6 = ($4|0)<($5|0); if (!($6)) { break; } $7 = $i; $8 = $0; $9 = (($8) + ($7<<3)|0); $10 = +HEAPF64[$9>>3]; $11 = $2; $12 = $i; $13 = (($11) + ($12))|0; $14 = $3; $15 = (($14) + ($13<<3)|0); HEAPF64[$15>>3] = $10; $16 = $i; $17 = (($16) + 1)|0; $i = $17; } $18 = $1; $len2 = $18; $19 = $1; $20 = (($19|0) % 2)&-1; $21 = ($20|0)!=(0); if ($21) { $22 = $1; $23 = (($22) + 1)|0; $len2 = $23; $24 = $1; $25 = (($24) - 1)|0; $26 = $0; $27 = (($26) + ($25<<3)|0); $28 = +HEAPF64[$27>>3]; $29 = $2; $30 = $1; $31 = (($29) + ($30))|0; $32 = $3; $33 = (($32) + ($31<<3)|0); HEAPF64[$33>>3] = $28; } $i = 0; while(1) { $34 = $i; $35 = $2; $36 = ($34|0)<($35|0); if (!($36)) { break; } $37 = $2; $38 = $i; $39 = (($37) + ($38))|0; $40 = $3; $41 = (($40) + ($39<<3)|0); $42 = +HEAPF64[$41>>3]; $temp1 = $42; $43 = $2; $44 = $len2; $45 = (($43) + ($44))|0; $46 = (($45) - 1)|0; $47 = $i; $48 = (($46) - ($47))|0; $49 = $3; $50 = (($49) + ($48<<3)|0); $51 = +HEAPF64[$50>>3]; $temp2 = $51; $52 = $temp2; $53 = $2; $54 = (($53) - 1)|0; $55 = $i; $56 = (($54) - ($55))|0; $57 = $3; $58 = (($57) + ($56<<3)|0); HEAPF64[$58>>3] = $52; $59 = $temp1; $60 = $len2; $61 = $2; $62 = (($60) + ($61))|0; $63 = $i; $64 = (($62) + ($63))|0; $65 = $3; $66 = (($65) + ($64<<3)|0); HEAPF64[$66>>3] = $59; $67 = $i; $68 = (($67) + 1)|0; $i = $68; } $69 = $len2; STACKTOP = sp;return ($69|0); } function _symm_ext($sig,$len,$a,$oup) { $sig = $sig|0; $len = $len|0; $a = $a|0; $oup = $oup|0; var $0 = 0, $1 = 0, $10 = 0.0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; var $27 = 0.0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0.0, $37 = 0.0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0.0; var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $i = 0, $len2 = 0, $temp1 = 0.0, $temp2 = 0.0, label = 0; var sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $sig; $1 = $len; $2 = $a; $3 = $oup; $i = 0; while(1) { $4 = $i; $5 = $1; $6 = ($4|0)<($5|0); if (!($6)) { break; } $7 = $i; $8 = $0; $9 = (($8) + ($7<<3)|0); $10 = +HEAPF64[$9>>3]; $11 = $2; $12 = $i; $13 = (($11) + ($12))|0; $14 = $3; $15 = (($14) + ($13<<3)|0); HEAPF64[$15>>3] = $10; $16 = $i; $17 = (($16) + 1)|0; $i = $17; } $18 = $1; $len2 = $18; $i = 0; while(1) { $19 = $i; $20 = $2; $21 = ($19|0)<($20|0); if (!($21)) { break; } $22 = $2; $23 = $i; $24 = (($22) + ($23))|0; $25 = $3; $26 = (($25) + ($24<<3)|0); $27 = +HEAPF64[$26>>3]; $temp1 = $27; $28 = $2; $29 = $len2; $30 = (($28) + ($29))|0; $31 = (($30) - 1)|0; $32 = $i; $33 = (($31) - ($32))|0; $34 = $3; $35 = (($34) + ($33<<3)|0); $36 = +HEAPF64[$35>>3]; $temp2 = $36; $37 = $temp1; $38 = $2; $39 = (($38) - 1)|0; $40 = $i; $41 = (($39) - ($40))|0; $42 = $3; $43 = (($42) + ($41<<3)|0); HEAPF64[$43>>3] = $37; $44 = $temp2; $45 = $len2; $46 = $2; $47 = (($45) + ($46))|0; $48 = $i; $49 = (($47) + ($48))|0; $50 = $3; $51 = (($50) + ($49<<3)|0); HEAPF64[$51>>3] = $44; $52 = $i; $53 = (($52) + 1)|0; $i = $53; } $54 = $len2; STACKTOP = sp;return ($54|0); } function _circshift($array,$N,$L) { $array = $array|0; $N = $N|0; $L = $L|0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0.0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; var $45 = 0, $46 = 0.0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0.0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $7 = 0, $8 = 0, $9 = 0, $i = 0, $temp = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $array; $1 = $N; $2 = $L; $3 = $2; $4 = (_iabs($3)|0); $5 = $1; $6 = ($4|0)>($5|0); if ($6) { $7 = $2; $8 = (_isign($7)|0); $9 = $2; $10 = (_iabs($9)|0); $11 = $1; $12 = (($10|0) % ($11|0))&-1; $13 = Math_imul($8, $12)|0; $2 = $13; } $14 = $2; $15 = ($14|0)<(0); if ($15) { $16 = $1; $17 = $2; $18 = (($16) + ($17))|0; $19 = $1; $20 = (($18|0) % ($19|0))&-1; $2 = $20; } $21 = $2; $22 = $21<<3; $23 = (_malloc($22)|0); $temp = $23; $i = 0; while(1) { $24 = $i; $25 = $2; $26 = ($24|0)<($25|0); if (!($26)) { break; } $27 = $i; $28 = $0; $29 = (($28) + ($27<<3)|0); $30 = +HEAPF64[$29>>3]; $31 = $i; $32 = $temp; $33 = (($32) + ($31<<3)|0); HEAPF64[$33>>3] = $30; $34 = $i; $35 = (($34) + 1)|0; $i = $35; } $i = 0; while(1) { $36 = $i; $37 = $1; $38 = $2; $39 = (($37) - ($38))|0; $40 = ($36|0)<($39|0); if (!($40)) { break; } $41 = $i; $42 = $2; $43 = (($41) + ($42))|0; $44 = $0; $45 = (($44) + ($43<<3)|0); $46 = +HEAPF64[$45>>3]; $47 = $i; $48 = $0; $49 = (($48) + ($47<<3)|0); HEAPF64[$49>>3] = $46; $50 = $i; $51 = (($50) + 1)|0; $i = $51; } $i = 0; while(1) { $52 = $i; $53 = $2; $54 = ($52|0)<($53|0); if (!($54)) { break; } $55 = $i; $56 = $temp; $57 = (($56) + ($55<<3)|0); $58 = +HEAPF64[$57>>3]; $59 = $1; $60 = $2; $61 = (($59) - ($60))|0; $62 = $i; $63 = (($61) + ($62))|0; $64 = $0; $65 = (($64) + ($63<<3)|0); HEAPF64[$65>>3] = $58; $66 = $i; $67 = (($66) + 1)|0; $i = $67; } $68 = $temp; _free($68); STACKTOP = sp;return; } function _testSWTlength($N,$J) { $N = $N|0; $J = $J|0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $div = 0, $i = 0, $ret = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $N; $1 = $J; $ret = 1; $div = 1; $i = 0; while(1) { $2 = $i; $3 = $1; $4 = ($2|0)<($3|0); if (!($4)) { break; } $5 = $div; $6 = $5<<1; $div = $6; $7 = $i; $8 = (($7) + 1)|0; $i = $8; } $9 = $0; $10 = $div; $11 = (($9|0) % ($10|0))&-1; $12 = ($11|0)!=(0); if (!($12)) { $13 = $ret; STACKTOP = sp;return ($13|0); } $ret = 0; $13 = $ret; STACKTOP = sp;return ($13|0); } function _wmaxiter($sig_len,$filt_len) { $sig_len = $sig_len|0; $filt_len = $filt_len|0; var $0 = 0, $1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0, $13 = 0, $2 = 0, $3 = 0.0, $4 = 0, $5 = 0.0, $6 = 0.0, $7 = 0.0, $8 = 0.0, $9 = 0.0, $lev = 0, $temp = 0.0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $sig_len; $1 = $filt_len; $2 = $0; $3 = (+($2|0)); $4 = $1; $5 = (+($4|0)); $6 = $5 - 1.0; $7 = $3 / $6; $8 = (+Math_log((+$7))); $9 = (+Math_log(2.0)); $10 = $8 / $9; $temp = $10; $11 = $temp; $12 = (~~(($11))); $lev = $12; $13 = $lev; STACKTOP = sp;return ($13|0); } function _iabs($N) { $N = $N|0; var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $1 = $N; $2 = $1; $3 = ($2|0)>=(0); $4 = $1; if ($3) { $0 = $4; } else { $5 = (0 - ($4))|0; $0 = $5; } $6 = $0; STACKTOP = sp;return ($6|0); } function _isign($N) { $N = $N|0; var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $M = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $N; $1 = $0; $2 = ($1|0)>=(0); if ($2) { $M = 1; } else { $M = -1; } $3 = $M; STACKTOP = sp;return ($3|0); } function _wave_init($wname) { $wname = $wname|0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $7 = 0, $8 = 0, $9 = 0, $obj = 0, $retval = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $wname; $obj = 0; $retval = 0; $1 = $0; $2 = ($1|0)!=(0|0); if ($2) { $3 = $0; $4 = (_filtlength($3)|0); $retval = $4; } $5 = $retval; $6 = $5<<5; $7 = (88 + ($6))|0; $8 = (_malloc($7)|0); $obj = $8; $9 = $retval; $10 = $obj; $11 = ((($10)) + 52|0); HEAP32[$11>>2] = $9; $12 = $obj; $13 = ((($12)) + 52|0); $14 = HEAP32[$13>>2]|0; $15 = $obj; $16 = ((($15)) + 68|0); HEAP32[$16>>2] = $14; $17 = $obj; $18 = ((($17)) + 64|0); HEAP32[$18>>2] = $14; $19 = $obj; $20 = ((($19)) + 60|0); HEAP32[$20>>2] = $14; $21 = $obj; $22 = ((($21)) + 56|0); HEAP32[$22>>2] = $14; $23 = $obj; $24 = $0; (_strcpy(($23|0),($24|0))|0); $25 = $0; $26 = ($25|0)!=(0|0); if ($26) { $27 = $0; $28 = $obj; $29 = ((($28)) + 88|0); $30 = $obj; $31 = ((($30)) + 88|0); $32 = $retval; $33 = (($31) + ($32<<3)|0); $34 = $obj; $35 = ((($34)) + 88|0); $36 = $retval; $37 = $36<<1; $38 = (($35) + ($37<<3)|0); $39 = $obj; $40 = ((($39)) + 88|0); $41 = $retval; $42 = ($41*3)|0; $43 = (($40) + ($42<<3)|0); (_filtcoef($27,$29,$33,$38,$43)|0); } $44 = $obj; $45 = ((($44)) + 88|0); $46 = $obj; $47 = ((($46)) + 72|0); HEAP32[$47>>2] = $45; $48 = $retval; $49 = $obj; $50 = ((($49)) + 88|0); $51 = (($50) + ($48<<3)|0); $52 = $obj; $53 = ((($52)) + 76|0); HEAP32[$53>>2] = $51; $54 = $retval; $55 = $54<<1; $56 = $obj; $57 = ((($56)) + 88|0); $58 = (($57) + ($55<<3)|0); $59 = $obj; $60 = ((($59)) + 80|0); HEAP32[$60>>2] = $58; $61 = $retval; $62 = ($61*3)|0; $63 = $obj; $64 = ((($63)) + 88|0); $65 = (($64) + ($62<<3)|0); $66 = $obj; $67 = ((($66)) + 84|0); HEAP32[$67>>2] = $65; $68 = $obj; STACKTOP = sp;return ($68|0); } function _wt_init($wave,$method,$siglength,$J) { $wave = $wave|0; $method = $method|0; $siglength = $siglength|0; $J = $J|0; var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0; var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0; var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0; var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0; var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0; var $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0; var $MaxIter = 0, $i = 0, $obj = 0, $size = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, $vararg_buffer5 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $vararg_buffer5 = sp + 24|0; $vararg_buffer3 = sp; $vararg_buffer1 = sp + 8|0; $vararg_buffer = sp + 16|0; $0 = $wave; $1 = $method; $2 = $siglength; $3 = $J; $obj = 0; $4 = $0; $5 = ((($4)) + 52|0); $6 = HEAP32[$5>>2]|0; $size = $6; $7 = $3; $8 = ($7|0)>(100); if ($8) { (_printf((16880|0),($vararg_buffer|0))|0); _exit(-1); // unreachable; } $9 = $2; $10 = $size; $11 = (_wmaxiter($9,$10)|0); $MaxIter = $11; $12 = $3; $13 = $MaxIter; $14 = ($12|0)>($13|0); if ($14) { $15 = $MaxIter; HEAP32[$vararg_buffer1>>2] = $15; (_printf((16944|0),($vararg_buffer1|0))|0); _exit(-1); // unreachable; } $16 = $1; $17 = ($16|0)==(0|0); do { if ($17) { $18 = $2; $19 = $3; $20 = $19<<1; $21 = $size; $22 = (($21) + 1)|0; $23 = Math_imul($20, $22)|0; $24 = (($18) + ($23))|0; $25 = $24<<3; $26 = (488 + ($25))|0; $27 = (_malloc($26)|0); $obj = $27; $28 = $2; $29 = $3; $30 = $29<<1; $31 = $size; $32 = (($31) + 1)|0; $33 = Math_imul($30, $32)|0; $34 = (($28) + ($33))|0; $35 = $obj; $36 = ((($35)) + 24|0); HEAP32[$36>>2] = $34; $37 = $obj; $38 = ((($37)) + 44|0); (_strcpy(($38|0),(17448|0))|0); } else { $39 = $1; $40 = (_strcmp($39,17424)|0); $41 = ($40|0)!=(0); if ($41) { $42 = $1; $43 = (_strcmp($42,17432)|0); $44 = ($43|0)!=(0); if ($44) { $66 = $1; $67 = (_strcmp($66,17456)|0); $68 = ($67|0)!=(0); if ($68) { $69 = $1; $70 = (_strcmp($69,17464)|0); $71 = ($70|0)!=(0); if ($71) { $91 = $1; $92 = (_strcmp($91,17472)|0); $93 = ($92|0)!=(0); if ($93) { $94 = $1; $95 = (_strcmp($94,17480)|0); $96 = ($95|0)!=(0); if ($96) { break; } } $97 = $0; $98 = (_strstr($97,17088)|0); $99 = ($98|0)!=(0|0); if (!($99)) { $100 = $0; $101 = (_strstr($100,17448)|0); $102 = ($101|0)!=(0|0); if (!($102)) { $103 = $0; $104 = (_strstr($103,17096)|0); $105 = ($104|0)!=(0|0); if (!($105)) { (_printf((17104|0),($vararg_buffer5|0))|0); _exit(-1); // unreachable; } } } $106 = $2; $107 = $3; $108 = (($107) + 1)|0; $109 = Math_imul($106, $108)|0; $110 = $109<<3; $111 = (488 + ($110))|0; $112 = (_malloc($111)|0); $obj = $112; $113 = $2; $114 = $3; $115 = (($114) + 1)|0; $116 = Math_imul($113, $115)|0; $117 = $obj; $118 = ((($117)) + 24|0); HEAP32[$118>>2] = $116; $119 = $obj; $120 = ((($119)) + 44|0); (_strcpy(($120|0),(17440|0))|0); break; } } $72 = $2; $73 = $3; $74 = (_testSWTlength($72,$73)|0); $75 = ($74|0)!=(0); if ($75) { $76 = $2; $77 = $3; $78 = (($77) + 1)|0; $79 = Math_imul($76, $78)|0; $80 = $79<<3; $81 = (488 + ($80))|0; $82 = (_malloc($81)|0); $obj = $82; $83 = $2; $84 = $3; $85 = (($84) + 1)|0; $86 = Math_imul($83, $85)|0; $87 = $obj; $88 = ((($87)) + 24|0); HEAP32[$88>>2] = $86; $89 = $obj; $90 = ((($89)) + 44|0); (_strcpy(($90|0),(17440|0))|0); break; } else { (_printf((17024|0),($vararg_buffer3|0))|0); _exit(-1); // unreachable; } } } $45 = $2; $46 = $3; $47 = $46<<1; $48 = $size; $49 = (($48) + 1)|0; $50 = Math_imul($47, $49)|0; $51 = (($45) + ($50))|0; $52 = $51<<3; $53 = (488 + ($52))|0; $54 = (_malloc($53)|0); $obj = $54; $55 = $2; $56 = $3; $57 = $56<<1; $58 = $size; $59 = (($58) + 1)|0; $60 = Math_imul($57, $59)|0; $61 = (($55) + ($60))|0; $62 = $obj; $63 = ((($62)) + 24|0); HEAP32[$63>>2] = $61; $64 = $obj; $65 = ((($64)) + 44|0); (_strcpy(($65|0),(17448|0))|0); } } while(0); $121 = $0; $122 = $obj; HEAP32[$122>>2] = $121; $123 = $2; $124 = $obj; $125 = ((($124)) + 20|0); HEAP32[$125>>2] = $123; $126 = $3; $127 = $obj; $128 = ((($127)) + 32|0); HEAP32[$128>>2] = $126; $129 = $MaxIter; $130 = $obj; $131 = ((($130)) + 36|0); HEAP32[$131>>2] = $129; $132 = $obj; $133 = ((($132)) + 8|0); $134 = $1; (_strcpy(($133|0),($134|0))|0); $135 = $2; $136 = (($135|0) % 2)&-1; $137 = ($136|0)==(0); $138 = $obj; $139 = ((($138)) + 40|0); if ($137) { HEAP32[$139>>2] = 1; } else { HEAP32[$139>>2] = 0; } $140 = $obj; $141 = ((($140)) + 4|0); HEAP32[$141>>2] = 0; $142 = $obj; $143 = ((($142)) + 54|0); (_strcpy(($143|0),(17192|0))|0); $144 = $obj; $145 = ((($144)) + 68|0); HEAP32[$145>>2] = 0; $146 = $3; $147 = (($146) + 2)|0; $148 = $obj; $149 = ((($148)) + 28|0); HEAP32[$149>>2] = $147; $150 = $obj; $151 = ((($150)) + 488|0); $152 = $obj; $153 = ((($152)) + 484|0); HEAP32[$153>>2] = $151; $154 = $1; $155 = (_strcmp($154,17424)|0); $156 = ($155|0)!=(0); if ($156) { $157 = $1; $158 = (_strcmp($157,17432)|0); $159 = ($158|0)!=(0); if ($159) { $175 = $1; $176 = (_strcmp($175,17456)|0); $177 = ($176|0)!=(0); if ($177) { $178 = $1; $179 = (_strcmp($178,17464)|0); $180 = ($179|0)!=(0); if ($180) { $181 = $1; $182 = (_strcmp($181,17472)|0); $183 = ($182|0)!=(0); if ($183) { $184 = $1; $185 = (_strcmp($184,17480)|0); $186 = ($185|0)!=(0); if ($186) { $199 = $obj; STACKTOP = sp;return ($199|0); } } } } $i = 0; while(1) { $187 = $i; $188 = $2; $189 = $3; $190 = (($189) + 1)|0; $191 = Math_imul($188, $190)|0; $192 = ($187|0)<($191|0); if (!($192)) { break; } $193 = $i; $194 = $obj; $195 = ((($194)) + 488|0); $196 = (($195) + ($193<<3)|0); HEAPF64[$196>>3] = 0.0; $197 = $i; $198 = (($197) + 1)|0; $i = $198; } $199 = $obj; STACKTOP = sp;return ($199|0); } } $i = 0; while(1) { $160 = $i; $161 = $2; $162 = $3; $163 = $162<<1; $164 = $size; $165 = (($164) + 1)|0; $166 = Math_imul($163, $165)|0; $167 = (($161) + ($166))|0; $168 = ($160|0)<($167|0); if (!($168)) { break; } $169 = $i; $170 = $obj; $171 = ((($170)) + 488|0); $172 = (($171) + ($169<<3)|0); HEAPF64[$172>>3] = 0.0; $173 = $i; $174 = (($173) + 1)|0; $i = $174; } $199 = $obj; STACKTOP = sp;return ($199|0); } function _dwt($wt,$inp) { $wt = $wt|0; $inp = $inp|0; var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0; var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0; var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0.0, $17 = 0; var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0.0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0; var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0.0, $203 = 0.0, $204 = 0.0, $205 = 0; var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0; var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0; var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0; var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0; var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0.0; var $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0.0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0; var $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0.0, $44 = 0, $45 = 0; var $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0.0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0; var $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0.0, $76 = 0.0, $77 = 0.0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0; var $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $J = 0; var $N = 0, $i = 0, $iter = 0, $len_cA = 0, $lp = 0, $orig = 0, $orig2 = 0, $temp_len = 0, $vararg_buffer = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $vararg_buffer = sp; $0 = $wt; $1 = $inp; $2 = $0; $3 = ((($2)) + 20|0); $4 = HEAP32[$3>>2]|0; $temp_len = $4; $5 = $0; $6 = ((($5)) + 32|0); $7 = HEAP32[$6>>2]|0; $J = $7; $8 = $temp_len; $9 = $J; $10 = (($9) + 1)|0; $11 = $0; $12 = ((($11)) + 76|0); $13 = (($12) + ($10<<2)|0); HEAP32[$13>>2] = $8; $14 = $0; $15 = ((($14)) + 24|0); HEAP32[$15>>2] = 0; $16 = $temp_len; $17 = (($16|0) % 2)&-1; $18 = ($17|0)==(0); $19 = $0; $20 = ((($19)) + 72|0); if ($18) { HEAP32[$20>>2] = 0; $21 = $temp_len; $22 = $21<<3; $23 = (_malloc($22)|0); $orig = $23; $24 = $temp_len; $25 = $24<<3; $26 = (_malloc($25)|0); $orig2 = $26; } else { HEAP32[$20>>2] = 1; $27 = $temp_len; $28 = (($27) + 1)|0; $temp_len = $28; $29 = $temp_len; $30 = $29<<3; $31 = (_malloc($30)|0); $orig = $31; $32 = $temp_len; $33 = $32<<3; $34 = (_malloc($33)|0); $orig2 = $34; } $i = 0; while(1) { $35 = $i; $36 = $0; $37 = ((($36)) + 20|0); $38 = HEAP32[$37>>2]|0; $39 = ($35|0)<($38|0); if (!($39)) { break; } $40 = $i; $41 = $1; $42 = (($41) + ($40<<3)|0); $43 = +HEAPF64[$42>>3]; $44 = $i; $45 = $orig; $46 = (($45) + ($44<<3)|0); HEAPF64[$46>>3] = $43; $47 = $i; $48 = (($47) + 1)|0; $i = $48; } $49 = $0; $50 = ((($49)) + 72|0); $51 = HEAP32[$50>>2]|0; $52 = ($51|0)==(1); if ($52) { $53 = $temp_len; $54 = (($53) - 2)|0; $55 = $orig; $56 = (($55) + ($54<<3)|0); $57 = +HEAPF64[$56>>3]; $58 = $temp_len; $59 = (($58) - 1)|0; $60 = $orig; $61 = (($60) + ($59<<3)|0); HEAPF64[$61>>3] = $57; } $62 = $temp_len; $N = $62; $63 = $0; $64 = HEAP32[$63>>2]|0; $65 = ((($64)) + 56|0); $66 = HEAP32[$65>>2]|0; $lp = $66; $67 = $0; $68 = ((($67)) + 44|0); $69 = (_strcmp($68,17440)|0); $70 = ($69|0)!=(0); if (!($70)) { $71 = $J; $i = $71; while(1) { $72 = $i; $73 = ($72|0)>(0); if (!($73)) { break; } $74 = $N; $75 = (+($74|0)); $76 = $75 / 2.0; $77 = (+Math_ceil((+$76))); $78 = (~~(($77))); $N = $78; $79 = $N; $80 = $i; $81 = $0; $82 = ((($81)) + 76|0); $83 = (($82) + ($80<<2)|0); HEAP32[$83>>2] = $79; $84 = $i; $85 = $0; $86 = ((($85)) + 76|0); $87 = (($86) + ($84<<2)|0); $88 = HEAP32[$87>>2]|0; $89 = $0; $90 = ((($89)) + 24|0); $91 = HEAP32[$90>>2]|0; $92 = (($91) + ($88))|0; HEAP32[$90>>2] = $92; $93 = $i; $94 = (($93) + -1)|0; $i = $94; } $95 = $0; $96 = ((($95)) + 76|0); $97 = ((($96)) + 4|0); $98 = HEAP32[$97>>2]|0; $99 = $0; $100 = ((($99)) + 76|0); HEAP32[$100>>2] = $98; $101 = $0; $102 = ((($101)) + 76|0); $103 = HEAP32[$102>>2]|0; $104 = $0; $105 = ((($104)) + 24|0); $106 = HEAP32[$105>>2]|0; $107 = (($106) + ($103))|0; HEAP32[$105>>2] = $107; $108 = $0; $109 = ((($108)) + 24|0); $110 = HEAP32[$109>>2]|0; $N = $110; $iter = 0; while(1) { $111 = $iter; $112 = $J; $113 = ($111|0)<($112|0); if (!($113)) { break; } $114 = $J; $115 = $iter; $116 = (($114) - ($115))|0; $117 = $0; $118 = ((($117)) + 76|0); $119 = (($118) + ($116<<2)|0); $120 = HEAP32[$119>>2]|0; $len_cA = $120; $121 = $len_cA; $122 = $N; $123 = (($122) - ($121))|0; $N = $123; $124 = $0; $125 = ((($124)) + 54|0); $126 = (_strcmp($125,17200)|0); $127 = ($126|0)!=(0); if ($127) { $128 = $0; $129 = ((($128)) + 54|0); $130 = (_strcmp($129,17208)|0); $131 = ($130|0)!=(0); if ($131) { $142 = $0; $143 = $orig; $144 = $temp_len; $145 = $orig2; $146 = $len_cA; $147 = $0; $148 = ((($147)) + 488|0); $149 = $N; $150 = (($148) + ($149<<3)|0); $151 = $len_cA; _dwt_per($142,$143,$144,$145,$146,$150,$151); } else { label = 17; } } else { label = 17; } if ((label|0) == 17) { label = 0; $132 = $0; $133 = $orig; $134 = $temp_len; $135 = $orig2; $136 = $len_cA; $137 = $0; $138 = ((($137)) + 488|0); $139 = $N; $140 = (($138) + ($139<<3)|0); $141 = $len_cA; _dwt1($132,$133,$134,$135,$136,$140,$141); } $152 = $J; $153 = $iter; $154 = (($152) - ($153))|0; $155 = $0; $156 = ((($155)) + 76|0); $157 = (($156) + ($154<<2)|0); $158 = HEAP32[$157>>2]|0; $temp_len = $158; $159 = $iter; $160 = $J; $161 = (($160) - 1)|0; $162 = ($159|0)==($161|0); $i = 0; L27: do { if ($162) { while(1) { $163 = $i; $164 = $len_cA; $165 = ($163|0)<($164|0); if (!($165)) { break L27; } $166 = $i; $167 = $orig2; $168 = (($167) + ($166<<3)|0); $169 = +HEAPF64[$168>>3]; $170 = $i; $171 = $0; $172 = ((($171)) + 488|0); $173 = (($172) + ($170<<3)|0); HEAPF64[$173>>3] = $169; $174 = $i; $175 = (($174) + 1)|0; $i = $175; } } else { while(1) { $176 = $i; $177 = $len_cA; $178 = ($176|0)<($177|0); if (!($178)) { break L27; } $179 = $i; $180 = $orig2; $181 = (($180) + ($179<<3)|0); $182 = +HEAPF64[$181>>3]; $183 = $i; $184 = $orig; $185 = (($184) + ($183<<3)|0); HEAPF64[$185>>3] = $182; $186 = $i; $187 = (($186) + 1)|0; $i = $187; } } } while(0); $188 = $iter; $189 = (($188) + 1)|0; $iter = $189; } $317 = $orig; _free($317); $318 = $orig2; _free($318); STACKTOP = sp;return; } $190 = $0; $191 = ((($190)) + 44|0); $192 = (_strcmp($191,17448)|0); $193 = ($192|0)!=(0); if ($193) { (_printf((17216|0),($vararg_buffer|0))|0); _exit(-1); // unreachable; } $194 = $J; $i = $194; while(1) { $195 = $i; $196 = ($195|0)>(0); if (!($196)) { break; } $197 = $N; $198 = $lp; $199 = (($197) + ($198))|0; $200 = (($199) - 2)|0; $N = $200; $201 = $N; $202 = (+($201|0)); $203 = $202 / 2.0; $204 = (+Math_ceil((+$203))); $205 = (~~(($204))); $N = $205; $206 = $N; $207 = $i; $208 = $0; $209 = ((($208)) + 76|0); $210 = (($209) + ($207<<2)|0); HEAP32[$210>>2] = $206; $211 = $i; $212 = $0; $213 = ((($212)) + 76|0); $214 = (($213) + ($211<<2)|0); $215 = HEAP32[$214>>2]|0; $216 = $0; $217 = ((($216)) + 24|0); $218 = HEAP32[$217>>2]|0; $219 = (($218) + ($215))|0; HEAP32[$217>>2] = $219; $220 = $i; $221 = (($220) + -1)|0; $i = $221; } $222 = $0; $223 = ((($222)) + 76|0); $224 = ((($223)) + 4|0); $225 = HEAP32[$224>>2]|0; $226 = $0; $227 = ((($226)) + 76|0); HEAP32[$227>>2] = $225; $228 = $0; $229 = ((($228)) + 76|0); $230 = HEAP32[$229>>2]|0; $231 = $0; $232 = ((($231)) + 24|0); $233 = HEAP32[$232>>2]|0; $234 = (($233) + ($230))|0; HEAP32[$232>>2] = $234; $235 = $0; $236 = ((($235)) + 24|0); $237 = HEAP32[$236>>2]|0; $N = $237; $iter = 0; while(1) { $238 = $iter; $239 = $J; $240 = ($238|0)<($239|0); if (!($240)) { break; } $241 = $J; $242 = $iter; $243 = (($241) - ($242))|0; $244 = $0; $245 = ((($244)) + 76|0); $246 = (($245) + ($243<<2)|0); $247 = HEAP32[$246>>2]|0; $len_cA = $247; $248 = $len_cA; $249 = $N; $250 = (($249) - ($248))|0; $N = $250; $251 = $0; $252 = ((($251)) + 54|0); $253 = (_strcmp($252,17200)|0); $254 = ($253|0)!=(0); if ($254) { $255 = $0; $256 = ((($255)) + 54|0); $257 = (_strcmp($256,17208)|0); $258 = ($257|0)!=(0); if ($258) { $269 = $0; $270 = $orig; $271 = $temp_len; $272 = $orig2; $273 = $len_cA; $274 = $0; $275 = ((($274)) + 488|0); $276 = $N; $277 = (($275) + ($276<<3)|0); $278 = $len_cA; _dwt_sym($269,$270,$271,$272,$273,$277,$278); } else { label = 33; } } else { label = 33; } if ((label|0) == 33) { label = 0; $259 = $0; $260 = $orig; $261 = $temp_len; $262 = $orig2; $263 = $len_cA; $264 = $0; $265 = ((($264)) + 488|0); $266 = $N; $267 = (($265) + ($266<<3)|0); $268 = $len_cA; _dwt1($259,$260,$261,$262,$263,$267,$268); } $279 = $J; $280 = $iter; $281 = (($279) - ($280))|0; $282 = $0; $283 = ((($282)) + 76|0); $284 = (($283) + ($281<<2)|0); $285 = HEAP32[$284>>2]|0; $temp_len = $285; $286 = $iter; $287 = $J; $288 = (($287) - 1)|0; $289 = ($286|0)==($288|0); $i = 0; L53: do { if ($289) { while(1) { $290 = $i; $291 = $len_cA; $292 = ($290|0)<($291|0); if (!($292)) { break L53; } $293 = $i; $294 = $orig2; $295 = (($294) + ($293<<3)|0); $296 = +HEAPF64[$295>>3]; $297 = $i; $298 = $0; $299 = ((($298)) + 488|0); $300 = (($299) + ($297<<3)|0); HEAPF64[$300>>3] = $296; $301 = $i; $302 = (($301) + 1)|0; $i = $302; } } else { while(1) { $303 = $i; $304 = $len_cA; $305 = ($303|0)<($304|0); if (!($305)) { break L53; } $306 = $i; $307 = $orig2; $308 = (($307) + ($306<<3)|0); $309 = +HEAPF64[$308>>3]; $310 = $i; $311 = $orig; $312 = (($311) + ($310<<3)|0); HEAPF64[$312>>3] = $309; $313 = $i; $314 = (($313) + 1)|0; $i = $314; } } } while(0); $315 = $iter; $316 = (($315) + 1)|0; $iter = $316; } $317 = $orig; _free($317); $318 = $orig2; _free($318); STACKTOP = sp;return; } function _idwt($wt,$dwtop) { $wt = $wt|0; $dwtop = $dwtop|0; var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0; var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0; var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0.0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0; var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0; var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0.0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0; var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0; var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0; var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0; var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0.0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0; var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0.0; var $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0; var $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0; var $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0; var $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0.0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0; var $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0; var $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0; var $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0; var $422 = 0, $423 = 0, $424 = 0, $425 = 0, $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0; var $440 = 0, $441 = 0, $442 = 0, $443 = 0, $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0; var $459 = 0.0, $46 = 0, $460 = 0, $461 = 0, $462 = 0, $463 = 0.0, $464 = 0.0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0; var $477 = 0, $478 = 0, $479 = 0, $48 = 0, $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0; var $495 = 0, $496 = 0, $497 = 0, $498 = 0, $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0.0; var $512 = 0, $513 = 0, $514 = 0, $515 = 0, $516 = 0, $517 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0; var $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0.0, $81 = 0, $82 = 0; var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $J = 0, $N = 0; var $N2 = 0, $U = 0, $X_hp = 0, $X_lp = 0, $app_len = 0, $cA_up = 0, $det_len = 0, $i = 0, $iter = 0, $k = 0, $lf = 0, $out = 0, $temp = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $vararg_buffer1 = sp + 8|0; $vararg_buffer = sp; $0 = $wt; $1 = $dwtop; $2 = $0; $3 = ((($2)) + 32|0); $4 = HEAP32[$3>>2]|0; $J = $4; $U = 2; $5 = $0; $6 = ((($5)) + 76|0); $7 = HEAP32[$6>>2]|0; $app_len = $7; $8 = $0; $9 = ((($8)) + 20|0); $10 = HEAP32[$9>>2]|0; $11 = (($10) + 1)|0; $12 = $11<<3; $13 = (_malloc($12)|0); $out = $13; $14 = $0; $15 = ((($14)) + 44|0); $16 = (_strcmp($15,17440)|0); $17 = ($16|0)!=(0); do { if ($17) { label = 11; } else { $18 = $0; $19 = ((($18)) + 54|0); $20 = (_strcmp($19,17200)|0); $21 = ($20|0)!=(0); if ($21) { $22 = $0; $23 = ((($22)) + 54|0); $24 = (_strcmp($23,17208)|0); $25 = ($24|0)!=(0); if ($25) { label = 11; break; } } $26 = $0; $27 = ((($26)) + 76|0); $28 = HEAP32[$27>>2]|0; $app_len = $28; $29 = $0; $30 = ((($29)) + 76|0); $31 = ((($30)) + 4|0); $32 = HEAP32[$31>>2]|0; $det_len = $32; $33 = $J; $34 = $0; $35 = ((($34)) + 76|0); $36 = (($35) + ($33<<2)|0); $37 = HEAP32[$36>>2]|0; $38 = $37<<1; $N = $38; $39 = $0; $40 = HEAP32[$39>>2]|0; $41 = ((($40)) + 64|0); $42 = HEAP32[$41>>2]|0; $43 = $0; $44 = HEAP32[$43>>2]|0; $45 = ((($44)) + 68|0); $46 = HEAP32[$45>>2]|0; $47 = (($42) + ($46))|0; $48 = (($47|0) / 2)&-1; $lf = $48; $49 = $N; $50 = $49<<3; $51 = (_malloc($50)|0); $cA_up = $51; $52 = $N; $53 = $lf; $54 = (($52) + ($53))|0; $55 = $54<<3; $56 = (_malloc($55)|0); $temp = $56; $57 = $N; $58 = $lf; $59 = $58<<1; $60 = (($57) + ($59))|0; $61 = (($60) - 1)|0; $62 = $61<<3; $63 = (_malloc($62)|0); $X_lp = $63; $64 = $N; $65 = $lf; $66 = $65<<1; $67 = (($64) + ($66))|0; $68 = (($67) - 1)|0; $69 = $68<<3; $70 = (_malloc($69)|0); $X_hp = $70; $71 = $app_len; $iter = $71; $i = 0; while(1) { $72 = $i; $73 = $app_len; $74 = ($72|0)<($73|0); if (!($74)) { break; } $75 = $i; $76 = $0; $77 = ((($76)) + 484|0); $78 = HEAP32[$77>>2]|0; $79 = (($78) + ($75<<3)|0); $80 = +HEAPF64[$79>>3]; $81 = $i; $82 = $out; $83 = (($82) + ($81<<3)|0); HEAPF64[$83>>3] = $80; $84 = $i; $85 = (($84) + 1)|0; $i = $85; } $i = 0; while(1) { $86 = $i; $87 = $J; $88 = ($86|0)<($87|0); if (!($88)) { break; } $89 = $0; $90 = $temp; $91 = $cA_up; $92 = $out; $93 = $det_len; $94 = $0; $95 = ((($94)) + 484|0); $96 = HEAP32[$95>>2]|0; $97 = $iter; $98 = (($96) + ($97<<3)|0); $99 = $det_len; $100 = $X_lp; $101 = $X_hp; $102 = $out; _idwt1($89,$90,$91,$92,$93,$98,$99,$100,$101,$102); $103 = $det_len; $104 = $iter; $105 = (($104) + ($103))|0; $iter = $105; $106 = $i; $107 = (($106) + 2)|0; $108 = $0; $109 = ((($108)) + 76|0); $110 = (($109) + ($107<<2)|0); $111 = HEAP32[$110>>2]|0; $det_len = $111; $112 = $i; $113 = (($112) + 1)|0; $i = $113; } $114 = $cA_up; _free($114); $115 = $X_lp; _free($115); $116 = $X_hp; _free($116); $117 = $temp; _free($117); } } while(0); do { if ((label|0) == 11) { $118 = $0; $119 = ((($118)) + 44|0); $120 = (_strcmp($119,17440)|0); $121 = ($120|0)!=(0); if (!($121)) { $122 = $0; $123 = ((($122)) + 54|0); $124 = (_strcmp($123,17192)|0); $125 = ($124|0)!=(0); if (!($125)) { $126 = $0; $127 = ((($126)) + 76|0); $128 = HEAP32[$127>>2]|0; $app_len = $128; $129 = $0; $130 = ((($129)) + 76|0); $131 = ((($130)) + 4|0); $132 = HEAP32[$131>>2]|0; $det_len = $132; $133 = $J; $134 = $0; $135 = ((($134)) + 76|0); $136 = (($135) + ($133<<2)|0); $137 = HEAP32[$136>>2]|0; $138 = $137<<1; $N = $138; $139 = $0; $140 = HEAP32[$139>>2]|0; $141 = ((($140)) + 64|0); $142 = HEAP32[$141>>2]|0; $143 = $0; $144 = HEAP32[$143>>2]|0; $145 = ((($144)) + 68|0); $146 = HEAP32[$145>>2]|0; $147 = (($142) + ($146))|0; $148 = (($147|0) / 2)&-1; $lf = $148; $149 = $N; $150 = $lf; $151 = $150<<1; $152 = (($149) + ($151))|0; $153 = (($152) - 1)|0; $154 = $153<<3; $155 = (_malloc($154)|0); $X_lp = $155; $156 = $app_len; $iter = $156; $i = 0; while(1) { $157 = $i; $158 = $app_len; $159 = ($157|0)<($158|0); if (!($159)) { break; } $160 = $i; $161 = $0; $162 = ((($161)) + 484|0); $163 = HEAP32[$162>>2]|0; $164 = (($163) + ($160<<3)|0); $165 = +HEAPF64[$164>>3]; $166 = $i; $167 = $out; $168 = (($167) + ($166<<3)|0); HEAPF64[$168>>3] = $165; $169 = $i; $170 = (($169) + 1)|0; $i = $170; } $i = 0; while(1) { $171 = $i; $172 = $J; $173 = ($171|0)<($172|0); if (!($173)) { break; } $174 = $0; $175 = $out; $176 = $det_len; $177 = $0; $178 = ((($177)) + 484|0); $179 = HEAP32[$178>>2]|0; $180 = $iter; $181 = (($179) + ($180<<3)|0); $182 = $det_len; $183 = $X_lp; _idwt_per($174,$175,$176,$181,$182,$183); $184 = $lf; $185 = (($184|0) / 2)&-1; $186 = (($185) - 1)|0; $k = $186; while(1) { $187 = $k; $188 = $det_len; $189 = $188<<1; $190 = $lf; $191 = (($190|0) / 2)&-1; $192 = (($189) + ($191))|0; $193 = (($192) - 1)|0; $194 = ($187|0)<($193|0); if (!($194)) { break; } $195 = $k; $196 = $X_lp; $197 = (($196) + ($195<<3)|0); $198 = +HEAPF64[$197>>3]; $199 = $k; $200 = $lf; $201 = (($200|0) / 2)&-1; $202 = (($199) - ($201))|0; $203 = (($202) + 1)|0; $204 = $out; $205 = (($204) + ($203<<3)|0); HEAPF64[$205>>3] = $198; $206 = $k; $207 = (($206) + 1)|0; $k = $207; } $208 = $det_len; $209 = $iter; $210 = (($209) + ($208))|0; $iter = $210; $211 = $i; $212 = (($211) + 2)|0; $213 = $0; $214 = ((($213)) + 76|0); $215 = (($214) + ($212<<2)|0); $216 = HEAP32[$215>>2]|0; $det_len = $216; $217 = $i; $218 = (($217) + 1)|0; $i = $218; } $219 = $X_lp; _free($219); break; } } $220 = $0; $221 = ((($220)) + 44|0); $222 = (_strcmp($221,17448)|0); $223 = ($222|0)!=(0); if (!($223)) { $224 = $0; $225 = ((($224)) + 54|0); $226 = (_strcmp($225,17192)|0); $227 = ($226|0)!=(0); if (!($227)) { $228 = $0; $229 = ((($228)) + 76|0); $230 = HEAP32[$229>>2]|0; $app_len = $230; $231 = $0; $232 = ((($231)) + 76|0); $233 = ((($232)) + 4|0); $234 = HEAP32[$233>>2]|0; $det_len = $234; $235 = $J; $236 = $0; $237 = ((($236)) + 76|0); $238 = (($237) + ($235<<2)|0); $239 = HEAP32[$238>>2]|0; $240 = $239<<1; $241 = (($240) - 1)|0; $N = $241; $242 = $0; $243 = HEAP32[$242>>2]|0; $244 = ((($243)) + 64|0); $245 = HEAP32[$244>>2]|0; $246 = $0; $247 = HEAP32[$246>>2]|0; $248 = ((($247)) + 68|0); $249 = HEAP32[$248>>2]|0; $250 = (($245) + ($249))|0; $251 = (($250|0) / 2)&-1; $lf = $251; $252 = $N; $253 = $lf; $254 = $253<<1; $255 = (($252) + ($254))|0; $256 = (($255) - 1)|0; $257 = $256<<3; $258 = (_malloc($257)|0); $X_lp = $258; $259 = $app_len; $iter = $259; $i = 0; while(1) { $260 = $i; $261 = $app_len; $262 = ($260|0)<($261|0); if (!($262)) { break; } $263 = $i; $264 = $0; $265 = ((($264)) + 484|0); $266 = HEAP32[$265>>2]|0; $267 = (($266) + ($263<<3)|0); $268 = +HEAPF64[$267>>3]; $269 = $i; $270 = $out; $271 = (($270) + ($269<<3)|0); HEAPF64[$271>>3] = $268; $272 = $i; $273 = (($272) + 1)|0; $i = $273; } $i = 0; while(1) { $274 = $i; $275 = $J; $276 = ($274|0)<($275|0); if (!($276)) { break; } $277 = $0; $278 = $out; $279 = $det_len; $280 = $0; $281 = ((($280)) + 484|0); $282 = HEAP32[$281>>2]|0; $283 = $iter; $284 = (($282) + ($283<<3)|0); $285 = $det_len; $286 = $X_lp; _idwt_sym($277,$278,$279,$284,$285,$286); $287 = $lf; $288 = (($287) - 2)|0; $k = $288; while(1) { $289 = $k; $290 = $det_len; $291 = $290<<1; $292 = ($289|0)<($291|0); if (!($292)) { break; } $293 = $k; $294 = $X_lp; $295 = (($294) + ($293<<3)|0); $296 = +HEAPF64[$295>>3]; $297 = $k; $298 = $lf; $299 = (($297) - ($298))|0; $300 = (($299) + 2)|0; $301 = $out; $302 = (($301) + ($300<<3)|0); HEAPF64[$302>>3] = $296; $303 = $k; $304 = (($303) + 1)|0; $k = $304; } $305 = $det_len; $306 = $iter; $307 = (($306) + ($305))|0; $iter = $307; $308 = $i; $309 = (($308) + 2)|0; $310 = $0; $311 = ((($310)) + 76|0); $312 = (($311) + ($309<<2)|0); $313 = HEAP32[$312>>2]|0; $det_len = $313; $314 = $i; $315 = (($314) + 1)|0; $i = $315; } $316 = $X_lp; _free($316); break; } } $317 = $0; $318 = ((($317)) + 44|0); $319 = (_strcmp($318,17448)|0); $320 = ($319|0)!=(0); if ($320) { (_printf((17216|0),($vararg_buffer1|0))|0); _exit(-1); // unreachable; } $321 = $0; $322 = ((($321)) + 54|0); $323 = (_strcmp($322,17200)|0); $324 = ($323|0)!=(0); if ($324) { $325 = $0; $326 = ((($325)) + 54|0); $327 = (_strcmp($326,17208)|0); $328 = ($327|0)!=(0); if ($328) { (_printf((17216|0),($vararg_buffer1|0))|0); _exit(-1); // unreachable; } } $329 = $0; $330 = HEAP32[$329>>2]|0; $331 = ((($330)) + 56|0); $332 = HEAP32[$331>>2]|0; $lf = $332; $333 = $J; $334 = $0; $335 = ((($334)) + 76|0); $336 = (($335) + ($333<<2)|0); $337 = HEAP32[$336>>2]|0; $338 = $337<<1; $339 = (($338) - 1)|0; $N = $339; $340 = $N; $341 = $340<<3; $342 = (_malloc($341)|0); $cA_up = $342; $343 = $N; $344 = $lf; $345 = (($343) + ($344))|0; $346 = (($345) - 1)|0; $347 = $346<<3; $348 = (_malloc($347)|0); $X_lp = $348; $349 = $N; $350 = $lf; $351 = (($349) + ($350))|0; $352 = (($351) - 1)|0; $353 = $352<<3; $354 = (_malloc($353)|0); $X_hp = $354; $i = 0; while(1) { $355 = $i; $356 = $app_len; $357 = ($355|0)<($356|0); if (!($357)) { break; } $358 = $i; $359 = $0; $360 = ((($359)) + 484|0); $361 = HEAP32[$360>>2]|0; $362 = (($361) + ($358<<3)|0); $363 = +HEAPF64[$362>>3]; $364 = $i; $365 = $out; $366 = (($365) + ($364<<3)|0); HEAPF64[$366>>3] = $363; $367 = $i; $368 = (($367) + 1)|0; $i = $368; } $369 = $app_len; $iter = $369; $i = 0; while(1) { $370 = $i; $371 = $J; $372 = ($370|0)<($371|0); if (!($372)) { label = 57; break; } $373 = $i; $374 = (($373) + 1)|0; $375 = $0; $376 = ((($375)) + 76|0); $377 = (($376) + ($374<<2)|0); $378 = HEAP32[$377>>2]|0; $det_len = $378; $379 = $out; $380 = $det_len; $381 = $U; $382 = $cA_up; (_upsamp($379,$380,$381,$382)|0); $383 = $i; $384 = (($383) + 1)|0; $385 = $0; $386 = ((($385)) + 76|0); $387 = (($386) + ($384<<2)|0); $388 = HEAP32[$387>>2]|0; $389 = $388<<1; $390 = (($389) - 1)|0; $N2 = $390; $391 = $0; $392 = HEAP32[$391>>2]|0; $393 = ((($392)) + 64|0); $394 = HEAP32[$393>>2]|0; $395 = $0; $396 = HEAP32[$395>>2]|0; $397 = ((($396)) + 68|0); $398 = HEAP32[$397>>2]|0; $399 = ($394|0)==($398|0); do { if ($399) { $400 = $0; $401 = ((($400)) + 54|0); $402 = (_strcmp($401,17200)|0); $403 = ($402|0)!=(0); if ($403) { $404 = $0; $405 = ((($404)) + 54|0); $406 = (_strcmp($405,17208)|0); $407 = ($406|0)!=(0); if ($407) { label = 47; break; } } $408 = $N2; $409 = $lf; $410 = (_conv_init($408,$409)|0); $411 = $0; $412 = ((($411)) + 4|0); HEAP32[$412>>2] = $410; $413 = $0; $414 = ((($413)) + 68|0); HEAP32[$414>>2] = 1; } else { label = 47; } } while(0); if ((label|0) == 47) { label = 0; $415 = $0; $416 = HEAP32[$415>>2]|0; $417 = ((($416)) + 64|0); $418 = HEAP32[$417>>2]|0; $419 = $0; $420 = HEAP32[$419>>2]|0; $421 = ((($420)) + 68|0); $422 = HEAP32[$421>>2]|0; $423 = ($418|0)==($422|0); if (!($423)) { label = 48; break; } } $424 = $0; $425 = $cA_up; $426 = $N2; $427 = $0; $428 = HEAP32[$427>>2]|0; $429 = ((($428)) + 80|0); $430 = HEAP32[$429>>2]|0; $431 = $lf; $432 = $X_lp; _wconv($424,$425,$426,$430,$431,$432); $433 = $0; $434 = ((($433)) + 484|0); $435 = HEAP32[$434>>2]|0; $436 = $iter; $437 = (($435) + ($436<<3)|0); $438 = $det_len; $439 = $U; $440 = $cA_up; (_upsamp($437,$438,$439,$440)|0); $441 = $0; $442 = $cA_up; $443 = $N2; $444 = $0; $445 = HEAP32[$444>>2]|0; $446 = ((($445)) + 84|0); $447 = HEAP32[$446>>2]|0; $448 = $lf; $449 = $X_hp; _wconv($441,$442,$443,$447,$448,$449); $450 = $lf; $451 = (($450) - 2)|0; $k = $451; while(1) { $452 = $k; $453 = $N2; $454 = (($453) + 1)|0; $455 = ($452|0)<($454|0); if (!($455)) { break; } $456 = $k; $457 = $X_lp; $458 = (($457) + ($456<<3)|0); $459 = +HEAPF64[$458>>3]; $460 = $k; $461 = $X_hp; $462 = (($461) + ($460<<3)|0); $463 = +HEAPF64[$462>>3]; $464 = $459 + $463; $465 = $k; $466 = $lf; $467 = (($465) - ($466))|0; $468 = (($467) + 2)|0; $469 = $out; $470 = (($469) + ($468<<3)|0); HEAPF64[$470>>3] = $464; $471 = $k; $472 = (($471) + 1)|0; $k = $472; } $473 = $det_len; $474 = $iter; $475 = (($474) + ($473))|0; $iter = $475; $476 = $0; $477 = HEAP32[$476>>2]|0; $478 = ((($477)) + 64|0); $479 = HEAP32[$478>>2]|0; $480 = $0; $481 = HEAP32[$480>>2]|0; $482 = ((($481)) + 68|0); $483 = HEAP32[$482>>2]|0; $484 = ($479|0)==($483|0); do { if ($484) { $485 = $0; $486 = ((($485)) + 54|0); $487 = (_strcmp($486,17200)|0); $488 = ($487|0)!=(0); if ($488) { $489 = $0; $490 = ((($489)) + 54|0); $491 = (_strcmp($490,17208)|0); $492 = ($491|0)!=(0); if ($492) { break; } } $493 = $0; $494 = ((($493)) + 4|0); $495 = HEAP32[$494>>2]|0; _free_conv($495); $496 = $0; $497 = ((($496)) + 68|0); HEAP32[$497>>2] = 0; } } while(0); $498 = $i; $499 = (($498) + 1)|0; $i = $499; } if ((label|0) == 48) { (_printf((17264|0),($vararg_buffer|0))|0); _exit(-1); // unreachable; } else if ((label|0) == 57) { $500 = $cA_up; _free($500); $501 = $X_lp; _free($501); $502 = $X_hp; _free($502); break; } } } while(0); $i = 0; while(1) { $503 = $i; $504 = $0; $505 = ((($504)) + 20|0); $506 = HEAP32[$505>>2]|0; $507 = ($503|0)<($506|0); if (!($507)) { break; } $508 = $i; $509 = $out; $510 = (($509) + ($508<<3)|0); $511 = +HEAPF64[$510>>3]; $512 = $i; $513 = $1; $514 = (($513) + ($512<<3)|0); HEAPF64[$514>>3] = $511; $515 = $i; $516 = (($515) + 1)|0; $i = $516; } $517 = $out; _free($517); STACKTOP = sp;return; } function _swt($wt,$inp) { $wt = $wt|0; $inp = $inp|0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $3 = 0; var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $vararg_buffer = sp; $0 = $wt; $1 = $inp; $2 = $0; $3 = ((($2)) + 8|0); $4 = (_strcmp($3,17456)|0); $5 = ($4|0)!=(0); if (!($5)) { $6 = $0; $7 = ((($6)) + 54|0); $8 = (_strcmp($7,17192)|0); $9 = ($8|0)!=(0); if (!($9)) { $10 = $0; $11 = $1; _swt_direct($10,$11); STACKTOP = sp;return; } } $12 = $0; $13 = ((($12)) + 8|0); $14 = (_strcmp($13,17456)|0); $15 = ($14|0)!=(0); if ($15) { (_printf((17320|0),($vararg_buffer|0))|0); _exit(-1); // unreachable; } $16 = $0; $17 = ((($16)) + 54|0); $18 = (_strcmp($17,17200)|0); $19 = ($18|0)!=(0); if ($19) { $20 = $0; $21 = ((($20)) + 54|0); $22 = (_strcmp($21,17208)|0); $23 = ($22|0)!=(0); if ($23) { (_printf((17320|0),($vararg_buffer|0))|0); _exit(-1); // unreachable; } } $24 = $0; $25 = $1; _swt_fft($24,$25); STACKTOP = sp;return; } function _iswt($wt,$swtop) { $wt = $wt|0; $swtop = $swtop|0; var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; var $116 = 0, $117 = 0, $118 = 0.0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0.0, $129 = 0.0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0; var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0.0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0.0, $149 = 0, $15 = 0, $150 = 0, $151 = 0; var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0.0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0; var $170 = 0.0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0; var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0; var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0; var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0; var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0; var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0.0, $266 = 0, $267 = 0, $268 = 0, $269 = 0.0, $27 = 0, $270 = 0.0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0; var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0.0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0.0, $293 = 0, $294 = 0, $295 = 0, $296 = 0; var $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0; var $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0; var $332 = 0, $333 = 0, $334 = 0, $335 = 0, $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0; var $350 = 0, $351 = 0, $352 = 0, $353 = 0, $354 = 0.0, $355 = 0, $356 = 0, $357 = 0, $358 = 0.0, $359 = 0.0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0; var $369 = 0, $37 = 0, $370 = 0, $371 = 0, $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0.0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0.0, $383 = 0.0, $384 = 0.0, $385 = 0, $386 = 0; var $387 = 0, $388 = 0, $389 = 0, $39 = 0, $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0.0, $402 = 0, $403 = 0; var $404 = 0, $405 = 0, $406 = 0, $407 = 0, $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0; var $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0; var $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0; var $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0.0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0; var $98 = 0, $99 = 0.0, $J = 0, $N = 0, $N1 = 0, $U = 0, $appx1 = 0, $appx2 = 0, $appx_sig = 0, $cH0 = 0, $cL0 = 0, $count = 0, $det1 = 0, $det2 = 0, $det_sig = 0, $i = 0, $index = 0, $index2 = 0, $index_shift = 0, $iter = 0; var $len = 0, $len0 = 0, $lf = 0, $oup00 = 0, $oup00H = 0, $oup00L = 0, $oup01 = 0, $tempx = 0, $value = 0, $vararg_buffer = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 128|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $vararg_buffer = sp; $0 = $wt; $1 = $swtop; $2 = $0; $3 = ((($2)) + 20|0); $4 = HEAP32[$3>>2]|0; $N = $4; $5 = $0; $6 = ((($5)) + 32|0); $7 = HEAP32[$6>>2]|0; $J = $7; $U = 2; $8 = $0; $9 = HEAP32[$8>>2]|0; $10 = ((($9)) + 64|0); $11 = HEAP32[$10>>2]|0; $lf = $11; $12 = $N; $13 = $12<<3; $14 = (_malloc($13)|0); $appx_sig = $14; $15 = $N; $16 = $15<<3; $17 = (_malloc($16)|0); $det_sig = $17; $18 = $N; $19 = $18<<3; $20 = (_malloc($19)|0); $appx1 = $20; $21 = $N; $22 = $21<<3; $23 = (_malloc($22)|0); $det1 = $23; $24 = $N; $25 = $24<<3; $26 = (_malloc($25)|0); $appx2 = $26; $27 = $N; $28 = $27<<3; $29 = (_malloc($28)|0); $det2 = $29; $30 = $N; $31 = $30<<3; $32 = (_malloc($31)|0); $tempx = $32; $33 = $N; $34 = $N; $35 = (($34|0) % 2)&-1; $36 = (($33) + ($35))|0; $37 = $lf; $38 = (($36) + ($37))|0; $39 = $38<<3; $40 = (_malloc($39)|0); $cL0 = $40; $41 = $N; $42 = $N; $43 = (($42|0) % 2)&-1; $44 = (($41) + ($43))|0; $45 = $lf; $46 = (($44) + ($45))|0; $47 = $46<<3; $48 = (_malloc($47)|0); $cH0 = $48; $49 = $N; $50 = $lf; $51 = $50<<1; $52 = (($49) + ($51))|0; $53 = $52<<3; $54 = (_malloc($53)|0); $oup00L = $54; $55 = $N; $56 = $lf; $57 = $56<<1; $58 = (($55) + ($57))|0; $59 = $58<<3; $60 = (_malloc($59)|0); $oup00H = $60; $61 = $N; $62 = $61<<3; $63 = (_malloc($62)|0); $oup00 = $63; $64 = $N; $65 = $64<<3; $66 = (_malloc($65)|0); $oup01 = $66; $iter = 0; L1: while(1) { $67 = $iter; $68 = $J; $69 = ($67|0)<($68|0); if (!($69)) { label = 42; break; } $i = 0; while(1) { $70 = $i; $71 = $N; $72 = ($70|0)<($71|0); if (!($72)) { break; } $73 = $i; $74 = $1; $75 = (($74) + ($73<<3)|0); HEAPF64[$75>>3] = 0.0; $76 = $i; $77 = (($76) + 1)|0; $i = $77; } $78 = $iter; $79 = ($78|0)==(0); $i = 0; L8: do { if ($79) { while(1) { $80 = $i; $81 = $N; $82 = ($80|0)<($81|0); if (!($82)) { break L8; } $83 = $i; $84 = $0; $85 = ((($84)) + 484|0); $86 = HEAP32[$85>>2]|0; $87 = (($86) + ($83<<3)|0); $88 = +HEAPF64[$87>>3]; $89 = $i; $90 = $appx_sig; $91 = (($90) + ($89<<3)|0); HEAPF64[$91>>3] = $88; $92 = $N; $93 = $i; $94 = (($92) + ($93))|0; $95 = $0; $96 = ((($95)) + 484|0); $97 = HEAP32[$96>>2]|0; $98 = (($97) + ($94<<3)|0); $99 = +HEAPF64[$98>>3]; $100 = $i; $101 = $det_sig; $102 = (($101) + ($100<<3)|0); HEAPF64[$102>>3] = $99; $103 = $i; $104 = (($103) + 1)|0; $i = $104; } } else { while(1) { $105 = $i; $106 = $N; $107 = ($105|0)<($106|0); if (!($107)) { break L8; } $108 = $iter; $109 = (($108) + 1)|0; $110 = $N; $111 = Math_imul($109, $110)|0; $112 = $i; $113 = (($111) + ($112))|0; $114 = $0; $115 = ((($114)) + 484|0); $116 = HEAP32[$115>>2]|0; $117 = (($116) + ($113<<3)|0); $118 = +HEAPF64[$117>>3]; $119 = $i; $120 = $det_sig; $121 = (($120) + ($119<<3)|0); HEAPF64[$121>>3] = $118; $122 = $i; $123 = (($122) + 1)|0; $i = $123; } } } while(0); $124 = $J; $125 = (($124) - 1)|0; $126 = $iter; $127 = (($125) - ($126))|0; $128 = (+($127|0)); $129 = (+Math_pow(2.0,(+$128))); $130 = (~~(($129))); $value = $130; $count = 0; while(1) { $131 = $count; $132 = $value; $133 = ($131|0)<($132|0); if (!($133)) { break; } $len = 0; $134 = $count; $index = $134; while(1) { $135 = $index; $136 = $N; $137 = ($135|0)<($136|0); if (!($137)) { break; } $138 = $index; $139 = $appx_sig; $140 = (($139) + ($138<<3)|0); $141 = +HEAPF64[$140>>3]; $142 = $len; $143 = $appx1; $144 = (($143) + ($142<<3)|0); HEAPF64[$144>>3] = $141; $145 = $index; $146 = $det_sig; $147 = (($146) + ($145<<3)|0); $148 = +HEAPF64[$147>>3]; $149 = $len; $150 = $det1; $151 = (($150) + ($149<<3)|0); HEAPF64[$151>>3] = $148; $152 = $len; $153 = (($152) + 1)|0; $len = $153; $154 = $value; $155 = $index; $156 = (($155) + ($154))|0; $index = $156; } $len0 = 0; $index_shift = 0; while(1) { $157 = $index_shift; $158 = $len; $159 = ($157|0)<($158|0); if (!($159)) { break; } $160 = $index_shift; $161 = $appx1; $162 = (($161) + ($160<<3)|0); $163 = +HEAPF64[$162>>3]; $164 = $len0; $165 = $appx2; $166 = (($165) + ($164<<3)|0); HEAPF64[$166>>3] = $163; $167 = $index_shift; $168 = $det1; $169 = (($168) + ($167<<3)|0); $170 = +HEAPF64[$169>>3]; $171 = $len0; $172 = $det2; $173 = (($172) + ($171<<3)|0); HEAPF64[$173>>3] = $170; $174 = $len0; $175 = (($174) + 1)|0; $len0 = $175; $176 = $index_shift; $177 = (($176) + 2)|0; $index_shift = $177; } $178 = $appx2; $179 = $len0; $180 = $U; $181 = $tempx; (_upsamp2($178,$179,$180,$181)|0); $182 = $tempx; $183 = $len0; $184 = $183<<1; $185 = $lf; $186 = (($185|0) / 2)&-1; $187 = $cL0; (_per_ext($182,$184,$186,$187)|0); $188 = $det2; $189 = $len0; $190 = $U; $191 = $tempx; (_upsamp2($188,$189,$190,$191)|0); $192 = $tempx; $193 = $len0; $194 = $193<<1; $195 = $lf; $196 = (($195|0) / 2)&-1; $197 = $cH0; (_per_ext($192,$194,$196,$197)|0); $198 = $len0; $199 = $198<<1; $200 = $lf; $201 = (($199) + ($200))|0; $N1 = $201; $202 = $0; $203 = HEAP32[$202>>2]|0; $204 = ((($203)) + 64|0); $205 = HEAP32[$204>>2]|0; $206 = $0; $207 = HEAP32[$206>>2]|0; $208 = ((($207)) + 68|0); $209 = HEAP32[$208>>2]|0; $210 = ($205|0)==($209|0); do { if ($210) { $211 = $0; $212 = ((($211)) + 54|0); $213 = (_strcmp($212,17200)|0); $214 = ($213|0)!=(0); if ($214) { $215 = $0; $216 = ((($215)) + 54|0); $217 = (_strcmp($216,17208)|0); $218 = ($217|0)!=(0); if ($218) { label = 23; break; } } $219 = $N1; $220 = $lf; $221 = (_conv_init($219,$220)|0); $222 = $0; $223 = ((($222)) + 4|0); HEAP32[$223>>2] = $221; $224 = $0; $225 = ((($224)) + 68|0); HEAP32[$225>>2] = 1; } else { label = 23; } } while(0); if ((label|0) == 23) { label = 0; $226 = $0; $227 = HEAP32[$226>>2]|0; $228 = ((($227)) + 56|0); $229 = HEAP32[$228>>2]|0; $230 = $0; $231 = HEAP32[$230>>2]|0; $232 = ((($231)) + 60|0); $233 = HEAP32[$232>>2]|0; $234 = ($229|0)==($233|0); if (!($234)) { label = 24; break L1; } } $235 = $0; $236 = $cL0; $237 = $N1; $238 = $0; $239 = HEAP32[$238>>2]|0; $240 = ((($239)) + 80|0); $241 = HEAP32[$240>>2]|0; $242 = $lf; $243 = $oup00L; _wconv($235,$236,$237,$241,$242,$243); $244 = $0; $245 = $cH0; $246 = $N1; $247 = $0; $248 = HEAP32[$247>>2]|0; $249 = ((($248)) + 84|0); $250 = HEAP32[$249>>2]|0; $251 = $lf; $252 = $oup00H; _wconv($244,$245,$246,$250,$251,$252); $253 = $lf; $254 = (($253) - 1)|0; $i = $254; while(1) { $255 = $i; $256 = $len0; $257 = $256<<1; $258 = $lf; $259 = (($257) + ($258))|0; $260 = (($259) - 1)|0; $261 = ($255|0)<($260|0); if (!($261)) { break; } $262 = $i; $263 = $oup00L; $264 = (($263) + ($262<<3)|0); $265 = +HEAPF64[$264>>3]; $266 = $i; $267 = $oup00H; $268 = (($267) + ($266<<3)|0); $269 = +HEAPF64[$268>>3]; $270 = $265 + $269; $271 = $i; $272 = $lf; $273 = (($271) - ($272))|0; $274 = (($273) + 1)|0; $275 = $oup00; $276 = (($275) + ($274<<3)|0); HEAPF64[$276>>3] = $270; $277 = $i; $278 = (($277) + 1)|0; $i = $278; } $len0 = 0; $index_shift = 1; while(1) { $279 = $index_shift; $280 = $len; $281 = ($279|0)<($280|0); if (!($281)) { break; } $282 = $index_shift; $283 = $appx1; $284 = (($283) + ($282<<3)|0); $285 = +HEAPF64[$284>>3]; $286 = $len0; $287 = $appx2; $288 = (($287) + ($286<<3)|0); HEAPF64[$288>>3] = $285; $289 = $index_shift; $290 = $det1; $291 = (($290) + ($289<<3)|0); $292 = +HEAPF64[$291>>3]; $293 = $len0; $294 = $det2; $295 = (($294) + ($293<<3)|0); HEAPF64[$295>>3] = $292; $296 = $len0; $297 = (($296) + 1)|0; $len0 = $297; $298 = $index_shift; $299 = (($298) + 2)|0; $index_shift = $299; } $300 = $appx2; $301 = $len0; $302 = $U; $303 = $tempx; (_upsamp2($300,$301,$302,$303)|0); $304 = $tempx; $305 = $len0; $306 = $305<<1; $307 = $lf; $308 = (($307|0) / 2)&-1; $309 = $cL0; (_per_ext($304,$306,$308,$309)|0); $310 = $det2; $311 = $len0; $312 = $U; $313 = $tempx; (_upsamp2($310,$311,$312,$313)|0); $314 = $tempx; $315 = $len0; $316 = $315<<1; $317 = $lf; $318 = (($317|0) / 2)&-1; $319 = $cH0; (_per_ext($314,$316,$318,$319)|0); $320 = $len0; $321 = $320<<1; $322 = $lf; $323 = (($321) + ($322))|0; $N1 = $323; $324 = $0; $325 = $cL0; $326 = $N1; $327 = $0; $328 = HEAP32[$327>>2]|0; $329 = ((($328)) + 80|0); $330 = HEAP32[$329>>2]|0; $331 = $lf; $332 = $oup00L; _wconv($324,$325,$326,$330,$331,$332); $333 = $0; $334 = $cH0; $335 = $N1; $336 = $0; $337 = HEAP32[$336>>2]|0; $338 = ((($337)) + 84|0); $339 = HEAP32[$338>>2]|0; $340 = $lf; $341 = $oup00H; _wconv($333,$334,$335,$339,$340,$341); $342 = $lf; $343 = (($342) - 1)|0; $i = $343; while(1) { $344 = $i; $345 = $len0; $346 = $345<<1; $347 = $lf; $348 = (($346) + ($347))|0; $349 = (($348) - 1)|0; $350 = ($344|0)<($349|0); if (!($350)) { break; } $351 = $i; $352 = $oup00L; $353 = (($352) + ($351<<3)|0); $354 = +HEAPF64[$353>>3]; $355 = $i; $356 = $oup00H; $357 = (($356) + ($355<<3)|0); $358 = +HEAPF64[$357>>3]; $359 = $354 + $358; $360 = $i; $361 = $lf; $362 = (($360) - ($361))|0; $363 = (($362) + 1)|0; $364 = $oup01; $365 = (($364) + ($363<<3)|0); HEAPF64[$365>>3] = $359; $366 = $i; $367 = (($366) + 1)|0; $i = $367; } $368 = $oup01; $369 = $len0; $370 = $369<<1; _circshift($368,$370,-1); $index2 = 0; $371 = $count; $index = $371; while(1) { $372 = $index; $373 = $N; $374 = ($372|0)<($373|0); if (!($374)) { break; } $375 = $index2; $376 = $oup00; $377 = (($376) + ($375<<3)|0); $378 = +HEAPF64[$377>>3]; $379 = $index2; $380 = $oup01; $381 = (($380) + ($379<<3)|0); $382 = +HEAPF64[$381>>3]; $383 = $378 + $382; $384 = $383 / 2.0; $385 = $index; $386 = $1; $387 = (($386) + ($385<<3)|0); HEAPF64[$387>>3] = $384; $388 = $index2; $389 = (($388) + 1)|0; $index2 = $389; $390 = $value; $391 = $index; $392 = (($391) + ($390))|0; $index = $392; } $393 = $count; $394 = (($393) + 1)|0; $count = $394; } $i = 0; while(1) { $395 = $i; $396 = $N; $397 = ($395|0)<($396|0); if (!($397)) { break; } $398 = $i; $399 = $1; $400 = (($399) + ($398<<3)|0); $401 = +HEAPF64[$400>>3]; $402 = $i; $403 = $appx_sig; $404 = (($403) + ($402<<3)|0); HEAPF64[$404>>3] = $401; $405 = $i; $406 = (($405) + 1)|0; $i = $406; } $407 = $iter; $408 = (($407) + 1)|0; $iter = $408; } if ((label|0) == 24) { (_printf((17264|0),($vararg_buffer|0))|0); _exit(-1); // unreachable; } else if ((label|0) == 42) { $409 = $appx_sig; _free($409); $410 = $det_sig; _free($410); $411 = $appx1; _free($411); $412 = $det1; _free($412); $413 = $tempx; _free($413); $414 = $cL0; _free($414); $415 = $cH0; _free($415); $416 = $oup00L; _free($416); $417 = $oup00H; _free($417); $418 = $oup00; _free($418); $419 = $oup01; _free($419); $420 = $appx2; _free($420); $421 = $det2; _free($421); STACKTOP = sp;return; } } function _modwt($wt,$inp) { $wt = $wt|0; $inp = $inp|0; var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0.0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $12 = 0, $13 = 0; var $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0; var $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0; var $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0.0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0; var $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0; var $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0.0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $J = 0, $M = 0, $N = 0, $cA = 0, $cD = 0, $i = 0; var $iter = 0, $len_filt = 0, $lenacc = 0, $temp_len = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $wt; $1 = $inp; $2 = $0; $3 = ((($2)) + 20|0); $4 = HEAP32[$3>>2]|0; $temp_len = $4; $5 = $0; $6 = ((($5)) + 32|0); $7 = HEAP32[$6>>2]|0; $J = $7; $8 = $temp_len; $9 = $J; $10 = $0; $11 = ((($10)) + 76|0); $12 = (($11) + ($9<<2)|0); HEAP32[$12>>2] = $8; $13 = $0; $14 = ((($13)) + 76|0); HEAP32[$14>>2] = $8; $15 = $J; $16 = (($15) + 1)|0; $17 = $temp_len; $18 = Math_imul($16, $17)|0; $19 = $J; $20 = (($19) + 1)|0; $21 = $0; $22 = ((($21)) + 76|0); $23 = (($22) + ($20<<2)|0); HEAP32[$23>>2] = $18; $24 = $0; $25 = ((($24)) + 24|0); HEAP32[$25>>2] = $18; $26 = $0; $27 = HEAP32[$26>>2]|0; $28 = ((($27)) + 52|0); $29 = HEAP32[$28>>2]|0; $len_filt = $29; $M = 1; $iter = 1; while(1) { $30 = $iter; $31 = $J; $32 = ($30|0)<($31|0); if (!($32)) { break; } $33 = $M; $34 = $33<<1; $M = $34; $35 = $temp_len; $36 = $iter; $37 = $0; $38 = ((($37)) + 76|0); $39 = (($38) + ($36<<2)|0); HEAP32[$39>>2] = $35; $40 = $iter; $41 = (($40) + 1)|0; $iter = $41; } $42 = $temp_len; $43 = $42<<3; $44 = (_malloc($43)|0); $cA = $44; $45 = $temp_len; $46 = $45<<3; $47 = (_malloc($46)|0); $cD = $47; $M = 1; $i = 0; while(1) { $48 = $i; $49 = $temp_len; $50 = ($48|0)<($49|0); if (!($50)) { break; } $51 = $i; $52 = $1; $53 = (($52) + ($51<<3)|0); $54 = +HEAPF64[$53>>3]; $55 = $i; $56 = $0; $57 = ((($56)) + 488|0); $58 = (($57) + ($55<<3)|0); HEAPF64[$58>>3] = $54; $59 = $i; $60 = (($59) + 1)|0; $i = $60; } $61 = $0; $62 = ((($61)) + 24|0); $63 = HEAP32[$62>>2]|0; $lenacc = $63; $iter = 0; while(1) { $64 = $iter; $65 = $J; $66 = ($64|0)<($65|0); if (!($66)) { break; } $67 = $temp_len; $68 = $lenacc; $69 = (($68) - ($67))|0; $lenacc = $69; $70 = $iter; $71 = ($70|0)>(0); if ($71) { $72 = $M; $73 = $72<<1; $M = $73; $74 = $M; $75 = $len_filt; $76 = Math_imul($74, $75)|0; $N = $76; } else { $77 = $len_filt; $N = $77; } $78 = $0; $79 = $M; $80 = $0; $81 = ((($80)) + 488|0); $82 = $temp_len; $83 = $cA; $84 = $temp_len; $85 = $cD; $86 = $temp_len; _modwt_per($78,$79,$81,$82,$83,$84,$85,$86); $i = 0; while(1) { $87 = $i; $88 = $temp_len; $89 = ($87|0)<($88|0); if (!($89)) { break; } $90 = $i; $91 = $cA; $92 = (($91) + ($90<<3)|0); $93 = +HEAPF64[$92>>3]; $94 = $i; $95 = $0; $96 = ((($95)) + 488|0); $97 = (($96) + ($94<<3)|0); HEAPF64[$97>>3] = $93; $98 = $i; $99 = $cD; $100 = (($99) + ($98<<3)|0); $101 = +HEAPF64[$100>>3]; $102 = $lenacc; $103 = $i; $104 = (($102) + ($103))|0; $105 = $0; $106 = ((($105)) + 488|0); $107 = (($106) + ($104<<3)|0); HEAPF64[$107>>3] = $101; $108 = $i; $109 = (($108) + 1)|0; $i = $109; } $110 = $iter; $111 = (($110) + 1)|0; $iter = $111; } $112 = $cA; _free($112); $113 = $cD; _free($113); STACKTOP = sp;return; } function _imodwt($wt,$dwtop) { $wt = $wt|0; $dwtop = $dwtop|0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0.0, $16 = 0.0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; var $27 = 0, $28 = 0, $29 = 0.0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0.0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $8 = 0, $9 = 0, $J = 0, $M = 0, $N = 0, $U = 0, $X = 0, $i = 0, $iter = 0, $j = 0, $lenacc = 0, $lf = 0; var label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $wt; $1 = $dwtop; $2 = $0; $3 = ((($2)) + 20|0); $4 = HEAP32[$3>>2]|0; $N = $4; $5 = $0; $6 = ((($5)) + 32|0); $7 = HEAP32[$6>>2]|0; $J = $7; $U = 2; $8 = $0; $9 = HEAP32[$8>>2]|0; $10 = ((($9)) + 64|0); $11 = HEAP32[$10>>2]|0; $lf = $11; $12 = $N; $lenacc = $12; $13 = $J; $14 = (+($13|0)); $15 = $14 - 1.0; $16 = (+Math_pow(2.0,(+$15))); $17 = (~~(($16))); $M = $17; $18 = $N; $19 = $18<<3; $20 = (_malloc($19)|0); $X = $20; $i = 0; while(1) { $21 = $i; $22 = $N; $23 = ($21|0)<($22|0); if (!($23)) { break; } $24 = $i; $25 = $0; $26 = ((($25)) + 484|0); $27 = HEAP32[$26>>2]|0; $28 = (($27) + ($24<<3)|0); $29 = +HEAPF64[$28>>3]; $30 = $i; $31 = $1; $32 = (($31) + ($30<<3)|0); HEAPF64[$32>>3] = $29; $33 = $i; $34 = (($33) + 1)|0; $i = $34; } $iter = 0; while(1) { $35 = $iter; $36 = $J; $37 = ($35|0)<($36|0); if (!($37)) { break; } $38 = $iter; $39 = ($38|0)>(0); if ($39) { $40 = $M; $41 = (($40|0) / 2)&-1; $M = $41; } $42 = $0; $43 = $M; $44 = $1; $45 = $N; $46 = $0; $47 = ((($46)) + 488|0); $48 = $lenacc; $49 = (($47) + ($48<<3)|0); $50 = $N; $51 = $X; _imodwt_per($42,$43,$44,$45,$49,$50,$51); $j = 0; while(1) { $52 = $j; $53 = $N; $54 = ($52|0)<($53|0); if (!($54)) { break; } $55 = $j; $56 = $X; $57 = (($56) + ($55<<3)|0); $58 = +HEAPF64[$57>>3]; $59 = $j; $60 = $1; $61 = (($60) + ($59<<3)|0); HEAPF64[$61>>3] = $58; $62 = $j; $63 = (($62) + 1)|0; $j = $63; } $64 = $N; $65 = $lenacc; $66 = (($65) + ($64))|0; $lenacc = $66; $67 = $iter; $68 = (($67) + 1)|0; $iter = $68; } $69 = $X; _free($69); STACKTOP = sp;return; } function _setDWTExtension($wt,$extension) { $wt = $wt|0; $extension = $extension|0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $vararg_buffer = sp; $0 = $wt; $1 = $extension; $2 = $1; $3 = (_strcmp($2,17448)|0); $4 = ($3|0)!=(0); if (!($4)) { $5 = $0; $6 = ((($5)) + 44|0); (_strcpy(($6|0),(17448|0))|0); STACKTOP = sp;return; } $7 = $1; $8 = (_strcmp($7,17440)|0); $9 = ($8|0)!=(0); if ($9) { (_printf((17216|0),($vararg_buffer|0))|0); _exit(-1); // unreachable; } $10 = $0; $11 = ((($10)) + 44|0); (_strcpy(($11|0),(17440|0))|0); STACKTOP = sp;return; } function _wave_free($object) { $object = $object|0; var $0 = 0, $1 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $object; $1 = $0; _free($1); STACKTOP = sp;return; } function _wt_free($object) { $object = $object|0; var $0 = 0, $1 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 16|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $object; $1 = $0; _free($1); STACKTOP = sp;return; } function _dwt1($wt,$sig,$len_sig,$cA,$len_cA,$cD,$len_cD) { $wt = $wt|0; $sig = $sig|0; $len_sig = $len_sig|0; $cA = $cA|0; $len_cA = $len_cA|0; $cD = $cD|0; $len_cD = $len_cD|0; var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0; var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0; var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0; var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0; var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0; var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0; var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0; var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0; var $260 = 0, $261 = 0, $262 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0; var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0; var $97 = 0, $98 = 0, $99 = 0, $D = 0, $cA_undec = 0, $len_avg = 0, $lf = 0, $signal = 0, $vararg_buffer = 0, $vararg_buffer1 = 0, $vararg_buffer3 = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 80|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $vararg_buffer3 = sp + 16|0; $vararg_buffer1 = sp; $vararg_buffer = sp + 8|0; $0 = $wt; $1 = $sig; $2 = $len_sig; $3 = $cA; $4 = $len_cA; $5 = $cD; $6 = $len_cD; $7 = $0; $8 = HEAP32[$7>>2]|0; $9 = ((($8)) + 56|0); $10 = HEAP32[$9>>2]|0; $11 = $0; $12 = HEAP32[$11>>2]|0; $13 = ((($12)) + 60|0); $14 = HEAP32[$13>>2]|0; $15 = (($10) + ($14))|0; $16 = (($15|0) / 2)&-1; $len_avg = $16; $D = 2; $17 = $0; $18 = ((($17)) + 44|0); $19 = (_strcmp($18,17440)|0); $20 = ($19|0)!=(0); if ($20) { $124 = $0; $125 = ((($124)) + 44|0); $126 = (_strcmp($125,17448)|0); $127 = ($126|0)!=(0); if ($127) { (_printf((17216|0),($vararg_buffer3|0))|0); _exit(-1); // unreachable; } $128 = $0; $129 = HEAP32[$128>>2]|0; $130 = ((($129)) + 56|0); $131 = HEAP32[$130>>2]|0; $lf = $131; $132 = $2; $133 = $lf; $134 = (($133) - 1)|0; $135 = $134<<1; $136 = (($132) + ($135))|0; $137 = $136<<3; $138 = (_malloc($137)|0); $signal = $138; $139 = $1; $140 = $2; $141 = $lf; $142 = (($141) - 1)|0; $143 = $signal; $144 = (_symm_ext($139,$140,$142,$143)|0); $2 = $144; $145 = $2; $146 = $lf; $147 = (($146) - 1)|0; $148 = ($147*3)|0; $149 = (($145) + ($148))|0; $150 = $149<<3; $151 = (_malloc($150)|0); $cA_undec = $151; $152 = $0; $153 = HEAP32[$152>>2]|0; $154 = ((($153)) + 56|0); $155 = HEAP32[$154>>2]|0; $156 = $0; $157 = HEAP32[$156>>2]|0; $158 = ((($157)) + 60|0); $159 = HEAP32[$158>>2]|0; $160 = ($155|0)==($159|0); do { if ($160) { $161 = $0; $162 = ((($161)) + 54|0); $163 = (_strcmp($162,17200)|0); $164 = ($163|0)!=(0); if ($164) { $165 = $0; $166 = ((($165)) + 54|0); $167 = (_strcmp($166,17208)|0); $168 = ($167|0)!=(0); if ($168) { label = 14; break; } } $169 = $2; $170 = $lf; $171 = (($170) - 1)|0; $172 = $171<<1; $173 = (($169) + ($172))|0; $174 = $lf; $175 = (_conv_init($173,$174)|0); $176 = $0; $177 = ((($176)) + 4|0); HEAP32[$177>>2] = $175; $178 = $0; $179 = ((($178)) + 68|0); HEAP32[$179>>2] = 1; } else { label = 14; } } while(0); if ((label|0) == 14) { $180 = $0; $181 = HEAP32[$180>>2]|0; $182 = ((($181)) + 56|0); $183 = HEAP32[$182>>2]|0; $184 = $0; $185 = HEAP32[$184>>2]|0; $186 = ((($185)) + 60|0); $187 = HEAP32[$186>>2]|0; $188 = ($183|0)==($187|0); if (!($188)) { (_printf((17264|0),($vararg_buffer1|0))|0); _exit(-1); // unreachable; } } $189 = $0; $190 = $signal; $191 = $2; $192 = $lf; $193 = (($192) - 1)|0; $194 = $193<<1; $195 = (($191) + ($194))|0; $196 = $0; $197 = HEAP32[$196>>2]|0; $198 = ((($197)) + 72|0); $199 = HEAP32[$198>>2]|0; $200 = $0; $201 = HEAP32[$200>>2]|0; $202 = ((($201)) + 56|0); $203 = HEAP32[$202>>2]|0; $204 = $cA_undec; _wconv($189,$190,$195,$199,$203,$204); $205 = $cA_undec; $206 = $lf; $207 = (($205) + ($206<<3)|0); $208 = $2; $209 = $lf; $210 = (($208) + ($209))|0; $211 = (($210) - 2)|0; $212 = $D; $213 = $3; (_downsamp($207,$211,$212,$213)|0); $214 = $0; $215 = $signal; $216 = $2; $217 = $lf; $218 = (($217) - 1)|0; $219 = $218<<1; $220 = (($216) + ($219))|0; $221 = $0; $222 = HEAP32[$221>>2]|0; $223 = ((($222)) + 76|0); $224 = HEAP32[$223>>2]|0; $225 = $0; $226 = HEAP32[$225>>2]|0; $227 = ((($226)) + 60|0); $228 = HEAP32[$227>>2]|0; $229 = $cA_undec; _wconv($214,$215,$220,$224,$228,$229); $230 = $cA_undec; $231 = $lf; $232 = (($230) + ($231<<3)|0); $233 = $2; $234 = $lf; $235 = (($233) + ($234))|0; $236 = (($235) - 2)|0; $237 = $D; $238 = $5; (_downsamp($232,$236,$237,$238)|0); } else { $21 = $2; $22 = $len_avg; $23 = (($21) + ($22))|0; $24 = $2; $25 = (($24|0) % 2)&-1; $26 = (($23) + ($25))|0; $27 = $26<<3; $28 = (_malloc($27)|0); $signal = $28; $29 = $1; $30 = $2; $31 = $len_avg; $32 = (($31|0) / 2)&-1; $33 = $signal; $34 = (_per_ext($29,$30,$32,$33)|0); $2 = $34; $35 = $2; $36 = $len_avg; $37 = (($35) + ($36))|0; $38 = $0; $39 = HEAP32[$38>>2]|0; $40 = ((($39)) + 56|0); $41 = HEAP32[$40>>2]|0; $42 = (($37) + ($41))|0; $43 = (($42) - 1)|0; $44 = $43<<3; $45 = (_malloc($44)|0); $cA_undec = $45; $46 = $0; $47 = HEAP32[$46>>2]|0; $48 = ((($47)) + 56|0); $49 = HEAP32[$48>>2]|0; $50 = $0; $51 = HEAP32[$50>>2]|0; $52 = ((($51)) + 60|0); $53 = HEAP32[$52>>2]|0; $54 = ($49|0)==($53|0); do { if ($54) { $55 = $0; $56 = ((($55)) + 54|0); $57 = (_strcmp($56,17200)|0); $58 = ($57|0)!=(0); if ($58) { $59 = $0; $60 = ((($59)) + 54|0); $61 = (_strcmp($60,17208)|0); $62 = ($61|0)!=(0); if ($62) { label = 6; break; } } $63 = $2; $64 = $len_avg; $65 = (($63) + ($64))|0; $66 = $0; $67 = HEAP32[$66>>2]|0; $68 = ((($67)) + 56|0); $69 = HEAP32[$68>>2]|0; $70 = (_conv_init($65,$69)|0); $71 = $0; $72 = ((($71)) + 4|0); HEAP32[$72>>2] = $70; $73 = $0; $74 = ((($73)) + 68|0); HEAP32[$74>>2] = 1; } else { label = 6; } } while(0); if ((label|0) == 6) { $75 = $0; $76 = HEAP32[$75>>2]|0; $77 = ((($76)) + 56|0); $78 = HEAP32[$77>>2]|0; $79 = $0; $80 = HEAP32[$79>>2]|0; $81 = ((($80)) + 60|0); $82 = HEAP32[$81>>2]|0; $83 = ($78|0)==($82|0); if (!($83)) { (_printf((17264|0),($vararg_buffer|0))|0); _exit(-1); // unreachable; } } $84 = $0; $85 = $signal; $86 = $2; $87 = $len_avg; $88 = (($86) + ($87))|0; $89 = $0; $90 = HEAP32[$89>>2]|0; $91 = ((($90)) + 72|0); $92 = HEAP32[$91>>2]|0; $93 = $0; $94 = HEAP32[$93>>2]|0; $95 = ((($94)) + 56|0); $96 = HEAP32[$95>>2]|0; $97 = $cA_undec; _wconv($84,$85,$88,$92,$96,$97); $98 = $cA_undec; $99 = $len_avg; $100 = (($98) + ($99<<3)|0); $101 = $2; $102 = $D; $103 = $3; (_downsamp($100,$101,$102,$103)|0); $104 = $0; $105 = $signal; $106 = $2; $107 = $len_avg; $108 = (($106) + ($107))|0; $109 = $0; $110 = HEAP32[$109>>2]|0; $111 = ((($110)) + 76|0); $112 = HEAP32[$111>>2]|0; $113 = $0; $114 = HEAP32[$113>>2]|0; $115 = ((($114)) + 60|0); $116 = HEAP32[$115>>2]|0; $117 = $cA_undec; _wconv($104,$105,$108,$112,$116,$117); $118 = $cA_undec; $119 = $len_avg; $120 = (($118) + ($119<<3)|0); $121 = $2; $122 = $D; $123 = $5; (_downsamp($120,$121,$122,$123)|0); } $239 = $0; $240 = HEAP32[$239>>2]|0; $241 = ((($240)) + 56|0); $242 = HEAP32[$241>>2]|0; $243 = $0; $244 = HEAP32[$243>>2]|0; $245 = ((($244)) + 60|0); $246 = HEAP32[$245>>2]|0; $247 = ($242|0)==($246|0); if (!($247)) { $261 = $signal; _free($261); $262 = $cA_undec; _free($262); STACKTOP = sp;return; } $248 = $0; $249 = ((($248)) + 54|0); $250 = (_strcmp($249,17200)|0); $251 = ($250|0)!=(0); if ($251) { $252 = $0; $253 = ((($252)) + 54|0); $254 = (_strcmp($253,17208)|0); $255 = ($254|0)!=(0); if ($255) { $261 = $signal; _free($261); $262 = $cA_undec; _free($262); STACKTOP = sp;return; } } $256 = $0; $257 = ((($256)) + 4|0); $258 = HEAP32[$257>>2]|0; _free_conv($258); $259 = $0; $260 = ((($259)) + 68|0); HEAP32[$260>>2] = 0; $261 = $signal; _free($261); $262 = $cA_undec; _free($262); STACKTOP = sp;return; } function _dwt_per($wt,$inp,$N,$cA,$len_cA,$cD,$len_cD) { $wt = $wt|0; $inp = $inp|0; $N = $N|0; $cA = $cA|0; $len_cA = $len_cA|0; $cD = $cD|0; $len_cD = $len_cD|0; var $0 = 0, $1 = 0, $10 = 0, $100 = 0.0, $101 = 0.0, $102 = 0, $103 = 0, $104 = 0, $105 = 0.0, $106 = 0.0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0.0, $114 = 0, $115 = 0; var $116 = 0, $117 = 0, $118 = 0, $119 = 0.0, $12 = 0, $120 = 0.0, $121 = 0, $122 = 0, $123 = 0, $124 = 0.0, $125 = 0.0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0; var $134 = 0, $135 = 0, $136 = 0.0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0.0, $145 = 0.0, $146 = 0, $147 = 0, $148 = 0, $149 = 0.0, $15 = 0, $150 = 0.0, $151 = 0; var $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0.0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0.0, $166 = 0.0, $167 = 0, $168 = 0, $169 = 0, $17 = 0; var $170 = 0.0, $171 = 0.0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0.0, $186 = 0, $187 = 0, $188 = 0; var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0.0, $194 = 0.0, $195 = 0, $196 = 0, $197 = 0, $198 = 0.0, $199 = 0.0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0; var $206 = 0.0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0.0, $215 = 0.0, $216 = 0, $217 = 0, $218 = 0, $219 = 0.0, $22 = 0, $220 = 0.0, $221 = 0, $222 = 0, $223 = 0; var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0.0, $24 = 0, $240 = 0, $241 = 0; var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0.0, $249 = 0.0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0.0, $254 = 0.0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0; var $260 = 0, $261 = 0.0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0.0, $271 = 0.0, $272 = 0, $273 = 0, $274 = 0, $275 = 0.0, $276 = 0.0, $277 = 0, $278 = 0; var $279 = 0, $28 = 0, $280 = 0, $281 = 0.0, $282 = 0.0, $283 = 0, $284 = 0, $285 = 0, $286 = 0.0, $287 = 0.0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0.0, $295 = 0, $296 = 0; var $297 = 0, $298 = 0, $299 = 0.0, $3 = 0, $30 = 0, $300 = 0.0, $301 = 0, $302 = 0, $303 = 0, $304 = 0.0, $305 = 0.0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0; var $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0.0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0.0; var $54 = 0.0, $55 = 0, $56 = 0, $57 = 0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0.0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0; var $72 = 0.0, $73 = 0.0, $74 = 0, $75 = 0, $76 = 0, $77 = 0.0, $78 = 0.0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0; var $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0.0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $i = 0, $isodd = 0, $l = 0, $l2 = 0, $len_avg = 0, $or$cond = 0, $or$cond3 = 0, $t = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $wt; $1 = $inp; $2 = $N; $3 = $cA; $4 = $len_cA; $5 = $cD; $6 = $len_cD; $7 = $0; $8 = HEAP32[$7>>2]|0; $9 = ((($8)) + 56|0); $10 = HEAP32[$9>>2]|0; $len_avg = $10; $11 = $len_avg; $12 = (($11|0) / 2)&-1; $l2 = $12; $13 = $2; $14 = (($13|0) % 2)&-1; $isodd = $14; $i = 0; while(1) { $15 = $i; $16 = $4; $17 = ($15|0)<($16|0); if (!($17)) { break; } $18 = $i; $19 = $18<<1; $20 = $l2; $21 = (($19) + ($20))|0; $t = $21; $22 = $i; $23 = $3; $24 = (($23) + ($22<<3)|0); HEAPF64[$24>>3] = 0.0; $25 = $i; $26 = $5; $27 = (($26) + ($25<<3)|0); HEAPF64[$27>>3] = 0.0; $l = 0; while(1) { $28 = $l; $29 = $len_avg; $30 = ($28|0)<($29|0); if (!($30)) { break; } $31 = $t; $32 = $l; $33 = (($31) - ($32))|0; $34 = $l2; $35 = ($33|0)>=($34|0); if ($35) { $36 = $t; $37 = $l; $38 = (($36) - ($37))|0; $39 = $2; $40 = ($38|0)<($39|0); if ($40) { $41 = $l; $42 = $0; $43 = HEAP32[$42>>2]|0; $44 = ((($43)) + 72|0); $45 = HEAP32[$44>>2]|0; $46 = (($45) + ($41<<3)|0); $47 = +HEAPF64[$46>>3]; $48 = $t; $49 = $l; $50 = (($48) - ($49))|0; $51 = $1; $52 = (($51) + ($50<<3)|0); $53 = +HEAPF64[$52>>3]; $54 = $47 * $53; $55 = $i; $56 = $3; $57 = (($56) + ($55<<3)|0); $58 = +HEAPF64[$57>>3]; $59 = $58 + $54; HEAPF64[$57>>3] = $59; $60 = $l; $61 = $0; $62 = HEAP32[$61>>2]|0; $63 = ((($62)) + 76|0); $64 = HEAP32[$63>>2]|0; $65 = (($64) + ($60<<3)|0); $66 = +HEAPF64[$65>>3]; $67 = $t; $68 = $l; $69 = (($67) - ($68))|0; $70 = $1; $71 = (($70) + ($69<<3)|0); $72 = +HEAPF64[$71>>3]; $73 = $66 * $72; $74 = $i; $75 = $5; $76 = (($75) + ($74<<3)|0); $77 = +HEAPF64[$76>>3]; $78 = $77 + $73; HEAPF64[$76>>3] = $78; } else { label = 8; } } else { label = 8; } do { if ((label|0) == 8) { label = 0; $79 = $t; $80 = $l; $81 = (($79) - ($80))|0; $82 = $l2; $83 = ($81|0)<($82|0); if ($83) { $84 = $t; $85 = $l; $86 = (($84) - ($85))|0; $87 = ($86|0)>=(0); if ($87) { $88 = $l; $89 = $0; $90 = HEAP32[$89>>2]|0; $91 = ((($90)) + 72|0); $92 = HEAP32[$91>>2]|0; $93 = (($92) + ($88<<3)|0); $94 = +HEAPF64[$93>>3]; $95 = $t; $96 = $l; $97 = (($95) - ($96))|0; $98 = $1; $99 = (($98) + ($97<<3)|0); $100 = +HEAPF64[$99>>3]; $101 = $94 * $100; $102 = $i; $103 = $3; $104 = (($103) + ($102<<3)|0); $105 = +HEAPF64[$104>>3]; $106 = $105 + $101; HEAPF64[$104>>3] = $106; $107 = $l; $108 = $0; $109 = HEAP32[$108>>2]|0; $110 = ((($109)) + 76|0); $111 = HEAP32[$110>>2]|0; $112 = (($111) + ($107<<3)|0); $113 = +HEAPF64[$112>>3]; $114 = $t; $115 = $l; $116 = (($114) - ($115))|0; $117 = $1; $118 = (($117) + ($116<<3)|0); $119 = +HEAPF64[$118>>3]; $120 = $113 * $119; $121 = $i; $122 = $5; $123 = (($122) + ($121<<3)|0); $124 = +HEAPF64[$123>>3]; $125 = $124 + $120; HEAPF64[$123>>3] = $125; break; } } $126 = $t; $127 = $l; $128 = (($126) - ($127))|0; $129 = ($128|0)<(0); if ($129) { $130 = $l; $131 = $0; $132 = HEAP32[$131>>2]|0; $133 = ((($132)) + 72|0); $134 = HEAP32[$133>>2]|0; $135 = (($134) + ($130<<3)|0); $136 = +HEAPF64[$135>>3]; $137 = $t; $138 = $l; $139 = (($137) - ($138))|0; $140 = $2; $141 = (($139) + ($140))|0; $142 = $1; $143 = (($142) + ($141<<3)|0); $144 = +HEAPF64[$143>>3]; $145 = $136 * $144; $146 = $i; $147 = $3; $148 = (($147) + ($146<<3)|0); $149 = +HEAPF64[$148>>3]; $150 = $149 + $145; HEAPF64[$148>>3] = $150; $151 = $l; $152 = $0; $153 = HEAP32[$152>>2]|0; $154 = ((($153)) + 76|0); $155 = HEAP32[$154>>2]|0; $156 = (($155) + ($151<<3)|0); $157 = +HEAPF64[$156>>3]; $158 = $t; $159 = $l; $160 = (($158) - ($159))|0; $161 = $2; $162 = (($160) + ($161))|0; $163 = $1; $164 = (($163) + ($162<<3)|0); $165 = +HEAPF64[$164>>3]; $166 = $157 * $165; $167 = $i; $168 = $5; $169 = (($168) + ($167<<3)|0); $170 = +HEAPF64[$169>>3]; $171 = $170 + $166; HEAPF64[$169>>3] = $171; break; } $172 = $t; $173 = $l; $174 = (($172) - ($173))|0; $175 = $2; $176 = ($174|0)>=($175|0); $177 = $isodd; $178 = ($177|0)==(0); $or$cond = $176 & $178; if ($or$cond) { $179 = $l; $180 = $0; $181 = HEAP32[$180>>2]|0; $182 = ((($181)) + 72|0); $183 = HEAP32[$182>>2]|0; $184 = (($183) + ($179<<3)|0); $185 = +HEAPF64[$184>>3]; $186 = $t; $187 = $l; $188 = (($186) - ($187))|0; $189 = $2; $190 = (($188) - ($189))|0; $191 = $1; $192 = (($191) + ($190<<3)|0); $193 = +HEAPF64[$192>>3]; $194 = $185 * $193; $195 = $i; $196 = $3; $197 = (($196) + ($195<<3)|0); $198 = +HEAPF64[$197>>3]; $199 = $198 + $194; HEAPF64[$197>>3] = $199; $200 = $l; $201 = $0; $202 = HEAP32[$201>>2]|0; $203 = ((($202)) + 76|0); $204 = HEAP32[$203>>2]|0; $205 = (($204) + ($200<<3)|0); $206 = +HEAPF64[$205>>3]; $207 = $t; $208 = $l; $209 = (($207) - ($208))|0; $210 = $2; $211 = (($209) - ($210))|0; $212 = $1; $213 = (($212) + ($211<<3)|0); $214 = +HEAPF64[$213>>3]; $215 = $206 * $214; $216 = $i; $217 = $5; $218 = (($217) + ($216<<3)|0); $219 = +HEAPF64[$218>>3]; $220 = $219 + $215; HEAPF64[$218>>3] = $220; break; } $221 = $t; $222 = $l; $223 = (($221) - ($222))|0; $224 = $2; $225 = ($223|0)>=($224|0); $226 = $isodd; $227 = ($226|0)==(1); $or$cond3 = $225 & $227; if ($or$cond3) { $228 = $t; $229 = $l; $230 = (($228) - ($229))|0; $231 = $2; $232 = ($230|0)!=($231|0); $233 = $l; $234 = $0; $235 = HEAP32[$234>>2]|0; $236 = ((($235)) + 72|0); $237 = HEAP32[$236>>2]|0; $238 = (($237) + ($233<<3)|0); $239 = +HEAPF64[$238>>3]; if ($232) { $240 = $t; $241 = $l; $242 = (($240) - ($241))|0; $243 = $2; $244 = (($243) + 1)|0; $245 = (($242) - ($244))|0; $246 = $1; $247 = (($246) + ($245<<3)|0); $248 = +HEAPF64[$247>>3]; $249 = $239 * $248; $250 = $i; $251 = $3; $252 = (($251) + ($250<<3)|0); $253 = +HEAPF64[$252>>3]; $254 = $253 + $249; HEAPF64[$252>>3] = $254; $255 = $l; $256 = $0; $257 = HEAP32[$256>>2]|0; $258 = ((($257)) + 76|0); $259 = HEAP32[$258>>2]|0; $260 = (($259) + ($255<<3)|0); $261 = +HEAPF64[$260>>3]; $262 = $t; $263 = $l; $264 = (($262) - ($263))|0; $265 = $2; $266 = (($265) + 1)|0; $267 = (($264) - ($266))|0; $268 = $1; $269 = (($268) + ($267<<3)|0); $270 = +HEAPF64[$269>>3]; $271 = $261 * $270; $272 = $i; $273 = $5; $274 = (($273) + ($272<<3)|0); $275 = +HEAPF64[$274>>3]; $276 = $275 + $271; HEAPF64[$274>>3] = $276; break; } else { $277 = $2; $278 = (($277) - 1)|0; $279 = $1; $280 = (($279) + ($278<<3)|0); $281 = +HEAPF64[$280>>3]; $282 = $239 * $281; $283 = $i; $284 = $3; $285 = (($284) + ($283<<3)|0); $286 = +HEAPF64[$285>>3]; $287 = $286 + $282; HEAPF64[$285>>3] = $287; $288 = $l; $289 = $0; $290 = HEAP32[$289>>2]|0; $291 = ((($290)) + 76|0); $292 = HEAP32[$291>>2]|0; $293 = (($292) + ($288<<3)|0); $294 = +HEAPF64[$293>>3]; $295 = $2; $296 = (($295) - 1)|0; $297 = $1; $298 = (($297) + ($296<<3)|0); $299 = +HEAPF64[$298>>3]; $300 = $294 * $299; $301 = $i; $302 = $5; $303 = (($302) + ($301<<3)|0); $304 = +HEAPF64[$303>>3]; $305 = $304 + $300; HEAPF64[$303>>3] = $305; break; } } } } while(0); $306 = $l; $307 = (($306) + 1)|0; $l = $307; } $308 = $i; $309 = (($308) + 1)|0; $i = $309; } STACKTOP = sp;return; } function _dwt_sym($wt,$inp,$N,$cA,$len_cA,$cD,$len_cD) { $wt = $wt|0; $inp = $inp|0; $N = $N|0; $cA = $cA|0; $len_cA = $len_cA|0; $cD = $cD|0; $len_cD = $len_cD|0; var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0.0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0.0, $113 = 0.0, $114 = 0, $115 = 0; var $116 = 0, $117 = 0.0, $118 = 0.0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0.0, $131 = 0, $132 = 0, $133 = 0; var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0.0, $141 = 0.0, $142 = 0, $143 = 0, $144 = 0, $145 = 0.0, $146 = 0.0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0; var $152 = 0, $153 = 0.0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0.0, $164 = 0.0, $165 = 0, $166 = 0, $167 = 0, $168 = 0.0, $169 = 0.0, $17 = 0; var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0; var $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0.0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0.0, $48 = 0.0, $49 = 0, $5 = 0; var $50 = 0, $51 = 0, $52 = 0.0, $53 = 0.0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0.0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0.0, $67 = 0.0, $68 = 0; var $69 = 0, $7 = 0, $70 = 0, $71 = 0.0, $72 = 0.0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0.0, $84 = 0, $85 = 0, $86 = 0; var $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0.0, $92 = 0.0, $93 = 0, $94 = 0, $95 = 0, $96 = 0.0, $97 = 0.0, $98 = 0, $99 = 0, $i = 0, $l = 0, $len_avg = 0, $t = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $wt; $1 = $inp; $2 = $N; $3 = $cA; $4 = $len_cA; $5 = $cD; $6 = $len_cD; $7 = $0; $8 = HEAP32[$7>>2]|0; $9 = ((($8)) + 56|0); $10 = HEAP32[$9>>2]|0; $len_avg = $10; $i = 0; while(1) { $11 = $i; $12 = $4; $13 = ($11|0)<($12|0); if (!($13)) { break; } $14 = $i; $15 = $14<<1; $16 = (($15) + 1)|0; $t = $16; $17 = $i; $18 = $3; $19 = (($18) + ($17<<3)|0); HEAPF64[$19>>3] = 0.0; $20 = $i; $21 = $5; $22 = (($21) + ($20<<3)|0); HEAPF64[$22>>3] = 0.0; $l = 0; while(1) { $23 = $l; $24 = $len_avg; $25 = ($23|0)<($24|0); if (!($25)) { break; } $26 = $t; $27 = $l; $28 = (($26) - ($27))|0; $29 = ($28|0)>=(0); if ($29) { $30 = $t; $31 = $l; $32 = (($30) - ($31))|0; $33 = $2; $34 = ($32|0)<($33|0); if ($34) { $35 = $l; $36 = $0; $37 = HEAP32[$36>>2]|0; $38 = ((($37)) + 72|0); $39 = HEAP32[$38>>2]|0; $40 = (($39) + ($35<<3)|0); $41 = +HEAPF64[$40>>3]; $42 = $t; $43 = $l; $44 = (($42) - ($43))|0; $45 = $1; $46 = (($45) + ($44<<3)|0); $47 = +HEAPF64[$46>>3]; $48 = $41 * $47; $49 = $i; $50 = $3; $51 = (($50) + ($49<<3)|0); $52 = +HEAPF64[$51>>3]; $53 = $52 + $48; HEAPF64[$51>>3] = $53; $54 = $l; $55 = $0; $56 = HEAP32[$55>>2]|0; $57 = ((($56)) + 76|0); $58 = HEAP32[$57>>2]|0; $59 = (($58) + ($54<<3)|0); $60 = +HEAPF64[$59>>3]; $61 = $t; $62 = $l; $63 = (($61) - ($62))|0; $64 = $1; $65 = (($64) + ($63<<3)|0); $66 = +HEAPF64[$65>>3]; $67 = $60 * $66; $68 = $i; $69 = $5; $70 = (($69) + ($68<<3)|0); $71 = +HEAPF64[$70>>3]; $72 = $71 + $67; HEAPF64[$70>>3] = $72; } else { label = 8; } } else { label = 8; } do { if ((label|0) == 8) { label = 0; $73 = $t; $74 = $l; $75 = (($73) - ($74))|0; $76 = ($75|0)<(0); if ($76) { $77 = $l; $78 = $0; $79 = HEAP32[$78>>2]|0; $80 = ((($79)) + 72|0); $81 = HEAP32[$80>>2]|0; $82 = (($81) + ($77<<3)|0); $83 = +HEAPF64[$82>>3]; $84 = $t; $85 = (0 - ($84))|0; $86 = $l; $87 = (($85) + ($86))|0; $88 = (($87) - 1)|0; $89 = $1; $90 = (($89) + ($88<<3)|0); $91 = +HEAPF64[$90>>3]; $92 = $83 * $91; $93 = $i; $94 = $3; $95 = (($94) + ($93<<3)|0); $96 = +HEAPF64[$95>>3]; $97 = $96 + $92; HEAPF64[$95>>3] = $97; $98 = $l; $99 = $0; $100 = HEAP32[$99>>2]|0; $101 = ((($100)) + 76|0); $102 = HEAP32[$101>>2]|0; $103 = (($102) + ($98<<3)|0); $104 = +HEAPF64[$103>>3]; $105 = $t; $106 = (0 - ($105))|0; $107 = $l; $108 = (($106) + ($107))|0; $109 = (($108) - 1)|0; $110 = $1; $111 = (($110) + ($109<<3)|0); $112 = +HEAPF64[$111>>3]; $113 = $104 * $112; $114 = $i; $115 = $5; $116 = (($115) + ($114<<3)|0); $117 = +HEAPF64[$116>>3]; $118 = $117 + $113; HEAPF64[$116>>3] = $118; break; } $119 = $t; $120 = $l; $121 = (($119) - ($120))|0; $122 = $2; $123 = ($121|0)>=($122|0); if ($123) { $124 = $l; $125 = $0; $126 = HEAP32[$125>>2]|0; $127 = ((($126)) + 72|0); $128 = HEAP32[$127>>2]|0; $129 = (($128) + ($124<<3)|0); $130 = +HEAPF64[$129>>3]; $131 = $2; $132 = $131<<1; $133 = $t; $134 = (($132) - ($133))|0; $135 = $l; $136 = (($134) + ($135))|0; $137 = (($136) - 1)|0; $138 = $1; $139 = (($138) + ($137<<3)|0); $140 = +HEAPF64[$139>>3]; $141 = $130 * $140; $142 = $i; $143 = $3; $144 = (($143) + ($142<<3)|0); $145 = +HEAPF64[$144>>3]; $146 = $145 + $141; HEAPF64[$144>>3] = $146; $147 = $l; $148 = $0; $149 = HEAP32[$148>>2]|0; $150 = ((($149)) + 76|0); $151 = HEAP32[$150>>2]|0; $152 = (($151) + ($147<<3)|0); $153 = +HEAPF64[$152>>3]; $154 = $2; $155 = $154<<1; $156 = $t; $157 = (($155) - ($156))|0; $158 = $l; $159 = (($157) + ($158))|0; $160 = (($159) - 1)|0; $161 = $1; $162 = (($161) + ($160<<3)|0); $163 = +HEAPF64[$162>>3]; $164 = $153 * $163; $165 = $i; $166 = $5; $167 = (($166) + ($165<<3)|0); $168 = +HEAPF64[$167>>3]; $169 = $168 + $164; HEAPF64[$167>>3] = $169; } } } while(0); $170 = $l; $171 = (($170) + 1)|0; $l = $171; } $172 = $i; $173 = (($172) + 1)|0; $i = $173; } STACKTOP = sp;return; } function _idwt1($wt,$temp,$cA_up,$cA,$len_cA,$cD,$len_cD,$X_lp,$X_hp,$X) { $wt = $wt|0; $temp = $temp|0; $cA_up = $cA_up|0; $cA = $cA|0; $len_cA = $len_cA|0; $cD = $cD|0; $len_cD = $len_cD|0; $X_lp = $X_lp|0; $X_hp = $X_hp|0; $X = $X|0; var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0.0, $113 = 0, $114 = 0, $115 = 0; var $116 = 0.0, $117 = 0.0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0; var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0; var $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0; var $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0; var $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0; var $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0; var $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $N = 0, $N2 = 0, $U = 0, $i = 0, $len_avg = 0, $vararg_buffer = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $vararg_buffer = sp; $0 = $wt; $1 = $temp; $2 = $cA_up; $3 = $cA; $4 = $len_cA; $5 = $cD; $6 = $len_cD; $7 = $X_lp; $8 = $X_hp; $9 = $X; $10 = $0; $11 = HEAP32[$10>>2]|0; $12 = ((($11)) + 64|0); $13 = HEAP32[$12>>2]|0; $14 = $0; $15 = HEAP32[$14>>2]|0; $16 = ((($15)) + 68|0); $17 = HEAP32[$16>>2]|0; $18 = (($13) + ($17))|0; $19 = (($18|0) / 2)&-1; $len_avg = $19; $20 = $6; $21 = $20<<1; $N = $21; $U = 2; $22 = $3; $23 = $4; $24 = $U; $25 = $2; (_upsamp2($22,$23,$24,$25)|0); $26 = $2; $27 = $4; $28 = $27<<1; $29 = $len_avg; $30 = (($29|0) / 2)&-1; $31 = $1; (_per_ext($26,$28,$30,$31)|0); $32 = $4; $33 = $32<<1; $34 = $len_avg; $35 = (($33) + ($34))|0; $N2 = $35; $36 = $0; $37 = HEAP32[$36>>2]|0; $38 = ((($37)) + 64|0); $39 = HEAP32[$38>>2]|0; $40 = $0; $41 = HEAP32[$40>>2]|0; $42 = ((($41)) + 68|0); $43 = HEAP32[$42>>2]|0; $44 = ($39|0)==($43|0); do { if ($44) { $45 = $0; $46 = ((($45)) + 54|0); $47 = (_strcmp($46,17200)|0); $48 = ($47|0)!=(0); if ($48) { $49 = $0; $50 = ((($49)) + 54|0); $51 = (_strcmp($50,17208)|0); $52 = ($51|0)!=(0); if ($52) { label = 5; break; } } $53 = $N2; $54 = $len_avg; $55 = (_conv_init($53,$54)|0); $56 = $0; $57 = ((($56)) + 4|0); HEAP32[$57>>2] = $55; $58 = $0; $59 = ((($58)) + 68|0); HEAP32[$59>>2] = 1; } else { label = 5; } } while(0); if ((label|0) == 5) { $60 = $0; $61 = HEAP32[$60>>2]|0; $62 = ((($61)) + 64|0); $63 = HEAP32[$62>>2]|0; $64 = $0; $65 = HEAP32[$64>>2]|0; $66 = ((($65)) + 68|0); $67 = HEAP32[$66>>2]|0; $68 = ($63|0)==($67|0); if (!($68)) { (_printf((17264|0),($vararg_buffer|0))|0); _exit(-1); // unreachable; } } $69 = $0; $70 = $1; $71 = $N2; $72 = $0; $73 = HEAP32[$72>>2]|0; $74 = ((($73)) + 80|0); $75 = HEAP32[$74>>2]|0; $76 = $len_avg; $77 = $7; _wconv($69,$70,$71,$75,$76,$77); $78 = $5; $79 = $6; $80 = $U; $81 = $2; (_upsamp2($78,$79,$80,$81)|0); $82 = $2; $83 = $6; $84 = $83<<1; $85 = $len_avg; $86 = (($85|0) / 2)&-1; $87 = $1; (_per_ext($82,$84,$86,$87)|0); $88 = $6; $89 = $88<<1; $90 = $len_avg; $91 = (($89) + ($90))|0; $N2 = $91; $92 = $0; $93 = $1; $94 = $N2; $95 = $0; $96 = HEAP32[$95>>2]|0; $97 = ((($96)) + 84|0); $98 = HEAP32[$97>>2]|0; $99 = $len_avg; $100 = $8; _wconv($92,$93,$94,$98,$99,$100); $101 = $len_avg; $102 = (($101) - 1)|0; $i = $102; while(1) { $103 = $i; $104 = $N; $105 = $len_avg; $106 = (($104) + ($105))|0; $107 = (($106) - 1)|0; $108 = ($103|0)<($107|0); if (!($108)) { break; } $109 = $i; $110 = $7; $111 = (($110) + ($109<<3)|0); $112 = +HEAPF64[$111>>3]; $113 = $i; $114 = $8; $115 = (($114) + ($113<<3)|0); $116 = +HEAPF64[$115>>3]; $117 = $112 + $116; $118 = $i; $119 = $len_avg; $120 = (($118) - ($119))|0; $121 = (($120) + 1)|0; $122 = $9; $123 = (($122) + ($121<<3)|0); HEAPF64[$123>>3] = $117; $124 = $i; $125 = (($124) + 1)|0; $i = $125; } $126 = $0; $127 = HEAP32[$126>>2]|0; $128 = ((($127)) + 64|0); $129 = HEAP32[$128>>2]|0; $130 = $0; $131 = HEAP32[$130>>2]|0; $132 = ((($131)) + 68|0); $133 = HEAP32[$132>>2]|0; $134 = ($129|0)==($133|0); if (!($134)) { STACKTOP = sp;return; } $135 = $0; $136 = ((($135)) + 54|0); $137 = (_strcmp($136,17200)|0); $138 = ($137|0)!=(0); if ($138) { $139 = $0; $140 = ((($139)) + 54|0); $141 = (_strcmp($140,17208)|0); $142 = ($141|0)!=(0); if ($142) { STACKTOP = sp;return; } } $143 = $0; $144 = ((($143)) + 4|0); $145 = HEAP32[$144>>2]|0; _free_conv($145); $146 = $0; $147 = ((($146)) + 68|0); HEAP32[$147>>2] = 0; STACKTOP = sp;return; } function _idwt_per($wt,$cA,$len_cA,$cD,$len_cD,$X) { $wt = $wt|0; $cA = $cA|0; $len_cA = $len_cA|0; $cD = $cD|0; $len_cD = $len_cD|0; $X = $X|0; var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0.0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0.0, $113 = 0.0, $114 = 0.0, $115 = 0; var $116 = 0, $117 = 0, $118 = 0.0, $119 = 0.0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0; var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0.0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0.0, $148 = 0.0, $149 = 0, $15 = 0, $150 = 0, $151 = 0; var $152 = 0, $153 = 0, $154 = 0, $155 = 0.0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0.0, $164 = 0.0, $165 = 0.0, $166 = 0, $167 = 0, $168 = 0, $169 = 0.0, $17 = 0; var $170 = 0.0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0.0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0.0, $187 = 0.0, $188 = 0; var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0.0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0.0, $204 = 0.0, $205 = 0.0; var $206 = 0, $207 = 0, $208 = 0, $209 = 0.0, $21 = 0, $210 = 0.0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0; var $224 = 0, $225 = 0, $226 = 0, $227 = 0.0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0.0, $236 = 0.0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0; var $242 = 0, $243 = 0.0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0.0, $252 = 0.0, $253 = 0.0, $254 = 0, $255 = 0, $256 = 0, $257 = 0.0, $258 = 0.0, $259 = 0, $26 = 0; var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0.0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0.0, $275 = 0.0, $276 = 0, $277 = 0, $278 = 0; var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0.0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0.0, $292 = 0.0, $293 = 0.0, $294 = 0, $295 = 0, $296 = 0; var $297 = 0.0, $298 = 0.0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0.0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; var $60 = 0, $61 = 0, $62 = 0.0, $63 = 0.0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0.0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0.0, $77 = 0.0, $78 = 0.0; var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0.0, $83 = 0.0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0.0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0; var $97 = 0.0, $98 = 0.0, $99 = 0, $N = 0, $i = 0, $l = 0, $l2 = 0, $len_avg = 0, $m = 0, $n = 0, $t = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $wt; $1 = $cA; $2 = $len_cA; $3 = $cD; $4 = $len_cD; $5 = $X; $6 = $0; $7 = HEAP32[$6>>2]|0; $8 = ((($7)) + 64|0); $9 = HEAP32[$8>>2]|0; $10 = $0; $11 = HEAP32[$10>>2]|0; $12 = ((($11)) + 68|0); $13 = HEAP32[$12>>2]|0; $14 = (($9) + ($13))|0; $15 = (($14|0) / 2)&-1; $len_avg = $15; $16 = $2; $17 = $16<<1; $N = $17; $18 = $len_avg; $19 = (($18|0) / 2)&-1; $l2 = $19; $m = -2; $n = -1; $i = 0; while(1) { $20 = $i; $21 = $2; $22 = $l2; $23 = (($21) + ($22))|0; $24 = (($23) - 1)|0; $25 = ($20|0)<($24|0); if (!($25)) { break; } $26 = $m; $27 = (($26) + 2)|0; $m = $27; $28 = $n; $29 = (($28) + 2)|0; $n = $29; $30 = $m; $31 = $5; $32 = (($31) + ($30<<3)|0); HEAPF64[$32>>3] = 0.0; $33 = $n; $34 = $5; $35 = (($34) + ($33<<3)|0); HEAPF64[$35>>3] = 0.0; $l = 0; while(1) { $36 = $l; $37 = $l2; $38 = ($36|0)<($37|0); if (!($38)) { break; } $39 = $l; $40 = $39<<1; $t = $40; $41 = $i; $42 = $l; $43 = (($41) - ($42))|0; $44 = ($43|0)>=(0); if ($44) { $45 = $i; $46 = $l; $47 = (($45) - ($46))|0; $48 = $2; $49 = ($47|0)<($48|0); if ($49) { $50 = $t; $51 = $0; $52 = HEAP32[$51>>2]|0; $53 = ((($52)) + 80|0); $54 = HEAP32[$53>>2]|0; $55 = (($54) + ($50<<3)|0); $56 = +HEAPF64[$55>>3]; $57 = $i; $58 = $l; $59 = (($57) - ($58))|0; $60 = $1; $61 = (($60) + ($59<<3)|0); $62 = +HEAPF64[$61>>3]; $63 = $56 * $62; $64 = $t; $65 = $0; $66 = HEAP32[$65>>2]|0; $67 = ((($66)) + 84|0); $68 = HEAP32[$67>>2]|0; $69 = (($68) + ($64<<3)|0); $70 = +HEAPF64[$69>>3]; $71 = $i; $72 = $l; $73 = (($71) - ($72))|0; $74 = $3; $75 = (($74) + ($73<<3)|0); $76 = +HEAPF64[$75>>3]; $77 = $70 * $76; $78 = $63 + $77; $79 = $m; $80 = $5; $81 = (($80) + ($79<<3)|0); $82 = +HEAPF64[$81>>3]; $83 = $82 + $78; HEAPF64[$81>>3] = $83; $84 = $t; $85 = (($84) + 1)|0; $86 = $0; $87 = HEAP32[$86>>2]|0; $88 = ((($87)) + 80|0); $89 = HEAP32[$88>>2]|0; $90 = (($89) + ($85<<3)|0); $91 = +HEAPF64[$90>>3]; $92 = $i; $93 = $l; $94 = (($92) - ($93))|0; $95 = $1; $96 = (($95) + ($94<<3)|0); $97 = +HEAPF64[$96>>3]; $98 = $91 * $97; $99 = $t; $100 = (($99) + 1)|0; $101 = $0; $102 = HEAP32[$101>>2]|0; $103 = ((($102)) + 84|0); $104 = HEAP32[$103>>2]|0; $105 = (($104) + ($100<<3)|0); $106 = +HEAPF64[$105>>3]; $107 = $i; $108 = $l; $109 = (($107) - ($108))|0; $110 = $3; $111 = (($110) + ($109<<3)|0); $112 = +HEAPF64[$111>>3]; $113 = $106 * $112; $114 = $98 + $113; $115 = $n; $116 = $5; $117 = (($116) + ($115<<3)|0); $118 = +HEAPF64[$117>>3]; $119 = $118 + $114; HEAPF64[$117>>3] = $119; } else { label = 8; } } else { label = 8; } do { if ((label|0) == 8) { label = 0; $120 = $i; $121 = $l; $122 = (($120) - ($121))|0; $123 = $2; $124 = ($122|0)>=($123|0); if ($124) { $125 = $i; $126 = $l; $127 = (($125) - ($126))|0; $128 = $2; $129 = $len_avg; $130 = (($128) + ($129))|0; $131 = (($130) - 1)|0; $132 = ($127|0)<($131|0); if ($132) { $133 = $t; $134 = $0; $135 = HEAP32[$134>>2]|0; $136 = ((($135)) + 80|0); $137 = HEAP32[$136>>2]|0; $138 = (($137) + ($133<<3)|0); $139 = +HEAPF64[$138>>3]; $140 = $i; $141 = $l; $142 = (($140) - ($141))|0; $143 = $2; $144 = (($142) - ($143))|0; $145 = $1; $146 = (($145) + ($144<<3)|0); $147 = +HEAPF64[$146>>3]; $148 = $139 * $147; $149 = $t; $150 = $0; $151 = HEAP32[$150>>2]|0; $152 = ((($151)) + 84|0); $153 = HEAP32[$152>>2]|0; $154 = (($153) + ($149<<3)|0); $155 = +HEAPF64[$154>>3]; $156 = $i; $157 = $l; $158 = (($156) - ($157))|0; $159 = $2; $160 = (($158) - ($159))|0; $161 = $3; $162 = (($161) + ($160<<3)|0); $163 = +HEAPF64[$162>>3]; $164 = $155 * $163; $165 = $148 + $164; $166 = $m; $167 = $5; $168 = (($167) + ($166<<3)|0); $169 = +HEAPF64[$168>>3]; $170 = $169 + $165; HEAPF64[$168>>3] = $170; $171 = $t; $172 = (($171) + 1)|0; $173 = $0; $174 = HEAP32[$173>>2]|0; $175 = ((($174)) + 80|0); $176 = HEAP32[$175>>2]|0; $177 = (($176) + ($172<<3)|0); $178 = +HEAPF64[$177>>3]; $179 = $i; $180 = $l; $181 = (($179) - ($180))|0; $182 = $2; $183 = (($181) - ($182))|0; $184 = $1; $185 = (($184) + ($183<<3)|0); $186 = +HEAPF64[$185>>3]; $187 = $178 * $186; $188 = $t; $189 = (($188) + 1)|0; $190 = $0; $191 = HEAP32[$190>>2]|0; $192 = ((($191)) + 84|0); $193 = HEAP32[$192>>2]|0; $194 = (($193) + ($189<<3)|0); $195 = +HEAPF64[$194>>3]; $196 = $i; $197 = $l; $198 = (($196) - ($197))|0; $199 = $2; $200 = (($198) - ($199))|0; $201 = $3; $202 = (($201) + ($200<<3)|0); $203 = +HEAPF64[$202>>3]; $204 = $195 * $203; $205 = $187 + $204; $206 = $n; $207 = $5; $208 = (($207) + ($206<<3)|0); $209 = +HEAPF64[$208>>3]; $210 = $209 + $205; HEAPF64[$208>>3] = $210; break; } } $211 = $i; $212 = $l; $213 = (($211) - ($212))|0; $214 = ($213|0)<(0); if ($214) { $215 = $i; $216 = $l; $217 = (($215) - ($216))|0; $218 = $l2; $219 = (0 - ($218))|0; $220 = ($217|0)>($219|0); if ($220) { $221 = $t; $222 = $0; $223 = HEAP32[$222>>2]|0; $224 = ((($223)) + 80|0); $225 = HEAP32[$224>>2]|0; $226 = (($225) + ($221<<3)|0); $227 = +HEAPF64[$226>>3]; $228 = $2; $229 = $i; $230 = (($228) + ($229))|0; $231 = $l; $232 = (($230) - ($231))|0; $233 = $1; $234 = (($233) + ($232<<3)|0); $235 = +HEAPF64[$234>>3]; $236 = $227 * $235; $237 = $t; $238 = $0; $239 = HEAP32[$238>>2]|0; $240 = ((($239)) + 84|0); $241 = HEAP32[$240>>2]|0; $242 = (($241) + ($237<<3)|0); $243 = +HEAPF64[$242>>3]; $244 = $2; $245 = $i; $246 = (($244) + ($245))|0; $247 = $l; $248 = (($246) - ($247))|0; $249 = $3; $250 = (($249) + ($248<<3)|0); $251 = +HEAPF64[$250>>3]; $252 = $243 * $251; $253 = $236 + $252; $254 = $m; $255 = $5; $256 = (($255) + ($254<<3)|0); $257 = +HEAPF64[$256>>3]; $258 = $257 + $253; HEAPF64[$256>>3] = $258; $259 = $t; $260 = (($259) + 1)|0; $261 = $0; $262 = HEAP32[$261>>2]|0; $263 = ((($262)) + 80|0); $264 = HEAP32[$263>>2]|0; $265 = (($264) + ($260<<3)|0); $266 = +HEAPF64[$265>>3]; $267 = $2; $268 = $i; $269 = (($267) + ($268))|0; $270 = $l; $271 = (($269) - ($270))|0; $272 = $1; $273 = (($272) + ($271<<3)|0); $274 = +HEAPF64[$273>>3]; $275 = $266 * $274; $276 = $t; $277 = (($276) + 1)|0; $278 = $0; $279 = HEAP32[$278>>2]|0; $280 = ((($279)) + 84|0); $281 = HEAP32[$280>>2]|0; $282 = (($281) + ($277<<3)|0); $283 = +HEAPF64[$282>>3]; $284 = $2; $285 = $i; $286 = (($284) + ($285))|0; $287 = $l; $288 = (($286) - ($287))|0; $289 = $3; $290 = (($289) + ($288<<3)|0); $291 = +HEAPF64[$290>>3]; $292 = $283 * $291; $293 = $275 + $292; $294 = $n; $295 = $5; $296 = (($295) + ($294<<3)|0); $297 = +HEAPF64[$296>>3]; $298 = $297 + $293; HEAPF64[$296>>3] = $298; } } } } while(0); $299 = $l; $300 = (($299) + 1)|0; $l = $300; } $301 = $i; $302 = (($301) + 1)|0; $i = $302; } STACKTOP = sp;return; } function _idwt_sym($wt,$cA,$len_cA,$cD,$len_cD,$X) { $wt = $wt|0; $cA = $cA|0; $len_cA = $len_cA|0; $cD = $cD|0; $len_cD = $len_cD|0; $X = $X|0; var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0.0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0.0, $114 = 0.0, $115 = 0.0; var $116 = 0, $117 = 0, $118 = 0, $119 = 0.0, $12 = 0, $120 = 0.0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0; var $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0; var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0.0, $58 = 0; var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0.0, $64 = 0.0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0.0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0; var $77 = 0.0, $78 = 0.0, $79 = 0.0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0.0, $84 = 0.0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0.0, $93 = 0, $94 = 0; var $95 = 0, $96 = 0, $97 = 0, $98 = 0.0, $99 = 0.0, $N = 0, $i = 0, $l = 0, $l2 = 0, $len_avg = 0, $m = 0, $n = 0, $t = 0, $v = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $wt; $1 = $cA; $2 = $len_cA; $3 = $cD; $4 = $len_cD; $5 = $X; $6 = $0; $7 = HEAP32[$6>>2]|0; $8 = ((($7)) + 64|0); $9 = HEAP32[$8>>2]|0; $10 = $0; $11 = HEAP32[$10>>2]|0; $12 = ((($11)) + 68|0); $13 = HEAP32[$12>>2]|0; $14 = (($9) + ($13))|0; $15 = (($14|0) / 2)&-1; $len_avg = $15; $16 = $2; $17 = $16<<1; $18 = (($17) - 1)|0; $N = $18; $m = -2; $n = -1; $19 = $len_avg; $20 = (($19) - 2)|0; $21 = (($20|0) / 2)&-1; $l2 = $21; $v = 0; while(1) { $22 = $v; $23 = $2; $24 = ($22|0)<($23|0); if (!($24)) { break; } $25 = $v; $i = $25; $26 = $m; $27 = (($26) + 2)|0; $m = $27; $28 = $n; $29 = (($28) + 2)|0; $n = $29; $30 = $m; $31 = $5; $32 = (($31) + ($30<<3)|0); HEAPF64[$32>>3] = 0.0; $33 = $n; $34 = $5; $35 = (($34) + ($33<<3)|0); HEAPF64[$35>>3] = 0.0; $l = 0; while(1) { $36 = $l; $37 = $len_avg; $38 = (($37|0) / 2)&-1; $39 = ($36|0)<($38|0); if (!($39)) { break; } $40 = $l; $41 = $40<<1; $t = $41; $42 = $i; $43 = $l; $44 = (($42) - ($43))|0; $45 = ($44|0)>=(0); if ($45) { $46 = $i; $47 = $l; $48 = (($46) - ($47))|0; $49 = $2; $50 = ($48|0)<($49|0); if ($50) { $51 = $t; $52 = $0; $53 = HEAP32[$52>>2]|0; $54 = ((($53)) + 80|0); $55 = HEAP32[$54>>2]|0; $56 = (($55) + ($51<<3)|0); $57 = +HEAPF64[$56>>3]; $58 = $i; $59 = $l; $60 = (($58) - ($59))|0; $61 = $1; $62 = (($61) + ($60<<3)|0); $63 = +HEAPF64[$62>>3]; $64 = $57 * $63; $65 = $t; $66 = $0; $67 = HEAP32[$66>>2]|0; $68 = ((($67)) + 84|0); $69 = HEAP32[$68>>2]|0; $70 = (($69) + ($65<<3)|0); $71 = +HEAPF64[$70>>3]; $72 = $i; $73 = $l; $74 = (($72) - ($73))|0; $75 = $3; $76 = (($75) + ($74<<3)|0); $77 = +HEAPF64[$76>>3]; $78 = $71 * $77; $79 = $64 + $78; $80 = $m; $81 = $5; $82 = (($81) + ($80<<3)|0); $83 = +HEAPF64[$82>>3]; $84 = $83 + $79; HEAPF64[$82>>3] = $84; $85 = $t; $86 = (($85) + 1)|0; $87 = $0; $88 = HEAP32[$87>>2]|0; $89 = ((($88)) + 80|0); $90 = HEAP32[$89>>2]|0; $91 = (($90) + ($86<<3)|0); $92 = +HEAPF64[$91>>3]; $93 = $i; $94 = $l; $95 = (($93) - ($94))|0; $96 = $1; $97 = (($96) + ($95<<3)|0); $98 = +HEAPF64[$97>>3]; $99 = $92 * $98; $100 = $t; $101 = (($100) + 1)|0; $102 = $0; $103 = HEAP32[$102>>2]|0; $104 = ((($103)) + 84|0); $105 = HEAP32[$104>>2]|0; $106 = (($105) + ($101<<3)|0); $107 = +HEAPF64[$106>>3]; $108 = $i; $109 = $l; $110 = (($108) - ($109))|0; $111 = $3; $112 = (($111) + ($110<<3)|0); $113 = +HEAPF64[$112>>3]; $114 = $107 * $113; $115 = $99 + $114; $116 = $n; $117 = $5; $118 = (($117) + ($116<<3)|0); $119 = +HEAPF64[$118>>3]; $120 = $119 + $115; HEAPF64[$118>>3] = $120; } } $121 = $l; $122 = (($121) + 1)|0; $l = $122; } $123 = $v; $124 = (($123) + 1)|0; $v = $124; } STACKTOP = sp;return; } function _wconv($wt,$sig,$N,$filt,$L,$oup) { $wt = $wt|0; $sig = $sig|0; $N = $N|0; $filt = $filt|0; $L = $L|0; $oup = $oup|0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; var $45 = 0, $46 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $vararg_buffer = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $vararg_buffer = sp; $0 = $wt; $1 = $sig; $2 = $N; $3 = $filt; $4 = $L; $5 = $oup; $6 = $0; $7 = ((($6)) + 54|0); $8 = (_strcmp($7,17192)|0); $9 = ($8|0)!=(0); if (!($9)) { $10 = $1; $11 = $2; $12 = $3; $13 = $4; $14 = $5; _conv_direct($10,$11,$12,$13,$14); STACKTOP = sp;return; } $15 = $0; $16 = ((($15)) + 54|0); $17 = (_strcmp($16,17200)|0); $18 = ($17|0)!=(0); if ($18) { $19 = $0; $20 = ((($19)) + 54|0); $21 = (_strcmp($20,17208)|0); $22 = ($21|0)!=(0); if ($22) { (_printf((17368|0),($vararg_buffer|0))|0); _exit(-1); // unreachable; } } $23 = $0; $24 = ((($23)) + 68|0); $25 = HEAP32[$24>>2]|0; $26 = ($25|0)==(0); if ($26) { $27 = $2; $28 = $4; $29 = (_conv_init($27,$28)|0); $30 = $0; $31 = ((($30)) + 4|0); HEAP32[$31>>2] = $29; $32 = $0; $33 = ((($32)) + 4|0); $34 = HEAP32[$33>>2]|0; $35 = $1; $36 = $3; $37 = $5; _conv_fft($34,$35,$36,$37); $38 = $0; $39 = ((($38)) + 4|0); $40 = HEAP32[$39>>2]|0; _free_conv($40); STACKTOP = sp;return; } else { $41 = $0; $42 = ((($41)) + 4|0); $43 = HEAP32[$42>>2]|0; $44 = $1; $45 = $3; $46 = $5; _conv_fft($43,$44,$45,$46); STACKTOP = sp;return; } } function _swt_direct($wt,$inp) { $wt = $wt|0; $inp = $inp|0; var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0.0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $12 = 0, $13 = 0; var $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0; var $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0; var $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0.0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0; var $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0; var $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0.0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $J = 0, $M = 0, $N = 0, $cA = 0, $cD = 0, $i = 0; var $iter = 0, $len_filt = 0, $lenacc = 0, $temp_len = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 48|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $wt; $1 = $inp; $2 = $0; $3 = ((($2)) + 20|0); $4 = HEAP32[$3>>2]|0; $temp_len = $4; $5 = $0; $6 = ((($5)) + 32|0); $7 = HEAP32[$6>>2]|0; $J = $7; $8 = $temp_len; $9 = $J; $10 = $0; $11 = ((($10)) + 76|0); $12 = (($11) + ($9<<2)|0); HEAP32[$12>>2] = $8; $13 = $0; $14 = ((($13)) + 76|0); HEAP32[$14>>2] = $8; $15 = $J; $16 = (($15) + 1)|0; $17 = $temp_len; $18 = Math_imul($16, $17)|0; $19 = $J; $20 = (($19) + 1)|0; $21 = $0; $22 = ((($21)) + 76|0); $23 = (($22) + ($20<<2)|0); HEAP32[$23>>2] = $18; $24 = $0; $25 = ((($24)) + 24|0); HEAP32[$25>>2] = $18; $26 = $0; $27 = HEAP32[$26>>2]|0; $28 = ((($27)) + 52|0); $29 = HEAP32[$28>>2]|0; $len_filt = $29; $M = 1; $iter = 1; while(1) { $30 = $iter; $31 = $J; $32 = ($30|0)<($31|0); if (!($32)) { break; } $33 = $M; $34 = $33<<1; $M = $34; $35 = $temp_len; $36 = $iter; $37 = $0; $38 = ((($37)) + 76|0); $39 = (($38) + ($36<<2)|0); HEAP32[$39>>2] = $35; $40 = $iter; $41 = (($40) + 1)|0; $iter = $41; } $42 = $temp_len; $43 = $42<<3; $44 = (_malloc($43)|0); $cA = $44; $45 = $temp_len; $46 = $45<<3; $47 = (_malloc($46)|0); $cD = $47; $M = 1; $i = 0; while(1) { $48 = $i; $49 = $temp_len; $50 = ($48|0)<($49|0); if (!($50)) { break; } $51 = $i; $52 = $1; $53 = (($52) + ($51<<3)|0); $54 = +HEAPF64[$53>>3]; $55 = $i; $56 = $0; $57 = ((($56)) + 488|0); $58 = (($57) + ($55<<3)|0); HEAPF64[$58>>3] = $54; $59 = $i; $60 = (($59) + 1)|0; $i = $60; } $61 = $0; $62 = ((($61)) + 24|0); $63 = HEAP32[$62>>2]|0; $lenacc = $63; $iter = 0; while(1) { $64 = $iter; $65 = $J; $66 = ($64|0)<($65|0); if (!($66)) { break; } $67 = $temp_len; $68 = $lenacc; $69 = (($68) - ($67))|0; $lenacc = $69; $70 = $iter; $71 = ($70|0)>(0); if ($71) { $72 = $M; $73 = $72<<1; $M = $73; $74 = $M; $75 = $len_filt; $76 = Math_imul($74, $75)|0; $N = $76; } else { $77 = $len_filt; $N = $77; } $78 = $0; $79 = $M; $80 = $0; $81 = ((($80)) + 488|0); $82 = $temp_len; $83 = $cA; $84 = $temp_len; $85 = $cD; $86 = $temp_len; _swt_per($78,$79,$81,$82,$83,$84,$85,$86); $i = 0; while(1) { $87 = $i; $88 = $temp_len; $89 = ($87|0)<($88|0); if (!($89)) { break; } $90 = $i; $91 = $cA; $92 = (($91) + ($90<<3)|0); $93 = +HEAPF64[$92>>3]; $94 = $i; $95 = $0; $96 = ((($95)) + 488|0); $97 = (($96) + ($94<<3)|0); HEAPF64[$97>>3] = $93; $98 = $i; $99 = $cD; $100 = (($99) + ($98<<3)|0); $101 = +HEAPF64[$100>>3]; $102 = $lenacc; $103 = $i; $104 = (($102) + ($103))|0; $105 = $0; $106 = ((($105)) + 488|0); $107 = (($106) + ($104<<3)|0); HEAPF64[$107>>3] = $101; $108 = $i; $109 = (($108) + 1)|0; $i = $109; } $110 = $iter; $111 = (($110) + 1)|0; $iter = $111; } $112 = $cA; _free($112); $113 = $cD; _free($113); STACKTOP = sp;return; } function _swt_fft($wt,$inp) { $wt = $wt|0; $inp = $inp|0; var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0; var $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0; var $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0.0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0; var $152 = 0, $153 = 0, $154 = 0, $155 = 0.0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0; var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0; var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0; var $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0; var $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0; var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0.0, $258 = 0, $259 = 0, $26 = 0; var $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0.0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0; var $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0; var $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0; var $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0; var $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0.0, $93 = 0, $94 = 0, $95 = 0, $96 = 0; var $97 = 0, $98 = 0, $99 = 0, $J = 0, $M = 0, $N = 0, $cA = 0, $cD = 0, $high_pass = 0, $i = 0, $iter = 0, $len_filt = 0, $lenacc = 0, $low_pass = 0, $sig = 0, $temp_len = 0, $vararg_buffer = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $vararg_buffer = sp; $0 = $wt; $1 = $inp; $2 = $0; $3 = ((($2)) + 20|0); $4 = HEAP32[$3>>2]|0; $temp_len = $4; $5 = $0; $6 = ((($5)) + 32|0); $7 = HEAP32[$6>>2]|0; $J = $7; $8 = $temp_len; $9 = $J; $10 = $0; $11 = ((($10)) + 76|0); $12 = (($11) + ($9<<2)|0); HEAP32[$12>>2] = $8; $13 = $0; $14 = ((($13)) + 76|0); HEAP32[$14>>2] = $8; $15 = $J; $16 = (($15) + 1)|0; $17 = $temp_len; $18 = Math_imul($16, $17)|0; $19 = $J; $20 = (($19) + 1)|0; $21 = $0; $22 = ((($21)) + 76|0); $23 = (($22) + ($20<<2)|0); HEAP32[$23>>2] = $18; $24 = $0; $25 = ((($24)) + 24|0); HEAP32[$25>>2] = $18; $M = 1; $iter = 1; while(1) { $26 = $iter; $27 = $J; $28 = ($26|0)<($27|0); if (!($28)) { break; } $29 = $M; $30 = $29<<1; $M = $30; $31 = $temp_len; $32 = $iter; $33 = $0; $34 = ((($33)) + 76|0); $35 = (($34) + ($32<<2)|0); HEAP32[$35>>2] = $31; $36 = $iter; $37 = (($36) + 1)|0; $iter = $37; } $38 = $0; $39 = HEAP32[$38>>2]|0; $40 = ((($39)) + 52|0); $41 = HEAP32[$40>>2]|0; $len_filt = $41; $42 = $M; $43 = $42<<3; $44 = $len_filt; $45 = Math_imul($43, $44)|0; $46 = (_malloc($45)|0); $low_pass = $46; $47 = $M; $48 = $47<<3; $49 = $len_filt; $50 = Math_imul($48, $49)|0; $51 = (_malloc($50)|0); $high_pass = $51; $52 = $M; $53 = $len_filt; $54 = Math_imul($52, $53)|0; $55 = $temp_len; $56 = (($54) + ($55))|0; $57 = $temp_len; $58 = (($57|0) % 2)&-1; $59 = (($56) + ($58))|0; $60 = $59<<3; $61 = (_malloc($60)|0); $sig = $61; $62 = $M; $63 = $62<<1; $64 = $len_filt; $65 = Math_imul($63, $64)|0; $66 = $temp_len; $67 = (($65) + ($66))|0; $68 = $temp_len; $69 = (($68|0) % 2)&-1; $70 = (($67) + ($69))|0; $71 = $70<<3; $72 = (($71) - 1)|0; $73 = (_malloc($72)|0); $cA = $73; $74 = $M; $75 = $74<<1; $76 = $len_filt; $77 = Math_imul($75, $76)|0; $78 = $temp_len; $79 = (($77) + ($78))|0; $80 = $temp_len; $81 = (($80|0) % 2)&-1; $82 = (($79) + ($81))|0; $83 = $82<<3; $84 = (($83) - 1)|0; $85 = (_malloc($84)|0); $cD = $85; $M = 1; $i = 0; while(1) { $86 = $i; $87 = $temp_len; $88 = ($86|0)<($87|0); if (!($88)) { break; } $89 = $i; $90 = $1; $91 = (($90) + ($89<<3)|0); $92 = +HEAPF64[$91>>3]; $93 = $i; $94 = $0; $95 = ((($94)) + 488|0); $96 = (($95) + ($93<<3)|0); HEAPF64[$96>>3] = $92; $97 = $i; $98 = (($97) + 1)|0; $i = $98; } $99 = $0; $100 = ((($99)) + 24|0); $101 = HEAP32[$100>>2]|0; $lenacc = $101; $iter = 0; while(1) { $102 = $iter; $103 = $J; $104 = ($102|0)<($103|0); if (!($104)) { label = 28; break; } $105 = $temp_len; $106 = $lenacc; $107 = (($106) - ($105))|0; $lenacc = $107; $108 = $iter; $109 = ($108|0)>(0); L12: do { if ($109) { $110 = $M; $111 = $110<<1; $M = $111; $112 = $M; $113 = $len_filt; $114 = Math_imul($112, $113)|0; $N = $114; $115 = $0; $116 = HEAP32[$115>>2]|0; $117 = ((($116)) + 72|0); $118 = HEAP32[$117>>2]|0; $119 = $0; $120 = HEAP32[$119>>2]|0; $121 = ((($120)) + 56|0); $122 = HEAP32[$121>>2]|0; $123 = $M; $124 = $low_pass; (_upsamp2($118,$122,$123,$124)|0); $125 = $0; $126 = HEAP32[$125>>2]|0; $127 = ((($126)) + 76|0); $128 = HEAP32[$127>>2]|0; $129 = $0; $130 = HEAP32[$129>>2]|0; $131 = ((($130)) + 60|0); $132 = HEAP32[$131>>2]|0; $133 = $M; $134 = $high_pass; (_upsamp2($128,$132,$133,$134)|0); } else { $135 = $len_filt; $N = $135; $i = 0; while(1) { $136 = $i; $137 = $N; $138 = ($136|0)<($137|0); if (!($138)) { break L12; } $139 = $i; $140 = $0; $141 = HEAP32[$140>>2]|0; $142 = ((($141)) + 72|0); $143 = HEAP32[$142>>2]|0; $144 = (($143) + ($139<<3)|0); $145 = +HEAPF64[$144>>3]; $146 = $i; $147 = $low_pass; $148 = (($147) + ($146<<3)|0); HEAPF64[$148>>3] = $145; $149 = $i; $150 = $0; $151 = HEAP32[$150>>2]|0; $152 = ((($151)) + 76|0); $153 = HEAP32[$152>>2]|0; $154 = (($153) + ($149<<3)|0); $155 = +HEAPF64[$154>>3]; $156 = $i; $157 = $high_pass; $158 = (($157) + ($156<<3)|0); HEAPF64[$158>>3] = $155; $159 = $i; $160 = (($159) + 1)|0; $i = $160; } } } while(0); $161 = $0; $162 = ((($161)) + 488|0); $163 = $temp_len; $164 = $N; $165 = (($164|0) / 2)&-1; $166 = $sig; (_per_ext($162,$163,$165,$166)|0); $167 = $0; $168 = HEAP32[$167>>2]|0; $169 = ((($168)) + 56|0); $170 = HEAP32[$169>>2]|0; $171 = $0; $172 = HEAP32[$171>>2]|0; $173 = ((($172)) + 60|0); $174 = HEAP32[$173>>2]|0; $175 = ($170|0)==($174|0); do { if ($175) { $176 = $0; $177 = ((($176)) + 54|0); $178 = (_strcmp($177,17200)|0); $179 = ($178|0)!=(0); if ($179) { $180 = $0; $181 = ((($180)) + 54|0); $182 = (_strcmp($181,17208)|0); $183 = ($182|0)!=(0); if ($183) { label = 18; break; } } $184 = $N; $185 = $temp_len; $186 = (($184) + ($185))|0; $187 = $temp_len; $188 = (($187|0) % 2)&-1; $189 = (($186) + ($188))|0; $190 = $N; $191 = (_conv_init($189,$190)|0); $192 = $0; $193 = ((($192)) + 4|0); HEAP32[$193>>2] = $191; $194 = $0; $195 = ((($194)) + 68|0); HEAP32[$195>>2] = 1; } else { label = 18; } } while(0); if ((label|0) == 18) { label = 0; $196 = $0; $197 = HEAP32[$196>>2]|0; $198 = ((($197)) + 56|0); $199 = HEAP32[$198>>2]|0; $200 = $0; $201 = HEAP32[$200>>2]|0; $202 = ((($201)) + 60|0); $203 = HEAP32[$202>>2]|0; $204 = ($199|0)==($203|0); if (!($204)) { label = 19; break; } } $205 = $0; $206 = $sig; $207 = $N; $208 = $temp_len; $209 = (($207) + ($208))|0; $210 = $temp_len; $211 = (($210|0) % 2)&-1; $212 = (($209) + ($211))|0; $213 = $low_pass; $214 = $N; $215 = $cA; _wconv($205,$206,$212,$213,$214,$215); $216 = $0; $217 = $sig; $218 = $N; $219 = $temp_len; $220 = (($218) + ($219))|0; $221 = $temp_len; $222 = (($221|0) % 2)&-1; $223 = (($220) + ($222))|0; $224 = $high_pass; $225 = $N; $226 = $cD; _wconv($216,$217,$223,$224,$225,$226); $227 = $0; $228 = HEAP32[$227>>2]|0; $229 = ((($228)) + 56|0); $230 = HEAP32[$229>>2]|0; $231 = $0; $232 = HEAP32[$231>>2]|0; $233 = ((($232)) + 60|0); $234 = HEAP32[$233>>2]|0; $235 = ($230|0)==($234|0); do { if ($235) { $236 = $0; $237 = ((($236)) + 54|0); $238 = (_strcmp($237,17200)|0); $239 = ($238|0)!=(0); if ($239) { $240 = $0; $241 = ((($240)) + 54|0); $242 = (_strcmp($241,17208)|0); $243 = ($242|0)!=(0); if ($243) { break; } } $244 = $0; $245 = ((($244)) + 4|0); $246 = HEAP32[$245>>2]|0; _free_conv($246); $247 = $0; $248 = ((($247)) + 68|0); HEAP32[$248>>2] = 0; } } while(0); $i = 0; while(1) { $249 = $i; $250 = $temp_len; $251 = ($249|0)<($250|0); if (!($251)) { break; } $252 = $N; $253 = $i; $254 = (($252) + ($253))|0; $255 = $cA; $256 = (($255) + ($254<<3)|0); $257 = +HEAPF64[$256>>3]; $258 = $i; $259 = $0; $260 = ((($259)) + 488|0); $261 = (($260) + ($258<<3)|0); HEAPF64[$261>>3] = $257; $262 = $N; $263 = $i; $264 = (($262) + ($263))|0; $265 = $cD; $266 = (($265) + ($264<<3)|0); $267 = +HEAPF64[$266>>3]; $268 = $lenacc; $269 = $i; $270 = (($268) + ($269))|0; $271 = $0; $272 = ((($271)) + 488|0); $273 = (($272) + ($270<<3)|0); HEAPF64[$273>>3] = $267; $274 = $i; $275 = (($274) + 1)|0; $i = $275; } $276 = $iter; $277 = (($276) + 1)|0; $iter = $277; } if ((label|0) == 19) { (_printf((17264|0),($vararg_buffer|0))|0); _exit(-1); // unreachable; } else if ((label|0) == 28) { $278 = $low_pass; _free($278); $279 = $high_pass; _free($279); $280 = $sig; _free($280); $281 = $cA; _free($281); $282 = $cD; _free($282); STACKTOP = sp;return; } } function _modwt_per($wt,$M,$inp,$N,$cA,$len_cA,$cD,$len_cD) { $wt = $wt|0; $M = $M|0; $inp = $inp|0; $N = $N|0; $cA = $cA|0; $len_cA = $len_cA|0; $cD = $cD|0; $len_cD = $len_cD|0; var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0.0, $103 = 0.0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0.0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0.0, $114 = 0.0, $115 = 0; var $116 = 0, $117 = 0, $118 = 0.0, $119 = 0.0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $13 = 0, $14 = 0, $15 = 0.0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0; var $22 = 0, $23 = 0, $24 = 0, $25 = 0.0, $26 = 0.0, $27 = 0.0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0.0, $38 = 0.0, $39 = 0.0, $4 = 0; var $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0.0, $53 = 0, $54 = 0, $55 = 0, $56 = 0.0, $57 = 0.0, $58 = 0; var $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0.0, $65 = 0, $66 = 0, $67 = 0, $68 = 0.0, $69 = 0.0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0; var $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0.0, $94 = 0; var $95 = 0, $96 = 0, $97 = 0.0, $98 = 0.0, $99 = 0, $filt = 0, $i = 0, $l = 0, $len_avg = 0, $s = 0.0, $t = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $wt; $1 = $M; $2 = $inp; $3 = $N; $4 = $cA; $5 = $len_cA; $6 = $cD; $7 = $len_cD; $8 = $0; $9 = HEAP32[$8>>2]|0; $10 = ((($9)) + 56|0); $11 = HEAP32[$10>>2]|0; $len_avg = $11; $12 = $len_avg; $13 = $12<<4; $14 = (_malloc($13)|0); $filt = $14; $15 = (+Math_sqrt(2.0)); $s = $15; $i = 0; while(1) { $16 = $i; $17 = $len_avg; $18 = ($16|0)<($17|0); if (!($18)) { break; } $19 = $i; $20 = $0; $21 = HEAP32[$20>>2]|0; $22 = ((($21)) + 72|0); $23 = HEAP32[$22>>2]|0; $24 = (($23) + ($19<<3)|0); $25 = +HEAPF64[$24>>3]; $26 = $s; $27 = $25 / $26; $28 = $i; $29 = $filt; $30 = (($29) + ($28<<3)|0); HEAPF64[$30>>3] = $27; $31 = $i; $32 = $0; $33 = HEAP32[$32>>2]|0; $34 = ((($33)) + 76|0); $35 = HEAP32[$34>>2]|0; $36 = (($35) + ($31<<3)|0); $37 = +HEAPF64[$36>>3]; $38 = $s; $39 = $37 / $38; $40 = $len_avg; $41 = $i; $42 = (($40) + ($41))|0; $43 = $filt; $44 = (($43) + ($42<<3)|0); HEAPF64[$44>>3] = $39; $45 = $i; $46 = (($45) + 1)|0; $i = $46; } $i = 0; while(1) { $47 = $i; $48 = $5; $49 = ($47|0)<($48|0); if (!($49)) { break; } $50 = $i; $t = $50; $51 = $filt; $52 = +HEAPF64[$51>>3]; $53 = $t; $54 = $2; $55 = (($54) + ($53<<3)|0); $56 = +HEAPF64[$55>>3]; $57 = $52 * $56; $58 = $i; $59 = $4; $60 = (($59) + ($58<<3)|0); HEAPF64[$60>>3] = $57; $61 = $len_avg; $62 = $filt; $63 = (($62) + ($61<<3)|0); $64 = +HEAPF64[$63>>3]; $65 = $t; $66 = $2; $67 = (($66) + ($65<<3)|0); $68 = +HEAPF64[$67>>3]; $69 = $64 * $68; $70 = $i; $71 = $6; $72 = (($71) + ($70<<3)|0); HEAPF64[$72>>3] = $69; $l = 1; while(1) { $73 = $l; $74 = $len_avg; $75 = ($73|0)<($74|0); if (!($75)) { break; } $76 = $1; $77 = $t; $78 = (($77) - ($76))|0; $t = $78; while(1) { $79 = $t; $80 = $5; $81 = ($79|0)>=($80|0); if (!($81)) { break; } $82 = $5; $83 = $t; $84 = (($83) - ($82))|0; $t = $84; } while(1) { $85 = $t; $86 = ($85|0)<(0); if (!($86)) { break; } $87 = $5; $88 = $t; $89 = (($88) + ($87))|0; $t = $89; } $90 = $l; $91 = $filt; $92 = (($91) + ($90<<3)|0); $93 = +HEAPF64[$92>>3]; $94 = $t; $95 = $2; $96 = (($95) + ($94<<3)|0); $97 = +HEAPF64[$96>>3]; $98 = $93 * $97; $99 = $i; $100 = $4; $101 = (($100) + ($99<<3)|0); $102 = +HEAPF64[$101>>3]; $103 = $102 + $98; HEAPF64[$101>>3] = $103; $104 = $len_avg; $105 = $l; $106 = (($104) + ($105))|0; $107 = $filt; $108 = (($107) + ($106<<3)|0); $109 = +HEAPF64[$108>>3]; $110 = $t; $111 = $2; $112 = (($111) + ($110<<3)|0); $113 = +HEAPF64[$112>>3]; $114 = $109 * $113; $115 = $i; $116 = $6; $117 = (($116) + ($115<<3)|0); $118 = +HEAPF64[$117>>3]; $119 = $118 + $114; HEAPF64[$117>>3] = $119; $120 = $l; $121 = (($120) + 1)|0; $l = $121; } $122 = $i; $123 = (($122) + 1)|0; $i = $123; } $124 = $filt; _free($124); STACKTOP = sp;return; } function _imodwt_per($wt,$M,$cA,$len_cA,$cD,$len_cD,$X) { $wt = $wt|0; $M = $M|0; $cA = $cA|0; $len_cA = $len_cA|0; $cD = $cD|0; $len_cD = $len_cD|0; $X = $X|0; var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0.0, $102 = 0, $103 = 0, $104 = 0, $105 = 0.0, $106 = 0.0, $107 = 0.0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0.0, $112 = 0.0, $113 = 0, $114 = 0, $115 = 0; var $116 = 0, $117 = 0, $12 = 0, $13 = 0, $14 = 0.0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0.0, $25 = 0.0, $26 = 0.0, $27 = 0, $28 = 0; var $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0.0, $37 = 0.0, $38 = 0.0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0; var $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0.0, $52 = 0, $53 = 0, $54 = 0, $55 = 0.0, $56 = 0.0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0.0, $61 = 0, $62 = 0, $63 = 0, $64 = 0.0; var $65 = 0.0, $66 = 0.0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0; var $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0.0, $91 = 0, $92 = 0, $93 = 0, $94 = 0.0, $95 = 0.0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $filt = 0, $i = 0; var $l = 0, $len_avg = 0, $s = 0.0, $t = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $wt; $1 = $M; $2 = $cA; $3 = $len_cA; $4 = $cD; $5 = $len_cD; $6 = $X; $7 = $0; $8 = HEAP32[$7>>2]|0; $9 = ((($8)) + 56|0); $10 = HEAP32[$9>>2]|0; $len_avg = $10; $11 = $len_avg; $12 = $11<<4; $13 = (_malloc($12)|0); $filt = $13; $14 = (+Math_sqrt(2.0)); $s = $14; $i = 0; while(1) { $15 = $i; $16 = $len_avg; $17 = ($15|0)<($16|0); if (!($17)) { break; } $18 = $i; $19 = $0; $20 = HEAP32[$19>>2]|0; $21 = ((($20)) + 72|0); $22 = HEAP32[$21>>2]|0; $23 = (($22) + ($18<<3)|0); $24 = +HEAPF64[$23>>3]; $25 = $s; $26 = $24 / $25; $27 = $i; $28 = $filt; $29 = (($28) + ($27<<3)|0); HEAPF64[$29>>3] = $26; $30 = $i; $31 = $0; $32 = HEAP32[$31>>2]|0; $33 = ((($32)) + 76|0); $34 = HEAP32[$33>>2]|0; $35 = (($34) + ($30<<3)|0); $36 = +HEAPF64[$35>>3]; $37 = $s; $38 = $36 / $37; $39 = $len_avg; $40 = $i; $41 = (($39) + ($40))|0; $42 = $filt; $43 = (($42) + ($41<<3)|0); HEAPF64[$43>>3] = $38; $44 = $i; $45 = (($44) + 1)|0; $i = $45; } $i = 0; while(1) { $46 = $i; $47 = $3; $48 = ($46|0)<($47|0); if (!($48)) { break; } $49 = $i; $t = $49; $50 = $filt; $51 = +HEAPF64[$50>>3]; $52 = $t; $53 = $2; $54 = (($53) + ($52<<3)|0); $55 = +HEAPF64[$54>>3]; $56 = $51 * $55; $57 = $len_avg; $58 = $filt; $59 = (($58) + ($57<<3)|0); $60 = +HEAPF64[$59>>3]; $61 = $t; $62 = $4; $63 = (($62) + ($61<<3)|0); $64 = +HEAPF64[$63>>3]; $65 = $60 * $64; $66 = $56 + $65; $67 = $i; $68 = $6; $69 = (($68) + ($67<<3)|0); HEAPF64[$69>>3] = $66; $l = 1; while(1) { $70 = $l; $71 = $len_avg; $72 = ($70|0)<($71|0); if (!($72)) { break; } $73 = $1; $74 = $t; $75 = (($74) + ($73))|0; $t = $75; while(1) { $76 = $t; $77 = $3; $78 = ($76|0)>=($77|0); if (!($78)) { break; } $79 = $3; $80 = $t; $81 = (($80) - ($79))|0; $t = $81; } while(1) { $82 = $t; $83 = ($82|0)<(0); if (!($83)) { break; } $84 = $3; $85 = $t; $86 = (($85) + ($84))|0; $t = $86; } $87 = $l; $88 = $filt; $89 = (($88) + ($87<<3)|0); $90 = +HEAPF64[$89>>3]; $91 = $t; $92 = $2; $93 = (($92) + ($91<<3)|0); $94 = +HEAPF64[$93>>3]; $95 = $90 * $94; $96 = $len_avg; $97 = $l; $98 = (($96) + ($97))|0; $99 = $filt; $100 = (($99) + ($98<<3)|0); $101 = +HEAPF64[$100>>3]; $102 = $t; $103 = $4; $104 = (($103) + ($102<<3)|0); $105 = +HEAPF64[$104>>3]; $106 = $101 * $105; $107 = $95 + $106; $108 = $i; $109 = $6; $110 = (($109) + ($108<<3)|0); $111 = +HEAPF64[$110>>3]; $112 = $111 + $107; HEAPF64[$110>>3] = $112; $113 = $l; $114 = (($113) + 1)|0; $l = $114; } $115 = $i; $116 = (($115) + 1)|0; $i = $116; } $117 = $filt; _free($117); STACKTOP = sp;return; } function _swt_per($wt,$M,$inp,$N,$cA,$len_cA,$cD,$len_cD) { $wt = $wt|0; $M = $M|0; $inp = $inp|0; $N = $N|0; $cA = $cA|0; $len_cA = $len_cA|0; $cD = $cD|0; $len_cD = $len_cD|0; var $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0.0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0.0, $111 = 0.0, $112 = 0, $113 = 0, $114 = 0, $115 = 0.0; var $116 = 0.0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0.0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0.0, $13 = 0, $130 = 0.0, $131 = 0, $132 = 0, $133 = 0; var $134 = 0.0, $135 = 0.0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0.0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0; var $152 = 0, $153 = 0, $154 = 0.0, $155 = 0.0, $156 = 0, $157 = 0, $158 = 0, $159 = 0.0, $16 = 0, $160 = 0.0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0.0, $168 = 0, $169 = 0, $17 = 0; var $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0.0, $176 = 0.0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0.0, $181 = 0.0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0; var $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0.0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0.0, $204 = 0.0, $205 = 0; var $206 = 0, $207 = 0, $208 = 0.0, $209 = 0.0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0.0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0; var $224 = 0.0, $225 = 0.0, $226 = 0, $227 = 0, $228 = 0, $229 = 0.0, $23 = 0, $230 = 0.0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0; var $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0.0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0.0, $259 = 0.0, $26 = 0; var $260 = 0, $261 = 0, $262 = 0, $263 = 0.0, $264 = 0.0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0.0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0; var $279 = 0, $28 = 0, $280 = 0.0, $281 = 0.0, $282 = 0, $283 = 0, $284 = 0, $285 = 0.0, $286 = 0.0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0.0, $292 = 0.0, $293 = 0, $294 = 0, $295 = 0, $296 = 0.0; var $297 = 0.0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0.0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0.0, $31 = 0, $310 = 0.0, $311 = 0, $312 = 0, $313 = 0; var $314 = 0.0, $315 = 0.0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0; var $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0.0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0; var $62 = 0, $63 = 0.0, $64 = 0.0, $65 = 0, $66 = 0, $67 = 0, $68 = 0.0, $69 = 0.0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0.0, $77 = 0, $78 = 0, $79 = 0, $8 = 0; var $80 = 0, $81 = 0, $82 = 0.0, $83 = 0.0, $84 = 0, $85 = 0, $86 = 0, $87 = 0.0, $88 = 0.0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0; var $99 = 0, $i = 0, $isodd = 0, $j = 0, $l = 0, $l2 = 0, $len_avg = 0, $or$cond = 0, $or$cond3 = 0, $t = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $wt; $1 = $M; $2 = $inp; $3 = $N; $4 = $cA; $5 = $len_cA; $6 = $cD; $7 = $len_cD; $8 = $1; $9 = $0; $10 = HEAP32[$9>>2]|0; $11 = ((($10)) + 56|0); $12 = HEAP32[$11>>2]|0; $13 = Math_imul($8, $12)|0; $len_avg = $13; $14 = $len_avg; $15 = (($14|0) / 2)&-1; $l2 = $15; $16 = $3; $17 = (($16|0) % 2)&-1; $isodd = $17; $i = 0; while(1) { $18 = $i; $19 = $5; $20 = ($18|0)<($19|0); if (!($20)) { break; } $21 = $i; $22 = $l2; $23 = (($21) + ($22))|0; $t = $23; $24 = $i; $25 = $4; $26 = (($25) + ($24<<3)|0); HEAPF64[$26>>3] = 0.0; $27 = $i; $28 = $6; $29 = (($28) + ($27<<3)|0); HEAPF64[$29>>3] = 0.0; $l = -1; $j = 0; while(1) { $30 = $j; $31 = $len_avg; $32 = ($30|0)<($31|0); if (!($32)) { break; } $33 = $l; $34 = (($33) + 1)|0; $l = $34; while(1) { $35 = $j; $36 = $5; $37 = ($35|0)>=($36|0); if (!($37)) { break; } $38 = $5; $39 = $j; $40 = (($39) - ($38))|0; $j = $40; } $41 = $t; $42 = $j; $43 = (($41) - ($42))|0; $44 = $l2; $45 = ($43|0)>=($44|0); if ($45) { $46 = $t; $47 = $j; $48 = (($46) - ($47))|0; $49 = $3; $50 = ($48|0)<($49|0); if ($50) { $51 = $l; $52 = $0; $53 = HEAP32[$52>>2]|0; $54 = ((($53)) + 72|0); $55 = HEAP32[$54>>2]|0; $56 = (($55) + ($51<<3)|0); $57 = +HEAPF64[$56>>3]; $58 = $t; $59 = $j; $60 = (($58) - ($59))|0; $61 = $2; $62 = (($61) + ($60<<3)|0); $63 = +HEAPF64[$62>>3]; $64 = $57 * $63; $65 = $i; $66 = $4; $67 = (($66) + ($65<<3)|0); $68 = +HEAPF64[$67>>3]; $69 = $68 + $64; HEAPF64[$67>>3] = $69; $70 = $l; $71 = $0; $72 = HEAP32[$71>>2]|0; $73 = ((($72)) + 76|0); $74 = HEAP32[$73>>2]|0; $75 = (($74) + ($70<<3)|0); $76 = +HEAPF64[$75>>3]; $77 = $t; $78 = $j; $79 = (($77) - ($78))|0; $80 = $2; $81 = (($80) + ($79<<3)|0); $82 = +HEAPF64[$81>>3]; $83 = $76 * $82; $84 = $i; $85 = $6; $86 = (($85) + ($84<<3)|0); $87 = +HEAPF64[$86>>3]; $88 = $87 + $83; HEAPF64[$86>>3] = $88; } else { label = 11; } } else { label = 11; } do { if ((label|0) == 11) { label = 0; $89 = $t; $90 = $j; $91 = (($89) - ($90))|0; $92 = $l2; $93 = ($91|0)<($92|0); if ($93) { $94 = $t; $95 = $j; $96 = (($94) - ($95))|0; $97 = ($96|0)>=(0); if ($97) { $98 = $l; $99 = $0; $100 = HEAP32[$99>>2]|0; $101 = ((($100)) + 72|0); $102 = HEAP32[$101>>2]|0; $103 = (($102) + ($98<<3)|0); $104 = +HEAPF64[$103>>3]; $105 = $t; $106 = $j; $107 = (($105) - ($106))|0; $108 = $2; $109 = (($108) + ($107<<3)|0); $110 = +HEAPF64[$109>>3]; $111 = $104 * $110; $112 = $i; $113 = $4; $114 = (($113) + ($112<<3)|0); $115 = +HEAPF64[$114>>3]; $116 = $115 + $111; HEAPF64[$114>>3] = $116; $117 = $l; $118 = $0; $119 = HEAP32[$118>>2]|0; $120 = ((($119)) + 76|0); $121 = HEAP32[$120>>2]|0; $122 = (($121) + ($117<<3)|0); $123 = +HEAPF64[$122>>3]; $124 = $t; $125 = $j; $126 = (($124) - ($125))|0; $127 = $2; $128 = (($127) + ($126<<3)|0); $129 = +HEAPF64[$128>>3]; $130 = $123 * $129; $131 = $i; $132 = $6; $133 = (($132) + ($131<<3)|0); $134 = +HEAPF64[$133>>3]; $135 = $134 + $130; HEAPF64[$133>>3] = $135; break; } } $136 = $t; $137 = $j; $138 = (($136) - ($137))|0; $139 = ($138|0)<(0); if ($139) { $140 = $l; $141 = $0; $142 = HEAP32[$141>>2]|0; $143 = ((($142)) + 72|0); $144 = HEAP32[$143>>2]|0; $145 = (($144) + ($140<<3)|0); $146 = +HEAPF64[$145>>3]; $147 = $t; $148 = $j; $149 = (($147) - ($148))|0; $150 = $3; $151 = (($149) + ($150))|0; $152 = $2; $153 = (($152) + ($151<<3)|0); $154 = +HEAPF64[$153>>3]; $155 = $146 * $154; $156 = $i; $157 = $4; $158 = (($157) + ($156<<3)|0); $159 = +HEAPF64[$158>>3]; $160 = $159 + $155; HEAPF64[$158>>3] = $160; $161 = $l; $162 = $0; $163 = HEAP32[$162>>2]|0; $164 = ((($163)) + 76|0); $165 = HEAP32[$164>>2]|0; $166 = (($165) + ($161<<3)|0); $167 = +HEAPF64[$166>>3]; $168 = $t; $169 = $j; $170 = (($168) - ($169))|0; $171 = $3; $172 = (($170) + ($171))|0; $173 = $2; $174 = (($173) + ($172<<3)|0); $175 = +HEAPF64[$174>>3]; $176 = $167 * $175; $177 = $i; $178 = $6; $179 = (($178) + ($177<<3)|0); $180 = +HEAPF64[$179>>3]; $181 = $180 + $176; HEAPF64[$179>>3] = $181; break; } $182 = $t; $183 = $j; $184 = (($182) - ($183))|0; $185 = $3; $186 = ($184|0)>=($185|0); $187 = $isodd; $188 = ($187|0)==(0); $or$cond = $186 & $188; if ($or$cond) { $189 = $l; $190 = $0; $191 = HEAP32[$190>>2]|0; $192 = ((($191)) + 72|0); $193 = HEAP32[$192>>2]|0; $194 = (($193) + ($189<<3)|0); $195 = +HEAPF64[$194>>3]; $196 = $t; $197 = $j; $198 = (($196) - ($197))|0; $199 = $3; $200 = (($198) - ($199))|0; $201 = $2; $202 = (($201) + ($200<<3)|0); $203 = +HEAPF64[$202>>3]; $204 = $195 * $203; $205 = $i; $206 = $4; $207 = (($206) + ($205<<3)|0); $208 = +HEAPF64[$207>>3]; $209 = $208 + $204; HEAPF64[$207>>3] = $209; $210 = $l; $211 = $0; $212 = HEAP32[$211>>2]|0; $213 = ((($212)) + 76|0); $214 = HEAP32[$213>>2]|0; $215 = (($214) + ($210<<3)|0); $216 = +HEAPF64[$215>>3]; $217 = $t; $218 = $j; $219 = (($217) - ($218))|0; $220 = $3; $221 = (($219) - ($220))|0; $222 = $2; $223 = (($222) + ($221<<3)|0); $224 = +HEAPF64[$223>>3]; $225 = $216 * $224; $226 = $i; $227 = $6; $228 = (($227) + ($226<<3)|0); $229 = +HEAPF64[$228>>3]; $230 = $229 + $225; HEAPF64[$228>>3] = $230; break; } $231 = $t; $232 = $j; $233 = (($231) - ($232))|0; $234 = $3; $235 = ($233|0)>=($234|0); $236 = $isodd; $237 = ($236|0)==(1); $or$cond3 = $235 & $237; if ($or$cond3) { $238 = $t; $239 = $l; $240 = (($238) - ($239))|0; $241 = $3; $242 = ($240|0)!=($241|0); $243 = $l; $244 = $0; $245 = HEAP32[$244>>2]|0; $246 = ((($245)) + 72|0); $247 = HEAP32[$246>>2]|0; $248 = (($247) + ($243<<3)|0); $249 = +HEAPF64[$248>>3]; if ($242) { $250 = $t; $251 = $j; $252 = (($250) - ($251))|0; $253 = $3; $254 = (($253) + 1)|0; $255 = (($252) - ($254))|0; $256 = $2; $257 = (($256) + ($255<<3)|0); $258 = +HEAPF64[$257>>3]; $259 = $249 * $258; $260 = $i; $261 = $4; $262 = (($261) + ($260<<3)|0); $263 = +HEAPF64[$262>>3]; $264 = $263 + $259; HEAPF64[$262>>3] = $264; $265 = $l; $266 = $0; $267 = HEAP32[$266>>2]|0; $268 = ((($267)) + 76|0); $269 = HEAP32[$268>>2]|0; $270 = (($269) + ($265<<3)|0); $271 = +HEAPF64[$270>>3]; $272 = $t; $273 = $j; $274 = (($272) - ($273))|0; $275 = $3; $276 = (($275) + 1)|0; $277 = (($274) - ($276))|0; $278 = $2; $279 = (($278) + ($277<<3)|0); $280 = +HEAPF64[$279>>3]; $281 = $271 * $280; $282 = $i; $283 = $6; $284 = (($283) + ($282<<3)|0); $285 = +HEAPF64[$284>>3]; $286 = $285 + $281; HEAPF64[$284>>3] = $286; break; } else { $287 = $3; $288 = (($287) - 1)|0; $289 = $2; $290 = (($289) + ($288<<3)|0); $291 = +HEAPF64[$290>>3]; $292 = $249 * $291; $293 = $i; $294 = $4; $295 = (($294) + ($293<<3)|0); $296 = +HEAPF64[$295>>3]; $297 = $296 + $292; HEAPF64[$295>>3] = $297; $298 = $l; $299 = $0; $300 = HEAP32[$299>>2]|0; $301 = ((($300)) + 76|0); $302 = HEAP32[$301>>2]|0; $303 = (($302) + ($298<<3)|0); $304 = +HEAPF64[$303>>3]; $305 = $3; $306 = (($305) - 1)|0; $307 = $2; $308 = (($307) + ($306<<3)|0); $309 = +HEAPF64[$308>>3]; $310 = $304 * $309; $311 = $i; $312 = $6; $313 = (($312) + ($311<<3)|0); $314 = +HEAPF64[$313>>3]; $315 = $314 + $310; HEAPF64[$313>>3] = $315; break; } } } } while(0); $316 = $1; $317 = $j; $318 = (($317) + ($316))|0; $j = $318; } $319 = $i; $320 = (($319) + 1)|0; $i = $320; } STACKTOP = sp;return; } function _wtoutputlength($N,$method,$lp,$J,$ext) { $N = $N|0; $method = $method|0; $lp = $lp|0; $J = $J|0; $ext = $ext|0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0.0, $19 = 0.0, $2 = 0, $20 = 0.0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0; var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0.0, $41 = 0.0, $42 = 0.0, $43 = 0, $44 = 0; var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $8 = 0, $9 = 0, $M = 0, $i = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 32|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $N; $1 = $method; $2 = $lp; $3 = $J; $4 = $ext; $M = 0; $5 = $1; $6 = (_strcmp($5,17424)|0); $7 = ($6|0)!=(0); if ($7) { $8 = $1; $9 = (_strcmp($8,17432)|0); $10 = ($9|0)!=(0); if ($10) { $51 = $1; $52 = (_strcmp($51,17456)|0); $53 = ($52|0)!=(0); if ($53) { $54 = $1; $55 = (_strcmp($54,17464)|0); $56 = ($55|0)!=(0); if ($56) { $61 = $1; $62 = (_strcmp($61,17472)|0); $63 = ($62|0)!=(0); if ($63) { $64 = $1; $65 = (_strcmp($64,17480)|0); $66 = ($65|0)!=(0); if ($66) { $71 = $M; STACKTOP = sp;return ($71|0); } } $67 = $3; $68 = (($67) + 1)|0; $69 = $0; $70 = Math_imul($68, $69)|0; $M = $70; $71 = $M; STACKTOP = sp;return ($71|0); } } $57 = $3; $58 = (($57) + 1)|0; $59 = $0; $60 = Math_imul($58, $59)|0; $M = $60; $71 = $M; STACKTOP = sp;return ($71|0); } } $11 = $4; $12 = (_strcmp($11,17440)|0); $13 = ($12|0)!=(0); if (!($13)) { $14 = $3; $i = $14; while(1) { $15 = $i; $16 = ($15|0)>(0); $17 = $0; if (!($16)) { break; } $18 = (+($17|0)); $19 = $18 / 2.0; $20 = (+Math_ceil((+$19))); $21 = (~~(($20))); $0 = $21; $22 = $0; $23 = $M; $24 = (($23) + ($22))|0; $M = $24; $25 = $i; $26 = (($25) + -1)|0; $i = $26; } $27 = $M; $28 = (($27) + ($17))|0; $M = $28; $71 = $M; STACKTOP = sp;return ($71|0); } $29 = $4; $30 = (_strcmp($29,17448)|0); $31 = ($30|0)!=(0); if ($31) { $71 = $M; STACKTOP = sp;return ($71|0); } $32 = $3; $i = $32; while(1) { $33 = $i; $34 = ($33|0)>(0); $35 = $0; if (!($34)) { break; } $36 = $2; $37 = (($35) + ($36))|0; $38 = (($37) - 2)|0; $0 = $38; $39 = $0; $40 = (+($39|0)); $41 = $40 / 2.0; $42 = (+Math_ceil((+$41))); $43 = (~~(($42))); $0 = $43; $44 = $0; $45 = $M; $46 = (($45) + ($44))|0; $M = $46; $47 = $i; $48 = (($47) + -1)|0; $i = $48; } $49 = $M; $50 = (($49) + ($35))|0; $M = $50; $71 = $M; STACKTOP = sp;return ($71|0); } function _wave_transform($inp,$N,$wname,$method,$J,$ext,$out,$length,$filters) { $inp = $inp|0; $N = $N|0; $wname = $wname|0; $method = $method|0; $J = $J|0; $ext = $ext|0; $out = $out|0; $length = $length|0; $filters = $filters|0; var $$ = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0; var $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0.0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0; var $133 = 0, $134 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0.0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0; var $30 = 0, $31 = 0, $32 = 0, $33 = 0.0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0.0, $47 = 0, $48 = 0; var $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0.0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0; var $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0; var $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $i = 0, $obj = 0, $wt = 0, $zpad = 0; var label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $inp; $1 = $N; $2 = $wname; $3 = $method; $4 = $J; $5 = $ext; $6 = $out; $7 = $length; $8 = $filters; $zpad = 0; $9 = $1; $10 = (($9|0) % 2)&-1; $11 = ($10|0)==(0); $$ = $11 ? 1 : 0; $zpad = $$; $12 = $2; $13 = (_wave_init($12)|0); $obj = $13; $i = 0; while(1) { $14 = $i; $15 = $obj; $16 = ((($15)) + 52|0); $17 = HEAP32[$16>>2]|0; $18 = ($14|0)<($17|0); if (!($18)) { break; } $19 = $i; $20 = $obj; $21 = ((($20)) + 72|0); $22 = HEAP32[$21>>2]|0; $23 = (($22) + ($19<<3)|0); $24 = +HEAPF64[$23>>3]; $25 = $i; $26 = $8; $27 = (($26) + ($25<<3)|0); HEAPF64[$27>>3] = $24; $28 = $i; $29 = $obj; $30 = ((($29)) + 76|0); $31 = HEAP32[$30>>2]|0; $32 = (($31) + ($28<<3)|0); $33 = +HEAPF64[$32>>3]; $34 = $obj; $35 = ((($34)) + 52|0); $36 = HEAP32[$35>>2]|0; $37 = $i; $38 = (($36) + ($37))|0; $39 = $8; $40 = (($39) + ($38<<3)|0); HEAPF64[$40>>3] = $33; $41 = $i; $42 = $obj; $43 = ((($42)) + 80|0); $44 = HEAP32[$43>>2]|0; $45 = (($44) + ($41<<3)|0); $46 = +HEAPF64[$45>>3]; $47 = $obj; $48 = ((($47)) + 52|0); $49 = HEAP32[$48>>2]|0; $50 = $49<<1; $51 = $i; $52 = (($50) + ($51))|0; $53 = $8; $54 = (($53) + ($52<<3)|0); HEAPF64[$54>>3] = $46; $55 = $i; $56 = $obj; $57 = ((($56)) + 84|0); $58 = HEAP32[$57>>2]|0; $59 = (($58) + ($55<<3)|0); $60 = +HEAPF64[$59>>3]; $61 = $obj; $62 = ((($61)) + 52|0); $63 = HEAP32[$62>>2]|0; $64 = ($63*3)|0; $65 = $i; $66 = (($64) + ($65))|0; $67 = $8; $68 = (($67) + ($66<<3)|0); HEAPF64[$68>>3] = $60; $69 = $i; $70 = (($69) + 1)|0; $i = $70; } $71 = $obj; $72 = $3; $73 = $1; $74 = $4; $75 = (_wt_init($71,$72,$73,$74)|0); $wt = $75; $76 = $3; $77 = (_strcmp($76,17424)|0); $78 = ($77|0)!=(0); do { if ($78) { $79 = $3; $80 = (_strcmp($79,17432)|0); $81 = ($80|0)!=(0); if ($81) { $86 = $3; $87 = (_strcmp($86,17456)|0); $88 = ($87|0)!=(0); if ($88) { $89 = $3; $90 = (_strcmp($89,17464)|0); $91 = ($90|0)!=(0); if ($91) { $94 = $3; $95 = (_strcmp($94,17472)|0); $96 = ($95|0)!=(0); if ($96) { $97 = $3; $98 = (_strcmp($97,17480)|0); $99 = ($98|0)!=(0); if ($99) { break; } } $100 = $wt; $101 = $0; _modwt($100,$101); break; } } $92 = $wt; $93 = $0; _swt($92,$93); } else { label = 6; } } else { label = 6; } } while(0); if ((label|0) == 6) { $82 = $wt; $83 = $5; _setDWTExtension($82,$83); $84 = $wt; $85 = $0; _dwt($84,$85); } $i = 0; while(1) { $102 = $i; $103 = $wt; $104 = ((($103)) + 28|0); $105 = HEAP32[$104>>2]|0; $106 = ($102|0)<($105|0); if (!($106)) { break; } $107 = $i; $108 = $wt; $109 = ((($108)) + 76|0); $110 = (($109) + ($107<<2)|0); $111 = HEAP32[$110>>2]|0; $112 = $i; $113 = $7; $114 = (($113) + ($112<<2)|0); HEAP32[$114>>2] = $111; $115 = $i; $116 = (($115) + 1)|0; $i = $116; } $i = 0; while(1) { $117 = $i; $118 = $wt; $119 = ((($118)) + 24|0); $120 = HEAP32[$119>>2]|0; $121 = ($117|0)<($120|0); if (!($121)) { break; } $122 = $i; $123 = $wt; $124 = ((($123)) + 484|0); $125 = HEAP32[$124>>2]|0; $126 = (($125) + ($122<<3)|0); $127 = +HEAPF64[$126>>3]; $128 = $i; $129 = $6; $130 = (($129) + ($128<<3)|0); HEAPF64[$130>>3] = $127; $131 = $i; $132 = (($131) + 1)|0; $i = $132; } $133 = $obj; _wave_free($133); $134 = $wt; _wt_free($134); STACKTOP = sp;return; } function _inv_wave_transform($inp,$N,$wname,$method,$J,$ext,$out,$outlength,$length,$lenlength) { $inp = $inp|0; $N = $N|0; $wname = $wname|0; $method = $method|0; $J = $J|0; $ext = $ext|0; $out = $out|0; $outlength = $outlength|0; $length = $length|0; $lenlength = $lenlength|0; var $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0.0, $24 = 0, $25 = 0, $26 = 0; var $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0; var $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0; var $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $8 = 0, $9 = 0, $i = 0, $obj = 0, $wt = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 64|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $0 = $inp; $1 = $N; $2 = $wname; $3 = $method; $4 = $J; $5 = $ext; $6 = $out; $7 = $outlength; $8 = $length; $9 = $lenlength; $10 = $2; $11 = (_wave_init($10)|0); $obj = $11; $12 = $obj; $13 = $3; $14 = $7; $15 = $4; $16 = (_wt_init($12,$13,$14,$15)|0); $wt = $16; $i = 0; while(1) { $17 = $i; $18 = $1; $19 = ($17|0)<($18|0); if (!($19)) { break; } $20 = $i; $21 = $0; $22 = (($21) + ($20<<3)|0); $23 = +HEAPF64[$22>>3]; $24 = $i; $25 = $wt; $26 = ((($25)) + 484|0); $27 = HEAP32[$26>>2]|0; $28 = (($27) + ($24<<3)|0); HEAPF64[$28>>3] = $23; $29 = $i; $30 = (($29) + 1)|0; $i = $30; } $31 = $9; $32 = $wt; $33 = ((($32)) + 28|0); HEAP32[$33>>2] = $31; $i = 0; while(1) { $34 = $i; $35 = $9; $36 = ($34|0)<($35|0); if (!($36)) { break; } $37 = $i; $38 = $8; $39 = (($38) + ($37<<2)|0); $40 = HEAP32[$39>>2]|0; $41 = $i; $42 = $wt; $43 = ((($42)) + 76|0); $44 = (($43) + ($41<<2)|0); HEAP32[$44>>2] = $40; $45 = $i; $46 = (($45) + 1)|0; $i = $46; } $47 = $3; $48 = (_strcmp($47,17424)|0); $49 = ($48|0)!=(0); if ($49) { $50 = $3; $51 = (_strcmp($50,17432)|0); $52 = ($51|0)!=(0); if ($52) { $57 = $3; $58 = (_strcmp($57,17456)|0); $59 = ($58|0)!=(0); if ($59) { $60 = $3; $61 = (_strcmp($60,17464)|0); $62 = ($61|0)!=(0); if ($62) { $65 = $3; $66 = (_strcmp($65,17472)|0); $67 = ($66|0)!=(0); if ($67) { $68 = $3; $69 = (_strcmp($68,17480)|0); $70 = ($69|0)!=(0); if ($70) { $73 = $obj; _wave_free($73); $74 = $wt; _wt_free($74); STACKTOP = sp;return; } } $71 = $wt; $72 = $6; _imodwt($71,$72); $73 = $obj; _wave_free($73); $74 = $wt; _wt_free($74); STACKTOP = sp;return; } } $63 = $wt; $64 = $6; _iswt($63,$64); $73 = $obj; _wave_free($73); $74 = $wt; _wt_free($74); STACKTOP = sp;return; } } $53 = $wt; $54 = $5; _setDWTExtension($53,$54); $55 = $wt; $56 = $6; _idwt($55,$56); $73 = $obj; _wave_free($73); $74 = $wt; _wt_free($74); STACKTOP = sp;return; } function _strchr($s,$c) { $s = $s|0; $c = $c|0; var $0 = 0, $1 = 0, $2 = 0, $3 = 0, $4 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = (___strchrnul($s,$c)|0); $1 = HEAP8[$0>>0]|0; $2 = $c&255; $3 = ($1<<24>>24)==($2<<24>>24); $4 = $3 ? $0 : 0; return ($4|0); } function ___strchrnul($s,$c) { $s = $s|0; $c = $c|0; var $$0 = 0, $$02$lcssa = 0, $$0211 = 0, $$1 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0; var $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0; var $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond5 = 0, $w$0$lcssa = 0, $w$08 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = $c & 255; $1 = ($0|0)==(0); if ($1) { $6 = (_strlen(($s|0))|0); $7 = (($s) + ($6)|0); $$0 = $7; return ($$0|0); } $2 = $s; $3 = $2 & 3; $4 = ($3|0)==(0); L5: do { if ($4) { $$02$lcssa = $s; } else { $5 = $c&255; $$0211 = $s; while(1) { $8 = HEAP8[$$0211>>0]|0; $9 = ($8<<24>>24)==(0); $10 = ($8<<24>>24)==($5<<24>>24); $or$cond = $9 | $10; if ($or$cond) { $$0 = $$0211; break; } $11 = ((($$0211)) + 1|0); $12 = $11; $13 = $12 & 3; $14 = ($13|0)==(0); if ($14) { $$02$lcssa = $11; break L5; } else { $$0211 = $11; } } return ($$0|0); } } while(0); $15 = Math_imul($0, 16843009)|0; $16 = HEAP32[$$02$lcssa>>2]|0; $17 = (($16) + -16843009)|0; $18 = $16 & -2139062144; $19 = $18 ^ -2139062144; $20 = $19 & $17; $21 = ($20|0)==(0); L12: do { if ($21) { $23 = $16;$w$08 = $$02$lcssa; while(1) { $22 = $23 ^ $15; $24 = (($22) + -16843009)|0; $25 = $22 & -2139062144; $26 = $25 ^ -2139062144; $27 = $26 & $24; $28 = ($27|0)==(0); if (!($28)) { $w$0$lcssa = $w$08; break L12; } $29 = ((($w$08)) + 4|0); $30 = HEAP32[$29>>2]|0; $31 = (($30) + -16843009)|0; $32 = $30 & -2139062144; $33 = $32 ^ -2139062144; $34 = $33 & $31; $35 = ($34|0)==(0); if ($35) { $23 = $30;$w$08 = $29; } else { $w$0$lcssa = $29; break; } } } else { $w$0$lcssa = $$02$lcssa; } } while(0); $36 = $c&255; $$1 = $w$0$lcssa; while(1) { $37 = HEAP8[$$1>>0]|0; $38 = ($37<<24>>24)==(0); $39 = ($37<<24>>24)==($36<<24>>24); $or$cond5 = $38 | $39; $40 = ((($$1)) + 1|0); if ($or$cond5) { $$0 = $$1; break; } else { $$1 = $40; } } return ($$0|0); } function _strstr($h,$n) { $h = $h|0; $n = $n|0; var $$0 = 0, $$0$i = 0, $$0$lcssa$i = 0, $$0$lcssa$i13 = 0, $$01$i = 0, $$02$i = 0, $$02$i9 = 0, $$03$i = 0, $$03$us$i = 0, $$lcssa$i = 0, $$lcssa$i12 = 0, $$lcssa$i6 = 0, $$lcssa303 = 0, $$lcssa306 = 0, $$lcssa309 = 0, $$lcssa323 = 0, $$lcssa326 = 0, $$lcssa329 = 0, $$lcssa344 = 0, $$pr$i = 0; var $$pr$us$i = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0, $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0; var $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0; var $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0; var $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0; var $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0; var $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0; var $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0; var $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0; var $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0; var $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0; var $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $281$phi = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0; var $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0, $50 = 0, $51 = 0, $52 = 0, $53 = 0; var $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0, $69 = 0, $7 = 0, $70 = 0, $71 = 0; var $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0, $87 = 0, $88 = 0, $89 = 0, $9 = 0; var $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $byteset$i = 0, $div$i = 0, $div$us$i = 0, $div4$i = 0, $hw$0$in2$i = 0, $hw$03$i = 0, $hw$03$i8 = 0, $ip$0$ph$lcssa$i = 0, $ip$0$ph$lcssa147$i = 0, $ip$0$ph76$i = 0; var $ip$1$ip$0$$i = 0, $ip$1$ip$0$i = 0, $ip$1$ph$lcssa$i = 0, $ip$1$ph55$i = 0, $jp$0$ph13$ph70$i = 0, $jp$0$ph1365$i = 0, $jp$0$ph1365$i$lcssa = 0, $jp$0$ph1365$i$lcssa$lcssa = 0, $jp$0$ph77$i = 0, $jp$1$ph56$i = 0, $jp$1$ph9$ph49$i = 0, $jp$1$ph944$i = 0, $jp$1$ph944$i$lcssa = 0, $jp$1$ph944$i$lcssa$lcssa = 0, $k$059$i = 0, $k$139$i = 0, $k$2$us$i = 0, $k$338$i = 0, $k$338$i$lcssa = 0, $k$338$us$i = 0; var $k$338$us$i$lcssa = 0, $k$4$i = 0, $k$4$us$i = 0, $l$080$i = 0, $l$080$i$lcssa343 = 0, $mem$0$us$i = 0, $or$cond$i = 0, $or$cond$i10 = 0, $or$cond5$us$i = 0, $p$0$ph$ph$lcssa32$i = 0, $p$0$ph$ph$lcssa32151$i = 0, $p$0$ph$ph71$i = 0, $p$1$p$0$i = 0, $p$1$ph$ph$lcssa23$i = 0, $p$1$ph$ph50$i = 0, $p$3155$i = 0, $shift$i = 0, $z$0$i = 0, $z$0$us$i = 0, $z$1$i = 0; var $z$1$us$i = 0, label = 0, sp = 0; sp = STACKTOP; STACKTOP = STACKTOP + 1056|0; if ((STACKTOP|0) >= (STACK_MAX|0)) abort(); $byteset$i = sp + 1024|0; $shift$i = sp; $0 = HEAP8[$n>>0]|0; $1 = ($0<<24>>24)==(0); if ($1) { $$0 = $h; STACKTOP = sp;return ($$0|0); } $2 = $0 << 24 >> 24; $3 = (_strchr($h,$2)|0); $4 = ($3|0)==(0|0); if ($4) { $$0 = 0; STACKTOP = sp;return ($$0|0); } $5 = ((($n)) + 1|0); $6 = HEAP8[$5>>0]|0; $7 = ($6<<24>>24)==(0); if ($7) { $$0 = $3; STACKTOP = sp;return ($$0|0); } $8 = ((($3)) + 1|0); $9 = HEAP8[$8>>0]|0; $10 = ($9<<24>>24)==(0); if ($10) { $$0 = 0; STACKTOP = sp;return ($$0|0); } $11 = ((($n)) + 2|0); $12 = HEAP8[$11>>0]|0; $13 = ($12<<24>>24)==(0); if ($13) { $14 = $0&255; $15 = $14 << 8; $16 = $6&255; $17 = $16 | $15; $18 = HEAP8[$3>>0]|0; $19 = $18&255; $20 = $19 << 8; $21 = $9&255; $22 = $20 | $21; $$01$i = $8;$280 = $9;$281 = $3;$hw$0$in2$i = $22; while(1) { $23 = $hw$0$in2$i & 65535; $24 = ($23|0)==($17|0); if ($24) { $$lcssa$i = $281;$31 = $280; break; } $25 = $23 << 8; $26 = ((($$01$i)) + 1|0); $27 = HEAP8[$26>>0]|0; $28 = $27&255; $29 = $28 | $25; $30 = ($27<<24>>24)==(0); if ($30) { $$lcssa$i = $$01$i;$31 = 0; break; } else { $281$phi = $$01$i;$$01$i = $26;$280 = $27;$hw$0$in2$i = $29;$281 = $281$phi; } } $32 = ($31<<24>>24)!=(0); $33 = $32 ? $$lcssa$i : 0; $$0 = $33; STACKTOP = sp;return ($$0|0); } $34 = ((($3)) + 2|0); $35 = HEAP8[$34>>0]|0; $36 = ($35<<24>>24)==(0); if ($36) { $$0 = 0; STACKTOP = sp;return ($$0|0); } $37 = ((($n)) + 3|0); $38 = HEAP8[$37>>0]|0; $39 = ($38<<24>>24)==(0); if ($39) { $40 = $0&255; $41 = $40 << 24; $42 = $6&255; $43 = $42 << 16; $44 = $43 | $41; $45 = $12&255; $46 = $45 << 8; $47 = $44 | $46; $48 = HEAP8[$3>>0]|0; $49 = $48&255; $50 = $49 << 24; $51 = $9&255; $52 = $51 << 16; $53 = $35&255; $54 = $53 << 8; $55 = $54 | $52; $56 = $55 | $50; $57 = ($56|0)==($47|0); if ($57) { $$0$lcssa$i = $34;$$lcssa$i6 = $35; } else { $$02$i = $34;$hw$03$i = $56; while(1) { $58 = ((($$02$i)) + 1|0); $59 = HEAP8[$58>>0]|0; $60 = $59&255; $61 = $60 | $hw$03$i; $62 = $61 << 8; $63 = ($59<<24>>24)==(0); $64 = ($62|0)==($47|0); $or$cond$i = $63 | $64; if ($or$cond$i) { $$0$lcssa$i = $58;$$lcssa$i6 = $59; break; } else { $$02$i = $58;$hw$03$i = $62; } } } $65 = ($$lcssa$i6<<24>>24)!=(0); $66 = ((($$0$lcssa$i)) + -2|0); $67 = $65 ? $66 : 0; $$0 = $67; STACKTOP = sp;return ($$0|0); } $68 = ((($3)) + 3|0); $69 = HEAP8[$68>>0]|0; $70 = ($69<<24>>24)==(0); if ($70) { $$0 = 0; STACKTOP = sp;return ($$0|0); } $71 = ((($n)) + 4|0); $72 = HEAP8[$71>>0]|0; $73 = ($72<<24>>24)==(0); if ($73) { $74 = $0&255; $75 = $74 << 24; $76 = $6&255; $77 = $76 << 16; $78 = $77 | $75; $79 = $12&255; $80 = $79 << 8; $81 = $78 | $80; $82 = $38&255; $83 = $81 | $82; $84 = HEAP8[$3>>0]|0; $85 = $84&255; $86 = $85 << 24; $87 = $9&255; $88 = $87 << 16; $89 = $35&255; $90 = $89 << 8; $91 = $69&255; $92 = $90 | $88; $93 = $92 | $91; $94 = $93 | $86; $95 = ($94|0)==($83|0); if ($95) { $$0$lcssa$i13 = $68;$$lcssa$i12 = $69; } else { $$02$i9 = $68;$hw$03$i8 = $94; while(1) { $96 = $hw$03$i8 << 8; $97 = ((($$02$i9)) + 1|0); $98 = HEAP8[$97>>0]|0; $99 = $98&255; $100 = $99 | $96; $101 = ($98<<24>>24)==(0); $102 = ($100|0)==($83|0); $or$cond$i10 = $101 | $102; if ($or$cond$i10) { $$0$lcssa$i13 = $97;$$lcssa$i12 = $98; break; } else { $$02$i9 = $97;$hw$03$i8 = $100; } } } $103 = ($$lcssa$i12<<24>>24)!=(0); $104 = ((($$0$lcssa$i13)) + -3|0); $105 = $103 ? $104 : 0; $$0 = $105; STACKTOP = sp;return ($$0|0); } ;HEAP32[$byteset$i>>2]=0|0;HEAP32[$byteset$i+4>>2]=0|0;HEAP32[$byteset$i+8>>2]=0|0;HEAP32[$byteset$i+12>>2]=0|0;HEAP32[$byteset$i+16>>2]=0|0;HEAP32[$byteset$i+20>>2]=0|0;HEAP32[$byteset$i+24>>2]=0|0;HEAP32[$byteset$i+28>>2]=0|0; $110 = $0;$l$080$i = 0; while(1) { $106 = (($3) + ($l$080$i)|0); $107 = HEAP8[$106>>0]|0; $108 = ($107<<24>>24)==(0); if ($108) { $$0$i = 0; break; } $109 = $110 & 31; $111 = $109&255; $112 = 1 << $111; $div4$i = ($110&255) >>> 5; $113 = $div4$i&255; $114 = (($byteset$i) + ($113<<2)|0); $115 = HEAP32[$114>>2]|0; $116 = $115 | $112; HEAP32[$114>>2] = $116; $117 = (($l$080$i) + 1)|0; $118 = $110&255; $119 = (($shift$i) + ($118<<2)|0); HEAP32[$119>>2] = $117; $120 = (($n) + ($117)|0); $121 = HEAP8[$120>>0]|0; $122 = ($121<<24>>24)==(0); if ($122) { $$lcssa344 = $117;$l$080$i$lcssa343 = $l$080$i; label = 23; break; } else { $110 = $121;$l$080$i = $117; } } L46: do { if ((label|0) == 23) { $123 = ($$lcssa344>>>0)>(1); L48: do { if ($123) { $282 = 1;$ip$0$ph76$i = -1;$jp$0$ph77$i = 0; L49: while(1) { $283 = $282;$jp$0$ph13$ph70$i = $jp$0$ph77$i;$p$0$ph$ph71$i = 1; while(1) { $284 = $283;$jp$0$ph1365$i = $jp$0$ph13$ph70$i; L53: while(1) { $133 = $284;$k$059$i = 1; while(1) { $129 = (($k$059$i) + ($ip$0$ph76$i))|0; $130 = (($n) + ($129)|0); $131 = HEAP8[$130>>0]|0; $132 = (($n) + ($133)|0); $134 = HEAP8[$132>>0]|0; $135 = ($131<<24>>24)==($134<<24>>24); if (!($135)) { $$lcssa323 = $133;$$lcssa326 = $131;$$lcssa329 = $134;$jp$0$ph1365$i$lcssa = $jp$0$ph1365$i; break L53; } $136 = ($k$059$i|0)==($p$0$ph$ph71$i|0); $127 = (($k$059$i) + 1)|0; if ($136) { break; } $126 = (($127) + ($jp$0$ph1365$i))|0; $128 = ($126>>>0)<($$lcssa344>>>0); if ($128) { $133 = $126;$k$059$i = $127; } else { $ip$0$ph$lcssa$i = $ip$0$ph76$i;$p$0$ph$ph$lcssa32$i = $p$0$ph$ph71$i; break L49; } } $137 = (($jp$0$ph1365$i) + ($p$0$ph$ph71$i))|0; $138 = (($137) + 1)|0; $139 = ($138>>>0)<($$lcssa344>>>0); if ($139) { $284 = $138;$jp$0$ph1365$i = $137; } else { $ip$0$ph$lcssa$i = $ip$0$ph76$i;$p$0$ph$ph$lcssa32$i = $p$0$ph$ph71$i; break L49; } } $140 = ($$lcssa326&255)>($$lcssa329&255); $141 = (($$lcssa323) - ($ip$0$ph76$i))|0; if (!($140)) { $jp$0$ph1365$i$lcssa$lcssa = $jp$0$ph1365$i$lcssa; break; } $124 = (($$lcssa323) + 1)|0; $125 = ($124>>>0)<($$lcssa344>>>0); if ($125) { $283 = $124;$jp$0$ph13$ph70$i = $$lcssa323;$p$0$ph$ph71$i = $141; } else { $ip$0$ph$lcssa$i = $ip$0$ph76$i;$p$0$ph$ph$lcssa32$i = $141; break L49; } } $142 = (($jp$0$ph1365$i$lcssa$lcssa) + 1)|0; $143 = (($jp$0$ph1365$i$lcssa$lcssa) + 2)|0; $144 = ($143>>>0)<($$lcssa344>>>0); if ($144) { $282 = $143;$ip$0$ph76$i = $jp$0$ph1365$i$lcssa$lcssa;$jp$0$ph77$i = $142; } else { $ip$0$ph$lcssa$i = $jp$0$ph1365$i$lcssa$lcssa;$p$0$ph$ph$lcssa32$i = 1; break; } } $285 = 1;$ip$1$ph55$i = -1;$jp$1$ph56$i = 0; while(1) { $287 = $285;$jp$1$ph9$ph49$i = $jp$1$ph56$i;$p$1$ph$ph50$i = 1; while(1) { $286 = $287;$jp$1$ph944$i = $jp$1$ph9$ph49$i; L68: while(1) { $152 = $286;$k$139$i = 1; while(1) { $148 = (($k$139$i) + ($ip$1$ph55$i))|0; $149 = (($n) + ($148)|0); $150 = HEAP8[$149>>0]|0; $151 = (($n) + ($152)|0); $153 = HEAP8[$151>>0]|0; $154 = ($150<<24>>24)==($153<<24>>24); if (!($154)) { $$lcssa303 = $152;$$lcssa306 = $150;$$lcssa309 = $153;$jp$1$ph944$i$lcssa = $jp$1$ph944$i; break L68; } $155 = ($k$139$i|0)==($p$1$ph$ph50$i|0); $146 = (($k$139$i) + 1)|0; if ($155) { break; } $145 = (($146) + ($jp$1$ph944$i))|0; $147 = ($145>>>0)<($$lcssa344>>>0); if ($147) { $152 = $145;$k$139$i = $146; } else { $ip$0$ph$lcssa147$i = $ip$0$ph$lcssa$i;$ip$1$ph$lcssa$i = $ip$1$ph55$i;$p$0$ph$ph$lcssa32151$i = $p$0$ph$ph$lcssa32$i;$p$1$ph$ph$lcssa23$i = $p$1$ph$ph50$i; break L48; } } $156 = (($jp$1$ph944$i) + ($p$1$ph$ph50$i))|0; $157 = (($156) + 1)|0; $158 = ($157>>>0)<($$lcssa344>>>0); if ($158) { $286 = $157;$jp$1$ph944$i = $156; } else { $ip$0$ph$lcssa147$i = $ip$0$ph$lcssa$i;$ip$1$ph$lcssa$i = $ip$1$ph55$i;$p$0$ph$ph$lcssa32151$i = $p$0$ph$ph$lcssa32$i;$p$1$ph$ph$lcssa23$i = $p$1$ph$ph50$i; break L48; } } $159 = ($$lcssa306&255)<($$lcssa309&255); $160 = (($$lcssa303) - ($ip$1$ph55$i))|0; if (!($159)) { $jp$1$ph944$i$lcssa$lcssa = $jp$1$ph944$i$lcssa; break; } $164 = (($$lcssa303) + 1)|0; $165 = ($164>>>0)<($$lcssa344>>>0); if ($165) { $287 = $164;$jp$1$ph9$ph49$i = $$lcssa303;$p$1$ph$ph50$i = $160; } else { $ip$0$ph$lcssa147$i = $ip$0$ph$lcssa$i;$ip$1$ph$lcssa$i = $ip$1$ph55$i;$p$0$ph$ph$lcssa32151$i = $p$0$ph$ph$lcssa32$i;$p$1$ph$ph$lcssa23$i = $160; break L48; } } $161 = (($jp$1$ph944$i$lcssa$lcssa) + 1)|0; $162 = (($jp$1$ph944$i$lcssa$lcssa) + 2)|0; $163 = ($162>>>0)<($$lcssa344>>>0); if ($163) { $285 = $162;$ip$1$ph55$i = $jp$1$ph944$i$lcssa$lcssa;$jp$1$ph56$i = $161; } else { $ip$0$ph$lcssa147$i = $ip$0$ph$lcssa$i;$ip$1$ph$lcssa$i = $jp$1$ph944$i$lcssa$lcssa;$p$0$ph$ph$lcssa32151$i = $p$0$ph$ph$lcssa32$i;$p$1$ph$ph$lcssa23$i = 1; break; } } } else { $ip$0$ph$lcssa147$i = -1;$ip$1$ph$lcssa$i = -1;$p$0$ph$ph$lcssa32151$i = 1;$p$1$ph$ph$lcssa23$i = 1; } } while(0); $166 = (($ip$1$ph$lcssa$i) + 1)|0; $167 = (($ip$0$ph$lcssa147$i) + 1)|0; $168 = ($166>>>0)>($167>>>0); $p$1$p$0$i = $168 ? $p$1$ph$ph$lcssa23$i : $p$0$ph$ph$lcssa32151$i; $ip$1$ip$0$i = $168 ? $ip$1$ph$lcssa$i : $ip$0$ph$lcssa147$i; $169 = (($n) + ($p$1$p$0$i)|0); $170 = (($ip$1$ip$0$i) + 1)|0; $171 = (_memcmp($n,$169,$170)|0); $172 = ($171|0)==(0); if ($172) { $178 = (($$lcssa344) - ($p$1$p$0$i))|0; $179 = $$lcssa344 | 63; $180 = ($$lcssa344|0)==($p$1$p$0$i|0); if ($180) { $237 = $179;$p$3155$i = $$lcssa344; } else { $$03$us$i = $3;$mem$0$us$i = 0;$z$0$us$i = $3; L82: while(1) { $182 = $z$0$us$i; $183 = $$03$us$i; $184 = (($182) - ($183))|0; $185 = ($184>>>0)<($$lcssa344>>>0); do { if ($185) { $186 = (_memchr($z$0$us$i,0,$179)|0); $187 = ($186|0)==(0|0); if ($187) { $191 = (($z$0$us$i) + ($179)|0); $z$1$us$i = $191; break; } else { $188 = $186; $189 = (($188) - ($183))|0; $190 = ($189>>>0)<($$lcssa344>>>0); if ($190) { $$0$i = 0; break L46; } else { $z$1$us$i = $186; break; } } } else { $z$1$us$i = $z$0$us$i; } } while(0); $192 = (($$03$us$i) + ($l$080$i$lcssa343)|0); $193 = HEAP8[$192>>0]|0; $div$us$i = ($193&255) >>> 5; $194 = $div$us$i&255; $195 = (($byteset$i) + ($194<<2)|0); $196 = HEAP32[$195>>2]|0; $197 = $193 & 31; $198 = $197&255; $199 = 1 << $198; $200 = $199 & $196; $201 = ($200|0)==(0); if ($201) { $232 = (($$03$us$i) + ($$lcssa344)|0); $$03$us$i = $232;$mem$0$us$i = 0;$z$0$us$i = $z$1$us$i; continue; } $202 = $193&255; $203 = (($shift$i) + ($202<<2)|0); $204 = HEAP32[$203>>2]|0; $205 = (($$lcssa344) - ($204))|0; $206 = ($$lcssa344|0)==($204|0); if (!($206)) { $207 = ($mem$0$us$i|0)!=(0); $208 = ($205>>>0)<($p$1$p$0$i>>>0); $or$cond5$us$i = $207 & $208; $k$2$us$i = $or$cond5$us$i ? $178 : $205; $209 = (($$03$us$i) + ($k$2$us$i)|0); $$03$us$i = $209;$mem$0$us$i = 0;$z$0$us$i = $z$1$us$i; continue; } $210 = ($170>>>0)>($mem$0$us$i>>>0); $211 = $210 ? $170 : $mem$0$us$i; $212 = (($n) + ($211)|0); $213 = HEAP8[$212>>0]|0; $214 = ($213<<24>>24)==(0); L96: do { if ($214) { $k$4$us$i = $170; } else { $$pr$us$i = $213;$k$338$us$i = $211; while(1) { $215 = (($$03$us$i) + ($k$338$us$i)|0); $216 = HEAP8[$215>>0]|0; $217 = ($$pr$us$i<<24>>24)==($216<<24>>24); if (!($217)) { $k$338$us$i$lcssa = $k$338$us$i; break; } $220 = (($k$338$us$i) + 1)|0; $221 = (($n) + ($220)|0); $222 = HEAP8[$221>>0]|0; $223 = ($222<<24>>24)==(0); if ($223) { $k$4$us$i = $170; break L96; } else { $$pr$us$i = $222;$k$338$us$i = $220; } } $218 = (($k$338$us$i$lcssa) - ($ip$1$ip$0$i))|0; $219 = (($$03$us$i) + ($218)|0); $$03$us$i = $219;$mem$0$us$i = 0;$z$0$us$i = $z$1$us$i; continue L82; } } while(0); while(1) { $224 = ($k$4$us$i>>>0)>($mem$0$us$i>>>0); if (!($224)) { $$0$i = $$03$us$i; break L46; } $225 = (($k$4$us$i) + -1)|0; $226 = (($n) + ($225)|0); $227 = HEAP8[$226>>0]|0; $228 = (($$03$us$i) + ($225)|0); $229 = HEAP8[$228>>0]|0; $230 = ($227<<24>>24)==($229<<24>>24); if ($230) { $k$4$us$i = $225; } else { break; } } $231 = (($$03$us$i) + ($p$1$p$0$i)|0); $$03$us$i = $231;$mem$0$us$i = $178;$z$0$us$i = $z$1$us$i; } } } else { $173 = (($$lcssa344) - ($ip$1$ip$0$i))|0; $174 = (($173) + -1)|0; $175 = ($ip$1$ip$0$i>>>0)>($174>>>0); $ip$1$ip$0$$i = $175 ? $ip$1$ip$0$i : $174; $176 = (($ip$1$ip$0$$i) + 1)|0; $177 = $$lcssa344 | 63; $237 = $177;$p$3155$i = $176; } $181 = (($n) + ($170)|0); $$03$i = $3;$z$0$i = $3; L106: while(1) { $233 = $z$0$i; $234 = $$03$i; $235 = (($233) - ($234))|0; $236 = ($235>>>0)<($$lcssa344>>>0); do { if ($236) { $238 = (_memchr($z$0$i,0,$237)|0); $239 = ($238|0)==(0|0); if ($239) { $243 = (($z$0$i) + ($237)|0); $z$1$i = $243; break; } else { $240 = $238; $241 = (($240) - ($234))|0; $242 = ($241>>>0)<($$lcssa344>>>0); if ($242) { $$0$i = 0; break L46; } else { $z$1$i = $238; break; } } } else { $z$1$i = $z$0$i; } } while(0); $244 = (($$03$i) + ($l$080$i$lcssa343)|0); $245 = HEAP8[$244>>0]|0; $div$i = ($245&255) >>> 5; $246 = $div$i&255; $247 = (($byteset$i) + ($246<<2)|0); $248 = HEAP32[$247>>2]|0; $249 = $245 & 31; $250 = $249&255; $251 = 1 << $250; $252 = $251 & $248; $253 = ($252|0)==(0); if ($253) { $260 = (($$03$i) + ($$lcssa344)|0); $$03$i = $260;$z$0$i = $z$1$i; continue; } $254 = $245&255; $255 = (($shift$i) + ($254<<2)|0); $256 = HEAP32[$255>>2]|0; $257 = ($$lcssa344|0)==($256|0); if (!($257)) { $258 = (($$lcssa344) - ($256))|0; $259 = (($$03$i) + ($258)|0); $$03$i = $259;$z$0$i = $z$1$i; continue; } $261 = HEAP8[$181>>0]|0; $262 = ($261<<24>>24)==(0); L120: do { if ($262) { $k$4$i = $170; } else { $$pr$i = $261;$k$338$i = $170; while(1) { $263 = (($$03$i) + ($k$338$i)|0); $264 = HEAP8[$263>>0]|0; $265 = ($$pr$i<<24>>24)==($264<<24>>24); if (!($265)) { $k$338$i$lcssa = $k$338$i; break; } $266 = (($k$338$i) + 1)|0; $267 = (($n) + ($266)|0); $268 = HEAP8[$267>>0]|0; $269 = ($268<<24>>24)==(0); if ($269) { $k$4$i = $170; break L120; } else { $$pr$i = $268;$k$338$i = $266; } } $270 = (($k$338$i$lcssa) - ($ip$1$ip$0$i))|0; $271 = (($$03$i) + ($270)|0); $$03$i = $271;$z$0$i = $z$1$i; continue L106; } } while(0); while(1) { $272 = ($k$4$i|0)==(0); if ($272) { $$0$i = $$03$i; break L46; } $273 = (($k$4$i) + -1)|0; $274 = (($n) + ($273)|0); $275 = HEAP8[$274>>0]|0; $276 = (($$03$i) + ($273)|0); $277 = HEAP8[$276>>0]|0; $278 = ($275<<24>>24)==($277<<24>>24); if ($278) { $k$4$i = $273; } else { break; } } $279 = (($$03$i) + ($p$3155$i)|0); $$03$i = $279;$z$0$i = $z$1$i; } } } while(0); $$0 = $$0$i; STACKTOP = sp;return ($$0|0); } function _log10($x) { $x = +$x; var $$0 = 0.0, $0 = 0, $1 = 0, $10 = 0.0, $11 = 0.0, $12 = 0.0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0, $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0.0; var $26 = 0, $27 = 0.0, $28 = 0.0, $29 = 0.0, $3 = 0, $30 = 0.0, $31 = 0.0, $32 = 0.0, $33 = 0.0, $34 = 0.0, $35 = 0.0, $36 = 0.0, $37 = 0.0, $38 = 0.0, $39 = 0.0, $4 = 0, $40 = 0.0, $41 = 0.0, $42 = 0.0, $43 = 0.0; var $44 = 0.0, $45 = 0.0, $46 = 0.0, $47 = 0.0, $48 = 0, $49 = 0, $5 = 0, $50 = 0.0, $51 = 0.0, $52 = 0.0, $53 = 0.0, $54 = 0.0, $55 = 0.0, $56 = 0.0, $57 = 0.0, $58 = 0.0, $59 = 0.0, $6 = 0, $60 = 0.0, $61 = 0.0; var $62 = 0.0, $63 = 0.0, $64 = 0.0, $65 = 0.0, $66 = 0.0, $67 = 0.0, $68 = 0.0, $69 = 0.0, $7 = 0, $70 = 0, $8 = 0.0, $9 = 0.0, $hx$0 = 0, $k$0 = 0, $or$cond = 0, $or$cond4 = 0, label = 0, sp = 0; sp = STACKTOP; HEAPF64[tempDoublePtr>>3] = $x;$0 = HEAP32[tempDoublePtr>>2]|0; $1 = HEAP32[tempDoublePtr+4>>2]|0; $2 = ($1>>>0)<(1048576); $3 = ($1|0)<(0); $or$cond = $3 | $2; do { if ($or$cond) { $4 = $1 & 2147483647; $5 = ($0|0)==(0); $6 = ($4|0)==(0); $7 = $5 & $6; if ($7) { $8 = $x * $x; $9 = -1.0 / $8; $$0 = $9; return (+$$0); } if (!($3)) { $12 = $x * 18014398509481984.0; HEAPF64[tempDoublePtr>>3] = $12;$13 = HEAP32[tempDoublePtr>>2]|0; $14 = HEAP32[tempDoublePtr+4>>2]|0; $26 = $13;$70 = $14;$hx$0 = $14;$k$0 = -1077; break; } $10 = $x - $x; $11 = $10 / 0.0; $$0 = $11; return (+$$0); } else { $15 = ($1>>>0)>(2146435071); if ($15) { $$0 = $x; return (+$$0); } $16 = ($1|0)==(1072693248); $17 = ($0|0)==(0); $18 = (0)==(0); $19 = $17 & $18; $or$cond4 = $19 & $16; if ($or$cond4) { $$0 = 0.0; return (+$$0); } else { $26 = $0;$70 = $1;$hx$0 = $1;$k$0 = -1023; } } } while(0); $20 = (($hx$0) + 614242)|0; $21 = $20 >>> 20; $22 = (($k$0) + ($21))|0; $23 = $20 & 1048575; $24 = (($23) + 1072079006)|0; HEAP32[tempDoublePtr>>2] = $26;HEAP32[tempDoublePtr+4>>2] = $24;$25 = +HEAPF64[tempDoublePtr>>3]; $27 = $25 + -1.0; $28 = $27 * 0.5; $29 = $27 * $28; $30 = $27 + 2.0; $31 = $27 / $30; $32 = $31 * $31; $33 = $32 * $32; $34 = $33 * 0.15313837699209373; $35 = $34 + 0.22222198432149784; $36 = $33 * $35; $37 = $36 + 0.39999999999409419; $38 = $33 * $37; $39 = $33 * 0.14798198605116586; $40 = $39 + 0.1818357216161805; $41 = $33 * $40; $42 = $41 + 0.28571428743662391; $43 = $33 * $42; $44 = $43 + 0.66666666666667351; $45 = $32 * $44; $46 = $38 + $45; $47 = $27 - $29; HEAPF64[tempDoublePtr>>3] = $47;$48 = HEAP32[tempDoublePtr>>2]|0; $49 = HEAP32[tempDoublePtr+4>>2]|0; HEAP32[tempDoublePtr>>2] = 0;HEAP32[tempDoublePtr+4>>2] = $49;$50 = +HEAPF64[tempDoublePtr>>3]; $51 = $27 - $50; $52 = $51 - $29; $53 = $29 + $46; $54 = $31 * $53; $55 = $54 + $52; $56 = $50 * 0.43429448187816888; $57 = (+($22|0)); $58 = $57 * 0.30102999566361177; $59 = $57 * 3.6942390771589308E-13; $60 = $50 + $55; $61 = $60 * 2.5082946711645275E-11; $62 = $59 + $61; $63 = $55 * 0.43429448187816888; $64 = $63 + $62; $65 = $58 + $56; $66 = $58 - $65; $67 = $56 + $66; $68 = $67 + $64; $69 = $65 + $68; $$0 = $69; return (+$$0); } function _memchr($src,$c,$n) { $src = $src|0; $c = $c|0; $n = $n|0; var $$0$lcssa = 0, $$0$lcssa44 = 0, $$019 = 0, $$1$lcssa = 0, $$110 = 0, $$110$lcssa = 0, $$24 = 0, $$3 = 0, $$lcssa = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $13 = 0, $14 = 0, $15 = 0, $16 = 0, $17 = 0, $18 = 0; var $19 = 0, $2 = 0, $20 = 0, $21 = 0, $22 = 0, $23 = 0, $24 = 0, $25 = 0, $26 = 0, $27 = 0, $28 = 0, $29 = 0, $3 = 0, $30 = 0, $31 = 0, $32 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0; var $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond18 = 0, $s$0$lcssa = 0, $s$0$lcssa43 = 0, $s$020 = 0, $s$15 = 0, $s$2 = 0, $w$0$lcssa = 0, $w$011 = 0, $w$011$lcssa = 0, label = 0, sp = 0; sp = STACKTOP; $0 = $c & 255; $1 = $src; $2 = $1 & 3; $3 = ($2|0)!=(0); $4 = ($n|0)!=(0); $or$cond18 = $4 & $3; L1: do { if ($or$cond18) { $5 = $c&255; $$019 = $n;$s$020 = $src; while(1) { $6 = HEAP8[$s$020>>0]|0; $7 = ($6<<24>>24)==($5<<24>>24); if ($7) { $$0$lcssa44 = $$019;$s$0$lcssa43 = $s$020; label = 6; break L1; } $8 = ((($s$020)) + 1|0); $9 = (($$019) + -1)|0; $10 = $8; $11 = $10 & 3; $12 = ($11|0)!=(0); $13 = ($9|0)!=(0); $or$cond = $13 & $12; if ($or$cond) { $$019 = $9;$s$020 = $8; } else { $$0$lcssa = $9;$$lcssa = $13;$s$0$lcssa = $8; label = 5; break; } } } else { $$0$lcssa = $n;$$lcssa = $4;$s$0$lcssa = $src; label = 5; } } while(0); if ((label|0) == 5) { if ($$lcssa) { $$0$lcssa44 = $$0$lcssa;$s$0$lcssa43 = $s$0$lcssa; label = 6; } else { $$3 = 0;$s$2 = $s$0$lcssa; } } L8: do { if ((label|0) == 6) { $14 = HEAP8[$s$0$lcssa43>>0]|0; $15 = $c&255; $16 = ($14<<24>>24)==($15<<24>>24); if ($16) { $$3 = $$0$lcssa44;$s$2 = $s$0$lcssa43; } else { $17 = Math_imul($0, 16843009)|0; $18 = ($$0$lcssa44>>>0)>(3); L11: do { if ($18) { $$110 = $$0$lcssa44;$w$011 = $s$0$lcssa43; while(1) { $19 = HEAP32[$w$011>>2]|0; $20 = $19 ^ $17; $21 = (($20) + -16843009)|0; $22 = $20 & -2139062144; $23 = $22 ^ -2139062144; $24 = $23 & $21; $25 = ($24|0)==(0); if (!($25)) { $$110$lcssa = $$110;$w$011$lcssa = $w$011; break; } $26 = ((($w$011)) + 4|0); $27 = (($$110) + -4)|0; $28 = ($27>>>0)>(3); if ($28) { $$110 = $27;$w$011 = $26; } else { $$1$lcssa = $27;$w$0$lcssa = $26; label = 11; break L11; } } $$24 = $$110$lcssa;$s$15 = $w$011$lcssa; } else { $$1$lcssa = $$0$lcssa44;$w$0$lcssa = $s$0$lcssa43; label = 11; } } while(0); if ((label|0) == 11) { $29 = ($$1$lcssa|0)==(0); if ($29) { $$3 = 0;$s$2 = $w$0$lcssa; break; } else { $$24 = $$1$lcssa;$s$15 = $w$0$lcssa; } } while(1) { $30 = HEAP8[$s$15>>0]|0; $31 = ($30<<24>>24)==($15<<24>>24); if ($31) { $$3 = $$24;$s$2 = $s$15; break L8; } $32 = ((($s$15)) + 1|0); $33 = (($$24) + -1)|0; $34 = ($33|0)==(0); if ($34) { $$3 = 0;$s$2 = $32; break; } else { $$24 = $33;$s$15 = $32; } } } } } while(0); $35 = ($$3|0)!=(0); $36 = $35 ? $s$2 : 0; return ($36|0); } function _memcmp($vl,$vr,$n) { $vl = $vl|0; $vr = $vr|0; $n = $n|0; var $$03 = 0, $$lcssa = 0, $$lcssa19 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $l$04 = 0, $r$05 = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($n|0)==(0); if ($0) { $11 = 0; return ($11|0); } else { $$03 = $n;$l$04 = $vl;$r$05 = $vr; } while(1) { $1 = HEAP8[$l$04>>0]|0; $2 = HEAP8[$r$05>>0]|0; $3 = ($1<<24>>24)==($2<<24>>24); if (!($3)) { $$lcssa = $1;$$lcssa19 = $2; break; } $4 = (($$03) + -1)|0; $5 = ((($l$04)) + 1|0); $6 = ((($r$05)) + 1|0); $7 = ($4|0)==(0); if ($7) { $11 = 0; label = 5; break; } else { $$03 = $4;$l$04 = $5;$r$05 = $6; } } if ((label|0) == 5) { return ($11|0); } $8 = $$lcssa&255; $9 = $$lcssa19&255; $10 = (($8) - ($9))|0; $11 = $10; return ($11|0); } function _strcmp($l,$r) { $l = $l|0; $r = $r|0; var $$014 = 0, $$05 = 0, $$lcssa = 0, $$lcssa2 = 0, $0 = 0, $1 = 0, $10 = 0, $11 = 0, $12 = 0, $2 = 0, $3 = 0, $4 = 0, $5 = 0, $6 = 0, $7 = 0, $8 = 0, $9 = 0, $or$cond = 0, $or$cond3 = 0, label = 0; var sp = 0; sp = STACKTOP; $0 = HEAP8[$l>>0]|0; $1 = HEAP8[$r>>0]|0; $2 = ($0<<24>>24)!=($1<<24>>24); $3 = ($0<<24>>24)==(0); $or$cond3 = $3 | $2; if ($or$cond3) { $$lcssa = $0;$$lcssa2 = $1; } else { $$014 = $l;$$05 = $r; while(1) { $4 = ((($$014)) + 1|0); $5 = ((($$05)) + 1|0); $6 = HEAP8[$4>>0]|0; $7 = HEAP8[$5>>0]|0; $8 = ($6<<24>>24)!=($7<<24>>24); $9 = ($6<<24>>24)==(0); $or$cond = $9 | $8; if ($or$cond) { $$lcssa = $6;$$lcssa2 = $7; break; } else { $$014 = $4;$$05 = $5; } } } $10 = $$lcssa&255; $11 = $$lcssa2&255; $12 = (($10) - ($11))|0; return ($12|0); } function _malloc($bytes) { $bytes = $bytes|0; var $$3$i = 0, $$lcssa = 0, $$lcssa211 = 0, $$lcssa215 = 0, $$lcssa216 = 0, $$lcssa217 = 0, $$lcssa219 = 0, $$lcssa222 = 0, $$lcssa224 = 0, $$lcssa226 = 0, $$lcssa228 = 0, $$lcssa230 = 0, $$lcssa232 = 0, $$pre = 0, $$pre$i = 0, $$pre$i$i = 0, $$pre$i22$i = 0, $$pre$i25 = 0, $$pre$phi$i$iZ2D = 0, $$pre$phi$i23$iZ2D = 0; var $$pre$phi$i26Z2D = 0, $$pre$phi$iZ2D = 0, $$pre$phi58$i$iZ2D = 0, $$pre$phiZ2D = 0, $$pre105 = 0, $$pre106 = 0, $$pre14$i$i = 0, $$pre43$i = 0, $$pre56$i$i = 0, $$pre57$i$i = 0, $$pre8$i = 0, $$rsize$0$i = 0, $$rsize$3$i = 0, $$sum = 0, $$sum$i$i = 0, $$sum$i$i$i = 0, $$sum$i13$i = 0, $$sum$i14$i = 0, $$sum$i17$i = 0, $$sum$i19$i = 0; var $$sum$i2334 = 0, $$sum$i32 = 0, $$sum$i35 = 0, $$sum1 = 0, $$sum1$i = 0, $$sum1$i$i = 0, $$sum1$i15$i = 0, $$sum1$i20$i = 0, $$sum1$i24 = 0, $$sum10 = 0, $$sum10$i = 0, $$sum10$i$i = 0, $$sum11$i = 0, $$sum11$i$i = 0, $$sum1112 = 0, $$sum112$i = 0, $$sum113$i = 0, $$sum114$i = 0, $$sum115$i = 0, $$sum116$i = 0; var $$sum117$i = 0, $$sum118$i = 0, $$sum119$i = 0, $$sum12$i = 0, $$sum12$i$i = 0, $$sum120$i = 0, $$sum121$i = 0, $$sum122$i = 0, $$sum123$i = 0, $$sum124$i = 0, $$sum125$i = 0, $$sum13$i = 0, $$sum13$i$i = 0, $$sum14$i$i = 0, $$sum15$i = 0, $$sum15$i$i = 0, $$sum16$i = 0, $$sum16$i$i = 0, $$sum17$i = 0, $$sum17$i$i = 0; var $$sum18$i = 0, $$sum1819$i$i = 0, $$sum2 = 0, $$sum2$i = 0, $$sum2$i$i = 0, $$sum2$i$i$i = 0, $$sum2$i16$i = 0, $$sum2$i18$i = 0, $$sum2$i21$i = 0, $$sum20$i$i = 0, $$sum21$i$i = 0, $$sum22$i$i = 0, $$sum23$i$i = 0, $$sum24$i$i = 0, $$sum25$i$i = 0, $$sum27$i$i = 0, $$sum28$i$i = 0, $$sum29$i$i = 0, $$sum3$i = 0, $$sum3$i27 = 0; var $$sum30$i$i = 0, $$sum3132$i$i = 0, $$sum34$i$i = 0, $$sum3536$i$i = 0, $$sum3738$i$i = 0, $$sum39$i$i = 0, $$sum4 = 0, $$sum4$i = 0, $$sum4$i$i = 0, $$sum4$i28 = 0, $$sum40$i$i = 0, $$sum41$i$i = 0, $$sum42$i$i = 0, $$sum5$i = 0, $$sum5$i$i = 0, $$sum56 = 0, $$sum6$i = 0, $$sum67$i$i = 0, $$sum7$i = 0, $$sum8$i = 0; var $$sum9 = 0, $$sum9$i = 0, $$sum9$i$i = 0, $$tsize$1$i = 0, $$v$0$i = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $1000 = 0, $1001 = 0, $1002 = 0, $1003 = 0, $1004 = 0, $1005 = 0, $1006 = 0, $1007 = 0, $1008 = 0, $1009 = 0, $101 = 0; var $1010 = 0, $1011 = 0, $1012 = 0, $1013 = 0, $1014 = 0, $1015 = 0, $1016 = 0, $1017 = 0, $1018 = 0, $1019 = 0, $102 = 0, $1020 = 0, $1021 = 0, $1022 = 0, $1023 = 0, $1024 = 0, $1025 = 0, $1026 = 0, $1027 = 0, $1028 = 0; var $1029 = 0, $103 = 0, $1030 = 0, $1031 = 0, $1032 = 0, $1033 = 0, $1034 = 0, $1035 = 0, $1036 = 0, $1037 = 0, $1038 = 0, $1039 = 0, $104 = 0, $1040 = 0, $1041 = 0, $1042 = 0, $1043 = 0, $1044 = 0, $1045 = 0, $1046 = 0; var $1047 = 0, $1048 = 0, $1049 = 0, $105 = 0, $1050 = 0, $1051 = 0, $1052 = 0, $1053 = 0, $1054 = 0, $1055 = 0, $1056 = 0, $1057 = 0, $1058 = 0, $1059 = 0, $106 = 0, $1060 = 0, $1061 = 0, $1062 = 0, $1063 = 0, $1064 = 0; var $1065 = 0, $1066 = 0, $1067 = 0, $1068 = 0, $1069 = 0, $107 = 0, $1070 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0; var $12 = 0, $120 = 0, $121 = 0, $122 = 0, $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0; var $138 = 0, $139 = 0, $14 = 0, $140 = 0, $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0; var $156 = 0, $157 = 0, $158 = 0, $159 = 0, $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0; var $174 = 0, $175 = 0, $176 = 0, $177 = 0, $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0; var $192 = 0, $193 = 0, $194 = 0, $195 = 0, $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0; var $21 = 0, $210 = 0, $211 = 0, $212 = 0, $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0; var $228 = 0, $229 = 0, $23 = 0, $230 = 0, $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0; var $246 = 0, $247 = 0, $248 = 0, $249 = 0, $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0; var $264 = 0, $265 = 0, $266 = 0, $267 = 0, $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0; var $282 = 0, $283 = 0, $284 = 0, $285 = 0, $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0; var $30 = 0, $300 = 0, $301 = 0, $302 = 0, $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0; var $318 = 0, $319 = 0, $32 = 0, $320 = 0, $321 = 0, $322 = 0, $323 = 0, $324 = 0, $325 = 0, $326 = 0, $327 = 0, $328 = 0, $329 = 0, $33 = 0, $330 = 0, $331 = 0, $332 = 0, $333 = 0, $334 = 0, $335 = 0; var $336 = 0, $337 = 0, $338 = 0, $339 = 0, $34 = 0, $340 = 0, $341 = 0, $342 = 0, $343 = 0, $344 = 0, $345 = 0, $346 = 0, $347 = 0, $348 = 0, $349 = 0, $35 = 0, $350 = 0, $351 = 0, $352 = 0, $353 = 0; var $354 = 0, $355 = 0, $356 = 0, $357 = 0, $358 = 0, $359 = 0, $36 = 0, $360 = 0, $361 = 0, $362 = 0, $363 = 0, $364 = 0, $365 = 0, $366 = 0, $367 = 0, $368 = 0, $369 = 0, $37 = 0, $370 = 0, $371 = 0; var $372 = 0, $373 = 0, $374 = 0, $375 = 0, $376 = 0, $377 = 0, $378 = 0, $379 = 0, $38 = 0, $380 = 0, $381 = 0, $382 = 0, $383 = 0, $384 = 0, $385 = 0, $386 = 0, $387 = 0, $388 = 0, $389 = 0, $39 = 0; var $390 = 0, $391 = 0, $392 = 0, $393 = 0, $394 = 0, $395 = 0, $396 = 0, $397 = 0, $398 = 0, $399 = 0, $4 = 0, $40 = 0, $400 = 0, $401 = 0, $402 = 0, $403 = 0, $404 = 0, $405 = 0, $406 = 0, $407 = 0; var $408 = 0, $409 = 0, $41 = 0, $410 = 0, $411 = 0, $412 = 0, $413 = 0, $414 = 0, $415 = 0, $416 = 0, $417 = 0, $418 = 0, $419 = 0, $42 = 0, $420 = 0, $421 = 0, $422 = 0, $423 = 0, $424 = 0, $425 = 0; var $426 = 0, $427 = 0, $428 = 0, $429 = 0, $43 = 0, $430 = 0, $431 = 0, $432 = 0, $433 = 0, $434 = 0, $435 = 0, $436 = 0, $437 = 0, $438 = 0, $439 = 0, $44 = 0, $440 = 0, $441 = 0, $442 = 0, $443 = 0; var $444 = 0, $445 = 0, $446 = 0, $447 = 0, $448 = 0, $449 = 0, $45 = 0, $450 = 0, $451 = 0, $452 = 0, $453 = 0, $454 = 0, $455 = 0, $456 = 0, $457 = 0, $458 = 0, $459 = 0, $46 = 0, $460 = 0, $461 = 0; var $462 = 0, $463 = 0, $464 = 0, $465 = 0, $466 = 0, $467 = 0, $468 = 0, $469 = 0, $47 = 0, $470 = 0, $471 = 0, $472 = 0, $473 = 0, $474 = 0, $475 = 0, $476 = 0, $477 = 0, $478 = 0, $479 = 0, $48 = 0; var $480 = 0, $481 = 0, $482 = 0, $483 = 0, $484 = 0, $485 = 0, $486 = 0, $487 = 0, $488 = 0, $489 = 0, $49 = 0, $490 = 0, $491 = 0, $492 = 0, $493 = 0, $494 = 0, $495 = 0, $496 = 0, $497 = 0, $498 = 0; var $499 = 0, $5 = 0, $50 = 0, $500 = 0, $501 = 0, $502 = 0, $503 = 0, $504 = 0, $505 = 0, $506 = 0, $507 = 0, $508 = 0, $509 = 0, $51 = 0, $510 = 0, $511 = 0, $512 = 0, $513 = 0, $514 = 0, $515 = 0; var $516 = 0, $517 = 0, $518 = 0, $519 = 0, $52 = 0, $520 = 0, $521 = 0, $522 = 0, $523 = 0, $524 = 0, $525 = 0, $526 = 0, $527 = 0, $528 = 0, $529 = 0, $53 = 0, $530 = 0, $531 = 0, $532 = 0, $533 = 0; var $534 = 0, $535 = 0, $536 = 0, $537 = 0, $538 = 0, $539 = 0, $54 = 0, $540 = 0, $541 = 0, $542 = 0, $543 = 0, $544 = 0, $545 = 0, $546 = 0, $547 = 0, $548 = 0, $549 = 0, $55 = 0, $550 = 0, $551 = 0; var $552 = 0, $553 = 0, $554 = 0, $555 = 0, $556 = 0, $557 = 0, $558 = 0, $559 = 0, $56 = 0, $560 = 0, $561 = 0, $562 = 0, $563 = 0, $564 = 0, $565 = 0, $566 = 0, $567 = 0, $568 = 0, $569 = 0, $57 = 0; var $570 = 0, $571 = 0, $572 = 0, $573 = 0, $574 = 0, $575 = 0, $576 = 0, $577 = 0, $578 = 0, $579 = 0, $58 = 0, $580 = 0, $581 = 0, $582 = 0, $583 = 0, $584 = 0, $585 = 0, $586 = 0, $587 = 0, $588 = 0; var $589 = 0, $59 = 0, $590 = 0, $591 = 0, $592 = 0, $593 = 0, $594 = 0, $595 = 0, $596 = 0, $597 = 0, $598 = 0, $599 = 0, $6 = 0, $60 = 0, $600 = 0, $601 = 0, $602 = 0, $603 = 0, $604 = 0, $605 = 0; var $606 = 0, $607 = 0, $608 = 0, $609 = 0, $61 = 0, $610 = 0, $611 = 0, $612 = 0, $613 = 0, $614 = 0, $615 = 0, $616 = 0, $617 = 0, $618 = 0, $619 = 0, $62 = 0, $620 = 0, $621 = 0, $622 = 0, $623 = 0; var $624 = 0, $625 = 0, $626 = 0, $627 = 0, $628 = 0, $629 = 0, $63 = 0, $630 = 0, $631 = 0, $632 = 0, $633 = 0, $634 = 0, $635 = 0, $636 = 0, $637 = 0, $638 = 0, $639 = 0, $64 = 0, $640 = 0, $641 = 0; var $642 = 0, $643 = 0, $644 = 0, $645 = 0, $646 = 0, $647 = 0, $648 = 0, $649 = 0, $65 = 0, $650 = 0, $651 = 0, $652 = 0, $653 = 0, $654 = 0, $655 = 0, $656 = 0, $657 = 0, $658 = 0, $659 = 0, $66 = 0; var $660 = 0, $661 = 0, $662 = 0, $663 = 0, $664 = 0, $665 = 0, $666 = 0, $667 = 0, $668 = 0, $669 = 0, $67 = 0, $670 = 0, $671 = 0, $672 = 0, $673 = 0, $674 = 0, $675 = 0, $676 = 0, $677 = 0, $678 = 0; var $679 = 0, $68 = 0, $680 = 0, $681 = 0, $682 = 0, $683 = 0, $684 = 0, $685 = 0, $686 = 0, $687 = 0, $688 = 0, $689 = 0, $69 = 0, $690 = 0, $691 = 0, $692 = 0, $693 = 0, $694 = 0, $695 = 0, $696 = 0; var $697 = 0, $698 = 0, $699 = 0, $7 = 0, $70 = 0, $700 = 0, $701 = 0, $702 = 0, $703 = 0, $704 = 0, $705 = 0, $706 = 0, $707 = 0, $708 = 0, $709 = 0, $71 = 0, $710 = 0, $711 = 0, $712 = 0, $713 = 0; var $714 = 0, $715 = 0, $716 = 0, $717 = 0, $718 = 0, $719 = 0, $72 = 0, $720 = 0, $721 = 0, $722 = 0, $723 = 0, $724 = 0, $725 = 0, $726 = 0, $727 = 0, $728 = 0, $729 = 0, $73 = 0, $730 = 0, $731 = 0; var $732 = 0, $733 = 0, $734 = 0, $735 = 0, $736 = 0, $737 = 0, $738 = 0, $739 = 0, $74 = 0, $740 = 0, $741 = 0, $742 = 0, $743 = 0, $744 = 0, $745 = 0, $746 = 0, $747 = 0, $748 = 0, $749 = 0, $75 = 0; var $750 = 0, $751 = 0, $752 = 0, $753 = 0, $754 = 0, $755 = 0, $756 = 0, $757 = 0, $758 = 0, $759 = 0, $76 = 0, $760 = 0, $761 = 0, $762 = 0, $763 = 0, $764 = 0, $765 = 0, $766 = 0, $767 = 0, $768 = 0; var $769 = 0, $77 = 0, $770 = 0, $771 = 0, $772 = 0, $773 = 0, $774 = 0, $775 = 0, $776 = 0, $777 = 0, $778 = 0, $779 = 0, $78 = 0, $780 = 0, $781 = 0, $782 = 0, $783 = 0, $784 = 0, $785 = 0, $786 = 0; var $787 = 0, $788 = 0, $789 = 0, $79 = 0, $790 = 0, $791 = 0, $792 = 0, $793 = 0, $794 = 0, $795 = 0, $796 = 0, $797 = 0, $798 = 0, $799 = 0, $8 = 0, $80 = 0, $800 = 0, $801 = 0, $802 = 0, $803 = 0; var $804 = 0, $805 = 0, $806 = 0, $807 = 0, $808 = 0, $809 = 0, $81 = 0, $810 = 0, $811 = 0, $812 = 0, $813 = 0, $814 = 0, $815 = 0, $816 = 0, $817 = 0, $818 = 0, $819 = 0, $82 = 0, $820 = 0, $821 = 0; var $822 = 0, $823 = 0, $824 = 0, $825 = 0, $826 = 0, $827 = 0, $828 = 0, $829 = 0, $83 = 0, $830 = 0, $831 = 0, $832 = 0, $833 = 0, $834 = 0, $835 = 0, $836 = 0, $837 = 0, $838 = 0, $839 = 0, $84 = 0; var $840 = 0, $841 = 0, $842 = 0, $843 = 0, $844 = 0, $845 = 0, $846 = 0, $847 = 0, $848 = 0, $849 = 0, $85 = 0, $850 = 0, $851 = 0, $852 = 0, $853 = 0, $854 = 0, $855 = 0, $856 = 0, $857 = 0, $858 = 0; var $859 = 0, $86 = 0, $860 = 0, $861 = 0, $862 = 0, $863 = 0, $864 = 0, $865 = 0, $866 = 0, $867 = 0, $868 = 0, $869 = 0, $87 = 0, $870 = 0, $871 = 0, $872 = 0, $873 = 0, $874 = 0, $875 = 0, $876 = 0; var $877 = 0, $878 = 0, $879 = 0, $88 = 0, $880 = 0, $881 = 0, $882 = 0, $883 = 0, $884 = 0, $885 = 0, $886 = 0, $887 = 0, $888 = 0, $889 = 0, $89 = 0, $890 = 0, $891 = 0, $892 = 0, $893 = 0, $894 = 0; var $895 = 0, $896 = 0, $897 = 0, $898 = 0, $899 = 0, $9 = 0, $90 = 0, $900 = 0, $901 = 0, $902 = 0, $903 = 0, $904 = 0, $905 = 0, $906 = 0, $907 = 0, $908 = 0, $909 = 0, $91 = 0, $910 = 0, $911 = 0; var $912 = 0, $913 = 0, $914 = 0, $915 = 0, $916 = 0, $917 = 0, $918 = 0, $919 = 0, $92 = 0, $920 = 0, $921 = 0, $922 = 0, $923 = 0, $924 = 0, $925 = 0, $926 = 0, $927 = 0, $928 = 0, $929 = 0, $93 = 0; var $930 = 0, $931 = 0, $932 = 0, $933 = 0, $934 = 0, $935 = 0, $936 = 0, $937 = 0, $938 = 0, $939 = 0, $94 = 0, $940 = 0, $941 = 0, $942 = 0, $943 = 0, $944 = 0, $945 = 0, $946 = 0, $947 = 0, $948 = 0; var $949 = 0, $95 = 0, $950 = 0, $951 = 0, $952 = 0, $953 = 0, $954 = 0, $955 = 0, $956 = 0, $957 = 0, $958 = 0, $959 = 0, $96 = 0, $960 = 0, $961 = 0, $962 = 0, $963 = 0, $964 = 0, $965 = 0, $966 = 0; var $967 = 0, $968 = 0, $969 = 0, $97 = 0, $970 = 0, $971 = 0, $972 = 0, $973 = 0, $974 = 0, $975 = 0, $976 = 0, $977 = 0, $978 = 0, $979 = 0, $98 = 0, $980 = 0, $981 = 0, $982 = 0, $983 = 0, $984 = 0; var $985 = 0, $986 = 0, $987 = 0, $988 = 0, $989 = 0, $99 = 0, $990 = 0, $991 = 0, $992 = 0, $993 = 0, $994 = 0, $995 = 0, $996 = 0, $997 = 0, $998 = 0, $999 = 0, $F$0$i$i = 0, $F1$0$i = 0, $F4$0 = 0, $F4$0$i$i = 0; var $F5$0$i = 0, $I1$0$i$i = 0, $I7$0$i = 0, $I7$0$i$i = 0, $K12$029$i = 0, $K2$07$i$i = 0, $K8$051$i$i = 0, $R$0$i = 0, $R$0$i$i = 0, $R$0$i$i$lcssa = 0, $R$0$i$lcssa = 0, $R$0$i18 = 0, $R$0$i18$lcssa = 0, $R$1$i = 0, $R$1$i$i = 0, $R$1$i20 = 0, $RP$0$i = 0, $RP$0$i$i = 0, $RP$0$i$i$lcssa = 0, $RP$0$i$lcssa = 0; var $RP$0$i17 = 0, $RP$0$i17$lcssa = 0, $T$0$lcssa$i = 0, $T$0$lcssa$i$i = 0, $T$0$lcssa$i25$i = 0, $T$028$i = 0, $T$028$i$lcssa = 0, $T$050$i$i = 0, $T$050$i$i$lcssa = 0, $T$06$i$i = 0, $T$06$i$i$lcssa = 0, $br$0$ph$i = 0, $cond$i = 0, $cond$i$i = 0, $cond$i21 = 0, $exitcond$i$i = 0, $i$02$i$i = 0, $idx$0$i = 0, $mem$0 = 0, $nb$0 = 0; var $not$$i = 0, $not$$i$i = 0, $not$$i26$i = 0, $oldfirst$0$i$i = 0, $or$cond$i = 0, $or$cond$i30 = 0, $or$cond1$i = 0, $or$cond19$i = 0, $or$cond2$i = 0, $or$cond3$i = 0, $or$cond5$i = 0, $or$cond57$i = 0, $or$cond6$i = 0, $or$cond8$i = 0, $or$cond9$i = 0, $qsize$0$i$i = 0, $rsize$0$i = 0, $rsize$0$i$lcssa = 0, $rsize$0$i15 = 0, $rsize$1$i = 0; var $rsize$2$i = 0, $rsize$3$lcssa$i = 0, $rsize$331$i = 0, $rst$0$i = 0, $rst$1$i = 0, $sizebits$0$i = 0, $sp$0$i$i = 0, $sp$0$i$i$i = 0, $sp$084$i = 0, $sp$084$i$lcssa = 0, $sp$183$i = 0, $sp$183$i$lcssa = 0, $ssize$0$$i = 0, $ssize$0$i = 0, $ssize$1$ph$i = 0, $ssize$2$i = 0, $t$0$i = 0, $t$0$i14 = 0, $t$1$i = 0, $t$2$ph$i = 0; var $t$2$v$3$i = 0, $t$230$i = 0, $tbase$255$i = 0, $tsize$0$ph$i = 0, $tsize$0323944$i = 0, $tsize$1$i = 0, $tsize$254$i = 0, $v$0$i = 0, $v$0$i$lcssa = 0, $v$0$i16 = 0, $v$1$i = 0, $v$2$i = 0, $v$3$lcssa$i = 0, $v$3$ph$i = 0, $v$332$i = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($bytes>>>0)<(245); do { if ($0) { $1 = ($bytes>>>0)<(11); $2 = (($bytes) + 11)|0; $3 = $2 & -8; $4 = $1 ? 16 : $3; $5 = $4 >>> 3; $6 = HEAP32[17488>>2]|0; $7 = $6 >>> $5; $8 = $7 & 3; $9 = ($8|0)==(0); if (!($9)) { $10 = $7 & 1; $11 = $10 ^ 1; $12 = (($11) + ($5))|0; $13 = $12 << 1; $14 = (17528 + ($13<<2)|0); $$sum10 = (($13) + 2)|0; $15 = (17528 + ($$sum10<<2)|0); $16 = HEAP32[$15>>2]|0; $17 = ((($16)) + 8|0); $18 = HEAP32[$17>>2]|0; $19 = ($14|0)==($18|0); do { if ($19) { $20 = 1 << $12; $21 = $20 ^ -1; $22 = $6 & $21; HEAP32[17488>>2] = $22; } else { $23 = HEAP32[(17504)>>2]|0; $24 = ($18>>>0)<($23>>>0); if ($24) { _abort(); // unreachable; } $25 = ((($18)) + 12|0); $26 = HEAP32[$25>>2]|0; $27 = ($26|0)==($16|0); if ($27) { HEAP32[$25>>2] = $14; HEAP32[$15>>2] = $18; break; } else { _abort(); // unreachable; } } } while(0); $28 = $12 << 3; $29 = $28 | 3; $30 = ((($16)) + 4|0); HEAP32[$30>>2] = $29; $$sum1112 = $28 | 4; $31 = (($16) + ($$sum1112)|0); $32 = HEAP32[$31>>2]|0; $33 = $32 | 1; HEAP32[$31>>2] = $33; $mem$0 = $17; return ($mem$0|0); } $34 = HEAP32[(17496)>>2]|0; $35 = ($4>>>0)>($34>>>0); if ($35) { $36 = ($7|0)==(0); if (!($36)) { $37 = $7 << $5; $38 = 2 << $5; $39 = (0 - ($38))|0; $40 = $38 | $39; $41 = $37 & $40; $42 = (0 - ($41))|0; $43 = $41 & $42; $44 = (($43) + -1)|0; $45 = $44 >>> 12; $46 = $45 & 16; $47 = $44 >>> $46; $48 = $47 >>> 5; $49 = $48 & 8; $50 = $49 | $46; $51 = $47 >>> $49; $52 = $51 >>> 2; $53 = $52 & 4; $54 = $50 | $53; $55 = $51 >>> $53; $56 = $55 >>> 1; $57 = $56 & 2; $58 = $54 | $57; $59 = $55 >>> $57; $60 = $59 >>> 1; $61 = $60 & 1; $62 = $58 | $61; $63 = $59 >>> $61; $64 = (($62) + ($63))|0; $65 = $64 << 1; $66 = (17528 + ($65<<2)|0); $$sum4 = (($65) + 2)|0; $67 = (17528 + ($$sum4<<2)|0); $68 = HEAP32[$67>>2]|0; $69 = ((($68)) + 8|0); $70 = HEAP32[$69>>2]|0; $71 = ($66|0)==($70|0); do { if ($71) { $72 = 1 << $64; $73 = $72 ^ -1; $74 = $6 & $73; HEAP32[17488>>2] = $74; $88 = $34; } else { $75 = HEAP32[(17504)>>2]|0; $76 = ($70>>>0)<($75>>>0); if ($76) { _abort(); // unreachable; } $77 = ((($70)) + 12|0); $78 = HEAP32[$77>>2]|0; $79 = ($78|0)==($68|0); if ($79) { HEAP32[$77>>2] = $66; HEAP32[$67>>2] = $70; $$pre = HEAP32[(17496)>>2]|0; $88 = $$pre; break; } else { _abort(); // unreachable; } } } while(0); $80 = $64 << 3; $81 = (($80) - ($4))|0; $82 = $4 | 3; $83 = ((($68)) + 4|0); HEAP32[$83>>2] = $82; $84 = (($68) + ($4)|0); $85 = $81 | 1; $$sum56 = $4 | 4; $86 = (($68) + ($$sum56)|0); HEAP32[$86>>2] = $85; $87 = (($68) + ($80)|0); HEAP32[$87>>2] = $81; $89 = ($88|0)==(0); if (!($89)) { $90 = HEAP32[(17508)>>2]|0; $91 = $88 >>> 3; $92 = $91 << 1; $93 = (17528 + ($92<<2)|0); $94 = HEAP32[17488>>2]|0; $95 = 1 << $91; $96 = $94 & $95; $97 = ($96|0)==(0); if ($97) { $98 = $94 | $95; HEAP32[17488>>2] = $98; $$pre105 = (($92) + 2)|0; $$pre106 = (17528 + ($$pre105<<2)|0); $$pre$phiZ2D = $$pre106;$F4$0 = $93; } else { $$sum9 = (($92) + 2)|0; $99 = (17528 + ($$sum9<<2)|0); $100 = HEAP32[$99>>2]|0; $101 = HEAP32[(17504)>>2]|0; $102 = ($100>>>0)<($101>>>0); if ($102) { _abort(); // unreachable; } else { $$pre$phiZ2D = $99;$F4$0 = $100; } } HEAP32[$$pre$phiZ2D>>2] = $90; $103 = ((($F4$0)) + 12|0); HEAP32[$103>>2] = $90; $104 = ((($90)) + 8|0); HEAP32[$104>>2] = $F4$0; $105 = ((($90)) + 12|0); HEAP32[$105>>2] = $93; } HEAP32[(17496)>>2] = $81; HEAP32[(17508)>>2] = $84; $mem$0 = $69; return ($mem$0|0); } $106 = HEAP32[(17492)>>2]|0; $107 = ($106|0)==(0); if ($107) { $nb$0 = $4; } else { $108 = (0 - ($106))|0; $109 = $106 & $108; $110 = (($109) + -1)|0; $111 = $110 >>> 12; $112 = $111 & 16; $113 = $110 >>> $112; $114 = $113 >>> 5; $115 = $114 & 8; $116 = $115 | $112; $117 = $113 >>> $115; $118 = $117 >>> 2; $119 = $118 & 4; $120 = $116 | $119; $121 = $117 >>> $119; $122 = $121 >>> 1; $123 = $122 & 2; $124 = $120 | $123; $125 = $121 >>> $123; $126 = $125 >>> 1; $127 = $126 & 1; $128 = $124 | $127; $129 = $125 >>> $127; $130 = (($128) + ($129))|0; $131 = (17792 + ($130<<2)|0); $132 = HEAP32[$131>>2]|0; $133 = ((($132)) + 4|0); $134 = HEAP32[$133>>2]|0; $135 = $134 & -8; $136 = (($135) - ($4))|0; $rsize$0$i = $136;$t$0$i = $132;$v$0$i = $132; while(1) { $137 = ((($t$0$i)) + 16|0); $138 = HEAP32[$137>>2]|0; $139 = ($138|0)==(0|0); if ($139) { $140 = ((($t$0$i)) + 20|0); $141 = HEAP32[$140>>2]|0; $142 = ($141|0)==(0|0); if ($142) { $rsize$0$i$lcssa = $rsize$0$i;$v$0$i$lcssa = $v$0$i; break; } else { $144 = $141; } } else { $144 = $138; } $143 = ((($144)) + 4|0); $145 = HEAP32[$143>>2]|0; $146 = $145 & -8; $147 = (($146) - ($4))|0; $148 = ($147>>>0)<($rsize$0$i>>>0); $$rsize$0$i = $148 ? $147 : $rsize$0$i; $$v$0$i = $148 ? $144 : $v$0$i; $rsize$0$i = $$rsize$0$i;$t$0$i = $144;$v$0$i = $$v$0$i; } $149 = HEAP32[(17504)>>2]|0; $150 = ($v$0$i$lcssa>>>0)<($149>>>0); if ($150) { _abort(); // unreachable; } $151 = (($v$0$i$lcssa) + ($4)|0); $152 = ($v$0$i$lcssa>>>0)<($151>>>0); if (!($152)) { _abort(); // unreachable; } $153 = ((($v$0$i$lcssa)) + 24|0); $154 = HEAP32[$153>>2]|0; $155 = ((($v$0$i$lcssa)) + 12|0); $156 = HEAP32[$155>>2]|0; $157 = ($156|0)==($v$0$i$lcssa|0); do { if ($157) { $167 = ((($v$0$i$lcssa)) + 20|0); $168 = HEAP32[$167>>2]|0; $169 = ($168|0)==(0|0); if ($169) { $170 = ((($v$0$i$lcssa)) + 16|0); $171 = HEAP32[$170>>2]|0; $172 = ($171|0)==(0|0); if ($172) { $R$1$i = 0; break; } else { $R$0$i = $171;$RP$0$i = $170; } } else { $R$0$i = $168;$RP$0$i = $167; } while(1) { $173 = ((($R$0$i)) + 20|0); $174 = HEAP32[$173>>2]|0; $175 = ($174|0)==(0|0); if (!($175)) { $R$0$i = $174;$RP$0$i = $173; continue; } $176 = ((($R$0$i)) + 16|0); $177 = HEAP32[$176>>2]|0; $178 = ($177|0)==(0|0); if ($178) { $R$0$i$lcssa = $R$0$i;$RP$0$i$lcssa = $RP$0$i; break; } else { $R$0$i = $177;$RP$0$i = $176; } } $179 = ($RP$0$i$lcssa>>>0)<($149>>>0); if ($179) { _abort(); // unreachable; } else { HEAP32[$RP$0$i$lcssa>>2] = 0; $R$1$i = $R$0$i$lcssa; break; } } else { $158 = ((($v$0$i$lcssa)) + 8|0); $159 = HEAP32[$158>>2]|0; $160 = ($159>>>0)<($149>>>0); if ($160) { _abort(); // unreachable; } $161 = ((($159)) + 12|0); $162 = HEAP32[$161>>2]|0; $163 = ($162|0)==($v$0$i$lcssa|0); if (!($163)) { _abort(); // unreachable; } $164 = ((($156)) + 8|0); $165 = HEAP32[$164>>2]|0; $166 = ($165|0)==($v$0$i$lcssa|0); if ($166) { HEAP32[$161>>2] = $156; HEAP32[$164>>2] = $159; $R$1$i = $156; break; } else { _abort(); // unreachable; } } } while(0); $180 = ($154|0)==(0|0); do { if (!($180)) { $181 = ((($v$0$i$lcssa)) + 28|0); $182 = HEAP32[$181>>2]|0; $183 = (17792 + ($182<<2)|0); $184 = HEAP32[$183>>2]|0; $185 = ($v$0$i$lcssa|0)==($184|0); if ($185) { HEAP32[$183>>2] = $R$1$i; $cond$i = ($R$1$i|0)==(0|0); if ($cond$i) { $186 = 1 << $182; $187 = $186 ^ -1; $188 = HEAP32[(17492)>>2]|0; $189 = $188 & $187; HEAP32[(17492)>>2] = $189; break; } } else { $190 = HEAP32[(17504)>>2]|0; $191 = ($154>>>0)<($190>>>0); if ($191) { _abort(); // unreachable; } $192 = ((($154)) + 16|0); $193 = HEAP32[$192>>2]|0; $194 = ($193|0)==($v$0$i$lcssa|0); if ($194) { HEAP32[$192>>2] = $R$1$i; } else { $195 = ((($154)) + 20|0); HEAP32[$195>>2] = $R$1$i; } $196 = ($R$1$i|0)==(0|0); if ($196) { break; } } $197 = HEAP32[(17504)>>2]|0; $198 = ($R$1$i>>>0)<($197>>>0); if ($198) { _abort(); // unreachable; } $199 = ((($R$1$i)) + 24|0); HEAP32[$199>>2] = $154; $200 = ((($v$0$i$lcssa)) + 16|0); $201 = HEAP32[$200>>2]|0; $202 = ($201|0)==(0|0); do { if (!($202)) { $203 = ($201>>>0)<($197>>>0); if ($203) { _abort(); // unreachable; } else { $204 = ((($R$1$i)) + 16|0); HEAP32[$204>>2] = $201; $205 = ((($201)) + 24|0); HEAP32[$205>>2] = $R$1$i; break; } } } while(0); $206 = ((($v$0$i$lcssa)) + 20|0); $207 = HEAP32[$206>>2]|0; $208 = ($207|0)==(0|0); if (!($208)) { $209 = HEAP32[(17504)>>2]|0; $210 = ($207>>>0)<($209>>>0); if ($210) { _abort(); // unreachable; } else { $211 = ((($R$1$i)) + 20|0); HEAP32[$211>>2] = $207; $212 = ((($207)) + 24|0); HEAP32[$212>>2] = $R$1$i; break; } } } } while(0); $213 = ($rsize$0$i$lcssa>>>0)<(16); if ($213) { $214 = (($rsize$0$i$lcssa) + ($4))|0; $215 = $214 | 3; $216 = ((($v$0$i$lcssa)) + 4|0); HEAP32[$216>>2] = $215; $$sum4$i = (($214) + 4)|0; $217 = (($v$0$i$lcssa) + ($$sum4$i)|0); $218 = HEAP32[$217>>2]|0; $219 = $218 | 1; HEAP32[$217>>2] = $219; } else { $220 = $4 | 3; $221 = ((($v$0$i$lcssa)) + 4|0); HEAP32[$221>>2] = $220; $222 = $rsize$0$i$lcssa | 1; $$sum$i35 = $4 | 4; $223 = (($v$0$i$lcssa) + ($$sum$i35)|0); HEAP32[$223>>2] = $222; $$sum1$i = (($rsize$0$i$lcssa) + ($4))|0; $224 = (($v$0$i$lcssa) + ($$sum1$i)|0); HEAP32[$224>>2] = $rsize$0$i$lcssa; $225 = HEAP32[(17496)>>2]|0; $226 = ($225|0)==(0); if (!($226)) { $227 = HEAP32[(17508)>>2]|0; $228 = $225 >>> 3; $229 = $228 << 1; $230 = (17528 + ($229<<2)|0); $231 = HEAP32[17488>>2]|0; $232 = 1 << $228; $233 = $231 & $232; $234 = ($233|0)==(0); if ($234) { $235 = $231 | $232; HEAP32[17488>>2] = $235; $$pre$i = (($229) + 2)|0; $$pre8$i = (17528 + ($$pre$i<<2)|0); $$pre$phi$iZ2D = $$pre8$i;$F1$0$i = $230; } else { $$sum3$i = (($229) + 2)|0; $236 = (17528 + ($$sum3$i<<2)|0); $237 = HEAP32[$236>>2]|0; $238 = HEAP32[(17504)>>2]|0; $239 = ($237>>>0)<($238>>>0); if ($239) { _abort(); // unreachable; } else { $$pre$phi$iZ2D = $236;$F1$0$i = $237; } } HEAP32[$$pre$phi$iZ2D>>2] = $227; $240 = ((($F1$0$i)) + 12|0); HEAP32[$240>>2] = $227; $241 = ((($227)) + 8|0); HEAP32[$241>>2] = $F1$0$i; $242 = ((($227)) + 12|0); HEAP32[$242>>2] = $230; } HEAP32[(17496)>>2] = $rsize$0$i$lcssa; HEAP32[(17508)>>2] = $151; } $243 = ((($v$0$i$lcssa)) + 8|0); $mem$0 = $243; return ($mem$0|0); } } else { $nb$0 = $4; } } else { $244 = ($bytes>>>0)>(4294967231); if ($244) { $nb$0 = -1; } else { $245 = (($bytes) + 11)|0; $246 = $245 & -8; $247 = HEAP32[(17492)>>2]|0; $248 = ($247|0)==(0); if ($248) { $nb$0 = $246; } else { $249 = (0 - ($246))|0; $250 = $245 >>> 8; $251 = ($250|0)==(0); if ($251) { $idx$0$i = 0; } else { $252 = ($246>>>0)>(16777215); if ($252) { $idx$0$i = 31; } else { $253 = (($250) + 1048320)|0; $254 = $253 >>> 16; $255 = $254 & 8; $256 = $250 << $255; $257 = (($256) + 520192)|0; $258 = $257 >>> 16; $259 = $258 & 4; $260 = $259 | $255; $261 = $256 << $259; $262 = (($261) + 245760)|0; $263 = $262 >>> 16; $264 = $263 & 2; $265 = $260 | $264; $266 = (14 - ($265))|0; $267 = $261 << $264; $268 = $267 >>> 15; $269 = (($266) + ($268))|0; $270 = $269 << 1; $271 = (($269) + 7)|0; $272 = $246 >>> $271; $273 = $272 & 1; $274 = $273 | $270; $idx$0$i = $274; } } $275 = (17792 + ($idx$0$i<<2)|0); $276 = HEAP32[$275>>2]|0; $277 = ($276|0)==(0|0); L123: do { if ($277) { $rsize$2$i = $249;$t$1$i = 0;$v$2$i = 0; label = 86; } else { $278 = ($idx$0$i|0)==(31); $279 = $idx$0$i >>> 1; $280 = (25 - ($279))|0; $281 = $278 ? 0 : $280; $282 = $246 << $281; $rsize$0$i15 = $249;$rst$0$i = 0;$sizebits$0$i = $282;$t$0$i14 = $276;$v$0$i16 = 0; while(1) { $283 = ((($t$0$i14)) + 4|0); $284 = HEAP32[$283>>2]|0; $285 = $284 & -8; $286 = (($285) - ($246))|0; $287 = ($286>>>0)<($rsize$0$i15>>>0); if ($287) { $288 = ($285|0)==($246|0); if ($288) { $rsize$331$i = $286;$t$230$i = $t$0$i14;$v$332$i = $t$0$i14; label = 90; break L123; } else { $rsize$1$i = $286;$v$1$i = $t$0$i14; } } else { $rsize$1$i = $rsize$0$i15;$v$1$i = $v$0$i16; } $289 = ((($t$0$i14)) + 20|0); $290 = HEAP32[$289>>2]|0; $291 = $sizebits$0$i >>> 31; $292 = (((($t$0$i14)) + 16|0) + ($291<<2)|0); $293 = HEAP32[$292>>2]|0; $294 = ($290|0)==(0|0); $295 = ($290|0)==($293|0); $or$cond19$i = $294 | $295; $rst$1$i = $or$cond19$i ? $rst$0$i : $290; $296 = ($293|0)==(0|0); $297 = $sizebits$0$i << 1; if ($296) { $rsize$2$i = $rsize$1$i;$t$1$i = $rst$1$i;$v$2$i = $v$1$i; label = 86; break; } else { $rsize$0$i15 = $rsize$1$i;$rst$0$i = $rst$1$i;$sizebits$0$i = $297;$t$0$i14 = $293;$v$0$i16 = $v$1$i; } } } } while(0); if ((label|0) == 86) { $298 = ($t$1$i|0)==(0|0); $299 = ($v$2$i|0)==(0|0); $or$cond$i = $298 & $299; if ($or$cond$i) { $300 = 2 << $idx$0$i; $301 = (0 - ($300))|0; $302 = $300 | $301; $303 = $247 & $302; $304 = ($303|0)==(0); if ($304) { $nb$0 = $246; break; } $305 = (0 - ($303))|0; $306 = $303 & $305; $307 = (($306) + -1)|0; $308 = $307 >>> 12; $309 = $308 & 16; $310 = $307 >>> $309; $311 = $310 >>> 5; $312 = $311 & 8; $313 = $312 | $309; $314 = $310 >>> $312; $315 = $314 >>> 2; $316 = $315 & 4; $317 = $313 | $316; $318 = $314 >>> $316; $319 = $318 >>> 1; $320 = $319 & 2; $321 = $317 | $320; $322 = $318 >>> $320; $323 = $322 >>> 1; $324 = $323 & 1; $325 = $321 | $324; $326 = $322 >>> $324; $327 = (($325) + ($326))|0; $328 = (17792 + ($327<<2)|0); $329 = HEAP32[$328>>2]|0; $t$2$ph$i = $329;$v$3$ph$i = 0; } else { $t$2$ph$i = $t$1$i;$v$3$ph$i = $v$2$i; } $330 = ($t$2$ph$i|0)==(0|0); if ($330) { $rsize$3$lcssa$i = $rsize$2$i;$v$3$lcssa$i = $v$3$ph$i; } else { $rsize$331$i = $rsize$2$i;$t$230$i = $t$2$ph$i;$v$332$i = $v$3$ph$i; label = 90; } } if ((label|0) == 90) { while(1) { label = 0; $331 = ((($t$230$i)) + 4|0); $332 = HEAP32[$331>>2]|0; $333 = $332 & -8; $334 = (($333) - ($246))|0; $335 = ($334>>>0)<($rsize$331$i>>>0); $$rsize$3$i = $335 ? $334 : $rsize$331$i; $t$2$v$3$i = $335 ? $t$230$i : $v$332$i; $336 = ((($t$230$i)) + 16|0); $337 = HEAP32[$336>>2]|0; $338 = ($337|0)==(0|0); if (!($338)) { $rsize$331$i = $$rsize$3$i;$t$230$i = $337;$v$332$i = $t$2$v$3$i; label = 90; continue; } $339 = ((($t$230$i)) + 20|0); $340 = HEAP32[$339>>2]|0; $341 = ($340|0)==(0|0); if ($341) { $rsize$3$lcssa$i = $$rsize$3$i;$v$3$lcssa$i = $t$2$v$3$i; break; } else { $rsize$331$i = $$rsize$3$i;$t$230$i = $340;$v$332$i = $t$2$v$3$i; label = 90; } } } $342 = ($v$3$lcssa$i|0)==(0|0); if ($342) { $nb$0 = $246; } else { $343 = HEAP32[(17496)>>2]|0; $344 = (($343) - ($246))|0; $345 = ($rsize$3$lcssa$i>>>0)<($344>>>0); if ($345) { $346 = HEAP32[(17504)>>2]|0; $347 = ($v$3$lcssa$i>>>0)<($346>>>0); if ($347) { _abort(); // unreachable; } $348 = (($v$3$lcssa$i) + ($246)|0); $349 = ($v$3$lcssa$i>>>0)<($348>>>0); if (!($349)) { _abort(); // unreachable; } $350 = ((($v$3$lcssa$i)) + 24|0); $351 = HEAP32[$350>>2]|0; $352 = ((($v$3$lcssa$i)) + 12|0); $353 = HEAP32[$352>>2]|0; $354 = ($353|0)==($v$3$lcssa$i|0); do { if ($354) { $364 = ((($v$3$lcssa$i)) + 20|0); $365 = HEAP32[$364>>2]|0; $366 = ($365|0)==(0|0); if ($366) { $367 = ((($v$3$lcssa$i)) + 16|0); $368 = HEAP32[$367>>2]|0; $369 = ($368|0)==(0|0); if ($369) { $R$1$i20 = 0; break; } else { $R$0$i18 = $368;$RP$0$i17 = $367; } } else { $R$0$i18 = $365;$RP$0$i17 = $364; } while(1) { $370 = ((($R$0$i18)) + 20|0); $371 = HEAP32[$370>>2]|0; $372 = ($371|0)==(0|0); if (!($372)) { $R$0$i18 = $371;$RP$0$i17 = $370; continue; } $373 = ((($R$0$i18)) + 16|0); $374 = HEAP32[$373>>2]|0; $375 = ($374|0)==(0|0); if ($375) { $R$0$i18$lcssa = $R$0$i18;$RP$0$i17$lcssa = $RP$0$i17; break; } else { $R$0$i18 = $374;$RP$0$i17 = $373; } } $376 = ($RP$0$i17$lcssa>>>0)<($346>>>0); if ($376) { _abort(); // unreachable; } else { HEAP32[$RP$0$i17$lcssa>>2] = 0; $R$1$i20 = $R$0$i18$lcssa; break; } } else { $355 = ((($v$3$lcssa$i)) + 8|0); $356 = HEAP32[$355>>2]|0; $357 = ($356>>>0)<($346>>>0); if ($357) { _abort(); // unreachable; } $358 = ((($356)) + 12|0); $359 = HEAP32[$358>>2]|0; $360 = ($359|0)==($v$3$lcssa$i|0); if (!($360)) { _abort(); // unreachable; } $361 = ((($353)) + 8|0); $362 = HEAP32[$361>>2]|0; $363 = ($362|0)==($v$3$lcssa$i|0); if ($363) { HEAP32[$358>>2] = $353; HEAP32[$361>>2] = $356; $R$1$i20 = $353; break; } else { _abort(); // unreachable; } } } while(0); $377 = ($351|0)==(0|0); do { if (!($377)) { $378 = ((($v$3$lcssa$i)) + 28|0); $379 = HEAP32[$378>>2]|0; $380 = (17792 + ($379<<2)|0); $381 = HEAP32[$380>>2]|0; $382 = ($v$3$lcssa$i|0)==($381|0); if ($382) { HEAP32[$380>>2] = $R$1$i20; $cond$i21 = ($R$1$i20|0)==(0|0); if ($cond$i21) { $383 = 1 << $379; $384 = $383 ^ -1; $385 = HEAP32[(17492)>>2]|0; $386 = $385 & $384; HEAP32[(17492)>>2] = $386; break; } } else { $387 = HEAP32[(17504)>>2]|0; $388 = ($351>>>0)<($387>>>0); if ($388) { _abort(); // unreachable; } $389 = ((($351)) + 16|0); $390 = HEAP32[$389>>2]|0; $391 = ($390|0)==($v$3$lcssa$i|0); if ($391) { HEAP32[$389>>2] = $R$1$i20; } else { $392 = ((($351)) + 20|0); HEAP32[$392>>2] = $R$1$i20; } $393 = ($R$1$i20|0)==(0|0); if ($393) { break; } } $394 = HEAP32[(17504)>>2]|0; $395 = ($R$1$i20>>>0)<($394>>>0); if ($395) { _abort(); // unreachable; } $396 = ((($R$1$i20)) + 24|0); HEAP32[$396>>2] = $351; $397 = ((($v$3$lcssa$i)) + 16|0); $398 = HEAP32[$397>>2]|0; $399 = ($398|0)==(0|0); do { if (!($399)) { $400 = ($398>>>0)<($394>>>0); if ($400) { _abort(); // unreachable; } else { $401 = ((($R$1$i20)) + 16|0); HEAP32[$401>>2] = $398; $402 = ((($398)) + 24|0); HEAP32[$402>>2] = $R$1$i20; break; } } } while(0); $403 = ((($v$3$lcssa$i)) + 20|0); $404 = HEAP32[$403>>2]|0; $405 = ($404|0)==(0|0); if (!($405)) { $406 = HEAP32[(17504)>>2]|0; $407 = ($404>>>0)<($406>>>0); if ($407) { _abort(); // unreachable; } else { $408 = ((($R$1$i20)) + 20|0); HEAP32[$408>>2] = $404; $409 = ((($404)) + 24|0); HEAP32[$409>>2] = $R$1$i20; break; } } } } while(0); $410 = ($rsize$3$lcssa$i>>>0)<(16); L199: do { if ($410) { $411 = (($rsize$3$lcssa$i) + ($246))|0; $412 = $411 | 3; $413 = ((($v$3$lcssa$i)) + 4|0); HEAP32[$413>>2] = $412; $$sum18$i = (($411) + 4)|0; $414 = (($v$3$lcssa$i) + ($$sum18$i)|0); $415 = HEAP32[$414>>2]|0; $416 = $415 | 1; HEAP32[$414>>2] = $416; } else { $417 = $246 | 3; $418 = ((($v$3$lcssa$i)) + 4|0); HEAP32[$418>>2] = $417; $419 = $rsize$3$lcssa$i | 1; $$sum$i2334 = $246 | 4; $420 = (($v$3$lcssa$i) + ($$sum$i2334)|0); HEAP32[$420>>2] = $419; $$sum1$i24 = (($rsize$3$lcssa$i) + ($246))|0; $421 = (($v$3$lcssa$i) + ($$sum1$i24)|0); HEAP32[$421>>2] = $rsize$3$lcssa$i; $422 = $rsize$3$lcssa$i >>> 3; $423 = ($rsize$3$lcssa$i>>>0)<(256); if ($423) { $424 = $422 << 1; $425 = (17528 + ($424<<2)|0); $426 = HEAP32[17488>>2]|0; $427 = 1 << $422; $428 = $426 & $427; $429 = ($428|0)==(0); if ($429) { $430 = $426 | $427; HEAP32[17488>>2] = $430; $$pre$i25 = (($424) + 2)|0; $$pre43$i = (17528 + ($$pre$i25<<2)|0); $$pre$phi$i26Z2D = $$pre43$i;$F5$0$i = $425; } else { $$sum17$i = (($424) + 2)|0; $431 = (17528 + ($$sum17$i<<2)|0); $432 = HEAP32[$431>>2]|0; $433 = HEAP32[(17504)>>2]|0; $434 = ($432>>>0)<($433>>>0); if ($434) { _abort(); // unreachable; } else { $$pre$phi$i26Z2D = $431;$F5$0$i = $432; } } HEAP32[$$pre$phi$i26Z2D>>2] = $348; $435 = ((($F5$0$i)) + 12|0); HEAP32[$435>>2] = $348; $$sum15$i = (($246) + 8)|0; $436 = (($v$3$lcssa$i) + ($$sum15$i)|0); HEAP32[$436>>2] = $F5$0$i; $$sum16$i = (($246) + 12)|0; $437 = (($v$3$lcssa$i) + ($$sum16$i)|0); HEAP32[$437>>2] = $425; break; } $438 = $rsize$3$lcssa$i >>> 8; $439 = ($438|0)==(0); if ($439) { $I7$0$i = 0; } else { $440 = ($rsize$3$lcssa$i>>>0)>(16777215); if ($440) { $I7$0$i = 31; } else { $441 = (($438) + 1048320)|0; $442 = $441 >>> 16; $443 = $442 & 8; $444 = $438 << $443; $445 = (($444) + 520192)|0; $446 = $445 >>> 16; $447 = $446 & 4; $448 = $447 | $443; $449 = $444 << $447; $450 = (($449) + 245760)|0; $451 = $450 >>> 16; $452 = $451 & 2; $453 = $448 | $452; $454 = (14 - ($453))|0; $455 = $449 << $452; $456 = $455 >>> 15; $457 = (($454) + ($456))|0; $458 = $457 << 1; $459 = (($457) + 7)|0; $460 = $rsize$3$lcssa$i >>> $459; $461 = $460 & 1; $462 = $461 | $458; $I7$0$i = $462; } } $463 = (17792 + ($I7$0$i<<2)|0); $$sum2$i = (($246) + 28)|0; $464 = (($v$3$lcssa$i) + ($$sum2$i)|0); HEAP32[$464>>2] = $I7$0$i; $$sum3$i27 = (($246) + 16)|0; $465 = (($v$3$lcssa$i) + ($$sum3$i27)|0); $$sum4$i28 = (($246) + 20)|0; $466 = (($v$3$lcssa$i) + ($$sum4$i28)|0); HEAP32[$466>>2] = 0; HEAP32[$465>>2] = 0; $467 = HEAP32[(17492)>>2]|0; $468 = 1 << $I7$0$i; $469 = $467 & $468; $470 = ($469|0)==(0); if ($470) { $471 = $467 | $468; HEAP32[(17492)>>2] = $471; HEAP32[$463>>2] = $348; $$sum5$i = (($246) + 24)|0; $472 = (($v$3$lcssa$i) + ($$sum5$i)|0); HEAP32[$472>>2] = $463; $$sum6$i = (($246) + 12)|0; $473 = (($v$3$lcssa$i) + ($$sum6$i)|0); HEAP32[$473>>2] = $348; $$sum7$i = (($246) + 8)|0; $474 = (($v$3$lcssa$i) + ($$sum7$i)|0); HEAP32[$474>>2] = $348; break; } $475 = HEAP32[$463>>2]|0; $476 = ((($475)) + 4|0); $477 = HEAP32[$476>>2]|0; $478 = $477 & -8; $479 = ($478|0)==($rsize$3$lcssa$i|0); L216: do { if ($479) { $T$0$lcssa$i = $475; } else { $480 = ($I7$0$i|0)==(31); $481 = $I7$0$i >>> 1; $482 = (25 - ($481))|0; $483 = $480 ? 0 : $482; $484 = $rsize$3$lcssa$i << $483; $K12$029$i = $484;$T$028$i = $475; while(1) { $491 = $K12$029$i >>> 31; $492 = (((($T$028$i)) + 16|0) + ($491<<2)|0); $487 = HEAP32[$492>>2]|0; $493 = ($487|0)==(0|0); if ($493) { $$lcssa232 = $492;$T$028$i$lcssa = $T$028$i; break; } $485 = $K12$029$i << 1; $486 = ((($487)) + 4|0); $488 = HEAP32[$486>>2]|0; $489 = $488 & -8; $490 = ($489|0)==($rsize$3$lcssa$i|0); if ($490) { $T$0$lcssa$i = $487; break L216; } else { $K12$029$i = $485;$T$028$i = $487; } } $494 = HEAP32[(17504)>>2]|0; $495 = ($$lcssa232>>>0)<($494>>>0); if ($495) { _abort(); // unreachable; } else { HEAP32[$$lcssa232>>2] = $348; $$sum11$i = (($246) + 24)|0; $496 = (($v$3$lcssa$i) + ($$sum11$i)|0); HEAP32[$496>>2] = $T$028$i$lcssa; $$sum12$i = (($246) + 12)|0; $497 = (($v$3$lcssa$i) + ($$sum12$i)|0); HEAP32[$497>>2] = $348; $$sum13$i = (($246) + 8)|0; $498 = (($v$3$lcssa$i) + ($$sum13$i)|0); HEAP32[$498>>2] = $348; break L199; } } } while(0); $499 = ((($T$0$lcssa$i)) + 8|0); $500 = HEAP32[$499>>2]|0; $501 = HEAP32[(17504)>>2]|0; $502 = ($500>>>0)>=($501>>>0); $not$$i = ($T$0$lcssa$i>>>0)>=($501>>>0); $503 = $502 & $not$$i; if ($503) { $504 = ((($500)) + 12|0); HEAP32[$504>>2] = $348; HEAP32[$499>>2] = $348; $$sum8$i = (($246) + 8)|0; $505 = (($v$3$lcssa$i) + ($$sum8$i)|0); HEAP32[$505>>2] = $500; $$sum9$i = (($246) + 12)|0; $506 = (($v$3$lcssa$i) + ($$sum9$i)|0); HEAP32[$506>>2] = $T$0$lcssa$i; $$sum10$i = (($246) + 24)|0; $507 = (($v$3$lcssa$i) + ($$sum10$i)|0); HEAP32[$507>>2] = 0; break; } else { _abort(); // unreachable; } } } while(0); $508 = ((($v$3$lcssa$i)) + 8|0); $mem$0 = $508; return ($mem$0|0); } else { $nb$0 = $246; } } } } } } while(0); $509 = HEAP32[(17496)>>2]|0; $510 = ($509>>>0)<($nb$0>>>0); if (!($510)) { $511 = (($509) - ($nb$0))|0; $512 = HEAP32[(17508)>>2]|0; $513 = ($511>>>0)>(15); if ($513) { $514 = (($512) + ($nb$0)|0); HEAP32[(17508)>>2] = $514; HEAP32[(17496)>>2] = $511; $515 = $511 | 1; $$sum2 = (($nb$0) + 4)|0; $516 = (($512) + ($$sum2)|0); HEAP32[$516>>2] = $515; $517 = (($512) + ($509)|0); HEAP32[$517>>2] = $511; $518 = $nb$0 | 3; $519 = ((($512)) + 4|0); HEAP32[$519>>2] = $518; } else { HEAP32[(17496)>>2] = 0; HEAP32[(17508)>>2] = 0; $520 = $509 | 3; $521 = ((($512)) + 4|0); HEAP32[$521>>2] = $520; $$sum1 = (($509) + 4)|0; $522 = (($512) + ($$sum1)|0); $523 = HEAP32[$522>>2]|0; $524 = $523 | 1; HEAP32[$522>>2] = $524; } $525 = ((($512)) + 8|0); $mem$0 = $525; return ($mem$0|0); } $526 = HEAP32[(17500)>>2]|0; $527 = ($526>>>0)>($nb$0>>>0); if ($527) { $528 = (($526) - ($nb$0))|0; HEAP32[(17500)>>2] = $528; $529 = HEAP32[(17512)>>2]|0; $530 = (($529) + ($nb$0)|0); HEAP32[(17512)>>2] = $530; $531 = $528 | 1; $$sum = (($nb$0) + 4)|0; $532 = (($529) + ($$sum)|0); HEAP32[$532>>2] = $531; $533 = $nb$0 | 3; $534 = ((($529)) + 4|0); HEAP32[$534>>2] = $533; $535 = ((($529)) + 8|0); $mem$0 = $535; return ($mem$0|0); } $536 = HEAP32[17960>>2]|0; $537 = ($536|0)==(0); do { if ($537) { $538 = (_sysconf(30)|0); $539 = (($538) + -1)|0; $540 = $539 & $538; $541 = ($540|0)==(0); if ($541) { HEAP32[(17968)>>2] = $538; HEAP32[(17964)>>2] = $538; HEAP32[(17972)>>2] = -1; HEAP32[(17976)>>2] = -1; HEAP32[(17980)>>2] = 0; HEAP32[(17932)>>2] = 0; $542 = (_time((0|0))|0); $543 = $542 & -16; $544 = $543 ^ 1431655768; HEAP32[17960>>2] = $544; break; } else { _abort(); // unreachable; } } } while(0); $545 = (($nb$0) + 48)|0; $546 = HEAP32[(17968)>>2]|0; $547 = (($nb$0) + 47)|0; $548 = (($546) + ($547))|0; $549 = (0 - ($546))|0; $550 = $548 & $549; $551 = ($550>>>0)>($nb$0>>>0); if (!($551)) { $mem$0 = 0; return ($mem$0|0); } $552 = HEAP32[(17928)>>2]|0; $553 = ($552|0)==(0); if (!($553)) { $554 = HEAP32[(17920)>>2]|0; $555 = (($554) + ($550))|0; $556 = ($555>>>0)<=($554>>>0); $557 = ($555>>>0)>($552>>>0); $or$cond1$i = $556 | $557; if ($or$cond1$i) { $mem$0 = 0; return ($mem$0|0); } } $558 = HEAP32[(17932)>>2]|0; $559 = $558 & 4; $560 = ($559|0)==(0); L258: do { if ($560) { $561 = HEAP32[(17512)>>2]|0; $562 = ($561|0)==(0|0); L260: do { if ($562) { label = 174; } else { $sp$0$i$i = (17936); while(1) { $563 = HEAP32[$sp$0$i$i>>2]|0; $564 = ($563>>>0)>($561>>>0); if (!($564)) { $565 = ((($sp$0$i$i)) + 4|0); $566 = HEAP32[$565>>2]|0; $567 = (($563) + ($566)|0); $568 = ($567>>>0)>($561>>>0); if ($568) { $$lcssa228 = $sp$0$i$i;$$lcssa230 = $565; break; } } $569 = ((($sp$0$i$i)) + 8|0); $570 = HEAP32[$569>>2]|0; $571 = ($570|0)==(0|0); if ($571) { label = 174; break L260; } else { $sp$0$i$i = $570; } } $594 = HEAP32[(17500)>>2]|0; $595 = (($548) - ($594))|0; $596 = $595 & $549; $597 = ($596>>>0)<(2147483647); if ($597) { $598 = (_sbrk(($596|0))|0); $599 = HEAP32[$$lcssa228>>2]|0; $600 = HEAP32[$$lcssa230>>2]|0; $601 = (($599) + ($600)|0); $602 = ($598|0)==($601|0); $$3$i = $602 ? $596 : 0; if ($602) { $603 = ($598|0)==((-1)|0); if ($603) { $tsize$0323944$i = $$3$i; } else { $tbase$255$i = $598;$tsize$254$i = $$3$i; label = 194; break L258; } } else { $br$0$ph$i = $598;$ssize$1$ph$i = $596;$tsize$0$ph$i = $$3$i; label = 184; } } else { $tsize$0323944$i = 0; } } } while(0); do { if ((label|0) == 174) { $572 = (_sbrk(0)|0); $573 = ($572|0)==((-1)|0); if ($573) { $tsize$0323944$i = 0; } else { $574 = $572; $575 = HEAP32[(17964)>>2]|0; $576 = (($575) + -1)|0; $577 = $576 & $574; $578 = ($577|0)==(0); if ($578) { $ssize$0$i = $550; } else { $579 = (($576) + ($574))|0; $580 = (0 - ($575))|0; $581 = $579 & $580; $582 = (($550) - ($574))|0; $583 = (($582) + ($581))|0; $ssize$0$i = $583; } $584 = HEAP32[(17920)>>2]|0; $585 = (($584) + ($ssize$0$i))|0; $586 = ($ssize$0$i>>>0)>($nb$0>>>0); $587 = ($ssize$0$i>>>0)<(2147483647); $or$cond$i30 = $586 & $587; if ($or$cond$i30) { $588 = HEAP32[(17928)>>2]|0; $589 = ($588|0)==(0); if (!($589)) { $590 = ($585>>>0)<=($584>>>0); $591 = ($585>>>0)>($588>>>0); $or$cond2$i = $590 | $591; if ($or$cond2$i) { $tsize$0323944$i = 0; break; } } $592 = (_sbrk(($ssize$0$i|0))|0); $593 = ($592|0)==($572|0); $ssize$0$$i = $593 ? $ssize$0$i : 0; if ($593) { $tbase$255$i = $572;$tsize$254$i = $ssize$0$$i; label = 194; break L258; } else { $br$0$ph$i = $592;$ssize$1$ph$i = $ssize$0$i;$tsize$0$ph$i = $ssize$0$$i; label = 184; } } else { $tsize$0323944$i = 0; } } } } while(0); L280: do { if ((label|0) == 184) { $604 = (0 - ($ssize$1$ph$i))|0; $605 = ($br$0$ph$i|0)!=((-1)|0); $606 = ($ssize$1$ph$i>>>0)<(2147483647); $or$cond5$i = $606 & $605; $607 = ($545>>>0)>($ssize$1$ph$i>>>0); $or$cond6$i = $607 & $or$cond5$i; do { if ($or$cond6$i) { $608 = HEAP32[(17968)>>2]|0; $609 = (($547) - ($ssize$1$ph$i))|0; $610 = (($609) + ($608))|0; $611 = (0 - ($608))|0; $612 = $610 & $611; $613 = ($612>>>0)<(2147483647); if ($613) { $614 = (_sbrk(($612|0))|0); $615 = ($614|0)==((-1)|0); if ($615) { (_sbrk(($604|0))|0); $tsize$0323944$i = $tsize$0$ph$i; break L280; } else { $616 = (($612) + ($ssize$1$ph$i))|0; $ssize$2$i = $616; break; } } else { $ssize$2$i = $ssize$1$ph$i; } } else { $ssize$2$i = $ssize$1$ph$i; } } while(0); $617 = ($br$0$ph$i|0)==((-1)|0); if ($617) { $tsize$0323944$i = $tsize$0$ph$i; } else { $tbase$255$i = $br$0$ph$i;$tsize$254$i = $ssize$2$i; label = 194; break L258; } } } while(0); $618 = HEAP32[(17932)>>2]|0; $619 = $618 | 4; HEAP32[(17932)>>2] = $619; $tsize$1$i = $tsize$0323944$i; label = 191; } else { $tsize$1$i = 0; label = 191; } } while(0); if ((label|0) == 191) { $620 = ($550>>>0)<(2147483647); if ($620) { $621 = (_sbrk(($550|0))|0); $622 = (_sbrk(0)|0); $623 = ($621|0)!=((-1)|0); $624 = ($622|0)!=((-1)|0); $or$cond3$i = $623 & $624; $625 = ($621>>>0)<($622>>>0); $or$cond8$i = $625 & $or$cond3$i; if ($or$cond8$i) { $626 = $622; $627 = $621; $628 = (($626) - ($627))|0; $629 = (($nb$0) + 40)|0; $630 = ($628>>>0)>($629>>>0); $$tsize$1$i = $630 ? $628 : $tsize$1$i; if ($630) { $tbase$255$i = $621;$tsize$254$i = $$tsize$1$i; label = 194; } } } } if ((label|0) == 194) { $631 = HEAP32[(17920)>>2]|0; $632 = (($631) + ($tsize$254$i))|0; HEAP32[(17920)>>2] = $632; $633 = HEAP32[(17924)>>2]|0; $634 = ($632>>>0)>($633>>>0); if ($634) { HEAP32[(17924)>>2] = $632; } $635 = HEAP32[(17512)>>2]|0; $636 = ($635|0)==(0|0); L299: do { if ($636) { $637 = HEAP32[(17504)>>2]|0; $638 = ($637|0)==(0|0); $639 = ($tbase$255$i>>>0)<($637>>>0); $or$cond9$i = $638 | $639; if ($or$cond9$i) { HEAP32[(17504)>>2] = $tbase$255$i; } HEAP32[(17936)>>2] = $tbase$255$i; HEAP32[(17940)>>2] = $tsize$254$i; HEAP32[(17948)>>2] = 0; $640 = HEAP32[17960>>2]|0; HEAP32[(17524)>>2] = $640; HEAP32[(17520)>>2] = -1; $i$02$i$i = 0; while(1) { $641 = $i$02$i$i << 1; $642 = (17528 + ($641<<2)|0); $$sum$i$i = (($641) + 3)|0; $643 = (17528 + ($$sum$i$i<<2)|0); HEAP32[$643>>2] = $642; $$sum1$i$i = (($641) + 2)|0; $644 = (17528 + ($$sum1$i$i<<2)|0); HEAP32[$644>>2] = $642; $645 = (($i$02$i$i) + 1)|0; $exitcond$i$i = ($645|0)==(32); if ($exitcond$i$i) { break; } else { $i$02$i$i = $645; } } $646 = (($tsize$254$i) + -40)|0; $647 = ((($tbase$255$i)) + 8|0); $648 = $647; $649 = $648 & 7; $650 = ($649|0)==(0); $651 = (0 - ($648))|0; $652 = $651 & 7; $653 = $650 ? 0 : $652; $654 = (($tbase$255$i) + ($653)|0); $655 = (($646) - ($653))|0; HEAP32[(17512)>>2] = $654; HEAP32[(17500)>>2] = $655; $656 = $655 | 1; $$sum$i13$i = (($653) + 4)|0; $657 = (($tbase$255$i) + ($$sum$i13$i)|0); HEAP32[$657>>2] = $656; $$sum2$i$i = (($tsize$254$i) + -36)|0; $658 = (($tbase$255$i) + ($$sum2$i$i)|0); HEAP32[$658>>2] = 40; $659 = HEAP32[(17976)>>2]|0; HEAP32[(17516)>>2] = $659; } else { $sp$084$i = (17936); while(1) { $660 = HEAP32[$sp$084$i>>2]|0; $661 = ((($sp$084$i)) + 4|0); $662 = HEAP32[$661>>2]|0; $663 = (($660) + ($662)|0); $664 = ($tbase$255$i|0)==($663|0); if ($664) { $$lcssa222 = $660;$$lcssa224 = $661;$$lcssa226 = $662;$sp$084$i$lcssa = $sp$084$i; label = 204; break; } $665 = ((($sp$084$i)) + 8|0); $666 = HEAP32[$665>>2]|0; $667 = ($666|0)==(0|0); if ($667) { break; } else { $sp$084$i = $666; } } if ((label|0) == 204) { $668 = ((($sp$084$i$lcssa)) + 12|0); $669 = HEAP32[$668>>2]|0; $670 = $669 & 8; $671 = ($670|0)==(0); if ($671) { $672 = ($635>>>0)>=($$lcssa222>>>0); $673 = ($635>>>0)<($tbase$255$i>>>0); $or$cond57$i = $673 & $672; if ($or$cond57$i) { $674 = (($$lcssa226) + ($tsize$254$i))|0; HEAP32[$$lcssa224>>2] = $674; $675 = HEAP32[(17500)>>2]|0; $676 = (($675) + ($tsize$254$i))|0; $677 = ((($635)) + 8|0); $678 = $677; $679 = $678 & 7; $680 = ($679|0)==(0); $681 = (0 - ($678))|0; $682 = $681 & 7; $683 = $680 ? 0 : $682; $684 = (($635) + ($683)|0); $685 = (($676) - ($683))|0; HEAP32[(17512)>>2] = $684; HEAP32[(17500)>>2] = $685; $686 = $685 | 1; $$sum$i17$i = (($683) + 4)|0; $687 = (($635) + ($$sum$i17$i)|0); HEAP32[$687>>2] = $686; $$sum2$i18$i = (($676) + 4)|0; $688 = (($635) + ($$sum2$i18$i)|0); HEAP32[$688>>2] = 40; $689 = HEAP32[(17976)>>2]|0; HEAP32[(17516)>>2] = $689; break; } } } $690 = HEAP32[(17504)>>2]|0; $691 = ($tbase$255$i>>>0)<($690>>>0); if ($691) { HEAP32[(17504)>>2] = $tbase$255$i; $755 = $tbase$255$i; } else { $755 = $690; } $692 = (($tbase$255$i) + ($tsize$254$i)|0); $sp$183$i = (17936); while(1) { $693 = HEAP32[$sp$183$i>>2]|0; $694 = ($693|0)==($692|0); if ($694) { $$lcssa219 = $sp$183$i;$sp$183$i$lcssa = $sp$183$i; label = 212; break; } $695 = ((($sp$183$i)) + 8|0); $696 = HEAP32[$695>>2]|0; $697 = ($696|0)==(0|0); if ($697) { $sp$0$i$i$i = (17936); break; } else { $sp$183$i = $696; } } if ((label|0) == 212) { $698 = ((($sp$183$i$lcssa)) + 12|0); $699 = HEAP32[$698>>2]|0; $700 = $699 & 8; $701 = ($700|0)==(0); if ($701) { HEAP32[$$lcssa219>>2] = $tbase$255$i; $702 = ((($sp$183$i$lcssa)) + 4|0); $703 = HEAP32[$702>>2]|0; $704 = (($703) + ($tsize$254$i))|0; HEAP32[$702>>2] = $704; $705 = ((($tbase$255$i)) + 8|0); $706 = $705; $707 = $706 & 7; $708 = ($707|0)==(0); $709 = (0 - ($706))|0; $710 = $709 & 7; $711 = $708 ? 0 : $710; $712 = (($tbase$255$i) + ($711)|0); $$sum112$i = (($tsize$254$i) + 8)|0; $713 = (($tbase$255$i) + ($$sum112$i)|0); $714 = $713; $715 = $714 & 7; $716 = ($715|0)==(0); $717 = (0 - ($714))|0; $718 = $717 & 7; $719 = $716 ? 0 : $718; $$sum113$i = (($719) + ($tsize$254$i))|0; $720 = (($tbase$255$i) + ($$sum113$i)|0); $721 = $720; $722 = $712; $723 = (($721) - ($722))|0; $$sum$i19$i = (($711) + ($nb$0))|0; $724 = (($tbase$255$i) + ($$sum$i19$i)|0); $725 = (($723) - ($nb$0))|0; $726 = $nb$0 | 3; $$sum1$i20$i = (($711) + 4)|0; $727 = (($tbase$255$i) + ($$sum1$i20$i)|0); HEAP32[$727>>2] = $726; $728 = ($720|0)==($635|0); L317: do { if ($728) { $729 = HEAP32[(17500)>>2]|0; $730 = (($729) + ($725))|0; HEAP32[(17500)>>2] = $730; HEAP32[(17512)>>2] = $724; $731 = $730 | 1; $$sum42$i$i = (($$sum$i19$i) + 4)|0; $732 = (($tbase$255$i) + ($$sum42$i$i)|0); HEAP32[$732>>2] = $731; } else { $733 = HEAP32[(17508)>>2]|0; $734 = ($720|0)==($733|0); if ($734) { $735 = HEAP32[(17496)>>2]|0; $736 = (($735) + ($725))|0; HEAP32[(17496)>>2] = $736; HEAP32[(17508)>>2] = $724; $737 = $736 | 1; $$sum40$i$i = (($$sum$i19$i) + 4)|0; $738 = (($tbase$255$i) + ($$sum40$i$i)|0); HEAP32[$738>>2] = $737; $$sum41$i$i = (($736) + ($$sum$i19$i))|0; $739 = (($tbase$255$i) + ($$sum41$i$i)|0); HEAP32[$739>>2] = $736; break; } $$sum2$i21$i = (($tsize$254$i) + 4)|0; $$sum114$i = (($$sum2$i21$i) + ($719))|0; $740 = (($tbase$255$i) + ($$sum114$i)|0); $741 = HEAP32[$740>>2]|0; $742 = $741 & 3; $743 = ($742|0)==(1); if ($743) { $744 = $741 & -8; $745 = $741 >>> 3; $746 = ($741>>>0)<(256); L324: do { if ($746) { $$sum3738$i$i = $719 | 8; $$sum124$i = (($$sum3738$i$i) + ($tsize$254$i))|0; $747 = (($tbase$255$i) + ($$sum124$i)|0); $748 = HEAP32[$747>>2]|0; $$sum39$i$i = (($tsize$254$i) + 12)|0; $$sum125$i = (($$sum39$i$i) + ($719))|0; $749 = (($tbase$255$i) + ($$sum125$i)|0); $750 = HEAP32[$749>>2]|0; $751 = $745 << 1; $752 = (17528 + ($751<<2)|0); $753 = ($748|0)==($752|0); do { if (!($753)) { $754 = ($748>>>0)<($755>>>0); if ($754) { _abort(); // unreachable; } $756 = ((($748)) + 12|0); $757 = HEAP32[$756>>2]|0; $758 = ($757|0)==($720|0); if ($758) { break; } _abort(); // unreachable; } } while(0); $759 = ($750|0)==($748|0); if ($759) { $760 = 1 << $745; $761 = $760 ^ -1; $762 = HEAP32[17488>>2]|0; $763 = $762 & $761; HEAP32[17488>>2] = $763; break; } $764 = ($750|0)==($752|0); do { if ($764) { $$pre57$i$i = ((($750)) + 8|0); $$pre$phi58$i$iZ2D = $$pre57$i$i; } else { $765 = ($750>>>0)<($755>>>0); if ($765) { _abort(); // unreachable; } $766 = ((($750)) + 8|0); $767 = HEAP32[$766>>2]|0; $768 = ($767|0)==($720|0); if ($768) { $$pre$phi58$i$iZ2D = $766; break; } _abort(); // unreachable; } } while(0); $769 = ((($748)) + 12|0); HEAP32[$769>>2] = $750; HEAP32[$$pre$phi58$i$iZ2D>>2] = $748; } else { $$sum34$i$i = $719 | 24; $$sum115$i = (($$sum34$i$i) + ($tsize$254$i))|0; $770 = (($tbase$255$i) + ($$sum115$i)|0); $771 = HEAP32[$770>>2]|0; $$sum5$i$i = (($tsize$254$i) + 12)|0; $$sum116$i = (($$sum5$i$i) + ($719))|0; $772 = (($tbase$255$i) + ($$sum116$i)|0); $773 = HEAP32[$772>>2]|0; $774 = ($773|0)==($720|0); do { if ($774) { $$sum67$i$i = $719 | 16; $$sum122$i = (($$sum2$i21$i) + ($$sum67$i$i))|0; $784 = (($tbase$255$i) + ($$sum122$i)|0); $785 = HEAP32[$784>>2]|0; $786 = ($785|0)==(0|0); if ($786) { $$sum123$i = (($$sum67$i$i) + ($tsize$254$i))|0; $787 = (($tbase$255$i) + ($$sum123$i)|0); $788 = HEAP32[$787>>2]|0; $789 = ($788|0)==(0|0); if ($789) { $R$1$i$i = 0; break; } else { $R$0$i$i = $788;$RP$0$i$i = $787; } } else { $R$0$i$i = $785;$RP$0$i$i = $784; } while(1) { $790 = ((($R$0$i$i)) + 20|0); $791 = HEAP32[$790>>2]|0; $792 = ($791|0)==(0|0); if (!($792)) { $R$0$i$i = $791;$RP$0$i$i = $790; continue; } $793 = ((($R$0$i$i)) + 16|0); $794 = HEAP32[$793>>2]|0; $795 = ($794|0)==(0|0); if ($795) { $R$0$i$i$lcssa = $R$0$i$i;$RP$0$i$i$lcssa = $RP$0$i$i; break; } else { $R$0$i$i = $794;$RP$0$i$i = $793; } } $796 = ($RP$0$i$i$lcssa>>>0)<($755>>>0); if ($796) { _abort(); // unreachable; } else { HEAP32[$RP$0$i$i$lcssa>>2] = 0; $R$1$i$i = $R$0$i$i$lcssa; break; } } else { $$sum3536$i$i = $719 | 8; $$sum117$i = (($$sum3536$i$i) + ($tsize$254$i))|0; $775 = (($tbase$255$i) + ($$sum117$i)|0); $776 = HEAP32[$775>>2]|0; $777 = ($776>>>0)<($755>>>0); if ($777) { _abort(); // unreachable; } $778 = ((($776)) + 12|0); $779 = HEAP32[$778>>2]|0; $780 = ($779|0)==($720|0); if (!($780)) { _abort(); // unreachable; } $781 = ((($773)) + 8|0); $782 = HEAP32[$781>>2]|0; $783 = ($782|0)==($720|0); if ($783) { HEAP32[$778>>2] = $773; HEAP32[$781>>2] = $776; $R$1$i$i = $773; break; } else { _abort(); // unreachable; } } } while(0); $797 = ($771|0)==(0|0); if ($797) { break; } $$sum30$i$i = (($tsize$254$i) + 28)|0; $$sum118$i = (($$sum30$i$i) + ($719))|0; $798 = (($tbase$255$i) + ($$sum118$i)|0); $799 = HEAP32[$798>>2]|0; $800 = (17792 + ($799<<2)|0); $801 = HEAP32[$800>>2]|0; $802 = ($720|0)==($801|0); do { if ($802) { HEAP32[$800>>2] = $R$1$i$i; $cond$i$i = ($R$1$i$i|0)==(0|0); if (!($cond$i$i)) { break; } $803 = 1 << $799; $804 = $803 ^ -1; $805 = HEAP32[(17492)>>2]|0; $806 = $805 & $804; HEAP32[(17492)>>2] = $806; break L324; } else { $807 = HEAP32[(17504)>>2]|0; $808 = ($771>>>0)<($807>>>0); if ($808) { _abort(); // unreachable; } $809 = ((($771)) + 16|0); $810 = HEAP32[$809>>2]|0; $811 = ($810|0)==($720|0); if ($811) { HEAP32[$809>>2] = $R$1$i$i; } else { $812 = ((($771)) + 20|0); HEAP32[$812>>2] = $R$1$i$i; } $813 = ($R$1$i$i|0)==(0|0); if ($813) { break L324; } } } while(0); $814 = HEAP32[(17504)>>2]|0; $815 = ($R$1$i$i>>>0)<($814>>>0); if ($815) { _abort(); // unreachable; } $816 = ((($R$1$i$i)) + 24|0); HEAP32[$816>>2] = $771; $$sum3132$i$i = $719 | 16; $$sum119$i = (($$sum3132$i$i) + ($tsize$254$i))|0; $817 = (($tbase$255$i) + ($$sum119$i)|0); $818 = HEAP32[$817>>2]|0; $819 = ($818|0)==(0|0); do { if (!($819)) { $820 = ($818>>>0)<($814>>>0); if ($820) { _abort(); // unreachable; } else { $821 = ((($R$1$i$i)) + 16|0); HEAP32[$821>>2] = $818; $822 = ((($818)) + 24|0); HEAP32[$822>>2] = $R$1$i$i; break; } } } while(0); $$sum120$i = (($$sum2$i21$i) + ($$sum3132$i$i))|0; $823 = (($tbase$255$i) + ($$sum120$i)|0); $824 = HEAP32[$823>>2]|0; $825 = ($824|0)==(0|0); if ($825) { break; } $826 = HEAP32[(17504)>>2]|0; $827 = ($824>>>0)<($826>>>0); if ($827) { _abort(); // unreachable; } else { $828 = ((($R$1$i$i)) + 20|0); HEAP32[$828>>2] = $824; $829 = ((($824)) + 24|0); HEAP32[$829>>2] = $R$1$i$i; break; } } } while(0); $$sum9$i$i = $744 | $719; $$sum121$i = (($$sum9$i$i) + ($tsize$254$i))|0; $830 = (($tbase$255$i) + ($$sum121$i)|0); $831 = (($744) + ($725))|0; $oldfirst$0$i$i = $830;$qsize$0$i$i = $831; } else { $oldfirst$0$i$i = $720;$qsize$0$i$i = $725; } $832 = ((($oldfirst$0$i$i)) + 4|0); $833 = HEAP32[$832>>2]|0; $834 = $833 & -2; HEAP32[$832>>2] = $834; $835 = $qsize$0$i$i | 1; $$sum10$i$i = (($$sum$i19$i) + 4)|0; $836 = (($tbase$255$i) + ($$sum10$i$i)|0); HEAP32[$836>>2] = $835; $$sum11$i$i = (($qsize$0$i$i) + ($$sum$i19$i))|0; $837 = (($tbase$255$i) + ($$sum11$i$i)|0); HEAP32[$837>>2] = $qsize$0$i$i; $838 = $qsize$0$i$i >>> 3; $839 = ($qsize$0$i$i>>>0)<(256); if ($839) { $840 = $838 << 1; $841 = (17528 + ($840<<2)|0); $842 = HEAP32[17488>>2]|0; $843 = 1 << $838; $844 = $842 & $843; $845 = ($844|0)==(0); do { if ($845) { $846 = $842 | $843; HEAP32[17488>>2] = $846; $$pre$i22$i = (($840) + 2)|0; $$pre56$i$i = (17528 + ($$pre$i22$i<<2)|0); $$pre$phi$i23$iZ2D = $$pre56$i$i;$F4$0$i$i = $841; } else { $$sum29$i$i = (($840) + 2)|0; $847 = (17528 + ($$sum29$i$i<<2)|0); $848 = HEAP32[$847>>2]|0; $849 = HEAP32[(17504)>>2]|0; $850 = ($848>>>0)<($849>>>0); if (!($850)) { $$pre$phi$i23$iZ2D = $847;$F4$0$i$i = $848; break; } _abort(); // unreachable; } } while(0); HEAP32[$$pre$phi$i23$iZ2D>>2] = $724; $851 = ((($F4$0$i$i)) + 12|0); HEAP32[$851>>2] = $724; $$sum27$i$i = (($$sum$i19$i) + 8)|0; $852 = (($tbase$255$i) + ($$sum27$i$i)|0); HEAP32[$852>>2] = $F4$0$i$i; $$sum28$i$i = (($$sum$i19$i) + 12)|0; $853 = (($tbase$255$i) + ($$sum28$i$i)|0); HEAP32[$853>>2] = $841; break; } $854 = $qsize$0$i$i >>> 8; $855 = ($854|0)==(0); do { if ($855) { $I7$0$i$i = 0; } else { $856 = ($qsize$0$i$i>>>0)>(16777215); if ($856) { $I7$0$i$i = 31; break; } $857 = (($854) + 1048320)|0; $858 = $857 >>> 16; $859 = $858 & 8; $860 = $854 << $859; $861 = (($860) + 520192)|0; $862 = $861 >>> 16; $863 = $862 & 4; $864 = $863 | $859; $865 = $860 << $863; $866 = (($865) + 245760)|0; $867 = $866 >>> 16; $868 = $867 & 2; $869 = $864 | $868; $870 = (14 - ($869))|0; $871 = $865 << $868; $872 = $871 >>> 15; $873 = (($870) + ($872))|0; $874 = $873 << 1; $875 = (($873) + 7)|0; $876 = $qsize$0$i$i >>> $875; $877 = $876 & 1; $878 = $877 | $874; $I7$0$i$i = $878; } } while(0); $879 = (17792 + ($I7$0$i$i<<2)|0); $$sum12$i$i = (($$sum$i19$i) + 28)|0; $880 = (($tbase$255$i) + ($$sum12$i$i)|0); HEAP32[$880>>2] = $I7$0$i$i; $$sum13$i$i = (($$sum$i19$i) + 16)|0; $881 = (($tbase$255$i) + ($$sum13$i$i)|0); $$sum14$i$i = (($$sum$i19$i) + 20)|0; $882 = (($tbase$255$i) + ($$sum14$i$i)|0); HEAP32[$882>>2] = 0; HEAP32[$881>>2] = 0; $883 = HEAP32[(17492)>>2]|0; $884 = 1 << $I7$0$i$i; $885 = $883 & $884; $886 = ($885|0)==(0); if ($886) { $887 = $883 | $884; HEAP32[(17492)>>2] = $887; HEAP32[$879>>2] = $724; $$sum15$i$i = (($$sum$i19$i) + 24)|0; $888 = (($tbase$255$i) + ($$sum15$i$i)|0); HEAP32[$888>>2] = $879; $$sum16$i$i = (($$sum$i19$i) + 12)|0; $889 = (($tbase$255$i) + ($$sum16$i$i)|0); HEAP32[$889>>2] = $724; $$sum17$i$i = (($$sum$i19$i) + 8)|0; $890 = (($tbase$255$i) + ($$sum17$i$i)|0); HEAP32[$890>>2] = $724; break; } $891 = HEAP32[$879>>2]|0; $892 = ((($891)) + 4|0); $893 = HEAP32[$892>>2]|0; $894 = $893 & -8; $895 = ($894|0)==($qsize$0$i$i|0); L410: do { if ($895) { $T$0$lcssa$i25$i = $891; } else { $896 = ($I7$0$i$i|0)==(31); $897 = $I7$0$i$i >>> 1; $898 = (25 - ($897))|0; $899 = $896 ? 0 : $898; $900 = $qsize$0$i$i << $899; $K8$051$i$i = $900;$T$050$i$i = $891; while(1) { $907 = $K8$051$i$i >>> 31; $908 = (((($T$050$i$i)) + 16|0) + ($907<<2)|0); $903 = HEAP32[$908>>2]|0; $909 = ($903|0)==(0|0); if ($909) { $$lcssa = $908;$T$050$i$i$lcssa = $T$050$i$i; break; } $901 = $K8$051$i$i << 1; $902 = ((($903)) + 4|0); $904 = HEAP32[$902>>2]|0; $905 = $904 & -8; $906 = ($905|0)==($qsize$0$i$i|0); if ($906) { $T$0$lcssa$i25$i = $903; break L410; } else { $K8$051$i$i = $901;$T$050$i$i = $903; } } $910 = HEAP32[(17504)>>2]|0; $911 = ($$lcssa>>>0)<($910>>>0); if ($911) { _abort(); // unreachable; } else { HEAP32[$$lcssa>>2] = $724; $$sum23$i$i = (($$sum$i19$i) + 24)|0; $912 = (($tbase$255$i) + ($$sum23$i$i)|0); HEAP32[$912>>2] = $T$050$i$i$lcssa; $$sum24$i$i = (($$sum$i19$i) + 12)|0; $913 = (($tbase$255$i) + ($$sum24$i$i)|0); HEAP32[$913>>2] = $724; $$sum25$i$i = (($$sum$i19$i) + 8)|0; $914 = (($tbase$255$i) + ($$sum25$i$i)|0); HEAP32[$914>>2] = $724; break L317; } } } while(0); $915 = ((($T$0$lcssa$i25$i)) + 8|0); $916 = HEAP32[$915>>2]|0; $917 = HEAP32[(17504)>>2]|0; $918 = ($916>>>0)>=($917>>>0); $not$$i26$i = ($T$0$lcssa$i25$i>>>0)>=($917>>>0); $919 = $918 & $not$$i26$i; if ($919) { $920 = ((($916)) + 12|0); HEAP32[$920>>2] = $724; HEAP32[$915>>2] = $724; $$sum20$i$i = (($$sum$i19$i) + 8)|0; $921 = (($tbase$255$i) + ($$sum20$i$i)|0); HEAP32[$921>>2] = $916; $$sum21$i$i = (($$sum$i19$i) + 12)|0; $922 = (($tbase$255$i) + ($$sum21$i$i)|0); HEAP32[$922>>2] = $T$0$lcssa$i25$i; $$sum22$i$i = (($$sum$i19$i) + 24)|0; $923 = (($tbase$255$i) + ($$sum22$i$i)|0); HEAP32[$923>>2] = 0; break; } else { _abort(); // unreachable; } } } while(0); $$sum1819$i$i = $711 | 8; $924 = (($tbase$255$i) + ($$sum1819$i$i)|0); $mem$0 = $924; return ($mem$0|0); } else { $sp$0$i$i$i = (17936); } } while(1) { $925 = HEAP32[$sp$0$i$i$i>>2]|0; $926 = ($925>>>0)>($635>>>0); if (!($926)) { $927 = ((($sp$0$i$i$i)) + 4|0); $928 = HEAP32[$927>>2]|0; $929 = (($925) + ($928)|0); $930 = ($929>>>0)>($635>>>0); if ($930) { $$lcssa215 = $925;$$lcssa216 = $928;$$lcssa217 = $929; break; } } $931 = ((($sp$0$i$i$i)) + 8|0); $932 = HEAP32[$931>>2]|0; $sp$0$i$i$i = $932; } $$sum$i14$i = (($$lcssa216) + -47)|0; $$sum1$i15$i = (($$lcssa216) + -39)|0; $933 = (($$lcssa215) + ($$sum1$i15$i)|0); $934 = $933; $935 = $934 & 7; $936 = ($935|0)==(0); $937 = (0 - ($934))|0; $938 = $937 & 7; $939 = $936 ? 0 : $938; $$sum2$i16$i = (($$sum$i14$i) + ($939))|0; $940 = (($$lcssa215) + ($$sum2$i16$i)|0); $941 = ((($635)) + 16|0); $942 = ($940>>>0)<($941>>>0); $943 = $942 ? $635 : $940; $944 = ((($943)) + 8|0); $945 = (($tsize$254$i) + -40)|0; $946 = ((($tbase$255$i)) + 8|0); $947 = $946; $948 = $947 & 7; $949 = ($948|0)==(0); $950 = (0 - ($947))|0; $951 = $950 & 7; $952 = $949 ? 0 : $951; $953 = (($tbase$255$i) + ($952)|0); $954 = (($945) - ($952))|0; HEAP32[(17512)>>2] = $953; HEAP32[(17500)>>2] = $954; $955 = $954 | 1; $$sum$i$i$i = (($952) + 4)|0; $956 = (($tbase$255$i) + ($$sum$i$i$i)|0); HEAP32[$956>>2] = $955; $$sum2$i$i$i = (($tsize$254$i) + -36)|0; $957 = (($tbase$255$i) + ($$sum2$i$i$i)|0); HEAP32[$957>>2] = 40; $958 = HEAP32[(17976)>>2]|0; HEAP32[(17516)>>2] = $958; $959 = ((($943)) + 4|0); HEAP32[$959>>2] = 27; ;HEAP32[$944>>2]=HEAP32[(17936)>>2]|0;HEAP32[$944+4>>2]=HEAP32[(17936)+4>>2]|0;HEAP32[$944+8>>2]=HEAP32[(17936)+8>>2]|0;HEAP32[$944+12>>2]=HEAP32[(17936)+12>>2]|0; HEAP32[(17936)>>2] = $tbase$255$i; HEAP32[(17940)>>2] = $tsize$254$i; HEAP32[(17948)>>2] = 0; HEAP32[(17944)>>2] = $944; $960 = ((($943)) + 28|0); HEAP32[$960>>2] = 7; $961 = ((($943)) + 32|0); $962 = ($961>>>0)<($$lcssa217>>>0); if ($962) { $964 = $960; while(1) { $963 = ((($964)) + 4|0); HEAP32[$963>>2] = 7; $965 = ((($964)) + 8|0); $966 = ($965>>>0)<($$lcssa217>>>0); if ($966) { $964 = $963; } else { break; } } } $967 = ($943|0)==($635|0); if (!($967)) { $968 = $943; $969 = $635; $970 = (($968) - ($969))|0; $971 = HEAP32[$959>>2]|0; $972 = $971 & -2; HEAP32[$959>>2] = $972; $973 = $970 | 1; $974 = ((($635)) + 4|0); HEAP32[$974>>2] = $973; HEAP32[$943>>2] = $970; $975 = $970 >>> 3; $976 = ($970>>>0)<(256); if ($976) { $977 = $975 << 1; $978 = (17528 + ($977<<2)|0); $979 = HEAP32[17488>>2]|0; $980 = 1 << $975; $981 = $979 & $980; $982 = ($981|0)==(0); if ($982) { $983 = $979 | $980; HEAP32[17488>>2] = $983; $$pre$i$i = (($977) + 2)|0; $$pre14$i$i = (17528 + ($$pre$i$i<<2)|0); $$pre$phi$i$iZ2D = $$pre14$i$i;$F$0$i$i = $978; } else { $$sum4$i$i = (($977) + 2)|0; $984 = (17528 + ($$sum4$i$i<<2)|0); $985 = HEAP32[$984>>2]|0; $986 = HEAP32[(17504)>>2]|0; $987 = ($985>>>0)<($986>>>0); if ($987) { _abort(); // unreachable; } else { $$pre$phi$i$iZ2D = $984;$F$0$i$i = $985; } } HEAP32[$$pre$phi$i$iZ2D>>2] = $635; $988 = ((($F$0$i$i)) + 12|0); HEAP32[$988>>2] = $635; $989 = ((($635)) + 8|0); HEAP32[$989>>2] = $F$0$i$i; $990 = ((($635)) + 12|0); HEAP32[$990>>2] = $978; break; } $991 = $970 >>> 8; $992 = ($991|0)==(0); if ($992) { $I1$0$i$i = 0; } else { $993 = ($970>>>0)>(16777215); if ($993) { $I1$0$i$i = 31; } else { $994 = (($991) + 1048320)|0; $995 = $994 >>> 16; $996 = $995 & 8; $997 = $991 << $996; $998 = (($997) + 520192)|0; $999 = $998 >>> 16; $1000 = $999 & 4; $1001 = $1000 | $996; $1002 = $997 << $1000; $1003 = (($1002) + 245760)|0; $1004 = $1003 >>> 16; $1005 = $1004 & 2; $1006 = $1001 | $1005; $1007 = (14 - ($1006))|0; $1008 = $1002 << $1005; $1009 = $1008 >>> 15; $1010 = (($1007) + ($1009))|0; $1011 = $1010 << 1; $1012 = (($1010) + 7)|0; $1013 = $970 >>> $1012; $1014 = $1013 & 1; $1015 = $1014 | $1011; $I1$0$i$i = $1015; } } $1016 = (17792 + ($I1$0$i$i<<2)|0); $1017 = ((($635)) + 28|0); HEAP32[$1017>>2] = $I1$0$i$i; $1018 = ((($635)) + 20|0); HEAP32[$1018>>2] = 0; HEAP32[$941>>2] = 0; $1019 = HEAP32[(17492)>>2]|0; $1020 = 1 << $I1$0$i$i; $1021 = $1019 & $1020; $1022 = ($1021|0)==(0); if ($1022) { $1023 = $1019 | $1020; HEAP32[(17492)>>2] = $1023; HEAP32[$1016>>2] = $635; $1024 = ((($635)) + 24|0); HEAP32[$1024>>2] = $1016; $1025 = ((($635)) + 12|0); HEAP32[$1025>>2] = $635; $1026 = ((($635)) + 8|0); HEAP32[$1026>>2] = $635; break; } $1027 = HEAP32[$1016>>2]|0; $1028 = ((($1027)) + 4|0); $1029 = HEAP32[$1028>>2]|0; $1030 = $1029 & -8; $1031 = ($1030|0)==($970|0); L452: do { if ($1031) { $T$0$lcssa$i$i = $1027; } else { $1032 = ($I1$0$i$i|0)==(31); $1033 = $I1$0$i$i >>> 1; $1034 = (25 - ($1033))|0; $1035 = $1032 ? 0 : $1034; $1036 = $970 << $1035; $K2$07$i$i = $1036;$T$06$i$i = $1027; while(1) { $1043 = $K2$07$i$i >>> 31; $1044 = (((($T$06$i$i)) + 16|0) + ($1043<<2)|0); $1039 = HEAP32[$1044>>2]|0; $1045 = ($1039|0)==(0|0); if ($1045) { $$lcssa211 = $1044;$T$06$i$i$lcssa = $T$06$i$i; break; } $1037 = $K2$07$i$i << 1; $1038 = ((($1039)) + 4|0); $1040 = HEAP32[$1038>>2]|0; $1041 = $1040 & -8; $1042 = ($1041|0)==($970|0); if ($1042) { $T$0$lcssa$i$i = $1039; break L452; } else { $K2$07$i$i = $1037;$T$06$i$i = $1039; } } $1046 = HEAP32[(17504)>>2]|0; $1047 = ($$lcssa211>>>0)<($1046>>>0); if ($1047) { _abort(); // unreachable; } else { HEAP32[$$lcssa211>>2] = $635; $1048 = ((($635)) + 24|0); HEAP32[$1048>>2] = $T$06$i$i$lcssa; $1049 = ((($635)) + 12|0); HEAP32[$1049>>2] = $635; $1050 = ((($635)) + 8|0); HEAP32[$1050>>2] = $635; break L299; } } } while(0); $1051 = ((($T$0$lcssa$i$i)) + 8|0); $1052 = HEAP32[$1051>>2]|0; $1053 = HEAP32[(17504)>>2]|0; $1054 = ($1052>>>0)>=($1053>>>0); $not$$i$i = ($T$0$lcssa$i$i>>>0)>=($1053>>>0); $1055 = $1054 & $not$$i$i; if ($1055) { $1056 = ((($1052)) + 12|0); HEAP32[$1056>>2] = $635; HEAP32[$1051>>2] = $635; $1057 = ((($635)) + 8|0); HEAP32[$1057>>2] = $1052; $1058 = ((($635)) + 12|0); HEAP32[$1058>>2] = $T$0$lcssa$i$i; $1059 = ((($635)) + 24|0); HEAP32[$1059>>2] = 0; break; } else { _abort(); // unreachable; } } } } while(0); $1060 = HEAP32[(17500)>>2]|0; $1061 = ($1060>>>0)>($nb$0>>>0); if ($1061) { $1062 = (($1060) - ($nb$0))|0; HEAP32[(17500)>>2] = $1062; $1063 = HEAP32[(17512)>>2]|0; $1064 = (($1063) + ($nb$0)|0); HEAP32[(17512)>>2] = $1064; $1065 = $1062 | 1; $$sum$i32 = (($nb$0) + 4)|0; $1066 = (($1063) + ($$sum$i32)|0); HEAP32[$1066>>2] = $1065; $1067 = $nb$0 | 3; $1068 = ((($1063)) + 4|0); HEAP32[$1068>>2] = $1067; $1069 = ((($1063)) + 8|0); $mem$0 = $1069; return ($mem$0|0); } } $1070 = (___errno_location()|0); HEAP32[$1070>>2] = 12; $mem$0 = 0; return ($mem$0|0); } function _free($mem) { $mem = $mem|0; var $$lcssa = 0, $$pre = 0, $$pre$phi59Z2D = 0, $$pre$phi61Z2D = 0, $$pre$phiZ2D = 0, $$pre57 = 0, $$pre58 = 0, $$pre60 = 0, $$sum = 0, $$sum11 = 0, $$sum12 = 0, $$sum13 = 0, $$sum14 = 0, $$sum1718 = 0, $$sum19 = 0, $$sum2 = 0, $$sum20 = 0, $$sum22 = 0, $$sum23 = 0, $$sum24 = 0; var $$sum25 = 0, $$sum26 = 0, $$sum27 = 0, $$sum28 = 0, $$sum29 = 0, $$sum3 = 0, $$sum30 = 0, $$sum31 = 0, $$sum5 = 0, $$sum67 = 0, $$sum8 = 0, $$sum9 = 0, $0 = 0, $1 = 0, $10 = 0, $100 = 0, $101 = 0, $102 = 0, $103 = 0, $104 = 0; var $105 = 0, $106 = 0, $107 = 0, $108 = 0, $109 = 0, $11 = 0, $110 = 0, $111 = 0, $112 = 0, $113 = 0, $114 = 0, $115 = 0, $116 = 0, $117 = 0, $118 = 0, $119 = 0, $12 = 0, $120 = 0, $121 = 0, $122 = 0; var $123 = 0, $124 = 0, $125 = 0, $126 = 0, $127 = 0, $128 = 0, $129 = 0, $13 = 0, $130 = 0, $131 = 0, $132 = 0, $133 = 0, $134 = 0, $135 = 0, $136 = 0, $137 = 0, $138 = 0, $139 = 0, $14 = 0, $140 = 0; var $141 = 0, $142 = 0, $143 = 0, $144 = 0, $145 = 0, $146 = 0, $147 = 0, $148 = 0, $149 = 0, $15 = 0, $150 = 0, $151 = 0, $152 = 0, $153 = 0, $154 = 0, $155 = 0, $156 = 0, $157 = 0, $158 = 0, $159 = 0; var $16 = 0, $160 = 0, $161 = 0, $162 = 0, $163 = 0, $164 = 0, $165 = 0, $166 = 0, $167 = 0, $168 = 0, $169 = 0, $17 = 0, $170 = 0, $171 = 0, $172 = 0, $173 = 0, $174 = 0, $175 = 0, $176 = 0, $177 = 0; var $178 = 0, $179 = 0, $18 = 0, $180 = 0, $181 = 0, $182 = 0, $183 = 0, $184 = 0, $185 = 0, $186 = 0, $187 = 0, $188 = 0, $189 = 0, $19 = 0, $190 = 0, $191 = 0, $192 = 0, $193 = 0, $194 = 0, $195 = 0; var $196 = 0, $197 = 0, $198 = 0, $199 = 0, $2 = 0, $20 = 0, $200 = 0, $201 = 0, $202 = 0, $203 = 0, $204 = 0, $205 = 0, $206 = 0, $207 = 0, $208 = 0, $209 = 0, $21 = 0, $210 = 0, $211 = 0, $212 = 0; var $213 = 0, $214 = 0, $215 = 0, $216 = 0, $217 = 0, $218 = 0, $219 = 0, $22 = 0, $220 = 0, $221 = 0, $222 = 0, $223 = 0, $224 = 0, $225 = 0, $226 = 0, $227 = 0, $228 = 0, $229 = 0, $23 = 0, $230 = 0; var $231 = 0, $232 = 0, $233 = 0, $234 = 0, $235 = 0, $236 = 0, $237 = 0, $238 = 0, $239 = 0, $24 = 0, $240 = 0, $241 = 0, $242 = 0, $243 = 0, $244 = 0, $245 = 0, $246 = 0, $247 = 0, $248 = 0, $249 = 0; var $25 = 0, $250 = 0, $251 = 0, $252 = 0, $253 = 0, $254 = 0, $255 = 0, $256 = 0, $257 = 0, $258 = 0, $259 = 0, $26 = 0, $260 = 0, $261 = 0, $262 = 0, $263 = 0, $264 = 0, $265 = 0, $266 = 0, $267 = 0; var $268 = 0, $269 = 0, $27 = 0, $270 = 0, $271 = 0, $272 = 0, $273 = 0, $274 = 0, $275 = 0, $276 = 0, $277 = 0, $278 = 0, $279 = 0, $28 = 0, $280 = 0, $281 = 0, $282 = 0, $283 = 0, $284 = 0, $285 = 0; var $286 = 0, $287 = 0, $288 = 0, $289 = 0, $29 = 0, $290 = 0, $291 = 0, $292 = 0, $293 = 0, $294 = 0, $295 = 0, $296 = 0, $297 = 0, $298 = 0, $299 = 0, $3 = 0, $30 = 0, $300 = 0, $301 = 0, $302 = 0; var $303 = 0, $304 = 0, $305 = 0, $306 = 0, $307 = 0, $308 = 0, $309 = 0, $31 = 0, $310 = 0, $311 = 0, $312 = 0, $313 = 0, $314 = 0, $315 = 0, $316 = 0, $317 = 0, $318 = 0, $319 = 0, $32 = 0, $320 = 0; var $321 = 0, $33 = 0, $34 = 0, $35 = 0, $36 = 0, $37 = 0, $38 = 0, $39 = 0, $4 = 0, $40 = 0, $41 = 0, $42 = 0, $43 = 0, $44 = 0, $45 = 0, $46 = 0, $47 = 0, $48 = 0, $49 = 0, $5 = 0; var $50 = 0, $51 = 0, $52 = 0, $53 = 0, $54 = 0, $55 = 0, $56 = 0, $57 = 0, $58 = 0, $59 = 0, $6 = 0, $60 = 0, $61 = 0, $62 = 0, $63 = 0, $64 = 0, $65 = 0, $66 = 0, $67 = 0, $68 = 0; var $69 = 0, $7 = 0, $70 = 0, $71 = 0, $72 = 0, $73 = 0, $74 = 0, $75 = 0, $76 = 0, $77 = 0, $78 = 0, $79 = 0, $8 = 0, $80 = 0, $81 = 0, $82 = 0, $83 = 0, $84 = 0, $85 = 0, $86 = 0; var $87 = 0, $88 = 0, $89 = 0, $9 = 0, $90 = 0, $91 = 0, $92 = 0, $93 = 0, $94 = 0, $95 = 0, $96 = 0, $97 = 0, $98 = 0, $99 = 0, $F16$0 = 0, $I18$0 = 0, $K19$052 = 0, $R$0 = 0, $R$0$lcssa = 0, $R$1 = 0; var $R7$0 = 0, $R7$0$lcssa = 0, $R7$1 = 0, $RP$0 = 0, $RP$0$lcssa = 0, $RP9$0 = 0, $RP9$0$lcssa = 0, $T$0$lcssa = 0, $T$051 = 0, $T$051$lcssa = 0, $cond = 0, $cond47 = 0, $not$ = 0, $p$0 = 0, $psize$0 = 0, $psize$1 = 0, $sp$0$i = 0, $sp$0$in$i = 0, label = 0, sp = 0; sp = STACKTOP; $0 = ($mem|0)==(0|0); if ($0) { return; } $1 = ((($mem)) + -8|0); $2 = HEAP32[(17504)>>2]|0; $3 = ($1>>>0)<($2>>>0); if ($3) { _abort(); // unreachable; } $4 = ((($mem)) + -4|0); $5 = HEAP32[$4>>2]|0; $6 = $5 & 3; $7 = ($6|0)==(1); if ($7) { _abort(); // unreachable; } $8 = $5 & -8; $$sum = (($8) + -8)|0; $9 = (($mem) + ($$sum)|0); $10 = $5 & 1; $11 = ($10|0)==(0); do { if ($11) { $12 = HEAP32[$1>>2]|0; $13 = ($6|0)==(0); if ($13) { return; } $$sum2 = (-8 - ($12))|0; $14 = (($mem) + ($$sum2)|0); $15 = (($12) + ($8))|0; $16 = ($14>>>0)<($2>>>0); if ($16) { _abort(); // unreachable; } $17 = HEAP32[(17508)>>2]|0; $18 = ($14|0)==($17|0); if ($18) { $$sum3 = (($8) + -4)|0; $103 = (($mem) + ($$sum3)|0); $104 = HEAP32[$103>>2]|0; $105 = $104 & 3; $106 = ($105|0)==(3); if (!($106)) { $p$0 = $14;$psize$0 = $15; break; } HEAP32[(17496)>>2] = $15; $107 = $104 & -2; HEAP32[$103>>2] = $107; $108 = $15 | 1; $$sum20 = (($$sum2) + 4)|0; $109 = (($mem) + ($$sum20)|0); HEAP32[$109>>2] = $108; HEAP32[$9>>2] = $15; return; } $19 = $12 >>> 3; $20 = ($12>>>0)<(256); if ($20) { $$sum30 = (($$sum2) + 8)|0; $21 = (($mem) + ($$sum30)|0); $22 = HEAP32[$21>>2]|0; $$sum31 = (($$sum2) + 12)|0; $23 = (($mem) + ($$sum31)|0); $24 = HEAP32[$23>>2]|0; $25 = $19 << 1; $26 = (17528 + ($25<<2)|0); $27 = ($22|0)==($26|0); if (!($27)) { $28 = ($22>>>0)<($2>>>0); if ($28) { _abort(); // unreachable; } $29 = ((($22)) + 12|0); $30 = HEAP32[$29>>2]|0; $31 = ($30|0)==($14|0); if (!($31)) { _abort(); // unreachable; } } $32 = ($24|0)==($22|0); if ($32) { $33 = 1 << $19; $34 = $33 ^ -1; $35 = HEAP32[17488>>2]|0; $36 = $35 & $34; HEAP32[17488>>2] = $36; $p$0 = $14;$psize$0 = $15; break; } $37 = ($24|0)==($26|0); if ($37) { $$pre60 = ((($24)) + 8|0); $$pre$phi61Z2D = $$pre60; } else { $38 = ($24>>>0)<($2>>>0); if ($38) { _abort(); // unreachable; } $39 = ((($24)) + 8|0); $40 = HEAP32[$39>>2]|0; $41 = ($40|0)==($14|0); if ($41) { $$pre$phi61Z2D = $39; } else { _abort(); // unreachable; } } $42 = ((($22)) + 12|0); HEAP32[$42>>2] = $24; HEAP32[$$pre$phi61Z2D>>2] = $22; $p$0 = $14;$psize$0 = $15; break; } $$sum22 = (($$sum2) + 24)|0; $43 = (($mem) + ($$sum22)|0); $44 = HEAP32[$43>>2]|0; $$sum23 = (($$sum2) + 12)|0; $45 = (($mem) + ($$sum23)|0); $46 = HEAP32[$45>>2]|0; $47 = ($46|0)==($14|0); do { if ($47) { $$sum25 = (($$sum2) + 20)|0; $57 = (($mem) + ($$sum25)|0); $58 = HEAP32[$57>>2]|0; $59 = ($58|0)==(0|0); if ($59) { $$sum24 = (($$sum2) + 16)|0; $60 = (($mem) + ($$sum24)|0); $61 = HEAP32[$60>>2]|0; $62 = ($61|0)==(0|0); if ($62) { $R$1 = 0; break; } else { $R$0 = $61;$RP$0 = $60; } } else { $R$0 = $58;$RP$0 = $57; } while(1) { $63 = ((($R$0)) + 20|0); $64 = HEAP32[$63>>2]|0; $65 = ($64|0)==(0|0); if (!($65)) { $R$0 = $64;$RP$0 = $63; continue; } $66 = ((($R$0)) + 16|0); $67 = HEAP32[$66>>2]|0; $68 = ($67|0)==(0|0); if ($68) { $R$0$lcssa = $R$0;$RP$0$lcssa = $RP$0; break; } else { $R$0 = $67;$RP$0 = $66; } } $69 = ($RP$0$lcssa>>>0)<($2>>>0); if ($69) { _abort(); // unreachable; } else { HEAP32[$RP$0$lcssa>>2] = 0; $R$1 = $R$0$lcssa; break; } } else { $$sum29 = (($$sum2) + 8)|0; $48 = (($mem) + ($$sum29)|0); $49 = HEAP32[$48>>2]|0; $50 = ($49>>>0)<($2>>>0); if ($50) { _abort(); // unreachable; } $51 = ((($49)) + 12|0); $52 = HEAP32[$51>>2]|0; $53 = ($52|0)==($14|0); if (!($53)) { _abort(); // unreachable; } $54 = ((($46)) + 8|0); $55 = HEAP32[$54>>2]|0; $56 = ($55|0)==($14|0); if ($56) { HEAP32[$51>>2] = $46; HEAP32[$54>>2] = $49; $R$1 = $46; break; } else { _abort(); // unreachable; } } } while(0); $70 = ($44|0)==(0|0); if ($70) { $p$0 = $14;$psize$0 = $15; } else { $$sum26 = (($$sum2) + 28)|0; $71 = (($mem) + ($$sum26)|0); $72 = HEAP32[$71>>2]|0; $73 = (17792 + ($72<<2)|0); $74 = HEAP32[$73>>2]|0; $75 = ($14|0)==($74|0); if ($75) { HEAP32[$73>>2] = $R$1; $cond = ($R$1|0)==(0|0); if ($cond) { $76 = 1 << $72; $77 = $76 ^ -1; $78 = HEAP32[(17492)>>2]|0; $79 = $78 & $77; HEAP32[(17492)>>2] = $79; $p$0 = $14;$psize$0 = $15; break; } } else { $80 = HEAP32[(17504)>>2]|0; $81 = ($44>>>0)<($80>>>0); if ($81) { _abort(); // unreachable; } $82 = ((($44)) + 16|0); $83 = HEAP32[$82>>2]|0; $84 = ($83|0)==($14|0); if ($84) { HEAP32[$82>>2] = $R$1; } else { $85 = ((($44)) + 20|0); HEAP32[$85>>2] = $R$1; } $86 = ($R$1|0)==(0|0); if ($86) { $p$0 = $14;$psize$0 = $15; break; } } $87 = HEAP32[(17504)>>2]|0; $88 = ($R$1>>>0)<($87>>>0); if ($88) { _abort(); // unreachable; } $89 = ((($R$1)) + 24|0); HEAP32[$89>>2] = $44; $$sum27 = (($$sum2) + 16)|0; $90 = (($mem) + ($$sum27)|0); $91 = HEAP32[$90>>2]|0; $92 = ($91|0)==(0|0); do { if (!($92)) { $93 = ($91>>>0)<($87>>>0); if ($93) { _abort(); // unreachable; } else { $94 = ((($R$1)) + 16|0); HEAP32[$94>>2] = $91; $95 = ((($91)) + 24|0); HEAP32[$95>>2] = $R$1; break; } } } while(0); $$sum28 = (($$sum2) + 20)|0; $96 = (($mem) + ($$sum28)|0); $97 = HEAP32[$96>>2]|0; $98 = ($97|0)==(0|0); if ($98) { $p$0 = $14;$psize$0 = $15; } else { $99 = HEAP32[(17504)>>2]|0; $100 = ($97>>>0)<($99>>>0); if ($100) { _abort(); // unreachable; } else { $101 = ((($R$1)) + 20|0); HEAP32[$101>>2] = $97; $102 = ((($97)) + 24|0); HEAP32[$102>>2] = $R$1; $p$0 = $14;$psize$0 = $15; break; } } } } else { $p$0 = $1;$psize$0 = $8; } } while(0); $110 = ($p$0>>>0)<($9>>>0); if (!($110)) { _abort(); // unreachable; } $$sum19 = (($8) + -4)|0; $111 = (($mem) + ($$sum19)|0); $112 = HEAP32[$111>>2]|0; $113 = $112 & 1; $114 = ($113|0)==(0); if ($114) { _abort(); // unreachable; } $115 = $112 & 2; $116 = ($115|0)==(0); if ($116) { $117 = HEAP32[(17512)>>2]|0; $118 = ($9|0)==($117|0); if ($118) { $119 = HEAP32[(17500)>>2]|0; $120 = (($119) + ($psize$0))|0; HEAP32[(17500)>>2] = $120; HEAP32[(17512)>>2] = $p$0; $121 = $120 | 1; $122 = ((($p$0)) + 4|0); HEAP32[$122>>2] = $121; $123 = HEAP32[(17508)>>2]|0; $124 = ($p$0|0)==($123|0); if (!($124)) { return; } HEAP32[(17508)>>2] = 0; HEAP32[(17496)>>2] = 0; return; } $125 = HEAP32[(17508)>>2]|0; $126 = ($9|0)==($125|0); if ($126) { $127 = HEAP32[(17496)>>2]|0; $128 = (($127) + ($psize$0))|0; HEAP32[(17496)>>2] = $128; HEAP32[(17508)>>2] = $p$0; $129 = $128 | 1; $130 = ((($p$0)) + 4|0); HEAP32[$130>>2] = $129; $131 = (($p$0) + ($128)|0); HEAP32[$131>>2] = $128; return; } $132 = $112 & -8; $133 = (($132) + ($psize$0))|0; $134 = $112 >>> 3; $135 = ($112>>>0)<(256); do { if ($135) { $136 = (($mem) + ($8)|0); $137 = HEAP32[$136>>2]|0; $$sum1718 = $8 | 4; $138 = (($mem) + ($$sum1718)|0); $139 = HEAP32[$138>>2]|0; $140 = $134 << 1; $141 = (17528 + ($140<<2)|0); $142 = ($137|0)==($141|0); if (!($142)) { $143 = HEAP32[(17504)>>2]|0; $144 = ($137>>>0)<($143>>>0); if ($144) { _abort(); // unreachable; } $145 = ((($137)) + 12|0); $146 = HEAP32[$145>>2]|0; $147 = ($146|0)==($9|0); if (!($147)) { _abort(); // unreachable; } } $148 = ($139|0)==($137|0); if ($148) { $149 = 1 << $134; $150 = $149 ^ -1; $151 = HEAP32[17488>>2]|0; $152 = $151 & $150; HEAP32[17488>>2] = $152; break; } $153 = ($139|0)==($141|0); if ($153) { $$pre58 = ((($139)) + 8|0); $$pre$phi59Z2D = $$pre58; } else { $154 = HEAP32[(17504)>>2]|0; $155 = ($139>>>0)<($154>>>0); if ($155) { _abort(); // unreachable; } $156 = ((($139)) + 8|0); $157 = HEAP32[$156>>2]|0; $158 = ($157|0)==($9|0); if ($158) { $$pre$phi59Z2D = $156; } else { _abort(); // unreachable; } } $159 = ((($137)) + 12|0); HEAP32[$159>>2] = $139; HEAP32[$$pre$phi59Z2D>>2] = $137; } else { $$sum5 = (($8) + 16)|0; $160 = (($mem) + ($$sum5)|0); $161 = HEAP32[$160>>2]|0; $$sum67 = $8 | 4; $162 = (($mem) + ($$sum67)|0); $163 = HEAP32[$162>>2]|0; $164 = ($163|0)==($9|0); do { if ($164) { $$sum9 = (($8) + 12)|0; $175 = (($mem) + ($$sum9)|0); $176 = HEAP32[$175>>2]|0; $177 = ($176|0)==(0|0); if ($177) { $$sum8 = (($8) + 8)|0; $178 = (($mem) + ($$sum8)|0); $179 = HEAP32[$178>>2]|0; $180 = ($179|0)==(0|0); if ($180) { $R7$1 = 0; break; } else { $R7$0 = $179;$RP9$0 = $178; } } else { $R7$0 = $176;$RP9$0 = $175; } while(1) { $181 = ((($R7$0)) + 20|0); $182 = HEAP32[$181>>2]|0; $183 = ($182|0)==(0|0); if (!($183)) { $R7$0 = $182;$RP9$0 = $181; continue; } $184 = ((($R7$0)) + 16|0); $185 = HEAP32[$184>>2]|0; $186 = ($185|0)==(0|0); if ($186) { $R7$0$lcssa = $R7$0;$RP9$0$lcssa = $RP9$0; break; } else { $R7$0 = $185;$RP9$0 = $184; } } $187 = HEAP32[(17504)>>2]|0; $188 = ($RP9$0$lcssa>>>0)<($187>>>0); if ($188) { _abort(); // unreachable; } else { HEAP32[$RP9$0$lcssa>>2] = 0; $R7$1 = $R7$0$lcssa; break; } } else { $165 = (($mem) + ($8)|0); $166 = HEAP32[$165>>2]|0; $167 = HEAP32[(17504)>>2]|0; $168 = ($166>>>0)<($167>>>0); if ($168) { _abort(); // unreachable; } $169 = ((($166)) + 12|0); $170 = HEAP32[$169>>2]|0; $171 = ($170|0)==($9|0); if (!($171)) { _abort(); // unreachable; } $172 = ((($163)) + 8|0); $173 = HEAP32[$172>>2]|0; $174 = ($173|0)==($9|0); if ($174) { HEAP32[$169>>2] = $163; HEAP32[$172>>2] = $166; $R7$1 = $163; break; } else { _abort(); // unreachable; } } } while(0); $189 = ($161|0)==(0|0); if (!($189)) { $$sum12 = (($8) + 20)|0; $190 = (($mem) + ($$sum12)|0); $191 = HEAP32[$190>>2]|0; $192 = (17792 + ($191<<2)|0); $193 = HEAP32[$192>>2]|0; $194 = ($9|0)==($193|0); if ($194) { HEAP32[$192>>2] = $R7$1; $cond47 = ($R7$1|0)==(0|0); if ($cond47) { $195 = 1 << $191; $196 = $195 ^ -1; $197 = HEAP32[(17492)>>2]|0; $198 = $197 & $196; HEAP32[(17492)>>2] = $198; break; } } else { $199 = HEAP32[(17504)>>2]|0; $200 = ($161>>>0)<($199>>>0); if ($200) { _abort(); // unreachable; } $201 = ((($161)) + 16|0); $202 = HEAP32[$201>>2]|0; $203 = ($202|0)==($9|0); if ($203) { HEAP32[$201>>2] = $R7$1; } else { $204 = ((($161)) + 20|0); HEAP32[$204>>2] = $R7$1; } $205 = ($R7$1|0)==(0|0); if ($205) { break; } } $206 = HEAP32[(17504)>>2]|0; $207 = ($R7$1>>>0)<($206>>>0); if ($207) { _abort(); // unreachable; } $208 = ((($R7$1)) + 24|0); HEAP32[$208>>2] = $161; $$sum13 = (($8) + 8)|0; $209 = (($mem) + ($$sum13)|0); $210 = HEAP32[$209>>2]|0; $211 = ($210|0)==(0|0); do { if (!($211)) { $212 = ($210>>>0)<($206>>>0); if ($212) { _abort(); // unreachable; } else { $213 = ((($R7$1)) + 16|0); HEAP32[$213>>2] = $210; $214 = ((($210)) + 24|0); HEAP32[$214>>2] = $R7$1; break; } } } while(0); $$sum14 = (($8) + 12)|0; $215 = (($mem) + ($$sum14)|0); $216 = HEAP32[$215>>2]|0; $217 = ($216|0)==(0|0); if (!($217)) { $218 = HEAP32[(17504)>>2]|0; $219 = ($216>>>0)<($218>>>0); if ($219) { _abort(); // unreachable; } else { $220 = ((($R7$1)) + 20|0); HEAP32[$220>>2] = $216; $221 = ((($216)) + 24|0); HEAP32[$221>>2] = $R7$1; break; } } } } } while(0); $222 = $133 | 1; $223 = ((($p$0)) + 4|0); HEAP32[$223>>2] = $222; $224 = (($p$0) + ($133)|0); HEAP32[$224>>2] = $133; $225 = HEAP32[(17508)>>2]|0; $226 = ($p$0|0)==($225|0); if ($226) { HEAP32[(17496)>>2] = $133; return; } else { $psize$1 = $133; } } else { $227 = $112 & -2; HEAP32[$111>>2] = $227; $228 = $psize$0 | 1; $229 = ((($p$0)) + 4|0); HEAP32[$229>>2] = $228; $230 = (($p$0) + ($psize$0)|0); HEAP32[$230>>2] = $psize$0; $psize$1 = $psize$0; } $231 = $psize$1 >>> 3; $232 = ($psize$1>>>0)<(256); if ($232) { $233 = $231 << 1; $234 = (17528 + ($233<<2)|0); $235 = HEAP32[17488>>2]|0; $236 = 1 << $231; $237 = $235 & $236; $238 = ($237|0)==(0); if ($238) { $239 = $235 | $236; HEAP32[17488>>2] = $239; $$pre = (($233) + 2)|0; $$pre57 = (17528 + ($$pre<<2)|0); $$pre$phiZ2D = $$pre57;$F16$0 = $234; } else { $$sum11 = (($233) + 2)|0; $240 = (17528 + ($$sum11<<2)|0); $241 = HEAP32[$240>>2]|0; $242 = HEAP32[(17504)>>2]|0; $243 = ($241>>>0)<($242>>>0); if ($243) { _abort(); // unreachable; } else { $$pre$phiZ2D = $240;$F16$0 = $241; } } HEAP32[$$pre$phiZ2D>>2] = $p$0; $244 = ((($F16$0)) + 12|0); HEAP32[$244>>2] = $p$0; $245 = ((($p$0)) + 8|0); HEAP32[$245>>2] = $F16$0; $246 = ((($p$0)) + 12|0); HEAP32[$246>>2] = $234; return; } $247 = $psize$1 >>> 8; $248 = ($247|0)==(0); if ($248) { $I18$0 = 0; } else { $249 = ($psize$1>>>0)>(16777215); if ($249) { $I18$0 = 31; } else { $250 = (($247) + 1048320)|0; $251 = $250 >>> 16; $252 = $251 & 8; $253 = $247 << $252; $254 = (($253) + 520192)|0; $255 = $254 >>> 16; $256 = $255 & 4; $257 = $256 | $252; $258 = $253 << $256; $259 = (($258) + 245760)|0; $260 = $259 >>> 16; $261 = $260 & 2; $262 = $257 | $261; $263 = (14 - ($262))|0; $264 = $258 << $261; $265 = $264 >>> 15; $266 = (($263) + ($265))|0; $267 = $266 << 1; $268 = (($266) + 7)|0; $269 = $psize$1 >>> $268; $270 = $269 & 1; $271 = $270 | $267; $I18$0 = $271; } } $272 = (17792 + ($I18$0<<2)|0); $273 = ((($p$0)) + 28|0); HEAP32[$273>>2] = $I18$0; $274 = ((($p$0)) + 16|0); $275 = ((($p$0)) + 20|0); HEAP32[$275>>2] = 0; HEAP32[$274>>2] = 0; $276 = HEAP32[(17492)>>2]|0; $277 = 1 << $I18$0; $278 = $276 & $277; $279 = ($278|0)==(0); L199: do { if ($279) { $280 = $276 | $277; HEAP32[(17492)>>2] = $280; HEAP32[$272>>2] = $p$0; $281 = ((($p$0)) + 24|0); HEAP32[$281>>2] = $272; $282 = ((($p$0)) + 12|0); HEAP32[$282>>2] = $p$0; $283 = ((($p$0)) + 8|0); HEAP32[$283>>2] = $p$0; } else { $284 = HEAP32[$272>>2]|0; $285 = ((($284)) + 4|0); $286 = HEAP32[$285>>2]|0; $287 = $286 & -8; $288 = ($287|0)==($psize$1|0); L202: do { if ($288) { $T$0$lcssa = $284; } else { $289 = ($I18$0|0)==(31); $290 = $I18$0 >>> 1; $291 = (25 - ($290))|0; $292 = $289 ? 0 : $291; $293 = $psize$1 << $292; $K19$052 = $293;$T$051 = $284; while(1) { $300 = $K19$052 >>> 31; $301 = (((($T$051)) + 16|0) + ($300<<2)|0); $296 = HEAP32[$301>>2]|0; $302 = ($296|0)==(0|0); if ($302) { $$lcssa = $301;$T$051$lcssa = $T$051; break; } $294 = $K19$052 << 1; $295 = ((($296)) + 4|0); $297 = HEAP32[$295>>2]|0; $298 = $297 & -8; $299 = ($298|0)==($psize$1|0); if ($299) { $T$0$lcssa = $296; break L202; } else { $K19$052 = $294;$T$051 = $296; } } $303 = HEAP32[(17504)>>2]|0; $304 = ($$lcssa>>>0)<($303>>>0); if ($304) { _abort(); // unreachable; } else { HEAP32[$$lcssa>>2] = $p$0; $305 = ((($p$0)) + 24|0); HEAP32[$305>>2] = $T$051$lcssa; $306 = ((($p$0)) + 12|0); HEAP32[$306>>2] = $p$0; $307 = ((($p$0)) + 8|0); HEAP32[$307>>2] = $p$0; break L199; } } } while(0); $308 = ((($T$0$lcssa)) + 8|0); $309 = HEAP32[$308>>2]|0; $310 = HEAP32[(17504)>>2]|0; $311 = ($309>>>0)>=($310>>>0); $not$ = ($T$0$lcssa>>>0)>=($310>>>0); $312 = $311 & $not$; if ($312) { $313 = ((($309)) + 12|0); HEAP32[$313>>2] = $p$0; HEAP32[$308>>2] = $p$0; $314 = ((($p$0)) + 8|0); HEAP32[$314>>2] = $309; $315 = ((($p$0)) + 12|0); HEAP32[$315>>2] = $T$0$lcssa; $316 = ((($p$0)) + 24|0); HEAP32[$316>>2] = 0; break; } else { _abort(); // unreachable; } } } while(0); $317 = HEAP32[(17520)>>2]|0; $318 = (($317) + -1)|0; HEAP32[(17520)>>2] = $318; $319 = ($318|0)==(0); if ($319) { $sp$0$in$i = (17944); } else { return; } while(1) { $sp$0$i = HEAP32[$sp$0$in$i>>2]|0; $320 = ($sp$0$i|0)==(0|0); $321 = ((($sp$0$i)) + 8|0); if ($320) { break; } else { $sp$0$in$i = $321; } } HEAP32[(17520)>>2] = -1; return; } function runPostSets() { } function _memset(ptr, value, num) { ptr = ptr|0; value = value|0; num = num|0; var stop = 0, value4 = 0, stop4 = 0, unaligned = 0; stop = (ptr + num)|0; if ((num|0) >= 20) { // This is unaligned, but quite large, so work hard to get to aligned settings value = value & 0xff; unaligned = ptr & 3; value4 = value | (value << 8) | (value << 16) | (value << 24); stop4 = stop & ~3; if (unaligned) { unaligned = (ptr + 4 - unaligned)|0; while ((ptr|0) < (unaligned|0)) { // no need to check for stop, since we have large num HEAP8[((ptr)>>0)]=value; ptr = (ptr+1)|0; } } while ((ptr|0) < (stop4|0)) { HEAP32[((ptr)>>2)]=value4; ptr = (ptr+4)|0; } } while ((ptr|0) < (stop|0)) { HEAP8[((ptr)>>0)]=value; ptr = (ptr+1)|0; } return (ptr-num)|0; } function _strlen(ptr) { ptr = ptr|0; var curr = 0; curr = ptr; while (((HEAP8[((curr)>>0)])|0)) { curr = (curr + 1)|0; } return (curr - ptr)|0; } function _memcpy(dest, src, num) { dest = dest|0; src = src|0; num = num|0; var ret = 0; if ((num|0) >= 4096) return _emscripten_memcpy_big(dest|0, src|0, num|0)|0; ret = dest|0; if ((dest&3) == (src&3)) { while (dest & 3) { if ((num|0) == 0) return ret|0; HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); dest = (dest+1)|0; src = (src+1)|0; num = (num-1)|0; } while ((num|0) >= 4) { HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0); dest = (dest+4)|0; src = (src+4)|0; num = (num-4)|0; } } while ((num|0) > 0) { HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); dest = (dest+1)|0; src = (src+1)|0; num = (num-1)|0; } return ret|0; } function _strcpy(pdest, psrc) { pdest = pdest|0; psrc = psrc|0; var i = 0; do { HEAP8[(((pdest+i)|0)>>0)]=HEAP8[(((psrc+i)|0)>>0)]; i = (i+1)|0; } while (((HEAP8[(((psrc)+(i-1))>>0)])|0)); return pdest|0; } // EMSCRIPTEN_END_FUNCS return { _filtcoef: _filtcoef, _free: _free, _wave_transform: _wave_transform, _wtoutputlength: _wtoutputlength, _memset: _memset, _malloc: _malloc, _memcpy: _memcpy, _strlen: _strlen, _inv_wave_transform: _inv_wave_transform, _filtlength: _filtlength, _strcpy: _strcpy, runPostSets: runPostSets, stackAlloc: stackAlloc, stackSave: stackSave, stackRestore: stackRestore, establishStackSpace: establishStackSpace, setThrew: setThrew, setTempRet0: setTempRet0, getTempRet0: getTempRet0 }; }) // EMSCRIPTEN_END_ASM (Module.asmGlobalArg, Module.asmLibraryArg, buffer); var real__wtoutputlength = asm["_wtoutputlength"]; asm["_wtoutputlength"] = function() { assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); return real__wtoutputlength.apply(null, arguments); }; var real__free = asm["_free"]; asm["_free"] = function() { assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); return real__free.apply(null, arguments); }; var real__wave_transform = asm["_wave_transform"]; asm["_wave_transform"] = function() { assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); return real__wave_transform.apply(null, arguments); }; var real__filtcoef = asm["_filtcoef"]; asm["_filtcoef"] = function() { assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); return real__filtcoef.apply(null, arguments); }; var real__malloc = asm["_malloc"]; asm["_malloc"] = function() { assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); return real__malloc.apply(null, arguments); }; var real__strlen = asm["_strlen"]; asm["_strlen"] = function() { assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); return real__strlen.apply(null, arguments); }; var real__inv_wave_transform = asm["_inv_wave_transform"]; asm["_inv_wave_transform"] = function() { assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); return real__inv_wave_transform.apply(null, arguments); }; var real__filtlength = asm["_filtlength"]; asm["_filtlength"] = function() { assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); return real__filtlength.apply(null, arguments); }; var real__strcpy = asm["_strcpy"]; asm["_strcpy"] = function() { assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)'); assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)'); return real__strcpy.apply(null, arguments); }; var _wtoutputlength = Module["_wtoutputlength"] = asm["_wtoutputlength"]; var _free = Module["_free"] = asm["_free"]; var runPostSets = Module["runPostSets"] = asm["runPostSets"]; var _wave_transform = Module["_wave_transform"] = asm["_wave_transform"]; var _filtcoef = Module["_filtcoef"] = asm["_filtcoef"]; var _memset = Module["_memset"] = asm["_memset"]; var _malloc = Module["_malloc"] = asm["_malloc"]; var _memcpy = Module["_memcpy"] = asm["_memcpy"]; var _strlen = Module["_strlen"] = asm["_strlen"]; var _inv_wave_transform = Module["_inv_wave_transform"] = asm["_inv_wave_transform"]; var _filtlength = Module["_filtlength"] = asm["_filtlength"]; var _strcpy = Module["_strcpy"] = asm["_strcpy"]; ; Runtime.stackAlloc = asm['stackAlloc']; Runtime.stackSave = asm['stackSave']; Runtime.stackRestore = asm['stackRestore']; Runtime.establishStackSpace = asm['establishStackSpace']; Runtime.setTempRet0 = asm['setTempRet0']; Runtime.getTempRet0 = asm['getTempRet0']; // Warning: printing of i64 values may be slightly rounded! No deep i64 math used, so precise i64 code not included var i64Math = null; // === Auto-generated postamble setup entry stuff === function ExitStatus(status) { this.name = "ExitStatus"; this.message = "Program terminated with exit(" + status + ")"; this.status = status; }; ExitStatus.prototype = new Error(); ExitStatus.prototype.constructor = ExitStatus; var initialStackTop; var preloadStartTime = null; var calledMain = false; 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 (!Module['calledRun']) run(); if (!Module['calledRun']) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled } Module['callMain'] = Module.callMain = function callMain(args) { assert(runDependencies == 0, 'cannot call main when async dependencies remain! (listen on __ATMAIN__)'); assert(__ATPRERUN__.length == 0, 'cannot call main when preRun functions remain to be called'); args = args || []; ensureInitRuntime(); var argc = args.length+1; function pad() { for (var i = 0; i < 4-1; i++) { argv.push(0); } } var argv = [allocate(intArrayFromString(Module['thisProgram']), 'i8', ALLOC_NORMAL) ]; pad(); for (var i = 0; i < argc-1; i = i + 1) { argv.push(allocate(intArrayFromString(args[i]), 'i8', ALLOC_NORMAL)); pad(); } argv.push(0); argv = allocate(argv, 'i32', ALLOC_NORMAL); initialStackTop = STACKTOP; try { var ret = Module['_main'](argc, argv, 0); // if we're not running an evented main loop, it's time to exit exit(ret, /* implicit = */ true); } catch(e) { if (e instanceof ExitStatus) { // exit() throws this once it's done to make sure execution // has been stopped completely return; } else if (e == 'SimulateInfiniteLoop') { // running an evented main loop, don't immediately exit Module['noExitRuntime'] = true; return; } else { if (e && typeof e === 'object' && e.stack) Module.printErr('exception thrown: ' + [e, e.stack]); throw e; } } finally { calledMain = true; } } function run(args) { args = args || Module['arguments']; if (preloadStartTime === null) preloadStartTime = Date.now(); if (runDependencies > 0) { Module.printErr('run() called, but dependencies remain, so not running'); return; } preRun(); if (runDependencies > 0) return; // a preRun added a dependency, run will be called later if (Module['calledRun']) return; // run may have just been called through dependencies being fulfilled just in this very frame function doRun() { if (Module['calledRun']) return; // run may have just been called while the async setStatus time below was happening Module['calledRun'] = true; if (ABORT) return; ensureInitRuntime(); preMain(); if (ENVIRONMENT_IS_WEB && preloadStartTime !== null) { Module.printErr('pre-main prep time: ' + (Date.now() - preloadStartTime) + ' ms'); } if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized'](); if (Module['_main'] && shouldRunNow) Module['callMain'](args); postRun(); } if (Module['setStatus']) { Module['setStatus']('Running...'); setTimeout(function() { setTimeout(function() { Module['setStatus'](''); }, 1); doRun(); }, 1); } else { doRun(); } } Module['run'] = Module.run = run; function exit(status, implicit) { if (implicit && Module['noExitRuntime']) { Module.printErr('exit(' + status + ') implicitly called by end of main(), but noExitRuntime, so not exiting the runtime (you can use emscripten_force_exit, if you want to force a true shutdown)'); return; } if (Module['noExitRuntime']) { Module.printErr('exit(' + status + ') called, but noExitRuntime, so halting execution but not exiting the runtime or preventing further async execution (you can use emscripten_force_exit, if you want to force a true shutdown)'); } else { ABORT = true; EXITSTATUS = status; STACKTOP = initialStackTop; exitRuntime(); if (Module['onExit']) Module['onExit'](status); } if (ENVIRONMENT_IS_NODE) { // Work around a node.js bug where stdout buffer is not flushed at process exit: // Instead of process.exit() directly, wait for stdout flush event. // See https://github.com/joyent/node/issues/1669 and https://github.com/kripken/emscripten/issues/2582 // Workaround is based on https://github.com/RReverser/acorn/commit/50ab143cecc9ed71a2d66f78b4aec3bb2e9844f6 process['stdout']['once']('drain', function () { process['exit'](status); }); console.log(' '); // Make sure to print something to force the drain event to occur, in case the stdout buffer was empty. // Work around another node bug where sometimes 'drain' is never fired - make another effort // to emit the exit status, after a significant delay (if node hasn't fired drain by then, give up) setTimeout(function() { process['exit'](status); }, 500); } else if (ENVIRONMENT_IS_SHELL && typeof quit === 'function') { quit(status); } // if we reach here, we must throw an exception to halt the current execution throw new ExitStatus(status); } Module['exit'] = Module.exit = exit; var abortDecorators = []; function abort(what) { if (what !== undefined) { Module.print(what); Module.printErr(what); what = JSON.stringify(what) } else { what = ''; } ABORT = true; EXITSTATUS = 1; var extra = ''; var output = 'abort(' + what + ') at ' + stackTrace() + extra; if (abortDecorators) { abortDecorators.forEach(function(decorator) { output = decorator(output, what); }); } throw output; } Module['abort'] = Module.abort = abort; // {{PRE_RUN_ADDITIONS}} if (Module['preInit']) { if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']]; while (Module['preInit'].length > 0) { Module['preInit'].pop()(); } } // shouldRunNow refers to calling main(), not run(). var shouldRunNow = true; if (Module['noInitialRun']) { shouldRunNow = false; } run(); // {{POST_RUN_ADDITIONS}} // {{MODULE_ADDITIONS}}