1 var EXPECTED_OUTPUT = 2 'stretch tree of depth 10\t check: -1\n' + 3 '1448\t trees of depth 4\t check: -1448\n' + 4 '362\t trees of depth 6\t check: -362\n' + 5 '90\t trees of depth 8\t check: -90\n' + 6 'long lived tree of depth 9\t check: -1\n'; 7 var Module = { 8 arguments: [1], 9 print: function(x) {Module.printBuffer += x + '\n';}, 10 preRun: [function() {Module.printBuffer = ''}], 11 postRun: [function() { 12 assertEquals(EXPECTED_OUTPUT, Module.printBuffer); 13 }], 14 }; 15 16 var Module; 17 if (typeof Module === 'undefined') Module = eval('(function() { try { return Module || {} } catch(e) { return {} } })()'); 18 if (!Module.expectedDataFileDownloads) { 19 Module.expectedDataFileDownloads = 0; 20 Module.finishedDataFileDownloads = 0; 21 } 22 Module.expectedDataFileDownloads++; 23 (function() { 24 25 function runWithFS() { 26 27 function assert(check, msg) { 28 if (!check) throw msg + new Error().stack; 29 } 30 Module['FS_createDataFile']('/', 'binarytrees.lua', [45, 45, 32, 84, 104, 101, 32, 67, 111, 109, 112, 117, 116, 101, 114, 32, 76, 97, 110, 103, 117, 97, 103, 101, 32, 66, 101, 110, 99, 104, 109, 97, 114, 107, 115, 32, 71, 97, 109, 101, 10, 45, 45, 32, 104, 116, 116, 112, 58, 47, 47, 98, 101, 110, 99, 104, 109, 97, 114, 107, 115, 103, 97, 109, 101, 46, 97, 108, 105, 111, 116, 104, 46, 100, 101, 98, 105, 97, 110, 46, 111, 114, 103, 47, 10, 45, 45, 32, 99, 111, 110, 116, 114, 105, 98, 117, 116, 101, 100, 32, 98, 121, 32, 77, 105, 107, 101, 32, 80, 97, 108, 108, 10, 10, 108, 111, 99, 97, 108, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 66, 111, 116, 116, 111, 109, 85, 112, 84, 114, 101, 101, 40, 105, 116, 101, 109, 44, 32, 100, 101, 112, 116, 104, 41, 10, 32, 32, 105, 102, 32, 100, 101, 112, 116, 104, 32, 62, 32, 48, 32, 116, 104, 101, 110, 10, 32, 32, 32, 32, 108, 111, 99, 97, 108, 32, 105, 32, 61, 32, 105, 116, 101, 109, 32, 43, 32, 105, 116, 101, 109, 10, 32, 32, 32, 32, 100, 101, 112, 116, 104, 32, 61, 32, 100, 101, 112, 116, 104, 32, 45, 32, 49, 10, 32, 32, 32, 32, 108, 111, 99, 97, 108, 32, 108, 101, 102, 116, 44, 32, 114, 105, 103, 104, 116, 32, 61, 32, 66, 111, 116, 116, 111, 109, 85, 112, 84, 114, 101, 101, 40, 105, 45, 49, 44, 32, 100, 101, 112, 116, 104, 41, 44, 32, 66, 111, 116, 116, 111, 109, 85, 112, 84, 114, 101, 101, 40, 105, 44, 32, 100, 101, 112, 116, 104, 41, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 123, 32, 105, 116, 101, 109, 44, 32, 108, 101, 102, 116, 44, 32, 114, 105, 103, 104, 116, 32, 125, 10, 32, 32, 101, 108, 115, 101, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 123, 32, 105, 116, 101, 109, 32, 125, 10, 32, 32, 101, 110, 100, 10, 101, 110, 100, 10, 10, 108, 111, 99, 97, 108, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 73, 116, 101, 109, 67, 104, 101, 99, 107, 40, 116, 114, 101, 101, 41, 10, 32, 32, 105, 102, 32, 116, 114, 101, 101, 91, 50, 93, 32, 116, 104, 101, 110, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 114, 101, 101, 91, 49, 93, 32, 43, 32, 73, 116, 101, 109, 67, 104, 101, 99, 107, 40, 116, 114, 101, 101, 91, 50, 93, 41, 32, 45, 32, 73, 116, 101, 109, 67, 104, 101, 99, 107, 40, 116, 114, 101, 101, 91, 51, 93, 41, 10, 32, 32, 101, 108, 115, 101, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 114, 101, 101, 91, 49, 93, 10, 32, 32, 101, 110, 100, 10, 101, 110, 100, 10, 10, 108, 111, 99, 97, 108, 32, 78, 32, 61, 32, 116, 111, 110, 117, 109, 98, 101, 114, 40, 97, 114, 103, 32, 97, 110, 100, 32, 97, 114, 103, 91, 49, 93, 41, 32, 111, 114, 32, 52, 10, 10, 105, 102, 32, 78, 32, 61, 61, 32, 48, 32, 116, 104, 101, 110, 10, 32, 32, 78, 32, 61, 32, 48, 10, 101, 108, 115, 101, 105, 102, 32, 78, 32, 61, 61, 32, 49, 32, 116, 104, 101, 110, 10, 32, 32, 78, 32, 61, 32, 57, 46, 53, 10, 101, 108, 115, 101, 105, 102, 32, 78, 32, 61, 61, 32, 50, 32, 116, 104, 101, 110, 10, 32, 32, 78, 32, 61, 32, 49, 49, 46, 57, 57, 10, 101, 108, 115, 101, 105, 102, 32, 78, 32, 61, 61, 32, 51, 32, 116, 104, 101, 110, 10, 32, 32, 78, 32, 61, 32, 49, 50, 46, 56, 53, 10, 101, 108, 115, 101, 105, 102, 32, 78, 32, 61, 61, 32, 52, 32, 116, 104, 101, 110, 10, 32, 32, 78, 32, 61, 32, 49, 52, 46, 55, 50, 10, 101, 108, 115, 101, 105, 102, 32, 78, 32, 61, 61, 32, 53, 32, 116, 104, 101, 110, 10, 32, 32, 78, 32, 61, 32, 49, 53, 46, 56, 50, 10, 101, 110, 100, 10, 10, 108, 111, 99, 97, 108, 32, 109, 105, 110, 100, 101, 112, 116, 104, 32, 61, 32, 52, 10, 108, 111, 99, 97, 108, 32, 109, 97, 120, 100, 101, 112, 116, 104, 32, 61, 32, 109, 105, 110, 100, 101, 112, 116, 104, 32, 43, 32, 50, 10, 105, 102, 32, 109, 97, 120, 100, 101, 112, 116, 104, 32, 60, 32, 78, 32, 116, 104, 101, 110, 32, 109, 97, 120, 100, 101, 112, 116, 104, 32, 61, 32, 78, 32, 101, 110, 100, 10, 10, 100, 111, 10, 32, 32, 108, 111, 99, 97, 108, 32, 115, 116, 114, 101, 116, 99, 104, 100, 101, 112, 116, 104, 32, 61, 32, 109, 97, 120, 100, 101, 112, 116, 104, 32, 43, 32, 49, 10, 32, 32, 108, 111, 99, 97, 108, 32, 115, 116, 114, 101, 116, 99, 104, 116, 114, 101, 101, 32, 61, 32, 66, 111, 116, 116, 111, 109, 85, 112, 84, 114, 101, 101, 40, 48, 44, 32, 115, 116, 114, 101, 116, 99, 104, 100, 101, 112, 116, 104, 41, 10, 32, 32, 105, 111, 46, 119, 114, 105, 116, 101, 40, 115, 116, 114, 105, 110, 103, 46, 102, 111, 114, 109, 97, 116, 40, 34, 115, 116, 114, 101, 116, 99, 104, 32, 116, 114, 101, 101, 32, 111, 102, 32, 100, 101, 112, 116, 104, 32, 37, 100, 92, 116, 32, 99, 104, 101, 99, 107, 58, 32, 37, 100, 92, 110, 34, 44, 10, 32, 32, 32, 32, 115, 116, 114, 101, 116, 99, 104, 100, 101, 112, 116, 104, 44, 32, 73, 116, 101, 109, 67, 104, 101, 99, 107, 40, 115, 116, 114, 101, 116, 99, 104, 116, 114, 101, 101, 41, 41, 41, 10, 101, 110, 100, 10, 10, 108, 111, 99, 97, 108, 32, 108, 111, 110, 103, 108, 105, 118, 101, 100, 116, 114, 101, 101, 32, 61, 32, 66, 111, 116, 116, 111, 109, 85, 112, 84, 114, 101, 101, 40, 48, 44, 32, 109, 97, 120, 100, 101, 112, 116, 104, 41, 10, 10, 102, 111, 114, 32, 100, 101, 112, 116, 104, 61, 109, 105, 110, 100, 101, 112, 116, 104, 44, 109, 97, 120, 100, 101, 112, 116, 104, 44, 50, 32, 100, 111, 10, 32, 32, 108, 111, 99, 97, 108, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 50, 32, 94, 32, 40, 109, 97, 120, 100, 101, 112, 116, 104, 32, 45, 32, 100, 101, 112, 116, 104, 32, 43, 32, 109, 105, 110, 100, 101, 112, 116, 104, 41, 10, 32, 32, 108, 111, 99, 97, 108, 32, 99, 104, 101, 99, 107, 32, 61, 32, 48, 10, 32, 32, 102, 111, 114, 32, 105, 61, 49, 44, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 100, 111, 10, 32, 32, 32, 32, 99, 104, 101, 99, 107, 32, 61, 32, 99, 104, 101, 99, 107, 32, 43, 32, 73, 116, 101, 109, 67, 104, 101, 99, 107, 40, 66, 111, 116, 116, 111, 109, 85, 112, 84, 114, 101, 101, 40, 49, 44, 32, 100, 101, 112, 116, 104, 41, 41, 32, 43, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 73, 116, 101, 109, 67, 104, 101, 99, 107, 40, 66, 111, 116, 116, 111, 109, 85, 112, 84, 114, 101, 101, 40, 45, 49, 44, 32, 100, 101, 112, 116, 104, 41, 41, 10, 32, 32, 101, 110, 100, 10, 32, 32, 105, 111, 46, 119, 114, 105, 116, 101, 40, 115, 116, 114, 105, 110, 103, 46, 102, 111, 114, 109, 97, 116, 40, 34, 37, 100, 92, 116, 32, 116, 114, 101, 101, 115, 32, 111, 102, 32, 100, 101, 112, 116, 104, 32, 37, 100, 92, 116, 32, 99, 104, 101, 99, 107, 58, 32, 37, 100, 92, 110, 34, 44, 10, 32, 32, 32, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 42, 50, 44, 32, 100, 101, 112, 116, 104, 44, 32, 99, 104, 101, 99, 107, 41, 41, 10, 101, 110, 100, 10, 10, 105, 111, 46, 119, 114, 105, 116, 101, 40, 115, 116, 114, 105, 110, 103, 46, 102, 111, 114, 109, 97, 116, 40, 34, 108, 111, 110, 103, 32, 108, 105, 118, 101, 100, 32, 116, 114, 101, 101, 32, 111, 102, 32, 100, 101, 112, 116, 104, 32, 37, 100, 92, 116, 32, 99, 104, 101, 99, 107, 58, 32, 37, 100, 92, 110, 34, 44, 10, 32, 32, 109, 97, 120, 100, 101, 112, 116, 104, 44, 32, 73, 116, 101, 109, 67, 104, 101, 99, 107, 40, 108, 111, 110, 103, 108, 105, 118, 101, 100, 116, 114, 101, 101, 41, 41, 41, 10], true, true); 31 32 } 33 if (Module['calledRun']) { 34 runWithFS(); 35 } else { 36 if (!Module['preRun']) Module['preRun'] = []; 37 Module["preRun"].push(runWithFS); // FS is not initialized yet, wait for it 38 } 39 40 })(); 41 42 // The Module object: Our interface to the outside world. We import 43 // and export values on it, and do the work to get that through 44 // closure compiler if necessary. There are various ways Module can be used: 45 // 1. Not defined. We create it here 46 // 2. A function parameter, function(Module) { ..generated code.. } 47 // 3. pre-run appended it, var Module = {}; ..generated code.. 48 // 4. External script tag defines var Module. 49 // We need to do an eval in order to handle the closure compiler 50 // case, where this code here is minified but Module was defined 51 // elsewhere (e.g. case 4 above). We also need to check if Module 52 // already exists (e.g. case 3 above). 53 // Note that if you want to run closure, and also to use Module 54 // after the generated code, you will need to define var Module = {}; 55 // before the code. Then that object will be used in the code, and you 56 // can continue to use Module afterwards as well. 57 var Module; 58 if (!Module) Module = (typeof Module !== 'undefined' ? Module : null) || {}; 59 60 // Sometimes an existing Module object exists with properties 61 // meant to overwrite the default module functionality. Here 62 // we collect those properties and reapply _after_ we configure 63 // the current environment's defaults to avoid having to be so 64 // defensive during initialization. 65 var moduleOverrides = {}; 66 for (var key in Module) { 67 if (Module.hasOwnProperty(key)) { 68 moduleOverrides[key] = Module[key]; 69 } 70 } 71 72 // The environment setup code below is customized to use Module. 73 // *** Environment setup code *** 74 var ENVIRONMENT_IS_NODE = typeof process === 'object' && typeof require === 'function'; 75 var ENVIRONMENT_IS_WEB = typeof window === 'object'; 76 var ENVIRONMENT_IS_WORKER = typeof importScripts === 'function'; 77 var ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; 78 79 if (ENVIRONMENT_IS_NODE) { 80 // Expose functionality in the same simple way that the shells work 81 // Note that we pollute the global namespace here, otherwise we break in node 82 if (!Module['print']) Module['print'] = function print(x) { 83 process['stdout'].write(x + '\n'); 84 }; 85 if (!Module['printErr']) Module['printErr'] = function printErr(x) { 86 process['stderr'].write(x + '\n'); 87 }; 88 89 var nodeFS = require('fs'); 90 var nodePath = require('path'); 91 92 Module['read'] = function read(filename, binary) { 93 filename = nodePath['normalize'](filename); 94 var ret = nodeFS['readFileSync'](filename); 95 // The path is absolute if the normalized version is the same as the resolved. 96 if (!ret && filename != nodePath['resolve'](filename)) { 97 filename = path.join(__dirname, '..', 'src', filename); 98 ret = nodeFS['readFileSync'](filename); 99 } 100 if (ret && !binary) ret = ret.toString(); 101 return ret; 102 }; 103 104 Module['readBinary'] = function readBinary(filename) { return Module['read'](filename, true) }; 105 106 Module['load'] = function load(f) { 107 globalEval(read(f)); 108 }; 109 110 Module['arguments'] = process['argv'].slice(2); 111 112 module['exports'] = Module; 113 } 114 else if (ENVIRONMENT_IS_SHELL) { 115 if (!Module['print']) Module['print'] = print; 116 if (typeof printErr != 'undefined') Module['printErr'] = printErr; // not present in v8 or older sm 117 118 if (typeof read != 'undefined') { 119 Module['read'] = read; 120 } else { 121 Module['read'] = function read() { throw 'no read() available (jsc?)' }; 122 } 123 124 Module['readBinary'] = function readBinary(f) { 125 return read(f, 'binary'); 126 }; 127 128 if (typeof scriptArgs != 'undefined') { 129 Module['arguments'] = scriptArgs; 130 } else if (typeof arguments != 'undefined') { 131 Module['arguments'] = arguments; 132 } 133 134 this['Module'] = Module; 135 136 eval("if (typeof gc === 'function' && gc.toString().indexOf('[native code]') > 0) var gc = undefined"); // wipe out the SpiderMonkey shell 'gc' function, which can confuse closure (uses it as a minified name, and it is then initted to a non-falsey value unexpectedly) 137 } 138 else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { 139 Module['read'] = function read(url) { 140 var xhr = new XMLHttpRequest(); 141 xhr.open('GET', url, false); 142 xhr.send(null); 143 return xhr.responseText; 144 }; 145 146 if (typeof arguments != 'undefined') { 147 Module['arguments'] = arguments; 148 } 149 150 if (typeof console !== 'undefined') { 151 if (!Module['print']) Module['print'] = function print(x) { 152 console.log(x); 153 }; 154 if (!Module['printErr']) Module['printErr'] = function printErr(x) { 155 console.log(x); 156 }; 157 } else { 158 // Probably a worker, and without console.log. We can do very little here... 159 var TRY_USE_DUMP = false; 160 if (!Module['print']) Module['print'] = (TRY_USE_DUMP && (typeof(dump) !== "undefined") ? (function(x) { 161 dump(x); 162 }) : (function(x) { 163 // self.postMessage(x); // enable this if you want stdout to be sent as messages 164 })); 165 } 166 167 if (ENVIRONMENT_IS_WEB) { 168 window['Module'] = Module; 169 } else { 170 Module['load'] = importScripts; 171 } 172 } 173 else { 174 // Unreachable because SHELL is dependant on the others 175 throw 'Unknown runtime environment. Where are we?'; 176 } 177 178 function globalEval(x) { 179 eval.call(null, x); 180 } 181 if (!Module['load'] == 'undefined' && Module['read']) { 182 Module['load'] = function load(f) { 183 globalEval(Module['read'](f)); 184 }; 185 } 186 if (!Module['print']) { 187 Module['print'] = function(){}; 188 } 189 if (!Module['printErr']) { 190 Module['printErr'] = Module['print']; 191 } 192 if (!Module['arguments']) { 193 Module['arguments'] = []; 194 } 195 // *** Environment setup code *** 196 197 // Closure helpers 198 Module.print = Module['print']; 199 Module.printErr = Module['printErr']; 200 201 // Callbacks 202 Module['preRun'] = []; 203 Module['postRun'] = []; 204 205 // Merge back in the overrides 206 for (var key in moduleOverrides) { 207 if (moduleOverrides.hasOwnProperty(key)) { 208 Module[key] = moduleOverrides[key]; 209 } 210 } 211 212 213 214 // === Auto-generated preamble library stuff === 215 216 //======================================== 217 // Runtime code shared with compiler 218 //======================================== 219 220 var Runtime = { 221 stackSave: function () { 222 return STACKTOP; 223 }, 224 stackRestore: function (stackTop) { 225 STACKTOP = stackTop; 226 }, 227 forceAlign: function (target, quantum) { 228 quantum = quantum || 4; 229 if (quantum == 1) return target; 230 if (isNumber(target) && isNumber(quantum)) { 231 return Math.ceil(target/quantum)*quantum; 232 } else if (isNumber(quantum) && isPowerOfTwo(quantum)) { 233 return '(((' +target + ')+' + (quantum-1) + ')&' + -quantum + ')'; 234 } 235 return 'Math.ceil((' + target + ')/' + quantum + ')*' + quantum; 236 }, 237 isNumberType: function (type) { 238 return type in Runtime.INT_TYPES || type in Runtime.FLOAT_TYPES; 239 }, 240 isPointerType: function isPointerType(type) { 241 return type[type.length-1] == '*'; 242 }, 243 isStructType: function isStructType(type) { 244 if (isPointerType(type)) return false; 245 if (isArrayType(type)) return true; 246 if (/<?\{ ?[^}]* ?\}>?/.test(type)) return true; // { i32, i8 } etc. - anonymous struct types 247 // See comment in isStructPointerType() 248 return type[0] == '%'; 249 }, 250 INT_TYPES: {"i1":0,"i8":0,"i16":0,"i32":0,"i64":0}, 251 FLOAT_TYPES: {"float":0,"double":0}, 252 or64: function (x, y) { 253 var l = (x | 0) | (y | 0); 254 var h = (Math.round(x / 4294967296) | Math.round(y / 4294967296)) * 4294967296; 255 return l + h; 256 }, 257 and64: function (x, y) { 258 var l = (x | 0) & (y | 0); 259 var h = (Math.round(x / 4294967296) & Math.round(y / 4294967296)) * 4294967296; 260 return l + h; 261 }, 262 xor64: function (x, y) { 263 var l = (x | 0) ^ (y | 0); 264 var h = (Math.round(x / 4294967296) ^ Math.round(y / 4294967296)) * 4294967296; 265 return l + h; 266 }, 267 getNativeTypeSize: function (type) { 268 switch (type) { 269 case 'i1': case 'i8': return 1; 270 case 'i16': return 2; 271 case 'i32': return 4; 272 case 'i64': return 8; 273 case 'float': return 4; 274 case 'double': return 8; 275 default: { 276 if (type[type.length-1] === '*') { 277 return Runtime.QUANTUM_SIZE; // A pointer 278 } else if (type[0] === 'i') { 279 var bits = parseInt(type.substr(1)); 280 assert(bits % 8 === 0); 281 return bits/8; 282 } else { 283 return 0; 284 } 285 } 286 } 287 }, 288 getNativeFieldSize: function (type) { 289 return Math.max(Runtime.getNativeTypeSize(type), Runtime.QUANTUM_SIZE); 290 }, 291 dedup: function dedup(items, ident) { 292 var seen = {}; 293 if (ident) { 294 return items.filter(function(item) { 295 if (seen[item[ident]]) return false; 296 seen[item[ident]] = true; 297 return true; 298 }); 299 } else { 300 return items.filter(function(item) { 301 if (seen[item]) return false; 302 seen[item] = true; 303 return true; 304 }); 305 } 306 }, 307 set: function set() { 308 var args = typeof arguments[0] === 'object' ? arguments[0] : arguments; 309 var ret = {}; 310 for (var i = 0; i < args.length; i++) { 311 ret[args[i]] = 0; 312 } 313 return ret; 314 }, 315 STACK_ALIGN: 8, 316 getAlignSize: function (type, size, vararg) { 317 // we align i64s and doubles on 64-bit boundaries, unlike x86 318 if (!vararg && (type == 'i64' || type == 'double')) return 8; 319 if (!type) return Math.min(size, 8); // align structures internally to 64 bits 320 return Math.min(size || (type ? Runtime.getNativeFieldSize(type) : 0), Runtime.QUANTUM_SIZE); 321 }, 322 calculateStructAlignment: function calculateStructAlignment(type) { 323 type.flatSize = 0; 324 type.alignSize = 0; 325 var diffs = []; 326 var prev = -1; 327 var index = 0; 328 type.flatIndexes = type.fields.map(function(field) { 329 index++; 330 var size, alignSize; 331 if (Runtime.isNumberType(field) || Runtime.isPointerType(field)) { 332 size = Runtime.getNativeTypeSize(field); // pack char; char; in structs, also char[X]s. 333 alignSize = Runtime.getAlignSize(field, size); 334 } else if (Runtime.isStructType(field)) { 335 if (field[1] === '0') { 336 // this is [0 x something]. When inside another structure like here, it must be at the end, 337 // and it adds no size 338 // XXX this happens in java-nbody for example... assert(index === type.fields.length, 'zero-length in the middle!'); 339 size = 0; 340 if (Types.types[field]) { 341 alignSize = Runtime.getAlignSize(null, Types.types[field].alignSize); 342 } else { 343 alignSize = type.alignSize || QUANTUM_SIZE; 344 } 345 } else { 346 size = Types.types[field].flatSize; 347 alignSize = Runtime.getAlignSize(null, Types.types[field].alignSize); 348 } 349 } else if (field[0] == 'b') { 350 // bN, large number field, like a [N x i8] 351 size = field.substr(1)|0; 352 alignSize = 1; 353 } else if (field[0] === '<') { 354 // vector type 355 size = alignSize = Types.types[field].flatSize; // fully aligned 356 } else if (field[0] === 'i') { 357 // illegal integer field, that could not be legalized because it is an internal structure field 358 // it is ok to have such fields, if we just use them as markers of field size and nothing more complex 359 size = alignSize = parseInt(field.substr(1))/8; 360 assert(size % 1 === 0, 'cannot handle non-byte-size field ' + field); 361 } else { 362 assert(false, 'invalid type for calculateStructAlignment'); 363 } 364 if (type.packed) alignSize = 1; 365 type.alignSize = Math.max(type.alignSize, alignSize); 366 var curr = Runtime.alignMemory(type.flatSize, alignSize); // if necessary, place this on aligned memory 367 type.flatSize = curr + size; 368 if (prev >= 0) { 369 diffs.push(curr-prev); 370 } 371 prev = curr; 372 return curr; 373 }); 374 if (type.name_ && type.name_[0] === '[') { 375 // arrays have 2 elements, so we get the proper difference. then we scale here. that way we avoid 376 // allocating a potentially huge array for [999999 x i8] etc. 377 type.flatSize = parseInt(type.name_.substr(1))*type.flatSize/2; 378 } 379 type.flatSize = Runtime.alignMemory(type.flatSize, type.alignSize); 380 if (diffs.length == 0) { 381 type.flatFactor = type.flatSize; 382 } else if (Runtime.dedup(diffs).length == 1) { 383 type.flatFactor = diffs[0]; 384 } 385 type.needsFlattening = (type.flatFactor != 1); 386 return type.flatIndexes; 387 }, 388 generateStructInfo: function (struct, typeName, offset) { 389 var type, alignment; 390 if (typeName) { 391 offset = offset || 0; 392 type = (typeof Types === 'undefined' ? Runtime.typeInfo : Types.types)[typeName]; 393 if (!type) return null; 394 if (type.fields.length != struct.length) { 395 printErr('Number of named fields must match the type for ' + typeName + ': possibly duplicate struct names. Cannot return structInfo'); 396 return null; 397 } 398 alignment = type.flatIndexes; 399 } else { 400 var type = { fields: struct.map(function(item) { return item[0] }) }; 401 alignment = Runtime.calculateStructAlignment(type); 402 } 403 var ret = { 404 __size__: type.flatSize 405 }; 406 if (typeName) { 407 struct.forEach(function(item, i) { 408 if (typeof item === 'string') { 409 ret[item] = alignment[i] + offset; 410 } else { 411 // embedded struct 412 var key; 413 for (var k in item) key = k; 414 ret[key] = Runtime.generateStructInfo(item[key], type.fields[i], alignment[i]); 415 } 416 }); 417 } else { 418 struct.forEach(function(item, i) { 419 ret[item[1]] = alignment[i]; 420 }); 421 } 422 return ret; 423 }, 424 dynCall: function (sig, ptr, args) { 425 if (args && args.length) { 426 if (!args.splice) args = Array.prototype.slice.call(args); 427 args.splice(0, 0, ptr); 428 return Module['dynCall_' + sig].apply(null, args); 429 } else { 430 return Module['dynCall_' + sig].call(null, ptr); 431 } 432 }, 433 functionPointers: [], 434 addFunction: function (func) { 435 for (var i = 0; i < Runtime.functionPointers.length; i++) { 436 if (!Runtime.functionPointers[i]) { 437 Runtime.functionPointers[i] = func; 438 return 2*(1 + i); 439 } 440 } 441 throw 'Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.'; 442 }, 443 removeFunction: function (index) { 444 Runtime.functionPointers[(index-2)/2] = null; 445 }, 446 getAsmConst: function (code, numArgs) { 447 // code is a constant string on the heap, so we can cache these 448 if (!Runtime.asmConstCache) Runtime.asmConstCache = {}; 449 var func = Runtime.asmConstCache[code]; 450 if (func) return func; 451 var args = []; 452 for (var i = 0; i < numArgs; i++) { 453 args.push(String.fromCharCode(36) + i); // $0, $1 etc 454 } 455 var source = Pointer_stringify(code); 456 if (source[0] === '"') { 457 // tolerate EM_ASM("..code..") even though EM_ASM(..code..) is correct 458 if (source.indexOf('"', 1) === source.length-1) { 459 source = source.substr(1, source.length-2); 460 } else { 461 // something invalid happened, e.g. EM_ASM("..code($0)..", input) 462 abort('invalid EM_ASM input |' + source + '|. Please use EM_ASM(..code..) (no quotes) or EM_ASM({ ..code($0).. }, input) (to input values)'); 463 } 464 } 465 try { 466 var evalled = eval('(function(' + args.join(',') + '){ ' + source + ' })'); // new Function does not allow upvars in node 467 } catch(e) { 468 Module.printErr('error in executing inline EM_ASM code: ' + e + ' on: \n\n' + source + '\n\nwith args |' + args + '| (make sure to use the right one out of EM_ASM, EM_ASM_ARGS, etc.)'); 469 throw e; 470 } 471 return Runtime.asmConstCache[code] = evalled; 472 }, 473 warnOnce: function (text) { 474 if (!Runtime.warnOnce.shown) Runtime.warnOnce.shown = {}; 475 if (!Runtime.warnOnce.shown[text]) { 476 Runtime.warnOnce.shown[text] = 1; 477 Module.printErr(text); 478 } 479 }, 480 funcWrappers: {}, 481 getFuncWrapper: function (func, sig) { 482 assert(sig); 483 if (!Runtime.funcWrappers[func]) { 484 Runtime.funcWrappers[func] = function dynCall_wrapper() { 485 return Runtime.dynCall(sig, func, arguments); 486 }; 487 } 488 return Runtime.funcWrappers[func]; 489 }, 490 UTF8Processor: function () { 491 var buffer = []; 492 var needed = 0; 493 this.processCChar = function (code) { 494 code = code & 0xFF; 495 496 if (buffer.length == 0) { 497 if ((code & 0x80) == 0x00) { // 0xxxxxxx 498 return String.fromCharCode(code); 499 } 500 buffer.push(code); 501 if ((code & 0xE0) == 0xC0) { // 110xxxxx 502 needed = 1; 503 } else if ((code & 0xF0) == 0xE0) { // 1110xxxx 504 needed = 2; 505 } else { // 11110xxx 506 needed = 3; 507 } 508 return ''; 509 } 510 511 if (needed) { 512 buffer.push(code); 513 needed--; 514 if (needed > 0) return ''; 515 } 516 517 var c1 = buffer[0]; 518 var c2 = buffer[1]; 519 var c3 = buffer[2]; 520 var c4 = buffer[3]; 521 var ret; 522 if (buffer.length == 2) { 523 ret = String.fromCharCode(((c1 & 0x1F) << 6) | (c2 & 0x3F)); 524 } else if (buffer.length == 3) { 525 ret = String.fromCharCode(((c1 & 0x0F) << 12) | ((c2 & 0x3F) << 6) | (c3 & 0x3F)); 526 } else { 527 // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae 528 var codePoint = ((c1 & 0x07) << 18) | ((c2 & 0x3F) << 12) | 529 ((c3 & 0x3F) << 6) | (c4 & 0x3F); 530 ret = String.fromCharCode( 531 Math.floor((codePoint - 0x10000) / 0x400) + 0xD800, 532 (codePoint - 0x10000) % 0x400 + 0xDC00); 533 } 534 buffer.length = 0; 535 return ret; 536 } 537 this.processJSString = function processJSString(string) { 538 /* TODO: use TextEncoder when present, 539 var encoder = new TextEncoder(); 540 encoder['encoding'] = "utf-8"; 541 var utf8Array = encoder['encode'](aMsg.data); 542 */ 543 string = unescape(encodeURIComponent(string)); 544 var ret = []; 545 for (var i = 0; i < string.length; i++) { 546 ret.push(string.charCodeAt(i)); 547 } 548 return ret; 549 } 550 }, 551 getCompilerSetting: function (name) { 552 throw 'You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work'; 553 }, 554 stackAlloc: function (size) { var ret = STACKTOP;STACKTOP = (STACKTOP + size)|0;STACKTOP = (((STACKTOP)+7)&-8); return ret; }, 555 staticAlloc: function (size) { var ret = STATICTOP;STATICTOP = (STATICTOP + size)|0;STATICTOP = (((STATICTOP)+7)&-8); return ret; }, 556 dynamicAlloc: function (size) { var ret = DYNAMICTOP;DYNAMICTOP = (DYNAMICTOP + size)|0;DYNAMICTOP = (((DYNAMICTOP)+7)&-8); if (DYNAMICTOP >= TOTAL_MEMORY) enlargeMemory();; return ret; }, 557 alignMemory: function (size,quantum) { var ret = size = Math.ceil((size)/(quantum ? quantum : 8))*(quantum ? quantum : 8); return ret; }, 558 makeBigInt: function (low,high,unsigned) { var ret = (unsigned ? ((+((low>>>0)))+((+((high>>>0)))*(+4294967296))) : ((+((low>>>0)))+((+((high|0)))*(+4294967296)))); return ret; }, 559 GLOBAL_BASE: 8, 560 QUANTUM_SIZE: 4, 561 __dummy__: 0 562 } 563 564 565 Module['Runtime'] = Runtime; 566 567 568 569 570 571 572 573 574 575 //======================================== 576 // Runtime essentials 577 //======================================== 578 579 var __THREW__ = 0; // Used in checking for thrown exceptions. 580 581 var ABORT = false; // whether we are quitting the application. no code should run after this. set in exit() and abort() 582 var EXITSTATUS = 0; 583 584 var undef = 0; 585 // tempInt is used for 32-bit signed values or smaller. tempBigInt is used 586 // for 32-bit unsigned values or more than 32 bits. TODO: audit all uses of tempInt 587 var tempValue, tempInt, tempBigInt, tempInt2, tempBigInt2, tempPair, tempBigIntI, tempBigIntR, tempBigIntS, tempBigIntP, tempBigIntD, tempDouble, tempFloat; 588 var tempI64, tempI64b; 589 var tempRet0, tempRet1, tempRet2, tempRet3, tempRet4, tempRet5, tempRet6, tempRet7, tempRet8, tempRet9; 590 591 function assert(condition, text) { 592 if (!condition) { 593 abort('Assertion failed: ' + text); 594 } 595 } 596 597 var globalScope = this; 598 599 // C calling interface. A convenient way to call C functions (in C files, or 600 // defined with extern "C"). 601 // 602 // Note: LLVM optimizations can inline and remove functions, after which you will not be 603 // able to call them. Closure can also do so. To avoid that, add your function to 604 // the exports using something like 605 // 606 // -s EXPORTED_FUNCTIONS='["_main", "_myfunc"]' 607 // 608 // @param ident The name of the C function (note that C++ functions will be name-mangled - use extern "C") 609 // @param returnType The return type of the function, one of the JS types 'number', 'string' or 'array' (use 'number' for any C pointer, and 610 // 'array' for JavaScript arrays and typed arrays; note that arrays are 8-bit). 611 // @param argTypes An array of the types of arguments for the function (if there are no arguments, this can be ommitted). Types are as in returnType, 612 // except that 'array' is not possible (there is no way for us to know the length of the array) 613 // @param args An array of the arguments to the function, as native JS values (as in returnType) 614 // Note that string arguments will be stored on the stack (the JS string will become a C string on the stack). 615 // @return The return value, as a native JS value (as in returnType) 616 function ccall(ident, returnType, argTypes, args) { 617 return ccallFunc(getCFunc(ident), returnType, argTypes, args); 618 } 619 Module["ccall"] = ccall; 620 621 // Returns the C function with a specified identifier (for C++, you need to do manual name mangling) 622 function getCFunc(ident) { 623 try { 624 var func = Module['_' + ident]; // closure exported function 625 if (!func) func = eval('_' + ident); // explicit lookup 626 } catch(e) { 627 } 628 assert(func, 'Cannot call unknown function ' + ident + ' (perhaps LLVM optimizations or closure removed it?)'); 629 return func; 630 } 631 632 // Internal function that does a C call using a function, not an identifier 633 function ccallFunc(func, returnType, argTypes, args) { 634 var stack = 0; 635 function toC(value, type) { 636 if (type == 'string') { 637 if (value === null || value === undefined || value === 0) return 0; // null string 638 value = intArrayFromString(value); 639 type = 'array'; 640 } 641 if (type == 'array') { 642 if (!stack) stack = Runtime.stackSave(); 643 var ret = Runtime.stackAlloc(value.length); 644 writeArrayToMemory(value, ret); 645 return ret; 646 } 647 return value; 648 } 649 function fromC(value, type) { 650 if (type == 'string') { 651 return Pointer_stringify(value); 652 } 653 assert(type != 'array'); 654 return value; 655 } 656 var i = 0; 657 var cArgs = args ? args.map(function(arg) { 658 return toC(arg, argTypes[i++]); 659 }) : []; 660 var ret = fromC(func.apply(null, cArgs), returnType); 661 if (stack) Runtime.stackRestore(stack); 662 return ret; 663 } 664 665 // Returns a native JS wrapper for a C function. This is similar to ccall, but 666 // returns a function you can call repeatedly in a normal way. For example: 667 // 668 // var my_function = cwrap('my_c_function', 'number', ['number', 'number']); 669 // alert(my_function(5, 22)); 670 // alert(my_function(99, 12)); 671 // 672 function cwrap(ident, returnType, argTypes) { 673 var func = getCFunc(ident); 674 return function() { 675 return ccallFunc(func, returnType, argTypes, Array.prototype.slice.call(arguments)); 676 } 677 } 678 Module["cwrap"] = cwrap; 679 680 // Sets a value in memory in a dynamic way at run-time. Uses the 681 // type data. This is the same as makeSetValue, except that 682 // makeSetValue is done at compile-time and generates the needed 683 // code then, whereas this function picks the right code at 684 // run-time. 685 // Note that setValue and getValue only do *aligned* writes and reads! 686 // Note that ccall uses JS types as for defining types, while setValue and 687 // getValue need LLVM types ('i8', 'i32') - this is a lower-level operation 688 function setValue(ptr, value, type, noSafe) { 689 type = type || 'i8'; 690 if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit 691 switch(type) { 692 case 'i1': HEAP8[(ptr)]=value; break; 693 case 'i8': HEAP8[(ptr)]=value; break; 694 case 'i16': HEAP16[((ptr)>>1)]=value; break; 695 case 'i32': HEAP32[((ptr)>>2)]=value; break; 696 case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math_abs(tempDouble))) >= (+1) ? (tempDouble > (+0) ? ((Math_min((+(Math_floor((tempDouble)/(+4294967296)))), (+4294967295)))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/(+4294967296))))))>>>0) : 0)],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>2)]=tempI64[1]); break; 697 case 'float': HEAPF32[((ptr)>>2)]=value; break; 698 case 'double': HEAPF64[((ptr)>>3)]=value; break; 699 default: abort('invalid type for setValue: ' + type); 700 } 701 } 702 Module['setValue'] = setValue; 703 704 // Parallel to setValue. 705 function getValue(ptr, type, noSafe) { 706 type = type || 'i8'; 707 if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit 708 switch(type) { 709 case 'i1': return HEAP8[(ptr)]; 710 case 'i8': return HEAP8[(ptr)]; 711 case 'i16': return HEAP16[((ptr)>>1)]; 712 case 'i32': return HEAP32[((ptr)>>2)]; 713 case 'i64': return HEAP32[((ptr)>>2)]; 714 case 'float': return HEAPF32[((ptr)>>2)]; 715 case 'double': return HEAPF64[((ptr)>>3)]; 716 default: abort('invalid type for setValue: ' + type); 717 } 718 return null; 719 } 720 Module['getValue'] = getValue; 721 722 var ALLOC_NORMAL = 0; // Tries to use _malloc() 723 var ALLOC_STACK = 1; // Lives for the duration of the current function call 724 var ALLOC_STATIC = 2; // Cannot be freed 725 var ALLOC_DYNAMIC = 3; // Cannot be freed except through sbrk 726 var ALLOC_NONE = 4; // Do not allocate 727 Module['ALLOC_NORMAL'] = ALLOC_NORMAL; 728 Module['ALLOC_STACK'] = ALLOC_STACK; 729 Module['ALLOC_STATIC'] = ALLOC_STATIC; 730 Module['ALLOC_DYNAMIC'] = ALLOC_DYNAMIC; 731 Module['ALLOC_NONE'] = ALLOC_NONE; 732 733 // allocate(): This is for internal use. You can use it yourself as well, but the interface 734 // is a little tricky (see docs right below). The reason is that it is optimized 735 // for multiple syntaxes to save space in generated code. So you should 736 // normally not use allocate(), and instead allocate memory using _malloc(), 737 // initialize it with setValue(), and so forth. 738 // @slab: An array of data, or a number. If a number, then the size of the block to allocate, 739 // in *bytes* (note that this is sometimes confusing: the next parameter does not 740 // affect this!) 741 // @types: Either an array of types, one for each byte (or 0 if no type at that position), 742 // or a single type which is used for the entire block. This only matters if there 743 // is initial data - if @slab is a number, then this does not matter at all and is 744 // ignored. 745 // @allocator: How to allocate memory, see ALLOC_* 746 function allocate(slab, types, allocator, ptr) { 747 var zeroinit, size; 748 if (typeof slab === 'number') { 749 zeroinit = true; 750 size = slab; 751 } else { 752 zeroinit = false; 753 size = slab.length; 754 } 755 756 var singleType = typeof types === 'string' ? types : null; 757 758 var ret; 759 if (allocator == ALLOC_NONE) { 760 ret = ptr; 761 } else { 762 ret = [_malloc, Runtime.stackAlloc, Runtime.staticAlloc, Runtime.dynamicAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length)); 763 } 764 765 if (zeroinit) { 766 var ptr = ret, stop; 767 assert((ret & 3) == 0); 768 stop = ret + (size & ~3); 769 for (; ptr < stop; ptr += 4) { 770 HEAP32[((ptr)>>2)]=0; 771 } 772 stop = ret + size; 773 while (ptr < stop) { 774 HEAP8[((ptr++)|0)]=0; 775 } 776 return ret; 777 } 778 779 if (singleType === 'i8') { 780 if (slab.subarray || slab.slice) { 781 HEAPU8.set(slab, ret); 782 } else { 783 HEAPU8.set(new Uint8Array(slab), ret); 784 } 785 return ret; 786 } 787 788 var i = 0, type, typeSize, previousType; 789 while (i < size) { 790 var curr = slab[i]; 791 792 if (typeof curr === 'function') { 793 curr = Runtime.getFunctionIndex(curr); 794 } 795 796 type = singleType || types[i]; 797 if (type === 0) { 798 i++; 799 continue; 800 } 801 802 if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later 803 804 setValue(ret+i, curr, type); 805 806 // no need to look up size unless type changes, so cache it 807 if (previousType !== type) { 808 typeSize = Runtime.getNativeTypeSize(type); 809 previousType = type; 810 } 811 i += typeSize; 812 } 813 814 return ret; 815 } 816 Module['allocate'] = allocate; 817 818 function Pointer_stringify(ptr, /* optional */ length) { 819 // TODO: use TextDecoder 820 // Find the length, and check for UTF while doing so 821 var hasUtf = false; 822 var t; 823 var i = 0; 824 while (1) { 825 t = HEAPU8[(((ptr)+(i))|0)]; 826 if (t >= 128) hasUtf = true; 827 else if (t == 0 && !length) break; 828 i++; 829 if (length && i == length) break; 830 } 831 if (!length) length = i; 832 833 var ret = ''; 834 835 if (!hasUtf) { 836 var MAX_CHUNK = 1024; // split up into chunks, because .apply on a huge string can overflow the stack 837 var curr; 838 while (length > 0) { 839 curr = String.fromCharCode.apply(String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK))); 840 ret = ret ? ret + curr : curr; 841 ptr += MAX_CHUNK; 842 length -= MAX_CHUNK; 843 } 844 return ret; 845 } 846 847 var utf8 = new Runtime.UTF8Processor(); 848 for (i = 0; i < length; i++) { 849 t = HEAPU8[(((ptr)+(i))|0)]; 850 ret += utf8.processCChar(t); 851 } 852 return ret; 853 } 854 Module['Pointer_stringify'] = Pointer_stringify; 855 856 // Given a pointer 'ptr' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns 857 // a copy of that string as a Javascript String object. 858 function UTF16ToString(ptr) { 859 var i = 0; 860 861 var str = ''; 862 while (1) { 863 var codeUnit = HEAP16[(((ptr)+(i*2))>>1)]; 864 if (codeUnit == 0) 865 return str; 866 ++i; 867 // fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through. 868 str += String.fromCharCode(codeUnit); 869 } 870 } 871 Module['UTF16ToString'] = UTF16ToString; 872 873 // Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', 874 // null-terminated and encoded in UTF16LE form. The copy will require at most (str.length*2+1)*2 bytes of space in the HEAP. 875 function stringToUTF16(str, outPtr) { 876 for(var i = 0; i < str.length; ++i) { 877 // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP. 878 var codeUnit = str.charCodeAt(i); // possibly a lead surrogate 879 HEAP16[(((outPtr)+(i*2))>>1)]=codeUnit; 880 } 881 // Null-terminate the pointer to the HEAP. 882 HEAP16[(((outPtr)+(str.length*2))>>1)]=0; 883 } 884 Module['stringToUTF16'] = stringToUTF16; 885 886 // Given a pointer 'ptr' to a null-terminated UTF32LE-encoded string in the emscripten HEAP, returns 887 // a copy of that string as a Javascript String object. 888 function UTF32ToString(ptr) { 889 var i = 0; 890 891 var str = ''; 892 while (1) { 893 var utf32 = HEAP32[(((ptr)+(i*4))>>2)]; 894 if (utf32 == 0) 895 return str; 896 ++i; 897 // 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. 898 if (utf32 >= 0x10000) { 899 var ch = utf32 - 0x10000; 900 str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF)); 901 } else { 902 str += String.fromCharCode(utf32); 903 } 904 } 905 } 906 Module['UTF32ToString'] = UTF32ToString; 907 908 // Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr', 909 // null-terminated and encoded in UTF32LE form. The copy will require at most (str.length+1)*4 bytes of space in the HEAP, 910 // but can use less, since str.length does not return the number of characters in the string, but the number of UTF-16 code units in the string. 911 function stringToUTF32(str, outPtr) { 912 var iChar = 0; 913 for(var iCodeUnit = 0; iCodeUnit < str.length; ++iCodeUnit) { 914 // 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. 915 var codeUnit = str.charCodeAt(iCodeUnit); // possibly a lead surrogate 916 if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) { 917 var trailSurrogate = str.charCodeAt(++iCodeUnit); 918 codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF); 919 } 920 HEAP32[(((outPtr)+(iChar*4))>>2)]=codeUnit; 921 ++iChar; 922 } 923 // Null-terminate the pointer to the HEAP. 924 HEAP32[(((outPtr)+(iChar*4))>>2)]=0; 925 } 926 Module['stringToUTF32'] = stringToUTF32; 927 928 function demangle(func) { 929 var i = 3; 930 // params, etc. 931 var basicTypes = { 932 'v': 'void', 933 'b': 'bool', 934 'c': 'char', 935 's': 'short', 936 'i': 'int', 937 'l': 'long', 938 'f': 'float', 939 'd': 'double', 940 'w': 'wchar_t', 941 'a': 'signed char', 942 'h': 'unsigned char', 943 't': 'unsigned short', 944 'j': 'unsigned int', 945 'm': 'unsigned long', 946 'x': 'long long', 947 'y': 'unsigned long long', 948 'z': '...' 949 }; 950 var subs = []; 951 var first = true; 952 function dump(x) { 953 //return; 954 if (x) Module.print(x); 955 Module.print(func); 956 var pre = ''; 957 for (var a = 0; a < i; a++) pre += ' '; 958 Module.print (pre + '^'); 959 } 960 function parseNested() { 961 i++; 962 if (func[i] === 'K') i++; // ignore const 963 var parts = []; 964 while (func[i] !== 'E') { 965 if (func[i] === 'S') { // substitution 966 i++; 967 var next = func.indexOf('_', i); 968 var num = func.substring(i, next) || 0; 969 parts.push(subs[num] || '?'); 970 i = next+1; 971 continue; 972 } 973 if (func[i] === 'C') { // constructor 974 parts.push(parts[parts.length-1]); 975 i += 2; 976 continue; 977 } 978 var size = parseInt(func.substr(i)); 979 var pre = size.toString().length; 980 if (!size || !pre) { i--; break; } // counter i++ below us 981 var curr = func.substr(i + pre, size); 982 parts.push(curr); 983 subs.push(curr); 984 i += pre + size; 985 } 986 i++; // skip E 987 return parts; 988 } 989 function parse(rawList, limit, allowVoid) { // main parser 990 limit = limit || Infinity; 991 var ret = '', list = []; 992 function flushList() { 993 return '(' + list.join(', ') + ')'; 994 } 995 var name; 996 if (func[i] === 'N') { 997 // namespaced N-E 998 name = parseNested().join('::'); 999 limit--; 1000 if (limit === 0) return rawList ? [name] : name; 1001 } else { 1002 // not namespaced 1003 if (func[i] === 'K' || (first && func[i] === 'L')) i++; // ignore const and first 'L' 1004 var size = parseInt(func.substr(i)); 1005 if (size) { 1006 var pre = size.toString().length; 1007 name = func.substr(i + pre, size); 1008 i += pre + size; 1009 } 1010 } 1011 first = false; 1012 if (func[i] === 'I') { 1013 i++; 1014 var iList = parse(true); 1015 var iRet = parse(true, 1, true); 1016 ret += iRet[0] + ' ' + name + '<' + iList.join(', ') + '>'; 1017 } else { 1018 ret = name; 1019 } 1020 paramLoop: while (i < func.length && limit-- > 0) { 1021 //dump('paramLoop'); 1022 var c = func[i++]; 1023 if (c in basicTypes) { 1024 list.push(basicTypes[c]); 1025 } else { 1026 switch (c) { 1027 case 'P': list.push(parse(true, 1, true)[0] + '*'); break; // pointer 1028 case 'R': list.push(parse(true, 1, true)[0] + '&'); break; // reference 1029 case 'L': { // literal 1030 i++; // skip basic type 1031 var end = func.indexOf('E', i); 1032 var size = end - i; 1033 list.push(func.substr(i, size)); 1034 i += size + 2; // size + 'EE' 1035 break; 1036 } 1037 case 'A': { // array 1038 var size = parseInt(func.substr(i)); 1039 i += size.toString().length; 1040 if (func[i] !== '_') throw '?'; 1041 i++; // skip _ 1042 list.push(parse(true, 1, true)[0] + ' [' + size + ']'); 1043 break; 1044 } 1045 case 'E': break paramLoop; 1046 default: ret += '?' + c; break paramLoop; 1047 } 1048 } 1049 } 1050 if (!allowVoid && list.length === 1 && list[0] === 'void') list = []; // avoid (void) 1051 if (rawList) { 1052 if (ret) { 1053 list.push(ret + '?'); 1054 } 1055 return list; 1056 } else { 1057 return ret + flushList(); 1058 } 1059 } 1060 try { 1061 // Special-case the entry point, since its name differs from other name mangling. 1062 if (func == 'Object._main' || func == '_main') { 1063 return 'main()'; 1064 } 1065 if (typeof func === 'number') func = Pointer_stringify(func); 1066 if (func[0] !== '_') return func; 1067 if (func[1] !== '_') return func; // C function 1068 if (func[2] !== 'Z') return func; 1069 switch (func[3]) { 1070 case 'n': return 'operator new()'; 1071 case 'd': return 'operator delete()'; 1072 } 1073 return parse(); 1074 } catch(e) { 1075 return func; 1076 } 1077 } 1078 1079 function demangleAll(text) { 1080 return text.replace(/__Z[\w\d_]+/g, function(x) { var y = demangle(x); return x === y ? x : (x + ' [' + y + ']') }); 1081 } 1082 1083 function stackTrace() { 1084 var stack = new Error().stack; 1085 return stack ? demangleAll(stack) : '(no stack trace available)'; // Stack trace is not available at least on IE10 and Safari 6. 1086 } 1087 1088 // Memory management 1089 1090 var PAGE_SIZE = 4096; 1091 function alignMemoryPage(x) { 1092 return (x+4095)&-4096; 1093 } 1094 1095 var HEAP; 1096 var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; 1097 1098 var STATIC_BASE = 0, STATICTOP = 0, staticSealed = false; // static area 1099 var STACK_BASE = 0, STACKTOP = 0, STACK_MAX = 0; // stack area 1100 var DYNAMIC_BASE = 0, DYNAMICTOP = 0; // dynamic area handled by sbrk 1101 1102 function enlargeMemory() { 1103 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.'); 1104 } 1105 1106 var TOTAL_STACK = Module['TOTAL_STACK'] || 5242880; 1107 var TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 134217728; 1108 var FAST_MEMORY = Module['FAST_MEMORY'] || 2097152; 1109 1110 var totalMemory = 4096; 1111 while (totalMemory < TOTAL_MEMORY || totalMemory < 2*TOTAL_STACK) { 1112 if (totalMemory < 16*1024*1024) { 1113 totalMemory *= 2; 1114 } else { 1115 totalMemory += 16*1024*1024 1116 } 1117 } 1118 if (totalMemory !== TOTAL_MEMORY) { 1119 Module.printErr('increasing TOTAL_MEMORY to ' + totalMemory + ' to be more reasonable'); 1120 TOTAL_MEMORY = totalMemory; 1121 } 1122 1123 // Initialize the runtime's memory 1124 // check for full engine support (use string 'subarray' to avoid closure compiler confusion) 1125 assert(typeof Int32Array !== 'undefined' && typeof Float64Array !== 'undefined' && !!(new Int32Array(1)['subarray']) && !!(new Int32Array(1)['set']), 1126 'JS engine does not provide full typed array support'); 1127 1128 var buffer = new ArrayBuffer(TOTAL_MEMORY); 1129 HEAP8 = new Int8Array(buffer); 1130 HEAP16 = new Int16Array(buffer); 1131 HEAP32 = new Int32Array(buffer); 1132 HEAPU8 = new Uint8Array(buffer); 1133 HEAPU16 = new Uint16Array(buffer); 1134 HEAPU32 = new Uint32Array(buffer); 1135 HEAPF32 = new Float32Array(buffer); 1136 HEAPF64 = new Float64Array(buffer); 1137 1138 // Endianness check (note: assumes compiler arch was little-endian) 1139 HEAP32[0] = 255; 1140 assert(HEAPU8[0] === 255 && HEAPU8[3] === 0, 'Typed arrays 2 must be run on a little-endian system'); 1141 1142 Module['HEAP'] = HEAP; 1143 Module['HEAP8'] = HEAP8; 1144 Module['HEAP16'] = HEAP16; 1145 Module['HEAP32'] = HEAP32; 1146 Module['HEAPU8'] = HEAPU8; 1147 Module['HEAPU16'] = HEAPU16; 1148 Module['HEAPU32'] = HEAPU32; 1149 Module['HEAPF32'] = HEAPF32; 1150 Module['HEAPF64'] = HEAPF64; 1151 1152 function callRuntimeCallbacks(callbacks) { 1153 while(callbacks.length > 0) { 1154 var callback = callbacks.shift(); 1155 if (typeof callback == 'function') { 1156 callback(); 1157 continue; 1158 } 1159 var func = callback.func; 1160 if (typeof func === 'number') { 1161 if (callback.arg === undefined) { 1162 Runtime.dynCall('v', func); 1163 } else { 1164 Runtime.dynCall('vi', func, [callback.arg]); 1165 } 1166 } else { 1167 func(callback.arg === undefined ? null : callback.arg); 1168 } 1169 } 1170 } 1171 1172 var __ATPRERUN__ = []; // functions called before the runtime is initialized 1173 var __ATINIT__ = []; // functions called during startup 1174 var __ATMAIN__ = []; // functions called when main() is to be run 1175 var __ATEXIT__ = []; // functions called during shutdown 1176 var __ATPOSTRUN__ = []; // functions called after the runtime has exited 1177 1178 var runtimeInitialized = false; 1179 1180 function preRun() { 1181 // compatibility - merge in anything from Module['preRun'] at this time 1182 if (Module['preRun']) { 1183 if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']]; 1184 while (Module['preRun'].length) { 1185 addOnPreRun(Module['preRun'].shift()); 1186 } 1187 } 1188 callRuntimeCallbacks(__ATPRERUN__); 1189 } 1190 1191 function ensureInitRuntime() { 1192 if (runtimeInitialized) return; 1193 runtimeInitialized = true; 1194 callRuntimeCallbacks(__ATINIT__); 1195 } 1196 1197 function preMain() { 1198 callRuntimeCallbacks(__ATMAIN__); 1199 } 1200 1201 function exitRuntime() { 1202 callRuntimeCallbacks(__ATEXIT__); 1203 } 1204 1205 function postRun() { 1206 // compatibility - merge in anything from Module['postRun'] at this time 1207 if (Module['postRun']) { 1208 if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']]; 1209 while (Module['postRun'].length) { 1210 addOnPostRun(Module['postRun'].shift()); 1211 } 1212 } 1213 callRuntimeCallbacks(__ATPOSTRUN__); 1214 } 1215 1216 function addOnPreRun(cb) { 1217 __ATPRERUN__.unshift(cb); 1218 } 1219 Module['addOnPreRun'] = Module.addOnPreRun = addOnPreRun; 1220 1221 function addOnInit(cb) { 1222 __ATINIT__.unshift(cb); 1223 } 1224 Module['addOnInit'] = Module.addOnInit = addOnInit; 1225 1226 function addOnPreMain(cb) { 1227 __ATMAIN__.unshift(cb); 1228 } 1229 Module['addOnPreMain'] = Module.addOnPreMain = addOnPreMain; 1230 1231 function addOnExit(cb) { 1232 __ATEXIT__.unshift(cb); 1233 } 1234 Module['addOnExit'] = Module.addOnExit = addOnExit; 1235 1236 function addOnPostRun(cb) { 1237 __ATPOSTRUN__.unshift(cb); 1238 } 1239 Module['addOnPostRun'] = Module.addOnPostRun = addOnPostRun; 1240 1241 // Tools 1242 1243 // This processes a JS string into a C-line array of numbers, 0-terminated. 1244 // For LLVM-originating strings, see parser.js:parseLLVMString function 1245 function intArrayFromString(stringy, dontAddNull, length /* optional */) { 1246 var ret = (new Runtime.UTF8Processor()).processJSString(stringy); 1247 if (length) { 1248 ret.length = length; 1249 } 1250 if (!dontAddNull) { 1251 ret.push(0); 1252 } 1253 return ret; 1254 } 1255 Module['intArrayFromString'] = intArrayFromString; 1256 1257 function intArrayToString(array) { 1258 var ret = []; 1259 for (var i = 0; i < array.length; i++) { 1260 var chr = array[i]; 1261 if (chr > 0xFF) { 1262 chr &= 0xFF; 1263 } 1264 ret.push(String.fromCharCode(chr)); 1265 } 1266 return ret.join(''); 1267 } 1268 Module['intArrayToString'] = intArrayToString; 1269 1270 // Write a Javascript array to somewhere in the heap 1271 function writeStringToMemory(string, buffer, dontAddNull) { 1272 var array = intArrayFromString(string, dontAddNull); 1273 var i = 0; 1274 while (i < array.length) { 1275 var chr = array[i]; 1276 HEAP8[(((buffer)+(i))|0)]=chr; 1277 i = i + 1; 1278 } 1279 } 1280 Module['writeStringToMemory'] = writeStringToMemory; 1281 1282 function writeArrayToMemory(array, buffer) { 1283 for (var i = 0; i < array.length; i++) { 1284 HEAP8[(((buffer)+(i))|0)]=array[i]; 1285 } 1286 } 1287 Module['writeArrayToMemory'] = writeArrayToMemory; 1288 1289 function writeAsciiToMemory(str, buffer, dontAddNull) { 1290 for (var i = 0; i < str.length; i++) { 1291 HEAP8[(((buffer)+(i))|0)]=str.charCodeAt(i); 1292 } 1293 if (!dontAddNull) HEAP8[(((buffer)+(str.length))|0)]=0; 1294 } 1295 Module['writeAsciiToMemory'] = writeAsciiToMemory; 1296 1297 function unSign(value, bits, ignore) { 1298 if (value >= 0) { 1299 return value; 1300 } 1301 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 1302 : Math.pow(2, bits) + value; 1303 } 1304 function reSign(value, bits, ignore) { 1305 if (value <= 0) { 1306 return value; 1307 } 1308 var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32 1309 : Math.pow(2, bits-1); 1310 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 1311 // but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors 1312 // TODO: In i64 mode 1, resign the two parts separately and safely 1313 value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts 1314 } 1315 return value; 1316 } 1317 1318 // check for imul support, and also for correctness ( https://bugs.webkit.org/show_bug.cgi?id=126345 ) 1319 if (!Math['imul'] || Math['imul'](0xffffffff, 5) !== -5) Math['imul'] = function imul(a, b) { 1320 var ah = a >>> 16; 1321 var al = a & 0xffff; 1322 var bh = b >>> 16; 1323 var bl = b & 0xffff; 1324 return (al*bl + ((ah*bl + al*bh) << 16))|0; 1325 }; 1326 Math.imul = Math['imul']; 1327 1328 1329 var Math_abs = Math.abs; 1330 var Math_cos = Math.cos; 1331 var Math_sin = Math.sin; 1332 var Math_tan = Math.tan; 1333 var Math_acos = Math.acos; 1334 var Math_asin = Math.asin; 1335 var Math_atan = Math.atan; 1336 var Math_atan2 = Math.atan2; 1337 var Math_exp = Math.exp; 1338 var Math_log = Math.log; 1339 var Math_sqrt = Math.sqrt; 1340 var Math_ceil = Math.ceil; 1341 var Math_floor = Math.floor; 1342 var Math_pow = Math.pow; 1343 var Math_imul = Math.imul; 1344 var Math_fround = Math.fround; 1345 var Math_min = Math.min; 1346 1347 // A counter of dependencies for calling run(). If we need to 1348 // do asynchronous work before running, increment this and 1349 // decrement it. Incrementing must happen in a place like 1350 // PRE_RUN_ADDITIONS (used by emcc to add file preloading). 1351 // Note that you can add dependencies in preRun, even though 1352 // it happens right before run - run will be postponed until 1353 // the dependencies are met. 1354 var runDependencies = 0; 1355 var runDependencyWatcher = null; 1356 var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled 1357 1358 function addRunDependency(id) { 1359 runDependencies++; 1360 if (Module['monitorRunDependencies']) { 1361 Module['monitorRunDependencies'](runDependencies); 1362 } 1363 } 1364 Module['addRunDependency'] = addRunDependency; 1365 function removeRunDependency(id) { 1366 runDependencies--; 1367 if (Module['monitorRunDependencies']) { 1368 Module['monitorRunDependencies'](runDependencies); 1369 } 1370 if (runDependencies == 0) { 1371 if (runDependencyWatcher !== null) { 1372 clearInterval(runDependencyWatcher); 1373 runDependencyWatcher = null; 1374 } 1375 if (dependenciesFulfilled) { 1376 var callback = dependenciesFulfilled; 1377 dependenciesFulfilled = null; 1378 callback(); // can add another dependenciesFulfilled 1379 } 1380 } 1381 } 1382 Module['removeRunDependency'] = removeRunDependency; 1383 1384 Module["preloadedImages"] = {}; // maps url to image data 1385 Module["preloadedAudios"] = {}; // maps url to audio data 1386 1387 1388 var memoryInitializer = null; 1389 1390 // === Body === 1391 1392 1393 1394 1395 1396 STATIC_BASE = 8; 1397 1398 STATICTOP = STATIC_BASE + Runtime.alignMemory(13467); 1399 /* global initializers */ __ATINIT__.push(); 1400 1401 1402 /* memory initializer */ allocate([99,97,110,110,111,116,32,99,114,101,97,116,101,32,115,116,97,116,101,58,32,110,111,116,32,101,110,111,117,103,104,32,109,101,109,111,114,121,0,0,40,101,114,114,111,114,32,111,98,106,101,99,116,32,105,115,32,110,111,116,32,97,32,115,116,114,105,110,103,41,0,0,88,0,0,0,0,0,0,0,108,117,97,0,0,0,0,0,76,85,65,95,78,79,69,78,86,0,0,0,0,0,0,0,116,111,111,32,109,97,110,121,32,114,101,115,117,108,116,115,32,116,111,32,112,114,105,110,116,0,0,0,0,0,0,0,112,114,105,110,116,0,0,0,101,114,114,111,114,32,99,97,108,108,105,110,103,32,39,112,114,105,110,116,39,32,40,37,115,41,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,105,110,116,101,114,114,117,112,116,101,100,33,0,0,0,0,95,95,116,111,115,116,114,105,110,103,0,0,0,0,0,0,40,110,111,32,101,114,114,111,114,32,109,101,115,115,97,103,101,41,0,0,0,0,0,0,61,115,116,100,105,110,0,0,60,101,111,102,62,0,0,0,114,101,116,117,114,110,32,37,115,0,0,0,0,0,0,0,95,80,82,79,77,80,84,0,95,80,82,79,77,80,84,50,0,0,0,0,0,0,0,0,62,32,0,0,0,0,0,0,62,62,32,0,0,0,0,0,97,114,103,0,0,0,0,0,45,0,0,0,0,0,0,0,45,45,0,0,0,0,0,0,116,111,111,32,109,97,110,121,32,97,114,103,117,109,101,110,116,115,32,116,111,32,115,99,114,105,112,116,0,0,0,0,61,40,99,111,109,109,97,110,100,32,108,105,110,101,41,0,114,101,113,117,105,114,101,0,61,76,85,65,95,73,78,73,84,95,53,95,50,0,0,0,61,76,85,65,95,73,78,73,84,0,0,0,0,0,0,0,76,117,97,32,53,46,50,46,50,32,32,67,111,112,121,114,105,103,104,116,32,40,67,41,32,49,57,57,52,45,50,48,49,51,32,76,117,97,46,111,114,103,44,32,80,85,67,45,82,105,111,0,0,0,0,0,37,115,58,32,0,0,0,0,39,37,115,39,32,110,101,101,100,115,32,97,114,103,117,109,101,110,116,10,0,0,0,0,117,110,114,101,99,111,103,110,105,122,101,100,32,111,112,116,105,111,110,32,39,37,115,39,10,0,0,0,0,0,0,0,117,115,97,103,101,58,32,37,115,32,91,111,112,116,105,111,110,115,93,32,91,115,99,114,105,112,116,32,91,97,114,103,115,93,93,10,65,118,97,105,108,97,98,108,101,32,111,112,116,105,111,110,115,32,97,114,101,58,10,32,32,45,101,32,115,116,97,116,32,32,101,120,101,99,117,116,101,32,115,116,114,105,110,103,32,39,115,116,97,116,39,10,32,32,45,105,32,32,32,32,32,32,32,101,110,116,101,114,32,105,110,116,101,114,97,99,116,105,118,101,32,109,111,100,101,32,97,102,116,101,114,32,101,120,101,99,117,116,105,110,103,32,39,115,99,114,105,112,116,39,10,32,32,45,108,32,110,97,109,101,32,32,114,101,113,117,105,114,101,32,108,105,98,114,97,114,121,32,39,110,97,109,101,39,10,32,32,45,118,32,32,32,32,32,32,32,115,104,111,119,32,118,101,114,115,105,111,110,32,105,110,102,111,114,109,97,116,105,111,110,10,32,32,45,69,32,32,32,32,32,32,32,105,103,110,111,114,101,32,101,110,118,105,114,111,110,109,101,110,116,32,118,97,114,105,97,98,108,101,115,10,32,32,45,45,32,32,32,32,32,32,32,115,116,111,112,32,104,97,110,100,108,105,110,103,32,111,112,116,105,111,110,115,10,32,32,45,32,32,32,32,32,32,32,32,115,116,111,112,32,104,97,110,100,108,105,110,103,32,111,112,116,105,111,110,115,32,97,110,100,32,101,120,101,99,117,116,101,32,115,116,100,105,110,10,0,0,0,0,0,0,0,37,115,10,0,0,0,0,0,0,0,0,0,0,96,127,64,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,115,10,0,0,0,0,0,115,116,97,99,107,32,116,114,97,99,101,98,97,99,107,58,0,0,0,0,0,0,0,0,10,9,46,46,46,0,0,0,83,108,110,116,0,0,0,0,10,9,37,115,58,0,0,0,37,100,58,0,0,0,0,0,32,105,110,32,0,0,0,0,10,9,40,46,46,46,116,97,105,108,32,99,97,108,108,115,46,46,46,41,0,0,0,0,98,97,100,32,97,114,103,117,109,101,110,116,32,35,37,100,32,40,37,115,41,0,0,0,110,0,0,0,0,0,0,0,109,101,116,104,111,100,0,0,99,97,108,108,105,110,103,32,39,37,115,39,32,111,110,32,98,97,100,32,115,101,108,102,32,40,37,115,41,0,0,0,63,0,0,0,0,0,0,0,98,97,100,32,97,114,103,117,109,101,110,116,32,35,37,100,32,116,111,32,39,37,115,39,32,40,37,115,41,0,0,0,83,108,0,0,0,0,0,0,37,115,58,37,100,58,32,0,0,0,0,0,0,0,0,0,37,115,58,32,37,115,0,0,101,120,105,116,0,0,0,0,105,110,118,97,108,105,100,32,111,112,116,105,111,110,32,39,37,115,39,0,0,0,0,0,115,116,97,99,107,32,111,118,101,114,102,108,111,119,32,40,37,115,41,0,0,0,0,0,115,116,97,99,107,32,111,118,101,114,102,108,111,119,0,0,118,97,108,117,101,32,101,120,112,101,99,116,101,100,0,0,98,117,102,102,101,114,32,116,111,111,32,108,97,114,103,101,0,0,0,0,0,0,0,0,61,115,116,100,105,110,0,0,64,37,115,0,0,0,0,0,114,0,0,0,0,0,0,0,111,112,101,110,0,0,0,0,114,98,0,0,0,0,0,0,114,101,111,112,101,110,0,0,114,101,97,100,0,0,0,0,111,98,106,101,99,116,32,108,101,110,103,116,104,32,105,115,32,110,111,116,32,97,32,110,117,109,98,101,114,0,0,0,95,95,116,111,115,116,114,105,110,103,0,0,0,0,0,0,116,114,117,101,0,0,0,0,102,97,108,115,101,0,0,0,110,105,108,0,0,0,0,0,37,115,58,32,37,112,0,0,95,76,79,65,68,69,68,0,110,97,109,101,32,99,111,110,102,108,105,99,116,32,102,111,114,32,109,111,100,117,108,101,32,39,37,115,39,0,0,0,116,111,111,32,109,97,110,121,32,117,112,118,97,108,117,101,115,0,0,0,0,0,0,0,109,117,108,116,105,112,108,101,32,76,117,97,32,86,77,115,32,100,101,116,101,99,116,101,100,0,0,0,0,0,0,0,118,101,114,115,105,111,110,32,109,105,115,109,97,116,99,104,58,32,97,112,112,46,32,110,101,101,100,115,32,37,102,44,32,76,117,97,32,99,111,114,101,32,112,114,111,118,105,100,101,115,32,37,102,0,0,0,98,97,100,32,99,111,110,118,101,114,115,105,111,110,32,110,117,109,98,101,114,45,62,105,110,116,59,32,109,117,115,116,32,114,101,99,111,109,112,105,108,101,32,76,117,97,32,119,105,116,104,32,112,114,111,112,101,114,32,115,101,116,116,105,110,103,115,0,0,0,0,0,80,65,78,73,67,58,32,117,110,112,114,111,116,101,99,116,101,100,32,101,114,114,111,114,32,105,110,32,99,97,108,108,32,116,111,32,76,117,97,32,65,80,73,32,40,37,115,41,10,0,0,0,0,0,0,0,239,187,191,0,0,0,0,0,99,97,110,110,111,116,32,37,115,32,37,115,58,32,37,115,0,0,0,0,0,0,0,0,37,115,32,101,120,112,101,99,116,101,100,44,32,103,111,116,32,37,115,0,0,0,0,0,102,0,0,0,0,0,0,0,46,0,0,0,0,0,0,0,102,117,110,99,116,105,111,110,32,39,37,115,39,0,0,0,109,97,105,110,32,99,104,117,110,107,0,0,0,0,0,0,102,117,110,99,116,105,111,110,32,60,37,115,58,37,100,62,0,0,0,0,0,0,0,0,97,116,116,101,109,112,116,32,116,111,32,37,115,32,37,115,32,39,37,115,39,32,40,97,32,37,115,32,118,97,108,117,101,41,0,0,0,0,0,0,97,116,116,101,109,112,116,32,116,111,32,37,115,32,97,32,37,115,32,118,97,108,117,101,0,0,0,0,0,0,0,0,99,111,110,99,97,116,101,110,97,116,101,0,0,0,0,0,112,101,114,102,111,114,109,32,97,114,105,116,104,109,101,116,105,99,32,111,110,0,0,0,97,116,116,101,109,112,116,32,116,111,32,99,111,109,112,97,114,101,32,116,119,111,32,37,115,32,118,97,108,117,101,115,0,0,0,0,0,0,0,0,97,116,116,101,109,112,116,32,116,111,32,99,111,109,112,97,114,101,32,37,115,32,119,105,116,104,32,37,115,0,0,0,37,115,58,37,100,58,32,37,115,0,0,0,0,0,0,0,108,111,99,97,108,0,0,0,95,69,78,86,0,0,0,0,103,108,111,98,97,108,0,0,102,105,101,108,100,0,0,0,117,112,118,97,108,117,101,0,99,111,110,115,116,97,110,116,0,0,0,0,0,0,0,0,109,101,116,104,111,100,0,0,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,102,111,114,32,105,116,101,114,97,116,111,114,0,0,0,0,109,101,116,97,109,101,116,104,111,100,0,0,0,0,0,0,61,91,67,93,0,0,0,0,67,0,0,0,0,0,0,0,61,63,0,0,0,0,0,0,109,97,105,110,0,0,0,0,76,117,97,0,0,0,0,0,40,42,116,101,109,112,111,114,97,114,121,41,0,0,0,0,40,42,118,97,114,97,114,103,41,0,0,0,0,0,0,0,115,116,97,99,107,32,111,118,101,114,102,108,111,119,0,0,67,32,115,116,97,99,107,32,111,118,101,114,102,108,111,119,0,0,0,0,0,0,0,0,97,116,116,101,109,112,116,32,116,111,32,121,105,101,108,100,32,97,99,114,111,115,115,32,97,32,67,45,99,97,108,108,32,98,111,117,110,100,97,114,121,0,0,0,0,0,0,0,97,116,116,101,109,112,116,32,116,111,32,121,105,101,108,100,32,102,114,111,109,32,111,117,116,115,105,100,101,32,97,32,99,111,114,111,117,116,105,110,101,0,0,0,0,0,0,0,98,105,110,97,114,121,0,0,116,101,120,116,0,0,0,0,97,116,116,101,109,112,116,32,116,111,32,108,111,97,100,32,97,32,37,115,32,99,104,117,110,107,32,40,109,111,100,101,32,105,115,32,39,37,115,39,41,0,0,0,0,0,0,0,101,114,114,111,114,32,105,110,32,101,114,114,111,114,32,104,97,110,100,108,105,110,103,0,99,97,110,110,111,116,32,114,101,115,117,109,101,32,110,111,110,45,115,117,115,112,101,110,100,101,100,32,99,111,114,111,117,116,105,110,101,0,0,0,99,97,110,110,111,116,32,114,101,115,117,109,101,32,100,101,97,100,32,99,111,114,111,117,116,105,110,101,0,0,0,0,99,97,108,108,0,0,0,0,110,111,32,109,101,115,115,97,103,101,0,0,0,0,0,0,101,114,114,111,114,32,105,110,32,95,95,103,99,32,109,101,116,97,109,101,116,104,111,100,32,40,37,115,41,0,0,0,95,80,82,69,76,79,65,68,0,0,0,0,0,0,0,0,95,71,0,0,0,0,0,0,112,97,99,107,97,103,101,0,99,111,114,111,117,116,105,110,101,0,0,0,0,0,0,0,116,97,98,108,101,0,0,0,105,111,0,0,0,0,0,0,111,115,0,0,0,0,0,0,115,116,114,105,110,103,0,0,98,105,116,51,50,0,0,0,109,97,116,104,0,0,0,0,100,101,98,117,103,0,0,0,144,11,0,0,1,0,0,0,152,11,0,0,2,0,0,0,48,13,0,0,3,0,0,0,160,11,0,0,4,0,0,0,56,13,0,0,5,0,0,0,64,13,0,0,6,0,0,0,72,13,0,0,7,0,0,0,168,11,0,0,8,0,0,0,80,13,0,0,9,0,0,0,88,13,0,0,10,0,0,0,192,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,95,73,79,95,105,110,112,117,116,0,0,0,0,0,0,0,115,116,100,105,110,0,0,0,95,73,79,95,111,117,116,112,117,116,0,0,0,0,0,0,115,116,100,111,117,116,0,0,115,116,100,101,114,114,0,0,70,73,76,69,42,0,0,0,99,97,110,110,111,116,32,99,108,111,115,101,32,115,116,97,110,100,97,114,100,32,102,105,108,101,0,0,0,0,0,0,95,95,105,110,100,101,120,0,144,11,0,0,1,0,0,0,152,11,0,0,12,0,0,0,160,11,0,0,13,0,0,0,168,11,0,0,14,0,0,0,176,11,0,0,15,0,0,0,184,11,0,0,16,0,0,0,192,11,0,0,17,0,0,0,200,11,0,0,18,0,0,0,208,11,0,0,19,0,0,0,0,0,0,0,0,0,0,0,99,108,111,115,101,0,0,0,102,108,117,115,104,0,0,0,108,105,110,101,115,0,0,0,114,101,97,100,0,0,0,0,115,101,101,107,0,0,0,0,115,101,116,118,98,117,102,0,119,114,105,116,101,0,0,0,95,95,103,99,0,0,0,0,95,95,116,111,115,116,114,105,110,103,0,0,0,0,0,0,102,105,108,101,32,40,99,108,111,115,101,100,41,0,0,0,102,105,108,101,32,40,37,112,41,0,0,0,0,0,0,0,37,46,49,52,103,0,0,0,97,116,116,101,109,112,116,32,116,111,32,117,115,101,32,97,32,99,108,111,115,101,100,32,102,105,108,101,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,72,12,0,0,80,12,0,0,88,12,0,0,0,0,0,0,110,111,0,0,0,0,0,0,102,117,108,108,0,0,0,0,108,105,110,101,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,128,12,0,0,136,12,0,0,144,12,0,0,0,0,0,0,115,101,116,0,0,0,0,0,99,117,114,0,0,0,0,0,101,110,100,0,0,0,0,0,110,111,116,32,97,110,32,105,110,116,101,103,101,114,32,105,110,32,112,114,111,112,101,114,32,114,97,110,103,101,0,0,116,111,111,32,109,97,110,121,32,97,114,103,117,109,101,110,116,115,0,0,0,0,0,0,105,110,118,97,108,105,100,32,111,112,116,105,111,110,0,0,105,110,118,97,108,105,100,32,102,111,114,109,97,116,0,0,37,108,102,0,0,0,0,0,116,111,111,32,109,97,110,121,32,111,112,116,105,111,110,115,0,0,0,0,0,0,0,0,102,105,108,101,32,105,115,32,97,108,114,101,97,100,121,32,99,108,111,115,101,100,0,0,37,115,0,0,0,0,0,0,105,110,112,117,116,0,0,0,111,112,101,110,0,0,0,0,111,117,116,112,117,116,0,0,112,111,112,101,110,0,0,0,116,109,112,102,105,108,101,0,116,121,112,101,0,0,0,0,115,116,97,110,100,97,114,100,32,37,115,32,102,105,108,101,32,105,115,32,99,108,111,115,101,100,0,0,0,0,0,0,99,108,111,115,101,100,32,102,105,108,101,0,0,0,0,0,102,105,108,101,0,0,0,0,114,0,0,0,0,0,0,0,39,112,111,112,101,110,39,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,0,0,119,0,0,0,0,0,0,0,99,97,110,110,111,116,32,111,112,101,110,32,102,105,108,101,32,39,37,115,39,32,40,37,115,41,0,0,0,0,0,0,114,119,97,0,0,0,0,0,105,110,118,97,108,105,100,32,109,111,100,101,0,0,0,0,240,14,0,0,20,0,0,0,248,14,0,0,21,0,0,0,0,15,0,0,22,0,0,0,8,15,0,0,23,0,0,0,16,15,0,0,24,0,0,0,24,15,0,0,25,0,0,0,32,15,0,0,26,0,0,0,40,15,0,0,27,0,0,0,48,15,0,0,28,0,0,0,56,15,0,0,29,0,0,0,64,15,0,0,30,0,0,0,72,15,0,0,31,0,0,0,80,15,0,0,32,0,0,0,88,15,0,0,33,0,0,0,96,15,0,0,34,0,0,0,104,15,0,0,35,0,0,0,112,15,0,0,36,0,0,0,120,15,0,0,37,0,0,0,128,15,0,0,38,0,0,0,136,15,0,0,39,0,0,0,144,15,0,0,40,0,0,0,152,15,0,0,41,0,0,0,160,15,0,0,42,0,0,0,176,15,0,0,43,0,0,0,184,15,0,0,44,0,0,0,192,15,0,0,45,0,0,0,200,15,0,0,46,0,0,0,208,15,0,0,47,0,0,0,0,0,0,0,0,0,0,0,112,105,0,0,0,0,0,0,104,117,103,101,0,0,0,0,97,98,115,0,0,0,0,0,97,99,111,115,0,0,0,0,97,115,105,110,0,0,0,0,97,116,97,110,50,0,0,0,97,116,97,110,0,0,0,0,99,101,105,108,0,0,0,0,99,111,115,104,0,0,0,0,99,111,115,0,0,0,0,0,100,101,103,0,0,0,0,0,101,120,112,0,0,0,0,0,102,108,111,111,114,0,0,0,102,109,111,100,0,0,0,0,102,114,101,120,112,0,0,0,108,100,101,120,112,0,0,0,108,111,103,49,48,0,0,0,108,111,103,0,0,0,0,0,109,97,120,0,0,0,0,0,109,105,110,0,0,0,0,0,109,111,100,102,0,0,0,0,112,111,119,0,0,0,0,0,114,97,100,0,0,0,0,0,114,97,110,100,111,109,0,0,114,97,110,100,111,109,115,101,101,100,0,0,0,0,0,0,115,105,110,104,0,0,0,0,115,105,110,0,0,0,0,0,115,113,114,116,0,0,0,0,116,97,110,104,0,0,0,0,116,97,110,0,0,0,0,0,105,110,116,101,114,118,97,108,32,105,115,32,101,109,112,116,121,0,0,0,0,0,0,0,119,114,111,110,103,32,110,117,109,98,101,114,32,111,102,32,97,114,103,117,109,101,110,116,115,0,0,0,0,0,0,0,116,111,111,32,109,97,110,121,32,37,115,32,40,108,105,109,105,116,32,105,115,32,37,100,41,0,0,0,0,0,0,0,109,101,109,111,114,121,32,97,108,108,111,99,97,116,105,111,110,32,101,114,114,111,114,58,32,98,108,111,99,107,32,116,111,111,32,98,105,103,0,0,95,67,76,73,66,83,0,0,95,95,103,99,0,0,0,0,16,20,0,0,48,0,0,0,24,20,0,0,49,0,0,0,40,20,0,0,50,0,0,0,0,0,0,0,0,0,0,0,108,111,97,100,101,114,115,0,115,101,97,114,99,104,101,114,115,0,0,0,0,0,0,0,112,97,116,104,0,0,0,0,76,85,65,95,80,65,84,72,95,53,95,50,0,0,0,0,76,85,65,95,80,65,84,72,0,0,0,0,0,0,0,0,47,117,115,114,47,108,111,99,97,108,47,115,104,97,114,101,47,108,117,97,47,53,46,50,47,63,46,108,117,97,59,47,117,115,114,47,108,111,99,97,108,47,115,104,97,114,101,47,108,117,97,47,53,46,50,47,63,47,105,110,105,116,46,108,117,97,59,47,117,115,114,47,108,111,99,97,108,47,108,105,98,47,108,117,97,47,53,46,50,47,63,46,108,117,97,59,47,117,115,114,47,108,111,99,97,108,47,108,105,98,47,108,117,97,47,53,46,50,47,63,47,105,110,105,116,46,108,117,97,59,46,47,63,46,108,117,97,0,0,0,0,0,0,0,99,112,97,116,104,0,0,0,76,85,65,95,67,80,65,84,72,95,53,95,50,0,0,0,76,85,65,95,67,80,65,84,72,0,0,0,0,0,0,0,47,117,115,114,47,108,111,99,97,108,47,108,105,98,47,108,117,97,47,53,46,50,47,63,46,115,111,59,47,117,115,114,47,108,111,99,97,108,47,108,105,98,47,108,117,97,47,53,46,50,47,108,111,97,100,97,108,108,46,115,111,59,46,47,63,46,115,111,0,0,0,0,47,10,59,10,63,10,33,10,45,10,0,0,0,0,0,0,99,111,110,102,105,103,0,0,95,76,79,65,68,69,68,0,108,111,97,100,101,100,0,0,95,80,82,69,76,79,65,68,0,0,0,0,0,0,0,0,112,114,101,108,111,97,100,0,32,18,0,0,51,0,0,0,40,18,0,0,52,0,0,0,0,0,0,0,0,0,0,0,109,111,100,117,108,101,0,0,114,101,113,117,105,114,101,0,39,112,97,99,107,97,103,101,46,115,101,97,114,99,104,101,114,115,39,32,109,117,115,116,32,98,101,32,97,32,116,97,98,108,101,0,0,0,0,0,109,111,100,117,108,101,32,39,37,115,39,32,110,111,116,32,102,111,117,110,100,58,37,115,0,0,0,0,0,0,0,0,95,78,65,77,69,0,0,0,102,0,0,0,0,0,0,0,39,109,111,100,117,108,101,39,32,110,111,116,32,99,97,108,108,101,100,32,102,114,111,109,32,97,32,76,117,97,32,102,117,110,99,116,105,111,110,0,95,77,0,0,0,0,0,0,95,80,65,67,75,65,71,69,0,0,0,0,0,0,0,0,59,59,0,0,0,0,0,0,59,1,59,0,0,0,0,0,1,0,0,0,0,0,0,0,76,85,65,95,78,79,69,78,86,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,10,9,110,111,32,109,111,100,117,108,101,32,39,37,115,39,32,105,110,32,102,105,108,101,32,39,37,115,39,0,0,0,101,114,114,111,114,32,108,111,97,100,105,110,103,32,109,111,100,117,108,101,32,39,37,115,39,32,102,114,111,109,32,102,105,108,101,32,39,37,115,39,58,10,9,37,115,0,0,0,46,0,0,0,0,0,0,0,95,0,0,0,0,0,0,0,108,117,97,111,112,101,110,95,37,115,0,0,0,0,0,0,100,121,110,97,109,105,99,32,108,105,98,114,97,114,105,101,115,32,110,111,116,32,101,110,97,98,108,101,100,59,32,99,104,101,99,107,32,121,111,117,114,32,76,117,97,32,105,110,115,116,97,108,108,97,116,105,111,110,0,0,0,0,0,0,39,112,97,99,107,97,103,101,46,37,115,39,32,109,117,115,116,32,98,101,32,97,32,115,116,114,105,110,103,0,0,0,63,0,0,0,0,0,0,0,10,9,110,111,32,102,105,108,101,32,39,37,115,39,0,0,114,0,0,0,0,0,0,0,10,9,110,111,32,102,105,101,108,100,32,112,97,99,107,97,103,101,46,112,114,101,108,111,97,100,91,39,37,115,39,93,0,0,0,0,0,0,0,0,108,111,97,100,108,105,98,0,115,101,97,114,99,104,112,97,116,104,0,0,0,0,0,0,115,101,101,97,108,108,0,0,95,95,105,110,100,101,120,0,97,98,115,101,110,116,0,0,105,110,105,116,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,110,78,0,0,0,0,0,0,120,88,0,0,0,0,0,0,40,110,117,108,108,41,0,0,37,112,0,0,0,0,0,0,37,0,0,0,0,0,0,0,105,110,118,97,108,105,100,32,111,112,116,105,111,110,32,39,37,37,37,99,39,32,116,111,32,39,108,117,97,95,112,117,115,104,102,115,116,114,105,110,103,39,0,0,0,0,0,0,46,46,46,0,0,0,0,0,91,115,116,114,105,110,103,32,34,0,0,0,0,0,0,0,34,93,0,0,0,0,0,0,96,113,65,84,80,80,92,108,60,16,60,84,108,124,124,124,124,124,124,96,96,96,104,34,188,188,188,132,228,84,84,16,98,98,4,98,20,81,80,23,88,22,0,0,53,0,0,0,96,22,0,0,54,0,0,0,104,22,0,0,55,0,0,0,120,22,0,0,56,0,0,0,128,22,0,0,57,0,0,0,136,22,0,0,58,0,0,0,144,22,0,0,59,0,0,0,152,22,0,0,60,0,0,0,160,22,0,0,61,0,0,0,176,22,0,0,62,0,0,0,184,22,0,0,63,0,0,0,0,0,0,0,0,0,0,0,99,108,111,99,107,0,0,0,100,97,116,101,0,0,0,0,100,105,102,102,116,105,109,101,0,0,0,0,0,0,0,0,101,120,101,99,117,116,101,0,101,120,105,116,0,0,0,0,103,101,116,101,110,118,0,0,114,101,109,111,118,101,0,0,114,101,110,97,109,101,0,0,115,101,116,108,111,99,97,108,101,0,0,0,0,0,0,0,116,105,109,101,0,0,0,0,116,109,112,110,97,109,101,0,117,110,97,98,108,101,32,116,111,32,103,101,110,101,114,97,116,101,32,97,32,117,110,105,113,117,101,32,102,105,108,101,110,97,109,101,0,0,0,0,115,101,99,0,0,0,0,0,109,105,110,0,0,0,0,0,104,111,117,114,0,0,0,0,100,97,121,0,0,0,0,0,109,111,110,116,104,0,0,0,121,101,97,114,0,0,0,0,105,115,100,115,116,0,0,0,102,105,101,108,100,32,39,37,115,39,32,109,105,115,115,105,110,103,32,105,110,32,100,97,116,101,32,116,97,98,108,101,0,0,0,0,0,0,0,0,6,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,1,0,0,0,2,0,0,0,128,23,0,0,136,23,0,0,144,23,0,0,152,23,0,0,168,23,0,0,176,22,0,0,0,0,0,0,0,0,0,0,97,108,108,0,0,0,0,0,99,111,108,108,97,116,101,0,99,116,121,112,101,0,0,0,109,111,110,101,116,97,114,121,0,0,0,0,0,0,0,0,110,117,109,101,114,105,99,0,37,99,0,0,0,0,0,0,42,116,0,0,0,0,0,0,119,100,97,121,0,0,0,0,121,100,97,121,0,0,0,0,97,65,98,66,99,100,72,73,106,109,77,112,83,85,119,87,120,88,121,89,122,37,0,0,105,110,118,97,108,105,100,32,99,111,110,118,101,114,115,105,111,110,32,115,112,101,99,105,102,105,101,114,32,39,37,37,37,115,39,0,0,0,0,0,60,37,115,62,32,97,116,32,108,105,110,101,32,37,100,32,110,111,116,32,105,110,115,105,100,101,32,97,32,108,111,111,112,0,0,0,0,0,0,0,110,111,32,118,105,115,105,98,108,101,32,108,97,98,101,108,32,39,37,115,39,32,102,111,114,32,60,103,111,116,111,62,32,97,116,32,108,105,110,101,32,37,100,0,0,0,0,0,60,103,111,116,111,32,37,115,62,32,97,116,32,108,105,110,101,32,37,100,32,106,117,109,112,115,32,105,110,116,111,32,116,104,101,32,115,99,111,112,101,32,111,102,32,108,111,99,97,108,32,39,37,115,39,0,98,114,101,97,107,0,0,0,108,97,98,101,108,115,47,103,111,116,111,115,0,0,0,0,37,115,32,101,120,112,101,99,116,101,100,0,0,0,0,0,115,121,110,116,97,120,32,101,114,114,111,114,0,0,0,0,67,32,108,101,118,101,108,115,0,0,0,0,0,0,0,0,6,6,6,6,7,7,7,7,7,7,10,9,5,4,3,3,3,3,3,3,3,3,3,3,3,3,2,2,1,1,0,0,99,97,110,110,111,116,32,117,115,101,32,39,46,46,46,39,32,111,117,116,115,105,100,101,32,97,32,118,97,114,97,114,103,32,102,117,110,99,116,105,111,110,0,0,0,0,0,0,115,101,108,102,0,0,0,0,60,110,97,109,101,62,32,111,114,32,39,46,46,46,39,32,101,120,112,101,99,116,101,100,0,0,0,0,0,0,0,0,108,111,99,97,108,32,118,97,114,105,97,98,108,101,115,0,102,117,110,99,116,105,111,110,115,0,0,0,0,0,0,0,105,116,101,109,115,32,105,110,32,97,32,99,111,110,115,116,114,117,99,116,111,114,0,0,109,97,105,110,32,102,117,110,99,116,105,111,110,0,0,0,102,117,110,99,116,105,111,110,32,97,116,32,108,105,110,101,32,37,100,0,0,0,0,0,116,111,111,32,109,97,110,121,32,37,115,32,40,108,105,109,105,116,32,105,115,32,37,100,41,32,105,110,32,37,115,0,102,117,110,99,116,105,111,110,32,97,114,103,117,109,101,110,116,115,32,101,120,112,101,99,116,101,100,0,0,0,0,0,117,110,101,120,112,101,99,116,101,100,32,115,121,109,98,111,108,0,0,0,0,0,0,0,108,97,98,101,108,32,39,37,115,39,32,97,108,114,101,97,100,121,32,100,101,102,105,110,101,100,32,111,110,32,108,105,110,101,32,37,100,0,0,0,39,61,39,32,111,114,32,39,105,110,39,32,101,120,112,101,99,116,101,100,0,0,0,0,40,102,111,114,32,103,101,110,101,114,97,116,111,114,41,0,40,102,111,114,32,115,116,97,116,101,41,0,0,0,0,0,40,102,111,114,32,99,111,110,116,114,111,108,41,0,0,0,40,102,111,114,32,105,110,100,101,120,41,0,0,0,0,0,40,102,111,114,32,108,105,109,105,116,41,0,0,0,0,0,40,102,111,114,32,115,116,101,112,41,0,0,0,0,0,0,37,115,32,101,120,112,101,99,116,101,100,32,40,116,111,32,99,108,111,115,101,32,37,115,32,97,116,32,108,105,110,101,32,37,100,41,0,0,0,0,117,112,118,97,108,117,101,115,0,0,0,0,0,0,0,0,110,111,116,32,101,110,111,117,103,104,32,109,101,109,111,114,121,0,0,0,0,0,0,0,144,27,0,0,64,0,0,0,152,27,0,0,65,0,0,0,160,27,0,0,66,0,0,0,168,27,0,0,67,0,0,0,176,27,0,0,68,0,0,0,184,27,0,0,69,0,0,0,192,27,0,0,70,0,0,0,200,27,0,0,71,0,0,0,208,27,0,0,72,0,0,0,216,27,0,0,73,0,0,0,224,27,0,0,74,0,0,0,232,27,0,0,75,0,0,0,240,27,0,0,76,0,0,0,248,27,0,0,77,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,95,95,105,110,100,101,120,0,98,121,116,101,0,0,0,0,99,104,97,114,0,0,0,0,100,117,109,112,0,0,0,0,102,105,110,100,0,0,0,0,102,111,114,109,97,116,0,0,103,109,97,116,99,104,0,0,103,115,117,98,0,0,0,0,108,101,110,0,0,0,0,0,108,111,119,101,114,0,0,0,109,97,116,99,104,0,0,0,114,101,112,0,0,0,0,0,114,101,118,101,114,115,101,0,115,117,98,0,0,0,0,0,117,112,112,101,114,0,0,0,114,101,115,117,108,116,105,110,103,32,115,116,114,105,110,103,32,116,111,111,32,108,97,114,103,101,0,0,0,0,0,0,116,111,111,32,109,97,110,121,32,99,97,112,116,117,114,101,115,0,0,0,0,0,0,0,105,110,118,97,108,105,100,32,99,97,112,116,117,114,101,32,105,110,100,101,120,0,0,0,117,110,102,105,110,105,115,104,101,100,32,99,97,112,116,117,114,101,0,0,0,0,0,0,112,97,116,116,101,114,110,32,116,111,111,32,99,111,109,112,108,101,120,0,0,0,0,0,109,105,115,115,105,110,103,32,39,91,39,32,97,102,116,101,114,32,39,37,37,102,39,32,105,110,32,112,97,116,116,101,114,110,0,0,0,0,0,0,105,110,118,97,108,105,100,32,99,97,112,116,117,114,101,32,105,110,100,101,120,32,37,37,37,100,0,0,0,0,0,0,109,97,108,102,111,114,109,101,100,32,112,97,116,116,101,114,110,32,40,101,110,100,115,32,119,105,116,104,32,39,37,37,39,41,0,0,0,0,0,0,109,97,108,102,111,114,109,101,100,32,112,97,116,116,101,114,110,32,40,109,105,115,115,105,110,103,32,39,93,39,41,0,109,97,108,102,111,114,109,101,100,32,112,97,116,116,101,114,110,32,40,109,105,115,115,105,110,103,32,97,114,103,117,109,101,110,116,115,32,116,111,32,39,37,37,98,39,41,0,0,105,110,118,97,108,105,100,32,112,97,116,116,101,114,110,32,99,97,112,116,117,114,101,0,94,36,42,43,63,46,40,91,37,45,0,0,0,0,0,0,115,116,114,105,110,103,47,102,117,110,99,116,105,111,110,47,116,97,98,108,101,32,101,120,112,101,99,116,101,100,0,0,105,110,118,97,108,105,100,32,114,101,112,108,97,99,101,109,101,110,116,32,118,97,108,117,101,32,40,97,32,37,115,41,0,0,0,0,0,0,0,0,105,110,118,97,108,105,100,32,117,115,101,32,111,102,32,39,37,99,39,32,105,110,32,114,101,112,108,97,99,101,109,101,110,116,32,115,116,114,105,110,103,0,0,0,0,0,0,0,110,111,32,118,97,108,117,101,0,0,0,0,0,0,0,0,110,111,116,32,97,32,110,117,109,98,101,114,32,105,110,32,112,114,111,112,101,114,32,114,97,110,103,101,0,0,0,0,110,111,116,32,97,32,110,111,110,45,110,101,103,97,116,105,118,101,32,110,117,109,98,101,114,32,105,110,32,112,114,111,112,101,114,32,114,97,110,103,101,0,0,0,0,0,0,0,105,110,118,97,108,105,100,32,111,112,116,105,111,110,32,39,37,37,37,99,39,32,116,111,32,39,102,111,114,109,97,116,39,0,0,0,0,0,0,0,92,37,100,0,0,0,0,0,92,37,48,51,100,0,0,0,45,43,32,35,48,0,0,0,105,110,118,97,108,105,100,32,102,111,114,109,97,116,32,40,114,101,112,101,97,116,101,100,32,102,108,97,103,115,41,0,105,110,118,97,108,105,100,32,102,111,114,109,97,116,32,40,119,105,100,116,104,32,111,114,32,112,114,101,99,105,115,105,111,110,32,116,111,111,32,108,111,110,103,41,0,0,0,0,117,110,97,98,108,101,32,116,111,32,100,117,109,112,32,103,105,118,101,110,32,102,117,110,99,116,105,111,110,0,0,0,118,97,108,117,101,32,111,117,116,32,111,102,32,114,97,110,103,101,0,0,0,0,0,0,115,116,114,105,110,103,32,115,108,105,99,101,32,116,111,111,32,108,111,110,103,0,0,0,116,97,98,108,101,32,105,110,100,101,120,32,105,115,32,110,105,108,0,0,0,0,0,0,116,97,98,108,101,32,105,110,100,101,120,32,105,115,32,78,97,78,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,116,97,98,108,101,32,111,118,101,114,102,108,111,119,0,0,105,110,118,97,108,105,100,32,107,101,121,32,116,111,32,39,110,101,120,116,39,0,0,0,224,31,0,0,78,0,0,0,232,31,0,0,79,0,0,0,240,31,0,0,80,0,0,0,248,31,0,0,81,0,0,0,216,31,0,0,82,0,0,0,0,32,0,0,83,0,0,0,8,32,0,0,84,0,0,0,0,0,0,0,0,0,0,0,117,110,112,97,99,107,0,0,99,111,110,99,97,116,0,0,109,97,120,110,0,0,0,0,105,110,115,101,114,116,0,0,112,97,99,107,0,0,0,0,114,101,109,111,118,101,0,0,115,111,114,116,0,0,0,0,0,0,0,0,0,0,0,0,105,110,118,97,108,105,100,32,111,114,100,101,114,32,102,117,110,99,116,105,111,110,32,102,111,114,32,115,111,114,116,105,110,103,0,0,0,0,0,0,112,111,115,105,116,105,111,110,32,111,117,116,32,111,102,32,98,111,117,110,100,115,0,0,116,111,111,32,109,97,110,121,32,114,101,115,117,108,116,115,32,116,111,32,117,110,112,97,99,107,0,0,0,0,0,0,110,0,0,0,0,0,0,0,119,114,111,110,103,32,110,117,109,98,101,114,32,111,102,32,97,114,103,117,109,101,110,116,115,32,116,111,32,39,105,110,115,101,114,116,39,0,0,0,105,110,118,97,108,105,100,32,118,97,108,117,101,32,40,37,115,41,32,97,116,32,105,110,100,101,120,32,37,100,32,105,110,32,116,97,98,108,101,32,102,111,114,32,39,99,111,110,99,97,116,39,0,0,0,0,110,111,32,118,97,108,117,101,0,0,0,0,0,0,0,0,110,105,108,0,0,0,0,0,98,111,111,108,101,97,110,0,117,115,101,114,100,97,116,97,0,0,0,0,0,0,0,0,110,117,109,98,101,114,0,0,115,116,114,105,110,103,0,0,116,97,98,108,101,0,0,0,102,117,110,99,116,105,111,110,0,0,0,0,0,0,0,0,116,104,114,101,97,100,0,0,112,114,111,116,111,0,0,0,117,112,118,97,108,0,0,0,224,32,0,0,240,32,0,0,248,32,0,0,0,33,0,0,16,33,0,0,24,33,0,0,32,33,0,0,40,33,0,0,0,33,0,0,56,33,0,0,64,33,0,0,72,33,0,0,200,33,0,0,208,33,0,0,224,33,0,0,232,33,0,0,240,33,0,0,248,33,0,0,0,34,0,0,8,34,0,0,16,34,0,0,24,34,0,0,32,34,0,0,40,34,0,0,48,34,0,0,56,34,0,0,64,34,0,0,72,34,0,0,88,34,0,0,0,0,0,0,95,95,105,110,100,101,120,0,95,95,110,101,119,105,110,100,101,120,0,0,0,0,0,0,95,95,103,99,0,0,0,0,95,95,109,111,100,101,0,0,95,95,108,101,110,0,0,0,95,95,101,113,0,0,0,0,95,95,97,100,100,0,0,0,95,95,115,117,98,0,0,0,95,95,109,117,108,0,0,0,95,95,100,105,118,0,0,0,95,95,109,111,100,0,0,0,95,95,112,111,119,0,0,0,95,95,117,110,109,0,0,0,95,95,108,116,0,0,0,0,95,95,108,101,0,0,0,0,95,95,99,111,110,99,97,116,0,0,0,0,0,0,0,0,95,95,99,97,108,108,0,0,98,105,110,97,114,121,32,115,116,114,105,110,103,0,0,0,25,147,13,10,26,10,0,0,116,114,117,110,99,97,116,101,100,0,0,0,0,0,0,0,37,115,58,32,37,115,32,112,114,101,99,111,109,112,105,108,101,100,32,99,104,117,110,107,0,0,0,0,0,0,0,0,99,111,114,114,117,112,116,101,100,0,0,0,0,0,0,0,110,111,116,32,97,0,0,0,118,101,114,115,105,111,110,32,109,105,115,109,97,116,99,104,32,105,110,0,0,0,0,0,105,110,99,111,109,112,97,116,105,98,108,101,0,0,0,0,37,46,49,52,103,0,0,0,105,110,100,101,120,0,0,0,108,111,111,112,32,105,110,32,103,101,116,116,97,98,108,101,0,0,0,0,0,0,0,0,108,111,111,112,32,105,110,32,115,101,116,116,97,98,108,101,0,0,0,0,0,0,0,0,115,116,114,105,110,103,32,108,101,110,103,116,104,32,111,118,101,114,102,108,111,119,0,0,103,101,116,32,108,101,110,103,116,104,32,111,102,0,0,0,39,102,111,114,39,32,105,110,105,116,105,97,108,32,118,97,108,117,101,32,109,117,115,116,32,98,101,32,97,32,110,117,109,98,101,114,0,0,0,0,39,102,111,114,39,32,108,105,109,105,116,32,109,117,115,116,32,98,101,32,97,32,110,117,109,98,101,114,0,0,0,0,39,102,111,114,39,32,115,116,101,112,32,109,117,115,116,32,98,101,32,97,32,110,117,109,98,101,114,0,0,0,0,0,95,71,0,0,0,0,0,0,152,36,0,0,85,0,0,0,160,36,0,0,86,0,0,0,176,36,0,0,87,0,0,0,184,36,0,0,88,0,0,0,192,36,0,0,89,0,0,0,208,36,0,0,90,0,0,0,216,36,0,0,91,0,0,0,232,36,0,0,92,0,0,0,240,36,0,0,92,0,0,0,0,37,0,0,93,0,0,0,8,37,0,0,94,0,0,0,16,37,0,0,95,0,0,0,24,37,0,0,96,0,0,0,32,37,0,0,97,0,0,0,48,37,0,0,98,0,0,0,56,37,0,0,99,0,0,0,64,37,0,0,100,0,0,0,72,37,0,0,101,0,0,0,80,37,0,0,102,0,0,0,96,37,0,0,103,0,0,0,112,37,0,0,104,0,0,0,128,37,0,0,105,0,0,0,136,37,0,0,106,0,0,0,0,0,0,0,0,0,0,0,76,117,97,32,53,46,50,0,95,86,69,82,83,73,79,78,0,0,0,0,0,0,0,0,97,115,115,101,114,116,0,0,99,111,108,108,101,99,116,103,97,114,98,97,103,101,0,0,100,111,102,105,108,101,0,0,101,114,114,111,114,0,0,0,103,101,116,109,101,116,97,116,97,98,108,101,0,0,0,0,105,112,97,105,114,115,0,0,108,111,97,100,102,105,108,101,0,0,0,0,0,0,0,0,108,111,97,100,0,0,0,0,108,111,97,100,115,116,114,105,110,103,0,0,0,0,0,0,110,101,120,116,0,0,0,0,112,97,105,114,115,0,0,0,112,99,97,108,108,0,0,0,112,114,105,110,116,0,0,0,114,97,119,101,113,117,97,108,0,0,0,0,0,0,0,0,114,97,119,108,101,110,0,0,114,97,119,103,101,116,0,0,114,97,119,115,101,116,0,0,115,101,108,101,99,116,0,0,115,101,116,109,101,116,97,116,97,98,108,101,0,0,0,0,116,111,110,117,109,98,101,114,0,0,0,0,0,0,0,0,116,111,115,116,114,105,110,103,0,0,0,0,0,0,0,0,116,121,112,101,0,0,0,0,120,112,99,97,108,108,0,0,118,97,108,117,101,32,101,120,112,101,99,116,101,100,0,0,115,116,97,99,107,32,111,118,101,114,102,108,111,119,0,0,98,97,115,101,32,111,117,116,32,111,102,32,114,97,110,103,101,0,0,0,0,0,0,0,32,12,10,13,9,11,0,0,110,105,108,32,111,114,32,116,97,98,108,101,32,101,120,112,101,99,116,101,100,0,0,0,95,95,109,101,116,97,116,97,98,108,101,0,0,0,0,0,99,97,110,110,111,116,32,99,104,97,110,103,101,32,97,32,112,114,111,116,101,99,116,101,100,32,109,101,116,97,116,97,98,108,101,0,0,0,0,0,105,110,100,101,120,32,111,117,116,32,111,102,32,114,97,110,103,101,0,0,0,0,0,0,116,97,98,108,101,32,111,114,32,115,116,114,105,110,103,32,101,120,112,101,99,116,101,100,0,0,0,0,0,0,0,0,39,116,111,115,116,114,105,110,103,39,32,109,117,115,116,32,114,101,116,117,114,110,32,97,32,115,116,114,105,110,103,32,116,111,32,39,112,114,105,110,116,39,0,0,0,0,0,0,95,95,112,97,105,114,115,0,98,116,0,0,0,0,0,0,61,40,108,111,97,100,41,0,116,111,111,32,109,97,110,121,32,110,101,115,116,101,100,32,102,117,110,99,116,105,111,110,115,0,0,0,0,0,0,0,114,101,97,100,101,114,32,102,117,110,99,116,105,111,110,32,109,117,115,116,32,114,101,116,117,114,110,32,97,32,115,116,114,105,110,103,0,0,0,0,95,95,105,112,97,105,114,115,0,0,0,0,0,0,0,0,40,39,0,0,48,39,0,0,56,39,0,0,64,39,0,0,72,39,0,0,80,39,0,0,96,39,0,0,112,39,0,0,128,39,0,0,144,39,0,0,160,39,0,0,0,0,0,0,115,116,111,112,0,0,0,0,114,101,115,116,97,114,116,0,99,111,108,108,101,99,116,0,99,111,117,110,116,0,0,0,115,116,101,112,0,0,0,0,115,101,116,112,97,117,115,101,0,0,0,0,0,0,0,0,115,101,116,115,116,101,112,109,117,108,0,0,0,0,0,0,115,101,116,109,97,106,111,114,105,110,99,0,0,0,0,0,105,115,114,117,110,110,105,110,103,0,0,0,0,0,0,0,103,101,110,101,114,97,116,105,111,110,97,108,0,0,0,0,105,110,99,114,101,109,101,110,116,97,108,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,0,0,0,0,37,115,0,0,0,0,0,0,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,33,0,0,0,0,0,0,0,104,40,0,0,107], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE); 1403 /* memory initializer */ allocate([112,40,0,0,108,0,0,0,120,40,0,0,109,0,0,0,128,40,0,0,110,0,0,0,136,40,0,0,111,0,0,0,144,40,0,0,112,0,0,0,152,40,0,0,113,0,0,0,160,40,0,0,114,0,0,0,168,40,0,0,115,0,0,0,176,40,0,0,116,0,0,0,184,40,0,0,117,0,0,0,192,40,0,0,118,0,0,0,0,0,0,0,0,0,0,0,97,114,115,104,105,102,116,0,98,97,110,100,0,0,0,0,98,110,111,116,0,0,0,0,98,111,114,0,0,0,0,0,98,120,111,114,0,0,0,0,98,116,101,115,116,0,0,0,101,120,116,114,97,99,116,0,108,114,111,116,97,116,101,0,108,115,104,105,102,116,0,0,114,101,112,108,97,99,101,0,114,114,111,116,97,116,101,0,114,115,104,105,102,116,0,0,102,105,101,108,100,32,99,97,110,110,111,116,32,98,101,32,110,101,103,97,116,105,118,101,0,0,0,0,0,0,0,0,119,105,100,116,104,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,0,0,116,114,121,105,110,103,32,116,111,32,97,99,99,101,115,115,32,110,111,110,45,101,120,105,115,116,101,110,116,32,98,105,116,115,0,0,0,0,0,0,102,117,110,99,116,105,111,110,32,111,114,32,101,120,112,114,101,115,115,105,111,110,32,116,111,111,32,99,111,109,112,108,101,120,0,0,0,0,0,0,99,111,110,115,116,114,117,99,116,111,114,32,116,111,111,32,108,111,110,103,0,0,0,0,99,111,110,115,116,97,110,116,115,0,0,0,0,0,0,0,111,112,99,111,100,101,115,0,99,111,110,116,114,111,108,32,115,116,114,117,99,116,117,114,101,32,116,111,111,32,108,111,110,103,0,0,0,0,0,0,216,41,0,0,119,0,0,0,224,41,0,0,120,0,0,0,232,41,0,0,121,0,0,0,240,41,0,0,122,0,0,0,248,41,0,0,123,0,0,0,0,42,0,0,124,0,0,0,0,0,0,0,0,0,0,0,99,114,101,97,116,101,0,0,114,101,115,117,109,101,0,0,114,117,110,110,105,110,103,0,115,116,97,116,117,115,0,0,119,114,97,112,0,0,0,0,121,105,101,108,100,0,0,0,116,111,111,32,109,97,110,121,32,97,114,103,117,109,101,110,116,115,32,116,111,32,114,101,115,117,109,101,0,0,0,0,99,97,110,110,111,116,32,114,101,115,117,109,101,32,100,101,97,100,32,99,111,114,111,117,116,105,110,101,0,0,0,0,116,111,111,32,109,97,110,121,32,114,101,115,117,108,116,115,32,116,111,32,114,101,115,117,109,101,0,0,0,0,0,0,99,111,114,111,117,116,105,110,101,32,101,120,112,101,99,116,101,100,0,0,0,0,0,0,115,117,115,112,101,110,100,101,100,0,0,0,0,0,0,0,110,111,114,109,97,108,0,0,100,101,97,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,22,22,22,22,22,22,22,22,22,22,4,4,4,4,4,4,4,21,21,21,21,21,21,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,5,4,21,21,21,21,21,21,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,44,0,0,125,0,0,0,56,44,0,0,126,0,0,0,72,44,0,0,127,0,0,0,80,44,0,0,128,0,0,0,88,44,0,0,129,0,0,0,104,44,0,0,130,0,0,0,120,44,0,0,131,0,0,0,136,44,0,0,132,0,0,0,152,44,0,0,133,0,0,0,168,44,0,0,134,0,0,0,184,44,0,0,135,0,0,0,200,44,0,0,136,0,0,0,208,44,0,0,137,0,0,0,224,44,0,0,138,0,0,0,240,44,0,0,139,0,0,0,0,45,0,0,140,0,0,0,0,0,0,0,0,0,0,0,100,101,98,117,103,0,0,0,103,101,116,117,115,101,114,118,97,108,117,101,0,0,0,0,103,101,116,104,111,111,107,0,103,101,116,105,110,102,111,0,103,101,116,108,111,99,97,108,0,0,0,0,0,0,0,0,103,101,116,114,101,103,105,115,116,114,121,0,0,0,0,0,103,101,116,109,101,116,97,116,97,98,108,101,0,0,0,0,103,101,116,117,112,118,97,108,117,101,0,0,0,0,0,0,117,112,118,97,108,117,101,106,111,105,110,0,0,0,0,0,117,112,118,97,108,117,101,105,100,0,0,0,0,0,0,0,115,101,116,117,115,101,114,118,97,108,117,101,0,0,0,0,115,101,116,104,111,111,107,0,115,101,116,108,111,99,97,108,0,0,0,0,0,0,0,0,115,101,116,109,101,116,97,116,97,98,108,101,0,0,0,0,115,101,116,117,112,118,97,108,117,101,0,0,0,0,0,0,116,114,97,99,101,98,97,99,107,0,0,0,0,0,0,0,110,105,108,32,111,114,32,116,97,98,108,101,32,101,120,112,101,99,116,101,100,0,0,0,108,101,118,101,108,32,111,117,116,32,111,102,32,114,97,110,103,101,0,0,0,0,0,0,95,72,75,69,89,0,0,0,107,0,0,0,0,0,0,0,95,95,109,111,100,101,0,0,112,45,0,0,120,45,0,0,128,45,0,0,136,45,0,0,144,45,0,0,0,0,0,0,99,97,108,108,0,0,0,0,114,101,116,117,114,110,0,0,108,105,110,101,0,0,0,0,99,111,117,110,116,0,0,0,116,97,105,108,32,99,97,108,108,0,0,0,0,0,0,0,102,117,108,108,32,117,115,101,114,100,97,116,97,32,101,120,112,101,99,116,101,100,44,32,103,111,116,32,108,105,103,104,116,32,117,115,101,114,100,97,116,97,0,0,0,0,0,0,62,117,0,0,0,0,0,0,105,110,118,97,108,105,100,32,117,112,118,97,108,117,101,32,105,110,100,101,120,0,0,0,76,117,97,32,102,117,110,99,116,105,111,110,32,101,120,112,101,99,116,101,100,0,0,0,102,108,110,83,116,117,0,0,62,37,115,0,0,0,0,0,102,117,110,99,116,105,111,110,32,111,114,32,108,101,118,101,108,32,101,120,112,101,99,116,101,100,0,0,0,0,0,0,105,110,118,97,108,105,100,32,111,112,116,105,111,110,0,0,115,111,117,114,99,101,0,0,115,104,111,114,116,95,115,114,99,0,0,0,0,0,0,0,108,105,110,101,100,101,102,105,110,101,100,0,0,0,0,0,108,97,115,116,108,105,110,101,100,101,102,105,110,101,100,0,119,104,97,116,0,0,0,0,99,117,114,114,101,110,116,108,105,110,101,0,0,0,0,0,110,117,112,115,0,0,0,0,110,112,97,114,97,109,115,0,105,115,118,97,114,97,114,103,0,0,0,0,0,0,0,0,110,97,109,101,0,0,0,0,110,97,109,101,119,104,97,116,0,0,0,0,0,0,0,0,105,115,116,97,105,108,99,97,108,108,0,0,0,0,0,0,97,99,116,105,118,101,108,105,110,101,115,0,0,0,0,0,102,117,110,99,0,0,0,0,101,120,116,101,114,110,97,108,32,104,111,111,107,0,0,0,108,117,97,95,100,101,98,117,103,62,32,0,0,0,0,0,99,111,110,116,10,0,0,0,61,40,100,101,98,117,103,32,99,111,109,109,97,110,100,41,0,0,0,0,0,0,0,0,37,115,10,0,0,0,0,0,80,49,0,0,88,49,0,0,96,49,0,0,104,49,0,0,112,49,0,0,120,49,0,0,128,49,0,0,136,49,0,0,144,49,0,0,160,49,0,0,168,49,0,0,176,49,0,0,184,49,0,0,192,49,0,0,200,49,0,0,208,49,0,0,216,49,0,0,224,49,0,0,232,49,0,0,240,49,0,0,248,49,0,0,0,50,0,0,8,50,0,0,16,50,0,0,24,50,0,0,32,50,0,0,40,50,0,0,48,50,0,0,56,50,0,0,64,50,0,0,72,50,0,0,88,50,0,0,96,50,0,0,0,0,0,0,39,37,99,39,0,0,0,0,99,104,97,114,40,37,100,41,0,0,0,0,0,0,0,0,39,37,115,39,0,0,0,0,95,69,78,86,0,0,0,0,105,110,118,97,108,105,100,32,108,111,110,103,32,115,116,114,105,110,103,32,100,101,108,105,109,105,116,101,114,0,0,0,46,0,0,0,0,0,0,0,69,101,0,0,0,0,0,0,88,120,0,0,0,0,0,0,80,112,0,0,0,0,0,0,43,45,0,0,0,0,0,0,109,97,108,102,111,114,109,101,100,32,110,117,109,98,101,114,0,0,0,0,0,0,0,0,108,101,120,105,99,97,108,32,101,108,101,109,101,110,116,32,116,111,111,32,108,111,110,103,0,0,0,0,0,0,0,0,117,110,102,105,110,105,115,104,101,100,32,115,116,114,105,110,103,0,0,0,0,0,0,0,105,110,118,97,108,105,100,32,101,115,99,97,112,101,32,115,101,113,117,101,110,99,101,0,100,101,99,105,109,97,108,32,101,115,99,97,112,101,32,116,111,111,32,108,97,114,103,101,0,0,0,0,0,0,0,0,104,101,120,97,100,101,99,105,109,97,108,32,100,105,103,105,116,32,101,120,112,101,99,116,101,100,0,0,0,0,0,0,117,110,102,105,110,105,115,104,101,100,32,108,111,110,103,32,115,116,114,105,110,103,0,0,117,110,102,105,110,105,115,104,101,100,32,108,111,110,103,32,99,111,109,109,101,110,116,0,99,104,117,110,107,32,104,97,115,32,116,111,111,32,109,97,110,121,32,108,105,110,101,115,0,0,0,0,0,0,0,0,37,115,58,37,100,58,32,37,115,0,0,0,0,0,0,0,37,115,32,110,101,97,114,32,37,115,0,0,0,0,0,0,97,110,100,0,0,0,0,0,98,114,101,97,107,0,0,0,100,111,0,0,0,0,0,0,101,108,115,101,0,0,0,0,101,108,115,101,105,102,0,0,101,110,100,0,0,0,0,0,102,97,108,115,101,0,0,0,102,111,114,0,0,0,0,0,102,117,110,99,116,105,111,110,0,0,0,0,0,0,0,0,103,111,116,111,0,0,0,0,105,102,0,0,0,0,0,0,105,110,0,0,0,0,0,0,108,111,99,97,108,0,0,0,110,105,108,0,0,0,0,0,110,111,116,0,0,0,0,0,111,114,0,0,0,0,0,0,114,101,112,101,97,116,0,0,114,101,116,117,114,110,0,0,116,104,101,110,0,0,0,0,116,114,117,101,0,0,0,0,117,110,116,105,108,0,0,0,119,104,105,108,101,0,0,0,46,46,0,0,0,0,0,0,46,46,46,0,0,0,0,0,61,61,0,0,0,0,0,0,62,61,0,0,0,0,0,0,60,61,0,0,0,0,0,0,126,61,0,0,0,0,0,0,58,58,0,0,0,0,0,0,60,101,111,102,62,0,0,0,60,110,117,109,98,101,114,62,0,0,0,0,0,0,0,0,60,110,97,109,101,62,0,0,60,115,116,114,105,110,103,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,105,110,102,105,110,105,116,121,0,0,0,0,0,0,0,0,110,97,110,0,0,0,0,0,95,112,137,0,255,9,47,15,10,0,0,0,100,0,0,0,232,3,0,0,16,39,0,0,160,134,1,0,64,66,15,0,128,150,152,0,0,225,245,5], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+10240); 1404 1405 1406 1407 1408 var tempDoublePtr = Runtime.alignMemory(allocate(12, "i8", ALLOC_STATIC), 8); 1409 1410 assert(tempDoublePtr % 8 == 0); 1411 1412 function copyTempFloat(ptr) { // functions, because inlining this code increases code size too much 1413 1414 HEAP8[tempDoublePtr] = HEAP8[ptr]; 1415 1416 HEAP8[tempDoublePtr+1] = HEAP8[ptr+1]; 1417 1418 HEAP8[tempDoublePtr+2] = HEAP8[ptr+2]; 1419 1420 HEAP8[tempDoublePtr+3] = HEAP8[ptr+3]; 1421 1422 } 1423 1424 function copyTempDouble(ptr) { 1425 1426 HEAP8[tempDoublePtr] = HEAP8[ptr]; 1427 1428 HEAP8[tempDoublePtr+1] = HEAP8[ptr+1]; 1429 1430 HEAP8[tempDoublePtr+2] = HEAP8[ptr+2]; 1431 1432 HEAP8[tempDoublePtr+3] = HEAP8[ptr+3]; 1433 1434 HEAP8[tempDoublePtr+4] = HEAP8[ptr+4]; 1435 1436 HEAP8[tempDoublePtr+5] = HEAP8[ptr+5]; 1437 1438 HEAP8[tempDoublePtr+6] = HEAP8[ptr+6]; 1439 1440 HEAP8[tempDoublePtr+7] = HEAP8[ptr+7]; 1441 1442 } 1443 1444 1445 1446 1447 Module["_rand_r"] = _rand_r; 1448 1449 var ___rand_seed=allocate([0x0273459b, 0, 0, 0], "i32", ALLOC_STATIC); 1450 Module["_rand"] = _rand; 1451 1452 1453 1454 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}; 1455 1456 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"}; 1457 1458 1459 var ___errno_state=0;function ___setErrNo(value) { 1460 // For convenient setting and returning of errno. 1461 HEAP32[((___errno_state)>>2)]=value; 1462 return value; 1463 } 1464 1465 var PATH={splitPath:function (filename) { 1466 var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; 1467 return splitPathRe.exec(filename).slice(1); 1468 },normalizeArray:function (parts, allowAboveRoot) { 1469 // if the path tries to go above the root, `up` ends up > 0 1470 var up = 0; 1471 for (var i = parts.length - 1; i >= 0; i--) { 1472 var last = parts[i]; 1473 if (last === '.') { 1474 parts.splice(i, 1); 1475 } else if (last === '..') { 1476 parts.splice(i, 1); 1477 up++; 1478 } else if (up) { 1479 parts.splice(i, 1); 1480 up--; 1481 } 1482 } 1483 // if the path is allowed to go above the root, restore leading ..s 1484 if (allowAboveRoot) { 1485 for (; up--; up) { 1486 parts.unshift('..'); 1487 } 1488 } 1489 return parts; 1490 },normalize:function (path) { 1491 var isAbsolute = path.charAt(0) === '/', 1492 trailingSlash = path.substr(-1) === '/'; 1493 // Normalize the path 1494 path = PATH.normalizeArray(path.split('/').filter(function(p) { 1495 return !!p; 1496 }), !isAbsolute).join('/'); 1497 if (!path && !isAbsolute) { 1498 path = '.'; 1499 } 1500 if (path && trailingSlash) { 1501 path += '/'; 1502 } 1503 return (isAbsolute ? '/' : '') + path; 1504 },dirname:function (path) { 1505 var result = PATH.splitPath(path), 1506 root = result[0], 1507 dir = result[1]; 1508 if (!root && !dir) { 1509 // No dirname whatsoever 1510 return '.'; 1511 } 1512 if (dir) { 1513 // It has a dirname, strip trailing slash 1514 dir = dir.substr(0, dir.length - 1); 1515 } 1516 return root + dir; 1517 },basename:function (path) { 1518 // EMSCRIPTEN return '/'' for '/', not an empty string 1519 if (path === '/') return '/'; 1520 var lastSlash = path.lastIndexOf('/'); 1521 if (lastSlash === -1) return path; 1522 return path.substr(lastSlash+1); 1523 },extname:function (path) { 1524 return PATH.splitPath(path)[3]; 1525 },join:function () { 1526 var paths = Array.prototype.slice.call(arguments, 0); 1527 return PATH.normalize(paths.join('/')); 1528 },join2:function (l, r) { 1529 return PATH.normalize(l + '/' + r); 1530 },resolve:function () { 1531 var resolvedPath = '', 1532 resolvedAbsolute = false; 1533 for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { 1534 var path = (i >= 0) ? arguments[i] : FS.cwd(); 1535 // Skip empty and invalid entries 1536 if (typeof path !== 'string') { 1537 throw new TypeError('Arguments to path.resolve must be strings'); 1538 } else if (!path) { 1539 continue; 1540 } 1541 resolvedPath = path + '/' + resolvedPath; 1542 resolvedAbsolute = path.charAt(0) === '/'; 1543 } 1544 // At this point the path should be resolved to a full absolute path, but 1545 // handle relative paths to be safe (might happen when process.cwd() fails) 1546 resolvedPath = PATH.normalizeArray(resolvedPath.split('/').filter(function(p) { 1547 return !!p; 1548 }), !resolvedAbsolute).join('/'); 1549 return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; 1550 },relative:function (from, to) { 1551 from = PATH.resolve(from).substr(1); 1552 to = PATH.resolve(to).substr(1); 1553 function trim(arr) { 1554 var start = 0; 1555 for (; start < arr.length; start++) { 1556 if (arr[start] !== '') break; 1557 } 1558 var end = arr.length - 1; 1559 for (; end >= 0; end--) { 1560 if (arr[end] !== '') break; 1561 } 1562 if (start > end) return []; 1563 return arr.slice(start, end - start + 1); 1564 } 1565 var fromParts = trim(from.split('/')); 1566 var toParts = trim(to.split('/')); 1567 var length = Math.min(fromParts.length, toParts.length); 1568 var samePartsLength = length; 1569 for (var i = 0; i < length; i++) { 1570 if (fromParts[i] !== toParts[i]) { 1571 samePartsLength = i; 1572 break; 1573 } 1574 } 1575 var outputParts = []; 1576 for (var i = samePartsLength; i < fromParts.length; i++) { 1577 outputParts.push('..'); 1578 } 1579 outputParts = outputParts.concat(toParts.slice(samePartsLength)); 1580 return outputParts.join('/'); 1581 }}; 1582 1583 var TTY={ttys:[],init:function () { 1584 // https://github.com/kripken/emscripten/pull/1555 1585 // if (ENVIRONMENT_IS_NODE) { 1586 // // currently, FS.init does not distinguish if process.stdin is a file or TTY 1587 // // device, it always assumes it's a TTY device. because of this, we're forcing 1588 // // process.stdin to UTF8 encoding to at least make stdin reading compatible 1589 // // with text files until FS.init can be refactored. 1590 // process['stdin']['setEncoding']('utf8'); 1591 // } 1592 },shutdown:function () { 1593 // https://github.com/kripken/emscripten/pull/1555 1594 // if (ENVIRONMENT_IS_NODE) { 1595 // // inolen: any idea as to why node -e 'process.stdin.read()' wouldn't exit immediately (with process.stdin being a tty)? 1596 // // 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 1597 // // inolen: I thought read() in that case was a synchronous operation that just grabbed some amount of buffered data if it exists? 1598 // // isaacs: it is. but it also triggers a _read() call, which calls readStart() on the handle 1599 // // isaacs: do process.stdin.pause() and i'd think it'd probably close the pending call 1600 // process['stdin']['pause'](); 1601 // } 1602 },register:function (dev, ops) { 1603 TTY.ttys[dev] = { input: [], output: [], ops: ops }; 1604 FS.registerDevice(dev, TTY.stream_ops); 1605 },stream_ops:{open:function (stream) { 1606 var tty = TTY.ttys[stream.node.rdev]; 1607 if (!tty) { 1608 throw new FS.ErrnoError(ERRNO_CODES.ENODEV); 1609 } 1610 stream.tty = tty; 1611 stream.seekable = false; 1612 },close:function (stream) { 1613 // flush any pending line data 1614 if (stream.tty.output.length) { 1615 stream.tty.ops.put_char(stream.tty, 10); 1616 } 1617 },read:function (stream, buffer, offset, length, pos /* ignored */) { 1618 if (!stream.tty || !stream.tty.ops.get_char) { 1619 throw new FS.ErrnoError(ERRNO_CODES.ENXIO); 1620 } 1621 var bytesRead = 0; 1622 for (var i = 0; i < length; i++) { 1623 var result; 1624 try { 1625 result = stream.tty.ops.get_char(stream.tty); 1626 } catch (e) { 1627 throw new FS.ErrnoError(ERRNO_CODES.EIO); 1628 } 1629 if (result === undefined && bytesRead === 0) { 1630 throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); 1631 } 1632 if (result === null || result === undefined) break; 1633 bytesRead++; 1634 buffer[offset+i] = result; 1635 } 1636 if (bytesRead) { 1637 stream.node.timestamp = Date.now(); 1638 } 1639 return bytesRead; 1640 },write:function (stream, buffer, offset, length, pos) { 1641 if (!stream.tty || !stream.tty.ops.put_char) { 1642 throw new FS.ErrnoError(ERRNO_CODES.ENXIO); 1643 } 1644 for (var i = 0; i < length; i++) { 1645 try { 1646 stream.tty.ops.put_char(stream.tty, buffer[offset+i]); 1647 } catch (e) { 1648 throw new FS.ErrnoError(ERRNO_CODES.EIO); 1649 } 1650 } 1651 if (length) { 1652 stream.node.timestamp = Date.now(); 1653 } 1654 return i; 1655 }},default_tty_ops:{get_char:function (tty) { 1656 if (!tty.input.length) { 1657 var result = null; 1658 if (ENVIRONMENT_IS_NODE) { 1659 result = process['stdin']['read'](); 1660 if (!result) { 1661 if (process['stdin']['_readableState'] && process['stdin']['_readableState']['ended']) { 1662 return null; // EOF 1663 } 1664 return undefined; // no data available 1665 } 1666 } else if (typeof window != 'undefined' && 1667 typeof window.prompt == 'function') { 1668 // Browser. 1669 result = window.prompt('Input: '); // returns null on cancel 1670 if (result !== null) { 1671 result += '\n'; 1672 } 1673 } else if (typeof readline == 'function') { 1674 // Command line. 1675 result = readline(); 1676 if (result !== null) { 1677 result += '\n'; 1678 } 1679 } 1680 if (!result) { 1681 return null; 1682 } 1683 tty.input = intArrayFromString(result, true); 1684 } 1685 return tty.input.shift(); 1686 },put_char:function (tty, val) { 1687 if (val === null || val === 10) { 1688 Module['print'](tty.output.join('')); 1689 tty.output = []; 1690 } else { 1691 tty.output.push(TTY.utf8.processCChar(val)); 1692 } 1693 }},default_tty1_ops:{put_char:function (tty, val) { 1694 if (val === null || val === 10) { 1695 Module['printErr'](tty.output.join('')); 1696 tty.output = []; 1697 } else { 1698 tty.output.push(TTY.utf8.processCChar(val)); 1699 } 1700 }}}; 1701 1702 var MEMFS={ops_table:null,CONTENT_OWNING:1,CONTENT_FLEXIBLE:2,CONTENT_FIXED:3,mount:function (mount) { 1703 return MEMFS.createNode(null, '/', 16384 | 511 /* 0777 */, 0); 1704 },createNode:function (parent, name, mode, dev) { 1705 if (FS.isBlkdev(mode) || FS.isFIFO(mode)) { 1706 // no supported 1707 throw new FS.ErrnoError(ERRNO_CODES.EPERM); 1708 } 1709 if (!MEMFS.ops_table) { 1710 MEMFS.ops_table = { 1711 dir: { 1712 node: { 1713 getattr: MEMFS.node_ops.getattr, 1714 setattr: MEMFS.node_ops.setattr, 1715 lookup: MEMFS.node_ops.lookup, 1716 mknod: MEMFS.node_ops.mknod, 1717 rename: MEMFS.node_ops.rename, 1718 unlink: MEMFS.node_ops.unlink, 1719 rmdir: MEMFS.node_ops.rmdir, 1720 readdir: MEMFS.node_ops.readdir, 1721 symlink: MEMFS.node_ops.symlink 1722 }, 1723 stream: { 1724 llseek: MEMFS.stream_ops.llseek 1725 } 1726 }, 1727 file: { 1728 node: { 1729 getattr: MEMFS.node_ops.getattr, 1730 setattr: MEMFS.node_ops.setattr 1731 }, 1732 stream: { 1733 llseek: MEMFS.stream_ops.llseek, 1734 read: MEMFS.stream_ops.read, 1735 write: MEMFS.stream_ops.write, 1736 allocate: MEMFS.stream_ops.allocate, 1737 mmap: MEMFS.stream_ops.mmap 1738 } 1739 }, 1740 link: { 1741 node: { 1742 getattr: MEMFS.node_ops.getattr, 1743 setattr: MEMFS.node_ops.setattr, 1744 readlink: MEMFS.node_ops.readlink 1745 }, 1746 stream: {} 1747 }, 1748 chrdev: { 1749 node: { 1750 getattr: MEMFS.node_ops.getattr, 1751 setattr: MEMFS.node_ops.setattr 1752 }, 1753 stream: FS.chrdev_stream_ops 1754 }, 1755 }; 1756 } 1757 var node = FS.createNode(parent, name, mode, dev); 1758 if (FS.isDir(node.mode)) { 1759 node.node_ops = MEMFS.ops_table.dir.node; 1760 node.stream_ops = MEMFS.ops_table.dir.stream; 1761 node.contents = {}; 1762 } else if (FS.isFile(node.mode)) { 1763 node.node_ops = MEMFS.ops_table.file.node; 1764 node.stream_ops = MEMFS.ops_table.file.stream; 1765 node.contents = []; 1766 node.contentMode = MEMFS.CONTENT_FLEXIBLE; 1767 } else if (FS.isLink(node.mode)) { 1768 node.node_ops = MEMFS.ops_table.link.node; 1769 node.stream_ops = MEMFS.ops_table.link.stream; 1770 } else if (FS.isChrdev(node.mode)) { 1771 node.node_ops = MEMFS.ops_table.chrdev.node; 1772 node.stream_ops = MEMFS.ops_table.chrdev.stream; 1773 } 1774 node.timestamp = Date.now(); 1775 // add the new node to the parent 1776 if (parent) { 1777 parent.contents[name] = node; 1778 } 1779 return node; 1780 },ensureFlexible:function (node) { 1781 if (node.contentMode !== MEMFS.CONTENT_FLEXIBLE) { 1782 var contents = node.contents; 1783 node.contents = Array.prototype.slice.call(contents); 1784 node.contentMode = MEMFS.CONTENT_FLEXIBLE; 1785 } 1786 },node_ops:{getattr:function (node) { 1787 var attr = {}; 1788 // device numbers reuse inode numbers. 1789 attr.dev = FS.isChrdev(node.mode) ? node.id : 1; 1790 attr.ino = node.id; 1791 attr.mode = node.mode; 1792 attr.nlink = 1; 1793 attr.uid = 0; 1794 attr.gid = 0; 1795 attr.rdev = node.rdev; 1796 if (FS.isDir(node.mode)) { 1797 attr.size = 4096; 1798 } else if (FS.isFile(node.mode)) { 1799 attr.size = node.contents.length; 1800 } else if (FS.isLink(node.mode)) { 1801 attr.size = node.link.length; 1802 } else { 1803 attr.size = 0; 1804 } 1805 attr.atime = new Date(node.timestamp); 1806 attr.mtime = new Date(node.timestamp); 1807 attr.ctime = new Date(node.timestamp); 1808 // NOTE: In our implementation, st_blocks = Math.ceil(st_size/st_blksize), 1809 // but this is not required by the standard. 1810 attr.blksize = 4096; 1811 attr.blocks = Math.ceil(attr.size / attr.blksize); 1812 return attr; 1813 },setattr:function (node, attr) { 1814 if (attr.mode !== undefined) { 1815 node.mode = attr.mode; 1816 } 1817 if (attr.timestamp !== undefined) { 1818 node.timestamp = attr.timestamp; 1819 } 1820 if (attr.size !== undefined) { 1821 MEMFS.ensureFlexible(node); 1822 var contents = node.contents; 1823 if (attr.size < contents.length) contents.length = attr.size; 1824 else while (attr.size > contents.length) contents.push(0); 1825 } 1826 },lookup:function (parent, name) { 1827 throw FS.genericErrors[ERRNO_CODES.ENOENT]; 1828 },mknod:function (parent, name, mode, dev) { 1829 return MEMFS.createNode(parent, name, mode, dev); 1830 },rename:function (old_node, new_dir, new_name) { 1831 // if we're overwriting a directory at new_name, make sure it's empty. 1832 if (FS.isDir(old_node.mode)) { 1833 var new_node; 1834 try { 1835 new_node = FS.lookupNode(new_dir, new_name); 1836 } catch (e) { 1837 } 1838 if (new_node) { 1839 for (var i in new_node.contents) { 1840 throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); 1841 } 1842 } 1843 } 1844 // do the internal rewiring 1845 delete old_node.parent.contents[old_node.name]; 1846 old_node.name = new_name; 1847 new_dir.contents[new_name] = old_node; 1848 old_node.parent = new_dir; 1849 },unlink:function (parent, name) { 1850 delete parent.contents[name]; 1851 },rmdir:function (parent, name) { 1852 var node = FS.lookupNode(parent, name); 1853 for (var i in node.contents) { 1854 throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); 1855 } 1856 delete parent.contents[name]; 1857 },readdir:function (node) { 1858 var entries = ['.', '..'] 1859 for (var key in node.contents) { 1860 if (!node.contents.hasOwnProperty(key)) { 1861 continue; 1862 } 1863 entries.push(key); 1864 } 1865 return entries; 1866 },symlink:function (parent, newname, oldpath) { 1867 var node = MEMFS.createNode(parent, newname, 511 /* 0777 */ | 40960, 0); 1868 node.link = oldpath; 1869 return node; 1870 },readlink:function (node) { 1871 if (!FS.isLink(node.mode)) { 1872 throw new FS.ErrnoError(ERRNO_CODES.EINVAL); 1873 } 1874 return node.link; 1875 }},stream_ops:{read:function (stream, buffer, offset, length, position) { 1876 var contents = stream.node.contents; 1877 if (position >= contents.length) 1878 return 0; 1879 var size = Math.min(contents.length - position, length); 1880 assert(size >= 0); 1881 if (size > 8 && contents.subarray) { // non-trivial, and typed array 1882 buffer.set(contents.subarray(position, position + size), offset); 1883 } else 1884 { 1885 for (var i = 0; i < size; i++) { 1886 buffer[offset + i] = contents[position + i]; 1887 } 1888 } 1889 return size; 1890 },write:function (stream, buffer, offset, length, position, canOwn) { 1891 var node = stream.node; 1892 node.timestamp = Date.now(); 1893 var contents = node.contents; 1894 if (length && contents.length === 0 && position === 0 && buffer.subarray) { 1895 // just replace it with the new data 1896 if (canOwn && offset === 0) { 1897 node.contents = buffer; // this could be a subarray of Emscripten HEAP, or allocated from some other source. 1898 node.contentMode = (buffer.buffer === HEAP8.buffer) ? MEMFS.CONTENT_OWNING : MEMFS.CONTENT_FIXED; 1899 } else { 1900 node.contents = new Uint8Array(buffer.subarray(offset, offset+length)); 1901 node.contentMode = MEMFS.CONTENT_FIXED; 1902 } 1903 return length; 1904 } 1905 MEMFS.ensureFlexible(node); 1906 var contents = node.contents; 1907 while (contents.length < position) contents.push(0); 1908 for (var i = 0; i < length; i++) { 1909 contents[position + i] = buffer[offset + i]; 1910 } 1911 return length; 1912 },llseek:function (stream, offset, whence) { 1913 var position = offset; 1914 if (whence === 1) { // SEEK_CUR. 1915 position += stream.position; 1916 } else if (whence === 2) { // SEEK_END. 1917 if (FS.isFile(stream.node.mode)) { 1918 position += stream.node.contents.length; 1919 } 1920 } 1921 if (position < 0) { 1922 throw new FS.ErrnoError(ERRNO_CODES.EINVAL); 1923 } 1924 stream.ungotten = []; 1925 stream.position = position; 1926 return position; 1927 },allocate:function (stream, offset, length) { 1928 MEMFS.ensureFlexible(stream.node); 1929 var contents = stream.node.contents; 1930 var limit = offset + length; 1931 while (limit > contents.length) contents.push(0); 1932 },mmap:function (stream, buffer, offset, length, position, prot, flags) { 1933 if (!FS.isFile(stream.node.mode)) { 1934 throw new FS.ErrnoError(ERRNO_CODES.ENODEV); 1935 } 1936 var ptr; 1937 var allocated; 1938 var contents = stream.node.contents; 1939 // Only make a new copy when MAP_PRIVATE is specified. 1940 if ( !(flags & 2) && 1941 (contents.buffer === buffer || contents.buffer === buffer.buffer) ) { 1942 // We can't emulate MAP_SHARED when the file is not backed by the buffer 1943 // we're mapping to (e.g. the HEAP buffer). 1944 allocated = false; 1945 ptr = contents.byteOffset; 1946 } else { 1947 // Try to avoid unnecessary slices. 1948 if (position > 0 || position + length < contents.length) { 1949 if (contents.subarray) { 1950 contents = contents.subarray(position, position + length); 1951 } else { 1952 contents = Array.prototype.slice.call(contents, position, position + length); 1953 } 1954 } 1955 allocated = true; 1956 ptr = _malloc(length); 1957 if (!ptr) { 1958 throw new FS.ErrnoError(ERRNO_CODES.ENOMEM); 1959 } 1960 buffer.set(contents, ptr); 1961 } 1962 return { ptr: ptr, allocated: allocated }; 1963 }}}; 1964 1965 var IDBFS={dbs:{},indexedDB:function () { 1966 return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; 1967 },DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function (mount) { 1968 // reuse all of the core MEMFS functionality 1969 return MEMFS.mount.apply(null, arguments); 1970 },syncfs:function (mount, populate, callback) { 1971 IDBFS.getLocalSet(mount, function(err, local) { 1972 if (err) return callback(err); 1973 1974 IDBFS.getRemoteSet(mount, function(err, remote) { 1975 if (err) return callback(err); 1976 1977 var src = populate ? remote : local; 1978 var dst = populate ? local : remote; 1979 1980 IDBFS.reconcile(src, dst, callback); 1981 }); 1982 }); 1983 },getDB:function (name, callback) { 1984 // check the cache first 1985 var db = IDBFS.dbs[name]; 1986 if (db) { 1987 return callback(null, db); 1988 } 1989 1990 var req; 1991 try { 1992 req = IDBFS.indexedDB().open(name, IDBFS.DB_VERSION); 1993 } catch (e) { 1994 return callback(e); 1995 } 1996 req.onupgradeneeded = function(e) { 1997 var db = e.target.result; 1998 var transaction = e.target.transaction; 1999 2000 var fileStore; 2001 2002 if (db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)) { 2003 fileStore = transaction.objectStore(IDBFS.DB_STORE_NAME); 2004 } else { 2005 fileStore = db.createObjectStore(IDBFS.DB_STORE_NAME); 2006 } 2007 2008 fileStore.createIndex('timestamp', 'timestamp', { unique: false }); 2009 }; 2010 req.onsuccess = function() { 2011 db = req.result; 2012 2013 // add to the cache 2014 IDBFS.dbs[name] = db; 2015 callback(null, db); 2016 }; 2017 req.onerror = function() { 2018 callback(this.error); 2019 }; 2020 },getLocalSet:function (mount, callback) { 2021 var entries = {}; 2022 2023 function isRealDir(p) { 2024 return p !== '.' && p !== '..'; 2025 }; 2026 function toAbsolute(root) { 2027 return function(p) { 2028 return PATH.join2(root, p); 2029 } 2030 }; 2031 2032 var check = FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint)); 2033 2034 while (check.length) { 2035 var path = check.pop(); 2036 var stat; 2037 2038 try { 2039 stat = FS.stat(path); 2040 } catch (e) { 2041 return callback(e); 2042 } 2043 2044 if (FS.isDir(stat.mode)) { 2045 check.push.apply(check, FS.readdir(path).filter(isRealDir).map(toAbsolute(path))); 2046 } 2047 2048 entries[path] = { timestamp: stat.mtime }; 2049 } 2050 2051 return callback(null, { type: 'local', entries: entries }); 2052 },getRemoteSet:function (mount, callback) { 2053 var entries = {}; 2054 2055 IDBFS.getDB(mount.mountpoint, function(err, db) { 2056 if (err) return callback(err); 2057 2058 var transaction = db.transaction([IDBFS.DB_STORE_NAME], 'readonly'); 2059 transaction.onerror = function() { callback(this.error); }; 2060 2061 var store = transaction.objectStore(IDBFS.DB_STORE_NAME); 2062 var index = store.index('timestamp'); 2063 2064 index.openKeyCursor().onsuccess = function(event) { 2065 var cursor = event.target.result; 2066 2067 if (!cursor) { 2068 return callback(null, { type: 'remote', db: db, entries: entries }); 2069 } 2070 2071 entries[cursor.primaryKey] = { timestamp: cursor.key }; 2072 2073 cursor.continue(); 2074 }; 2075 }); 2076 },loadLocalEntry:function (path, callback) { 2077 var stat, node; 2078 2079 try { 2080 var lookup = FS.lookupPath(path); 2081 node = lookup.node; 2082 stat = FS.stat(path); 2083 } catch (e) { 2084 return callback(e); 2085 } 2086 2087 if (FS.isDir(stat.mode)) { 2088 return callback(null, { timestamp: stat.mtime, mode: stat.mode }); 2089 } else if (FS.isFile(stat.mode)) { 2090 return callback(null, { timestamp: stat.mtime, mode: stat.mode, contents: node.contents }); 2091 } else { 2092 return callback(new Error('node type not supported')); 2093 } 2094 },storeLocalEntry:function (path, entry, callback) { 2095 try { 2096 if (FS.isDir(entry.mode)) { 2097 FS.mkdir(path, entry.mode); 2098 } else if (FS.isFile(entry.mode)) { 2099 FS.writeFile(path, entry.contents, { encoding: 'binary', canOwn: true }); 2100 } else { 2101 return callback(new Error('node type not supported')); 2102 } 2103 2104 FS.utime(path, entry.timestamp, entry.timestamp); 2105 } catch (e) { 2106 return callback(e); 2107 } 2108 2109 callback(null); 2110 },removeLocalEntry:function (path, callback) { 2111 try { 2112 var lookup = FS.lookupPath(path); 2113 var stat = FS.stat(path); 2114 2115 if (FS.isDir(stat.mode)) { 2116 FS.rmdir(path); 2117 } else if (FS.isFile(stat.mode)) { 2118 FS.unlink(path); 2119 } 2120 } catch (e) { 2121 return callback(e); 2122 } 2123 2124 callback(null); 2125 },loadRemoteEntry:function (store, path, callback) { 2126 var req = store.get(path); 2127 req.onsuccess = function(event) { callback(null, event.target.result); }; 2128 req.onerror = function() { callback(this.error); }; 2129 },storeRemoteEntry:function (store, path, entry, callback) { 2130 var req = store.put(entry, path); 2131 req.onsuccess = function() { callback(null); }; 2132 req.onerror = function() { callback(this.error); }; 2133 },removeRemoteEntry:function (store, path, callback) { 2134 var req = store.delete(path); 2135 req.onsuccess = function() { callback(null); }; 2136 req.onerror = function() { callback(this.error); }; 2137 },reconcile:function (src, dst, callback) { 2138 var total = 0; 2139 2140 var create = []; 2141 Object.keys(src.entries).forEach(function (key) { 2142 var e = src.entries[key]; 2143 var e2 = dst.entries[key]; 2144 if (!e2 || e.timestamp > e2.timestamp) { 2145 create.push(key); 2146 total++; 2147 } 2148 }); 2149 2150 var remove = []; 2151 Object.keys(dst.entries).forEach(function (key) { 2152 var e = dst.entries[key]; 2153 var e2 = src.entries[key]; 2154 if (!e2) { 2155 remove.push(key); 2156 total++; 2157 } 2158 }); 2159 2160 if (!total) { 2161 return callback(null); 2162 } 2163 2164 var errored = false; 2165 var completed = 0; 2166 var db = src.type === 'remote' ? src.db : dst.db; 2167 var transaction = db.transaction([IDBFS.DB_STORE_NAME], 'readwrite'); 2168 var store = transaction.objectStore(IDBFS.DB_STORE_NAME); 2169 2170 function done(err) { 2171 if (err) { 2172 if (!done.errored) { 2173 done.errored = true; 2174 return callback(err); 2175 } 2176 return; 2177 } 2178 if (++completed >= total) { 2179 return callback(null); 2180 } 2181 }; 2182 2183 transaction.onerror = function() { done(this.error); }; 2184 2185 // sort paths in ascending order so directory entries are created 2186 // before the files inside them 2187 create.sort().forEach(function (path) { 2188 if (dst.type === 'local') { 2189 IDBFS.loadRemoteEntry(store, path, function (err, entry) { 2190 if (err) return done(err); 2191 IDBFS.storeLocalEntry(path, entry, done); 2192 }); 2193 } else { 2194 IDBFS.loadLocalEntry(path, function (err, entry) { 2195 if (err) return done(err); 2196 IDBFS.storeRemoteEntry(store, path, entry, done); 2197 }); 2198 } 2199 }); 2200 2201 // sort paths in descending order so files are deleted before their 2202 // parent directories 2203 remove.sort().reverse().forEach(function(path) { 2204 if (dst.type === 'local') { 2205 IDBFS.removeLocalEntry(path, done); 2206 } else { 2207 IDBFS.removeRemoteEntry(store, path, done); 2208 } 2209 }); 2210 }}; 2211 2212 var NODEFS={isWindows:false,staticInit:function () { 2213 NODEFS.isWindows = !!process.platform.match(/^win/); 2214 },mount:function (mount) { 2215 assert(ENVIRONMENT_IS_NODE); 2216 return NODEFS.createNode(null, '/', NODEFS.getMode(mount.opts.root), 0); 2217 },createNode:function (parent, name, mode, dev) { 2218 if (!FS.isDir(mode) && !FS.isFile(mode) && !FS.isLink(mode)) { 2219 throw new FS.ErrnoError(ERRNO_CODES.EINVAL); 2220 } 2221 var node = FS.createNode(parent, name, mode); 2222 node.node_ops = NODEFS.node_ops; 2223 node.stream_ops = NODEFS.stream_ops; 2224 return node; 2225 },getMode:function (path) { 2226 var stat; 2227 try { 2228 stat = fs.lstatSync(path); 2229 if (NODEFS.isWindows) { 2230 // On Windows, directories return permission bits 'rw-rw-rw-', even though they have 'rwxrwxrwx', so 2231 // propagate write bits to execute bits. 2232 stat.mode = stat.mode | ((stat.mode & 146) >> 1); 2233 } 2234 } catch (e) { 2235 if (!e.code) throw e; 2236 throw new FS.ErrnoError(ERRNO_CODES[e.code]); 2237 } 2238 return stat.mode; 2239 },realPath:function (node) { 2240 var parts = []; 2241 while (node.parent !== node) { 2242 parts.push(node.name); 2243 node = node.parent; 2244 } 2245 parts.push(node.mount.opts.root); 2246 parts.reverse(); 2247 return PATH.join.apply(null, parts); 2248 },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) { 2249 if (flags in NODEFS.flagsToPermissionStringMap) { 2250 return NODEFS.flagsToPermissionStringMap[flags]; 2251 } else { 2252 return flags; 2253 } 2254 },node_ops:{getattr:function (node) { 2255 var path = NODEFS.realPath(node); 2256 var stat; 2257 try { 2258 stat = fs.lstatSync(path); 2259 } catch (e) { 2260 if (!e.code) throw e; 2261 throw new FS.ErrnoError(ERRNO_CODES[e.code]); 2262 } 2263 // node.js v0.10.20 doesn't report blksize and blocks on Windows. Fake them with default blksize of 4096. 2264 // See http://support.microsoft.com/kb/140365 2265 if (NODEFS.isWindows && !stat.blksize) { 2266 stat.blksize = 4096; 2267 } 2268 if (NODEFS.isWindows && !stat.blocks) { 2269 stat.blocks = (stat.size+stat.blksize-1)/stat.blksize|0; 2270 } 2271 return { 2272 dev: stat.dev, 2273 ino: stat.ino, 2274 mode: stat.mode, 2275 nlink: stat.nlink, 2276 uid: stat.uid, 2277 gid: stat.gid, 2278 rdev: stat.rdev, 2279 size: stat.size, 2280 atime: stat.atime, 2281 mtime: stat.mtime, 2282 ctime: stat.ctime, 2283 blksize: stat.blksize, 2284 blocks: stat.blocks 2285 }; 2286 },setattr:function (node, attr) { 2287 var path = NODEFS.realPath(node); 2288 try { 2289 if (attr.mode !== undefined) { 2290 fs.chmodSync(path, attr.mode); 2291 // update the common node structure mode as well 2292 node.mode = attr.mode; 2293 } 2294 if (attr.timestamp !== undefined) { 2295 var date = new Date(attr.timestamp); 2296 fs.utimesSync(path, date, date); 2297 } 2298 if (attr.size !== undefined) { 2299 fs.truncateSync(path, attr.size); 2300 } 2301 } catch (e) { 2302 if (!e.code) throw e; 2303 throw new FS.ErrnoError(ERRNO_CODES[e.code]); 2304 } 2305 },lookup:function (parent, name) { 2306 var path = PATH.join2(NODEFS.realPath(parent), name); 2307 var mode = NODEFS.getMode(path); 2308 return NODEFS.createNode(parent, name, mode); 2309 },mknod:function (parent, name, mode, dev) { 2310 var node = NODEFS.createNode(parent, name, mode, dev); 2311 // create the backing node for this in the fs root as well 2312 var path = NODEFS.realPath(node); 2313 try { 2314 if (FS.isDir(node.mode)) { 2315 fs.mkdirSync(path, node.mode); 2316 } else { 2317 fs.writeFileSync(path, '', { mode: node.mode }); 2318 } 2319 } catch (e) { 2320 if (!e.code) throw e; 2321 throw new FS.ErrnoError(ERRNO_CODES[e.code]); 2322 } 2323 return node; 2324 },rename:function (oldNode, newDir, newName) { 2325 var oldPath = NODEFS.realPath(oldNode); 2326 var newPath = PATH.join2(NODEFS.realPath(newDir), newName); 2327 try { 2328 fs.renameSync(oldPath, newPath); 2329 } catch (e) { 2330 if (!e.code) throw e; 2331 throw new FS.ErrnoError(ERRNO_CODES[e.code]); 2332 } 2333 },unlink:function (parent, name) { 2334 var path = PATH.join2(NODEFS.realPath(parent), name); 2335 try { 2336 fs.unlinkSync(path); 2337 } catch (e) { 2338 if (!e.code) throw e; 2339 throw new FS.ErrnoError(ERRNO_CODES[e.code]); 2340 } 2341 },rmdir:function (parent, name) { 2342 var path = PATH.join2(NODEFS.realPath(parent), name); 2343 try { 2344 fs.rmdirSync(path); 2345 } catch (e) { 2346 if (!e.code) throw e; 2347 throw new FS.ErrnoError(ERRNO_CODES[e.code]); 2348 } 2349 },readdir:function (node) { 2350 var path = NODEFS.realPath(node); 2351 try { 2352 return fs.readdirSync(path); 2353 } catch (e) { 2354 if (!e.code) throw e; 2355 throw new FS.ErrnoError(ERRNO_CODES[e.code]); 2356 } 2357 },symlink:function (parent, newName, oldPath) { 2358 var newPath = PATH.join2(NODEFS.realPath(parent), newName); 2359 try { 2360 fs.symlinkSync(oldPath, newPath); 2361 } catch (e) { 2362 if (!e.code) throw e; 2363 throw new FS.ErrnoError(ERRNO_CODES[e.code]); 2364 } 2365 },readlink:function (node) { 2366 var path = NODEFS.realPath(node); 2367 try { 2368 return fs.readlinkSync(path); 2369 } catch (e) { 2370 if (!e.code) throw e; 2371 throw new FS.ErrnoError(ERRNO_CODES[e.code]); 2372 } 2373 }},stream_ops:{open:function (stream) { 2374 var path = NODEFS.realPath(stream.node); 2375 try { 2376 if (FS.isFile(stream.node.mode)) { 2377 stream.nfd = fs.openSync(path, NODEFS.flagsToPermissionString(stream.flags)); 2378 } 2379 } catch (e) { 2380 if (!e.code) throw e; 2381 throw new FS.ErrnoError(ERRNO_CODES[e.code]); 2382 } 2383 },close:function (stream) { 2384 try { 2385 if (FS.isFile(stream.node.mode) && stream.nfd) { 2386 fs.closeSync(stream.nfd); 2387 } 2388 } catch (e) { 2389 if (!e.code) throw e; 2390 throw new FS.ErrnoError(ERRNO_CODES[e.code]); 2391 } 2392 },read:function (stream, buffer, offset, length, position) { 2393 // FIXME this is terrible. 2394 var nbuffer = new Buffer(length); 2395 var res; 2396 try { 2397 res = fs.readSync(stream.nfd, nbuffer, 0, length, position); 2398 } catch (e) { 2399 throw new FS.ErrnoError(ERRNO_CODES[e.code]); 2400 } 2401 if (res > 0) { 2402 for (var i = 0; i < res; i++) { 2403 buffer[offset + i] = nbuffer[i]; 2404 } 2405 } 2406 return res; 2407 },write:function (stream, buffer, offset, length, position) { 2408 // FIXME this is terrible. 2409 var nbuffer = new Buffer(buffer.subarray(offset, offset + length)); 2410 var res; 2411 try { 2412 res = fs.writeSync(stream.nfd, nbuffer, 0, length, position); 2413 } catch (e) { 2414 throw new FS.ErrnoError(ERRNO_CODES[e.code]); 2415 } 2416 return res; 2417 },llseek:function (stream, offset, whence) { 2418 var position = offset; 2419 if (whence === 1) { // SEEK_CUR. 2420 position += stream.position; 2421 } else if (whence === 2) { // SEEK_END. 2422 if (FS.isFile(stream.node.mode)) { 2423 try { 2424 var stat = fs.fstatSync(stream.nfd); 2425 position += stat.size; 2426 } catch (e) { 2427 throw new FS.ErrnoError(ERRNO_CODES[e.code]); 2428 } 2429 } 2430 } 2431 2432 if (position < 0) { 2433 throw new FS.ErrnoError(ERRNO_CODES.EINVAL); 2434 } 2435 2436 stream.position = position; 2437 return position; 2438 }}}; 2439 2440 var _stdin=allocate(1, "i32*", ALLOC_STATIC); 2441 2442 var _stdout=allocate(1, "i32*", ALLOC_STATIC); 2443 2444 var _stderr=allocate(1, "i32*", ALLOC_STATIC); 2445 2446 function _fflush(stream) { 2447 // int fflush(FILE *stream); 2448 // http://pubs.opengroup.org/onlinepubs/000095399/functions/fflush.html 2449 // we don't currently perform any user-space buffering of data 2450 }var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:null,genericErrors:{},handleFSError:function (e) { 2451 if (!(e instanceof FS.ErrnoError)) throw e + ' : ' + stackTrace(); 2452 return ___setErrNo(e.errno); 2453 },lookupPath:function (path, opts) { 2454 path = PATH.resolve(FS.cwd(), path); 2455 opts = opts || {}; 2456 2457 var defaults = { 2458 follow_mount: true, 2459 recurse_count: 0 2460 }; 2461 for (var key in defaults) { 2462 if (opts[key] === undefined) { 2463 opts[key] = defaults[key]; 2464 } 2465 } 2466 2467 if (opts.recurse_count > 8) { // max recursive lookup of 8 2468 throw new FS.ErrnoError(ERRNO_CODES.ELOOP); 2469 } 2470 2471 // split the path 2472 var parts = PATH.normalizeArray(path.split('/').filter(function(p) { 2473 return !!p; 2474 }), false); 2475 2476 // start at the root 2477 var current = FS.root; 2478 var current_path = '/'; 2479 2480 for (var i = 0; i < parts.length; i++) { 2481 var islast = (i === parts.length-1); 2482 if (islast && opts.parent) { 2483 // stop resolving 2484 break; 2485 } 2486 2487 current = FS.lookupNode(current, parts[i]); 2488 current_path = PATH.join2(current_path, parts[i]); 2489 2490 // jump to the mount's root node if this is a mountpoint 2491 if (FS.isMountpoint(current)) { 2492 if (!islast || (islast && opts.follow_mount)) { 2493 current = current.mounted.root; 2494 } 2495 } 2496 2497 // by default, lookupPath will not follow a symlink if it is the final path component. 2498 // setting opts.follow = true will override this behavior. 2499 if (!islast || opts.follow) { 2500 var count = 0; 2501 while (FS.isLink(current.mode)) { 2502 var link = FS.readlink(current_path); 2503 current_path = PATH.resolve(PATH.dirname(current_path), link); 2504 2505 var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count }); 2506 current = lookup.node; 2507 2508 if (count++ > 40) { // limit max consecutive symlinks to 40 (SYMLOOP_MAX). 2509 throw new FS.ErrnoError(ERRNO_CODES.ELOOP); 2510 } 2511 } 2512 } 2513 } 2514 2515 return { path: current_path, node: current }; 2516 },getPath:function (node) { 2517 var path; 2518 while (true) { 2519 if (FS.isRoot(node)) { 2520 var mount = node.mount.mountpoint; 2521 if (!path) return mount; 2522 return mount[mount.length-1] !== '/' ? mount + '/' + path : mount + path; 2523 } 2524 path = path ? node.name + '/' + path : node.name; 2525 node = node.parent; 2526 } 2527 },hashName:function (parentid, name) { 2528 var hash = 0; 2529 2530 2531 for (var i = 0; i < name.length; i++) { 2532 hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0; 2533 } 2534 return ((parentid + hash) >>> 0) % FS.nameTable.length; 2535 },hashAddNode:function (node) { 2536 var hash = FS.hashName(node.parent.id, node.name); 2537 node.name_next = FS.nameTable[hash]; 2538 FS.nameTable[hash] = node; 2539 },hashRemoveNode:function (node) { 2540 var hash = FS.hashName(node.parent.id, node.name); 2541 if (FS.nameTable[hash] === node) { 2542 FS.nameTable[hash] = node.name_next; 2543 } else { 2544 var current = FS.nameTable[hash]; 2545 while (current) { 2546 if (current.name_next === node) { 2547 current.name_next = node.name_next; 2548 break; 2549 } 2550 current = current.name_next; 2551 } 2552 } 2553 },lookupNode:function (parent, name) { 2554 var err = FS.mayLookup(parent); 2555 if (err) { 2556 throw new FS.ErrnoError(err); 2557 } 2558 var hash = FS.hashName(parent.id, name); 2559 for (var node = FS.nameTable[hash]; node; node = node.name_next) { 2560 var nodeName = node.name; 2561 if (node.parent.id === parent.id && nodeName === name) { 2562 return node; 2563 } 2564 } 2565 // if we failed to find it in the cache, call into the VFS 2566 return FS.lookup(parent, name); 2567 },createNode:function (parent, name, mode, rdev) { 2568 if (!FS.FSNode) { 2569 FS.FSNode = function(parent, name, mode, rdev) { 2570 if (!parent) { 2571 parent = this; // root node sets parent to itself 2572 } 2573 this.parent = parent; 2574 this.mount = parent.mount; 2575 this.mounted = null; 2576 this.id = FS.nextInode++; 2577 this.name = name; 2578 this.mode = mode; 2579 this.node_ops = {}; 2580 this.stream_ops = {}; 2581 this.rdev = rdev; 2582 }; 2583 2584 FS.FSNode.prototype = {}; 2585 2586 // compatibility 2587 var readMode = 292 | 73; 2588 var writeMode = 146; 2589 2590 // NOTE we must use Object.defineProperties instead of individual calls to 2591 // Object.defineProperty in order to make closure compiler happy 2592 Object.defineProperties(FS.FSNode.prototype, { 2593 read: { 2594 get: function() { return (this.mode & readMode) === readMode; }, 2595 set: function(val) { val ? this.mode |= readMode : this.mode &= ~readMode; } 2596 }, 2597 write: { 2598 get: function() { return (this.mode & writeMode) === writeMode; }, 2599 set: function(val) { val ? this.mode |= writeMode : this.mode &= ~writeMode; } 2600 }, 2601 isFolder: { 2602 get: function() { return FS.isDir(this.mode); }, 2603 }, 2604 isDevice: { 2605 get: function() { return FS.isChrdev(this.mode); }, 2606 }, 2607 }); 2608 } 2609 2610 var node = new FS.FSNode(parent, name, mode, rdev); 2611 2612 FS.hashAddNode(node); 2613 2614 return node; 2615 },destroyNode:function (node) { 2616 FS.hashRemoveNode(node); 2617 },isRoot:function (node) { 2618 return node === node.parent; 2619 },isMountpoint:function (node) { 2620 return !!node.mounted; 2621 },isFile:function (mode) { 2622 return (mode & 61440) === 32768; 2623 },isDir:function (mode) { 2624 return (mode & 61440) === 16384; 2625 },isLink:function (mode) { 2626 return (mode & 61440) === 40960; 2627 },isChrdev:function (mode) { 2628 return (mode & 61440) === 8192; 2629 },isBlkdev:function (mode) { 2630 return (mode & 61440) === 24576; 2631 },isFIFO:function (mode) { 2632 return (mode & 61440) === 4096; 2633 },isSocket:function (mode) { 2634 return (mode & 49152) === 49152; 2635 },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) { 2636 var flags = FS.flagModes[str]; 2637 if (typeof flags === 'undefined') { 2638 throw new Error('Unknown file open mode: ' + str); 2639 } 2640 return flags; 2641 },flagsToPermissionString:function (flag) { 2642 var accmode = flag & 2097155; 2643 var perms = ['r', 'w', 'rw'][accmode]; 2644 if ((flag & 512)) { 2645 perms += 'w'; 2646 } 2647 return perms; 2648 },nodePermissions:function (node, perms) { 2649 if (FS.ignorePermissions) { 2650 return 0; 2651 } 2652 // return 0 if any user, group or owner bits are set. 2653 if (perms.indexOf('r') !== -1 && !(node.mode & 292)) { 2654 return ERRNO_CODES.EACCES; 2655 } else if (perms.indexOf('w') !== -1 && !(node.mode & 146)) { 2656 return ERRNO_CODES.EACCES; 2657 } else if (perms.indexOf('x') !== -1 && !(node.mode & 73)) { 2658 return ERRNO_CODES.EACCES; 2659 } 2660 return 0; 2661 },mayLookup:function (dir) { 2662 return FS.nodePermissions(dir, 'x'); 2663 },mayCreate:function (dir, name) { 2664 try { 2665 var node = FS.lookupNode(dir, name); 2666 return ERRNO_CODES.EEXIST; 2667 } catch (e) { 2668 } 2669 return FS.nodePermissions(dir, 'wx'); 2670 },mayDelete:function (dir, name, isdir) { 2671 var node; 2672 try { 2673 node = FS.lookupNode(dir, name); 2674 } catch (e) { 2675 return e.errno; 2676 } 2677 var err = FS.nodePermissions(dir, 'wx'); 2678 if (err) { 2679 return err; 2680 } 2681 if (isdir) { 2682 if (!FS.isDir(node.mode)) { 2683 return ERRNO_CODES.ENOTDIR; 2684 } 2685 if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) { 2686 return ERRNO_CODES.EBUSY; 2687 } 2688 } else { 2689 if (FS.isDir(node.mode)) { 2690 return ERRNO_CODES.EISDIR; 2691 } 2692 } 2693 return 0; 2694 },mayOpen:function (node, flags) { 2695 if (!node) { 2696 return ERRNO_CODES.ENOENT; 2697 } 2698 if (FS.isLink(node.mode)) { 2699 return ERRNO_CODES.ELOOP; 2700 } else if (FS.isDir(node.mode)) { 2701 if ((flags & 2097155) !== 0 || // opening for write 2702 (flags & 512)) { 2703 return ERRNO_CODES.EISDIR; 2704 } 2705 } 2706 return FS.nodePermissions(node, FS.flagsToPermissionString(flags)); 2707 },MAX_OPEN_FDS:4096,nextfd:function (fd_start, fd_end) { 2708 fd_start = fd_start || 0; 2709 fd_end = fd_end || FS.MAX_OPEN_FDS; 2710 for (var fd = fd_start; fd <= fd_end; fd++) { 2711 if (!FS.streams[fd]) { 2712 return fd; 2713 } 2714 } 2715 throw new FS.ErrnoError(ERRNO_CODES.EMFILE); 2716 },getStream:function (fd) { 2717 return FS.streams[fd]; 2718 },createStream:function (stream, fd_start, fd_end) { 2719 if (!FS.FSStream) { 2720 FS.FSStream = function(){}; 2721 FS.FSStream.prototype = {}; 2722 // compatibility 2723 Object.defineProperties(FS.FSStream.prototype, { 2724 object: { 2725 get: function() { return this.node; }, 2726 set: function(val) { this.node = val; } 2727 }, 2728 isRead: { 2729 get: function() { return (this.flags & 2097155) !== 1; } 2730 }, 2731 isWrite: { 2732 get: function() { return (this.flags & 2097155) !== 0; } 2733 }, 2734 isAppend: { 2735 get: function() { return (this.flags & 1024); } 2736 } 2737 }); 2738 } 2739 if (0) { 2740 // reuse the object 2741 stream.__proto__ = FS.FSStream.prototype; 2742 } else { 2743 var newStream = new FS.FSStream(); 2744 for (var p in stream) { 2745 newStream[p] = stream[p]; 2746 } 2747 stream = newStream; 2748 } 2749 var fd = FS.nextfd(fd_start, fd_end); 2750 stream.fd = fd; 2751 FS.streams[fd] = stream; 2752 return stream; 2753 },closeStream:function (fd) { 2754 FS.streams[fd] = null; 2755 },getStreamFromPtr:function (ptr) { 2756 return FS.streams[ptr - 1]; 2757 },getPtrForStream:function (stream) { 2758 return stream ? stream.fd + 1 : 0; 2759 },chrdev_stream_ops:{open:function (stream) { 2760 var device = FS.getDevice(stream.node.rdev); 2761 // override node's stream ops with the device's 2762 stream.stream_ops = device.stream_ops; 2763 // forward the open call 2764 if (stream.stream_ops.open) { 2765 stream.stream_ops.open(stream); 2766 } 2767 },llseek:function () { 2768 throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); 2769 }},major:function (dev) { 2770 return ((dev) >> 8); 2771 },minor:function (dev) { 2772 return ((dev) & 0xff); 2773 },makedev:function (ma, mi) { 2774 return ((ma) << 8 | (mi)); 2775 },registerDevice:function (dev, ops) { 2776 FS.devices[dev] = { stream_ops: ops }; 2777 },getDevice:function (dev) { 2778 return FS.devices[dev]; 2779 },getMounts:function (mount) { 2780 var mounts = []; 2781 var check = [mount]; 2782 2783 while (check.length) { 2784 var m = check.pop(); 2785 2786 mounts.push(m); 2787 2788 check.push.apply(check, m.mounts); 2789 } 2790 2791 return mounts; 2792 },syncfs:function (populate, callback) { 2793 if (typeof(populate) === 'function') { 2794 callback = populate; 2795 populate = false; 2796 } 2797 2798 var mounts = FS.getMounts(FS.root.mount); 2799 var completed = 0; 2800 2801 function done(err) { 2802 if (err) { 2803 if (!done.errored) { 2804 done.errored = true; 2805 return callback(err); 2806 } 2807 return; 2808 } 2809 if (++completed >= mounts.length) { 2810 callback(null); 2811 } 2812 }; 2813 2814 // sync all mounts 2815 mounts.forEach(function (mount) { 2816 if (!mount.type.syncfs) { 2817 return done(null); 2818 } 2819 mount.type.syncfs(mount, populate, done); 2820 }); 2821 },mount:function (type, opts, mountpoint) { 2822 var root = mountpoint === '/'; 2823 var pseudo = !mountpoint; 2824 var node; 2825 2826 if (root && FS.root) { 2827 throw new FS.ErrnoError(ERRNO_CODES.EBUSY); 2828 } else if (!root && !pseudo) { 2829 var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); 2830 2831 mountpoint = lookup.path; // use the absolute path 2832 node = lookup.node; 2833 2834 if (FS.isMountpoint(node)) { 2835 throw new FS.ErrnoError(ERRNO_CODES.EBUSY); 2836 } 2837 2838 if (!FS.isDir(node.mode)) { 2839 throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); 2840 } 2841 } 2842 2843 var mount = { 2844 type: type, 2845 opts: opts, 2846 mountpoint: mountpoint, 2847 mounts: [] 2848 }; 2849 2850 // create a root node for the fs 2851 var mountRoot = type.mount(mount); 2852 mountRoot.mount = mount; 2853 mount.root = mountRoot; 2854 2855 if (root) { 2856 FS.root = mountRoot; 2857 } else if (node) { 2858 // set as a mountpoint 2859 node.mounted = mount; 2860 2861 // add the new mount to the current mount's children 2862 if (node.mount) { 2863 node.mount.mounts.push(mount); 2864 } 2865 } 2866 2867 return mountRoot; 2868 },unmount:function (mountpoint) { 2869 var lookup = FS.lookupPath(mountpoint, { follow_mount: false }); 2870 2871 if (!FS.isMountpoint(lookup.node)) { 2872 throw new FS.ErrnoError(ERRNO_CODES.EINVAL); 2873 } 2874 2875 // destroy the nodes for this mount, and all its child mounts 2876 var node = lookup.node; 2877 var mount = node.mounted; 2878 var mounts = FS.getMounts(mount); 2879 2880 Object.keys(FS.nameTable).forEach(function (hash) { 2881 var current = FS.nameTable[hash]; 2882 2883 while (current) { 2884 var next = current.name_next; 2885 2886 if (mounts.indexOf(current.mount) !== -1) { 2887 FS.destroyNode(current); 2888 } 2889 2890 current = next; 2891 } 2892 }); 2893 2894 // no longer a mountpoint 2895 node.mounted = null; 2896 2897 // remove this mount from the child mounts 2898 var idx = node.mount.mounts.indexOf(mount); 2899 assert(idx !== -1); 2900 node.mount.mounts.splice(idx, 1); 2901 },lookup:function (parent, name) { 2902 return parent.node_ops.lookup(parent, name); 2903 },mknod:function (path, mode, dev) { 2904 var lookup = FS.lookupPath(path, { parent: true }); 2905 var parent = lookup.node; 2906 var name = PATH.basename(path); 2907 var err = FS.mayCreate(parent, name); 2908 if (err) { 2909 throw new FS.ErrnoError(err); 2910 } 2911 if (!parent.node_ops.mknod) { 2912 throw new FS.ErrnoError(ERRNO_CODES.EPERM); 2913 } 2914 return parent.node_ops.mknod(parent, name, mode, dev); 2915 },create:function (path, mode) { 2916 mode = mode !== undefined ? mode : 438 /* 0666 */; 2917 mode &= 4095; 2918 mode |= 32768; 2919 return FS.mknod(path, mode, 0); 2920 },mkdir:function (path, mode) { 2921 mode = mode !== undefined ? mode : 511 /* 0777 */; 2922 mode &= 511 | 512; 2923 mode |= 16384; 2924 return FS.mknod(path, mode, 0); 2925 },mkdev:function (path, mode, dev) { 2926 if (typeof(dev) === 'undefined') { 2927 dev = mode; 2928 mode = 438 /* 0666 */; 2929 } 2930 mode |= 8192; 2931 return FS.mknod(path, mode, dev); 2932 },symlink:function (oldpath, newpath) { 2933 var lookup = FS.lookupPath(newpath, { parent: true }); 2934 var parent = lookup.node; 2935 var newname = PATH.basename(newpath); 2936 var err = FS.mayCreate(parent, newname); 2937 if (err) { 2938 throw new FS.ErrnoError(err); 2939 } 2940 if (!parent.node_ops.symlink) { 2941 throw new FS.ErrnoError(ERRNO_CODES.EPERM); 2942 } 2943 return parent.node_ops.symlink(parent, newname, oldpath); 2944 },rename:function (old_path, new_path) { 2945 var old_dirname = PATH.dirname(old_path); 2946 var new_dirname = PATH.dirname(new_path); 2947 var old_name = PATH.basename(old_path); 2948 var new_name = PATH.basename(new_path); 2949 // parents must exist 2950 var lookup, old_dir, new_dir; 2951 try { 2952 lookup = FS.lookupPath(old_path, { parent: true }); 2953 old_dir = lookup.node; 2954 lookup = FS.lookupPath(new_path, { parent: true }); 2955 new_dir = lookup.node; 2956 } catch (e) { 2957 throw new FS.ErrnoError(ERRNO_CODES.EBUSY); 2958 } 2959 // need to be part of the same mount 2960 if (old_dir.mount !== new_dir.mount) { 2961 throw new FS.ErrnoError(ERRNO_CODES.EXDEV); 2962 } 2963 // source must exist 2964 var old_node = FS.lookupNode(old_dir, old_name); 2965 // old path should not be an ancestor of the new path 2966 var relative = PATH.relative(old_path, new_dirname); 2967 if (relative.charAt(0) !== '.') { 2968 throw new FS.ErrnoError(ERRNO_CODES.EINVAL); 2969 } 2970 // new path should not be an ancestor of the old path 2971 relative = PATH.relative(new_path, old_dirname); 2972 if (relative.charAt(0) !== '.') { 2973 throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY); 2974 } 2975 // see if the new path already exists 2976 var new_node; 2977 try { 2978 new_node = FS.lookupNode(new_dir, new_name); 2979 } catch (e) { 2980 // not fatal 2981 } 2982 // early out if nothing needs to change 2983 if (old_node === new_node) { 2984 return; 2985 } 2986 // we'll need to delete the old entry 2987 var isdir = FS.isDir(old_node.mode); 2988 var err = FS.mayDelete(old_dir, old_name, isdir); 2989 if (err) { 2990 throw new FS.ErrnoError(err); 2991 } 2992 // need delete permissions if we'll be overwriting. 2993 // need create permissions if new doesn't already exist. 2994 err = new_node ? 2995 FS.mayDelete(new_dir, new_name, isdir) : 2996 FS.mayCreate(new_dir, new_name); 2997 if (err) { 2998 throw new FS.ErrnoError(err); 2999 } 3000 if (!old_dir.node_ops.rename) { 3001 throw new FS.ErrnoError(ERRNO_CODES.EPERM); 3002 } 3003 if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) { 3004 throw new FS.ErrnoError(ERRNO_CODES.EBUSY); 3005 } 3006 // if we are going to change the parent, check write permissions 3007 if (new_dir !== old_dir) { 3008 err = FS.nodePermissions(old_dir, 'w'); 3009 if (err) { 3010 throw new FS.ErrnoError(err); 3011 } 3012 } 3013 // remove the node from the lookup hash 3014 FS.hashRemoveNode(old_node); 3015 // do the underlying fs rename 3016 try { 3017 old_dir.node_ops.rename(old_node, new_dir, new_name); 3018 } catch (e) { 3019 throw e; 3020 } finally { 3021 // add the node back to the hash (in case node_ops.rename 3022 // changed its name) 3023 FS.hashAddNode(old_node); 3024 } 3025 },rmdir:function (path) { 3026 var lookup = FS.lookupPath(path, { parent: true }); 3027 var parent = lookup.node; 3028 var name = PATH.basename(path); 3029 var node = FS.lookupNode(parent, name); 3030 var err = FS.mayDelete(parent, name, true); 3031 if (err) { 3032 throw new FS.ErrnoError(err); 3033 } 3034 if (!parent.node_ops.rmdir) { 3035 throw new FS.ErrnoError(ERRNO_CODES.EPERM); 3036 } 3037 if (FS.isMountpoint(node)) { 3038 throw new FS.ErrnoError(ERRNO_CODES.EBUSY); 3039 } 3040 parent.node_ops.rmdir(parent, name); 3041 FS.destroyNode(node); 3042 },readdir:function (path) { 3043 var lookup = FS.lookupPath(path, { follow: true }); 3044 var node = lookup.node; 3045 if (!node.node_ops.readdir) { 3046 throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); 3047 } 3048 return node.node_ops.readdir(node); 3049 },unlink:function (path) { 3050 var lookup = FS.lookupPath(path, { parent: true }); 3051 var parent = lookup.node; 3052 var name = PATH.basename(path); 3053 var node = FS.lookupNode(parent, name); 3054 var err = FS.mayDelete(parent, name, false); 3055 if (err) { 3056 // POSIX says unlink should set EPERM, not EISDIR 3057 if (err === ERRNO_CODES.EISDIR) err = ERRNO_CODES.EPERM; 3058 throw new FS.ErrnoError(err); 3059 } 3060 if (!parent.node_ops.unlink) { 3061 throw new FS.ErrnoError(ERRNO_CODES.EPERM); 3062 } 3063 if (FS.isMountpoint(node)) { 3064 throw new FS.ErrnoError(ERRNO_CODES.EBUSY); 3065 } 3066 parent.node_ops.unlink(parent, name); 3067 FS.destroyNode(node); 3068 },readlink:function (path) { 3069 var lookup = FS.lookupPath(path); 3070 var link = lookup.node; 3071 if (!link.node_ops.readlink) { 3072 throw new FS.ErrnoError(ERRNO_CODES.EINVAL); 3073 } 3074 return link.node_ops.readlink(link); 3075 },stat:function (path, dontFollow) { 3076 var lookup = FS.lookupPath(path, { follow: !dontFollow }); 3077 var node = lookup.node; 3078 if (!node.node_ops.getattr) { 3079 throw new FS.ErrnoError(ERRNO_CODES.EPERM); 3080 } 3081 return node.node_ops.getattr(node); 3082 },lstat:function (path) { 3083 return FS.stat(path, true); 3084 },chmod:function (path, mode, dontFollow) { 3085 var node; 3086 if (typeof path === 'string') { 3087 var lookup = FS.lookupPath(path, { follow: !dontFollow }); 3088 node = lookup.node; 3089 } else { 3090 node = path; 3091 } 3092 if (!node.node_ops.setattr) { 3093 throw new FS.ErrnoError(ERRNO_CODES.EPERM); 3094 } 3095 node.node_ops.setattr(node, { 3096 mode: (mode & 4095) | (node.mode & ~4095), 3097 timestamp: Date.now() 3098 }); 3099 },lchmod:function (path, mode) { 3100 FS.chmod(path, mode, true); 3101 },fchmod:function (fd, mode) { 3102 var stream = FS.getStream(fd); 3103 if (!stream) { 3104 throw new FS.ErrnoError(ERRNO_CODES.EBADF); 3105 } 3106 FS.chmod(stream.node, mode); 3107 },chown:function (path, uid, gid, dontFollow) { 3108 var node; 3109 if (typeof path === 'string') { 3110 var lookup = FS.lookupPath(path, { follow: !dontFollow }); 3111 node = lookup.node; 3112 } else { 3113 node = path; 3114 } 3115 if (!node.node_ops.setattr) { 3116 throw new FS.ErrnoError(ERRNO_CODES.EPERM); 3117 } 3118 node.node_ops.setattr(node, { 3119 timestamp: Date.now() 3120 // we ignore the uid / gid for now 3121 }); 3122 },lchown:function (path, uid, gid) { 3123 FS.chown(path, uid, gid, true); 3124 },fchown:function (fd, uid, gid) { 3125 var stream = FS.getStream(fd); 3126 if (!stream) { 3127 throw new FS.ErrnoError(ERRNO_CODES.EBADF); 3128 } 3129 FS.chown(stream.node, uid, gid); 3130 },truncate:function (path, len) { 3131 if (len < 0) { 3132 throw new FS.ErrnoError(ERRNO_CODES.EINVAL); 3133 } 3134 var node; 3135 if (typeof path === 'string') { 3136 var lookup = FS.lookupPath(path, { follow: true }); 3137 node = lookup.node; 3138 } else { 3139 node = path; 3140 } 3141 if (!node.node_ops.setattr) { 3142 throw new FS.ErrnoError(ERRNO_CODES.EPERM); 3143 } 3144 if (FS.isDir(node.mode)) { 3145 throw new FS.ErrnoError(ERRNO_CODES.EISDIR); 3146 } 3147 if (!FS.isFile(node.mode)) { 3148 throw new FS.ErrnoError(ERRNO_CODES.EINVAL); 3149 } 3150 var err = FS.nodePermissions(node, 'w'); 3151 if (err) { 3152 throw new FS.ErrnoError(err); 3153 } 3154 node.node_ops.setattr(node, { 3155 size: len, 3156 timestamp: Date.now() 3157 }); 3158 },ftruncate:function (fd, len) { 3159 var stream = FS.getStream(fd); 3160 if (!stream) { 3161 throw new FS.ErrnoError(ERRNO_CODES.EBADF); 3162 } 3163 if ((stream.flags & 2097155) === 0) { 3164 throw new FS.ErrnoError(ERRNO_CODES.EINVAL); 3165 } 3166 FS.truncate(stream.node, len); 3167 },utime:function (path, atime, mtime) { 3168 var lookup = FS.lookupPath(path, { follow: true }); 3169 var node = lookup.node; 3170 node.node_ops.setattr(node, { 3171 timestamp: Math.max(atime, mtime) 3172 }); 3173 },open:function (path, flags, mode, fd_start, fd_end) { 3174 flags = typeof flags === 'string' ? FS.modeStringToFlags(flags) : flags; 3175 mode = typeof mode === 'undefined' ? 438 /* 0666 */ : mode; 3176 if ((flags & 64)) { 3177 mode = (mode & 4095) | 32768; 3178 } else { 3179 mode = 0; 3180 } 3181 var node; 3182 if (typeof path === 'object') { 3183 node = path; 3184 } else { 3185 path = PATH.normalize(path); 3186 try { 3187 var lookup = FS.lookupPath(path, { 3188 follow: !(flags & 131072) 3189 }); 3190 node = lookup.node; 3191 } catch (e) { 3192 // ignore 3193 } 3194 } 3195 // perhaps we need to create the node 3196 if ((flags & 64)) { 3197 if (node) { 3198 // if O_CREAT and O_EXCL are set, error out if the node already exists 3199 if ((flags & 128)) { 3200 throw new FS.ErrnoError(ERRNO_CODES.EEXIST); 3201 } 3202 } else { 3203 // node doesn't exist, try to create it 3204 node = FS.mknod(path, mode, 0); 3205 } 3206 } 3207 if (!node) { 3208 throw new FS.ErrnoError(ERRNO_CODES.ENOENT); 3209 } 3210 // can't truncate a device 3211 if (FS.isChrdev(node.mode)) { 3212 flags &= ~512; 3213 } 3214 // check permissions 3215 var err = FS.mayOpen(node, flags); 3216 if (err) { 3217 throw new FS.ErrnoError(err); 3218 } 3219 // do truncation if necessary 3220 if ((flags & 512)) { 3221 FS.truncate(node, 0); 3222 } 3223 // we've already handled these, don't pass down to the underlying vfs 3224 flags &= ~(128 | 512); 3225 3226 // register the stream with the filesystem 3227 var stream = FS.createStream({ 3228 node: node, 3229 path: FS.getPath(node), // we want the absolute path to the node 3230 flags: flags, 3231 seekable: true, 3232 position: 0, 3233 stream_ops: node.stream_ops, 3234 // used by the file family libc calls (fopen, fwrite, ferror, etc.) 3235 ungotten: [], 3236 error: false 3237 }, fd_start, fd_end); 3238 // call the new stream's open function 3239 if (stream.stream_ops.open) { 3240 stream.stream_ops.open(stream); 3241 } 3242 if (Module['logReadFiles'] && !(flags & 1)) { 3243 if (!FS.readFiles) FS.readFiles = {}; 3244 if (!(path in FS.readFiles)) { 3245 FS.readFiles[path] = 1; 3246 Module['printErr']('read file: ' + path); 3247 } 3248 } 3249 return stream; 3250 },close:function (stream) { 3251 try { 3252 if (stream.stream_ops.close) { 3253 stream.stream_ops.close(stream); 3254 } 3255 } catch (e) { 3256 throw e; 3257 } finally { 3258 FS.closeStream(stream.fd); 3259 } 3260 },llseek:function (stream, offset, whence) { 3261 if (!stream.seekable || !stream.stream_ops.llseek) { 3262 throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); 3263 } 3264 return stream.stream_ops.llseek(stream, offset, whence); 3265 },read:function (stream, buffer, offset, length, position) { 3266 if (length < 0 || position < 0) { 3267 throw new FS.ErrnoError(ERRNO_CODES.EINVAL); 3268 } 3269 if ((stream.flags & 2097155) === 1) { 3270 throw new FS.ErrnoError(ERRNO_CODES.EBADF); 3271 } 3272 if (FS.isDir(stream.node.mode)) { 3273 throw new FS.ErrnoError(ERRNO_CODES.EISDIR); 3274 } 3275 if (!stream.stream_ops.read) { 3276 throw new FS.ErrnoError(ERRNO_CODES.EINVAL); 3277 } 3278 var seeking = true; 3279 if (typeof position === 'undefined') { 3280 position = stream.position; 3281 seeking = false; 3282 } else if (!stream.seekable) { 3283 throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); 3284 } 3285 var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position); 3286 if (!seeking) stream.position += bytesRead; 3287 return bytesRead; 3288 },write:function (stream, buffer, offset, length, position, canOwn) { 3289 if (length < 0 || position < 0) { 3290 throw new FS.ErrnoError(ERRNO_CODES.EINVAL); 3291 } 3292 if ((stream.flags & 2097155) === 0) { 3293 throw new FS.ErrnoError(ERRNO_CODES.EBADF); 3294 } 3295 if (FS.isDir(stream.node.mode)) { 3296 throw new FS.ErrnoError(ERRNO_CODES.EISDIR); 3297 } 3298 if (!stream.stream_ops.write) { 3299 throw new FS.ErrnoError(ERRNO_CODES.EINVAL); 3300 } 3301 var seeking = true; 3302 if (typeof position === 'undefined') { 3303 position = stream.position; 3304 seeking = false; 3305 } else if (!stream.seekable) { 3306 throw new FS.ErrnoError(ERRNO_CODES.ESPIPE); 3307 } 3308 if (stream.flags & 1024) { 3309 // seek to the end before writing in append mode 3310 FS.llseek(stream, 0, 2); 3311 } 3312 var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn); 3313 if (!seeking) stream.position += bytesWritten; 3314 return bytesWritten; 3315 },allocate:function (stream, offset, length) { 3316 if (offset < 0 || length <= 0) { 3317 throw new FS.ErrnoError(ERRNO_CODES.EINVAL); 3318 } 3319 if ((stream.flags & 2097155) === 0) { 3320 throw new FS.ErrnoError(ERRNO_CODES.EBADF); 3321 } 3322 if (!FS.isFile(stream.node.mode) && !FS.isDir(node.mode)) { 3323 throw new FS.ErrnoError(ERRNO_CODES.ENODEV); 3324 } 3325 if (!stream.stream_ops.allocate) { 3326 throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP); 3327 } 3328 stream.stream_ops.allocate(stream, offset, length); 3329 },mmap:function (stream, buffer, offset, length, position, prot, flags) { 3330 // TODO if PROT is PROT_WRITE, make sure we have write access 3331 if ((stream.flags & 2097155) === 1) { 3332 throw new FS.ErrnoError(ERRNO_CODES.EACCES); 3333 } 3334 if (!stream.stream_ops.mmap) { 3335 throw new FS.ErrnoError(ERRNO_CODES.ENODEV); 3336 } 3337 return stream.stream_ops.mmap(stream, buffer, offset, length, position, prot, flags); 3338 },ioctl:function (stream, cmd, arg) { 3339 if (!stream.stream_ops.ioctl) { 3340 throw new FS.ErrnoError(ERRNO_CODES.ENOTTY); 3341 } 3342 return stream.stream_ops.ioctl(stream, cmd, arg); 3343 },readFile:function (path, opts) { 3344 opts = opts || {}; 3345 opts.flags = opts.flags || 'r'; 3346 opts.encoding = opts.encoding || 'binary'; 3347 if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') { 3348 throw new Error('Invalid encoding type "' + opts.encoding + '"'); 3349 } 3350 var ret; 3351 var stream = FS.open(path, opts.flags); 3352 var stat = FS.stat(path); 3353 var length = stat.size; 3354 var buf = new Uint8Array(length); 3355 FS.read(stream, buf, 0, length, 0); 3356 if (opts.encoding === 'utf8') { 3357 ret = ''; 3358 var utf8 = new Runtime.UTF8Processor(); 3359 for (var i = 0; i < length; i++) { 3360 ret += utf8.processCChar(buf[i]); 3361 } 3362 } else if (opts.encoding === 'binary') { 3363 ret = buf; 3364 } 3365 FS.close(stream); 3366 return ret; 3367 },writeFile:function (path, data, opts) { 3368 opts = opts || {}; 3369 opts.flags = opts.flags || 'w'; 3370 opts.encoding = opts.encoding || 'utf8'; 3371 if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') { 3372 throw new Error('Invalid encoding type "' + opts.encoding + '"'); 3373 } 3374 var stream = FS.open(path, opts.flags, opts.mode); 3375 if (opts.encoding === 'utf8') { 3376 var utf8 = new Runtime.UTF8Processor(); 3377 var buf = new Uint8Array(utf8.processJSString(data)); 3378 FS.write(stream, buf, 0, buf.length, 0, opts.canOwn); 3379 } else if (opts.encoding === 'binary') { 3380 FS.write(stream, data, 0, data.length, 0, opts.canOwn); 3381 } 3382 FS.close(stream); 3383 },cwd:function () { 3384 return FS.currentPath; 3385 },chdir:function (path) { 3386 var lookup = FS.lookupPath(path, { follow: true }); 3387 if (!FS.isDir(lookup.node.mode)) { 3388 throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR); 3389 } 3390 var err = FS.nodePermissions(lookup.node, 'x'); 3391 if (err) { 3392 throw new FS.ErrnoError(err); 3393 } 3394 FS.currentPath = lookup.path; 3395 },createDefaultDirectories:function () { 3396 FS.mkdir('/tmp'); 3397 },createDefaultDevices:function () { 3398 // create /dev 3399 FS.mkdir('/dev'); 3400 // setup /dev/null 3401 FS.registerDevice(FS.makedev(1, 3), { 3402 read: function() { return 0; }, 3403 write: function() { return 0; } 3404 }); 3405 FS.mkdev('/dev/null', FS.makedev(1, 3)); 3406 // setup /dev/tty and /dev/tty1 3407 // stderr needs to print output using Module['printErr'] 3408 // so we register a second tty just for it. 3409 TTY.register(FS.makedev(5, 0), TTY.default_tty_ops); 3410 TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops); 3411 FS.mkdev('/dev/tty', FS.makedev(5, 0)); 3412 FS.mkdev('/dev/tty1', FS.makedev(6, 0)); 3413 // we're not going to emulate the actual shm device, 3414 // just create the tmp dirs that reside in it commonly 3415 FS.mkdir('/dev/shm'); 3416 FS.mkdir('/dev/shm/tmp'); 3417 },createStandardStreams:function () { 3418 // TODO deprecate the old functionality of a single 3419 // input / output callback and that utilizes FS.createDevice 3420 // and instead require a unique set of stream ops 3421 3422 // by default, we symlink the standard streams to the 3423 // default tty devices. however, if the standard streams 3424 // have been overwritten we create a unique device for 3425 // them instead. 3426 if (Module['stdin']) { 3427 FS.createDevice('/dev', 'stdin', Module['stdin']); 3428 } else { 3429 FS.symlink('/dev/tty', '/dev/stdin'); 3430 } 3431 if (Module['stdout']) { 3432 FS.createDevice('/dev', 'stdout', null, Module['stdout']); 3433 } else { 3434 FS.symlink('/dev/tty', '/dev/stdout'); 3435 } 3436 if (Module['stderr']) { 3437 FS.createDevice('/dev', 'stderr', null, Module['stderr']); 3438 } else { 3439 FS.symlink('/dev/tty1', '/dev/stderr'); 3440 } 3441 3442 // open default streams for the stdin, stdout and stderr devices 3443 var stdin = FS.open('/dev/stdin', 'r'); 3444 HEAP32[((_stdin)>>2)]=FS.getPtrForStream(stdin); 3445 assert(stdin.fd === 0, 'invalid handle for stdin (' + stdin.fd + ')'); 3446 3447 var stdout = FS.open('/dev/stdout', 'w'); 3448 HEAP32[((_stdout)>>2)]=FS.getPtrForStream(stdout); 3449 assert(stdout.fd === 1, 'invalid handle for stdout (' + stdout.fd + ')'); 3450 3451 var stderr = FS.open('/dev/stderr', 'w'); 3452 HEAP32[((_stderr)>>2)]=FS.getPtrForStream(stderr); 3453 assert(stderr.fd === 2, 'invalid handle for stderr (' + stderr.fd + ')'); 3454 },ensureErrnoError:function () { 3455 if (FS.ErrnoError) return; 3456 FS.ErrnoError = function ErrnoError(errno) { 3457 this.errno = errno; 3458 for (var key in ERRNO_CODES) { 3459 if (ERRNO_CODES[key] === errno) { 3460 this.code = key; 3461 break; 3462 } 3463 } 3464 this.message = ERRNO_MESSAGES[errno]; 3465 }; 3466 FS.ErrnoError.prototype = new Error(); 3467 FS.ErrnoError.prototype.constructor = FS.ErrnoError; 3468 // Some errors may happen quite a bit, to avoid overhead we reuse them (and suffer a lack of stack info) 3469 [ERRNO_CODES.ENOENT].forEach(function(code) { 3470 FS.genericErrors[code] = new FS.ErrnoError(code); 3471 FS.genericErrors[code].stack = '<generic error, no stack>'; 3472 }); 3473 },staticInit:function () { 3474 FS.ensureErrnoError(); 3475 3476 FS.nameTable = new Array(4096); 3477 3478 FS.mount(MEMFS, {}, '/'); 3479 3480 FS.createDefaultDirectories(); 3481 FS.createDefaultDevices(); 3482 },init:function (input, output, error) { 3483 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)'); 3484 FS.init.initialized = true; 3485 3486 FS.ensureErrnoError(); 3487 3488 // Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here 3489 Module['stdin'] = input || Module['stdin']; 3490 Module['stdout'] = output || Module['stdout']; 3491 Module['stderr'] = error || Module['stderr']; 3492 3493 FS.createStandardStreams(); 3494 },quit:function () { 3495 FS.init.initialized = false; 3496 for (var i = 0; i < FS.streams.length; i++) { 3497 var stream = FS.streams[i]; 3498 if (!stream) { 3499 continue; 3500 } 3501 FS.close(stream); 3502 } 3503 },getMode:function (canRead, canWrite) { 3504 var mode = 0; 3505 if (canRead) mode |= 292 | 73; 3506 if (canWrite) mode |= 146; 3507 return mode; 3508 },joinPath:function (parts, forceRelative) { 3509 var path = PATH.join.apply(null, parts); 3510 if (forceRelative && path[0] == '/') path = path.substr(1); 3511 return path; 3512 },absolutePath:function (relative, base) { 3513 return PATH.resolve(base, relative); 3514 },standardizePath:function (path) { 3515 return PATH.normalize(path); 3516 },findObject:function (path, dontResolveLastLink) { 3517 var ret = FS.analyzePath(path, dontResolveLastLink); 3518 if (ret.exists) { 3519 return ret.object; 3520 } else { 3521 ___setErrNo(ret.error); 3522 return null; 3523 } 3524 },analyzePath:function (path, dontResolveLastLink) { 3525 // operate from within the context of the symlink's target 3526 try { 3527 var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); 3528 path = lookup.path; 3529 } catch (e) { 3530 } 3531 var ret = { 3532 isRoot: false, exists: false, error: 0, name: null, path: null, object: null, 3533 parentExists: false, parentPath: null, parentObject: null 3534 }; 3535 try { 3536 var lookup = FS.lookupPath(path, { parent: true }); 3537 ret.parentExists = true; 3538 ret.parentPath = lookup.path; 3539 ret.parentObject = lookup.node; 3540 ret.name = PATH.basename(path); 3541 lookup = FS.lookupPath(path, { follow: !dontResolveLastLink }); 3542 ret.exists = true; 3543 ret.path = lookup.path; 3544 ret.object = lookup.node; 3545 ret.name = lookup.node.name; 3546 ret.isRoot = lookup.path === '/'; 3547 } catch (e) { 3548 ret.error = e.errno; 3549 }; 3550 return ret; 3551 },createFolder:function (parent, name, canRead, canWrite) { 3552 var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); 3553 var mode = FS.getMode(canRead, canWrite); 3554 return FS.mkdir(path, mode); 3555 },createPath:function (parent, path, canRead, canWrite) { 3556 parent = typeof parent === 'string' ? parent : FS.getPath(parent); 3557 var parts = path.split('/').reverse(); 3558 while (parts.length) { 3559 var part = parts.pop(); 3560 if (!part) continue; 3561 var current = PATH.join2(parent, part); 3562 try { 3563 FS.mkdir(current); 3564 } catch (e) { 3565 // ignore EEXIST 3566 } 3567 parent = current; 3568 } 3569 return current; 3570 },createFile:function (parent, name, properties, canRead, canWrite) { 3571 var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); 3572 var mode = FS.getMode(canRead, canWrite); 3573 return FS.create(path, mode); 3574 },createDataFile:function (parent, name, data, canRead, canWrite, canOwn) { 3575 var path = name ? PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name) : parent; 3576 var mode = FS.getMode(canRead, canWrite); 3577 var node = FS.create(path, mode); 3578 if (data) { 3579 if (typeof data === 'string') { 3580 var arr = new Array(data.length); 3581 for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i); 3582 data = arr; 3583 } 3584 // make sure we can write to the file 3585 FS.chmod(node, mode | 146); 3586 var stream = FS.open(node, 'w'); 3587 FS.write(stream, data, 0, data.length, 0, canOwn); 3588 FS.close(stream); 3589 FS.chmod(node, mode); 3590 } 3591 return node; 3592 },createDevice:function (parent, name, input, output) { 3593 var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); 3594 var mode = FS.getMode(!!input, !!output); 3595 if (!FS.createDevice.major) FS.createDevice.major = 64; 3596 var dev = FS.makedev(FS.createDevice.major++, 0); 3597 // Create a fake device that a set of stream ops to emulate 3598 // the old behavior. 3599 FS.registerDevice(dev, { 3600 open: function(stream) { 3601 stream.seekable = false; 3602 }, 3603 close: function(stream) { 3604 // flush any pending line data 3605 if (output && output.buffer && output.buffer.length) { 3606 output(10); 3607 } 3608 }, 3609 read: function(stream, buffer, offset, length, pos /* ignored */) { 3610 var bytesRead = 0; 3611 for (var i = 0; i < length; i++) { 3612 var result; 3613 try { 3614 result = input(); 3615 } catch (e) { 3616 throw new FS.ErrnoError(ERRNO_CODES.EIO); 3617 } 3618 if (result === undefined && bytesRead === 0) { 3619 throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); 3620 } 3621 if (result === null || result === undefined) break; 3622 bytesRead++; 3623 buffer[offset+i] = result; 3624 } 3625 if (bytesRead) { 3626 stream.node.timestamp = Date.now(); 3627 } 3628 return bytesRead; 3629 }, 3630 write: function(stream, buffer, offset, length, pos) { 3631 for (var i = 0; i < length; i++) { 3632 try { 3633 output(buffer[offset+i]); 3634 } catch (e) { 3635 throw new FS.ErrnoError(ERRNO_CODES.EIO); 3636 } 3637 } 3638 if (length) { 3639 stream.node.timestamp = Date.now(); 3640 } 3641 return i; 3642 } 3643 }); 3644 return FS.mkdev(path, mode, dev); 3645 },createLink:function (parent, name, target, canRead, canWrite) { 3646 var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name); 3647 return FS.symlink(target, path); 3648 },forceLoadFile:function (obj) { 3649 if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true; 3650 var success = true; 3651 if (typeof XMLHttpRequest !== 'undefined') { 3652 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."); 3653 } else if (Module['read']) { 3654 // Command-line. 3655 try { 3656 // WARNING: Can't read binary files in V8's d8 or tracemonkey's js, as 3657 // read() will try to parse UTF8. 3658 obj.contents = intArrayFromString(Module['read'](obj.url), true); 3659 } catch (e) { 3660 success = false; 3661 } 3662 } else { 3663 throw new Error('Cannot load without read() or XMLHttpRequest.'); 3664 } 3665 if (!success) ___setErrNo(ERRNO_CODES.EIO); 3666 return success; 3667 },createLazyFile:function (parent, name, url, canRead, canWrite) { 3668 // Lazy chunked Uint8Array (implements get and length from Uint8Array). Actual getting is abstracted away for eventual reuse. 3669 function LazyUint8Array() { 3670 this.lengthKnown = false; 3671 this.chunks = []; // Loaded chunks. Index is the chunk number 3672 } 3673 LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) { 3674 if (idx > this.length-1 || idx < 0) { 3675 return undefined; 3676 } 3677 var chunkOffset = idx % this.chunkSize; 3678 var chunkNum = Math.floor(idx / this.chunkSize); 3679 return this.getter(chunkNum)[chunkOffset]; 3680 } 3681 LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) { 3682 this.getter = getter; 3683 } 3684 LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() { 3685 // Find length 3686 var xhr = new XMLHttpRequest(); 3687 xhr.open('HEAD', url, false); 3688 xhr.send(null); 3689 if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); 3690 var datalength = Number(xhr.getResponseHeader("Content-length")); 3691 var header; 3692 var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes"; 3693 var chunkSize = 1024*1024; // Chunk size in bytes 3694 3695 if (!hasByteServing) chunkSize = datalength; 3696 3697 // Function to get a range from the remote URL. 3698 var doXHR = (function(from, to) { 3699 if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!"); 3700 if (to > datalength-1) throw new Error("only " + datalength + " bytes available! programmer error!"); 3701 3702 // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available. 3703 var xhr = new XMLHttpRequest(); 3704 xhr.open('GET', url, false); 3705 if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to); 3706 3707 // Some hints to the browser that we want binary data. 3708 if (typeof Uint8Array != 'undefined') xhr.responseType = 'arraybuffer'; 3709 if (xhr.overrideMimeType) { 3710 xhr.overrideMimeType('text/plain; charset=x-user-defined'); 3711 } 3712 3713 xhr.send(null); 3714 if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status); 3715 if (xhr.response !== undefined) { 3716 return new Uint8Array(xhr.response || []); 3717 } else { 3718 return intArrayFromString(xhr.responseText || '', true); 3719 } 3720 }); 3721 var lazyArray = this; 3722 lazyArray.setDataGetter(function(chunkNum) { 3723 var start = chunkNum * chunkSize; 3724 var end = (chunkNum+1) * chunkSize - 1; // including this byte 3725 end = Math.min(end, datalength-1); // if datalength-1 is selected, this is the last block 3726 if (typeof(lazyArray.chunks[chunkNum]) === "undefined") { 3727 lazyArray.chunks[chunkNum] = doXHR(start, end); 3728 } 3729 if (typeof(lazyArray.chunks[chunkNum]) === "undefined") throw new Error("doXHR failed!"); 3730 return lazyArray.chunks[chunkNum]; 3731 }); 3732 3733 this._length = datalength; 3734 this._chunkSize = chunkSize; 3735 this.lengthKnown = true; 3736 } 3737 if (typeof XMLHttpRequest !== 'undefined') { 3738 if (!ENVIRONMENT_IS_WORKER) throw 'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc'; 3739 var lazyArray = new LazyUint8Array(); 3740 Object.defineProperty(lazyArray, "length", { 3741 get: function() { 3742 if(!this.lengthKnown) { 3743 this.cacheLength(); 3744 } 3745 return this._length; 3746 } 3747 }); 3748 Object.defineProperty(lazyArray, "chunkSize", { 3749 get: function() { 3750 if(!this.lengthKnown) { 3751 this.cacheLength(); 3752 } 3753 return this._chunkSize; 3754 } 3755 }); 3756 3757 var properties = { isDevice: false, contents: lazyArray }; 3758 } else { 3759 var properties = { isDevice: false, url: url }; 3760 } 3761 3762 var node = FS.createFile(parent, name, properties, canRead, canWrite); 3763 // This is a total hack, but I want to get this lazy file code out of the 3764 // core of MEMFS. If we want to keep this lazy file concept I feel it should 3765 // be its own thin LAZYFS proxying calls to MEMFS. 3766 if (properties.contents) { 3767 node.contents = properties.contents; 3768 } else if (properties.url) { 3769 node.contents = null; 3770 node.url = properties.url; 3771 } 3772 // override each stream op with one that tries to force load the lazy file first 3773 var stream_ops = {}; 3774 var keys = Object.keys(node.stream_ops); 3775 keys.forEach(function(key) { 3776 var fn = node.stream_ops[key]; 3777 stream_ops[key] = function forceLoadLazyFile() { 3778 if (!FS.forceLoadFile(node)) { 3779 throw new FS.ErrnoError(ERRNO_CODES.EIO); 3780 } 3781 return fn.apply(null, arguments); 3782 }; 3783 }); 3784 // use a custom read function 3785 stream_ops.read = function stream_ops_read(stream, buffer, offset, length, position) { 3786 if (!FS.forceLoadFile(node)) { 3787 throw new FS.ErrnoError(ERRNO_CODES.EIO); 3788 } 3789 var contents = stream.node.contents; 3790 if (position >= contents.length) 3791 return 0; 3792 var size = Math.min(contents.length - position, length); 3793 assert(size >= 0); 3794 if (contents.slice) { // normal array 3795 for (var i = 0; i < size; i++) { 3796 buffer[offset + i] = contents[position + i]; 3797 } 3798 } else { 3799 for (var i = 0; i < size; i++) { // LazyUint8Array from sync binary XHR 3800 buffer[offset + i] = contents.get(position + i); 3801 } 3802 } 3803 return size; 3804 }; 3805 node.stream_ops = stream_ops; 3806 return node; 3807 },createPreloadedFile:function (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn) { 3808 Browser.init(); 3809 // TODO we should allow people to just pass in a complete filename instead 3810 // of parent and name being that we just join them anyways 3811 var fullname = name ? PATH.resolve(PATH.join2(parent, name)) : parent; 3812 function processData(byteArray) { 3813 function finish(byteArray) { 3814 if (!dontCreateFile) { 3815 FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn); 3816 } 3817 if (onload) onload(); 3818 removeRunDependency('cp ' + fullname); 3819 } 3820 var handled = false; 3821 Module['preloadPlugins'].forEach(function(plugin) { 3822 if (handled) return; 3823 if (plugin['canHandle'](fullname)) { 3824 plugin['handle'](byteArray, fullname, finish, function() { 3825 if (onerror) onerror(); 3826 removeRunDependency('cp ' + fullname); 3827 }); 3828 handled = true; 3829 } 3830 }); 3831 if (!handled) finish(byteArray); 3832 } 3833 addRunDependency('cp ' + fullname); 3834 if (typeof url == 'string') { 3835 Browser.asyncLoad(url, function(byteArray) { 3836 processData(byteArray); 3837 }, onerror); 3838 } else { 3839 processData(url); 3840 } 3841 },indexedDB:function () { 3842 return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; 3843 },DB_NAME:function () { 3844 return 'EM_FS_' + window.location.pathname; 3845 },DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function (paths, onload, onerror) { 3846 onload = onload || function(){}; 3847 onerror = onerror || function(){}; 3848 var indexedDB = FS.indexedDB(); 3849 try { 3850 var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); 3851 } catch (e) { 3852 return onerror(e); 3853 } 3854 openRequest.onupgradeneeded = function openRequest_onupgradeneeded() { 3855 console.log('creating db'); 3856 var db = openRequest.result; 3857 db.createObjectStore(FS.DB_STORE_NAME); 3858 }; 3859 openRequest.onsuccess = function openRequest_onsuccess() { 3860 var db = openRequest.result; 3861 var transaction = db.transaction([FS.DB_STORE_NAME], 'readwrite'); 3862 var files = transaction.objectStore(FS.DB_STORE_NAME); 3863 var ok = 0, fail = 0, total = paths.length; 3864 function finish() { 3865 if (fail == 0) onload(); else onerror(); 3866 } 3867 paths.forEach(function(path) { 3868 var putRequest = files.put(FS.analyzePath(path).object.contents, path); 3869 putRequest.onsuccess = function putRequest_onsuccess() { ok++; if (ok + fail == total) finish() }; 3870 putRequest.onerror = function putRequest_onerror() { fail++; if (ok + fail == total) finish() }; 3871 }); 3872 transaction.onerror = onerror; 3873 }; 3874 openRequest.onerror = onerror; 3875 },loadFilesFromDB:function (paths, onload, onerror) { 3876 onload = onload || function(){}; 3877 onerror = onerror || function(){}; 3878 var indexedDB = FS.indexedDB(); 3879 try { 3880 var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION); 3881 } catch (e) { 3882 return onerror(e); 3883 } 3884 openRequest.onupgradeneeded = onerror; // no database to load from 3885 openRequest.onsuccess = function openRequest_onsuccess() { 3886 var db = openRequest.result; 3887 try { 3888 var transaction = db.transaction([FS.DB_STORE_NAME], 'readonly'); 3889 } catch(e) { 3890 onerror(e); 3891 return; 3892 } 3893 var files = transaction.objectStore(FS.DB_STORE_NAME); 3894 var ok = 0, fail = 0, total = paths.length; 3895 function finish() { 3896 if (fail == 0) onload(); else onerror(); 3897 } 3898 paths.forEach(function(path) { 3899 var getRequest = files.get(path); 3900 getRequest.onsuccess = function getRequest_onsuccess() { 3901 if (FS.analyzePath(path).exists) { 3902 FS.unlink(path); 3903 } 3904 FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true); 3905 ok++; 3906 if (ok + fail == total) finish(); 3907 }; 3908 getRequest.onerror = function getRequest_onerror() { fail++; if (ok + fail == total) finish() }; 3909 }); 3910 transaction.onerror = onerror; 3911 }; 3912 openRequest.onerror = onerror; 3913 }}; 3914 3915 function _lseek(fildes, offset, whence) { 3916 // off_t lseek(int fildes, off_t offset, int whence); 3917 // http://pubs.opengroup.org/onlinepubs/000095399/functions/lseek.html 3918 var stream = FS.getStream(fildes); 3919 if (!stream) { 3920 ___setErrNo(ERRNO_CODES.EBADF); 3921 return -1; 3922 } 3923 try { 3924 return FS.llseek(stream, offset, whence); 3925 } catch (e) { 3926 FS.handleFSError(e); 3927 return -1; 3928 } 3929 } 3930 3931 function _fileno(stream) { 3932 // int fileno(FILE *stream); 3933 // http://pubs.opengroup.org/onlinepubs/000095399/functions/fileno.html 3934 stream = FS.getStreamFromPtr(stream); 3935 if (!stream) return -1; 3936 return stream.fd; 3937 }function _fseek(stream, offset, whence) { 3938 // int fseek(FILE *stream, long offset, int whence); 3939 // http://pubs.opengroup.org/onlinepubs/000095399/functions/fseek.html 3940 var fd = _fileno(stream); 3941 var ret = _lseek(fd, offset, whence); 3942 if (ret == -1) { 3943 return -1; 3944 } 3945 stream = FS.getStreamFromPtr(stream); 3946 stream.eof = false; 3947 return 0; 3948 } 3949 3950 3951 Module["_i64Subtract"] = _i64Subtract; 3952 3953 3954 Module["_i64Add"] = _i64Add; 3955 3956 function _setlocale(category, locale) { 3957 if (!_setlocale.ret) _setlocale.ret = allocate([0], 'i8', ALLOC_NORMAL); 3958 return _setlocale.ret; 3959 } 3960 3961 3962 function _close(fildes) { 3963 // int close(int fildes); 3964 // http://pubs.opengroup.org/onlinepubs/000095399/functions/close.html 3965 var stream = FS.getStream(fildes); 3966 if (!stream) { 3967 ___setErrNo(ERRNO_CODES.EBADF); 3968 return -1; 3969 } 3970 try { 3971 FS.close(stream); 3972 return 0; 3973 } catch (e) { 3974 FS.handleFSError(e); 3975 return -1; 3976 } 3977 } 3978 3979 function _fsync(fildes) { 3980 // int fsync(int fildes); 3981 // http://pubs.opengroup.org/onlinepubs/000095399/functions/fsync.html 3982 var stream = FS.getStream(fildes); 3983 if (stream) { 3984 // We write directly to the file system, so there's nothing to do here. 3985 return 0; 3986 } else { 3987 ___setErrNo(ERRNO_CODES.EBADF); 3988 return -1; 3989 } 3990 }function _fclose(stream) { 3991 // int fclose(FILE *stream); 3992 // http://pubs.opengroup.org/onlinepubs/000095399/functions/fclose.html 3993 var fd = _fileno(stream); 3994 _fsync(fd); 3995 return _close(fd); 3996 } 3997 3998 3999 4000 4001 4002 function _mkport() { throw 'TODO' }var SOCKFS={mount:function (mount) { 4003 return FS.createNode(null, '/', 16384 | 511 /* 0777 */, 0); 4004 },createSocket:function (family, type, protocol) { 4005 var streaming = type == 1; 4006 if (protocol) { 4007 assert(streaming == (protocol == 6)); // if SOCK_STREAM, must be tcp 4008 } 4009 4010 // create our internal socket structure 4011 var sock = { 4012 family: family, 4013 type: type, 4014 protocol: protocol, 4015 server: null, 4016 peers: {}, 4017 pending: [], 4018 recv_queue: [], 4019 sock_ops: SOCKFS.websocket_sock_ops 4020 }; 4021 4022 // create the filesystem node to store the socket structure 4023 var name = SOCKFS.nextname(); 4024 var node = FS.createNode(SOCKFS.root, name, 49152, 0); 4025 node.sock = sock; 4026 4027 // and the wrapping stream that enables library functions such 4028 // as read and write to indirectly interact with the socket 4029 var stream = FS.createStream({ 4030 path: name, 4031 node: node, 4032 flags: FS.modeStringToFlags('r+'), 4033 seekable: false, 4034 stream_ops: SOCKFS.stream_ops 4035 }); 4036 4037 // map the new stream to the socket structure (sockets have a 1:1 4038 // relationship with a stream) 4039 sock.stream = stream; 4040 4041 return sock; 4042 },getSocket:function (fd) { 4043 var stream = FS.getStream(fd); 4044 if (!stream || !FS.isSocket(stream.node.mode)) { 4045 return null; 4046 } 4047 return stream.node.sock; 4048 },stream_ops:{poll:function (stream) { 4049 var sock = stream.node.sock; 4050 return sock.sock_ops.poll(sock); 4051 },ioctl:function (stream, request, varargs) { 4052 var sock = stream.node.sock; 4053 return sock.sock_ops.ioctl(sock, request, varargs); 4054 },read:function (stream, buffer, offset, length, position /* ignored */) { 4055 var sock = stream.node.sock; 4056 var msg = sock.sock_ops.recvmsg(sock, length); 4057 if (!msg) { 4058 // socket is closed 4059 return 0; 4060 } 4061 buffer.set(msg.buffer, offset); 4062 return msg.buffer.length; 4063 },write:function (stream, buffer, offset, length, position /* ignored */) { 4064 var sock = stream.node.sock; 4065 return sock.sock_ops.sendmsg(sock, buffer, offset, length); 4066 },close:function (stream) { 4067 var sock = stream.node.sock; 4068 sock.sock_ops.close(sock); 4069 }},nextname:function () { 4070 if (!SOCKFS.nextname.current) { 4071 SOCKFS.nextname.current = 0; 4072 } 4073 return 'socket[' + (SOCKFS.nextname.current++) + ']'; 4074 },websocket_sock_ops:{createPeer:function (sock, addr, port) { 4075 var ws; 4076 4077 if (typeof addr === 'object') { 4078 ws = addr; 4079 addr = null; 4080 port = null; 4081 } 4082 4083 if (ws) { 4084 // for sockets that've already connected (e.g. we're the server) 4085 // we can inspect the _socket property for the address 4086 if (ws._socket) { 4087 addr = ws._socket.remoteAddress; 4088 port = ws._socket.remotePort; 4089 } 4090 // if we're just now initializing a connection to the remote, 4091 // inspect the url property 4092 else { 4093 var result = /ws[s]?:\/\/([^:]+):(\d+)/.exec(ws.url); 4094 if (!result) { 4095 throw new Error('WebSocket URL must be in the format ws(s)://address:port'); 4096 } 4097 addr = result[1]; 4098 port = parseInt(result[2], 10); 4099 } 4100 } else { 4101 // create the actual websocket object and connect 4102 try { 4103 // runtimeConfig gets set to true if WebSocket runtime configuration is available. 4104 var runtimeConfig = (Module['websocket'] && ('object' === typeof Module['websocket'])); 4105 4106 // The default value is 'ws://' the replace is needed because the compiler replaces "//" comments with '#' 4107 // comments without checking context, so we'd end up with ws:#, the replace swaps the "#" for "//" again. 4108 var url = 'ws:#'.replace('#', '//'); 4109 4110 if (runtimeConfig) { 4111 if ('string' === typeof Module['websocket']['url']) { 4112 url = Module['websocket']['url']; // Fetch runtime WebSocket URL config. 4113 } 4114 } 4115 4116 if (url === 'ws://' || url === 'wss://') { // Is the supplied URL config just a prefix, if so complete it. 4117 url = url + addr + ':' + port; 4118 } 4119 4120 // Make the WebSocket subprotocol (Sec-WebSocket-Protocol) default to binary if no configuration is set. 4121 var subProtocols = 'binary'; // The default value is 'binary' 4122 4123 if (runtimeConfig) { 4124 if ('string' === typeof Module['websocket']['subprotocol']) { 4125 subProtocols = Module['websocket']['subprotocol']; // Fetch runtime WebSocket subprotocol config. 4126 } 4127 } 4128 4129 // The regex trims the string (removes spaces at the beginning and end, then splits the string by 4130 // <any space>,<any space> into an Array. Whitespace removal is important for Websockify and ws. 4131 subProtocols = subProtocols.replace(/^ +| +$/g,"").split(/ *, */); 4132 4133 // The node ws library API for specifying optional subprotocol is slightly different than the browser's. 4134 var opts = ENVIRONMENT_IS_NODE ? {'protocol': subProtocols.toString()} : subProtocols; 4135 4136 // If node we use the ws library. 4137 var WebSocket = ENVIRONMENT_IS_NODE ? require('ws') : window['WebSocket']; 4138 ws = new WebSocket(url, opts); 4139 ws.binaryType = 'arraybuffer'; 4140 } catch (e) { 4141 throw new FS.ErrnoError(ERRNO_CODES.EHOSTUNREACH); 4142 } 4143 } 4144 4145 4146 var peer = { 4147 addr: addr, 4148 port: port, 4149 socket: ws, 4150 dgram_send_queue: [] 4151 }; 4152 4153 SOCKFS.websocket_sock_ops.addPeer(sock, peer); 4154 SOCKFS.websocket_sock_ops.handlePeerEvents(sock, peer); 4155 4156 // if this is a bound dgram socket, send the port number first to allow 4157 // us to override the ephemeral port reported to us by remotePort on the 4158 // remote end. 4159 if (sock.type === 2 && typeof sock.sport !== 'undefined') { 4160 peer.dgram_send_queue.push(new Uint8Array([ 4161 255, 255, 255, 255, 4162 'p'.charCodeAt(0), 'o'.charCodeAt(0), 'r'.charCodeAt(0), 't'.charCodeAt(0), 4163 ((sock.sport & 0xff00) >> 8) , (sock.sport & 0xff) 4164 ])); 4165 } 4166 4167 return peer; 4168 },getPeer:function (sock, addr, port) { 4169 return sock.peers[addr + ':' + port]; 4170 },addPeer:function (sock, peer) { 4171 sock.peers[peer.addr + ':' + peer.port] = peer; 4172 },removePeer:function (sock, peer) { 4173 delete sock.peers[peer.addr + ':' + peer.port]; 4174 },handlePeerEvents:function (sock, peer) { 4175 var first = true; 4176 4177 var handleOpen = function () { 4178 try { 4179 var queued = peer.dgram_send_queue.shift(); 4180 while (queued) { 4181 peer.socket.send(queued); 4182 queued = peer.dgram_send_queue.shift(); 4183 } 4184 } catch (e) { 4185 // not much we can do here in the way of proper error handling as we've already 4186 // lied and said this data was sent. shut it down. 4187 peer.socket.close(); 4188 } 4189 }; 4190 4191 function handleMessage(data) { 4192 assert(typeof data !== 'string' && data.byteLength !== undefined); // must receive an ArrayBuffer 4193 data = new Uint8Array(data); // make a typed array view on the array buffer 4194 4195 4196 // if this is the port message, override the peer's port with it 4197 var wasfirst = first; 4198 first = false; 4199 if (wasfirst && 4200 data.length === 10 && 4201 data[0] === 255 && data[1] === 255 && data[2] === 255 && data[3] === 255 && 4202 data[4] === 'p'.charCodeAt(0) && data[5] === 'o'.charCodeAt(0) && data[6] === 'r'.charCodeAt(0) && data[7] === 't'.charCodeAt(0)) { 4203 // update the peer's port and it's key in the peer map 4204 var newport = ((data[8] << 8) | data[9]); 4205 SOCKFS.websocket_sock_ops.removePeer(sock, peer); 4206 peer.port = newport; 4207 SOCKFS.websocket_sock_ops.addPeer(sock, peer); 4208 return; 4209 } 4210 4211 sock.recv_queue.push({ addr: peer.addr, port: peer.port, data: data }); 4212 }; 4213 4214 if (ENVIRONMENT_IS_NODE) { 4215 peer.socket.on('open', handleOpen); 4216 peer.socket.on('message', function(data, flags) { 4217 if (!flags.binary) { 4218 return; 4219 } 4220 handleMessage((new Uint8Array(data)).buffer); // copy from node Buffer -> ArrayBuffer 4221 }); 4222 peer.socket.on('error', function() { 4223 // don't throw 4224 }); 4225 } else { 4226 peer.socket.onopen = handleOpen; 4227 peer.socket.onmessage = function peer_socket_onmessage(event) { 4228 handleMessage(event.data); 4229 }; 4230 } 4231 },poll:function (sock) { 4232 if (sock.type === 1 && sock.server) { 4233 // listen sockets should only say they're available for reading 4234 // if there are pending clients. 4235 return sock.pending.length ? (64 | 1) : 0; 4236 } 4237 4238 var mask = 0; 4239 var dest = sock.type === 1 ? // we only care about the socket state for connection-based sockets 4240 SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport) : 4241 null; 4242 4243 if (sock.recv_queue.length || 4244 !dest || // connection-less sockets are always ready to read 4245 (dest && dest.socket.readyState === dest.socket.CLOSING) || 4246 (dest && dest.socket.readyState === dest.socket.CLOSED)) { // let recv return 0 once closed 4247 mask |= (64 | 1); 4248 } 4249 4250 if (!dest || // connection-less sockets are always ready to write 4251 (dest && dest.socket.readyState === dest.socket.OPEN)) { 4252 mask |= 4; 4253 } 4254 4255 if ((dest && dest.socket.readyState === dest.socket.CLOSING) || 4256 (dest && dest.socket.readyState === dest.socket.CLOSED)) { 4257 mask |= 16; 4258 } 4259 4260 return mask; 4261 },ioctl:function (sock, request, arg) { 4262 switch (request) { 4263 case 21531: 4264 var bytes = 0; 4265 if (sock.recv_queue.length) { 4266 bytes = sock.recv_queue[0].data.length; 4267 } 4268 HEAP32[((arg)>>2)]=bytes; 4269 return 0; 4270 default: 4271 return ERRNO_CODES.EINVAL; 4272 } 4273 },close:function (sock) { 4274 // if we've spawned a listen server, close it 4275 if (sock.server) { 4276 try { 4277 sock.server.close(); 4278 } catch (e) { 4279 } 4280 sock.server = null; 4281 } 4282 // close any peer connections 4283 var peers = Object.keys(sock.peers); 4284 for (var i = 0; i < peers.length; i++) { 4285 var peer = sock.peers[peers[i]]; 4286 try { 4287 peer.socket.close(); 4288 } catch (e) { 4289 } 4290 SOCKFS.websocket_sock_ops.removePeer(sock, peer); 4291 } 4292 return 0; 4293 },bind:function (sock, addr, port) { 4294 if (typeof sock.saddr !== 'undefined' || typeof sock.sport !== 'undefined') { 4295 throw new FS.ErrnoError(ERRNO_CODES.EINVAL); // already bound 4296 } 4297 sock.saddr = addr; 4298 sock.sport = port || _mkport(); 4299 // in order to emulate dgram sockets, we need to launch a listen server when 4300 // binding on a connection-less socket 4301 // note: this is only required on the server side 4302 if (sock.type === 2) { 4303 // close the existing server if it exists 4304 if (sock.server) { 4305 sock.server.close(); 4306 sock.server = null; 4307 } 4308 // swallow error operation not supported error that occurs when binding in the 4309 // browser where this isn't supported 4310 try { 4311 sock.sock_ops.listen(sock, 0); 4312 } catch (e) { 4313 if (!(e instanceof FS.ErrnoError)) throw e; 4314 if (e.errno !== ERRNO_CODES.EOPNOTSUPP) throw e; 4315 } 4316 } 4317 },connect:function (sock, addr, port) { 4318 if (sock.server) { 4319 throw new FS.ErrnoError(ERRNO_CODS.EOPNOTSUPP); 4320 } 4321 4322 // TODO autobind 4323 // if (!sock.addr && sock.type == 2) { 4324 // } 4325 4326 // early out if we're already connected / in the middle of connecting 4327 if (typeof sock.daddr !== 'undefined' && typeof sock.dport !== 'undefined') { 4328 var dest = SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport); 4329 if (dest) { 4330 if (dest.socket.readyState === dest.socket.CONNECTING) { 4331 throw new FS.ErrnoError(ERRNO_CODES.EALREADY); 4332 } else { 4333 throw new FS.ErrnoError(ERRNO_CODES.EISCONN); 4334 } 4335 } 4336 } 4337 4338 // add the socket to our peer list and set our 4339 // destination address / port to match 4340 var peer = SOCKFS.websocket_sock_ops.createPeer(sock, addr, port); 4341 sock.daddr = peer.addr; 4342 sock.dport = peer.port; 4343 4344 // always "fail" in non-blocking mode 4345 throw new FS.ErrnoError(ERRNO_CODES.EINPROGRESS); 4346 },listen:function (sock, backlog) { 4347 if (!ENVIRONMENT_IS_NODE) { 4348 throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP); 4349 } 4350 if (sock.server) { 4351 throw new FS.ErrnoError(ERRNO_CODES.EINVAL); // already listening 4352 } 4353 var WebSocketServer = require('ws').Server; 4354 var host = sock.saddr; 4355 sock.server = new WebSocketServer({ 4356 host: host, 4357 port: sock.sport 4358 // TODO support backlog 4359 }); 4360 4361 sock.server.on('connection', function(ws) { 4362 if (sock.type === 1) { 4363 var newsock = SOCKFS.createSocket(sock.family, sock.type, sock.protocol); 4364 4365 // create a peer on the new socket 4366 var peer = SOCKFS.websocket_sock_ops.createPeer(newsock, ws); 4367 newsock.daddr = peer.addr; 4368 newsock.dport = peer.port; 4369 4370 // push to queue for accept to pick up 4371 sock.pending.push(newsock); 4372 } else { 4373 // create a peer on the listen socket so calling sendto 4374 // with the listen socket and an address will resolve 4375 // to the correct client 4376 SOCKFS.websocket_sock_ops.createPeer(sock, ws); 4377 } 4378 }); 4379 sock.server.on('closed', function() { 4380 sock.server = null; 4381 }); 4382 sock.server.on('error', function() { 4383 // don't throw 4384 }); 4385 },accept:function (listensock) { 4386 if (!listensock.server) { 4387 throw new FS.ErrnoError(ERRNO_CODES.EINVAL); 4388 } 4389 var newsock = listensock.pending.shift(); 4390 newsock.stream.flags = listensock.stream.flags; 4391 return newsock; 4392 },getname:function (sock, peer) { 4393 var addr, port; 4394 if (peer) { 4395 if (sock.daddr === undefined || sock.dport === undefined) { 4396 throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN); 4397 } 4398 addr = sock.daddr; 4399 port = sock.dport; 4400 } else { 4401 // TODO saddr and sport will be set for bind()'d UDP sockets, but what 4402 // should we be returning for TCP sockets that've been connect()'d? 4403 addr = sock.saddr || 0; 4404 port = sock.sport || 0; 4405 } 4406 return { addr: addr, port: port }; 4407 },sendmsg:function (sock, buffer, offset, length, addr, port) { 4408 if (sock.type === 2) { 4409 // connection-less sockets will honor the message address, 4410 // and otherwise fall back to the bound destination address 4411 if (addr === undefined || port === undefined) { 4412 addr = sock.daddr; 4413 port = sock.dport; 4414 } 4415 // if there was no address to fall back to, error out 4416 if (addr === undefined || port === undefined) { 4417 throw new FS.ErrnoError(ERRNO_CODES.EDESTADDRREQ); 4418 } 4419 } else { 4420 // connection-based sockets will only use the bound 4421 addr = sock.daddr; 4422 port = sock.dport; 4423 } 4424 4425 // find the peer for the destination address 4426 var dest = SOCKFS.websocket_sock_ops.getPeer(sock, addr, port); 4427 4428 // early out if not connected with a connection-based socket 4429 if (sock.type === 1) { 4430 if (!dest || dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) { 4431 throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN); 4432 } else if (dest.socket.readyState === dest.socket.CONNECTING) { 4433 throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); 4434 } 4435 } 4436 4437 // create a copy of the incoming data to send, as the WebSocket API 4438 // doesn't work entirely with an ArrayBufferView, it'll just send 4439 // the entire underlying buffer 4440 var data; 4441 if (buffer instanceof Array || buffer instanceof ArrayBuffer) { 4442 data = buffer.slice(offset, offset + length); 4443 } else { // ArrayBufferView 4444 data = buffer.buffer.slice(buffer.byteOffset + offset, buffer.byteOffset + offset + length); 4445 } 4446 4447 // if we're emulating a connection-less dgram socket and don't have 4448 // a cached connection, queue the buffer to send upon connect and 4449 // lie, saying the data was sent now. 4450 if (sock.type === 2) { 4451 if (!dest || dest.socket.readyState !== dest.socket.OPEN) { 4452 // if we're not connected, open a new connection 4453 if (!dest || dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) { 4454 dest = SOCKFS.websocket_sock_ops.createPeer(sock, addr, port); 4455 } 4456 dest.dgram_send_queue.push(data); 4457 return length; 4458 } 4459 } 4460 4461 try { 4462 // send the actual data 4463 dest.socket.send(data); 4464 return length; 4465 } catch (e) { 4466 throw new FS.ErrnoError(ERRNO_CODES.EINVAL); 4467 } 4468 },recvmsg:function (sock, length) { 4469 // http://pubs.opengroup.org/onlinepubs/7908799/xns/recvmsg.html 4470 if (sock.type === 1 && sock.server) { 4471 // tcp servers should not be recv()'ing on the listen socket 4472 throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN); 4473 } 4474 4475 var queued = sock.recv_queue.shift(); 4476 if (!queued) { 4477 if (sock.type === 1) { 4478 var dest = SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport); 4479 4480 if (!dest) { 4481 // if we have a destination address but are not connected, error out 4482 throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN); 4483 } 4484 else if (dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) { 4485 // return null if the socket has closed 4486 return null; 4487 } 4488 else { 4489 // else, our socket is in a valid state but truly has nothing available 4490 throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); 4491 } 4492 } else { 4493 throw new FS.ErrnoError(ERRNO_CODES.EAGAIN); 4494 } 4495 } 4496 4497 // queued.data will be an ArrayBuffer if it's unadulterated, but if it's 4498 // requeued TCP data it'll be an ArrayBufferView 4499 var queuedLength = queued.data.byteLength || queued.data.length; 4500 var queuedOffset = queued.data.byteOffset || 0; 4501 var queuedBuffer = queued.data.buffer || queued.data; 4502 var bytesRead = Math.min(length, queuedLength); 4503 var res = { 4504 buffer: new Uint8Array(queuedBuffer, queuedOffset, bytesRead), 4505 addr: queued.addr, 4506 port: queued.port 4507 }; 4508 4509 4510 // push back any unread data for TCP connections 4511 if (sock.type === 1 && bytesRead < queuedLength) { 4512 var bytesRemaining = queuedLength - bytesRead; 4513 queued.data = new Uint8Array(queuedBuffer, queuedOffset + bytesRead, bytesRemaining); 4514 sock.recv_queue.unshift(queued); 4515 } 4516 4517 return res; 4518 }}};function _recv(fd, buf, len, flags) { 4519 var sock = SOCKFS.getSocket(fd); 4520 if (!sock) { 4521 ___setErrNo(ERRNO_CODES.EBADF); 4522 return -1; 4523 } 4524 // TODO honor flags 4525 return _read(fd, buf, len); 4526 } 4527 4528 function _pread(fildes, buf, nbyte, offset) { 4529 // ssize_t pread(int fildes, void *buf, size_t nbyte, off_t offset); 4530 // http://pubs.opengroup.org/onlinepubs/000095399/functions/read.html 4531 var stream = FS.getStream(fildes); 4532 if (!stream) { 4533 ___setErrNo(ERRNO_CODES.EBADF); 4534 return -1; 4535 } 4536 try { 4537 var slab = HEAP8; 4538 return FS.read(stream, slab, buf, nbyte, offset); 4539 } catch (e) { 4540 FS.handleFSError(e); 4541 return -1; 4542 } 4543 }function _read(fildes, buf, nbyte) { 4544 // ssize_t read(int fildes, void *buf, size_t nbyte); 4545 // http://pubs.opengroup.org/onlinepubs/000095399/functions/read.html 4546 var stream = FS.getStream(fildes); 4547 if (!stream) { 4548 ___setErrNo(ERRNO_CODES.EBADF); 4549 return -1; 4550 } 4551 4552 4553 try { 4554 var slab = HEAP8; 4555 return FS.read(stream, slab, buf, nbyte); 4556 } catch (e) { 4557 FS.handleFSError(e); 4558 return -1; 4559 } 4560 }function _fread(ptr, size, nitems, stream) { 4561 // size_t fread(void *restrict ptr, size_t size, size_t nitems, FILE *restrict stream); 4562 // http://pubs.opengroup.org/onlinepubs/000095399/functions/fread.html 4563 var bytesToRead = nitems * size; 4564 if (bytesToRead == 0) { 4565 return 0; 4566 } 4567 var bytesRead = 0; 4568 var streamObj = FS.getStreamFromPtr(stream); 4569 if (!streamObj) { 4570 ___setErrNo(ERRNO_CODES.EBADF); 4571 return 0; 4572 } 4573 while (streamObj.ungotten.length && bytesToRead > 0) { 4574 HEAP8[((ptr++)|0)]=streamObj.ungotten.pop(); 4575 bytesToRead--; 4576 bytesRead++; 4577 } 4578 var err = _read(streamObj.fd, ptr, bytesToRead); 4579 if (err == -1) { 4580 if (streamObj) streamObj.error = true; 4581 return 0; 4582 } 4583 bytesRead += err; 4584 if (bytesRead < bytesToRead) streamObj.eof = true; 4585 return Math.floor(bytesRead / size); 4586 } 4587 4588 function _toupper(chr) { 4589 if (chr >= 97 && chr <= 122) { 4590 return chr - 97 + 65; 4591 } else { 4592 return chr; 4593 } 4594 } 4595 4596 4597 4598 function _open(path, oflag, varargs) { 4599 // int open(const char *path, int oflag, ...); 4600 // http://pubs.opengroup.org/onlinepubs/009695399/functions/open.html 4601 var mode = HEAP32[((varargs)>>2)]; 4602 path = Pointer_stringify(path); 4603 try { 4604 var stream = FS.open(path, oflag, mode); 4605 return stream.fd; 4606 } catch (e) { 4607 FS.handleFSError(e); 4608 return -1; 4609 } 4610 }function _fopen(filename, mode) { 4611 // FILE *fopen(const char *restrict filename, const char *restrict mode); 4612 // http://pubs.opengroup.org/onlinepubs/000095399/functions/fopen.html 4613 var flags; 4614 mode = Pointer_stringify(mode); 4615 if (mode[0] == 'r') { 4616 if (mode.indexOf('+') != -1) { 4617 flags = 2; 4618 } else { 4619 flags = 0; 4620 } 4621 } else if (mode[0] == 'w') { 4622 if (mode.indexOf('+') != -1) { 4623 flags = 2; 4624 } else { 4625 flags = 1; 4626 } 4627 flags |= 64; 4628 flags |= 512; 4629 } else if (mode[0] == 'a') { 4630 if (mode.indexOf('+') != -1) { 4631 flags = 2; 4632 } else { 4633 flags = 1; 4634 } 4635 flags |= 64; 4636 flags |= 1024; 4637 } else { 4638 ___setErrNo(ERRNO_CODES.EINVAL); 4639 return 0; 4640 } 4641 var fd = _open(filename, flags, allocate([0x1FF, 0, 0, 0], 'i32', ALLOC_STACK)); // All creation permissions. 4642 return fd === -1 ? 0 : FS.getPtrForStream(FS.getStream(fd)); 4643 } 4644 4645 var _emscripten_check_longjmp=true; 4646 4647 4648 4649 function _send(fd, buf, len, flags) { 4650 var sock = SOCKFS.getSocket(fd); 4651 if (!sock) { 4652 ___setErrNo(ERRNO_CODES.EBADF); 4653 return -1; 4654 } 4655 // TODO honor flags 4656 return _write(fd, buf, len); 4657 } 4658 4659 function _pwrite(fildes, buf, nbyte, offset) { 4660 // ssize_t pwrite(int fildes, const void *buf, size_t nbyte, off_t offset); 4661 // http://pubs.opengroup.org/onlinepubs/000095399/functions/write.html 4662 var stream = FS.getStream(fildes); 4663 if (!stream) { 4664 ___setErrNo(ERRNO_CODES.EBADF); 4665 return -1; 4666 } 4667 try { 4668 var slab = HEAP8; 4669 return FS.write(stream, slab, buf, nbyte, offset); 4670 } catch (e) { 4671 FS.handleFSError(e); 4672 return -1; 4673 } 4674 }function _write(fildes, buf, nbyte) { 4675 // ssize_t write(int fildes, const void *buf, size_t nbyte); 4676 // http://pubs.opengroup.org/onlinepubs/000095399/functions/write.html 4677 var stream = FS.getStream(fildes); 4678 if (!stream) { 4679 ___setErrNo(ERRNO_CODES.EBADF); 4680 return -1; 4681 } 4682 4683 4684 try { 4685 var slab = HEAP8; 4686 return FS.write(stream, slab, buf, nbyte); 4687 } catch (e) { 4688 FS.handleFSError(e); 4689 return -1; 4690 } 4691 }function _fputc(c, stream) { 4692 // int fputc(int c, FILE *stream); 4693 // http://pubs.opengroup.org/onlinepubs/000095399/functions/fputc.html 4694 var chr = unSign(c & 0xFF); 4695 HEAP8[((_fputc.ret)|0)]=chr; 4696 var fd = _fileno(stream); 4697 var ret = _write(fd, _fputc.ret, 1); 4698 if (ret == -1) { 4699 var streamObj = FS.getStreamFromPtr(stream); 4700 if (streamObj) streamObj.error = true; 4701 return -1; 4702 } else { 4703 return chr; 4704 } 4705 } 4706 4707 var _log=Math_log; 4708 4709 var _emscripten_postinvoke=true; 4710 4711 4712 function _putchar(c) { 4713 // int putchar(int c); 4714 // http://pubs.opengroup.org/onlinepubs/000095399/functions/putchar.html 4715 return _fputc(c, HEAP32[((_stdout)>>2)]); 4716 } 4717 Module["_saveSetjmp"] = _saveSetjmp; 4718 4719 function _fwrite(ptr, size, nitems, stream) { 4720 // size_t fwrite(const void *restrict ptr, size_t size, size_t nitems, FILE *restrict stream); 4721 // http://pubs.opengroup.org/onlinepubs/000095399/functions/fwrite.html 4722 var bytesToWrite = nitems * size; 4723 if (bytesToWrite == 0) return 0; 4724 var fd = _fileno(stream); 4725 var bytesWritten = _write(fd, ptr, bytesToWrite); 4726 if (bytesWritten == -1) { 4727 var streamObj = FS.getStreamFromPtr(stream); 4728 if (streamObj) streamObj.error = true; 4729 return 0; 4730 } else { 4731 return Math.floor(bytesWritten / size); 4732 } 4733 } 4734 4735 function _system(command) { 4736 // int system(const char *command); 4737 // http://pubs.opengroup.org/onlinepubs/000095399/functions/system.html 4738 // Can't call external programs. 4739 ___setErrNo(ERRNO_CODES.EAGAIN); 4740 return -1; 4741 } 4742 4743 function _frexp(x, exp_addr) { 4744 var sig = 0, exp_ = 0; 4745 if (x !== 0) { 4746 var sign = 1; 4747 if (x < 0) { 4748 x = -x; 4749 sign = -1; 4750 } 4751 var raw_exp = Math.log(x)/Math.log(2); 4752 exp_ = Math.ceil(raw_exp); 4753 if (exp_ === raw_exp) exp_ += 1; 4754 sig = sign*x/Math.pow(2, exp_); 4755 } 4756 HEAP32[((exp_addr)>>2)]=exp_; 4757 return sig; 4758 } 4759 4760 4761 4762 var _tzname=allocate(8, "i32*", ALLOC_STATIC); 4763 4764 var _daylight=allocate(1, "i32*", ALLOC_STATIC); 4765 4766 var _timezone=allocate(1, "i32*", ALLOC_STATIC);function _tzset() { 4767 // TODO: Use (malleable) environment variables instead of system settings. 4768 if (_tzset.called) return; 4769 _tzset.called = true; 4770 4771 HEAP32[((_timezone)>>2)]=-(new Date()).getTimezoneOffset() * 60; 4772 4773 var winter = new Date(2000, 0, 1); 4774 var summer = new Date(2000, 6, 1); 4775 HEAP32[((_daylight)>>2)]=Number(winter.getTimezoneOffset() != summer.getTimezoneOffset()); 4776 4777 var winterName = 'GMT'; // XXX do not rely on browser timezone info, it is very unpredictable | winter.toString().match(/\(([A-Z]+)\)/)[1]; 4778 var summerName = 'GMT'; // XXX do not rely on browser timezone info, it is very unpredictable | summer.toString().match(/\(([A-Z]+)\)/)[1]; 4779 var winterNamePtr = allocate(intArrayFromString(winterName), 'i8', ALLOC_NORMAL); 4780 var summerNamePtr = allocate(intArrayFromString(summerName), 'i8', ALLOC_NORMAL); 4781 HEAP32[((_tzname)>>2)]=winterNamePtr; 4782 HEAP32[(((_tzname)+(4))>>2)]=summerNamePtr; 4783 }function _mktime(tmPtr) { 4784 _tzset(); 4785 var year = HEAP32[(((tmPtr)+(20))>>2)]; 4786 var timestamp = new Date(year >= 1900 ? year : year + 1900, 4787 HEAP32[(((tmPtr)+(16))>>2)], 4788 HEAP32[(((tmPtr)+(12))>>2)], 4789 HEAP32[(((tmPtr)+(8))>>2)], 4790 HEAP32[(((tmPtr)+(4))>>2)], 4791 HEAP32[((tmPtr)>>2)], 4792 0).getTime() / 1000; 4793 HEAP32[(((tmPtr)+(24))>>2)]=new Date(timestamp).getDay(); 4794 var yday = Math.round((timestamp - (new Date(year, 0, 1)).getTime()) / (1000 * 60 * 60 * 24)); 4795 HEAP32[(((tmPtr)+(28))>>2)]=yday; 4796 return timestamp; 4797 } 4798 4799 function _isalpha(chr) { 4800 return (chr >= 97 && chr <= 122) || 4801 (chr >= 65 && chr <= 90); 4802 } 4803 4804 4805 function _malloc(bytes) { 4806 /* Over-allocate to make sure it is byte-aligned by 8. 4807 * This will leak memory, but this is only the dummy 4808 * implementation (replaced by dlmalloc normally) so 4809 * not an issue. 4810 */ 4811 var ptr = Runtime.dynamicAlloc(bytes + 8); 4812 return (ptr+8) & 0xFFFFFFF8; 4813 } 4814 Module["_malloc"] = _malloc;function _tmpnam(s, dir, prefix) { 4815 // char *tmpnam(char *s); 4816 // http://pubs.opengroup.org/onlinepubs/000095399/functions/tmpnam.html 4817 // NOTE: The dir and prefix arguments are for internal use only. 4818 var folder = FS.findObject(dir || '/tmp'); 4819 if (!folder || !folder.isFolder) { 4820 dir = '/tmp'; 4821 folder = FS.findObject(dir); 4822 if (!folder || !folder.isFolder) return 0; 4823 } 4824 var name = prefix || 'file'; 4825 do { 4826 name += String.fromCharCode(65 + Math.floor(Math.random() * 25)); 4827 } while (name in folder.contents); 4828 var result = dir + '/' + name; 4829 if (!_tmpnam.buffer) _tmpnam.buffer = _malloc(256); 4830 if (!s) s = _tmpnam.buffer; 4831 writeAsciiToMemory(result, s); 4832 return s; 4833 } 4834 4835 var Browser={mainLoop:{scheduler:null,method:"",shouldPause:false,paused:false,queue:[],pause:function () { 4836 Browser.mainLoop.shouldPause = true; 4837 },resume:function () { 4838 if (Browser.mainLoop.paused) { 4839 Browser.mainLoop.paused = false; 4840 Browser.mainLoop.scheduler(); 4841 } 4842 Browser.mainLoop.shouldPause = false; 4843 },updateStatus:function () { 4844 if (Module['setStatus']) { 4845 var message = Module['statusMessage'] || 'Please wait...'; 4846 var remaining = Browser.mainLoop.remainingBlockers; 4847 var expected = Browser.mainLoop.expectedBlockers; 4848 if (remaining) { 4849 if (remaining < expected) { 4850 Module['setStatus'](message + ' (' + (expected - remaining) + '/' + expected + ')'); 4851 } else { 4852 Module['setStatus'](message); 4853 } 4854 } else { 4855 Module['setStatus'](''); 4856 } 4857 } 4858 }},isFullScreen:false,pointerLock:false,moduleContextCreatedCallbacks:[],workers:[],init:function () { 4859 if (!Module["preloadPlugins"]) Module["preloadPlugins"] = []; // needs to exist even in workers 4860 4861 if (Browser.initted || ENVIRONMENT_IS_WORKER) return; 4862 Browser.initted = true; 4863 4864 try { 4865 new Blob(); 4866 Browser.hasBlobConstructor = true; 4867 } catch(e) { 4868 Browser.hasBlobConstructor = false; 4869 console.log("warning: no blob constructor, cannot create blobs with mimetypes"); 4870 } 4871 Browser.BlobBuilder = typeof MozBlobBuilder != "undefined" ? MozBlobBuilder : (typeof WebKitBlobBuilder != "undefined" ? WebKitBlobBuilder : (!Browser.hasBlobConstructor ? console.log("warning: no BlobBuilder") : null)); 4872 Browser.URLObject = typeof window != "undefined" ? (window.URL ? window.URL : window.webkitURL) : undefined; 4873 if (!Module.noImageDecoding && typeof Browser.URLObject === 'undefined') { 4874 console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."); 4875 Module.noImageDecoding = true; 4876 } 4877 4878 // Support for plugins that can process preloaded files. You can add more of these to 4879 // your app by creating and appending to Module.preloadPlugins. 4880 // 4881 // Each plugin is asked if it can handle a file based on the file's name. If it can, 4882 // it is given the file's raw data. When it is done, it calls a callback with the file's 4883 // (possibly modified) data. For example, a plugin might decompress a file, or it 4884 // might create some side data structure for use later (like an Image element, etc.). 4885 4886 var imagePlugin = {}; 4887 imagePlugin['canHandle'] = function imagePlugin_canHandle(name) { 4888 return !Module.noImageDecoding && /\.(jpg|jpeg|png|bmp)$/i.test(name); 4889 }; 4890 imagePlugin['handle'] = function imagePlugin_handle(byteArray, name, onload, onerror) { 4891 var b = null; 4892 if (Browser.hasBlobConstructor) { 4893 try { 4894 b = new Blob([byteArray], { type: Browser.getMimetype(name) }); 4895 if (b.size !== byteArray.length) { // Safari bug #118630 4896 // Safari's Blob can only take an ArrayBuffer 4897 b = new Blob([(new Uint8Array(byteArray)).buffer], { type: Browser.getMimetype(name) }); 4898 } 4899 } catch(e) { 4900 Runtime.warnOnce('Blob constructor present but fails: ' + e + '; falling back to blob builder'); 4901 } 4902 } 4903 if (!b) { 4904 var bb = new Browser.BlobBuilder(); 4905 bb.append((new Uint8Array(byteArray)).buffer); // we need to pass a buffer, and must copy the array to get the right data range 4906 b = bb.getBlob(); 4907 } 4908 var url = Browser.URLObject.createObjectURL(b); 4909 var img = new Image(); 4910 img.onload = function img_onload() { 4911 assert(img.complete, 'Image ' + name + ' could not be decoded'); 4912 var canvas = document.createElement('canvas'); 4913 canvas.width = img.width; 4914 canvas.height = img.height; 4915 var ctx = canvas.getContext('2d'); 4916 ctx.drawImage(img, 0, 0); 4917 Module["preloadedImages"][name] = canvas; 4918 Browser.URLObject.revokeObjectURL(url); 4919 if (onload) onload(byteArray); 4920 }; 4921 img.onerror = function img_onerror(event) { 4922 console.log('Image ' + url + ' could not be decoded'); 4923 if (onerror) onerror(); 4924 }; 4925 img.src = url; 4926 }; 4927 Module['preloadPlugins'].push(imagePlugin); 4928 4929 var audioPlugin = {}; 4930 audioPlugin['canHandle'] = function audioPlugin_canHandle(name) { 4931 return !Module.noAudioDecoding && name.substr(-4) in { '.ogg': 1, '.wav': 1, '.mp3': 1 }; 4932 }; 4933 audioPlugin['handle'] = function audioPlugin_handle(byteArray, name, onload, onerror) { 4934 var done = false; 4935 function finish(audio) { 4936 if (done) return; 4937 done = true; 4938 Module["preloadedAudios"][name] = audio; 4939 if (onload) onload(byteArray); 4940 } 4941 function fail() { 4942 if (done) return; 4943 done = true; 4944 Module["preloadedAudios"][name] = new Audio(); // empty shim 4945 if (onerror) onerror(); 4946 } 4947 if (Browser.hasBlobConstructor) { 4948 try { 4949 var b = new Blob([byteArray], { type: Browser.getMimetype(name) }); 4950 } catch(e) { 4951 return fail(); 4952 } 4953 var url = Browser.URLObject.createObjectURL(b); // XXX we never revoke this! 4954 var audio = new Audio(); 4955 audio.addEventListener('canplaythrough', function() { finish(audio) }, false); // use addEventListener due to chromium bug 124926 4956 audio.onerror = function audio_onerror(event) { 4957 if (done) return; 4958 console.log('warning: browser could not fully decode audio ' + name + ', trying slower base64 approach'); 4959 function encode64(data) { 4960 var BASE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; 4961 var PAD = '='; 4962 var ret = ''; 4963 var leftchar = 0; 4964 var leftbits = 0; 4965 for (var i = 0; i < data.length; i++) { 4966 leftchar = (leftchar << 8) | data[i]; 4967 leftbits += 8; 4968 while (leftbits >= 6) { 4969 var curr = (leftchar >> (leftbits-6)) & 0x3f; 4970 leftbits -= 6; 4971 ret += BASE[curr]; 4972 } 4973 } 4974 if (leftbits == 2) { 4975 ret += BASE[(leftchar&3) << 4]; 4976 ret += PAD + PAD; 4977 } else if (leftbits == 4) { 4978 ret += BASE[(leftchar&0xf) << 2]; 4979 ret += PAD; 4980 } 4981 return ret; 4982 } 4983 audio.src = 'data:audio/x-' + name.substr(-3) + ';base64,' + encode64(byteArray); 4984 finish(audio); // we don't wait for confirmation this worked - but it's worth trying 4985 }; 4986 audio.src = url; 4987 // workaround for chrome bug 124926 - we do not always get oncanplaythrough or onerror 4988 Browser.safeSetTimeout(function() { 4989 finish(audio); // try to use it even though it is not necessarily ready to play 4990 }, 10000); 4991 } else { 4992 return fail(); 4993 } 4994 }; 4995 Module['preloadPlugins'].push(audioPlugin); 4996 4997 // Canvas event setup 4998 4999 var canvas = Module['canvas']; 5000 5001 // forced aspect ratio can be enabled by defining 'forcedAspectRatio' on Module 5002 // Module['forcedAspectRatio'] = 4 / 3; 5003 5004 canvas.requestPointerLock = canvas['requestPointerLock'] || 5005 canvas['mozRequestPointerLock'] || 5006 canvas['webkitRequestPointerLock'] || 5007 canvas['msRequestPointerLock'] || 5008 function(){}; 5009 canvas.exitPointerLock = document['exitPointerLock'] || 5010 document['mozExitPointerLock'] || 5011 document['webkitExitPointerLock'] || 5012 document['msExitPointerLock'] || 5013 function(){}; // no-op if function does not exist 5014 canvas.exitPointerLock = canvas.exitPointerLock.bind(document); 5015 5016 function pointerLockChange() { 5017 Browser.pointerLock = document['pointerLockElement'] === canvas || 5018 document['mozPointerLockElement'] === canvas || 5019 document['webkitPointerLockElement'] === canvas || 5020 document['msPointerLockElement'] === canvas; 5021 } 5022 5023 document.addEventListener('pointerlockchange', pointerLockChange, false); 5024 document.addEventListener('mozpointerlockchange', pointerLockChange, false); 5025 document.addEventListener('webkitpointerlockchange', pointerLockChange, false); 5026 document.addEventListener('mspointerlockchange', pointerLockChange, false); 5027 5028 if (Module['elementPointerLock']) { 5029 canvas.addEventListener("click", function(ev) { 5030 if (!Browser.pointerLock && canvas.requestPointerLock) { 5031 canvas.requestPointerLock(); 5032 ev.preventDefault(); 5033 } 5034 }, false); 5035 } 5036 },createContext:function (canvas, useWebGL, setInModule, webGLContextAttributes) { 5037 var ctx; 5038 var errorInfo = '?'; 5039 function onContextCreationError(event) { 5040 errorInfo = event.statusMessage || errorInfo; 5041 } 5042 try { 5043 if (useWebGL) { 5044 var contextAttributes = { 5045 antialias: false, 5046 alpha: false 5047 }; 5048 5049 if (webGLContextAttributes) { 5050 for (var attribute in webGLContextAttributes) { 5051 contextAttributes[attribute] = webGLContextAttributes[attribute]; 5052 } 5053 } 5054 5055 5056 canvas.addEventListener('webglcontextcreationerror', onContextCreationError, false); 5057 try { 5058 ['experimental-webgl', 'webgl'].some(function(webglId) { 5059 return ctx = canvas.getContext(webglId, contextAttributes); 5060 }); 5061 } finally { 5062 canvas.removeEventListener('webglcontextcreationerror', onContextCreationError, false); 5063 } 5064 } else { 5065 ctx = canvas.getContext('2d'); 5066 } 5067 if (!ctx) throw ':('; 5068 } catch (e) { 5069 Module.print('Could not create canvas: ' + [errorInfo, e]); 5070 return null; 5071 } 5072 if (useWebGL) { 5073 // Set the background of the WebGL canvas to black 5074 canvas.style.backgroundColor = "black"; 5075 5076 // Warn on context loss 5077 canvas.addEventListener('webglcontextlost', function(event) { 5078 alert('WebGL context lost. You will need to reload the page.'); 5079 }, false); 5080 } 5081 if (setInModule) { 5082 GLctx = Module.ctx = ctx; 5083 Module.useWebGL = useWebGL; 5084 Browser.moduleContextCreatedCallbacks.forEach(function(callback) { callback() }); 5085 Browser.init(); 5086 } 5087 return ctx; 5088 },destroyContext:function (canvas, useWebGL, setInModule) {},fullScreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullScreen:function (lockPointer, resizeCanvas) { 5089 Browser.lockPointer = lockPointer; 5090 Browser.resizeCanvas = resizeCanvas; 5091 if (typeof Browser.lockPointer === 'undefined') Browser.lockPointer = true; 5092 if (typeof Browser.resizeCanvas === 'undefined') Browser.resizeCanvas = false; 5093 5094 var canvas = Module['canvas']; 5095 function fullScreenChange() { 5096 Browser.isFullScreen = false; 5097 var canvasContainer = canvas.parentNode; 5098 if ((document['webkitFullScreenElement'] || document['webkitFullscreenElement'] || 5099 document['mozFullScreenElement'] || document['mozFullscreenElement'] || 5100 document['fullScreenElement'] || document['fullscreenElement'] || 5101 document['msFullScreenElement'] || document['msFullscreenElement'] || 5102 document['webkitCurrentFullScreenElement']) === canvasContainer) { 5103 canvas.cancelFullScreen = document['cancelFullScreen'] || 5104 document['mozCancelFullScreen'] || 5105 document['webkitCancelFullScreen'] || 5106 document['msExitFullscreen'] || 5107 document['exitFullscreen'] || 5108 function() {}; 5109 canvas.cancelFullScreen = canvas.cancelFullScreen.bind(document); 5110 if (Browser.lockPointer) canvas.requestPointerLock(); 5111 Browser.isFullScreen = true; 5112 if (Browser.resizeCanvas) Browser.setFullScreenCanvasSize(); 5113 } else { 5114 5115 // remove the full screen specific parent of the canvas again to restore the HTML structure from before going full screen 5116 canvasContainer.parentNode.insertBefore(canvas, canvasContainer); 5117 canvasContainer.parentNode.removeChild(canvasContainer); 5118 5119 if (Browser.resizeCanvas) Browser.setWindowedCanvasSize(); 5120 } 5121 if (Module['onFullScreen']) Module['onFullScreen'](Browser.isFullScreen); 5122 Browser.updateCanvasDimensions(canvas); 5123 } 5124 5125 if (!Browser.fullScreenHandlersInstalled) { 5126 Browser.fullScreenHandlersInstalled = true; 5127 document.addEventListener('fullscreenchange', fullScreenChange, false); 5128 document.addEventListener('mozfullscreenchange', fullScreenChange, false); 5129 document.addEventListener('webkitfullscreenchange', fullScreenChange, false); 5130 document.addEventListener('MSFullscreenChange', fullScreenChange, false); 5131 } 5132 5133 // 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 5134 var canvasContainer = document.createElement("div"); 5135 canvas.parentNode.insertBefore(canvasContainer, canvas); 5136 canvasContainer.appendChild(canvas); 5137 5138 // use parent of canvas as full screen root to allow aspect ratio correction (Firefox stretches the root to screen size) 5139 canvasContainer.requestFullScreen = canvasContainer['requestFullScreen'] || 5140 canvasContainer['mozRequestFullScreen'] || 5141 canvasContainer['msRequestFullscreen'] || 5142 (canvasContainer['webkitRequestFullScreen'] ? function() { canvasContainer['webkitRequestFullScreen'](Element['ALLOW_KEYBOARD_INPUT']) } : null); 5143 canvasContainer.requestFullScreen(); 5144 },requestAnimationFrame:function requestAnimationFrame(func) { 5145 if (typeof window === 'undefined') { // Provide fallback to setTimeout if window is undefined (e.g. in Node.js) 5146 setTimeout(func, 1000/60); 5147 } else { 5148 if (!window.requestAnimationFrame) { 5149 window.requestAnimationFrame = window['requestAnimationFrame'] || 5150 window['mozRequestAnimationFrame'] || 5151 window['webkitRequestAnimationFrame'] || 5152 window['msRequestAnimationFrame'] || 5153 window['oRequestAnimationFrame'] || 5154 window['setTimeout']; 5155 } 5156 window.requestAnimationFrame(func); 5157 } 5158 },safeCallback:function (func) { 5159 return function() { 5160 if (!ABORT) return func.apply(null, arguments); 5161 }; 5162 },safeRequestAnimationFrame:function (func) { 5163 return Browser.requestAnimationFrame(function() { 5164 if (!ABORT) func(); 5165 }); 5166 },safeSetTimeout:function (func, timeout) { 5167 return setTimeout(function() { 5168 if (!ABORT) func(); 5169 }, timeout); 5170 },safeSetInterval:function (func, timeout) { 5171 return setInterval(function() { 5172 if (!ABORT) func(); 5173 }, timeout); 5174 },getMimetype:function (name) { 5175 return { 5176 'jpg': 'image/jpeg', 5177 'jpeg': 'image/jpeg', 5178 'png': 'image/png', 5179 'bmp': 'image/bmp', 5180 'ogg': 'audio/ogg', 5181 'wav': 'audio/wav', 5182 'mp3': 'audio/mpeg' 5183 }[name.substr(name.lastIndexOf('.')+1)]; 5184 },getUserMedia:function (func) { 5185 if(!window.getUserMedia) { 5186 window.getUserMedia = navigator['getUserMedia'] || 5187 navigator['mozGetUserMedia']; 5188 } 5189 window.getUserMedia(func); 5190 },getMovementX:function (event) { 5191 return event['movementX'] || 5192 event['mozMovementX'] || 5193 event['webkitMovementX'] || 5194 0; 5195 },getMovementY:function (event) { 5196 return event['movementY'] || 5197 event['mozMovementY'] || 5198 event['webkitMovementY'] || 5199 0; 5200 },getMouseWheelDelta:function (event) { 5201 return Math.max(-1, Math.min(1, event.type === 'DOMMouseScroll' ? event.detail : -event.wheelDelta)); 5202 },mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,calculateMouseEvent:function (event) { // event should be mousemove, mousedown or mouseup 5203 if (Browser.pointerLock) { 5204 // When the pointer is locked, calculate the coordinates 5205 // based on the movement of the mouse. 5206 // Workaround for Firefox bug 764498 5207 if (event.type != 'mousemove' && 5208 ('mozMovementX' in event)) { 5209 Browser.mouseMovementX = Browser.mouseMovementY = 0; 5210 } else { 5211 Browser.mouseMovementX = Browser.getMovementX(event); 5212 Browser.mouseMovementY = Browser.getMovementY(event); 5213 } 5214 5215 // check if SDL is available 5216 if (typeof SDL != "undefined") { 5217 Browser.mouseX = SDL.mouseX + Browser.mouseMovementX; 5218 Browser.mouseY = SDL.mouseY + Browser.mouseMovementY; 5219 } else { 5220 // just add the mouse delta to the current absolut mouse position 5221 // FIXME: ideally this should be clamped against the canvas size and zero 5222 Browser.mouseX += Browser.mouseMovementX; 5223 Browser.mouseY += Browser.mouseMovementY; 5224 } 5225 } else { 5226 // Otherwise, calculate the movement based on the changes 5227 // in the coordinates. 5228 var rect = Module["canvas"].getBoundingClientRect(); 5229 var x, y; 5230 5231 // Neither .scrollX or .pageXOffset are defined in a spec, but 5232 // we prefer .scrollX because it is currently in a spec draft. 5233 // (see: http://www.w3.org/TR/2013/WD-cssom-view-20131217/) 5234 var scrollX = ((typeof window.scrollX !== 'undefined') ? window.scrollX : window.pageXOffset); 5235 var scrollY = ((typeof window.scrollY !== 'undefined') ? window.scrollY : window.pageYOffset); 5236 if (event.type == 'touchstart' || 5237 event.type == 'touchend' || 5238 event.type == 'touchmove') { 5239 var t = event.touches.item(0); 5240 if (t) { 5241 x = t.pageX - (scrollX + rect.left); 5242 y = t.pageY - (scrollY + rect.top); 5243 } else { 5244 return; 5245 } 5246 } else { 5247 x = event.pageX - (scrollX + rect.left); 5248 y = event.pageY - (scrollY + rect.top); 5249 } 5250 5251 // the canvas might be CSS-scaled compared to its backbuffer; 5252 // SDL-using content will want mouse coordinates in terms 5253 // of backbuffer units. 5254 var cw = Module["canvas"].width; 5255 var ch = Module["canvas"].height; 5256 x = x * (cw / rect.width); 5257 y = y * (ch / rect.height); 5258 5259 Browser.mouseMovementX = x - Browser.mouseX; 5260 Browser.mouseMovementY = y - Browser.mouseY; 5261 Browser.mouseX = x; 5262 Browser.mouseY = y; 5263 } 5264 },xhrLoad:function (url, onload, onerror) { 5265 var xhr = new XMLHttpRequest(); 5266 xhr.open('GET', url, true); 5267 xhr.responseType = 'arraybuffer'; 5268 xhr.onload = function xhr_onload() { 5269 if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0 5270 onload(xhr.response); 5271 } else { 5272 onerror(); 5273 } 5274 }; 5275 xhr.onerror = onerror; 5276 xhr.send(null); 5277 },asyncLoad:function (url, onload, onerror, noRunDep) { 5278 Browser.xhrLoad(url, function(arrayBuffer) { 5279 assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).'); 5280 onload(new Uint8Array(arrayBuffer)); 5281 if (!noRunDep) removeRunDependency('al ' + url); 5282 }, function(event) { 5283 if (onerror) { 5284 onerror(); 5285 } else { 5286 throw 'Loading data file "' + url + '" failed.'; 5287 } 5288 }); 5289 if (!noRunDep) addRunDependency('al ' + url); 5290 },resizeListeners:[],updateResizeListeners:function () { 5291 var canvas = Module['canvas']; 5292 Browser.resizeListeners.forEach(function(listener) { 5293 listener(canvas.width, canvas.height); 5294 }); 5295 },setCanvasSize:function (width, height, noUpdates) { 5296 var canvas = Module['canvas']; 5297 Browser.updateCanvasDimensions(canvas, width, height); 5298 if (!noUpdates) Browser.updateResizeListeners(); 5299 },windowedWidth:0,windowedHeight:0,setFullScreenCanvasSize:function () { 5300 // check if SDL is available 5301 if (typeof SDL != "undefined") { 5302 var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]; 5303 flags = flags | 0x00800000; // set SDL_FULLSCREEN flag 5304 HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags 5305 } 5306 Browser.updateResizeListeners(); 5307 },setWindowedCanvasSize:function () { 5308 // check if SDL is available 5309 if (typeof SDL != "undefined") { 5310 var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]; 5311 flags = flags & ~0x00800000; // clear SDL_FULLSCREEN flag 5312 HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags 5313 } 5314 Browser.updateResizeListeners(); 5315 },updateCanvasDimensions:function (canvas, wNative, hNative) { 5316 if (wNative && hNative) { 5317 canvas.widthNative = wNative; 5318 canvas.heightNative = hNative; 5319 } else { 5320 wNative = canvas.widthNative; 5321 hNative = canvas.heightNative; 5322 } 5323 var w = wNative; 5324 var h = hNative; 5325 if (Module['forcedAspectRatio'] && Module['forcedAspectRatio'] > 0) { 5326 if (w/h < Module['forcedAspectRatio']) { 5327 w = Math.round(h * Module['forcedAspectRatio']); 5328 } else { 5329 h = Math.round(w / Module['forcedAspectRatio']); 5330 } 5331 } 5332 if (((document['webkitFullScreenElement'] || document['webkitFullscreenElement'] || 5333 document['mozFullScreenElement'] || document['mozFullscreenElement'] || 5334 document['fullScreenElement'] || document['fullscreenElement'] || 5335 document['msFullScreenElement'] || document['msFullscreenElement'] || 5336 document['webkitCurrentFullScreenElement']) === canvas.parentNode) && (typeof screen != 'undefined')) { 5337 var factor = Math.min(screen.width / w, screen.height / h); 5338 w = Math.round(w * factor); 5339 h = Math.round(h * factor); 5340 } 5341 if (Browser.resizeCanvas) { 5342 if (canvas.width != w) canvas.width = w; 5343 if (canvas.height != h) canvas.height = h; 5344 if (typeof canvas.style != 'undefined') { 5345 canvas.style.removeProperty( "width"); 5346 canvas.style.removeProperty("height"); 5347 } 5348 } else { 5349 if (canvas.width != wNative) canvas.width = wNative; 5350 if (canvas.height != hNative) canvas.height = hNative; 5351 if (typeof canvas.style != 'undefined') { 5352 if (w != wNative || h != hNative) { 5353 canvas.style.setProperty( "width", w + "px", "important"); 5354 canvas.style.setProperty("height", h + "px", "important"); 5355 } else { 5356 canvas.style.removeProperty( "width"); 5357 canvas.style.removeProperty("height"); 5358 } 5359 } 5360 } 5361 }}; 5362 5363 function _log10(x) { 5364 return Math.log(x) / Math.LN10; 5365 } 5366 5367 function _isspace(chr) { 5368 return (chr == 32) || (chr >= 9 && chr <= 13); 5369 } 5370 5371 5372 var ___tm_current=allocate(44, "i8", ALLOC_STATIC); 5373 5374 5375 var ___tm_timezone=allocate(intArrayFromString("GMT"), "i8", ALLOC_STATIC);function _localtime_r(time, tmPtr) { 5376 _tzset(); 5377 var date = new Date(HEAP32[((time)>>2)]*1000); 5378 HEAP32[((tmPtr)>>2)]=date.getSeconds(); 5379 HEAP32[(((tmPtr)+(4))>>2)]=date.getMinutes(); 5380 HEAP32[(((tmPtr)+(8))>>2)]=date.getHours(); 5381 HEAP32[(((tmPtr)+(12))>>2)]=date.getDate(); 5382 HEAP32[(((tmPtr)+(16))>>2)]=date.getMonth(); 5383 HEAP32[(((tmPtr)+(20))>>2)]=date.getFullYear()-1900; 5384 HEAP32[(((tmPtr)+(24))>>2)]=date.getDay(); 5385 5386 var start = new Date(date.getFullYear(), 0, 1); 5387 var yday = Math.floor((date.getTime() - start.getTime()) / (1000 * 60 * 60 * 24)); 5388 HEAP32[(((tmPtr)+(28))>>2)]=yday; 5389 HEAP32[(((tmPtr)+(36))>>2)]=start.getTimezoneOffset() * 60; 5390 5391 var dst = Number(start.getTimezoneOffset() != date.getTimezoneOffset()); 5392 HEAP32[(((tmPtr)+(32))>>2)]=dst; 5393 5394 HEAP32[(((tmPtr)+(40))>>2)]=___tm_timezone; 5395 5396 return tmPtr; 5397 }function _localtime(time) { 5398 return _localtime_r(time, ___tm_current); 5399 } 5400 5401 function _srand(seed) { 5402 HEAP32[((___rand_seed)>>2)]=seed 5403 } 5404 5405 var _emscripten_prep_setjmp=true; 5406 5407 5408 5409 5410 Module["_testSetjmp"] = _testSetjmp;function _longjmp(env, value) { 5411 asm['setThrew'](env, value || 1); 5412 throw 'longjmp'; 5413 }function _emscripten_longjmp(env, value) { 5414 _longjmp(env, value); 5415 } 5416 5417 var _ceil=Math_ceil; 5418 5419 5420 function _emscripten_memcpy_big(dest, src, num) { 5421 HEAPU8.set(HEAPU8.subarray(src, src+num), dest); 5422 return dest; 5423 } 5424 Module["_memcpy"] = _memcpy; 5425 5426 var _llvm_pow_f64=Math_pow; 5427 5428 5429 5430 Module["_strlen"] = _strlen;function _fputs(s, stream) { 5431 // int fputs(const char *restrict s, FILE *restrict stream); 5432 // http://pubs.opengroup.org/onlinepubs/000095399/functions/fputs.html 5433 var fd = _fileno(stream); 5434 return _write(fd, s, _strlen(s)); 5435 } 5436 5437 function _sbrk(bytes) { 5438 // Implement a Linux-like 'memory area' for our 'process'. 5439 // Changes the size of the memory area by |bytes|; returns the 5440 // address of the previous top ('break') of the memory area 5441 // We control the "dynamic" memory - DYNAMIC_BASE to DYNAMICTOP 5442 var self = _sbrk; 5443 if (!self.called) { 5444 DYNAMICTOP = alignMemoryPage(DYNAMICTOP); // make sure we start out aligned 5445 self.called = true; 5446 assert(Runtime.dynamicAlloc); 5447 self.alloc = Runtime.dynamicAlloc; 5448 Runtime.dynamicAlloc = function() { abort('cannot dynamically allocate, sbrk now has control') }; 5449 } 5450 var ret = DYNAMICTOP; 5451 if (bytes != 0) self.alloc(bytes); 5452 return ret; // Previous break location. 5453 } 5454 5455 5456 function _sinh(x) { 5457 var p = Math.pow(Math.E, x); 5458 return (p - (1 / p)) / 2; 5459 } 5460 5461 function _cosh(x) { 5462 var p = Math.pow(Math.E, x); 5463 return (p + (1 / p)) / 2; 5464 }function _tanh(x) { 5465 return _sinh(x) / _cosh(x); 5466 } 5467 5468 function _signal(sig, func) { 5469 // TODO 5470 return 0; 5471 } 5472 5473 5474 5475 function __getFloat(text) { 5476 return /^[+-]?[0-9]*\.?[0-9]+([eE][+-]?[0-9]+)?/.exec(text); 5477 }function __scanString(format, get, unget, varargs) { 5478 if (!__scanString.whiteSpace) { 5479 __scanString.whiteSpace = {}; 5480 __scanString.whiteSpace[32] = 1; 5481 __scanString.whiteSpace[9] = 1; 5482 __scanString.whiteSpace[10] = 1; 5483 __scanString.whiteSpace[11] = 1; 5484 __scanString.whiteSpace[12] = 1; 5485 __scanString.whiteSpace[13] = 1; 5486 } 5487 // Supports %x, %4x, %d.%d, %lld, %s, %f, %lf. 5488 // TODO: Support all format specifiers. 5489 format = Pointer_stringify(format); 5490 var soFar = 0; 5491 if (format.indexOf('%n') >= 0) { 5492 // need to track soFar 5493 var _get = get; 5494 get = function get() { 5495 soFar++; 5496 return _get(); 5497 } 5498 var _unget = unget; 5499 unget = function unget() { 5500 soFar--; 5501 return _unget(); 5502 } 5503 } 5504 var formatIndex = 0; 5505 var argsi = 0; 5506 var fields = 0; 5507 var argIndex = 0; 5508 var next; 5509 5510 mainLoop: 5511 for (var formatIndex = 0; formatIndex < format.length;) { 5512 if (format[formatIndex] === '%' && format[formatIndex+1] == 'n') { 5513 var argPtr = HEAP32[(((varargs)+(argIndex))>>2)]; 5514 argIndex += Runtime.getAlignSize('void*', null, true); 5515 HEAP32[((argPtr)>>2)]=soFar; 5516 formatIndex += 2; 5517 continue; 5518 } 5519 5520 if (format[formatIndex] === '%') { 5521 var nextC = format.indexOf('c', formatIndex+1); 5522 if (nextC > 0) { 5523 var maxx = 1; 5524 if (nextC > formatIndex+1) { 5525 var sub = format.substring(formatIndex+1, nextC); 5526 maxx = parseInt(sub); 5527 if (maxx != sub) maxx = 0; 5528 } 5529 if (maxx) { 5530 var argPtr = HEAP32[(((varargs)+(argIndex))>>2)]; 5531 argIndex += Runtime.getAlignSize('void*', null, true); 5532 fields++; 5533 for (var i = 0; i < maxx; i++) { 5534 next = get(); 5535 HEAP8[((argPtr++)|0)]=next; 5536 if (next === 0) return i > 0 ? fields : fields-1; // we failed to read the full length of this field 5537 } 5538 formatIndex += nextC - formatIndex + 1; 5539 continue; 5540 } 5541 } 5542 } 5543 5544 // handle %[...] 5545 if (format[formatIndex] === '%' && format.indexOf('[', formatIndex+1) > 0) { 5546 var match = /\%([0-9]*)\[(\^)?(\]?[^\]]*)\]/.exec(format.substring(formatIndex)); 5547 if (match) { 5548 var maxNumCharacters = parseInt(match[1]) || Infinity; 5549 var negateScanList = (match[2] === '^'); 5550 var scanList = match[3]; 5551 5552 // expand "middle" dashs into character sets 5553 var middleDashMatch; 5554 while ((middleDashMatch = /([^\-])\-([^\-])/.exec(scanList))) { 5555 var rangeStartCharCode = middleDashMatch[1].charCodeAt(0); 5556 var rangeEndCharCode = middleDashMatch[2].charCodeAt(0); 5557 for (var expanded = ''; rangeStartCharCode <= rangeEndCharCode; expanded += String.fromCharCode(rangeStartCharCode++)); 5558 scanList = scanList.replace(middleDashMatch[1] + '-' + middleDashMatch[2], expanded); 5559 } 5560 5561 var argPtr = HEAP32[(((varargs)+(argIndex))>>2)]; 5562 argIndex += Runtime.getAlignSize('void*', null, true); 5563 fields++; 5564 5565 for (var i = 0; i < maxNumCharacters; i++) { 5566 next = get(); 5567 if (negateScanList) { 5568 if (scanList.indexOf(String.fromCharCode(next)) < 0) { 5569 HEAP8[((argPtr++)|0)]=next; 5570 } else { 5571 unget(); 5572 break; 5573 } 5574 } else { 5575 if (scanList.indexOf(String.fromCharCode(next)) >= 0) { 5576 HEAP8[((argPtr++)|0)]=next; 5577 } else { 5578 unget(); 5579 break; 5580 } 5581 } 5582 } 5583 5584 // write out null-terminating character 5585 HEAP8[((argPtr++)|0)]=0; 5586 formatIndex += match[0].length; 5587 5588 continue; 5589 } 5590 } 5591 // remove whitespace 5592 while (1) { 5593 next = get(); 5594 if (next == 0) return fields; 5595 if (!(next in __scanString.whiteSpace)) break; 5596 } 5597 unget(); 5598 5599 if (format[formatIndex] === '%') { 5600 formatIndex++; 5601 var suppressAssignment = false; 5602 if (format[formatIndex] == '*') { 5603 suppressAssignment = true; 5604 formatIndex++; 5605 } 5606 var maxSpecifierStart = formatIndex; 5607 while (format[formatIndex].charCodeAt(0) >= 48 && 5608 format[formatIndex].charCodeAt(0) <= 57) { 5609 formatIndex++; 5610 } 5611 var max_; 5612 if (formatIndex != maxSpecifierStart) { 5613 max_ = parseInt(format.slice(maxSpecifierStart, formatIndex), 10); 5614 } 5615 var long_ = false; 5616 var half = false; 5617 var longLong = false; 5618 if (format[formatIndex] == 'l') { 5619 long_ = true; 5620 formatIndex++; 5621 if (format[formatIndex] == 'l') { 5622 longLong = true; 5623 formatIndex++; 5624 } 5625 } else if (format[formatIndex] == 'h') { 5626 half = true; 5627 formatIndex++; 5628 } 5629 var type = format[formatIndex]; 5630 formatIndex++; 5631 var curr = 0; 5632 var buffer = []; 5633 // Read characters according to the format. floats are trickier, they may be in an unfloat state in the middle, then be a valid float later 5634 if (type == 'f' || type == 'e' || type == 'g' || 5635 type == 'F' || type == 'E' || type == 'G') { 5636 next = get(); 5637 while (next > 0 && (!(next in __scanString.whiteSpace))) { 5638 buffer.push(String.fromCharCode(next)); 5639 next = get(); 5640 } 5641 var m = __getFloat(buffer.join('')); 5642 var last = m ? m[0].length : 0; 5643 for (var i = 0; i < buffer.length - last + 1; i++) { 5644 unget(); 5645 } 5646 buffer.length = last; 5647 } else { 5648 next = get(); 5649 var first = true; 5650 5651 // Strip the optional 0x prefix for %x. 5652 if ((type == 'x' || type == 'X') && (next == 48)) { 5653 var peek = get(); 5654 if (peek == 120 || peek == 88) { 5655 next = get(); 5656 } else { 5657 unget(); 5658 } 5659 } 5660 5661 while ((curr < max_ || isNaN(max_)) && next > 0) { 5662 if (!(next in __scanString.whiteSpace) && // stop on whitespace 5663 (type == 's' || 5664 ((type === 'd' || type == 'u' || type == 'i') && ((next >= 48 && next <= 57) || 5665 (first && next == 45))) || 5666 ((type === 'x' || type === 'X') && (next >= 48 && next <= 57 || 5667 next >= 97 && next <= 102 || 5668 next >= 65 && next <= 70))) && 5669 (formatIndex >= format.length || next !== format[formatIndex].charCodeAt(0))) { // Stop when we read something that is coming up 5670 buffer.push(String.fromCharCode(next)); 5671 next = get(); 5672 curr++; 5673 first = false; 5674 } else { 5675 break; 5676 } 5677 } 5678 unget(); 5679 } 5680 if (buffer.length === 0) return 0; // Failure. 5681 if (suppressAssignment) continue; 5682 5683 var text = buffer.join(''); 5684 var argPtr = HEAP32[(((varargs)+(argIndex))>>2)]; 5685 argIndex += Runtime.getAlignSize('void*', null, true); 5686 switch (type) { 5687 case 'd': case 'u': case 'i': 5688 if (half) { 5689 HEAP16[((argPtr)>>1)]=parseInt(text, 10); 5690 } else if (longLong) { 5691 (tempI64 = [parseInt(text, 10)>>>0,(tempDouble=parseInt(text, 10),(+(Math_abs(tempDouble))) >= (+1) ? (tempDouble > (+0) ? ((Math_min((+(Math_floor((tempDouble)/(+4294967296)))), (+4294967295)))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/(+4294967296))))))>>>0) : 0)],HEAP32[((argPtr)>>2)]=tempI64[0],HEAP32[(((argPtr)+(4))>>2)]=tempI64[1]); 5692 } else { 5693 HEAP32[((argPtr)>>2)]=parseInt(text, 10); 5694 } 5695 break; 5696 case 'X': 5697 case 'x': 5698 HEAP32[((argPtr)>>2)]=parseInt(text, 16); 5699 break; 5700 case 'F': 5701 case 'f': 5702 case 'E': 5703 case 'e': 5704 case 'G': 5705 case 'g': 5706 case 'E': 5707 // fallthrough intended 5708 if (long_) { 5709 HEAPF64[((argPtr)>>3)]=parseFloat(text); 5710 } else { 5711 HEAPF32[((argPtr)>>2)]=parseFloat(text); 5712 } 5713 break; 5714 case 's': 5715 var array = intArrayFromString(text); 5716 for (var j = 0; j < array.length; j++) { 5717 HEAP8[(((argPtr)+(j))|0)]=array[j]; 5718 } 5719 break; 5720 } 5721 fields++; 5722 } else if (format[formatIndex].charCodeAt(0) in __scanString.whiteSpace) { 5723 next = get(); 5724 while (next in __scanString.whiteSpace) { 5725 if (next <= 0) break mainLoop; // End of input. 5726 next = get(); 5727 } 5728 unget(next); 5729 formatIndex++; 5730 } else { 5731 // Not a specifier. 5732 next = get(); 5733 if (format[formatIndex].charCodeAt(0) !== next) { 5734 unget(next); 5735 break mainLoop; 5736 } 5737 formatIndex++; 5738 } 5739 } 5740 return fields; 5741 } 5742 5743 function _fgetc(stream) { 5744 // int fgetc(FILE *stream); 5745 // http://pubs.opengroup.org/onlinepubs/000095399/functions/fgetc.html 5746 var streamObj = FS.getStreamFromPtr(stream); 5747 if (!streamObj) return -1; 5748 if (streamObj.eof || streamObj.error) return -1; 5749 var ret = _fread(_fgetc.ret, 1, 1, stream); 5750 if (ret == 0) { 5751 return -1; 5752 } else if (ret == -1) { 5753 streamObj.error = true; 5754 return -1; 5755 } else { 5756 return HEAPU8[((_fgetc.ret)|0)]; 5757 } 5758 } 5759 5760 function _ungetc(c, stream) { 5761 // int ungetc(int c, FILE *stream); 5762 // http://pubs.opengroup.org/onlinepubs/000095399/functions/ungetc.html 5763 stream = FS.getStreamFromPtr(stream); 5764 if (!stream) { 5765 return -1; 5766 } 5767 if (c === -1) { 5768 // do nothing for EOF character 5769 return c; 5770 } 5771 c = unSign(c & 0xFF); 5772 stream.ungotten.push(c); 5773 stream.eof = false; 5774 return c; 5775 }function _fscanf(stream, format, varargs) { 5776 // int fscanf(FILE *restrict stream, const char *restrict format, ... ); 5777 // http://pubs.opengroup.org/onlinepubs/000095399/functions/scanf.html 5778 var streamObj = FS.getStreamFromPtr(stream); 5779 if (!streamObj) { 5780 return -1; 5781 } 5782 var buffer = []; 5783 function get() { 5784 var c = _fgetc(stream); 5785 buffer.push(c); 5786 return c; 5787 }; 5788 function unget() { 5789 _ungetc(buffer.pop(), stream); 5790 }; 5791 return __scanString(format, get, unget, varargs); 5792 } 5793 5794 var _emscripten_preinvoke=true; 5795 5796 function _localeconv() { 5797 // %struct.timeval = type { char* decimal point, other stuff... } 5798 // var indexes = Runtime.calculateStructAlignment({ fields: ['i32', 'i32'] }); 5799 var me = _localeconv; 5800 if (!me.ret) { 5801 // These are defaults from the "C" locale 5802 me.ret = allocate([ 5803 allocate(intArrayFromString('.'), 'i8', ALLOC_NORMAL),0,0,0, // decimal_point 5804 allocate(intArrayFromString(''), 'i8', ALLOC_NORMAL),0,0,0, // thousands_sep 5805 allocate(intArrayFromString(''), 'i8', ALLOC_NORMAL),0,0,0, // grouping 5806 allocate(intArrayFromString(''), 'i8', ALLOC_NORMAL),0,0,0, // int_curr_symbol 5807 allocate(intArrayFromString(''), 'i8', ALLOC_NORMAL),0,0,0, // currency_symbol 5808 allocate(intArrayFromString(''), 'i8', ALLOC_NORMAL),0,0,0, // mon_decimal_point 5809 allocate(intArrayFromString(''), 'i8', ALLOC_NORMAL),0,0,0, // mon_thousands_sep 5810 allocate(intArrayFromString(''), 'i8', ALLOC_NORMAL),0,0,0, // mon_grouping 5811 allocate(intArrayFromString(''), 'i8', ALLOC_NORMAL),0,0,0, // positive_sign 5812 allocate(intArrayFromString(''), 'i8', ALLOC_NORMAL),0,0,0 // negative_sign 5813 ], 'i8*', ALLOC_NORMAL); // Allocate strings in lconv, still don't allocate chars 5814 } 5815 return me.ret; 5816 } 5817 5818 5819 function _unlink(path) { 5820 // int unlink(const char *path); 5821 // http://pubs.opengroup.org/onlinepubs/000095399/functions/unlink.html 5822 path = Pointer_stringify(path); 5823 try { 5824 FS.unlink(path); 5825 return 0; 5826 } catch (e) { 5827 FS.handleFSError(e); 5828 return -1; 5829 } 5830 } 5831 5832 function _rmdir(path) { 5833 // int rmdir(const char *path); 5834 // http://pubs.opengroup.org/onlinepubs/000095399/functions/rmdir.html 5835 path = Pointer_stringify(path); 5836 try { 5837 FS.rmdir(path); 5838 return 0; 5839 } catch (e) { 5840 FS.handleFSError(e); 5841 return -1; 5842 } 5843 }function _remove(path) { 5844 // int remove(const char *path); 5845 // http://pubs.opengroup.org/onlinepubs/000095399/functions/remove.html 5846 var ret = _unlink(path); 5847 if (ret == -1) ret = _rmdir(path); 5848 return ret; 5849 } 5850 5851 function _freopen(filename, mode, stream) { 5852 // FILE *freopen(const char *restrict filename, const char *restrict mode, FILE *restrict stream); 5853 // http://pubs.opengroup.org/onlinepubs/000095399/functions/freopen.html 5854 if (!filename) { 5855 var streamObj = FS.getStreamFromPtr(stream); 5856 if (!streamObj) { 5857 ___setErrNo(ERRNO_CODES.EBADF); 5858 return 0; 5859 } 5860 if (_freopen.buffer) _free(_freopen.buffer); 5861 filename = intArrayFromString(streamObj.path); 5862 filename = allocate(filename, 'i8', ALLOC_NORMAL); 5863 } 5864 _fclose(stream); 5865 return _fopen(filename, mode); 5866 } 5867 5868 5869 function _rename(old_path, new_path) { 5870 // int rename(const char *old, const char *new); 5871 // http://pubs.opengroup.org/onlinepubs/000095399/functions/rename.html 5872 old_path = Pointer_stringify(old_path); 5873 new_path = Pointer_stringify(new_path); 5874 try { 5875 FS.rename(old_path, new_path); 5876 return 0; 5877 } catch (e) { 5878 FS.handleFSError(e); 5879 return -1; 5880 } 5881 } 5882 5883 function _tmpfile() { 5884 // FILE *tmpfile(void); 5885 // http://pubs.opengroup.org/onlinepubs/000095399/functions/tmpfile.html 5886 // TODO: Delete the created file on closing. 5887 if (_tmpfile.mode) { 5888 _tmpfile.mode = allocate(intArrayFromString('w+'), 'i8', ALLOC_NORMAL); 5889 } 5890 return _fopen(_tmpnam(0), _tmpfile.mode); 5891 } 5892 5893 function _sysconf(name) { 5894 // long sysconf(int name); 5895 // http://pubs.opengroup.org/onlinepubs/009695399/functions/sysconf.html 5896 switch(name) { 5897 case 30: return PAGE_SIZE; 5898 case 132: 5899 case 133: 5900 case 12: 5901 case 137: 5902 case 138: 5903 case 15: 5904 case 235: 5905 case 16: 5906 case 17: 5907 case 18: 5908 case 19: 5909 case 20: 5910 case 149: 5911 case 13: 5912 case 10: 5913 case 236: 5914 case 153: 5915 case 9: 5916 case 21: 5917 case 22: 5918 case 159: 5919 case 154: 5920 case 14: 5921 case 77: 5922 case 78: 5923 case 139: 5924 case 80: 5925 case 81: 5926 case 79: 5927 case 82: 5928 case 68: 5929 case 67: 5930 case 164: 5931 case 11: 5932 case 29: 5933 case 47: 5934 case 48: 5935 case 95: 5936 case 52: 5937 case 51: 5938 case 46: 5939 return 200809; 5940 case 27: 5941 case 246: 5942 case 127: 5943 case 128: 5944 case 23: 5945 case 24: 5946 case 160: 5947 case 161: 5948 case 181: 5949 case 182: 5950 case 242: 5951 case 183: 5952 case 184: 5953 case 243: 5954 case 244: 5955 case 245: 5956 case 165: 5957 case 178: 5958 case 179: 5959 case 49: 5960 case 50: 5961 case 168: 5962 case 169: 5963 case 175: 5964 case 170: 5965 case 171: 5966 case 172: 5967 case 97: 5968 case 76: 5969 case 32: 5970 case 173: 5971 case 35: 5972 return -1; 5973 case 176: 5974 case 177: 5975 case 7: 5976 case 155: 5977 case 8: 5978 case 157: 5979 case 125: 5980 case 126: 5981 case 92: 5982 case 93: 5983 case 129: 5984 case 130: 5985 case 131: 5986 case 94: 5987 case 91: 5988 return 1; 5989 case 74: 5990 case 60: 5991 case 69: 5992 case 70: 5993 case 4: 5994 return 1024; 5995 case 31: 5996 case 42: 5997 case 72: 5998 return 32; 5999 case 87: 6000 case 26: 6001 case 33: 6002 return 2147483647; 6003 case 34: 6004 case 1: 6005 return 47839; 6006 case 38: 6007 case 36: 6008 return 99; 6009 case 43: 6010 case 37: 6011 return 2048; 6012 case 0: return 2097152; 6013 case 3: return 65536; 6014 case 28: return 32768; 6015 case 44: return 32767; 6016 case 75: return 16384; 6017 case 39: return 1000; 6018 case 89: return 700; 6019 case 71: return 256; 6020 case 40: return 255; 6021 case 2: return 100; 6022 case 180: return 64; 6023 case 25: return 20; 6024 case 5: return 16; 6025 case 6: return 6; 6026 case 73: return 4; 6027 case 84: return 1; 6028 } 6029 ___setErrNo(ERRNO_CODES.EINVAL); 6030 return -1; 6031 } 6032 6033 6034 function ___errno_location() { 6035 return ___errno_state; 6036 } 6037 6038 6039 Module["_memset"] = _memset; 6040 6041 6042 6043 Module["_bitshift64Shl"] = _bitshift64Shl; 6044 6045 function _abort() { 6046 Module['abort'](); 6047 } 6048 6049 6050 6051 function __reallyNegative(x) { 6052 return x < 0 || (x === 0 && (1/x) === -Infinity); 6053 }function __formatString(format, varargs) { 6054 var textIndex = format; 6055 var argIndex = 0; 6056 function getNextArg(type) { 6057 // NOTE: Explicitly ignoring type safety. Otherwise this fails: 6058 // int x = 4; printf("%c\n", (char)x); 6059 var ret; 6060 if (type === 'double') { 6061 ret = HEAPF64[(((varargs)+(argIndex))>>3)]; 6062 } else if (type == 'i64') { 6063 ret = [HEAP32[(((varargs)+(argIndex))>>2)], 6064 HEAP32[(((varargs)+(argIndex+4))>>2)]]; 6065 6066 } else { 6067 type = 'i32'; // varargs are always i32, i64, or double 6068 ret = HEAP32[(((varargs)+(argIndex))>>2)]; 6069 } 6070 argIndex += Runtime.getNativeFieldSize(type); 6071 return ret; 6072 } 6073 6074 var ret = []; 6075 var curr, next, currArg; 6076 while(1) { 6077 var startTextIndex = textIndex; 6078 curr = HEAP8[(textIndex)]; 6079 if (curr === 0) break; 6080 next = HEAP8[((textIndex+1)|0)]; 6081 if (curr == 37) { 6082 // Handle flags. 6083 var flagAlwaysSigned = false; 6084 var flagLeftAlign = false; 6085 var flagAlternative = false; 6086 var flagZeroPad = false; 6087 var flagPadSign = false; 6088 flagsLoop: while (1) { 6089 switch (next) { 6090 case 43: 6091 flagAlwaysSigned = true; 6092 break; 6093 case 45: 6094 flagLeftAlign = true; 6095 break; 6096 case 35: 6097 flagAlternative = true; 6098 break; 6099 case 48: 6100 if (flagZeroPad) { 6101 break flagsLoop; 6102 } else { 6103 flagZeroPad = true; 6104 break; 6105 } 6106 case 32: 6107 flagPadSign = true; 6108 break; 6109 default: 6110 break flagsLoop; 6111 } 6112 textIndex++; 6113 next = HEAP8[((textIndex+1)|0)]; 6114 } 6115 6116 // Handle width. 6117 var width = 0; 6118 if (next == 42) { 6119 width = getNextArg('i32'); 6120 textIndex++; 6121 next = HEAP8[((textIndex+1)|0)]; 6122 } else { 6123 while (next >= 48 && next <= 57) { 6124 width = width * 10 + (next - 48); 6125 textIndex++; 6126 next = HEAP8[((textIndex+1)|0)]; 6127 } 6128 } 6129 6130 // Handle precision. 6131 var precisionSet = false, precision = -1; 6132 if (next == 46) { 6133 precision = 0; 6134 precisionSet = true; 6135 textIndex++; 6136 next = HEAP8[((textIndex+1)|0)]; 6137 if (next == 42) { 6138 precision = getNextArg('i32'); 6139 textIndex++; 6140 } else { 6141 while(1) { 6142 var precisionChr = HEAP8[((textIndex+1)|0)]; 6143 if (precisionChr < 48 || 6144 precisionChr > 57) break; 6145 precision = precision * 10 + (precisionChr - 48); 6146 textIndex++; 6147 } 6148 } 6149 next = HEAP8[((textIndex+1)|0)]; 6150 } 6151 if (precision < 0) { 6152 precision = 6; // Standard default. 6153 precisionSet = false; 6154 } 6155 6156 // Handle integer sizes. WARNING: These assume a 32-bit architecture! 6157 var argSize; 6158 switch (String.fromCharCode(next)) { 6159 case 'h': 6160 var nextNext = HEAP8[((textIndex+2)|0)]; 6161 if (nextNext == 104) { 6162 textIndex++; 6163 argSize = 1; // char (actually i32 in varargs) 6164 } else { 6165 argSize = 2; // short (actually i32 in varargs) 6166 } 6167 break; 6168 case 'l': 6169 var nextNext = HEAP8[((textIndex+2)|0)]; 6170 if (nextNext == 108) { 6171 textIndex++; 6172 argSize = 8; // long long 6173 } else { 6174 argSize = 4; // long 6175 } 6176 break; 6177 case 'L': // long long 6178 case 'q': // int64_t 6179 case 'j': // intmax_t 6180 argSize = 8; 6181 break; 6182 case 'z': // size_t 6183 case 't': // ptrdiff_t 6184 case 'I': // signed ptrdiff_t or unsigned size_t 6185 argSize = 4; 6186 break; 6187 default: 6188 argSize = null; 6189 } 6190 if (argSize) textIndex++; 6191 next = HEAP8[((textIndex+1)|0)]; 6192 6193 // Handle type specifier. 6194 switch (String.fromCharCode(next)) { 6195 case 'd': case 'i': case 'u': case 'o': case 'x': case 'X': case 'p': { 6196 // Integer. 6197 var signed = next == 100 || next == 105; 6198 argSize = argSize || 4; 6199 var currArg = getNextArg('i' + (argSize * 8)); 6200 var origArg = currArg; 6201 var argText; 6202 // Flatten i64-1 [low, high] into a (slightly rounded) double 6203 if (argSize == 8) { 6204 currArg = Runtime.makeBigInt(currArg[0], currArg[1], next == 117); 6205 } 6206 // Truncate to requested size. 6207 if (argSize <= 4) { 6208 var limit = Math.pow(256, argSize) - 1; 6209 currArg = (signed ? reSign : unSign)(currArg & limit, argSize * 8); 6210 } 6211 // Format the number. 6212 var currAbsArg = Math.abs(currArg); 6213 var prefix = ''; 6214 if (next == 100 || next == 105) { 6215 if (argSize == 8 && i64Math) argText = i64Math.stringify(origArg[0], origArg[1], null); else 6216 argText = reSign(currArg, 8 * argSize, 1).toString(10); 6217 } else if (next == 117) { 6218 if (argSize == 8 && i64Math) argText = i64Math.stringify(origArg[0], origArg[1], true); else 6219 argText = unSign(currArg, 8 * argSize, 1).toString(10); 6220 currArg = Math.abs(currArg); 6221 } else if (next == 111) { 6222 argText = (flagAlternative ? '0' : '') + currAbsArg.toString(8); 6223 } else if (next == 120 || next == 88) { 6224 prefix = (flagAlternative && currArg != 0) ? '0x' : ''; 6225 if (argSize == 8 && i64Math) { 6226 if (origArg[1]) { 6227 argText = (origArg[1]>>>0).toString(16); 6228 var lower = (origArg[0]>>>0).toString(16); 6229 while (lower.length < 8) lower = '0' + lower; 6230 argText += lower; 6231 } else { 6232 argText = (origArg[0]>>>0).toString(16); 6233 } 6234 } else 6235 if (currArg < 0) { 6236 // Represent negative numbers in hex as 2's complement. 6237 currArg = -currArg; 6238 argText = (currAbsArg - 1).toString(16); 6239 var buffer = []; 6240 for (var i = 0; i < argText.length; i++) { 6241 buffer.push((0xF - parseInt(argText[i], 16)).toString(16)); 6242 } 6243 argText = buffer.join(''); 6244 while (argText.length < argSize * 2) argText = 'f' + argText; 6245 } else { 6246 argText = currAbsArg.toString(16); 6247 } 6248 if (next == 88) { 6249 prefix = prefix.toUpperCase(); 6250 argText = argText.toUpperCase(); 6251 } 6252 } else if (next == 112) { 6253 if (currAbsArg === 0) { 6254 argText = '(nil)'; 6255 } else { 6256 prefix = '0x'; 6257 argText = currAbsArg.toString(16); 6258 } 6259 } 6260 if (precisionSet) { 6261 while (argText.length < precision) { 6262 argText = '0' + argText; 6263 } 6264 } 6265 6266 // Add sign if needed 6267 if (currArg >= 0) { 6268 if (flagAlwaysSigned) { 6269 prefix = '+' + prefix; 6270 } else if (flagPadSign) { 6271 prefix = ' ' + prefix; 6272 } 6273 } 6274 6275 // Move sign to prefix so we zero-pad after the sign 6276 if (argText.charAt(0) == '-') { 6277 prefix = '-' + prefix; 6278 argText = argText.substr(1); 6279 } 6280 6281 // Add padding. 6282 while (prefix.length + argText.length < width) { 6283 if (flagLeftAlign) { 6284 argText += ' '; 6285 } else { 6286 if (flagZeroPad) { 6287 argText = '0' + argText; 6288 } else { 6289 prefix = ' ' + prefix; 6290 } 6291 } 6292 } 6293 6294 // Insert the result into the buffer. 6295 argText = prefix + argText; 6296 argText.split('').forEach(function(chr) { 6297 ret.push(chr.charCodeAt(0)); 6298 }); 6299 break; 6300 } 6301 case 'f': case 'F': case 'e': case 'E': case 'g': case 'G': { 6302 // Float. 6303 var currArg = getNextArg('double'); 6304 var argText; 6305 if (isNaN(currArg)) { 6306 argText = 'nan'; 6307 flagZeroPad = false; 6308 } else if (!isFinite(currArg)) { 6309 argText = (currArg < 0 ? '-' : '') + 'inf'; 6310 flagZeroPad = false; 6311 } else { 6312 var isGeneral = false; 6313 var effectivePrecision = Math.min(precision, 20); 6314 6315 // Convert g/G to f/F or e/E, as per: 6316 // http://pubs.opengroup.org/onlinepubs/9699919799/functions/printf.html 6317 if (next == 103 || next == 71) { 6318 isGeneral = true; 6319 precision = precision || 1; 6320 var exponent = parseInt(currArg.toExponential(effectivePrecision).split('e')[1], 10); 6321 if (precision > exponent && exponent >= -4) { 6322 next = ((next == 103) ? 'f' : 'F').charCodeAt(0); 6323 precision -= exponent + 1; 6324 } else { 6325 next = ((next == 103) ? 'e' : 'E').charCodeAt(0); 6326 precision--; 6327 } 6328 effectivePrecision = Math.min(precision, 20); 6329 } 6330 6331 if (next == 101 || next == 69) { 6332 argText = currArg.toExponential(effectivePrecision); 6333 // Make sure the exponent has at least 2 digits. 6334 if (/[eE][-+]\d$/.test(argText)) { 6335 argText = argText.slice(0, -1) + '0' + argText.slice(-1); 6336 } 6337 } else if (next == 102 || next == 70) { 6338 argText = currArg.toFixed(effectivePrecision); 6339 if (currArg === 0 && __reallyNegative(currArg)) { 6340 argText = '-' + argText; 6341 } 6342 } 6343 6344 var parts = argText.split('e'); 6345 if (isGeneral && !flagAlternative) { 6346 // Discard trailing zeros and periods. 6347 while (parts[0].length > 1 && parts[0].indexOf('.') != -1 && 6348 (parts[0].slice(-1) == '0' || parts[0].slice(-1) == '.')) { 6349 parts[0] = parts[0].slice(0, -1); 6350 } 6351 } else { 6352 // Make sure we have a period in alternative mode. 6353 if (flagAlternative && argText.indexOf('.') == -1) parts[0] += '.'; 6354 // Zero pad until required precision. 6355 while (precision > effectivePrecision++) parts[0] += '0'; 6356 } 6357 argText = parts[0] + (parts.length > 1 ? 'e' + parts[1] : ''); 6358 6359 // Capitalize 'E' if needed. 6360 if (next == 69) argText = argText.toUpperCase(); 6361 6362 // Add sign. 6363 if (currArg >= 0) { 6364 if (flagAlwaysSigned) { 6365 argText = '+' + argText; 6366 } else if (flagPadSign) { 6367 argText = ' ' + argText; 6368 } 6369 } 6370 } 6371 6372 // Add padding. 6373 while (argText.length < width) { 6374 if (flagLeftAlign) { 6375 argText += ' '; 6376 } else { 6377 if (flagZeroPad && (argText[0] == '-' || argText[0] == '+')) { 6378 argText = argText[0] + '0' + argText.slice(1); 6379 } else { 6380 argText = (flagZeroPad ? '0' : ' ') + argText; 6381 } 6382 } 6383 } 6384 6385 // Adjust case. 6386 if (next < 97) argText = argText.toUpperCase(); 6387 6388 // Insert the result into the buffer. 6389 argText.split('').forEach(function(chr) { 6390 ret.push(chr.charCodeAt(0)); 6391 }); 6392 break; 6393 } 6394 case 's': { 6395 // String. 6396 var arg = getNextArg('i8*'); 6397 var argLength = arg ? _strlen(arg) : '(null)'.length; 6398 if (precisionSet) argLength = Math.min(argLength, precision); 6399 if (!flagLeftAlign) { 6400 while (argLength < width--) { 6401 ret.push(32); 6402 } 6403 } 6404 if (arg) { 6405 for (var i = 0; i < argLength; i++) { 6406 ret.push(HEAPU8[((arg++)|0)]); 6407 } 6408 } else { 6409 ret = ret.concat(intArrayFromString('(null)'.substr(0, argLength), true)); 6410 } 6411 if (flagLeftAlign) { 6412 while (argLength < width--) { 6413 ret.push(32); 6414 } 6415 } 6416 break; 6417 } 6418 case 'c': { 6419 // Character. 6420 if (flagLeftAlign) ret.push(getNextArg('i8')); 6421 while (--width > 0) { 6422 ret.push(32); 6423 } 6424 if (!flagLeftAlign) ret.push(getNextArg('i8')); 6425 break; 6426 } 6427 case 'n': { 6428 // Write the length written so far to the next parameter. 6429 var ptr = getNextArg('i32*'); 6430 HEAP32[((ptr)>>2)]=ret.length; 6431 break; 6432 } 6433 case '%': { 6434 // Literal percent sign. 6435 ret.push(curr); 6436 break; 6437 } 6438 default: { 6439 // Unknown specifiers remain untouched. 6440 for (var i = startTextIndex; i < textIndex + 2; i++) { 6441 ret.push(HEAP8[(i)]); 6442 } 6443 } 6444 } 6445 textIndex += 2; 6446 // TODO: Support a/A (hex float) and m (last error) specifiers. 6447 // TODO: Support %1${specifier} for arg selection. 6448 } else { 6449 ret.push(curr); 6450 textIndex += 1; 6451 } 6452 } 6453 return ret; 6454 }function _fprintf(stream, format, varargs) { 6455 // int fprintf(FILE *restrict stream, const char *restrict format, ...); 6456 // http://pubs.opengroup.org/onlinepubs/000095399/functions/printf.html 6457 var result = __formatString(format, varargs); 6458 var stack = Runtime.stackSave(); 6459 var ret = _fwrite(allocate(result, 'i8', ALLOC_STACK), 1, result.length, stream); 6460 Runtime.stackRestore(stack); 6461 return ret; 6462 } 6463 6464 function _fgets(s, n, stream) { 6465 // char *fgets(char *restrict s, int n, FILE *restrict stream); 6466 // http://pubs.opengroup.org/onlinepubs/000095399/functions/fgets.html 6467 var streamObj = FS.getStreamFromPtr(stream); 6468 if (!streamObj) return 0; 6469 if (streamObj.error || streamObj.eof) return 0; 6470 var byte_; 6471 for (var i = 0; i < n - 1 && byte_ != 10; i++) { 6472 byte_ = _fgetc(stream); 6473 if (byte_ == -1) { 6474 if (streamObj.error || (streamObj.eof && i == 0)) return 0; 6475 else if (streamObj.eof) break; 6476 } 6477 HEAP8[(((s)+(i))|0)]=byte_; 6478 } 6479 HEAP8[(((s)+(i))|0)]=0; 6480 return s; 6481 } 6482 6483 var _tan=Math_tan; 6484 6485 function _ispunct(chr) { 6486 return (chr >= 33 && chr <= 47) || 6487 (chr >= 58 && chr <= 64) || 6488 (chr >= 91 && chr <= 96) || 6489 (chr >= 123 && chr <= 126); 6490 } 6491 6492 function _feof(stream) { 6493 // int feof(FILE *stream); 6494 // http://pubs.opengroup.org/onlinepubs/000095399/functions/feof.html 6495 stream = FS.getStreamFromPtr(stream); 6496 return Number(stream && stream.eof); 6497 } 6498 6499 6500 Module["_tolower"] = _tolower; 6501 6502 var _asin=Math_asin; 6503 6504 function _clearerr(stream) { 6505 // void clearerr(FILE *stream); 6506 // http://pubs.opengroup.org/onlinepubs/000095399/functions/clearerr.html 6507 stream = FS.getStreamFromPtr(stream); 6508 if (!stream) { 6509 return; 6510 } 6511 stream.eof = false; 6512 stream.error = false; 6513 } 6514 6515 var _fabs=Math_abs; 6516 6517 function _clock() { 6518 if (_clock.start === undefined) _clock.start = Date.now(); 6519 return Math.floor((Date.now() - _clock.start) * (1000000/1000)); 6520 } 6521 6522 6523 var _getc=_fgetc; 6524 6525 function _modf(x, intpart) { 6526 HEAPF64[((intpart)>>3)]=Math.floor(x); 6527 return x - HEAPF64[((intpart)>>3)]; 6528 } 6529 6530 var _sqrt=Math_sqrt; 6531 6532 function _isxdigit(chr) { 6533 return (chr >= 48 && chr <= 57) || 6534 (chr >= 97 && chr <= 102) || 6535 (chr >= 65 && chr <= 70); 6536 } 6537 6538 function _ftell(stream) { 6539 // long ftell(FILE *stream); 6540 // http://pubs.opengroup.org/onlinepubs/000095399/functions/ftell.html 6541 stream = FS.getStreamFromPtr(stream); 6542 if (!stream) { 6543 ___setErrNo(ERRNO_CODES.EBADF); 6544 return -1; 6545 } 6546 if (FS.isChrdev(stream.node.mode)) { 6547 ___setErrNo(ERRNO_CODES.ESPIPE); 6548 return -1; 6549 } else { 6550 return stream.position; 6551 } 6552 } 6553 6554 6555 function __exit(status) { 6556 // void _exit(int status); 6557 // http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html 6558 Module['exit'](status); 6559 }function _exit(status) { 6560 __exit(status); 6561 } 6562 6563 6564 function _snprintf(s, n, format, varargs) { 6565 // int snprintf(char *restrict s, size_t n, const char *restrict format, ...); 6566 // http://pubs.opengroup.org/onlinepubs/000095399/functions/printf.html 6567 var result = __formatString(format, varargs); 6568 var limit = (n === undefined) ? result.length 6569 : Math.min(result.length, Math.max(n - 1, 0)); 6570 if (s < 0) { 6571 s = -s; 6572 var buf = _malloc(limit+1); 6573 HEAP32[((s)>>2)]=buf; 6574 s = buf; 6575 } 6576 for (var i = 0; i < limit; i++) { 6577 HEAP8[(((s)+(i))|0)]=result[i]; 6578 } 6579 if (limit < n || (n === undefined)) HEAP8[(((s)+(i))|0)]=0; 6580 return result.length; 6581 }function _sprintf(s, format, varargs) { 6582 // int sprintf(char *restrict s, const char *restrict format, ...); 6583 // http://pubs.opengroup.org/onlinepubs/000095399/functions/printf.html 6584 return _snprintf(s, undefined, format, varargs); 6585 } 6586 6587 var _emscripten_get_longjmp_result=true; 6588 6589 var _sin=Math_sin; 6590 6591 6592 function _fmod(x, y) { 6593 return x % y; 6594 }var _fmodl=_fmod; 6595 6596 6597 6598 var _atan=Math_atan; 6599 6600 function _ferror(stream) { 6601 // int ferror(FILE *stream); 6602 // http://pubs.opengroup.org/onlinepubs/000095399/functions/ferror.html 6603 stream = FS.getStreamFromPtr(stream); 6604 return Number(stream && stream.error); 6605 } 6606 6607 function _time(ptr) { 6608 var ret = Math.floor(Date.now()/1000); 6609 if (ptr) { 6610 HEAP32[((ptr)>>2)]=ret; 6611 } 6612 return ret; 6613 } 6614 6615 function _copysign(a, b) { 6616 return __reallyNegative(a) === __reallyNegative(b) ? a : -a; 6617 } 6618 6619 6620 function _gmtime_r(time, tmPtr) { 6621 var date = new Date(HEAP32[((time)>>2)]*1000); 6622 HEAP32[((tmPtr)>>2)]=date.getUTCSeconds(); 6623 HEAP32[(((tmPtr)+(4))>>2)]=date.getUTCMinutes(); 6624 HEAP32[(((tmPtr)+(8))>>2)]=date.getUTCHours(); 6625 HEAP32[(((tmPtr)+(12))>>2)]=date.getUTCDate(); 6626 HEAP32[(((tmPtr)+(16))>>2)]=date.getUTCMonth(); 6627 HEAP32[(((tmPtr)+(20))>>2)]=date.getUTCFullYear()-1900; 6628 HEAP32[(((tmPtr)+(24))>>2)]=date.getUTCDay(); 6629 HEAP32[(((tmPtr)+(36))>>2)]=0; 6630 HEAP32[(((tmPtr)+(32))>>2)]=0; 6631 var start = new Date(date); // define date using UTC, start from Jan 01 00:00:00 UTC 6632 start.setUTCDate(1); 6633 start.setUTCMonth(0); 6634 start.setUTCHours(0); 6635 start.setUTCMinutes(0); 6636 start.setUTCSeconds(0); 6637 start.setUTCMilliseconds(0); 6638 var yday = Math.floor((date.getTime() - start.getTime()) / (1000 * 60 * 60 * 24)); 6639 HEAP32[(((tmPtr)+(28))>>2)]=yday; 6640 HEAP32[(((tmPtr)+(40))>>2)]=___tm_timezone; 6641 6642 return tmPtr; 6643 }function _gmtime(time) { 6644 return _gmtime_r(time, ___tm_current); 6645 } 6646 6647 function _isgraph(chr) { 6648 return 0x20 < chr && chr < 0x7F; 6649 } 6650 6651 6652 6653 function _strerror_r(errnum, strerrbuf, buflen) { 6654 if (errnum in ERRNO_MESSAGES) { 6655 if (ERRNO_MESSAGES[errnum].length > buflen - 1) { 6656 return ___setErrNo(ERRNO_CODES.ERANGE); 6657 } else { 6658 var msg = ERRNO_MESSAGES[errnum]; 6659 writeAsciiToMemory(msg, strerrbuf); 6660 return 0; 6661 } 6662 } else { 6663 return ___setErrNo(ERRNO_CODES.EINVAL); 6664 } 6665 }function _strerror(errnum) { 6666 if (!_strerror.buffer) _strerror.buffer = _malloc(256); 6667 _strerror_r(errnum, _strerror.buffer, 256); 6668 return _strerror.buffer; 6669 } 6670 6671 6672 6673 6674 6675 var _environ=allocate(1, "i32*", ALLOC_STATIC);var ___environ=_environ;function ___buildEnvironment(env) { 6676 // WARNING: Arbitrary limit! 6677 var MAX_ENV_VALUES = 64; 6678 var TOTAL_ENV_SIZE = 1024; 6679 6680 // Statically allocate memory for the environment. 6681 var poolPtr; 6682 var envPtr; 6683 if (!___buildEnvironment.called) { 6684 ___buildEnvironment.called = true; 6685 // Set default values. Use string keys for Closure Compiler compatibility. 6686 ENV['USER'] = 'root'; 6687 ENV['PATH'] = '/'; 6688 ENV['PWD'] = '/'; 6689 ENV['HOME'] = '/home/emscripten'; 6690 ENV['LANG'] = 'en_US.UTF-8'; 6691 ENV['_'] = './this.program'; 6692 // Allocate memory. 6693 poolPtr = allocate(TOTAL_ENV_SIZE, 'i8', ALLOC_STATIC); 6694 envPtr = allocate(MAX_ENV_VALUES * 4, 6695 'i8*', ALLOC_STATIC); 6696 HEAP32[((envPtr)>>2)]=poolPtr; 6697 HEAP32[((_environ)>>2)]=envPtr; 6698 } else { 6699 envPtr = HEAP32[((_environ)>>2)]; 6700 poolPtr = HEAP32[((envPtr)>>2)]; 6701 } 6702 6703 // Collect key=value lines. 6704 var strings = []; 6705 var totalSize = 0; 6706 for (var key in env) { 6707 if (typeof env[key] === 'string') { 6708 var line = key + '=' + env[key]; 6709 strings.push(line); 6710 totalSize += line.length; 6711 } 6712 } 6713 if (totalSize > TOTAL_ENV_SIZE) { 6714 throw new Error('Environment size exceeded TOTAL_ENV_SIZE!'); 6715 } 6716 6717 // Make new. 6718 var ptrSize = 4; 6719 for (var i = 0; i < strings.length; i++) { 6720 var line = strings[i]; 6721 writeAsciiToMemory(line, poolPtr); 6722 HEAP32[(((envPtr)+(i * ptrSize))>>2)]=poolPtr; 6723 poolPtr += line.length + 1; 6724 } 6725 HEAP32[(((envPtr)+(strings.length * ptrSize))>>2)]=0; 6726 }var ENV={};function _getenv(name) { 6727 // char *getenv(const char *name); 6728 // http://pubs.opengroup.org/onlinepubs/009695399/functions/getenv.html 6729 if (name === 0) return 0; 6730 name = Pointer_stringify(name); 6731 if (!ENV.hasOwnProperty(name)) return 0; 6732 6733 if (_getenv.ret) _free(_getenv.ret); 6734 _getenv.ret = allocate(intArrayFromString(ENV[name]), 'i8', ALLOC_NORMAL); 6735 return _getenv.ret; 6736 } 6737 6738 var _emscripten_setjmp=true; 6739 6740 var _cos=Math_cos; 6741 6742 function _isalnum(chr) { 6743 return (chr >= 48 && chr <= 57) || 6744 (chr >= 97 && chr <= 122) || 6745 (chr >= 65 && chr <= 90); 6746 } 6747 6748 var _BItoD=true; 6749 6750 function _difftime(time1, time0) { 6751 return time1 - time0; 6752 } 6753 6754 var _floor=Math_floor; 6755 6756 function _iscntrl(chr) { 6757 return (0 <= chr && chr <= 0x1F) || chr === 0x7F; 6758 } 6759 6760 var _atan2=Math_atan2; 6761 6762 function _setvbuf(stream, buf, type, size) { 6763 // int setvbuf(FILE *restrict stream, char *restrict buf, int type, size_t size); 6764 // http://pubs.opengroup.org/onlinepubs/000095399/functions/setvbuf.html 6765 // TODO: Implement custom buffering. 6766 return 0; 6767 } 6768 6769 var _exp=Math_exp; 6770 6771 var _copysignl=_copysign; 6772 6773 function _islower(chr) { 6774 return chr >= 97 && chr <= 122; 6775 } 6776 6777 var _acos=Math_acos; 6778 6779 function _isupper(chr) { 6780 return chr >= 65 && chr <= 90; 6781 } 6782 6783 6784 function __isLeapYear(year) { 6785 return year%4 === 0 && (year%100 !== 0 || year%400 === 0); 6786 } 6787 6788 function __arraySum(array, index) { 6789 var sum = 0; 6790 for (var i = 0; i <= index; sum += array[i++]); 6791 return sum; 6792 } 6793 6794 6795 var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31]; 6796 6797 var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date, days) { 6798 var newDate = new Date(date.getTime()); 6799 while(days > 0) { 6800 var leap = __isLeapYear(newDate.getFullYear()); 6801 var currentMonth = newDate.getMonth(); 6802 var daysInCurrentMonth = (leap ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR)[currentMonth]; 6803 6804 if (days > daysInCurrentMonth-newDate.getDate()) { 6805 // we spill over to next month 6806 days -= (daysInCurrentMonth-newDate.getDate()+1); 6807 newDate.setDate(1); 6808 if (currentMonth < 11) { 6809 newDate.setMonth(currentMonth+1) 6810 } else { 6811 newDate.setMonth(0); 6812 newDate.setFullYear(newDate.getFullYear()+1); 6813 } 6814 } else { 6815 // we stay in current month 6816 newDate.setDate(newDate.getDate()+days); 6817 return newDate; 6818 } 6819 } 6820 6821 return newDate; 6822 }function _strftime(s, maxsize, format, tm) { 6823 // size_t strftime(char *restrict s, size_t maxsize, const char *restrict format, const struct tm *restrict timeptr); 6824 // http://pubs.opengroup.org/onlinepubs/009695399/functions/strftime.html 6825 6826 var date = { 6827 tm_sec: HEAP32[((tm)>>2)], 6828 tm_min: HEAP32[(((tm)+(4))>>2)], 6829 tm_hour: HEAP32[(((tm)+(8))>>2)], 6830 tm_mday: HEAP32[(((tm)+(12))>>2)], 6831 tm_mon: HEAP32[(((tm)+(16))>>2)], 6832 tm_year: HEAP32[(((tm)+(20))>>2)], 6833 tm_wday: HEAP32[(((tm)+(24))>>2)], 6834 tm_yday: HEAP32[(((tm)+(28))>>2)], 6835 tm_isdst: HEAP32[(((tm)+(32))>>2)] 6836 }; 6837 6838 var pattern = Pointer_stringify(format); 6839 6840 // expand format 6841 var EXPANSION_RULES_1 = { 6842 '%c': '%a %b %d %H:%M:%S %Y', // Replaced by the locale's appropriate date and time representation - e.g., Mon Aug 3 14:02:01 2013 6843 '%D': '%m/%d/%y', // Equivalent to %m / %d / %y 6844 '%F': '%Y-%m-%d', // Equivalent to %Y - %m - %d 6845 '%h': '%b', // Equivalent to %b 6846 '%r': '%I:%M:%S %p', // Replaced by the time in a.m. and p.m. notation 6847 '%R': '%H:%M', // Replaced by the time in 24-hour notation 6848 '%T': '%H:%M:%S', // Replaced by the time 6849 '%x': '%m/%d/%y', // Replaced by the locale's appropriate date representation 6850 '%X': '%H:%M:%S', // Replaced by the locale's appropriate date representation 6851 }; 6852 for (var rule in EXPANSION_RULES_1) { 6853 pattern = pattern.replace(new RegExp(rule, 'g'), EXPANSION_RULES_1[rule]); 6854 } 6855 6856 var WEEKDAYS = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']; 6857 var MONTHS = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']; 6858 6859 function leadingSomething(value, digits, character) { 6860 var str = typeof value === 'number' ? value.toString() : (value || ''); 6861 while (str.length < digits) { 6862 str = character[0]+str; 6863 } 6864 return str; 6865 }; 6866 6867 function leadingNulls(value, digits) { 6868 return leadingSomething(value, digits, '0'); 6869 }; 6870 6871 function compareByDay(date1, date2) { 6872 function sgn(value) { 6873 return value < 0 ? -1 : (value > 0 ? 1 : 0); 6874 }; 6875 6876 var compare; 6877 if ((compare = sgn(date1.getFullYear()-date2.getFullYear())) === 0) { 6878 if ((compare = sgn(date1.getMonth()-date2.getMonth())) === 0) { 6879 compare = sgn(date1.getDate()-date2.getDate()); 6880 } 6881 } 6882 return compare; 6883 }; 6884 6885 function getFirstWeekStartDate(janFourth) { 6886 switch (janFourth.getDay()) { 6887 case 0: // Sunday 6888 return new Date(janFourth.getFullYear()-1, 11, 29); 6889 case 1: // Monday 6890 return janFourth; 6891 case 2: // Tuesday 6892 return new Date(janFourth.getFullYear(), 0, 3); 6893 case 3: // Wednesday 6894 return new Date(janFourth.getFullYear(), 0, 2); 6895 case 4: // Thursday 6896 return new Date(janFourth.getFullYear(), 0, 1); 6897 case 5: // Friday 6898 return new Date(janFourth.getFullYear()-1, 11, 31); 6899 case 6: // Saturday 6900 return new Date(janFourth.getFullYear()-1, 11, 30); 6901 } 6902 }; 6903 6904 function getWeekBasedYear(date) { 6905 var thisDate = __addDays(new Date(date.tm_year+1900, 0, 1), date.tm_yday); 6906 6907 var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4); 6908 var janFourthNextYear = new Date(thisDate.getFullYear()+1, 0, 4); 6909 6910 var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear); 6911 var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear); 6912 6913 if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) { 6914 // this date is after the start of the first week of this year 6915 if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) { 6916 return thisDate.getFullYear()+1; 6917 } else { 6918 return thisDate.getFullYear(); 6919 } 6920 } else { 6921 return thisDate.getFullYear()-1; 6922 } 6923 }; 6924 6925 var EXPANSION_RULES_2 = { 6926 '%a': function(date) { 6927 return WEEKDAYS[date.tm_wday].substring(0,3); 6928 }, 6929 '%A': function(date) { 6930 return WEEKDAYS[date.tm_wday]; 6931 }, 6932 '%b': function(date) { 6933 return MONTHS[date.tm_mon].substring(0,3); 6934 }, 6935 '%B': function(date) { 6936 return MONTHS[date.tm_mon]; 6937 }, 6938 '%C': function(date) { 6939 var year = date.tm_year+1900; 6940 return leadingNulls(Math.floor(year/100),2); 6941 }, 6942 '%d': function(date) { 6943 return leadingNulls(date.tm_mday, 2); 6944 }, 6945 '%e': function(date) { 6946 return leadingSomething(date.tm_mday, 2, ' '); 6947 }, 6948 '%g': function(date) { 6949 // %g, %G, and %V give values according to the ISO 8601:2000 standard week-based year. 6950 // In this system, weeks begin on a Monday and week 1 of the year is the week that includes 6951 // January 4th, which is also the week that includes the first Thursday of the year, and 6952 // is also the first week that contains at least four days in the year. 6953 // If the first Monday of January is the 2nd, 3rd, or 4th, the preceding days are part of 6954 // the last week of the preceding year; thus, for Saturday 2nd January 1999, 6955 // %G is replaced by 1998 and %V is replaced by 53. If December 29th, 30th, 6956 // or 31st is a Monday, it and any following days are part of week 1 of the following year. 6957 // Thus, for Tuesday 30th December 1997, %G is replaced by 1998 and %V is replaced by 01. 6958 6959 return getWeekBasedYear(date).toString().substring(2); 6960 }, 6961 '%G': function(date) { 6962 return getWeekBasedYear(date); 6963 }, 6964 '%H': function(date) { 6965 return leadingNulls(date.tm_hour, 2); 6966 }, 6967 '%I': function(date) { 6968 return leadingNulls(date.tm_hour < 13 ? date.tm_hour : date.tm_hour-12, 2); 6969 }, 6970 '%j': function(date) { 6971 // Day of the year (001-366) 6972 return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, date.tm_mon-1), 3); 6973 }, 6974 '%m': function(date) { 6975 return leadingNulls(date.tm_mon+1, 2); 6976 }, 6977 '%M': function(date) { 6978 return leadingNulls(date.tm_min, 2); 6979 }, 6980 '%n': function() { 6981 return '\n'; 6982 }, 6983 '%p': function(date) { 6984 if (date.tm_hour > 0 && date.tm_hour < 13) { 6985 return 'AM'; 6986 } else { 6987 return 'PM'; 6988 } 6989 }, 6990 '%S': function(date) { 6991 return leadingNulls(date.tm_sec, 2); 6992 }, 6993 '%t': function() { 6994 return '\t'; 6995 }, 6996 '%u': function(date) { 6997 var day = new Date(date.tm_year+1900, date.tm_mon+1, date.tm_mday, 0, 0, 0, 0); 6998 return day.getDay() || 7; 6999 }, 7000 '%U': function(date) { 7001 // Replaced by the week number of the year as a decimal number [00,53]. 7002 // The first Sunday of January is the first day of week 1; 7003 // days in the new year before this are in week 0. [ tm_year, tm_wday, tm_yday] 7004 var janFirst = new Date(date.tm_year+1900, 0, 1); 7005 var firstSunday = janFirst.getDay() === 0 ? janFirst : __addDays(janFirst, 7-janFirst.getDay()); 7006 var endDate = new Date(date.tm_year+1900, date.tm_mon, date.tm_mday); 7007 7008 // is target date after the first Sunday? 7009 if (compareByDay(firstSunday, endDate) < 0) { 7010 // calculate difference in days between first Sunday and endDate 7011 var februaryFirstUntilEndMonth = __arraySum(__isLeapYear(endDate.getFullYear()) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, endDate.getMonth()-1)-31; 7012 var firstSundayUntilEndJanuary = 31-firstSunday.getDate(); 7013 var days = firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate(); 7014 return leadingNulls(Math.ceil(days/7), 2); 7015 } 7016 7017 return compareByDay(firstSunday, janFirst) === 0 ? '01': '00'; 7018 }, 7019 '%V': function(date) { 7020 // Replaced by the week number of the year (Monday as the first day of the week) 7021 // as a decimal number [01,53]. If the week containing 1 January has four 7022 // or more days in the new year, then it is considered week 1. 7023 // Otherwise, it is the last week of the previous year, and the next week is week 1. 7024 // Both January 4th and the first Thursday of January are always in week 1. [ tm_year, tm_wday, tm_yday] 7025 var janFourthThisYear = new Date(date.tm_year+1900, 0, 4); 7026 var janFourthNextYear = new Date(date.tm_year+1901, 0, 4); 7027 7028 var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear); 7029 var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear); 7030 7031 var endDate = __addDays(new Date(date.tm_year+1900, 0, 1), date.tm_yday); 7032 7033 if (compareByDay(endDate, firstWeekStartThisYear) < 0) { 7034 // if given date is before this years first week, then it belongs to the 53rd week of last year 7035 return '53'; 7036 } 7037 7038 if (compareByDay(firstWeekStartNextYear, endDate) <= 0) { 7039 // if given date is after next years first week, then it belongs to the 01th week of next year 7040 return '01'; 7041 } 7042 7043 // given date is in between CW 01..53 of this calendar year 7044 var daysDifference; 7045 if (firstWeekStartThisYear.getFullYear() < date.tm_year+1900) { 7046 // first CW of this year starts last year 7047 daysDifference = date.tm_yday+32-firstWeekStartThisYear.getDate() 7048 } else { 7049 // first CW of this year starts this year 7050 daysDifference = date.tm_yday+1-firstWeekStartThisYear.getDate(); 7051 } 7052 return leadingNulls(Math.ceil(daysDifference/7), 2); 7053 }, 7054 '%w': function(date) { 7055 var day = new Date(date.tm_year+1900, date.tm_mon+1, date.tm_mday, 0, 0, 0, 0); 7056 return day.getDay(); 7057 }, 7058 '%W': function(date) { 7059 // Replaced by the week number of the year as a decimal number [00,53]. 7060 // The first Monday of January is the first day of week 1; 7061 // days in the new year before this are in week 0. [ tm_year, tm_wday, tm_yday] 7062 var janFirst = new Date(date.tm_year, 0, 1); 7063 var firstMonday = janFirst.getDay() === 1 ? janFirst : __addDays(janFirst, janFirst.getDay() === 0 ? 1 : 7-janFirst.getDay()+1); 7064 var endDate = new Date(date.tm_year+1900, date.tm_mon, date.tm_mday); 7065 7066 // is target date after the first Monday? 7067 if (compareByDay(firstMonday, endDate) < 0) { 7068 var februaryFirstUntilEndMonth = __arraySum(__isLeapYear(endDate.getFullYear()) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, endDate.getMonth()-1)-31; 7069 var firstMondayUntilEndJanuary = 31-firstMonday.getDate(); 7070 var days = firstMondayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate(); 7071 return leadingNulls(Math.ceil(days/7), 2); 7072 } 7073 return compareByDay(firstMonday, janFirst) === 0 ? '01': '00'; 7074 }, 7075 '%y': function(date) { 7076 // Replaced by the last two digits of the year as a decimal number [00,99]. [ tm_year] 7077 return (date.tm_year+1900).toString().substring(2); 7078 }, 7079 '%Y': function(date) { 7080 // Replaced by the year as a decimal number (for example, 1997). [ tm_year] 7081 return date.tm_year+1900; 7082 }, 7083 '%z': function(date) { 7084 // Replaced by the offset from UTC in the ISO 8601:2000 standard format ( +hhmm or -hhmm ), 7085 // or by no characters if no timezone is determinable. 7086 // For example, "-0430" means 4 hours 30 minutes behind UTC (west of Greenwich). 7087 // If tm_isdst is zero, the standard time offset is used. 7088 // If tm_isdst is greater than zero, the daylight savings time offset is used. 7089 // If tm_isdst is negative, no characters are returned. 7090 // FIXME: we cannot determine time zone (or can we?) 7091 return ''; 7092 }, 7093 '%Z': function(date) { 7094 // Replaced by the timezone name or abbreviation, or by no bytes if no timezone information exists. [ tm_isdst] 7095 // FIXME: we cannot determine time zone (or can we?) 7096 return ''; 7097 }, 7098 '%%': function() { 7099 return '%'; 7100 } 7101 }; 7102 for (var rule in EXPANSION_RULES_2) { 7103 if (pattern.indexOf(rule) >= 0) { 7104 pattern = pattern.replace(new RegExp(rule, 'g'), EXPANSION_RULES_2[rule](date)); 7105 } 7106 } 7107 7108 var bytes = intArrayFromString(pattern, false); 7109 if (bytes.length > maxsize) { 7110 return 0; 7111 } 7112 7113 writeArrayToMemory(bytes, s); 7114 return bytes.length-1; 7115 } 7116 7117 7118 7119 FS.staticInit();__ATINIT__.unshift({ func: function() { if (!Module["noFSInit"] && !FS.init.initialized) FS.init() } });__ATMAIN__.push({ func: function() { FS.ignorePermissions = false } });__ATEXIT__.push({ func: 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; 7120 ___errno_state = Runtime.staticAlloc(4); HEAP32[((___errno_state)>>2)]=0; 7121 __ATINIT__.unshift({ func: function() { TTY.init() } });__ATEXIT__.push({ func: function() { TTY.shutdown() } });TTY.utf8 = new Runtime.UTF8Processor(); 7122 if (ENVIRONMENT_IS_NODE) { var fs = require("fs"); NODEFS.staticInit(); } 7123 __ATINIT__.push({ func: function() { SOCKFS.root = FS.mount(SOCKFS, {}, null); } }); 7124 _fputc.ret = allocate([0], "i8", ALLOC_STATIC); 7125 Module["requestFullScreen"] = function Module_requestFullScreen(lockPointer, resizeCanvas) { Browser.requestFullScreen(lockPointer, resizeCanvas) }; 7126 Module["requestAnimationFrame"] = function Module_requestAnimationFrame(func) { Browser.requestAnimationFrame(func) }; 7127 Module["setCanvasSize"] = function Module_setCanvasSize(width, height, noUpdates) { Browser.setCanvasSize(width, height, noUpdates) }; 7128 Module["pauseMainLoop"] = function Module_pauseMainLoop() { Browser.mainLoop.pause() }; 7129 Module["resumeMainLoop"] = function Module_resumeMainLoop() { Browser.mainLoop.resume() }; 7130 Module["getUserMedia"] = function Module_getUserMedia() { Browser.getUserMedia() } 7131 _fgetc.ret = allocate([0], "i8", ALLOC_STATIC); 7132 ___buildEnvironment(ENV); 7133 STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP); 7134 7135 staticSealed = true; // seal the static portion of memory 7136 7137 STACK_MAX = STACK_BASE + 5242880; 7138 7139 DYNAMIC_BASE = DYNAMICTOP = Runtime.alignMemory(STACK_MAX); 7140 7141 assert(DYNAMIC_BASE < TOTAL_MEMORY, "TOTAL_MEMORY not big enough for stack"); 7142 7143 var ctlz_i8 = allocate([8,7,6,6,5,5,5,5,4,4,4,4,4,4,4,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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_DYNAMIC); 7144 var cttz_i8 = allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0], "i8", ALLOC_DYNAMIC); 7145 7146 var Math_min = Math.min; 7147 function invoke_iiii(index,a1,a2,a3) { 7148 try { 7149 return Module["dynCall_iiii"](index,a1,a2,a3); 7150 } catch(e) { 7151 if (typeof e !== 'number' && e !== 'longjmp') throw e; 7152 asm["setThrew"](1, 0); 7153 } 7154 } 7155 7156 function invoke_vi(index,a1) { 7157 try { 7158 Module["dynCall_vi"](index,a1); 7159 } catch(e) { 7160 if (typeof e !== 'number' && e !== 'longjmp') throw e; 7161 asm["setThrew"](1, 0); 7162 } 7163 } 7164 7165 function invoke_vii(index,a1,a2) { 7166 try { 7167 Module["dynCall_vii"](index,a1,a2); 7168 } catch(e) { 7169 if (typeof e !== 'number' && e !== 'longjmp') throw e; 7170 asm["setThrew"](1, 0); 7171 } 7172 } 7173 7174 function invoke_ii(index,a1) { 7175 try { 7176 return Module["dynCall_ii"](index,a1); 7177 } catch(e) { 7178 if (typeof e !== 'number' && e !== 'longjmp') throw e; 7179 asm["setThrew"](1, 0); 7180 } 7181 } 7182 7183 function invoke_iiiii(index,a1,a2,a3,a4) { 7184 try { 7185 return Module["dynCall_iiiii"](index,a1,a2,a3,a4); 7186 } catch(e) { 7187 if (typeof e !== 'number' && e !== 'longjmp') throw e; 7188 asm["setThrew"](1, 0); 7189 } 7190 } 7191 7192 function invoke_iii(index,a1,a2) { 7193 try { 7194 return Module["dynCall_iii"](index,a1,a2); 7195 } catch(e) { 7196 if (typeof e !== 'number' && e !== 'longjmp') throw e; 7197 asm["setThrew"](1, 0); 7198 } 7199 } 7200 7201 function asmPrintInt(x, y) { 7202 Module.print('int ' + x + ',' + y);// + ' ' + new Error().stack); 7203 } 7204 function asmPrintFloat(x, y) { 7205 Module.print('float ' + x + ',' + y);// + ' ' + new Error().stack); 7206 } 7207 // EMSCRIPTEN_START_ASM 7208 var asm = (function(global, env, buffer) { 7209 'use asm'; 7210 var HEAP8 = new global.Int8Array(buffer); 7211 var HEAP16 = new global.Int16Array(buffer); 7212 var HEAP32 = new global.Int32Array(buffer); 7213 var HEAPU8 = new global.Uint8Array(buffer); 7214 var HEAPU16 = new global.Uint16Array(buffer); 7215 var HEAPU32 = new global.Uint32Array(buffer); 7216 var HEAPF32 = new global.Float32Array(buffer); 7217 var HEAPF64 = new global.Float64Array(buffer); 7218 7219 var STACKTOP=env.STACKTOP|0; 7220 var STACK_MAX=env.STACK_MAX|0; 7221 var tempDoublePtr=env.tempDoublePtr|0; 7222 var ABORT=env.ABORT|0; 7223 var cttz_i8=env.cttz_i8|0; 7224 var ctlz_i8=env.ctlz_i8|0; 7225 var ___rand_seed=env.___rand_seed|0; 7226 var _stderr=env._stderr|0; 7227 var _stdin=env._stdin|0; 7228 var _stdout=env._stdout|0; 7229 7230 var __THREW__ = 0; 7231 var threwValue = 0; 7232 var setjmpId = 0; 7233 var undef = 0; 7234 var nan = +env.NaN, inf = +env.Infinity; 7235 var tempInt = 0, tempBigInt = 0, tempBigIntP = 0, tempBigIntS = 0, tempBigIntR = 0.0, tempBigIntI = 0, tempBigIntD = 0, tempValue = 0, tempDouble = 0.0; 7236 7237 var tempRet0 = 0; 7238 var tempRet1 = 0; 7239 var tempRet2 = 0; 7240 var tempRet3 = 0; 7241 var tempRet4 = 0; 7242 var tempRet5 = 0; 7243 var tempRet6 = 0; 7244 var tempRet7 = 0; 7245 var tempRet8 = 0; 7246 var tempRet9 = 0; 7247 var Math_floor=global.Math.floor; 7248 var Math_abs=global.Math.abs; 7249 var Math_sqrt=global.Math.sqrt; 7250 var Math_pow=global.Math.pow; 7251 var Math_cos=global.Math.cos; 7252 var Math_sin=global.Math.sin; 7253 var Math_tan=global.Math.tan; 7254 var Math_acos=global.Math.acos; 7255 var Math_asin=global.Math.asin; 7256 var Math_atan=global.Math.atan; 7257 var Math_atan2=global.Math.atan2; 7258 var Math_exp=global.Math.exp; 7259 var Math_log=global.Math.log; 7260 var Math_ceil=global.Math.ceil; 7261 var Math_imul=global.Math.imul; 7262 var abort=env.abort; 7263 var assert=env.assert; 7264 var asmPrintInt=env.asmPrintInt; 7265 var asmPrintFloat=env.asmPrintFloat; 7266 var Math_min=env.min; 7267 var invoke_iiii=env.invoke_iiii; 7268 var invoke_vi=env.invoke_vi; 7269 var invoke_vii=env.invoke_vii; 7270 var invoke_ii=env.invoke_ii; 7271 var invoke_iiiii=env.invoke_iiiii; 7272 var invoke_iii=env.invoke_iii; 7273 var _isalnum=env._isalnum; 7274 var _fabs=env._fabs; 7275 var _frexp=env._frexp; 7276 var _exp=env._exp; 7277 var _fread=env._fread; 7278 var __reallyNegative=env.__reallyNegative; 7279 var _longjmp=env._longjmp; 7280 var __addDays=env.__addDays; 7281 var _fsync=env._fsync; 7282 var _signal=env._signal; 7283 var _rename=env._rename; 7284 var _sbrk=env._sbrk; 7285 var _emscripten_memcpy_big=env._emscripten_memcpy_big; 7286 var _sinh=env._sinh; 7287 var _sysconf=env._sysconf; 7288 var _close=env._close; 7289 var _ferror=env._ferror; 7290 var _clock=env._clock; 7291 var _cos=env._cos; 7292 var _tanh=env._tanh; 7293 var _unlink=env._unlink; 7294 var _write=env._write; 7295 var __isLeapYear=env.__isLeapYear; 7296 var _ftell=env._ftell; 7297 var _isupper=env._isupper; 7298 var _gmtime_r=env._gmtime_r; 7299 var _islower=env._islower; 7300 var _tmpnam=env._tmpnam; 7301 var _tmpfile=env._tmpfile; 7302 var _send=env._send; 7303 var _abort=env._abort; 7304 var _setvbuf=env._setvbuf; 7305 var _atan2=env._atan2; 7306 var _setlocale=env._setlocale; 7307 var _isgraph=env._isgraph; 7308 var _modf=env._modf; 7309 var _strerror_r=env._strerror_r; 7310 var _fscanf=env._fscanf; 7311 var ___setErrNo=env.___setErrNo; 7312 var _isalpha=env._isalpha; 7313 var _srand=env._srand; 7314 var _mktime=env._mktime; 7315 var _putchar=env._putchar; 7316 var _gmtime=env._gmtime; 7317 var _localeconv=env._localeconv; 7318 var _sprintf=env._sprintf; 7319 var _localtime=env._localtime; 7320 var _read=env._read; 7321 var _fwrite=env._fwrite; 7322 var _time=env._time; 7323 var _fprintf=env._fprintf; 7324 var _exit=env._exit; 7325 var _freopen=env._freopen; 7326 var _llvm_pow_f64=env._llvm_pow_f64; 7327 var _fgetc=env._fgetc; 7328 var _fmod=env._fmod; 7329 var _lseek=env._lseek; 7330 var _rmdir=env._rmdir; 7331 var _asin=env._asin; 7332 var _floor=env._floor; 7333 var _pwrite=env._pwrite; 7334 var _localtime_r=env._localtime_r; 7335 var _tzset=env._tzset; 7336 var _open=env._open; 7337 var _remove=env._remove; 7338 var _snprintf=env._snprintf; 7339 var __scanString=env.__scanString; 7340 var _strftime=env._strftime; 7341 var _fseek=env._fseek; 7342 var _iscntrl=env._iscntrl; 7343 var _isxdigit=env._isxdigit; 7344 var _fclose=env._fclose; 7345 var _log=env._log; 7346 var _recv=env._recv; 7347 var _tan=env._tan; 7348 var _copysign=env._copysign; 7349 var __getFloat=env.__getFloat; 7350 var _fputc=env._fputc; 7351 var _ispunct=env._ispunct; 7352 var _ceil=env._ceil; 7353 var _isspace=env._isspace; 7354 var _fopen=env._fopen; 7355 var _sin=env._sin; 7356 var _acos=env._acos; 7357 var _cosh=env._cosh; 7358 var ___buildEnvironment=env.___buildEnvironment; 7359 var _difftime=env._difftime; 7360 var _ungetc=env._ungetc; 7361 var _system=env._system; 7362 var _fflush=env._fflush; 7363 var _log10=env._log10; 7364 var _fileno=env._fileno; 7365 var __exit=env.__exit; 7366 var __arraySum=env.__arraySum; 7367 var _fgets=env._fgets; 7368 var _atan=env._atan; 7369 var _pread=env._pread; 7370 var _mkport=env._mkport; 7371 var _toupper=env._toupper; 7372 var _feof=env._feof; 7373 var ___errno_location=env.___errno_location; 7374 var _clearerr=env._clearerr; 7375 var _getenv=env._getenv; 7376 var _strerror=env._strerror; 7377 var _emscripten_longjmp=env._emscripten_longjmp; 7378 var __formatString=env.__formatString; 7379 var _fputs=env._fputs; 7380 var _sqrt=env._sqrt; 7381 var tempFloat = 0.0; 7382 7383 // EMSCRIPTEN_START_FUNCS 7384 function _malloc(i12) { 7385 i12 = i12 | 0; 7386 var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0; 7387 i1 = STACKTOP; 7388 do { 7389 if (i12 >>> 0 < 245) { 7390 if (i12 >>> 0 < 11) { 7391 i12 = 16; 7392 } else { 7393 i12 = i12 + 11 & -8; 7394 } 7395 i20 = i12 >>> 3; 7396 i18 = HEAP32[3228] | 0; 7397 i21 = i18 >>> i20; 7398 if ((i21 & 3 | 0) != 0) { 7399 i6 = (i21 & 1 ^ 1) + i20 | 0; 7400 i5 = i6 << 1; 7401 i3 = 12952 + (i5 << 2) | 0; 7402 i5 = 12952 + (i5 + 2 << 2) | 0; 7403 i7 = HEAP32[i5 >> 2] | 0; 7404 i2 = i7 + 8 | 0; 7405 i4 = HEAP32[i2 >> 2] | 0; 7406 do { 7407 if ((i3 | 0) != (i4 | 0)) { 7408 if (i4 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 7409 _abort(); 7410 } 7411 i8 = i4 + 12 | 0; 7412 if ((HEAP32[i8 >> 2] | 0) == (i7 | 0)) { 7413 HEAP32[i8 >> 2] = i3; 7414 HEAP32[i5 >> 2] = i4; 7415 break; 7416 } else { 7417 _abort(); 7418 } 7419 } else { 7420 HEAP32[3228] = i18 & ~(1 << i6); 7421 } 7422 } while (0); 7423 i32 = i6 << 3; 7424 HEAP32[i7 + 4 >> 2] = i32 | 3; 7425 i32 = i7 + (i32 | 4) | 0; 7426 HEAP32[i32 >> 2] = HEAP32[i32 >> 2] | 1; 7427 i32 = i2; 7428 STACKTOP = i1; 7429 return i32 | 0; 7430 } 7431 if (i12 >>> 0 > (HEAP32[12920 >> 2] | 0) >>> 0) { 7432 if ((i21 | 0) != 0) { 7433 i7 = 2 << i20; 7434 i7 = i21 << i20 & (i7 | 0 - i7); 7435 i7 = (i7 & 0 - i7) + -1 | 0; 7436 i2 = i7 >>> 12 & 16; 7437 i7 = i7 >>> i2; 7438 i6 = i7 >>> 5 & 8; 7439 i7 = i7 >>> i6; 7440 i5 = i7 >>> 2 & 4; 7441 i7 = i7 >>> i5; 7442 i4 = i7 >>> 1 & 2; 7443 i7 = i7 >>> i4; 7444 i3 = i7 >>> 1 & 1; 7445 i3 = (i6 | i2 | i5 | i4 | i3) + (i7 >>> i3) | 0; 7446 i7 = i3 << 1; 7447 i4 = 12952 + (i7 << 2) | 0; 7448 i7 = 12952 + (i7 + 2 << 2) | 0; 7449 i5 = HEAP32[i7 >> 2] | 0; 7450 i2 = i5 + 8 | 0; 7451 i6 = HEAP32[i2 >> 2] | 0; 7452 do { 7453 if ((i4 | 0) != (i6 | 0)) { 7454 if (i6 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 7455 _abort(); 7456 } 7457 i8 = i6 + 12 | 0; 7458 if ((HEAP32[i8 >> 2] | 0) == (i5 | 0)) { 7459 HEAP32[i8 >> 2] = i4; 7460 HEAP32[i7 >> 2] = i6; 7461 break; 7462 } else { 7463 _abort(); 7464 } 7465 } else { 7466 HEAP32[3228] = i18 & ~(1 << i3); 7467 } 7468 } while (0); 7469 i6 = i3 << 3; 7470 i4 = i6 - i12 | 0; 7471 HEAP32[i5 + 4 >> 2] = i12 | 3; 7472 i3 = i5 + i12 | 0; 7473 HEAP32[i5 + (i12 | 4) >> 2] = i4 | 1; 7474 HEAP32[i5 + i6 >> 2] = i4; 7475 i6 = HEAP32[12920 >> 2] | 0; 7476 if ((i6 | 0) != 0) { 7477 i5 = HEAP32[12932 >> 2] | 0; 7478 i8 = i6 >>> 3; 7479 i9 = i8 << 1; 7480 i6 = 12952 + (i9 << 2) | 0; 7481 i7 = HEAP32[3228] | 0; 7482 i8 = 1 << i8; 7483 if ((i7 & i8 | 0) != 0) { 7484 i7 = 12952 + (i9 + 2 << 2) | 0; 7485 i8 = HEAP32[i7 >> 2] | 0; 7486 if (i8 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 7487 _abort(); 7488 } else { 7489 i28 = i7; 7490 i27 = i8; 7491 } 7492 } else { 7493 HEAP32[3228] = i7 | i8; 7494 i28 = 12952 + (i9 + 2 << 2) | 0; 7495 i27 = i6; 7496 } 7497 HEAP32[i28 >> 2] = i5; 7498 HEAP32[i27 + 12 >> 2] = i5; 7499 HEAP32[i5 + 8 >> 2] = i27; 7500 HEAP32[i5 + 12 >> 2] = i6; 7501 } 7502 HEAP32[12920 >> 2] = i4; 7503 HEAP32[12932 >> 2] = i3; 7504 i32 = i2; 7505 STACKTOP = i1; 7506 return i32 | 0; 7507 } 7508 i18 = HEAP32[12916 >> 2] | 0; 7509 if ((i18 | 0) != 0) { 7510 i2 = (i18 & 0 - i18) + -1 | 0; 7511 i31 = i2 >>> 12 & 16; 7512 i2 = i2 >>> i31; 7513 i30 = i2 >>> 5 & 8; 7514 i2 = i2 >>> i30; 7515 i32 = i2 >>> 2 & 4; 7516 i2 = i2 >>> i32; 7517 i6 = i2 >>> 1 & 2; 7518 i2 = i2 >>> i6; 7519 i3 = i2 >>> 1 & 1; 7520 i3 = HEAP32[13216 + ((i30 | i31 | i32 | i6 | i3) + (i2 >>> i3) << 2) >> 2] | 0; 7521 i2 = (HEAP32[i3 + 4 >> 2] & -8) - i12 | 0; 7522 i6 = i3; 7523 while (1) { 7524 i5 = HEAP32[i6 + 16 >> 2] | 0; 7525 if ((i5 | 0) == 0) { 7526 i5 = HEAP32[i6 + 20 >> 2] | 0; 7527 if ((i5 | 0) == 0) { 7528 break; 7529 } 7530 } 7531 i6 = (HEAP32[i5 + 4 >> 2] & -8) - i12 | 0; 7532 i4 = i6 >>> 0 < i2 >>> 0; 7533 i2 = i4 ? i6 : i2; 7534 i6 = i5; 7535 i3 = i4 ? i5 : i3; 7536 } 7537 i6 = HEAP32[12928 >> 2] | 0; 7538 if (i3 >>> 0 < i6 >>> 0) { 7539 _abort(); 7540 } 7541 i4 = i3 + i12 | 0; 7542 if (!(i3 >>> 0 < i4 >>> 0)) { 7543 _abort(); 7544 } 7545 i5 = HEAP32[i3 + 24 >> 2] | 0; 7546 i7 = HEAP32[i3 + 12 >> 2] | 0; 7547 do { 7548 if ((i7 | 0) == (i3 | 0)) { 7549 i8 = i3 + 20 | 0; 7550 i7 = HEAP32[i8 >> 2] | 0; 7551 if ((i7 | 0) == 0) { 7552 i8 = i3 + 16 | 0; 7553 i7 = HEAP32[i8 >> 2] | 0; 7554 if ((i7 | 0) == 0) { 7555 i26 = 0; 7556 break; 7557 } 7558 } 7559 while (1) { 7560 i10 = i7 + 20 | 0; 7561 i9 = HEAP32[i10 >> 2] | 0; 7562 if ((i9 | 0) != 0) { 7563 i7 = i9; 7564 i8 = i10; 7565 continue; 7566 } 7567 i10 = i7 + 16 | 0; 7568 i9 = HEAP32[i10 >> 2] | 0; 7569 if ((i9 | 0) == 0) { 7570 break; 7571 } else { 7572 i7 = i9; 7573 i8 = i10; 7574 } 7575 } 7576 if (i8 >>> 0 < i6 >>> 0) { 7577 _abort(); 7578 } else { 7579 HEAP32[i8 >> 2] = 0; 7580 i26 = i7; 7581 break; 7582 } 7583 } else { 7584 i8 = HEAP32[i3 + 8 >> 2] | 0; 7585 if (i8 >>> 0 < i6 >>> 0) { 7586 _abort(); 7587 } 7588 i6 = i8 + 12 | 0; 7589 if ((HEAP32[i6 >> 2] | 0) != (i3 | 0)) { 7590 _abort(); 7591 } 7592 i9 = i7 + 8 | 0; 7593 if ((HEAP32[i9 >> 2] | 0) == (i3 | 0)) { 7594 HEAP32[i6 >> 2] = i7; 7595 HEAP32[i9 >> 2] = i8; 7596 i26 = i7; 7597 break; 7598 } else { 7599 _abort(); 7600 } 7601 } 7602 } while (0); 7603 do { 7604 if ((i5 | 0) != 0) { 7605 i7 = HEAP32[i3 + 28 >> 2] | 0; 7606 i6 = 13216 + (i7 << 2) | 0; 7607 if ((i3 | 0) == (HEAP32[i6 >> 2] | 0)) { 7608 HEAP32[i6 >> 2] = i26; 7609 if ((i26 | 0) == 0) { 7610 HEAP32[12916 >> 2] = HEAP32[12916 >> 2] & ~(1 << i7); 7611 break; 7612 } 7613 } else { 7614 if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 7615 _abort(); 7616 } 7617 i6 = i5 + 16 | 0; 7618 if ((HEAP32[i6 >> 2] | 0) == (i3 | 0)) { 7619 HEAP32[i6 >> 2] = i26; 7620 } else { 7621 HEAP32[i5 + 20 >> 2] = i26; 7622 } 7623 if ((i26 | 0) == 0) { 7624 break; 7625 } 7626 } 7627 if (i26 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 7628 _abort(); 7629 } 7630 HEAP32[i26 + 24 >> 2] = i5; 7631 i5 = HEAP32[i3 + 16 >> 2] | 0; 7632 do { 7633 if ((i5 | 0) != 0) { 7634 if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 7635 _abort(); 7636 } else { 7637 HEAP32[i26 + 16 >> 2] = i5; 7638 HEAP32[i5 + 24 >> 2] = i26; 7639 break; 7640 } 7641 } 7642 } while (0); 7643 i5 = HEAP32[i3 + 20 >> 2] | 0; 7644 if ((i5 | 0) != 0) { 7645 if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 7646 _abort(); 7647 } else { 7648 HEAP32[i26 + 20 >> 2] = i5; 7649 HEAP32[i5 + 24 >> 2] = i26; 7650 break; 7651 } 7652 } 7653 } 7654 } while (0); 7655 if (i2 >>> 0 < 16) { 7656 i32 = i2 + i12 | 0; 7657 HEAP32[i3 + 4 >> 2] = i32 | 3; 7658 i32 = i3 + (i32 + 4) | 0; 7659 HEAP32[i32 >> 2] = HEAP32[i32 >> 2] | 1; 7660 } else { 7661 HEAP32[i3 + 4 >> 2] = i12 | 3; 7662 HEAP32[i3 + (i12 | 4) >> 2] = i2 | 1; 7663 HEAP32[i3 + (i2 + i12) >> 2] = i2; 7664 i6 = HEAP32[12920 >> 2] | 0; 7665 if ((i6 | 0) != 0) { 7666 i5 = HEAP32[12932 >> 2] | 0; 7667 i8 = i6 >>> 3; 7668 i9 = i8 << 1; 7669 i6 = 12952 + (i9 << 2) | 0; 7670 i7 = HEAP32[3228] | 0; 7671 i8 = 1 << i8; 7672 if ((i7 & i8 | 0) != 0) { 7673 i7 = 12952 + (i9 + 2 << 2) | 0; 7674 i8 = HEAP32[i7 >> 2] | 0; 7675 if (i8 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 7676 _abort(); 7677 } else { 7678 i25 = i7; 7679 i24 = i8; 7680 } 7681 } else { 7682 HEAP32[3228] = i7 | i8; 7683 i25 = 12952 + (i9 + 2 << 2) | 0; 7684 i24 = i6; 7685 } 7686 HEAP32[i25 >> 2] = i5; 7687 HEAP32[i24 + 12 >> 2] = i5; 7688 HEAP32[i5 + 8 >> 2] = i24; 7689 HEAP32[i5 + 12 >> 2] = i6; 7690 } 7691 HEAP32[12920 >> 2] = i2; 7692 HEAP32[12932 >> 2] = i4; 7693 } 7694 i32 = i3 + 8 | 0; 7695 STACKTOP = i1; 7696 return i32 | 0; 7697 } 7698 } 7699 } else { 7700 if (!(i12 >>> 0 > 4294967231)) { 7701 i24 = i12 + 11 | 0; 7702 i12 = i24 & -8; 7703 i26 = HEAP32[12916 >> 2] | 0; 7704 if ((i26 | 0) != 0) { 7705 i25 = 0 - i12 | 0; 7706 i24 = i24 >>> 8; 7707 if ((i24 | 0) != 0) { 7708 if (i12 >>> 0 > 16777215) { 7709 i27 = 31; 7710 } else { 7711 i31 = (i24 + 1048320 | 0) >>> 16 & 8; 7712 i32 = i24 << i31; 7713 i30 = (i32 + 520192 | 0) >>> 16 & 4; 7714 i32 = i32 << i30; 7715 i27 = (i32 + 245760 | 0) >>> 16 & 2; 7716 i27 = 14 - (i30 | i31 | i27) + (i32 << i27 >>> 15) | 0; 7717 i27 = i12 >>> (i27 + 7 | 0) & 1 | i27 << 1; 7718 } 7719 } else { 7720 i27 = 0; 7721 } 7722 i30 = HEAP32[13216 + (i27 << 2) >> 2] | 0; 7723 L126 : do { 7724 if ((i30 | 0) == 0) { 7725 i29 = 0; 7726 i24 = 0; 7727 } else { 7728 if ((i27 | 0) == 31) { 7729 i24 = 0; 7730 } else { 7731 i24 = 25 - (i27 >>> 1) | 0; 7732 } 7733 i29 = 0; 7734 i28 = i12 << i24; 7735 i24 = 0; 7736 while (1) { 7737 i32 = HEAP32[i30 + 4 >> 2] & -8; 7738 i31 = i32 - i12 | 0; 7739 if (i31 >>> 0 < i25 >>> 0) { 7740 if ((i32 | 0) == (i12 | 0)) { 7741 i25 = i31; 7742 i29 = i30; 7743 i24 = i30; 7744 break L126; 7745 } else { 7746 i25 = i31; 7747 i24 = i30; 7748 } 7749 } 7750 i31 = HEAP32[i30 + 20 >> 2] | 0; 7751 i30 = HEAP32[i30 + (i28 >>> 31 << 2) + 16 >> 2] | 0; 7752 i29 = (i31 | 0) == 0 | (i31 | 0) == (i30 | 0) ? i29 : i31; 7753 if ((i30 | 0) == 0) { 7754 break; 7755 } else { 7756 i28 = i28 << 1; 7757 } 7758 } 7759 } 7760 } while (0); 7761 if ((i29 | 0) == 0 & (i24 | 0) == 0) { 7762 i32 = 2 << i27; 7763 i26 = i26 & (i32 | 0 - i32); 7764 if ((i26 | 0) == 0) { 7765 break; 7766 } 7767 i32 = (i26 & 0 - i26) + -1 | 0; 7768 i28 = i32 >>> 12 & 16; 7769 i32 = i32 >>> i28; 7770 i27 = i32 >>> 5 & 8; 7771 i32 = i32 >>> i27; 7772 i30 = i32 >>> 2 & 4; 7773 i32 = i32 >>> i30; 7774 i31 = i32 >>> 1 & 2; 7775 i32 = i32 >>> i31; 7776 i29 = i32 >>> 1 & 1; 7777 i29 = HEAP32[13216 + ((i27 | i28 | i30 | i31 | i29) + (i32 >>> i29) << 2) >> 2] | 0; 7778 } 7779 if ((i29 | 0) != 0) { 7780 while (1) { 7781 i27 = (HEAP32[i29 + 4 >> 2] & -8) - i12 | 0; 7782 i26 = i27 >>> 0 < i25 >>> 0; 7783 i25 = i26 ? i27 : i25; 7784 i24 = i26 ? i29 : i24; 7785 i26 = HEAP32[i29 + 16 >> 2] | 0; 7786 if ((i26 | 0) != 0) { 7787 i29 = i26; 7788 continue; 7789 } 7790 i29 = HEAP32[i29 + 20 >> 2] | 0; 7791 if ((i29 | 0) == 0) { 7792 break; 7793 } 7794 } 7795 } 7796 if ((i24 | 0) != 0 ? i25 >>> 0 < ((HEAP32[12920 >> 2] | 0) - i12 | 0) >>> 0 : 0) { 7797 i4 = HEAP32[12928 >> 2] | 0; 7798 if (i24 >>> 0 < i4 >>> 0) { 7799 _abort(); 7800 } 7801 i2 = i24 + i12 | 0; 7802 if (!(i24 >>> 0 < i2 >>> 0)) { 7803 _abort(); 7804 } 7805 i3 = HEAP32[i24 + 24 >> 2] | 0; 7806 i6 = HEAP32[i24 + 12 >> 2] | 0; 7807 do { 7808 if ((i6 | 0) == (i24 | 0)) { 7809 i6 = i24 + 20 | 0; 7810 i5 = HEAP32[i6 >> 2] | 0; 7811 if ((i5 | 0) == 0) { 7812 i6 = i24 + 16 | 0; 7813 i5 = HEAP32[i6 >> 2] | 0; 7814 if ((i5 | 0) == 0) { 7815 i22 = 0; 7816 break; 7817 } 7818 } 7819 while (1) { 7820 i8 = i5 + 20 | 0; 7821 i7 = HEAP32[i8 >> 2] | 0; 7822 if ((i7 | 0) != 0) { 7823 i5 = i7; 7824 i6 = i8; 7825 continue; 7826 } 7827 i7 = i5 + 16 | 0; 7828 i8 = HEAP32[i7 >> 2] | 0; 7829 if ((i8 | 0) == 0) { 7830 break; 7831 } else { 7832 i5 = i8; 7833 i6 = i7; 7834 } 7835 } 7836 if (i6 >>> 0 < i4 >>> 0) { 7837 _abort(); 7838 } else { 7839 HEAP32[i6 >> 2] = 0; 7840 i22 = i5; 7841 break; 7842 } 7843 } else { 7844 i5 = HEAP32[i24 + 8 >> 2] | 0; 7845 if (i5 >>> 0 < i4 >>> 0) { 7846 _abort(); 7847 } 7848 i7 = i5 + 12 | 0; 7849 if ((HEAP32[i7 >> 2] | 0) != (i24 | 0)) { 7850 _abort(); 7851 } 7852 i4 = i6 + 8 | 0; 7853 if ((HEAP32[i4 >> 2] | 0) == (i24 | 0)) { 7854 HEAP32[i7 >> 2] = i6; 7855 HEAP32[i4 >> 2] = i5; 7856 i22 = i6; 7857 break; 7858 } else { 7859 _abort(); 7860 } 7861 } 7862 } while (0); 7863 do { 7864 if ((i3 | 0) != 0) { 7865 i4 = HEAP32[i24 + 28 >> 2] | 0; 7866 i5 = 13216 + (i4 << 2) | 0; 7867 if ((i24 | 0) == (HEAP32[i5 >> 2] | 0)) { 7868 HEAP32[i5 >> 2] = i22; 7869 if ((i22 | 0) == 0) { 7870 HEAP32[12916 >> 2] = HEAP32[12916 >> 2] & ~(1 << i4); 7871 break; 7872 } 7873 } else { 7874 if (i3 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 7875 _abort(); 7876 } 7877 i4 = i3 + 16 | 0; 7878 if ((HEAP32[i4 >> 2] | 0) == (i24 | 0)) { 7879 HEAP32[i4 >> 2] = i22; 7880 } else { 7881 HEAP32[i3 + 20 >> 2] = i22; 7882 } 7883 if ((i22 | 0) == 0) { 7884 break; 7885 } 7886 } 7887 if (i22 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 7888 _abort(); 7889 } 7890 HEAP32[i22 + 24 >> 2] = i3; 7891 i3 = HEAP32[i24 + 16 >> 2] | 0; 7892 do { 7893 if ((i3 | 0) != 0) { 7894 if (i3 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 7895 _abort(); 7896 } else { 7897 HEAP32[i22 + 16 >> 2] = i3; 7898 HEAP32[i3 + 24 >> 2] = i22; 7899 break; 7900 } 7901 } 7902 } while (0); 7903 i3 = HEAP32[i24 + 20 >> 2] | 0; 7904 if ((i3 | 0) != 0) { 7905 if (i3 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 7906 _abort(); 7907 } else { 7908 HEAP32[i22 + 20 >> 2] = i3; 7909 HEAP32[i3 + 24 >> 2] = i22; 7910 break; 7911 } 7912 } 7913 } 7914 } while (0); 7915 L204 : do { 7916 if (!(i25 >>> 0 < 16)) { 7917 HEAP32[i24 + 4 >> 2] = i12 | 3; 7918 HEAP32[i24 + (i12 | 4) >> 2] = i25 | 1; 7919 HEAP32[i24 + (i25 + i12) >> 2] = i25; 7920 i4 = i25 >>> 3; 7921 if (i25 >>> 0 < 256) { 7922 i6 = i4 << 1; 7923 i3 = 12952 + (i6 << 2) | 0; 7924 i5 = HEAP32[3228] | 0; 7925 i4 = 1 << i4; 7926 if ((i5 & i4 | 0) != 0) { 7927 i5 = 12952 + (i6 + 2 << 2) | 0; 7928 i4 = HEAP32[i5 >> 2] | 0; 7929 if (i4 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 7930 _abort(); 7931 } else { 7932 i21 = i5; 7933 i20 = i4; 7934 } 7935 } else { 7936 HEAP32[3228] = i5 | i4; 7937 i21 = 12952 + (i6 + 2 << 2) | 0; 7938 i20 = i3; 7939 } 7940 HEAP32[i21 >> 2] = i2; 7941 HEAP32[i20 + 12 >> 2] = i2; 7942 HEAP32[i24 + (i12 + 8) >> 2] = i20; 7943 HEAP32[i24 + (i12 + 12) >> 2] = i3; 7944 break; 7945 } 7946 i3 = i25 >>> 8; 7947 if ((i3 | 0) != 0) { 7948 if (i25 >>> 0 > 16777215) { 7949 i3 = 31; 7950 } else { 7951 i31 = (i3 + 1048320 | 0) >>> 16 & 8; 7952 i32 = i3 << i31; 7953 i30 = (i32 + 520192 | 0) >>> 16 & 4; 7954 i32 = i32 << i30; 7955 i3 = (i32 + 245760 | 0) >>> 16 & 2; 7956 i3 = 14 - (i30 | i31 | i3) + (i32 << i3 >>> 15) | 0; 7957 i3 = i25 >>> (i3 + 7 | 0) & 1 | i3 << 1; 7958 } 7959 } else { 7960 i3 = 0; 7961 } 7962 i6 = 13216 + (i3 << 2) | 0; 7963 HEAP32[i24 + (i12 + 28) >> 2] = i3; 7964 HEAP32[i24 + (i12 + 20) >> 2] = 0; 7965 HEAP32[i24 + (i12 + 16) >> 2] = 0; 7966 i4 = HEAP32[12916 >> 2] | 0; 7967 i5 = 1 << i3; 7968 if ((i4 & i5 | 0) == 0) { 7969 HEAP32[12916 >> 2] = i4 | i5; 7970 HEAP32[i6 >> 2] = i2; 7971 HEAP32[i24 + (i12 + 24) >> 2] = i6; 7972 HEAP32[i24 + (i12 + 12) >> 2] = i2; 7973 HEAP32[i24 + (i12 + 8) >> 2] = i2; 7974 break; 7975 } 7976 i4 = HEAP32[i6 >> 2] | 0; 7977 if ((i3 | 0) == 31) { 7978 i3 = 0; 7979 } else { 7980 i3 = 25 - (i3 >>> 1) | 0; 7981 } 7982 L225 : do { 7983 if ((HEAP32[i4 + 4 >> 2] & -8 | 0) != (i25 | 0)) { 7984 i3 = i25 << i3; 7985 while (1) { 7986 i6 = i4 + (i3 >>> 31 << 2) + 16 | 0; 7987 i5 = HEAP32[i6 >> 2] | 0; 7988 if ((i5 | 0) == 0) { 7989 break; 7990 } 7991 if ((HEAP32[i5 + 4 >> 2] & -8 | 0) == (i25 | 0)) { 7992 i18 = i5; 7993 break L225; 7994 } else { 7995 i3 = i3 << 1; 7996 i4 = i5; 7997 } 7998 } 7999 if (i6 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 8000 _abort(); 8001 } else { 8002 HEAP32[i6 >> 2] = i2; 8003 HEAP32[i24 + (i12 + 24) >> 2] = i4; 8004 HEAP32[i24 + (i12 + 12) >> 2] = i2; 8005 HEAP32[i24 + (i12 + 8) >> 2] = i2; 8006 break L204; 8007 } 8008 } else { 8009 i18 = i4; 8010 } 8011 } while (0); 8012 i4 = i18 + 8 | 0; 8013 i3 = HEAP32[i4 >> 2] | 0; 8014 i5 = HEAP32[12928 >> 2] | 0; 8015 if (i18 >>> 0 < i5 >>> 0) { 8016 _abort(); 8017 } 8018 if (i3 >>> 0 < i5 >>> 0) { 8019 _abort(); 8020 } else { 8021 HEAP32[i3 + 12 >> 2] = i2; 8022 HEAP32[i4 >> 2] = i2; 8023 HEAP32[i24 + (i12 + 8) >> 2] = i3; 8024 HEAP32[i24 + (i12 + 12) >> 2] = i18; 8025 HEAP32[i24 + (i12 + 24) >> 2] = 0; 8026 break; 8027 } 8028 } else { 8029 i32 = i25 + i12 | 0; 8030 HEAP32[i24 + 4 >> 2] = i32 | 3; 8031 i32 = i24 + (i32 + 4) | 0; 8032 HEAP32[i32 >> 2] = HEAP32[i32 >> 2] | 1; 8033 } 8034 } while (0); 8035 i32 = i24 + 8 | 0; 8036 STACKTOP = i1; 8037 return i32 | 0; 8038 } 8039 } 8040 } else { 8041 i12 = -1; 8042 } 8043 } 8044 } while (0); 8045 i18 = HEAP32[12920 >> 2] | 0; 8046 if (!(i12 >>> 0 > i18 >>> 0)) { 8047 i3 = i18 - i12 | 0; 8048 i2 = HEAP32[12932 >> 2] | 0; 8049 if (i3 >>> 0 > 15) { 8050 HEAP32[12932 >> 2] = i2 + i12; 8051 HEAP32[12920 >> 2] = i3; 8052 HEAP32[i2 + (i12 + 4) >> 2] = i3 | 1; 8053 HEAP32[i2 + i18 >> 2] = i3; 8054 HEAP32[i2 + 4 >> 2] = i12 | 3; 8055 } else { 8056 HEAP32[12920 >> 2] = 0; 8057 HEAP32[12932 >> 2] = 0; 8058 HEAP32[i2 + 4 >> 2] = i18 | 3; 8059 i32 = i2 + (i18 + 4) | 0; 8060 HEAP32[i32 >> 2] = HEAP32[i32 >> 2] | 1; 8061 } 8062 i32 = i2 + 8 | 0; 8063 STACKTOP = i1; 8064 return i32 | 0; 8065 } 8066 i18 = HEAP32[12924 >> 2] | 0; 8067 if (i12 >>> 0 < i18 >>> 0) { 8068 i31 = i18 - i12 | 0; 8069 HEAP32[12924 >> 2] = i31; 8070 i32 = HEAP32[12936 >> 2] | 0; 8071 HEAP32[12936 >> 2] = i32 + i12; 8072 HEAP32[i32 + (i12 + 4) >> 2] = i31 | 1; 8073 HEAP32[i32 + 4 >> 2] = i12 | 3; 8074 i32 = i32 + 8 | 0; 8075 STACKTOP = i1; 8076 return i32 | 0; 8077 } 8078 do { 8079 if ((HEAP32[3346] | 0) == 0) { 8080 i18 = _sysconf(30) | 0; 8081 if ((i18 + -1 & i18 | 0) == 0) { 8082 HEAP32[13392 >> 2] = i18; 8083 HEAP32[13388 >> 2] = i18; 8084 HEAP32[13396 >> 2] = -1; 8085 HEAP32[13400 >> 2] = -1; 8086 HEAP32[13404 >> 2] = 0; 8087 HEAP32[13356 >> 2] = 0; 8088 HEAP32[3346] = (_time(0) | 0) & -16 ^ 1431655768; 8089 break; 8090 } else { 8091 _abort(); 8092 } 8093 } 8094 } while (0); 8095 i20 = i12 + 48 | 0; 8096 i25 = HEAP32[13392 >> 2] | 0; 8097 i21 = i12 + 47 | 0; 8098 i22 = i25 + i21 | 0; 8099 i25 = 0 - i25 | 0; 8100 i18 = i22 & i25; 8101 if (!(i18 >>> 0 > i12 >>> 0)) { 8102 i32 = 0; 8103 STACKTOP = i1; 8104 return i32 | 0; 8105 } 8106 i24 = HEAP32[13352 >> 2] | 0; 8107 if ((i24 | 0) != 0 ? (i31 = HEAP32[13344 >> 2] | 0, i32 = i31 + i18 | 0, i32 >>> 0 <= i31 >>> 0 | i32 >>> 0 > i24 >>> 0) : 0) { 8108 i32 = 0; 8109 STACKTOP = i1; 8110 return i32 | 0; 8111 } 8112 L269 : do { 8113 if ((HEAP32[13356 >> 2] & 4 | 0) == 0) { 8114 i26 = HEAP32[12936 >> 2] | 0; 8115 L271 : do { 8116 if ((i26 | 0) != 0) { 8117 i24 = 13360 | 0; 8118 while (1) { 8119 i27 = HEAP32[i24 >> 2] | 0; 8120 if (!(i27 >>> 0 > i26 >>> 0) ? (i23 = i24 + 4 | 0, (i27 + (HEAP32[i23 >> 2] | 0) | 0) >>> 0 > i26 >>> 0) : 0) { 8121 break; 8122 } 8123 i24 = HEAP32[i24 + 8 >> 2] | 0; 8124 if ((i24 | 0) == 0) { 8125 i13 = 182; 8126 break L271; 8127 } 8128 } 8129 if ((i24 | 0) != 0) { 8130 i25 = i22 - (HEAP32[12924 >> 2] | 0) & i25; 8131 if (i25 >>> 0 < 2147483647) { 8132 i13 = _sbrk(i25 | 0) | 0; 8133 i26 = (i13 | 0) == ((HEAP32[i24 >> 2] | 0) + (HEAP32[i23 >> 2] | 0) | 0); 8134 i22 = i13; 8135 i24 = i25; 8136 i23 = i26 ? i13 : -1; 8137 i25 = i26 ? i25 : 0; 8138 i13 = 191; 8139 } else { 8140 i25 = 0; 8141 } 8142 } else { 8143 i13 = 182; 8144 } 8145 } else { 8146 i13 = 182; 8147 } 8148 } while (0); 8149 do { 8150 if ((i13 | 0) == 182) { 8151 i23 = _sbrk(0) | 0; 8152 if ((i23 | 0) != (-1 | 0)) { 8153 i24 = i23; 8154 i22 = HEAP32[13388 >> 2] | 0; 8155 i25 = i22 + -1 | 0; 8156 if ((i25 & i24 | 0) == 0) { 8157 i25 = i18; 8158 } else { 8159 i25 = i18 - i24 + (i25 + i24 & 0 - i22) | 0; 8160 } 8161 i24 = HEAP32[13344 >> 2] | 0; 8162 i26 = i24 + i25 | 0; 8163 if (i25 >>> 0 > i12 >>> 0 & i25 >>> 0 < 2147483647) { 8164 i22 = HEAP32[13352 >> 2] | 0; 8165 if ((i22 | 0) != 0 ? i26 >>> 0 <= i24 >>> 0 | i26 >>> 0 > i22 >>> 0 : 0) { 8166 i25 = 0; 8167 break; 8168 } 8169 i22 = _sbrk(i25 | 0) | 0; 8170 i13 = (i22 | 0) == (i23 | 0); 8171 i24 = i25; 8172 i23 = i13 ? i23 : -1; 8173 i25 = i13 ? i25 : 0; 8174 i13 = 191; 8175 } else { 8176 i25 = 0; 8177 } 8178 } else { 8179 i25 = 0; 8180 } 8181 } 8182 } while (0); 8183 L291 : do { 8184 if ((i13 | 0) == 191) { 8185 i13 = 0 - i24 | 0; 8186 if ((i23 | 0) != (-1 | 0)) { 8187 i17 = i23; 8188 i14 = i25; 8189 i13 = 202; 8190 break L269; 8191 } 8192 do { 8193 if ((i22 | 0) != (-1 | 0) & i24 >>> 0 < 2147483647 & i24 >>> 0 < i20 >>> 0 ? (i19 = HEAP32[13392 >> 2] | 0, i19 = i21 - i24 + i19 & 0 - i19, i19 >>> 0 < 2147483647) : 0) { 8194 if ((_sbrk(i19 | 0) | 0) == (-1 | 0)) { 8195 _sbrk(i13 | 0) | 0; 8196 break L291; 8197 } else { 8198 i24 = i19 + i24 | 0; 8199 break; 8200 } 8201 } 8202 } while (0); 8203 if ((i22 | 0) != (-1 | 0)) { 8204 i17 = i22; 8205 i14 = i24; 8206 i13 = 202; 8207 break L269; 8208 } 8209 } 8210 } while (0); 8211 HEAP32[13356 >> 2] = HEAP32[13356 >> 2] | 4; 8212 i13 = 199; 8213 } else { 8214 i25 = 0; 8215 i13 = 199; 8216 } 8217 } while (0); 8218 if ((((i13 | 0) == 199 ? i18 >>> 0 < 2147483647 : 0) ? (i17 = _sbrk(i18 | 0) | 0, i16 = _sbrk(0) | 0, (i16 | 0) != (-1 | 0) & (i17 | 0) != (-1 | 0) & i17 >>> 0 < i16 >>> 0) : 0) ? (i15 = i16 - i17 | 0, i14 = i15 >>> 0 > (i12 + 40 | 0) >>> 0, i14) : 0) { 8219 i14 = i14 ? i15 : i25; 8220 i13 = 202; 8221 } 8222 if ((i13 | 0) == 202) { 8223 i15 = (HEAP32[13344 >> 2] | 0) + i14 | 0; 8224 HEAP32[13344 >> 2] = i15; 8225 if (i15 >>> 0 > (HEAP32[13348 >> 2] | 0) >>> 0) { 8226 HEAP32[13348 >> 2] = i15; 8227 } 8228 i15 = HEAP32[12936 >> 2] | 0; 8229 L311 : do { 8230 if ((i15 | 0) != 0) { 8231 i21 = 13360 | 0; 8232 while (1) { 8233 i16 = HEAP32[i21 >> 2] | 0; 8234 i19 = i21 + 4 | 0; 8235 i20 = HEAP32[i19 >> 2] | 0; 8236 if ((i17 | 0) == (i16 + i20 | 0)) { 8237 i13 = 214; 8238 break; 8239 } 8240 i18 = HEAP32[i21 + 8 >> 2] | 0; 8241 if ((i18 | 0) == 0) { 8242 break; 8243 } else { 8244 i21 = i18; 8245 } 8246 } 8247 if (((i13 | 0) == 214 ? (HEAP32[i21 + 12 >> 2] & 8 | 0) == 0 : 0) ? i15 >>> 0 >= i16 >>> 0 & i15 >>> 0 < i17 >>> 0 : 0) { 8248 HEAP32[i19 >> 2] = i20 + i14; 8249 i2 = (HEAP32[12924 >> 2] | 0) + i14 | 0; 8250 i3 = i15 + 8 | 0; 8251 if ((i3 & 7 | 0) == 0) { 8252 i3 = 0; 8253 } else { 8254 i3 = 0 - i3 & 7; 8255 } 8256 i32 = i2 - i3 | 0; 8257 HEAP32[12936 >> 2] = i15 + i3; 8258 HEAP32[12924 >> 2] = i32; 8259 HEAP32[i15 + (i3 + 4) >> 2] = i32 | 1; 8260 HEAP32[i15 + (i2 + 4) >> 2] = 40; 8261 HEAP32[12940 >> 2] = HEAP32[13400 >> 2]; 8262 break; 8263 } 8264 if (i17 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 8265 HEAP32[12928 >> 2] = i17; 8266 } 8267 i19 = i17 + i14 | 0; 8268 i16 = 13360 | 0; 8269 while (1) { 8270 if ((HEAP32[i16 >> 2] | 0) == (i19 | 0)) { 8271 i13 = 224; 8272 break; 8273 } 8274 i18 = HEAP32[i16 + 8 >> 2] | 0; 8275 if ((i18 | 0) == 0) { 8276 break; 8277 } else { 8278 i16 = i18; 8279 } 8280 } 8281 if ((i13 | 0) == 224 ? (HEAP32[i16 + 12 >> 2] & 8 | 0) == 0 : 0) { 8282 HEAP32[i16 >> 2] = i17; 8283 i6 = i16 + 4 | 0; 8284 HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + i14; 8285 i6 = i17 + 8 | 0; 8286 if ((i6 & 7 | 0) == 0) { 8287 i6 = 0; 8288 } else { 8289 i6 = 0 - i6 & 7; 8290 } 8291 i7 = i17 + (i14 + 8) | 0; 8292 if ((i7 & 7 | 0) == 0) { 8293 i13 = 0; 8294 } else { 8295 i13 = 0 - i7 & 7; 8296 } 8297 i15 = i17 + (i13 + i14) | 0; 8298 i8 = i6 + i12 | 0; 8299 i7 = i17 + i8 | 0; 8300 i10 = i15 - (i17 + i6) - i12 | 0; 8301 HEAP32[i17 + (i6 + 4) >> 2] = i12 | 3; 8302 L348 : do { 8303 if ((i15 | 0) != (HEAP32[12936 >> 2] | 0)) { 8304 if ((i15 | 0) == (HEAP32[12932 >> 2] | 0)) { 8305 i32 = (HEAP32[12920 >> 2] | 0) + i10 | 0; 8306 HEAP32[12920 >> 2] = i32; 8307 HEAP32[12932 >> 2] = i7; 8308 HEAP32[i17 + (i8 + 4) >> 2] = i32 | 1; 8309 HEAP32[i17 + (i32 + i8) >> 2] = i32; 8310 break; 8311 } 8312 i12 = i14 + 4 | 0; 8313 i18 = HEAP32[i17 + (i12 + i13) >> 2] | 0; 8314 if ((i18 & 3 | 0) == 1) { 8315 i11 = i18 & -8; 8316 i16 = i18 >>> 3; 8317 do { 8318 if (!(i18 >>> 0 < 256)) { 8319 i9 = HEAP32[i17 + ((i13 | 24) + i14) >> 2] | 0; 8320 i19 = HEAP32[i17 + (i14 + 12 + i13) >> 2] | 0; 8321 do { 8322 if ((i19 | 0) == (i15 | 0)) { 8323 i19 = i13 | 16; 8324 i18 = i17 + (i12 + i19) | 0; 8325 i16 = HEAP32[i18 >> 2] | 0; 8326 if ((i16 | 0) == 0) { 8327 i18 = i17 + (i19 + i14) | 0; 8328 i16 = HEAP32[i18 >> 2] | 0; 8329 if ((i16 | 0) == 0) { 8330 i5 = 0; 8331 break; 8332 } 8333 } 8334 while (1) { 8335 i20 = i16 + 20 | 0; 8336 i19 = HEAP32[i20 >> 2] | 0; 8337 if ((i19 | 0) != 0) { 8338 i16 = i19; 8339 i18 = i20; 8340 continue; 8341 } 8342 i19 = i16 + 16 | 0; 8343 i20 = HEAP32[i19 >> 2] | 0; 8344 if ((i20 | 0) == 0) { 8345 break; 8346 } else { 8347 i16 = i20; 8348 i18 = i19; 8349 } 8350 } 8351 if (i18 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 8352 _abort(); 8353 } else { 8354 HEAP32[i18 >> 2] = 0; 8355 i5 = i16; 8356 break; 8357 } 8358 } else { 8359 i18 = HEAP32[i17 + ((i13 | 8) + i14) >> 2] | 0; 8360 if (i18 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 8361 _abort(); 8362 } 8363 i16 = i18 + 12 | 0; 8364 if ((HEAP32[i16 >> 2] | 0) != (i15 | 0)) { 8365 _abort(); 8366 } 8367 i20 = i19 + 8 | 0; 8368 if ((HEAP32[i20 >> 2] | 0) == (i15 | 0)) { 8369 HEAP32[i16 >> 2] = i19; 8370 HEAP32[i20 >> 2] = i18; 8371 i5 = i19; 8372 break; 8373 } else { 8374 _abort(); 8375 } 8376 } 8377 } while (0); 8378 if ((i9 | 0) != 0) { 8379 i16 = HEAP32[i17 + (i14 + 28 + i13) >> 2] | 0; 8380 i18 = 13216 + (i16 << 2) | 0; 8381 if ((i15 | 0) == (HEAP32[i18 >> 2] | 0)) { 8382 HEAP32[i18 >> 2] = i5; 8383 if ((i5 | 0) == 0) { 8384 HEAP32[12916 >> 2] = HEAP32[12916 >> 2] & ~(1 << i16); 8385 break; 8386 } 8387 } else { 8388 if (i9 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 8389 _abort(); 8390 } 8391 i16 = i9 + 16 | 0; 8392 if ((HEAP32[i16 >> 2] | 0) == (i15 | 0)) { 8393 HEAP32[i16 >> 2] = i5; 8394 } else { 8395 HEAP32[i9 + 20 >> 2] = i5; 8396 } 8397 if ((i5 | 0) == 0) { 8398 break; 8399 } 8400 } 8401 if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 8402 _abort(); 8403 } 8404 HEAP32[i5 + 24 >> 2] = i9; 8405 i15 = i13 | 16; 8406 i9 = HEAP32[i17 + (i15 + i14) >> 2] | 0; 8407 do { 8408 if ((i9 | 0) != 0) { 8409 if (i9 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 8410 _abort(); 8411 } else { 8412 HEAP32[i5 + 16 >> 2] = i9; 8413 HEAP32[i9 + 24 >> 2] = i5; 8414 break; 8415 } 8416 } 8417 } while (0); 8418 i9 = HEAP32[i17 + (i12 + i15) >> 2] | 0; 8419 if ((i9 | 0) != 0) { 8420 if (i9 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 8421 _abort(); 8422 } else { 8423 HEAP32[i5 + 20 >> 2] = i9; 8424 HEAP32[i9 + 24 >> 2] = i5; 8425 break; 8426 } 8427 } 8428 } 8429 } else { 8430 i5 = HEAP32[i17 + ((i13 | 8) + i14) >> 2] | 0; 8431 i12 = HEAP32[i17 + (i14 + 12 + i13) >> 2] | 0; 8432 i18 = 12952 + (i16 << 1 << 2) | 0; 8433 if ((i5 | 0) != (i18 | 0)) { 8434 if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 8435 _abort(); 8436 } 8437 if ((HEAP32[i5 + 12 >> 2] | 0) != (i15 | 0)) { 8438 _abort(); 8439 } 8440 } 8441 if ((i12 | 0) == (i5 | 0)) { 8442 HEAP32[3228] = HEAP32[3228] & ~(1 << i16); 8443 break; 8444 } 8445 if ((i12 | 0) != (i18 | 0)) { 8446 if (i12 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 8447 _abort(); 8448 } 8449 i16 = i12 + 8 | 0; 8450 if ((HEAP32[i16 >> 2] | 0) == (i15 | 0)) { 8451 i9 = i16; 8452 } else { 8453 _abort(); 8454 } 8455 } else { 8456 i9 = i12 + 8 | 0; 8457 } 8458 HEAP32[i5 + 12 >> 2] = i12; 8459 HEAP32[i9 >> 2] = i5; 8460 } 8461 } while (0); 8462 i15 = i17 + ((i11 | i13) + i14) | 0; 8463 i10 = i11 + i10 | 0; 8464 } 8465 i5 = i15 + 4 | 0; 8466 HEAP32[i5 >> 2] = HEAP32[i5 >> 2] & -2; 8467 HEAP32[i17 + (i8 + 4) >> 2] = i10 | 1; 8468 HEAP32[i17 + (i10 + i8) >> 2] = i10; 8469 i5 = i10 >>> 3; 8470 if (i10 >>> 0 < 256) { 8471 i10 = i5 << 1; 8472 i2 = 12952 + (i10 << 2) | 0; 8473 i9 = HEAP32[3228] | 0; 8474 i5 = 1 << i5; 8475 if ((i9 & i5 | 0) != 0) { 8476 i9 = 12952 + (i10 + 2 << 2) | 0; 8477 i5 = HEAP32[i9 >> 2] | 0; 8478 if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 8479 _abort(); 8480 } else { 8481 i3 = i9; 8482 i4 = i5; 8483 } 8484 } else { 8485 HEAP32[3228] = i9 | i5; 8486 i3 = 12952 + (i10 + 2 << 2) | 0; 8487 i4 = i2; 8488 } 8489 HEAP32[i3 >> 2] = i7; 8490 HEAP32[i4 + 12 >> 2] = i7; 8491 HEAP32[i17 + (i8 + 8) >> 2] = i4; 8492 HEAP32[i17 + (i8 + 12) >> 2] = i2; 8493 break; 8494 } 8495 i3 = i10 >>> 8; 8496 if ((i3 | 0) != 0) { 8497 if (i10 >>> 0 > 16777215) { 8498 i3 = 31; 8499 } else { 8500 i31 = (i3 + 1048320 | 0) >>> 16 & 8; 8501 i32 = i3 << i31; 8502 i30 = (i32 + 520192 | 0) >>> 16 & 4; 8503 i32 = i32 << i30; 8504 i3 = (i32 + 245760 | 0) >>> 16 & 2; 8505 i3 = 14 - (i30 | i31 | i3) + (i32 << i3 >>> 15) | 0; 8506 i3 = i10 >>> (i3 + 7 | 0) & 1 | i3 << 1; 8507 } 8508 } else { 8509 i3 = 0; 8510 } 8511 i4 = 13216 + (i3 << 2) | 0; 8512 HEAP32[i17 + (i8 + 28) >> 2] = i3; 8513 HEAP32[i17 + (i8 + 20) >> 2] = 0; 8514 HEAP32[i17 + (i8 + 16) >> 2] = 0; 8515 i9 = HEAP32[12916 >> 2] | 0; 8516 i5 = 1 << i3; 8517 if ((i9 & i5 | 0) == 0) { 8518 HEAP32[12916 >> 2] = i9 | i5; 8519 HEAP32[i4 >> 2] = i7; 8520 HEAP32[i17 + (i8 + 24) >> 2] = i4; 8521 HEAP32[i17 + (i8 + 12) >> 2] = i7; 8522 HEAP32[i17 + (i8 + 8) >> 2] = i7; 8523 break; 8524 } 8525 i4 = HEAP32[i4 >> 2] | 0; 8526 if ((i3 | 0) == 31) { 8527 i3 = 0; 8528 } else { 8529 i3 = 25 - (i3 >>> 1) | 0; 8530 } 8531 L445 : do { 8532 if ((HEAP32[i4 + 4 >> 2] & -8 | 0) != (i10 | 0)) { 8533 i3 = i10 << i3; 8534 while (1) { 8535 i5 = i4 + (i3 >>> 31 << 2) + 16 | 0; 8536 i9 = HEAP32[i5 >> 2] | 0; 8537 if ((i9 | 0) == 0) { 8538 break; 8539 } 8540 if ((HEAP32[i9 + 4 >> 2] & -8 | 0) == (i10 | 0)) { 8541 i2 = i9; 8542 break L445; 8543 } else { 8544 i3 = i3 << 1; 8545 i4 = i9; 8546 } 8547 } 8548 if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 8549 _abort(); 8550 } else { 8551 HEAP32[i5 >> 2] = i7; 8552 HEAP32[i17 + (i8 + 24) >> 2] = i4; 8553 HEAP32[i17 + (i8 + 12) >> 2] = i7; 8554 HEAP32[i17 + (i8 + 8) >> 2] = i7; 8555 break L348; 8556 } 8557 } else { 8558 i2 = i4; 8559 } 8560 } while (0); 8561 i4 = i2 + 8 | 0; 8562 i3 = HEAP32[i4 >> 2] | 0; 8563 i5 = HEAP32[12928 >> 2] | 0; 8564 if (i2 >>> 0 < i5 >>> 0) { 8565 _abort(); 8566 } 8567 if (i3 >>> 0 < i5 >>> 0) { 8568 _abort(); 8569 } else { 8570 HEAP32[i3 + 12 >> 2] = i7; 8571 HEAP32[i4 >> 2] = i7; 8572 HEAP32[i17 + (i8 + 8) >> 2] = i3; 8573 HEAP32[i17 + (i8 + 12) >> 2] = i2; 8574 HEAP32[i17 + (i8 + 24) >> 2] = 0; 8575 break; 8576 } 8577 } else { 8578 i32 = (HEAP32[12924 >> 2] | 0) + i10 | 0; 8579 HEAP32[12924 >> 2] = i32; 8580 HEAP32[12936 >> 2] = i7; 8581 HEAP32[i17 + (i8 + 4) >> 2] = i32 | 1; 8582 } 8583 } while (0); 8584 i32 = i17 + (i6 | 8) | 0; 8585 STACKTOP = i1; 8586 return i32 | 0; 8587 } 8588 i3 = 13360 | 0; 8589 while (1) { 8590 i2 = HEAP32[i3 >> 2] | 0; 8591 if (!(i2 >>> 0 > i15 >>> 0) ? (i11 = HEAP32[i3 + 4 >> 2] | 0, i10 = i2 + i11 | 0, i10 >>> 0 > i15 >>> 0) : 0) { 8592 break; 8593 } 8594 i3 = HEAP32[i3 + 8 >> 2] | 0; 8595 } 8596 i3 = i2 + (i11 + -39) | 0; 8597 if ((i3 & 7 | 0) == 0) { 8598 i3 = 0; 8599 } else { 8600 i3 = 0 - i3 & 7; 8601 } 8602 i2 = i2 + (i11 + -47 + i3) | 0; 8603 i2 = i2 >>> 0 < (i15 + 16 | 0) >>> 0 ? i15 : i2; 8604 i3 = i2 + 8 | 0; 8605 i4 = i17 + 8 | 0; 8606 if ((i4 & 7 | 0) == 0) { 8607 i4 = 0; 8608 } else { 8609 i4 = 0 - i4 & 7; 8610 } 8611 i32 = i14 + -40 - i4 | 0; 8612 HEAP32[12936 >> 2] = i17 + i4; 8613 HEAP32[12924 >> 2] = i32; 8614 HEAP32[i17 + (i4 + 4) >> 2] = i32 | 1; 8615 HEAP32[i17 + (i14 + -36) >> 2] = 40; 8616 HEAP32[12940 >> 2] = HEAP32[13400 >> 2]; 8617 HEAP32[i2 + 4 >> 2] = 27; 8618 HEAP32[i3 + 0 >> 2] = HEAP32[13360 >> 2]; 8619 HEAP32[i3 + 4 >> 2] = HEAP32[13364 >> 2]; 8620 HEAP32[i3 + 8 >> 2] = HEAP32[13368 >> 2]; 8621 HEAP32[i3 + 12 >> 2] = HEAP32[13372 >> 2]; 8622 HEAP32[13360 >> 2] = i17; 8623 HEAP32[13364 >> 2] = i14; 8624 HEAP32[13372 >> 2] = 0; 8625 HEAP32[13368 >> 2] = i3; 8626 i4 = i2 + 28 | 0; 8627 HEAP32[i4 >> 2] = 7; 8628 if ((i2 + 32 | 0) >>> 0 < i10 >>> 0) { 8629 while (1) { 8630 i3 = i4 + 4 | 0; 8631 HEAP32[i3 >> 2] = 7; 8632 if ((i4 + 8 | 0) >>> 0 < i10 >>> 0) { 8633 i4 = i3; 8634 } else { 8635 break; 8636 } 8637 } 8638 } 8639 if ((i2 | 0) != (i15 | 0)) { 8640 i2 = i2 - i15 | 0; 8641 i3 = i15 + (i2 + 4) | 0; 8642 HEAP32[i3 >> 2] = HEAP32[i3 >> 2] & -2; 8643 HEAP32[i15 + 4 >> 2] = i2 | 1; 8644 HEAP32[i15 + i2 >> 2] = i2; 8645 i3 = i2 >>> 3; 8646 if (i2 >>> 0 < 256) { 8647 i4 = i3 << 1; 8648 i2 = 12952 + (i4 << 2) | 0; 8649 i5 = HEAP32[3228] | 0; 8650 i3 = 1 << i3; 8651 if ((i5 & i3 | 0) != 0) { 8652 i4 = 12952 + (i4 + 2 << 2) | 0; 8653 i3 = HEAP32[i4 >> 2] | 0; 8654 if (i3 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 8655 _abort(); 8656 } else { 8657 i7 = i4; 8658 i8 = i3; 8659 } 8660 } else { 8661 HEAP32[3228] = i5 | i3; 8662 i7 = 12952 + (i4 + 2 << 2) | 0; 8663 i8 = i2; 8664 } 8665 HEAP32[i7 >> 2] = i15; 8666 HEAP32[i8 + 12 >> 2] = i15; 8667 HEAP32[i15 + 8 >> 2] = i8; 8668 HEAP32[i15 + 12 >> 2] = i2; 8669 break; 8670 } 8671 i3 = i2 >>> 8; 8672 if ((i3 | 0) != 0) { 8673 if (i2 >>> 0 > 16777215) { 8674 i3 = 31; 8675 } else { 8676 i31 = (i3 + 1048320 | 0) >>> 16 & 8; 8677 i32 = i3 << i31; 8678 i30 = (i32 + 520192 | 0) >>> 16 & 4; 8679 i32 = i32 << i30; 8680 i3 = (i32 + 245760 | 0) >>> 16 & 2; 8681 i3 = 14 - (i30 | i31 | i3) + (i32 << i3 >>> 15) | 0; 8682 i3 = i2 >>> (i3 + 7 | 0) & 1 | i3 << 1; 8683 } 8684 } else { 8685 i3 = 0; 8686 } 8687 i7 = 13216 + (i3 << 2) | 0; 8688 HEAP32[i15 + 28 >> 2] = i3; 8689 HEAP32[i15 + 20 >> 2] = 0; 8690 HEAP32[i15 + 16 >> 2] = 0; 8691 i4 = HEAP32[12916 >> 2] | 0; 8692 i5 = 1 << i3; 8693 if ((i4 & i5 | 0) == 0) { 8694 HEAP32[12916 >> 2] = i4 | i5; 8695 HEAP32[i7 >> 2] = i15; 8696 HEAP32[i15 + 24 >> 2] = i7; 8697 HEAP32[i15 + 12 >> 2] = i15; 8698 HEAP32[i15 + 8 >> 2] = i15; 8699 break; 8700 } 8701 i4 = HEAP32[i7 >> 2] | 0; 8702 if ((i3 | 0) == 31) { 8703 i3 = 0; 8704 } else { 8705 i3 = 25 - (i3 >>> 1) | 0; 8706 } 8707 L499 : do { 8708 if ((HEAP32[i4 + 4 >> 2] & -8 | 0) != (i2 | 0)) { 8709 i3 = i2 << i3; 8710 while (1) { 8711 i7 = i4 + (i3 >>> 31 << 2) + 16 | 0; 8712 i5 = HEAP32[i7 >> 2] | 0; 8713 if ((i5 | 0) == 0) { 8714 break; 8715 } 8716 if ((HEAP32[i5 + 4 >> 2] & -8 | 0) == (i2 | 0)) { 8717 i6 = i5; 8718 break L499; 8719 } else { 8720 i3 = i3 << 1; 8721 i4 = i5; 8722 } 8723 } 8724 if (i7 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 8725 _abort(); 8726 } else { 8727 HEAP32[i7 >> 2] = i15; 8728 HEAP32[i15 + 24 >> 2] = i4; 8729 HEAP32[i15 + 12 >> 2] = i15; 8730 HEAP32[i15 + 8 >> 2] = i15; 8731 break L311; 8732 } 8733 } else { 8734 i6 = i4; 8735 } 8736 } while (0); 8737 i4 = i6 + 8 | 0; 8738 i3 = HEAP32[i4 >> 2] | 0; 8739 i2 = HEAP32[12928 >> 2] | 0; 8740 if (i6 >>> 0 < i2 >>> 0) { 8741 _abort(); 8742 } 8743 if (i3 >>> 0 < i2 >>> 0) { 8744 _abort(); 8745 } else { 8746 HEAP32[i3 + 12 >> 2] = i15; 8747 HEAP32[i4 >> 2] = i15; 8748 HEAP32[i15 + 8 >> 2] = i3; 8749 HEAP32[i15 + 12 >> 2] = i6; 8750 HEAP32[i15 + 24 >> 2] = 0; 8751 break; 8752 } 8753 } 8754 } else { 8755 i32 = HEAP32[12928 >> 2] | 0; 8756 if ((i32 | 0) == 0 | i17 >>> 0 < i32 >>> 0) { 8757 HEAP32[12928 >> 2] = i17; 8758 } 8759 HEAP32[13360 >> 2] = i17; 8760 HEAP32[13364 >> 2] = i14; 8761 HEAP32[13372 >> 2] = 0; 8762 HEAP32[12948 >> 2] = HEAP32[3346]; 8763 HEAP32[12944 >> 2] = -1; 8764 i2 = 0; 8765 do { 8766 i32 = i2 << 1; 8767 i31 = 12952 + (i32 << 2) | 0; 8768 HEAP32[12952 + (i32 + 3 << 2) >> 2] = i31; 8769 HEAP32[12952 + (i32 + 2 << 2) >> 2] = i31; 8770 i2 = i2 + 1 | 0; 8771 } while ((i2 | 0) != 32); 8772 i2 = i17 + 8 | 0; 8773 if ((i2 & 7 | 0) == 0) { 8774 i2 = 0; 8775 } else { 8776 i2 = 0 - i2 & 7; 8777 } 8778 i32 = i14 + -40 - i2 | 0; 8779 HEAP32[12936 >> 2] = i17 + i2; 8780 HEAP32[12924 >> 2] = i32; 8781 HEAP32[i17 + (i2 + 4) >> 2] = i32 | 1; 8782 HEAP32[i17 + (i14 + -36) >> 2] = 40; 8783 HEAP32[12940 >> 2] = HEAP32[13400 >> 2]; 8784 } 8785 } while (0); 8786 i2 = HEAP32[12924 >> 2] | 0; 8787 if (i2 >>> 0 > i12 >>> 0) { 8788 i31 = i2 - i12 | 0; 8789 HEAP32[12924 >> 2] = i31; 8790 i32 = HEAP32[12936 >> 2] | 0; 8791 HEAP32[12936 >> 2] = i32 + i12; 8792 HEAP32[i32 + (i12 + 4) >> 2] = i31 | 1; 8793 HEAP32[i32 + 4 >> 2] = i12 | 3; 8794 i32 = i32 + 8 | 0; 8795 STACKTOP = i1; 8796 return i32 | 0; 8797 } 8798 } 8799 HEAP32[(___errno_location() | 0) >> 2] = 12; 8800 i32 = 0; 8801 STACKTOP = i1; 8802 return i32 | 0; 8803 } 8804 function _llex(i2, i3) { 8805 i2 = i2 | 0; 8806 i3 = i3 | 0; 8807 var i1 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0; 8808 i1 = STACKTOP; 8809 STACKTOP = STACKTOP + 16 | 0; 8810 i12 = i1; 8811 i4 = i2 + 60 | 0; 8812 HEAP32[(HEAP32[i4 >> 2] | 0) + 4 >> 2] = 0; 8813 i5 = i2 + 56 | 0; 8814 L1 : while (1) { 8815 i13 = HEAP32[i2 >> 2] | 0; 8816 L3 : while (1) { 8817 switch (i13 | 0) { 8818 case 11: 8819 case 9: 8820 case 12: 8821 case 32: 8822 { 8823 break; 8824 } 8825 case 91: 8826 { 8827 i9 = 25; 8828 break L1; 8829 } 8830 case 62: 8831 { 8832 i9 = 45; 8833 break L1; 8834 } 8835 case 46: 8836 { 8837 i9 = 161; 8838 break L1; 8839 } 8840 case 13: 8841 case 10: 8842 { 8843 i9 = 4; 8844 break L3; 8845 } 8846 case 45: 8847 { 8848 break L3; 8849 } 8850 case 61: 8851 { 8852 i9 = 29; 8853 break L1; 8854 } 8855 case 39: 8856 case 34: 8857 { 8858 i9 = 69; 8859 break L1; 8860 } 8861 case 126: 8862 { 8863 i9 = 53; 8864 break L1; 8865 } 8866 case 60: 8867 { 8868 i9 = 37; 8869 break L1; 8870 } 8871 case 58: 8872 { 8873 i9 = 61; 8874 break L1; 8875 } 8876 case 57: 8877 case 56: 8878 case 55: 8879 case 54: 8880 case 53: 8881 case 52: 8882 case 51: 8883 case 50: 8884 case 49: 8885 case 48: 8886 { 8887 i20 = i13; 8888 break L1; 8889 } 8890 case -1: 8891 { 8892 i2 = 286; 8893 i9 = 306; 8894 break L1; 8895 } 8896 default: 8897 { 8898 i9 = 283; 8899 break L1; 8900 } 8901 } 8902 i13 = HEAP32[i5 >> 2] | 0; 8903 i27 = HEAP32[i13 >> 2] | 0; 8904 HEAP32[i13 >> 2] = i27 + -1; 8905 if ((i27 | 0) == 0) { 8906 i13 = _luaZ_fill(i13) | 0; 8907 } else { 8908 i27 = i13 + 4 | 0; 8909 i13 = HEAP32[i27 >> 2] | 0; 8910 HEAP32[i27 >> 2] = i13 + 1; 8911 i13 = HEAPU8[i13] | 0; 8912 } 8913 HEAP32[i2 >> 2] = i13; 8914 } 8915 if ((i9 | 0) == 4) { 8916 i9 = 0; 8917 _inclinenumber(i2); 8918 continue; 8919 } 8920 i13 = HEAP32[i5 >> 2] | 0; 8921 i27 = HEAP32[i13 >> 2] | 0; 8922 HEAP32[i13 >> 2] = i27 + -1; 8923 if ((i27 | 0) == 0) { 8924 i13 = _luaZ_fill(i13) | 0; 8925 } else { 8926 i27 = i13 + 4 | 0; 8927 i13 = HEAP32[i27 >> 2] | 0; 8928 HEAP32[i27 >> 2] = i13 + 1; 8929 i13 = HEAPU8[i13] | 0; 8930 } 8931 HEAP32[i2 >> 2] = i13; 8932 if ((i13 | 0) != 45) { 8933 i2 = 45; 8934 i9 = 306; 8935 break; 8936 } 8937 i13 = HEAP32[i5 >> 2] | 0; 8938 i27 = HEAP32[i13 >> 2] | 0; 8939 HEAP32[i13 >> 2] = i27 + -1; 8940 if ((i27 | 0) == 0) { 8941 i13 = _luaZ_fill(i13) | 0; 8942 } else { 8943 i27 = i13 + 4 | 0; 8944 i13 = HEAP32[i27 >> 2] | 0; 8945 HEAP32[i27 >> 2] = i13 + 1; 8946 i13 = HEAPU8[i13] | 0; 8947 } 8948 HEAP32[i2 >> 2] = i13; 8949 do { 8950 if ((i13 | 0) == 91) { 8951 i13 = _skip_sep(i2) | 0; 8952 HEAP32[(HEAP32[i4 >> 2] | 0) + 4 >> 2] = 0; 8953 if ((i13 | 0) > -1) { 8954 _read_long_string(i2, 0, i13); 8955 HEAP32[(HEAP32[i4 >> 2] | 0) + 4 >> 2] = 0; 8956 continue L1; 8957 } else { 8958 i13 = HEAP32[i2 >> 2] | 0; 8959 break; 8960 } 8961 } 8962 } while (0); 8963 while (1) { 8964 if ((i13 | 0) == -1 | (i13 | 0) == 13 | (i13 | 0) == 10) { 8965 continue L1; 8966 } 8967 i13 = HEAP32[i5 >> 2] | 0; 8968 i27 = HEAP32[i13 >> 2] | 0; 8969 HEAP32[i13 >> 2] = i27 + -1; 8970 if ((i27 | 0) == 0) { 8971 i13 = _luaZ_fill(i13) | 0; 8972 } else { 8973 i27 = i13 + 4 | 0; 8974 i13 = HEAP32[i27 >> 2] | 0; 8975 HEAP32[i27 >> 2] = i13 + 1; 8976 i13 = HEAPU8[i13] | 0; 8977 } 8978 HEAP32[i2 >> 2] = i13; 8979 } 8980 } 8981 if ((i9 | 0) == 25) { 8982 i9 = _skip_sep(i2) | 0; 8983 if ((i9 | 0) > -1) { 8984 _read_long_string(i2, i3, i9); 8985 i27 = 289; 8986 STACKTOP = i1; 8987 return i27 | 0; 8988 } 8989 if ((i9 | 0) == -1) { 8990 i27 = 91; 8991 STACKTOP = i1; 8992 return i27 | 0; 8993 } else { 8994 _lexerror(i2, 12272, 289); 8995 } 8996 } else if ((i9 | 0) == 29) { 8997 i3 = HEAP32[i5 >> 2] | 0; 8998 i27 = HEAP32[i3 >> 2] | 0; 8999 HEAP32[i3 >> 2] = i27 + -1; 9000 if ((i27 | 0) == 0) { 9001 i3 = _luaZ_fill(i3) | 0; 9002 } else { 9003 i27 = i3 + 4 | 0; 9004 i3 = HEAP32[i27 >> 2] | 0; 9005 HEAP32[i27 >> 2] = i3 + 1; 9006 i3 = HEAPU8[i3] | 0; 9007 } 9008 HEAP32[i2 >> 2] = i3; 9009 if ((i3 | 0) != 61) { 9010 i27 = 61; 9011 STACKTOP = i1; 9012 return i27 | 0; 9013 } 9014 i3 = HEAP32[i5 >> 2] | 0; 9015 i27 = HEAP32[i3 >> 2] | 0; 9016 HEAP32[i3 >> 2] = i27 + -1; 9017 if ((i27 | 0) == 0) { 9018 i3 = _luaZ_fill(i3) | 0; 9019 } else { 9020 i27 = i3 + 4 | 0; 9021 i3 = HEAP32[i27 >> 2] | 0; 9022 HEAP32[i27 >> 2] = i3 + 1; 9023 i3 = HEAPU8[i3] | 0; 9024 } 9025 HEAP32[i2 >> 2] = i3; 9026 i27 = 281; 9027 STACKTOP = i1; 9028 return i27 | 0; 9029 } else if ((i9 | 0) == 37) { 9030 i3 = HEAP32[i5 >> 2] | 0; 9031 i27 = HEAP32[i3 >> 2] | 0; 9032 HEAP32[i3 >> 2] = i27 + -1; 9033 if ((i27 | 0) == 0) { 9034 i3 = _luaZ_fill(i3) | 0; 9035 } else { 9036 i27 = i3 + 4 | 0; 9037 i3 = HEAP32[i27 >> 2] | 0; 9038 HEAP32[i27 >> 2] = i3 + 1; 9039 i3 = HEAPU8[i3] | 0; 9040 } 9041 HEAP32[i2 >> 2] = i3; 9042 if ((i3 | 0) != 61) { 9043 i27 = 60; 9044 STACKTOP = i1; 9045 return i27 | 0; 9046 } 9047 i3 = HEAP32[i5 >> 2] | 0; 9048 i27 = HEAP32[i3 >> 2] | 0; 9049 HEAP32[i3 >> 2] = i27 + -1; 9050 if ((i27 | 0) == 0) { 9051 i3 = _luaZ_fill(i3) | 0; 9052 } else { 9053 i27 = i3 + 4 | 0; 9054 i3 = HEAP32[i27 >> 2] | 0; 9055 HEAP32[i27 >> 2] = i3 + 1; 9056 i3 = HEAPU8[i3] | 0; 9057 } 9058 HEAP32[i2 >> 2] = i3; 9059 i27 = 283; 9060 STACKTOP = i1; 9061 return i27 | 0; 9062 } else if ((i9 | 0) == 45) { 9063 i3 = HEAP32[i5 >> 2] | 0; 9064 i27 = HEAP32[i3 >> 2] | 0; 9065 HEAP32[i3 >> 2] = i27 + -1; 9066 if ((i27 | 0) == 0) { 9067 i3 = _luaZ_fill(i3) | 0; 9068 } else { 9069 i27 = i3 + 4 | 0; 9070 i3 = HEAP32[i27 >> 2] | 0; 9071 HEAP32[i27 >> 2] = i3 + 1; 9072 i3 = HEAPU8[i3] | 0; 9073 } 9074 HEAP32[i2 >> 2] = i3; 9075 if ((i3 | 0) != 61) { 9076 i27 = 62; 9077 STACKTOP = i1; 9078 return i27 | 0; 9079 } 9080 i3 = HEAP32[i5 >> 2] | 0; 9081 i27 = HEAP32[i3 >> 2] | 0; 9082 HEAP32[i3 >> 2] = i27 + -1; 9083 if ((i27 | 0) == 0) { 9084 i3 = _luaZ_fill(i3) | 0; 9085 } else { 9086 i27 = i3 + 4 | 0; 9087 i3 = HEAP32[i27 >> 2] | 0; 9088 HEAP32[i27 >> 2] = i3 + 1; 9089 i3 = HEAPU8[i3] | 0; 9090 } 9091 HEAP32[i2 >> 2] = i3; 9092 i27 = 282; 9093 STACKTOP = i1; 9094 return i27 | 0; 9095 } else if ((i9 | 0) == 53) { 9096 i3 = HEAP32[i5 >> 2] | 0; 9097 i27 = HEAP32[i3 >> 2] | 0; 9098 HEAP32[i3 >> 2] = i27 + -1; 9099 if ((i27 | 0) == 0) { 9100 i3 = _luaZ_fill(i3) | 0; 9101 } else { 9102 i27 = i3 + 4 | 0; 9103 i3 = HEAP32[i27 >> 2] | 0; 9104 HEAP32[i27 >> 2] = i3 + 1; 9105 i3 = HEAPU8[i3] | 0; 9106 } 9107 HEAP32[i2 >> 2] = i3; 9108 if ((i3 | 0) != 61) { 9109 i27 = 126; 9110 STACKTOP = i1; 9111 return i27 | 0; 9112 } 9113 i3 = HEAP32[i5 >> 2] | 0; 9114 i27 = HEAP32[i3 >> 2] | 0; 9115 HEAP32[i3 >> 2] = i27 + -1; 9116 if ((i27 | 0) == 0) { 9117 i3 = _luaZ_fill(i3) | 0; 9118 } else { 9119 i27 = i3 + 4 | 0; 9120 i3 = HEAP32[i27 >> 2] | 0; 9121 HEAP32[i27 >> 2] = i3 + 1; 9122 i3 = HEAPU8[i3] | 0; 9123 } 9124 HEAP32[i2 >> 2] = i3; 9125 i27 = 284; 9126 STACKTOP = i1; 9127 return i27 | 0; 9128 } else if ((i9 | 0) == 61) { 9129 i3 = HEAP32[i5 >> 2] | 0; 9130 i27 = HEAP32[i3 >> 2] | 0; 9131 HEAP32[i3 >> 2] = i27 + -1; 9132 if ((i27 | 0) == 0) { 9133 i3 = _luaZ_fill(i3) | 0; 9134 } else { 9135 i27 = i3 + 4 | 0; 9136 i3 = HEAP32[i27 >> 2] | 0; 9137 HEAP32[i27 >> 2] = i3 + 1; 9138 i3 = HEAPU8[i3] | 0; 9139 } 9140 HEAP32[i2 >> 2] = i3; 9141 if ((i3 | 0) != 58) { 9142 i27 = 58; 9143 STACKTOP = i1; 9144 return i27 | 0; 9145 } 9146 i3 = HEAP32[i5 >> 2] | 0; 9147 i27 = HEAP32[i3 >> 2] | 0; 9148 HEAP32[i3 >> 2] = i27 + -1; 9149 if ((i27 | 0) == 0) { 9150 i3 = _luaZ_fill(i3) | 0; 9151 } else { 9152 i27 = i3 + 4 | 0; 9153 i3 = HEAP32[i27 >> 2] | 0; 9154 HEAP32[i27 >> 2] = i3 + 1; 9155 i3 = HEAPU8[i3] | 0; 9156 } 9157 HEAP32[i2 >> 2] = i3; 9158 i27 = 285; 9159 STACKTOP = i1; 9160 return i27 | 0; 9161 } else if ((i9 | 0) == 69) { 9162 i14 = HEAP32[i4 >> 2] | 0; 9163 i7 = i14 + 4 | 0; 9164 i15 = HEAP32[i7 >> 2] | 0; 9165 i8 = i14 + 8 | 0; 9166 i6 = HEAP32[i8 >> 2] | 0; 9167 do { 9168 if ((i15 + 1 | 0) >>> 0 > i6 >>> 0) { 9169 if (i6 >>> 0 > 2147483645) { 9170 _lexerror(i2, 12368, 0); 9171 } 9172 i16 = i6 << 1; 9173 i15 = HEAP32[i2 + 52 >> 2] | 0; 9174 if ((i16 | 0) == -2) { 9175 _luaM_toobig(i15); 9176 } else { 9177 i24 = _luaM_realloc_(i15, HEAP32[i14 >> 2] | 0, i6, i16) | 0; 9178 HEAP32[i14 >> 2] = i24; 9179 HEAP32[i8 >> 2] = i16; 9180 i23 = HEAP32[i7 >> 2] | 0; 9181 break; 9182 } 9183 } else { 9184 i23 = i15; 9185 i24 = HEAP32[i14 >> 2] | 0; 9186 } 9187 } while (0); 9188 i6 = i13 & 255; 9189 HEAP32[i7 >> 2] = i23 + 1; 9190 HEAP8[i24 + i23 | 0] = i6; 9191 i7 = HEAP32[i5 >> 2] | 0; 9192 i27 = HEAP32[i7 >> 2] | 0; 9193 HEAP32[i7 >> 2] = i27 + -1; 9194 if ((i27 | 0) == 0) { 9195 i14 = _luaZ_fill(i7) | 0; 9196 } else { 9197 i27 = i7 + 4 | 0; 9198 i14 = HEAP32[i27 >> 2] | 0; 9199 HEAP32[i27 >> 2] = i14 + 1; 9200 i14 = HEAPU8[i14] | 0; 9201 } 9202 HEAP32[i2 >> 2] = i14; 9203 L139 : do { 9204 if ((i14 | 0) != (i13 | 0)) { 9205 i7 = i2 + 52 | 0; 9206 L141 : while (1) { 9207 L143 : do { 9208 if ((i14 | 0) == 92) { 9209 i8 = HEAP32[i5 >> 2] | 0; 9210 i27 = HEAP32[i8 >> 2] | 0; 9211 HEAP32[i8 >> 2] = i27 + -1; 9212 if ((i27 | 0) == 0) { 9213 i8 = _luaZ_fill(i8) | 0; 9214 } else { 9215 i27 = i8 + 4 | 0; 9216 i8 = HEAP32[i27 >> 2] | 0; 9217 HEAP32[i27 >> 2] = i8 + 1; 9218 i8 = HEAPU8[i8] | 0; 9219 } 9220 HEAP32[i2 >> 2] = i8; 9221 switch (i8 | 0) { 9222 case 13: 9223 case 10: 9224 { 9225 _inclinenumber(i2); 9226 i8 = 10; 9227 break; 9228 } 9229 case 39: 9230 case 34: 9231 case 92: 9232 { 9233 i9 = 124; 9234 break; 9235 } 9236 case 122: 9237 { 9238 i8 = HEAP32[i5 >> 2] | 0; 9239 i27 = HEAP32[i8 >> 2] | 0; 9240 HEAP32[i8 >> 2] = i27 + -1; 9241 if ((i27 | 0) == 0) { 9242 i14 = _luaZ_fill(i8) | 0; 9243 } else { 9244 i27 = i8 + 4 | 0; 9245 i14 = HEAP32[i27 >> 2] | 0; 9246 HEAP32[i27 >> 2] = i14 + 1; 9247 i14 = HEAPU8[i14] | 0; 9248 } 9249 HEAP32[i2 >> 2] = i14; 9250 if ((HEAP8[i14 + 10913 | 0] & 8) == 0) { 9251 break L143; 9252 } 9253 while (1) { 9254 if ((i14 | 0) == 13 | (i14 | 0) == 10) { 9255 _inclinenumber(i2); 9256 i14 = HEAP32[i2 >> 2] | 0; 9257 } else { 9258 i8 = HEAP32[i5 >> 2] | 0; 9259 i27 = HEAP32[i8 >> 2] | 0; 9260 HEAP32[i8 >> 2] = i27 + -1; 9261 if ((i27 | 0) == 0) { 9262 i14 = _luaZ_fill(i8) | 0; 9263 } else { 9264 i27 = i8 + 4 | 0; 9265 i14 = HEAP32[i27 >> 2] | 0; 9266 HEAP32[i27 >> 2] = i14 + 1; 9267 i14 = HEAPU8[i14] | 0; 9268 } 9269 HEAP32[i2 >> 2] = i14; 9270 } 9271 if ((HEAP8[i14 + 10913 | 0] & 8) == 0) { 9272 break L143; 9273 } 9274 } 9275 } 9276 case 118: 9277 { 9278 i8 = 11; 9279 i9 = 124; 9280 break; 9281 } 9282 case 120: 9283 { 9284 HEAP32[i12 >> 2] = 120; 9285 i14 = 1; 9286 i8 = 0; 9287 while (1) { 9288 i9 = HEAP32[i5 >> 2] | 0; 9289 i27 = HEAP32[i9 >> 2] | 0; 9290 HEAP32[i9 >> 2] = i27 + -1; 9291 if ((i27 | 0) == 0) { 9292 i9 = _luaZ_fill(i9) | 0; 9293 } else { 9294 i27 = i9 + 4 | 0; 9295 i9 = HEAP32[i27 >> 2] | 0; 9296 HEAP32[i27 >> 2] = i9 + 1; 9297 i9 = HEAPU8[i9] | 0; 9298 } 9299 HEAP32[i2 >> 2] = i9; 9300 HEAP32[i12 + (i14 << 2) >> 2] = i9; 9301 if ((HEAP8[i9 + 10913 | 0] & 16) == 0) { 9302 i9 = 100; 9303 break L141; 9304 } 9305 i8 = (_luaO_hexavalue(i9) | 0) + (i8 << 4) | 0; 9306 i14 = i14 + 1 | 0; 9307 if ((i14 | 0) >= 3) { 9308 i9 = 124; 9309 break; 9310 } 9311 } 9312 break; 9313 } 9314 case -1: 9315 { 9316 i14 = -1; 9317 break L143; 9318 } 9319 case 98: 9320 { 9321 i8 = 8; 9322 i9 = 124; 9323 break; 9324 } 9325 case 102: 9326 { 9327 i8 = 12; 9328 i9 = 124; 9329 break; 9330 } 9331 case 110: 9332 { 9333 i8 = 10; 9334 i9 = 124; 9335 break; 9336 } 9337 case 114: 9338 { 9339 i8 = 13; 9340 i9 = 124; 9341 break; 9342 } 9343 case 116: 9344 { 9345 i8 = 9; 9346 i9 = 124; 9347 break; 9348 } 9349 case 97: 9350 { 9351 i8 = 7; 9352 i9 = 124; 9353 break; 9354 } 9355 default: 9356 { 9357 if ((HEAP8[i8 + 10913 | 0] & 2) == 0) { 9358 i9 = 116; 9359 break L141; 9360 } else { 9361 i15 = i8; 9362 i14 = 0; 9363 i8 = 0; 9364 } 9365 do { 9366 if ((HEAP8[i15 + 10913 | 0] & 2) == 0) { 9367 break; 9368 } 9369 HEAP32[i12 + (i14 << 2) >> 2] = i15; 9370 i8 = i15 + -48 + (i8 * 10 | 0) | 0; 9371 i15 = HEAP32[i5 >> 2] | 0; 9372 i27 = HEAP32[i15 >> 2] | 0; 9373 HEAP32[i15 >> 2] = i27 + -1; 9374 if ((i27 | 0) == 0) { 9375 i15 = _luaZ_fill(i15) | 0; 9376 } else { 9377 i27 = i15 + 4 | 0; 9378 i15 = HEAP32[i27 >> 2] | 0; 9379 HEAP32[i27 >> 2] = i15 + 1; 9380 i15 = HEAPU8[i15] | 0; 9381 } 9382 HEAP32[i2 >> 2] = i15; 9383 i14 = i14 + 1 | 0; 9384 } while ((i14 | 0) < 3); 9385 if ((i8 | 0) > 255) { 9386 i9 = 123; 9387 break L141; 9388 } 9389 } 9390 } 9391 if ((i9 | 0) == 124) { 9392 i9 = 0; 9393 i14 = HEAP32[i5 >> 2] | 0; 9394 i27 = HEAP32[i14 >> 2] | 0; 9395 HEAP32[i14 >> 2] = i27 + -1; 9396 if ((i27 | 0) == 0) { 9397 i14 = _luaZ_fill(i14) | 0; 9398 } else { 9399 i27 = i14 + 4 | 0; 9400 i14 = HEAP32[i27 >> 2] | 0; 9401 HEAP32[i27 >> 2] = i14 + 1; 9402 i14 = HEAPU8[i14] | 0; 9403 } 9404 HEAP32[i2 >> 2] = i14; 9405 } 9406 i15 = HEAP32[i4 >> 2] | 0; 9407 i14 = i15 + 4 | 0; 9408 i18 = HEAP32[i14 >> 2] | 0; 9409 i16 = i15 + 8 | 0; 9410 i17 = HEAP32[i16 >> 2] | 0; 9411 if ((i18 + 1 | 0) >>> 0 > i17 >>> 0) { 9412 if (i17 >>> 0 > 2147483645) { 9413 i9 = 131; 9414 break L141; 9415 } 9416 i18 = i17 << 1; 9417 i19 = HEAP32[i7 >> 2] | 0; 9418 if ((i18 | 0) == -2) { 9419 i9 = 133; 9420 break L141; 9421 } 9422 i27 = _luaM_realloc_(i19, HEAP32[i15 >> 2] | 0, i17, i18) | 0; 9423 HEAP32[i15 >> 2] = i27; 9424 HEAP32[i16 >> 2] = i18; 9425 i18 = HEAP32[i14 >> 2] | 0; 9426 i15 = i27; 9427 } else { 9428 i15 = HEAP32[i15 >> 2] | 0; 9429 } 9430 HEAP32[i14 >> 2] = i18 + 1; 9431 HEAP8[i15 + i18 | 0] = i8; 9432 i14 = HEAP32[i2 >> 2] | 0; 9433 } else if ((i14 | 0) == -1) { 9434 i9 = 82; 9435 break L141; 9436 } else if ((i14 | 0) == 13 | (i14 | 0) == 10) { 9437 i9 = 83; 9438 break L141; 9439 } else { 9440 i15 = HEAP32[i4 >> 2] | 0; 9441 i8 = i15 + 4 | 0; 9442 i18 = HEAP32[i8 >> 2] | 0; 9443 i17 = i15 + 8 | 0; 9444 i16 = HEAP32[i17 >> 2] | 0; 9445 if ((i18 + 1 | 0) >>> 0 > i16 >>> 0) { 9446 if (i16 >>> 0 > 2147483645) { 9447 i9 = 139; 9448 break L141; 9449 } 9450 i19 = i16 << 1; 9451 i18 = HEAP32[i7 >> 2] | 0; 9452 if ((i19 | 0) == -2) { 9453 i9 = 141; 9454 break L141; 9455 } 9456 i27 = _luaM_realloc_(i18, HEAP32[i15 >> 2] | 0, i16, i19) | 0; 9457 HEAP32[i15 >> 2] = i27; 9458 HEAP32[i17 >> 2] = i19; 9459 i18 = HEAP32[i8 >> 2] | 0; 9460 i15 = i27; 9461 } else { 9462 i15 = HEAP32[i15 >> 2] | 0; 9463 } 9464 HEAP32[i8 >> 2] = i18 + 1; 9465 HEAP8[i15 + i18 | 0] = i14; 9466 i8 = HEAP32[i5 >> 2] | 0; 9467 i27 = HEAP32[i8 >> 2] | 0; 9468 HEAP32[i8 >> 2] = i27 + -1; 9469 if ((i27 | 0) == 0) { 9470 i14 = _luaZ_fill(i8) | 0; 9471 } else { 9472 i27 = i8 + 4 | 0; 9473 i14 = HEAP32[i27 >> 2] | 0; 9474 HEAP32[i27 >> 2] = i14 + 1; 9475 i14 = HEAPU8[i14] | 0; 9476 } 9477 HEAP32[i2 >> 2] = i14; 9478 } 9479 } while (0); 9480 if ((i14 | 0) == (i13 | 0)) { 9481 break L139; 9482 } 9483 } 9484 if ((i9 | 0) == 82) { 9485 _lexerror(i2, 12400, 286); 9486 } else if ((i9 | 0) == 83) { 9487 _lexerror(i2, 12400, 289); 9488 } else if ((i9 | 0) == 100) { 9489 _escerror(i2, i12, i14 + 1 | 0, 12480); 9490 } else if ((i9 | 0) == 116) { 9491 _escerror(i2, i2, 1, 12424); 9492 } else if ((i9 | 0) == 123) { 9493 _escerror(i2, i12, i14, 12448); 9494 } else if ((i9 | 0) == 131) { 9495 _lexerror(i2, 12368, 0); 9496 } else if ((i9 | 0) == 133) { 9497 _luaM_toobig(i19); 9498 } else if ((i9 | 0) == 139) { 9499 _lexerror(i2, 12368, 0); 9500 } else if ((i9 | 0) == 141) { 9501 _luaM_toobig(i18); 9502 } 9503 } 9504 } while (0); 9505 i7 = HEAP32[i4 >> 2] | 0; 9506 i8 = i7 + 4 | 0; 9507 i13 = HEAP32[i8 >> 2] | 0; 9508 i12 = i7 + 8 | 0; 9509 i9 = HEAP32[i12 >> 2] | 0; 9510 do { 9511 if ((i13 + 1 | 0) >>> 0 > i9 >>> 0) { 9512 if (i9 >>> 0 > 2147483645) { 9513 _lexerror(i2, 12368, 0); 9514 } 9515 i14 = i9 << 1; 9516 i13 = HEAP32[i2 + 52 >> 2] | 0; 9517 if ((i14 | 0) == -2) { 9518 _luaM_toobig(i13); 9519 } else { 9520 i11 = _luaM_realloc_(i13, HEAP32[i7 >> 2] | 0, i9, i14) | 0; 9521 HEAP32[i7 >> 2] = i11; 9522 HEAP32[i12 >> 2] = i14; 9523 i10 = HEAP32[i8 >> 2] | 0; 9524 break; 9525 } 9526 } else { 9527 i10 = i13; 9528 i11 = HEAP32[i7 >> 2] | 0; 9529 } 9530 } while (0); 9531 HEAP32[i8 >> 2] = i10 + 1; 9532 HEAP8[i11 + i10 | 0] = i6; 9533 i5 = HEAP32[i5 >> 2] | 0; 9534 i27 = HEAP32[i5 >> 2] | 0; 9535 HEAP32[i5 >> 2] = i27 + -1; 9536 if ((i27 | 0) == 0) { 9537 i5 = _luaZ_fill(i5) | 0; 9538 } else { 9539 i27 = i5 + 4 | 0; 9540 i5 = HEAP32[i27 >> 2] | 0; 9541 HEAP32[i27 >> 2] = i5 + 1; 9542 i5 = HEAPU8[i5] | 0; 9543 } 9544 HEAP32[i2 >> 2] = i5; 9545 i5 = HEAP32[i4 >> 2] | 0; 9546 i4 = HEAP32[i2 + 52 >> 2] | 0; 9547 i5 = _luaS_newlstr(i4, (HEAP32[i5 >> 2] | 0) + 1 | 0, (HEAP32[i5 + 4 >> 2] | 0) + -2 | 0) | 0; 9548 i6 = i4 + 8 | 0; 9549 i7 = HEAP32[i6 >> 2] | 0; 9550 HEAP32[i6 >> 2] = i7 + 16; 9551 HEAP32[i7 >> 2] = i5; 9552 HEAP32[i7 + 8 >> 2] = HEAPU8[i5 + 4 | 0] | 64; 9553 i7 = _luaH_set(i4, HEAP32[(HEAP32[i2 + 48 >> 2] | 0) + 4 >> 2] | 0, (HEAP32[i6 >> 2] | 0) + -16 | 0) | 0; 9554 i2 = i7 + 8 | 0; 9555 if ((HEAP32[i2 >> 2] | 0) == 0 ? (HEAP32[i7 >> 2] = 1, HEAP32[i2 >> 2] = 1, (HEAP32[(HEAP32[i4 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) : 0) { 9556 _luaC_step(i4); 9557 } 9558 HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + -16; 9559 HEAP32[i3 >> 2] = i5; 9560 i27 = 289; 9561 STACKTOP = i1; 9562 return i27 | 0; 9563 } else if ((i9 | 0) == 161) { 9564 i10 = HEAP32[i4 >> 2] | 0; 9565 i9 = i10 + 4 | 0; 9566 i13 = HEAP32[i9 >> 2] | 0; 9567 i12 = i10 + 8 | 0; 9568 i11 = HEAP32[i12 >> 2] | 0; 9569 do { 9570 if ((i13 + 1 | 0) >>> 0 > i11 >>> 0) { 9571 if (i11 >>> 0 > 2147483645) { 9572 _lexerror(i2, 12368, 0); 9573 } 9574 i13 = i11 << 1; 9575 i20 = HEAP32[i2 + 52 >> 2] | 0; 9576 if ((i13 | 0) == -2) { 9577 _luaM_toobig(i20); 9578 } else { 9579 i25 = _luaM_realloc_(i20, HEAP32[i10 >> 2] | 0, i11, i13) | 0; 9580 HEAP32[i10 >> 2] = i25; 9581 HEAP32[i12 >> 2] = i13; 9582 i26 = HEAP32[i9 >> 2] | 0; 9583 break; 9584 } 9585 } else { 9586 i26 = i13; 9587 i25 = HEAP32[i10 >> 2] | 0; 9588 } 9589 } while (0); 9590 HEAP32[i9 >> 2] = i26 + 1; 9591 HEAP8[i25 + i26 | 0] = 46; 9592 i9 = HEAP32[i5 >> 2] | 0; 9593 i27 = HEAP32[i9 >> 2] | 0; 9594 HEAP32[i9 >> 2] = i27 + -1; 9595 if ((i27 | 0) == 0) { 9596 i20 = _luaZ_fill(i9) | 0; 9597 } else { 9598 i27 = i9 + 4 | 0; 9599 i20 = HEAP32[i27 >> 2] | 0; 9600 HEAP32[i27 >> 2] = i20 + 1; 9601 i20 = HEAPU8[i20] | 0; 9602 } 9603 HEAP32[i2 >> 2] = i20; 9604 if ((i20 | 0) != 0 ? (_memchr(12304, i20, 2) | 0) != 0 : 0) { 9605 i6 = HEAP32[i4 >> 2] | 0; 9606 i3 = i6 + 4 | 0; 9607 i9 = HEAP32[i3 >> 2] | 0; 9608 i8 = i6 + 8 | 0; 9609 i7 = HEAP32[i8 >> 2] | 0; 9610 do { 9611 if ((i9 + 1 | 0) >>> 0 > i7 >>> 0) { 9612 if (i7 >>> 0 > 2147483645) { 9613 _lexerror(i2, 12368, 0); 9614 } 9615 i9 = i7 << 1; 9616 i10 = HEAP32[i2 + 52 >> 2] | 0; 9617 if ((i9 | 0) == -2) { 9618 _luaM_toobig(i10); 9619 } else { 9620 i21 = _luaM_realloc_(i10, HEAP32[i6 >> 2] | 0, i7, i9) | 0; 9621 HEAP32[i6 >> 2] = i21; 9622 HEAP32[i8 >> 2] = i9; 9623 i22 = HEAP32[i3 >> 2] | 0; 9624 break; 9625 } 9626 } else { 9627 i22 = i9; 9628 i21 = HEAP32[i6 >> 2] | 0; 9629 } 9630 } while (0); 9631 HEAP32[i3 >> 2] = i22 + 1; 9632 HEAP8[i21 + i22 | 0] = i20; 9633 i3 = HEAP32[i5 >> 2] | 0; 9634 i27 = HEAP32[i3 >> 2] | 0; 9635 HEAP32[i3 >> 2] = i27 + -1; 9636 if ((i27 | 0) == 0) { 9637 i3 = _luaZ_fill(i3) | 0; 9638 } else { 9639 i27 = i3 + 4 | 0; 9640 i3 = HEAP32[i27 >> 2] | 0; 9641 HEAP32[i27 >> 2] = i3 + 1; 9642 i3 = HEAPU8[i3] | 0; 9643 } 9644 HEAP32[i2 >> 2] = i3; 9645 if ((i3 | 0) == 0) { 9646 i27 = 279; 9647 STACKTOP = i1; 9648 return i27 | 0; 9649 } 9650 if ((_memchr(12304, i3, 2) | 0) == 0) { 9651 i27 = 279; 9652 STACKTOP = i1; 9653 return i27 | 0; 9654 } 9655 i6 = HEAP32[i4 >> 2] | 0; 9656 i7 = i6 + 4 | 0; 9657 i9 = HEAP32[i7 >> 2] | 0; 9658 i8 = i6 + 8 | 0; 9659 i4 = HEAP32[i8 >> 2] | 0; 9660 do { 9661 if ((i9 + 1 | 0) >>> 0 > i4 >>> 0) { 9662 if (i4 >>> 0 > 2147483645) { 9663 _lexerror(i2, 12368, 0); 9664 } 9665 i10 = i4 << 1; 9666 i9 = HEAP32[i2 + 52 >> 2] | 0; 9667 if ((i10 | 0) == -2) { 9668 _luaM_toobig(i9); 9669 } else { 9670 i18 = _luaM_realloc_(i9, HEAP32[i6 >> 2] | 0, i4, i10) | 0; 9671 HEAP32[i6 >> 2] = i18; 9672 HEAP32[i8 >> 2] = i10; 9673 i19 = HEAP32[i7 >> 2] | 0; 9674 break; 9675 } 9676 } else { 9677 i19 = i9; 9678 i18 = HEAP32[i6 >> 2] | 0; 9679 } 9680 } while (0); 9681 HEAP32[i7 >> 2] = i19 + 1; 9682 HEAP8[i18 + i19 | 0] = i3; 9683 i3 = HEAP32[i5 >> 2] | 0; 9684 i27 = HEAP32[i3 >> 2] | 0; 9685 HEAP32[i3 >> 2] = i27 + -1; 9686 if ((i27 | 0) == 0) { 9687 i3 = _luaZ_fill(i3) | 0; 9688 } else { 9689 i27 = i3 + 4 | 0; 9690 i3 = HEAP32[i27 >> 2] | 0; 9691 HEAP32[i27 >> 2] = i3 + 1; 9692 i3 = HEAPU8[i3] | 0; 9693 } 9694 HEAP32[i2 >> 2] = i3; 9695 i27 = 280; 9696 STACKTOP = i1; 9697 return i27 | 0; 9698 } 9699 if ((HEAP8[i20 + 10913 | 0] & 2) == 0) { 9700 i27 = 46; 9701 STACKTOP = i1; 9702 return i27 | 0; 9703 } 9704 } else if ((i9 | 0) == 283) { 9705 if ((HEAP8[i13 + 10913 | 0] & 1) == 0) { 9706 i3 = HEAP32[i5 >> 2] | 0; 9707 i27 = HEAP32[i3 >> 2] | 0; 9708 HEAP32[i3 >> 2] = i27 + -1; 9709 if ((i27 | 0) == 0) { 9710 i3 = _luaZ_fill(i3) | 0; 9711 } else { 9712 i27 = i3 + 4 | 0; 9713 i3 = HEAP32[i27 >> 2] | 0; 9714 HEAP32[i27 >> 2] = i3 + 1; 9715 i3 = HEAPU8[i3] | 0; 9716 } 9717 HEAP32[i2 >> 2] = i3; 9718 i27 = i13; 9719 STACKTOP = i1; 9720 return i27 | 0; 9721 } 9722 i10 = i2 + 52 | 0; 9723 while (1) { 9724 i11 = HEAP32[i4 >> 2] | 0; 9725 i9 = i11 + 4 | 0; 9726 i12 = HEAP32[i9 >> 2] | 0; 9727 i19 = i11 + 8 | 0; 9728 i18 = HEAP32[i19 >> 2] | 0; 9729 if ((i12 + 1 | 0) >>> 0 > i18 >>> 0) { 9730 if (i18 >>> 0 > 2147483645) { 9731 i9 = 288; 9732 break; 9733 } 9734 i21 = i18 << 1; 9735 i12 = HEAP32[i10 >> 2] | 0; 9736 if ((i21 | 0) == -2) { 9737 i9 = 290; 9738 break; 9739 } 9740 i27 = _luaM_realloc_(i12, HEAP32[i11 >> 2] | 0, i18, i21) | 0; 9741 HEAP32[i11 >> 2] = i27; 9742 HEAP32[i19 >> 2] = i21; 9743 i12 = HEAP32[i9 >> 2] | 0; 9744 i11 = i27; 9745 } else { 9746 i11 = HEAP32[i11 >> 2] | 0; 9747 } 9748 HEAP32[i9 >> 2] = i12 + 1; 9749 HEAP8[i11 + i12 | 0] = i13; 9750 i9 = HEAP32[i5 >> 2] | 0; 9751 i27 = HEAP32[i9 >> 2] | 0; 9752 HEAP32[i9 >> 2] = i27 + -1; 9753 if ((i27 | 0) == 0) { 9754 i13 = _luaZ_fill(i9) | 0; 9755 } else { 9756 i27 = i9 + 4 | 0; 9757 i13 = HEAP32[i27 >> 2] | 0; 9758 HEAP32[i27 >> 2] = i13 + 1; 9759 i13 = HEAPU8[i13] | 0; 9760 } 9761 HEAP32[i2 >> 2] = i13; 9762 if ((HEAP8[i13 + 10913 | 0] & 3) == 0) { 9763 i9 = 296; 9764 break; 9765 } 9766 } 9767 if ((i9 | 0) == 288) { 9768 _lexerror(i2, 12368, 0); 9769 } else if ((i9 | 0) == 290) { 9770 _luaM_toobig(i12); 9771 } else if ((i9 | 0) == 296) { 9772 i6 = HEAP32[i4 >> 2] | 0; 9773 i4 = HEAP32[i10 >> 2] | 0; 9774 i6 = _luaS_newlstr(i4, HEAP32[i6 >> 2] | 0, HEAP32[i6 + 4 >> 2] | 0) | 0; 9775 i7 = i4 + 8 | 0; 9776 i8 = HEAP32[i7 >> 2] | 0; 9777 HEAP32[i7 >> 2] = i8 + 16; 9778 HEAP32[i8 >> 2] = i6; 9779 i5 = i6 + 4 | 0; 9780 HEAP32[i8 + 8 >> 2] = HEAPU8[i5] | 64; 9781 i8 = _luaH_set(i4, HEAP32[(HEAP32[i2 + 48 >> 2] | 0) + 4 >> 2] | 0, (HEAP32[i7 >> 2] | 0) + -16 | 0) | 0; 9782 i2 = i8 + 8 | 0; 9783 if ((HEAP32[i2 >> 2] | 0) == 0 ? (HEAP32[i8 >> 2] = 1, HEAP32[i2 >> 2] = 1, (HEAP32[(HEAP32[i4 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) : 0) { 9784 _luaC_step(i4); 9785 } 9786 HEAP32[i7 >> 2] = (HEAP32[i7 >> 2] | 0) + -16; 9787 HEAP32[i3 >> 2] = i6; 9788 if ((HEAP8[i5] | 0) != 4) { 9789 i27 = 288; 9790 STACKTOP = i1; 9791 return i27 | 0; 9792 } 9793 i2 = HEAP8[i6 + 6 | 0] | 0; 9794 if (i2 << 24 >> 24 == 0) { 9795 i27 = 288; 9796 STACKTOP = i1; 9797 return i27 | 0; 9798 } 9799 i27 = i2 & 255 | 256; 9800 STACKTOP = i1; 9801 return i27 | 0; 9802 } 9803 } else if ((i9 | 0) == 306) { 9804 STACKTOP = i1; 9805 return i2 | 0; 9806 } 9807 i9 = HEAP32[i4 >> 2] | 0; 9808 i12 = i9 + 4 | 0; 9809 i13 = HEAP32[i12 >> 2] | 0; 9810 i11 = i9 + 8 | 0; 9811 i10 = HEAP32[i11 >> 2] | 0; 9812 do { 9813 if ((i13 + 1 | 0) >>> 0 > i10 >>> 0) { 9814 if (i10 >>> 0 > 2147483645) { 9815 _lexerror(i2, 12368, 0); 9816 } 9817 i18 = i10 << 1; 9818 i13 = HEAP32[i2 + 52 >> 2] | 0; 9819 if ((i18 | 0) == -2) { 9820 _luaM_toobig(i13); 9821 } else { 9822 i16 = _luaM_realloc_(i13, HEAP32[i9 >> 2] | 0, i10, i18) | 0; 9823 HEAP32[i9 >> 2] = i16; 9824 HEAP32[i11 >> 2] = i18; 9825 i17 = HEAP32[i12 >> 2] | 0; 9826 break; 9827 } 9828 } else { 9829 i17 = i13; 9830 i16 = HEAP32[i9 >> 2] | 0; 9831 } 9832 } while (0); 9833 HEAP32[i12 >> 2] = i17 + 1; 9834 HEAP8[i16 + i17 | 0] = i20; 9835 i9 = HEAP32[i5 >> 2] | 0; 9836 i27 = HEAP32[i9 >> 2] | 0; 9837 HEAP32[i9 >> 2] = i27 + -1; 9838 if ((i27 | 0) == 0) { 9839 i9 = _luaZ_fill(i9) | 0; 9840 } else { 9841 i27 = i9 + 4 | 0; 9842 i9 = HEAP32[i27 >> 2] | 0; 9843 HEAP32[i27 >> 2] = i9 + 1; 9844 i9 = HEAPU8[i9] | 0; 9845 } 9846 HEAP32[i2 >> 2] = i9; 9847 if ((i20 | 0) == 48) { 9848 if ((i9 | 0) != 0) { 9849 if ((_memchr(12320, i9, 3) | 0) == 0) { 9850 i15 = i9; 9851 i9 = 12312; 9852 } else { 9853 i10 = HEAP32[i4 >> 2] | 0; 9854 i13 = i10 + 4 | 0; 9855 i16 = HEAP32[i13 >> 2] | 0; 9856 i11 = i10 + 8 | 0; 9857 i12 = HEAP32[i11 >> 2] | 0; 9858 do { 9859 if ((i16 + 1 | 0) >>> 0 > i12 >>> 0) { 9860 if (i12 >>> 0 > 2147483645) { 9861 _lexerror(i2, 12368, 0); 9862 } 9863 i17 = i12 << 1; 9864 i16 = HEAP32[i2 + 52 >> 2] | 0; 9865 if ((i17 | 0) == -2) { 9866 _luaM_toobig(i16); 9867 } else { 9868 i15 = _luaM_realloc_(i16, HEAP32[i10 >> 2] | 0, i12, i17) | 0; 9869 HEAP32[i10 >> 2] = i15; 9870 HEAP32[i11 >> 2] = i17; 9871 i14 = HEAP32[i13 >> 2] | 0; 9872 break; 9873 } 9874 } else { 9875 i14 = i16; 9876 i15 = HEAP32[i10 >> 2] | 0; 9877 } 9878 } while (0); 9879 HEAP32[i13 >> 2] = i14 + 1; 9880 HEAP8[i15 + i14 | 0] = i9; 9881 i9 = HEAP32[i5 >> 2] | 0; 9882 i27 = HEAP32[i9 >> 2] | 0; 9883 HEAP32[i9 >> 2] = i27 + -1; 9884 if ((i27 | 0) == 0) { 9885 i15 = _luaZ_fill(i9) | 0; 9886 } else { 9887 i27 = i9 + 4 | 0; 9888 i15 = HEAP32[i27 >> 2] | 0; 9889 HEAP32[i27 >> 2] = i15 + 1; 9890 i15 = HEAPU8[i15] | 0; 9891 } 9892 HEAP32[i2 >> 2] = i15; 9893 i9 = 12328; 9894 } 9895 } else { 9896 i15 = 0; 9897 i9 = 12312; 9898 } 9899 } else { 9900 i15 = i9; 9901 i9 = 12312; 9902 } 9903 i10 = i2 + 52 | 0; 9904 while (1) { 9905 if ((i15 | 0) != 0) { 9906 if ((_memchr(i9, i15, 3) | 0) != 0) { 9907 i12 = HEAP32[i4 >> 2] | 0; 9908 i11 = i12 + 4 | 0; 9909 i16 = HEAP32[i11 >> 2] | 0; 9910 i14 = i12 + 8 | 0; 9911 i13 = HEAP32[i14 >> 2] | 0; 9912 if ((i16 + 1 | 0) >>> 0 > i13 >>> 0) { 9913 if (i13 >>> 0 > 2147483645) { 9914 i9 = 227; 9915 break; 9916 } 9917 i17 = i13 << 1; 9918 i16 = HEAP32[i10 >> 2] | 0; 9919 if ((i17 | 0) == -2) { 9920 i9 = 229; 9921 break; 9922 } 9923 i27 = _luaM_realloc_(i16, HEAP32[i12 >> 2] | 0, i13, i17) | 0; 9924 HEAP32[i12 >> 2] = i27; 9925 HEAP32[i14 >> 2] = i17; 9926 i16 = HEAP32[i11 >> 2] | 0; 9927 i12 = i27; 9928 } else { 9929 i12 = HEAP32[i12 >> 2] | 0; 9930 } 9931 HEAP32[i11 >> 2] = i16 + 1; 9932 HEAP8[i12 + i16 | 0] = i15; 9933 i11 = HEAP32[i5 >> 2] | 0; 9934 i27 = HEAP32[i11 >> 2] | 0; 9935 HEAP32[i11 >> 2] = i27 + -1; 9936 if ((i27 | 0) == 0) { 9937 i15 = _luaZ_fill(i11) | 0; 9938 } else { 9939 i27 = i11 + 4 | 0; 9940 i15 = HEAP32[i27 >> 2] | 0; 9941 HEAP32[i27 >> 2] = i15 + 1; 9942 i15 = HEAPU8[i15] | 0; 9943 } 9944 HEAP32[i2 >> 2] = i15; 9945 if ((i15 | 0) != 0) { 9946 if ((_memchr(12336, i15, 3) | 0) != 0) { 9947 i12 = HEAP32[i4 >> 2] | 0; 9948 i11 = i12 + 4 | 0; 9949 i16 = HEAP32[i11 >> 2] | 0; 9950 i14 = i12 + 8 | 0; 9951 i13 = HEAP32[i14 >> 2] | 0; 9952 if ((i16 + 1 | 0) >>> 0 > i13 >>> 0) { 9953 if (i13 >>> 0 > 2147483645) { 9954 i9 = 239; 9955 break; 9956 } 9957 i17 = i13 << 1; 9958 i16 = HEAP32[i10 >> 2] | 0; 9959 if ((i17 | 0) == -2) { 9960 i9 = 241; 9961 break; 9962 } 9963 i27 = _luaM_realloc_(i16, HEAP32[i12 >> 2] | 0, i13, i17) | 0; 9964 HEAP32[i12 >> 2] = i27; 9965 HEAP32[i14 >> 2] = i17; 9966 i16 = HEAP32[i11 >> 2] | 0; 9967 i12 = i27; 9968 } else { 9969 i12 = HEAP32[i12 >> 2] | 0; 9970 } 9971 HEAP32[i11 >> 2] = i16 + 1; 9972 HEAP8[i12 + i16 | 0] = i15; 9973 i11 = HEAP32[i5 >> 2] | 0; 9974 i27 = HEAP32[i11 >> 2] | 0; 9975 HEAP32[i11 >> 2] = i27 + -1; 9976 if ((i27 | 0) == 0) { 9977 i15 = _luaZ_fill(i11) | 0; 9978 } else { 9979 i27 = i11 + 4 | 0; 9980 i15 = HEAP32[i27 >> 2] | 0; 9981 HEAP32[i27 >> 2] = i15 + 1; 9982 i15 = HEAPU8[i15] | 0; 9983 } 9984 HEAP32[i2 >> 2] = i15; 9985 } 9986 } else { 9987 i15 = 0; 9988 } 9989 } 9990 } else { 9991 i15 = 0; 9992 } 9993 i12 = HEAP32[i4 >> 2] | 0; 9994 i11 = i12 + 4 | 0; 9995 i17 = HEAP32[i11 >> 2] | 0; 9996 i14 = i12 + 8 | 0; 9997 i13 = HEAP32[i14 >> 2] | 0; 9998 i16 = (i17 + 1 | 0) >>> 0 > i13 >>> 0; 9999 if (!((HEAP8[i15 + 10913 | 0] & 16) != 0 | (i15 | 0) == 46)) { 10000 i9 = 259; 10001 break; 10002 } 10003 if (i16) { 10004 if (i13 >>> 0 > 2147483645) { 10005 i9 = 251; 10006 break; 10007 } 10008 i17 = i13 << 1; 10009 i16 = HEAP32[i10 >> 2] | 0; 10010 if ((i17 | 0) == -2) { 10011 i9 = 253; 10012 break; 10013 } 10014 i27 = _luaM_realloc_(i16, HEAP32[i12 >> 2] | 0, i13, i17) | 0; 10015 HEAP32[i12 >> 2] = i27; 10016 HEAP32[i14 >> 2] = i17; 10017 i17 = HEAP32[i11 >> 2] | 0; 10018 i12 = i27; 10019 } else { 10020 i12 = HEAP32[i12 >> 2] | 0; 10021 } 10022 HEAP32[i11 >> 2] = i17 + 1; 10023 HEAP8[i12 + i17 | 0] = i15; 10024 i11 = HEAP32[i5 >> 2] | 0; 10025 i27 = HEAP32[i11 >> 2] | 0; 10026 HEAP32[i11 >> 2] = i27 + -1; 10027 if ((i27 | 0) == 0) { 10028 i15 = _luaZ_fill(i11) | 0; 10029 } else { 10030 i27 = i11 + 4 | 0; 10031 i15 = HEAP32[i27 >> 2] | 0; 10032 HEAP32[i27 >> 2] = i15 + 1; 10033 i15 = HEAPU8[i15] | 0; 10034 } 10035 HEAP32[i2 >> 2] = i15; 10036 } 10037 if ((i9 | 0) == 227) { 10038 _lexerror(i2, 12368, 0); 10039 } else if ((i9 | 0) == 229) { 10040 _luaM_toobig(i16); 10041 } else if ((i9 | 0) == 239) { 10042 _lexerror(i2, 12368, 0); 10043 } else if ((i9 | 0) == 241) { 10044 _luaM_toobig(i16); 10045 } else if ((i9 | 0) == 251) { 10046 _lexerror(i2, 12368, 0); 10047 } else if ((i9 | 0) == 253) { 10048 _luaM_toobig(i16); 10049 } else if ((i9 | 0) == 259) { 10050 do { 10051 if (i16) { 10052 if (i13 >>> 0 > 2147483645) { 10053 _lexerror(i2, 12368, 0); 10054 } 10055 i5 = i13 << 1; 10056 i9 = HEAP32[i10 >> 2] | 0; 10057 if ((i5 | 0) == -2) { 10058 _luaM_toobig(i9); 10059 } else { 10060 i7 = _luaM_realloc_(i9, HEAP32[i12 >> 2] | 0, i13, i5) | 0; 10061 HEAP32[i12 >> 2] = i7; 10062 HEAP32[i14 >> 2] = i5; 10063 i8 = HEAP32[i11 >> 2] | 0; 10064 break; 10065 } 10066 } else { 10067 i8 = i17; 10068 i7 = HEAP32[i12 >> 2] | 0; 10069 } 10070 } while (0); 10071 HEAP32[i11 >> 2] = i8 + 1; 10072 HEAP8[i7 + i8 | 0] = 0; 10073 i5 = i2 + 76 | 0; 10074 i7 = HEAP8[i5] | 0; 10075 i10 = HEAP32[i4 >> 2] | 0; 10076 i8 = HEAP32[i10 >> 2] | 0; 10077 i10 = HEAP32[i10 + 4 >> 2] | 0; 10078 if ((i10 | 0) == 0) { 10079 i7 = -1; 10080 } else { 10081 do { 10082 i10 = i10 + -1 | 0; 10083 i9 = i8 + i10 | 0; 10084 if ((HEAP8[i9] | 0) == 46) { 10085 HEAP8[i9] = i7; 10086 } 10087 } while ((i10 | 0) != 0); 10088 i7 = HEAP32[i4 >> 2] | 0; 10089 i8 = HEAP32[i7 >> 2] | 0; 10090 i7 = (HEAP32[i7 + 4 >> 2] | 0) + -1 | 0; 10091 } 10092 if ((_luaO_str2d(i8, i7, i3) | 0) != 0) { 10093 i27 = 287; 10094 STACKTOP = i1; 10095 return i27 | 0; 10096 } 10097 i9 = HEAP8[i5] | 0; 10098 i8 = HEAP8[HEAP32[(_localeconv() | 0) >> 2] | 0] | 0; 10099 HEAP8[i5] = i8; 10100 i10 = HEAP32[i4 >> 2] | 0; 10101 i7 = HEAP32[i10 >> 2] | 0; 10102 i10 = HEAP32[i10 + 4 >> 2] | 0; 10103 if ((i10 | 0) == 0) { 10104 i8 = -1; 10105 } else { 10106 do { 10107 i10 = i10 + -1 | 0; 10108 i11 = i7 + i10 | 0; 10109 if ((HEAP8[i11] | 0) == i9 << 24 >> 24) { 10110 HEAP8[i11] = i8; 10111 } 10112 } while ((i10 | 0) != 0); 10113 i8 = HEAP32[i4 >> 2] | 0; 10114 i7 = HEAP32[i8 >> 2] | 0; 10115 i8 = (HEAP32[i8 + 4 >> 2] | 0) + -1 | 0; 10116 } 10117 if ((_luaO_str2d(i7, i8, i3) | 0) != 0) { 10118 i27 = 287; 10119 STACKTOP = i1; 10120 return i27 | 0; 10121 } 10122 i1 = HEAP8[i5] | 0; 10123 i4 = HEAP32[i4 >> 2] | 0; 10124 i3 = HEAP32[i4 >> 2] | 0; 10125 i4 = HEAP32[i4 + 4 >> 2] | 0; 10126 if ((i4 | 0) == 0) { 10127 _lexerror(i2, 12344, 287); 10128 } else { 10129 i6 = i4; 10130 } 10131 do { 10132 i6 = i6 + -1 | 0; 10133 i4 = i3 + i6 | 0; 10134 if ((HEAP8[i4] | 0) == i1 << 24 >> 24) { 10135 HEAP8[i4] = 46; 10136 } 10137 } while ((i6 | 0) != 0); 10138 _lexerror(i2, 12344, 287); 10139 } 10140 return 0; 10141 } 10142 function _luaV_execute(i1) { 10143 i1 = i1 | 0; 10144 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, d37 = 0.0, d38 = 0.0, d39 = 0.0; 10145 i12 = STACKTOP; 10146 STACKTOP = STACKTOP + 32 | 0; 10147 i13 = i12 + 24 | 0; 10148 i10 = i12 + 16 | 0; 10149 i9 = i12 + 8 | 0; 10150 i8 = i12; 10151 i3 = i1 + 16 | 0; 10152 i4 = i1 + 40 | 0; 10153 i6 = i1 + 12 | 0; 10154 i5 = i1 + 8 | 0; 10155 i11 = i1 + 24 | 0; 10156 i17 = i1 + 48 | 0; 10157 i2 = i1 + 20 | 0; 10158 i16 = i1 + 6 | 0; 10159 i7 = i1 + 44 | 0; 10160 i19 = HEAP32[i3 >> 2] | 0; 10161 L1 : while (1) { 10162 i22 = HEAP32[HEAP32[i19 >> 2] >> 2] | 0; 10163 i18 = i22 + 12 | 0; 10164 i23 = HEAP32[(HEAP32[i18 >> 2] | 0) + 8 >> 2] | 0; 10165 i20 = i19 + 24 | 0; 10166 i21 = i19 + 28 | 0; 10167 i22 = i22 + 16 | 0; 10168 i24 = i19 + 4 | 0; 10169 i25 = HEAP32[i20 >> 2] | 0; 10170 L3 : while (1) { 10171 i28 = HEAP32[i21 >> 2] | 0; 10172 HEAP32[i21 >> 2] = i28 + 4; 10173 i28 = HEAP32[i28 >> 2] | 0; 10174 i27 = HEAP8[i4] | 0; 10175 do { 10176 if (!((i27 & 12) == 0)) { 10177 i26 = (HEAP32[i17 >> 2] | 0) + -1 | 0; 10178 HEAP32[i17 >> 2] = i26; 10179 i26 = (i26 | 0) == 0; 10180 if (!i26 ? (i27 & 4) == 0 : 0) { 10181 break; 10182 } 10183 i25 = HEAP32[i3 >> 2] | 0; 10184 i29 = i27 & 255; 10185 if ((i29 & 8 | 0) == 0 | i26 ^ 1) { 10186 i27 = 0; 10187 } else { 10188 HEAP32[i17 >> 2] = HEAP32[i7 >> 2]; 10189 i27 = 1; 10190 } 10191 i26 = i25 + 18 | 0; 10192 i30 = HEAPU8[i26] | 0; 10193 if ((i30 & 128 | 0) == 0) { 10194 if (i27) { 10195 _luaD_hook(i1, 3, -1); 10196 } 10197 do { 10198 if ((i29 & 4 | 0) == 0) { 10199 i29 = i25 + 28 | 0; 10200 } else { 10201 i34 = HEAP32[(HEAP32[HEAP32[i25 >> 2] >> 2] | 0) + 12 >> 2] | 0; 10202 i29 = i25 + 28 | 0; 10203 i32 = HEAP32[i29 >> 2] | 0; 10204 i35 = HEAP32[i34 + 12 >> 2] | 0; 10205 i33 = (i32 - i35 >> 2) + -1 | 0; 10206 i34 = HEAP32[i34 + 20 >> 2] | 0; 10207 i31 = (i34 | 0) == 0; 10208 if (i31) { 10209 i30 = 0; 10210 } else { 10211 i30 = HEAP32[i34 + (i33 << 2) >> 2] | 0; 10212 } 10213 if ((i33 | 0) != 0 ? (i14 = HEAP32[i2 >> 2] | 0, i32 >>> 0 > i14 >>> 0) : 0) { 10214 if (i31) { 10215 i31 = 0; 10216 } else { 10217 i31 = HEAP32[i34 + ((i14 - i35 >> 2) + -1 << 2) >> 2] | 0; 10218 } 10219 if ((i30 | 0) == (i31 | 0)) { 10220 break; 10221 } 10222 } 10223 _luaD_hook(i1, 2, i30); 10224 } 10225 } while (0); 10226 HEAP32[i2 >> 2] = HEAP32[i29 >> 2]; 10227 if ((HEAP8[i16] | 0) == 1) { 10228 i15 = 23; 10229 break L1; 10230 } 10231 } else { 10232 HEAP8[i26] = i30 & 127; 10233 } 10234 i25 = HEAP32[i20 >> 2] | 0; 10235 } 10236 } while (0); 10237 i26 = i28 >>> 6 & 255; 10238 i27 = i25 + (i26 << 4) | 0; 10239 switch (i28 & 63 | 0) { 10240 case 9: 10241 { 10242 i28 = HEAP32[i22 + (i28 >>> 23 << 2) >> 2] | 0; 10243 i35 = HEAP32[i28 + 8 >> 2] | 0; 10244 i33 = i27; 10245 i34 = HEAP32[i33 + 4 >> 2] | 0; 10246 i36 = i35; 10247 HEAP32[i36 >> 2] = HEAP32[i33 >> 2]; 10248 HEAP32[i36 + 4 >> 2] = i34; 10249 i36 = i25 + (i26 << 4) + 8 | 0; 10250 HEAP32[i35 + 8 >> 2] = HEAP32[i36 >> 2]; 10251 if ((HEAP32[i36 >> 2] & 64 | 0) == 0) { 10252 continue L3; 10253 } 10254 i26 = HEAP32[i27 >> 2] | 0; 10255 if ((HEAP8[i26 + 5 | 0] & 3) == 0) { 10256 continue L3; 10257 } 10258 if ((HEAP8[i28 + 5 | 0] & 4) == 0) { 10259 continue L3; 10260 } 10261 _luaC_barrier_(i1, i28, i26); 10262 continue L3; 10263 } 10264 case 10: 10265 { 10266 i26 = i28 >>> 23; 10267 if ((i26 & 256 | 0) == 0) { 10268 i26 = i25 + (i26 << 4) | 0; 10269 } else { 10270 i26 = i23 + ((i26 & 255) << 4) | 0; 10271 } 10272 i28 = i28 >>> 14; 10273 if ((i28 & 256 | 0) == 0) { 10274 i25 = i25 + ((i28 & 511) << 4) | 0; 10275 } else { 10276 i25 = i23 + ((i28 & 255) << 4) | 0; 10277 } 10278 _luaV_settable(i1, i27, i26, i25); 10279 i25 = HEAP32[i20 >> 2] | 0; 10280 continue L3; 10281 } 10282 case 17: 10283 { 10284 i29 = i28 >>> 23; 10285 if ((i29 & 256 | 0) == 0) { 10286 i29 = i25 + (i29 << 4) | 0; 10287 } else { 10288 i29 = i23 + ((i29 & 255) << 4) | 0; 10289 } 10290 i28 = i28 >>> 14; 10291 if ((i28 & 256 | 0) == 0) { 10292 i28 = i25 + ((i28 & 511) << 4) | 0; 10293 } else { 10294 i28 = i23 + ((i28 & 255) << 4) | 0; 10295 } 10296 if ((HEAP32[i29 + 8 >> 2] | 0) == 3 ? (HEAP32[i28 + 8 >> 2] | 0) == 3 : 0) { 10297 d37 = +HEAPF64[i29 >> 3]; 10298 d38 = +HEAPF64[i28 >> 3]; 10299 HEAPF64[i27 >> 3] = d37 - d38 * +Math_floor(+(d37 / d38)); 10300 HEAP32[i25 + (i26 << 4) + 8 >> 2] = 3; 10301 continue L3; 10302 } 10303 _luaV_arith(i1, i27, i29, i28, 10); 10304 i25 = HEAP32[i20 >> 2] | 0; 10305 continue L3; 10306 } 10307 case 23: 10308 { 10309 if ((i26 | 0) != 0) { 10310 _luaF_close(i1, (HEAP32[i20 >> 2] | 0) + (i26 + -1 << 4) | 0); 10311 } 10312 HEAP32[i21 >> 2] = (HEAP32[i21 >> 2] | 0) + ((i28 >>> 14) + -131071 << 2); 10313 continue L3; 10314 } 10315 case 24: 10316 { 10317 i27 = i28 >>> 23; 10318 if ((i27 & 256 | 0) == 0) { 10319 i27 = i25 + (i27 << 4) | 0; 10320 } else { 10321 i27 = i23 + ((i27 & 255) << 4) | 0; 10322 } 10323 i28 = i28 >>> 14; 10324 if ((i28 & 256 | 0) == 0) { 10325 i25 = i25 + ((i28 & 511) << 4) | 0; 10326 } else { 10327 i25 = i23 + ((i28 & 255) << 4) | 0; 10328 } 10329 if ((HEAP32[i27 + 8 >> 2] | 0) == (HEAP32[i25 + 8 >> 2] | 0)) { 10330 i27 = (_luaV_equalobj_(i1, i27, i25) | 0) != 0; 10331 } else { 10332 i27 = 0; 10333 } 10334 i25 = HEAP32[i21 >> 2] | 0; 10335 if ((i27 & 1 | 0) == (i26 | 0)) { 10336 i26 = HEAP32[i25 >> 2] | 0; 10337 i27 = i26 >>> 6 & 255; 10338 if ((i27 | 0) != 0) { 10339 _luaF_close(i1, (HEAP32[i20 >> 2] | 0) + (i27 + -1 << 4) | 0); 10340 i25 = HEAP32[i21 >> 2] | 0; 10341 } 10342 i25 = i25 + ((i26 >>> 14) + -131070 << 2) | 0; 10343 } else { 10344 i25 = i25 + 4 | 0; 10345 } 10346 HEAP32[i21 >> 2] = i25; 10347 i25 = HEAP32[i20 >> 2] | 0; 10348 continue L3; 10349 } 10350 case 18: 10351 { 10352 i29 = i28 >>> 23; 10353 if ((i29 & 256 | 0) == 0) { 10354 i29 = i25 + (i29 << 4) | 0; 10355 } else { 10356 i29 = i23 + ((i29 & 255) << 4) | 0; 10357 } 10358 i28 = i28 >>> 14; 10359 if ((i28 & 256 | 0) == 0) { 10360 i28 = i25 + ((i28 & 511) << 4) | 0; 10361 } else { 10362 i28 = i23 + ((i28 & 255) << 4) | 0; 10363 } 10364 if ((HEAP32[i29 + 8 >> 2] | 0) == 3 ? (HEAP32[i28 + 8 >> 2] | 0) == 3 : 0) { 10365 HEAPF64[i27 >> 3] = +Math_pow(+(+HEAPF64[i29 >> 3]), +(+HEAPF64[i28 >> 3])); 10366 HEAP32[i25 + (i26 << 4) + 8 >> 2] = 3; 10367 continue L3; 10368 } 10369 _luaV_arith(i1, i27, i29, i28, 11); 10370 i25 = HEAP32[i20 >> 2] | 0; 10371 continue L3; 10372 } 10373 case 1: 10374 { 10375 i36 = i28 >>> 14; 10376 i33 = i23 + (i36 << 4) | 0; 10377 i34 = HEAP32[i33 + 4 >> 2] | 0; 10378 i35 = i27; 10379 HEAP32[i35 >> 2] = HEAP32[i33 >> 2]; 10380 HEAP32[i35 + 4 >> 2] = i34; 10381 HEAP32[i25 + (i26 << 4) + 8 >> 2] = HEAP32[i23 + (i36 << 4) + 8 >> 2]; 10382 continue L3; 10383 } 10384 case 0: 10385 { 10386 i36 = i28 >>> 23; 10387 i33 = i25 + (i36 << 4) | 0; 10388 i34 = HEAP32[i33 + 4 >> 2] | 0; 10389 i35 = i27; 10390 HEAP32[i35 >> 2] = HEAP32[i33 >> 2]; 10391 HEAP32[i35 + 4 >> 2] = i34; 10392 HEAP32[i25 + (i26 << 4) + 8 >> 2] = HEAP32[i25 + (i36 << 4) + 8 >> 2]; 10393 continue L3; 10394 } 10395 case 2: 10396 { 10397 i36 = HEAP32[i21 >> 2] | 0; 10398 HEAP32[i21 >> 2] = i36 + 4; 10399 i36 = (HEAP32[i36 >> 2] | 0) >>> 6; 10400 i33 = i23 + (i36 << 4) | 0; 10401 i34 = HEAP32[i33 + 4 >> 2] | 0; 10402 i35 = i27; 10403 HEAP32[i35 >> 2] = HEAP32[i33 >> 2]; 10404 HEAP32[i35 + 4 >> 2] = i34; 10405 HEAP32[i25 + (i26 << 4) + 8 >> 2] = HEAP32[i23 + (i36 << 4) + 8 >> 2]; 10406 continue L3; 10407 } 10408 case 5: 10409 { 10410 i36 = HEAP32[(HEAP32[i22 + (i28 >>> 23 << 2) >> 2] | 0) + 8 >> 2] | 0; 10411 i33 = i36; 10412 i34 = HEAP32[i33 + 4 >> 2] | 0; 10413 i35 = i27; 10414 HEAP32[i35 >> 2] = HEAP32[i33 >> 2]; 10415 HEAP32[i35 + 4 >> 2] = i34; 10416 HEAP32[i25 + (i26 << 4) + 8 >> 2] = HEAP32[i36 + 8 >> 2]; 10417 continue L3; 10418 } 10419 case 3: 10420 { 10421 HEAP32[i27 >> 2] = i28 >>> 23; 10422 HEAP32[i25 + (i26 << 4) + 8 >> 2] = 1; 10423 if ((i28 & 8372224 | 0) == 0) { 10424 continue L3; 10425 } 10426 HEAP32[i21 >> 2] = (HEAP32[i21 >> 2] | 0) + 4; 10427 continue L3; 10428 } 10429 case 7: 10430 { 10431 i26 = i28 >>> 14; 10432 if ((i26 & 256 | 0) == 0) { 10433 i26 = i25 + ((i26 & 511) << 4) | 0; 10434 } else { 10435 i26 = i23 + ((i26 & 255) << 4) | 0; 10436 } 10437 _luaV_gettable(i1, i25 + (i28 >>> 23 << 4) | 0, i26, i27); 10438 i25 = HEAP32[i20 >> 2] | 0; 10439 continue L3; 10440 } 10441 case 12: 10442 { 10443 i36 = i28 >>> 23; 10444 i29 = i25 + (i36 << 4) | 0; 10445 i26 = i26 + 1 | 0; 10446 i33 = i29; 10447 i34 = HEAP32[i33 + 4 >> 2] | 0; 10448 i35 = i25 + (i26 << 4) | 0; 10449 HEAP32[i35 >> 2] = HEAP32[i33 >> 2]; 10450 HEAP32[i35 + 4 >> 2] = i34; 10451 HEAP32[i25 + (i26 << 4) + 8 >> 2] = HEAP32[i25 + (i36 << 4) + 8 >> 2]; 10452 i26 = i28 >>> 14; 10453 if ((i26 & 256 | 0) == 0) { 10454 i25 = i25 + ((i26 & 511) << 4) | 0; 10455 } else { 10456 i25 = i23 + ((i26 & 255) << 4) | 0; 10457 } 10458 _luaV_gettable(i1, i29, i25, i27); 10459 i25 = HEAP32[i20 >> 2] | 0; 10460 continue L3; 10461 } 10462 case 13: 10463 { 10464 i29 = i28 >>> 23; 10465 if ((i29 & 256 | 0) == 0) { 10466 i29 = i25 + (i29 << 4) | 0; 10467 } else { 10468 i29 = i23 + ((i29 & 255) << 4) | 0; 10469 } 10470 i28 = i28 >>> 14; 10471 if ((i28 & 256 | 0) == 0) { 10472 i28 = i25 + ((i28 & 511) << 4) | 0; 10473 } else { 10474 i28 = i23 + ((i28 & 255) << 4) | 0; 10475 } 10476 if ((HEAP32[i29 + 8 >> 2] | 0) == 3 ? (HEAP32[i28 + 8 >> 2] | 0) == 3 : 0) { 10477 HEAPF64[i27 >> 3] = +HEAPF64[i29 >> 3] + +HEAPF64[i28 >> 3]; 10478 HEAP32[i25 + (i26 << 4) + 8 >> 2] = 3; 10479 continue L3; 10480 } 10481 _luaV_arith(i1, i27, i29, i28, 6); 10482 i25 = HEAP32[i20 >> 2] | 0; 10483 continue L3; 10484 } 10485 case 14: 10486 { 10487 i29 = i28 >>> 23; 10488 if ((i29 & 256 | 0) == 0) { 10489 i29 = i25 + (i29 << 4) | 0; 10490 } else { 10491 i29 = i23 + ((i29 & 255) << 4) | 0; 10492 } 10493 i28 = i28 >>> 14; 10494 if ((i28 & 256 | 0) == 0) { 10495 i28 = i25 + ((i28 & 511) << 4) | 0; 10496 } else { 10497 i28 = i23 + ((i28 & 255) << 4) | 0; 10498 } 10499 if ((HEAP32[i29 + 8 >> 2] | 0) == 3 ? (HEAP32[i28 + 8 >> 2] | 0) == 3 : 0) { 10500 HEAPF64[i27 >> 3] = +HEAPF64[i29 >> 3] - +HEAPF64[i28 >> 3]; 10501 HEAP32[i25 + (i26 << 4) + 8 >> 2] = 3; 10502 continue L3; 10503 } 10504 _luaV_arith(i1, i27, i29, i28, 7); 10505 i25 = HEAP32[i20 >> 2] | 0; 10506 continue L3; 10507 } 10508 case 6: 10509 { 10510 i26 = i28 >>> 14; 10511 if ((i26 & 256 | 0) == 0) { 10512 i25 = i25 + ((i26 & 511) << 4) | 0; 10513 } else { 10514 i25 = i23 + ((i26 & 255) << 4) | 0; 10515 } 10516 _luaV_gettable(i1, HEAP32[(HEAP32[i22 + (i28 >>> 23 << 2) >> 2] | 0) + 8 >> 2] | 0, i25, i27); 10517 i25 = HEAP32[i20 >> 2] | 0; 10518 continue L3; 10519 } 10520 case 4: 10521 { 10522 i26 = i28 >>> 23; 10523 while (1) { 10524 HEAP32[i27 + 8 >> 2] = 0; 10525 if ((i26 | 0) == 0) { 10526 continue L3; 10527 } else { 10528 i26 = i26 + -1 | 0; 10529 i27 = i27 + 16 | 0; 10530 } 10531 } 10532 } 10533 case 8: 10534 { 10535 i27 = i28 >>> 23; 10536 if ((i27 & 256 | 0) == 0) { 10537 i27 = i25 + (i27 << 4) | 0; 10538 } else { 10539 i27 = i23 + ((i27 & 255) << 4) | 0; 10540 } 10541 i28 = i28 >>> 14; 10542 if ((i28 & 256 | 0) == 0) { 10543 i25 = i25 + ((i28 & 511) << 4) | 0; 10544 } else { 10545 i25 = i23 + ((i28 & 255) << 4) | 0; 10546 } 10547 _luaV_settable(i1, HEAP32[(HEAP32[i22 + (i26 << 2) >> 2] | 0) + 8 >> 2] | 0, i27, i25); 10548 i25 = HEAP32[i20 >> 2] | 0; 10549 continue L3; 10550 } 10551 case 11: 10552 { 10553 i29 = i28 >>> 23; 10554 i28 = i28 >>> 14 & 511; 10555 i30 = _luaH_new(i1) | 0; 10556 HEAP32[i27 >> 2] = i30; 10557 HEAP32[i25 + (i26 << 4) + 8 >> 2] = 69; 10558 if ((i28 | i29 | 0) != 0) { 10559 i36 = _luaO_fb2int(i29) | 0; 10560 _luaH_resize(i1, i30, i36, _luaO_fb2int(i28) | 0); 10561 } 10562 if ((HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] | 0) > 0) { 10563 HEAP32[i5 >> 2] = i25 + (i26 + 1 << 4); 10564 _luaC_step(i1); 10565 HEAP32[i5 >> 2] = HEAP32[i24 >> 2]; 10566 } 10567 i25 = HEAP32[i20 >> 2] | 0; 10568 continue L3; 10569 } 10570 case 19: 10571 { 10572 i36 = i28 >>> 23; 10573 i28 = i25 + (i36 << 4) | 0; 10574 if ((HEAP32[i25 + (i36 << 4) + 8 >> 2] | 0) == 3) { 10575 HEAPF64[i27 >> 3] = -+HEAPF64[i28 >> 3]; 10576 HEAP32[i25 + (i26 << 4) + 8 >> 2] = 3; 10577 continue L3; 10578 } else { 10579 _luaV_arith(i1, i27, i28, i28, 12); 10580 i25 = HEAP32[i20 >> 2] | 0; 10581 continue L3; 10582 } 10583 } 10584 case 15: 10585 { 10586 i29 = i28 >>> 23; 10587 if ((i29 & 256 | 0) == 0) { 10588 i29 = i25 + (i29 << 4) | 0; 10589 } else { 10590 i29 = i23 + ((i29 & 255) << 4) | 0; 10591 } 10592 i28 = i28 >>> 14; 10593 if ((i28 & 256 | 0) == 0) { 10594 i28 = i25 + ((i28 & 511) << 4) | 0; 10595 } else { 10596 i28 = i23 + ((i28 & 255) << 4) | 0; 10597 } 10598 if ((HEAP32[i29 + 8 >> 2] | 0) == 3 ? (HEAP32[i28 + 8 >> 2] | 0) == 3 : 0) { 10599 HEAPF64[i27 >> 3] = +HEAPF64[i29 >> 3] * +HEAPF64[i28 >> 3]; 10600 HEAP32[i25 + (i26 << 4) + 8 >> 2] = 3; 10601 continue L3; 10602 } 10603 _luaV_arith(i1, i27, i29, i28, 8); 10604 i25 = HEAP32[i20 >> 2] | 0; 10605 continue L3; 10606 } 10607 case 16: 10608 { 10609 i29 = i28 >>> 23; 10610 if ((i29 & 256 | 0) == 0) { 10611 i29 = i25 + (i29 << 4) | 0; 10612 } else { 10613 i29 = i23 + ((i29 & 255) << 4) | 0; 10614 } 10615 i28 = i28 >>> 14; 10616 if ((i28 & 256 | 0) == 0) { 10617 i28 = i25 + ((i28 & 511) << 4) | 0; 10618 } else { 10619 i28 = i23 + ((i28 & 255) << 4) | 0; 10620 } 10621 if ((HEAP32[i29 + 8 >> 2] | 0) == 3 ? (HEAP32[i28 + 8 >> 2] | 0) == 3 : 0) { 10622 HEAPF64[i27 >> 3] = +HEAPF64[i29 >> 3] / +HEAPF64[i28 >> 3]; 10623 HEAP32[i25 + (i26 << 4) + 8 >> 2] = 3; 10624 continue L3; 10625 } 10626 _luaV_arith(i1, i27, i29, i28, 9); 10627 i25 = HEAP32[i20 >> 2] | 0; 10628 continue L3; 10629 } 10630 case 20: 10631 { 10632 i29 = i28 >>> 23; 10633 i28 = HEAP32[i25 + (i29 << 4) + 8 >> 2] | 0; 10634 if ((i28 | 0) != 0) { 10635 if ((i28 | 0) == 1) { 10636 i28 = (HEAP32[i25 + (i29 << 4) >> 2] | 0) == 0; 10637 } else { 10638 i28 = 0; 10639 } 10640 } else { 10641 i28 = 1; 10642 } 10643 HEAP32[i27 >> 2] = i28 & 1; 10644 HEAP32[i25 + (i26 << 4) + 8 >> 2] = 1; 10645 continue L3; 10646 } 10647 case 21: 10648 { 10649 _luaV_objlen(i1, i27, i25 + (i28 >>> 23 << 4) | 0); 10650 i25 = HEAP32[i20 >> 2] | 0; 10651 continue L3; 10652 } 10653 case 22: 10654 { 10655 i27 = i28 >>> 23; 10656 i28 = i28 >>> 14 & 511; 10657 HEAP32[i5 >> 2] = i25 + (i28 + 1 << 4); 10658 _luaV_concat(i1, 1 - i27 + i28 | 0); 10659 i25 = HEAP32[i20 >> 2] | 0; 10660 i28 = i25 + (i27 << 4) | 0; 10661 i34 = i28; 10662 i35 = HEAP32[i34 + 4 >> 2] | 0; 10663 i36 = i25 + (i26 << 4) | 0; 10664 HEAP32[i36 >> 2] = HEAP32[i34 >> 2]; 10665 HEAP32[i36 + 4 >> 2] = i35; 10666 HEAP32[i25 + (i26 << 4) + 8 >> 2] = HEAP32[i25 + (i27 << 4) + 8 >> 2]; 10667 if ((HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] | 0) > 0) { 10668 if (!(i26 >>> 0 < i27 >>> 0)) { 10669 i28 = i25 + (i26 + 1 << 4) | 0; 10670 } 10671 HEAP32[i5 >> 2] = i28; 10672 _luaC_step(i1); 10673 HEAP32[i5 >> 2] = HEAP32[i24 >> 2]; 10674 } 10675 i25 = HEAP32[i20 >> 2] | 0; 10676 HEAP32[i5 >> 2] = HEAP32[i24 >> 2]; 10677 continue L3; 10678 } 10679 case 25: 10680 { 10681 i27 = i28 >>> 23; 10682 if ((i27 & 256 | 0) == 0) { 10683 i27 = i25 + (i27 << 4) | 0; 10684 } else { 10685 i27 = i23 + ((i27 & 255) << 4) | 0; 10686 } 10687 i28 = i28 >>> 14; 10688 if ((i28 & 256 | 0) == 0) { 10689 i25 = i25 + ((i28 & 511) << 4) | 0; 10690 } else { 10691 i25 = i23 + ((i28 & 255) << 4) | 0; 10692 } 10693 i36 = (_luaV_lessthan(i1, i27, i25) | 0) == (i26 | 0); 10694 i26 = HEAP32[i21 >> 2] | 0; 10695 if (i36) { 10696 i25 = HEAP32[i26 >> 2] | 0; 10697 i27 = i25 >>> 6 & 255; 10698 if ((i27 | 0) != 0) { 10699 _luaF_close(i1, (HEAP32[i20 >> 2] | 0) + (i27 + -1 << 4) | 0); 10700 i26 = HEAP32[i21 >> 2] | 0; 10701 } 10702 i25 = i26 + ((i25 >>> 14) + -131070 << 2) | 0; 10703 } else { 10704 i25 = i26 + 4 | 0; 10705 } 10706 HEAP32[i21 >> 2] = i25; 10707 i25 = HEAP32[i20 >> 2] | 0; 10708 continue L3; 10709 } 10710 case 27: 10711 { 10712 i29 = HEAP32[i25 + (i26 << 4) + 8 >> 2] | 0; 10713 i26 = (i29 | 0) == 0; 10714 if ((i28 & 8372224 | 0) == 0) { 10715 if (!i26) { 10716 if (!((i29 | 0) == 1 ? (HEAP32[i27 >> 2] | 0) == 0 : 0)) { 10717 i15 = 192; 10718 } 10719 } 10720 } else { 10721 if (!i26) { 10722 if ((i29 | 0) == 1 ? (HEAP32[i27 >> 2] | 0) == 0 : 0) { 10723 i15 = 192; 10724 } 10725 } else { 10726 i15 = 192; 10727 } 10728 } 10729 if ((i15 | 0) == 192) { 10730 i15 = 0; 10731 HEAP32[i21 >> 2] = (HEAP32[i21 >> 2] | 0) + 4; 10732 continue L3; 10733 } 10734 i27 = HEAP32[i21 >> 2] | 0; 10735 i26 = HEAP32[i27 >> 2] | 0; 10736 i28 = i26 >>> 6 & 255; 10737 if ((i28 | 0) != 0) { 10738 _luaF_close(i1, (HEAP32[i20 >> 2] | 0) + (i28 + -1 << 4) | 0); 10739 i27 = HEAP32[i21 >> 2] | 0; 10740 } 10741 HEAP32[i21 >> 2] = i27 + ((i26 >>> 14) + -131070 << 2); 10742 continue L3; 10743 } 10744 case 26: 10745 { 10746 i27 = i28 >>> 23; 10747 if ((i27 & 256 | 0) == 0) { 10748 i27 = i25 + (i27 << 4) | 0; 10749 } else { 10750 i27 = i23 + ((i27 & 255) << 4) | 0; 10751 } 10752 i28 = i28 >>> 14; 10753 if ((i28 & 256 | 0) == 0) { 10754 i25 = i25 + ((i28 & 511) << 4) | 0; 10755 } else { 10756 i25 = i23 + ((i28 & 255) << 4) | 0; 10757 } 10758 i36 = (_luaV_lessequal(i1, i27, i25) | 0) == (i26 | 0); 10759 i26 = HEAP32[i21 >> 2] | 0; 10760 if (i36) { 10761 i25 = HEAP32[i26 >> 2] | 0; 10762 i27 = i25 >>> 6 & 255; 10763 if ((i27 | 0) != 0) { 10764 _luaF_close(i1, (HEAP32[i20 >> 2] | 0) + (i27 + -1 << 4) | 0); 10765 i26 = HEAP32[i21 >> 2] | 0; 10766 } 10767 i25 = i26 + ((i25 >>> 14) + -131070 << 2) | 0; 10768 } else { 10769 i25 = i26 + 4 | 0; 10770 } 10771 HEAP32[i21 >> 2] = i25; 10772 i25 = HEAP32[i20 >> 2] | 0; 10773 continue L3; 10774 } 10775 case 28: 10776 { 10777 i30 = i28 >>> 23; 10778 i29 = i25 + (i30 << 4) | 0; 10779 i30 = HEAP32[i25 + (i30 << 4) + 8 >> 2] | 0; 10780 i31 = (i30 | 0) == 0; 10781 if ((i28 & 8372224 | 0) == 0) { 10782 if (!i31) { 10783 if (!((i30 | 0) == 1 ? (HEAP32[i29 >> 2] | 0) == 0 : 0)) { 10784 i15 = 203; 10785 } 10786 } 10787 } else { 10788 if (!i31) { 10789 if ((i30 | 0) == 1 ? (HEAP32[i29 >> 2] | 0) == 0 : 0) { 10790 i15 = 203; 10791 } 10792 } else { 10793 i15 = 203; 10794 } 10795 } 10796 if ((i15 | 0) == 203) { 10797 i15 = 0; 10798 HEAP32[i21 >> 2] = (HEAP32[i21 >> 2] | 0) + 4; 10799 continue L3; 10800 } 10801 i36 = i29; 10802 i28 = HEAP32[i36 + 4 >> 2] | 0; 10803 HEAP32[i27 >> 2] = HEAP32[i36 >> 2]; 10804 HEAP32[i27 + 4 >> 2] = i28; 10805 HEAP32[i25 + (i26 << 4) + 8 >> 2] = i30; 10806 i27 = HEAP32[i21 >> 2] | 0; 10807 i26 = HEAP32[i27 >> 2] | 0; 10808 i28 = i26 >>> 6 & 255; 10809 if ((i28 | 0) != 0) { 10810 _luaF_close(i1, (HEAP32[i20 >> 2] | 0) + (i28 + -1 << 4) | 0); 10811 i27 = HEAP32[i21 >> 2] | 0; 10812 } 10813 HEAP32[i21 >> 2] = i27 + ((i26 >>> 14) + -131070 << 2); 10814 continue L3; 10815 } 10816 case 30: 10817 { 10818 i28 = i28 >>> 23; 10819 if ((i28 | 0) != 0) { 10820 HEAP32[i5 >> 2] = i25 + (i26 + i28 << 4); 10821 } 10822 if ((_luaD_precall(i1, i27, -1) | 0) == 0) { 10823 i15 = 218; 10824 break L3; 10825 } 10826 i25 = HEAP32[i20 >> 2] | 0; 10827 continue L3; 10828 } 10829 case 29: 10830 { 10831 i29 = i28 >>> 23; 10832 i28 = i28 >>> 14 & 511; 10833 if ((i29 | 0) != 0) { 10834 HEAP32[i5 >> 2] = i25 + (i26 + i29 << 4); 10835 } 10836 if ((_luaD_precall(i1, i27, i28 + -1 | 0) | 0) == 0) { 10837 i15 = 213; 10838 break L3; 10839 } 10840 if ((i28 | 0) != 0) { 10841 HEAP32[i5 >> 2] = HEAP32[i24 >> 2]; 10842 } 10843 i25 = HEAP32[i20 >> 2] | 0; 10844 continue L3; 10845 } 10846 case 32: 10847 { 10848 d39 = +HEAPF64[i25 + (i26 + 2 << 4) >> 3]; 10849 d38 = d39 + +HEAPF64[i27 >> 3]; 10850 d37 = +HEAPF64[i25 + (i26 + 1 << 4) >> 3]; 10851 if (d39 > 0.0) { 10852 if (!(d38 <= d37)) { 10853 continue L3; 10854 } 10855 } else { 10856 if (!(d37 <= d38)) { 10857 continue L3; 10858 } 10859 } 10860 HEAP32[i21 >> 2] = (HEAP32[i21 >> 2] | 0) + ((i28 >>> 14) + -131071 << 2); 10861 HEAPF64[i27 >> 3] = d38; 10862 HEAP32[i25 + (i26 << 4) + 8 >> 2] = 3; 10863 i36 = i26 + 3 | 0; 10864 HEAPF64[i25 + (i36 << 4) >> 3] = d38; 10865 HEAP32[i25 + (i36 << 4) + 8 >> 2] = 3; 10866 continue L3; 10867 } 10868 case 33: 10869 { 10870 i32 = i26 + 1 | 0; 10871 i30 = i25 + (i32 << 4) | 0; 10872 i31 = i26 + 2 | 0; 10873 i29 = i25 + (i31 << 4) | 0; 10874 i26 = i25 + (i26 << 4) + 8 | 0; 10875 i33 = HEAP32[i26 >> 2] | 0; 10876 if ((i33 | 0) != 3) { 10877 if ((i33 & 15 | 0) != 4) { 10878 i15 = 239; 10879 break L1; 10880 } 10881 i36 = HEAP32[i27 >> 2] | 0; 10882 if ((_luaO_str2d(i36 + 16 | 0, HEAP32[i36 + 12 >> 2] | 0, i8) | 0) == 0) { 10883 i15 = 239; 10884 break L1; 10885 } 10886 HEAPF64[i27 >> 3] = +HEAPF64[i8 >> 3]; 10887 HEAP32[i26 >> 2] = 3; 10888 if ((i27 | 0) == 0) { 10889 i15 = 239; 10890 break L1; 10891 } 10892 } 10893 i33 = i25 + (i32 << 4) + 8 | 0; 10894 i32 = HEAP32[i33 >> 2] | 0; 10895 if ((i32 | 0) != 3) { 10896 if ((i32 & 15 | 0) != 4) { 10897 i15 = 244; 10898 break L1; 10899 } 10900 i36 = HEAP32[i30 >> 2] | 0; 10901 if ((_luaO_str2d(i36 + 16 | 0, HEAP32[i36 + 12 >> 2] | 0, i9) | 0) == 0) { 10902 i15 = 244; 10903 break L1; 10904 } 10905 HEAPF64[i30 >> 3] = +HEAPF64[i9 >> 3]; 10906 HEAP32[i33 >> 2] = 3; 10907 } 10908 i31 = i25 + (i31 << 4) + 8 | 0; 10909 i30 = HEAP32[i31 >> 2] | 0; 10910 if ((i30 | 0) != 3) { 10911 if ((i30 & 15 | 0) != 4) { 10912 i15 = 249; 10913 break L1; 10914 } 10915 i36 = HEAP32[i29 >> 2] | 0; 10916 if ((_luaO_str2d(i36 + 16 | 0, HEAP32[i36 + 12 >> 2] | 0, i10) | 0) == 0) { 10917 i15 = 249; 10918 break L1; 10919 } 10920 HEAPF64[i29 >> 3] = +HEAPF64[i10 >> 3]; 10921 HEAP32[i31 >> 2] = 3; 10922 } 10923 HEAPF64[i27 >> 3] = +HEAPF64[i27 >> 3] - +HEAPF64[i29 >> 3]; 10924 HEAP32[i26 >> 2] = 3; 10925 HEAP32[i21 >> 2] = (HEAP32[i21 >> 2] | 0) + ((i28 >>> 14) + -131071 << 2); 10926 continue L3; 10927 } 10928 case 31: 10929 { 10930 i15 = 223; 10931 break L3; 10932 } 10933 case 34: 10934 { 10935 i35 = i26 + 3 | 0; 10936 i36 = i25 + (i35 << 4) | 0; 10937 i33 = i26 + 2 | 0; 10938 i34 = i26 + 5 | 0; 10939 i32 = i25 + (i33 << 4) | 0; 10940 i31 = HEAP32[i32 + 4 >> 2] | 0; 10941 i30 = i25 + (i34 << 4) | 0; 10942 HEAP32[i30 >> 2] = HEAP32[i32 >> 2]; 10943 HEAP32[i30 + 4 >> 2] = i31; 10944 HEAP32[i25 + (i34 << 4) + 8 >> 2] = HEAP32[i25 + (i33 << 4) + 8 >> 2]; 10945 i34 = i26 + 1 | 0; 10946 i33 = i26 + 4 | 0; 10947 i30 = i25 + (i34 << 4) | 0; 10948 i31 = HEAP32[i30 + 4 >> 2] | 0; 10949 i32 = i25 + (i33 << 4) | 0; 10950 HEAP32[i32 >> 2] = HEAP32[i30 >> 2]; 10951 HEAP32[i32 + 4 >> 2] = i31; 10952 HEAP32[i25 + (i33 << 4) + 8 >> 2] = HEAP32[i25 + (i34 << 4) + 8 >> 2]; 10953 i33 = i27; 10954 i34 = HEAP32[i33 + 4 >> 2] | 0; 10955 i27 = i36; 10956 HEAP32[i27 >> 2] = HEAP32[i33 >> 2]; 10957 HEAP32[i27 + 4 >> 2] = i34; 10958 HEAP32[i25 + (i35 << 4) + 8 >> 2] = HEAP32[i25 + (i26 << 4) + 8 >> 2]; 10959 HEAP32[i5 >> 2] = i25 + (i26 + 6 << 4); 10960 _luaD_call(i1, i36, i28 >>> 14 & 511, 1); 10961 i36 = HEAP32[i20 >> 2] | 0; 10962 HEAP32[i5 >> 2] = HEAP32[i24 >> 2]; 10963 i27 = HEAP32[i21 >> 2] | 0; 10964 HEAP32[i21 >> 2] = i27 + 4; 10965 i27 = HEAP32[i27 >> 2] | 0; 10966 i25 = i36; 10967 i28 = i27; 10968 i27 = i36 + ((i27 >>> 6 & 255) << 4) | 0; 10969 break; 10970 } 10971 case 35: 10972 { 10973 break; 10974 } 10975 case 36: 10976 { 10977 i29 = i28 >>> 23; 10978 i28 = i28 >>> 14 & 511; 10979 if ((i29 | 0) == 0) { 10980 i29 = ((HEAP32[i5 >> 2] | 0) - i27 >> 4) + -1 | 0; 10981 } 10982 if ((i28 | 0) == 0) { 10983 i28 = HEAP32[i21 >> 2] | 0; 10984 HEAP32[i21 >> 2] = i28 + 4; 10985 i28 = (HEAP32[i28 >> 2] | 0) >>> 6; 10986 } 10987 i27 = HEAP32[i27 >> 2] | 0; 10988 i30 = i29 + -50 + (i28 * 50 | 0) | 0; 10989 if ((i30 | 0) > (HEAP32[i27 + 28 >> 2] | 0)) { 10990 _luaH_resizearray(i1, i27, i30); 10991 } 10992 if ((i29 | 0) > 0) { 10993 i28 = i27 + 5 | 0; 10994 while (1) { 10995 i36 = i29 + i26 | 0; 10996 i32 = i25 + (i36 << 4) | 0; 10997 i31 = i30 + -1 | 0; 10998 _luaH_setint(i1, i27, i30, i32); 10999 if (((HEAP32[i25 + (i36 << 4) + 8 >> 2] & 64 | 0) != 0 ? !((HEAP8[(HEAP32[i32 >> 2] | 0) + 5 | 0] & 3) == 0) : 0) ? !((HEAP8[i28] & 4) == 0) : 0) { 11000 _luaC_barrierback_(i1, i27); 11001 } 11002 i29 = i29 + -1 | 0; 11003 if ((i29 | 0) > 0) { 11004 i30 = i31; 11005 } else { 11006 break; 11007 } 11008 } 11009 } 11010 HEAP32[i5 >> 2] = HEAP32[i24 >> 2]; 11011 continue L3; 11012 } 11013 case 37: 11014 { 11015 i29 = HEAP32[(HEAP32[(HEAP32[i18 >> 2] | 0) + 16 >> 2] | 0) + (i28 >>> 14 << 2) >> 2] | 0; 11016 i28 = i29 + 32 | 0; 11017 i33 = HEAP32[i28 >> 2] | 0; 11018 i30 = HEAP32[i29 + 40 >> 2] | 0; 11019 i31 = HEAP32[i29 + 28 >> 2] | 0; 11020 L323 : do { 11021 if ((i33 | 0) == 0) { 11022 i15 = 276; 11023 } else { 11024 if ((i30 | 0) > 0) { 11025 i34 = i33 + 16 | 0; 11026 i32 = 0; 11027 while (1) { 11028 i35 = HEAPU8[i31 + (i32 << 3) + 5 | 0] | 0; 11029 if ((HEAP8[i31 + (i32 << 3) + 4 | 0] | 0) == 0) { 11030 i36 = HEAP32[(HEAP32[i22 + (i35 << 2) >> 2] | 0) + 8 >> 2] | 0; 11031 } else { 11032 i36 = i25 + (i35 << 4) | 0; 11033 } 11034 i35 = i32 + 1 | 0; 11035 if ((HEAP32[(HEAP32[i34 + (i32 << 2) >> 2] | 0) + 8 >> 2] | 0) != (i36 | 0)) { 11036 i15 = 276; 11037 break L323; 11038 } 11039 if ((i35 | 0) < (i30 | 0)) { 11040 i32 = i35; 11041 } else { 11042 break; 11043 } 11044 } 11045 } 11046 HEAP32[i27 >> 2] = i33; 11047 HEAP32[i25 + (i26 << 4) + 8 >> 2] = 70; 11048 } 11049 } while (0); 11050 if ((i15 | 0) == 276) { 11051 i15 = 0; 11052 i32 = _luaF_newLclosure(i1, i30) | 0; 11053 HEAP32[i32 + 12 >> 2] = i29; 11054 HEAP32[i27 >> 2] = i32; 11055 HEAP32[i25 + (i26 << 4) + 8 >> 2] = 70; 11056 if ((i30 | 0) > 0) { 11057 i27 = i32 + 16 | 0; 11058 i34 = 0; 11059 do { 11060 i33 = HEAPU8[i31 + (i34 << 3) + 5 | 0] | 0; 11061 if ((HEAP8[i31 + (i34 << 3) + 4 | 0] | 0) == 0) { 11062 HEAP32[i27 + (i34 << 2) >> 2] = HEAP32[i22 + (i33 << 2) >> 2]; 11063 } else { 11064 HEAP32[i27 + (i34 << 2) >> 2] = _luaF_findupval(i1, i25 + (i33 << 4) | 0) | 0; 11065 } 11066 i34 = i34 + 1 | 0; 11067 } while ((i34 | 0) != (i30 | 0)); 11068 } 11069 if (!((HEAP8[i29 + 5 | 0] & 4) == 0)) { 11070 _luaC_barrierproto_(i1, i29, i32); 11071 } 11072 HEAP32[i28 >> 2] = i32; 11073 } 11074 if ((HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] | 0) > 0) { 11075 HEAP32[i5 >> 2] = i25 + (i26 + 1 << 4); 11076 _luaC_step(i1); 11077 HEAP32[i5 >> 2] = HEAP32[i24 >> 2]; 11078 } 11079 i25 = HEAP32[i20 >> 2] | 0; 11080 continue L3; 11081 } 11082 case 38: 11083 { 11084 i36 = i28 >>> 23; 11085 i29 = i36 + -1 | 0; 11086 i30 = (i25 - (HEAP32[i19 >> 2] | 0) >> 4) - (HEAPU8[(HEAP32[i18 >> 2] | 0) + 76 | 0] | 0) | 0; 11087 i28 = i30 + -1 | 0; 11088 if ((i36 | 0) == 0) { 11089 if (((HEAP32[i11 >> 2] | 0) - (HEAP32[i5 >> 2] | 0) >> 4 | 0) <= (i28 | 0)) { 11090 _luaD_growstack(i1, i28); 11091 } 11092 i27 = HEAP32[i20 >> 2] | 0; 11093 HEAP32[i5 >> 2] = i27 + (i28 + i26 << 4); 11094 i29 = i28; 11095 i25 = i27; 11096 i27 = i27 + (i26 << 4) | 0; 11097 } 11098 if ((i29 | 0) <= 0) { 11099 continue L3; 11100 } 11101 i26 = 1 - i30 | 0; 11102 i30 = 0; 11103 while (1) { 11104 if ((i30 | 0) < (i28 | 0)) { 11105 i36 = i30 + i26 | 0; 11106 i33 = i25 + (i36 << 4) | 0; 11107 i34 = HEAP32[i33 + 4 >> 2] | 0; 11108 i35 = i27 + (i30 << 4) | 0; 11109 HEAP32[i35 >> 2] = HEAP32[i33 >> 2]; 11110 HEAP32[i35 + 4 >> 2] = i34; 11111 HEAP32[i27 + (i30 << 4) + 8 >> 2] = HEAP32[i25 + (i36 << 4) + 8 >> 2]; 11112 } else { 11113 HEAP32[i27 + (i30 << 4) + 8 >> 2] = 0; 11114 } 11115 i30 = i30 + 1 | 0; 11116 if ((i30 | 0) == (i29 | 0)) { 11117 continue L3; 11118 } 11119 } 11120 } 11121 default: 11122 { 11123 continue L3; 11124 } 11125 } 11126 i26 = HEAP32[i27 + 24 >> 2] | 0; 11127 if ((i26 | 0) == 0) { 11128 continue; 11129 } 11130 i34 = i27 + 16 | 0; 11131 i35 = HEAP32[i34 + 4 >> 2] | 0; 11132 i36 = i27; 11133 HEAP32[i36 >> 2] = HEAP32[i34 >> 2]; 11134 HEAP32[i36 + 4 >> 2] = i35; 11135 HEAP32[i27 + 8 >> 2] = i26; 11136 HEAP32[i21 >> 2] = (HEAP32[i21 >> 2] | 0) + ((i28 >>> 14) + -131071 << 2); 11137 } 11138 if ((i15 | 0) == 213) { 11139 i15 = 0; 11140 i19 = HEAP32[i3 >> 2] | 0; 11141 i36 = i19 + 18 | 0; 11142 HEAP8[i36] = HEAPU8[i36] | 4; 11143 continue; 11144 } else if ((i15 | 0) == 218) { 11145 i15 = 0; 11146 i22 = HEAP32[i3 >> 2] | 0; 11147 i19 = HEAP32[i22 + 8 >> 2] | 0; 11148 i23 = HEAP32[i22 >> 2] | 0; 11149 i24 = HEAP32[i19 >> 2] | 0; 11150 i20 = i22 + 24 | 0; 11151 i21 = (HEAP32[i20 >> 2] | 0) + (HEAPU8[(HEAP32[(HEAP32[i23 >> 2] | 0) + 12 >> 2] | 0) + 76 | 0] << 4) | 0; 11152 if ((HEAP32[(HEAP32[i18 >> 2] | 0) + 56 >> 2] | 0) > 0) { 11153 _luaF_close(i1, HEAP32[i19 + 24 >> 2] | 0); 11154 } 11155 if (i23 >>> 0 < i21 >>> 0) { 11156 i25 = i23; 11157 i18 = 0; 11158 do { 11159 i34 = i25; 11160 i35 = HEAP32[i34 + 4 >> 2] | 0; 11161 i36 = i24 + (i18 << 4) | 0; 11162 HEAP32[i36 >> 2] = HEAP32[i34 >> 2]; 11163 HEAP32[i36 + 4 >> 2] = i35; 11164 HEAP32[i24 + (i18 << 4) + 8 >> 2] = HEAP32[i23 + (i18 << 4) + 8 >> 2]; 11165 i18 = i18 + 1 | 0; 11166 i25 = i23 + (i18 << 4) | 0; 11167 } while (i25 >>> 0 < i21 >>> 0); 11168 } 11169 i36 = i23; 11170 HEAP32[i19 + 24 >> 2] = i24 + ((HEAP32[i20 >> 2] | 0) - i36 >> 4 << 4); 11171 i36 = i24 + ((HEAP32[i5 >> 2] | 0) - i36 >> 4 << 4) | 0; 11172 HEAP32[i5 >> 2] = i36; 11173 HEAP32[i19 + 4 >> 2] = i36; 11174 HEAP32[i19 + 28 >> 2] = HEAP32[i22 + 28 >> 2]; 11175 i36 = i19 + 18 | 0; 11176 HEAP8[i36] = HEAPU8[i36] | 64; 11177 HEAP32[i3 >> 2] = i19; 11178 continue; 11179 } else if ((i15 | 0) == 223) { 11180 i15 = 0; 11181 i20 = i28 >>> 23; 11182 if ((i20 | 0) != 0) { 11183 HEAP32[i5 >> 2] = i25 + (i20 + -1 + i26 << 4); 11184 } 11185 if ((HEAP32[(HEAP32[i18 >> 2] | 0) + 56 >> 2] | 0) > 0) { 11186 _luaF_close(i1, i25); 11187 } 11188 i18 = _luaD_poscall(i1, i27) | 0; 11189 if ((HEAP8[i19 + 18 | 0] & 4) == 0) { 11190 i15 = 228; 11191 break; 11192 } 11193 i19 = HEAP32[i3 >> 2] | 0; 11194 if ((i18 | 0) == 0) { 11195 continue; 11196 } 11197 HEAP32[i5 >> 2] = HEAP32[i19 + 4 >> 2]; 11198 continue; 11199 } 11200 } 11201 if ((i15 | 0) == 23) { 11202 if (!i27) { 11203 i36 = HEAP32[i29 >> 2] | 0; 11204 i36 = i36 + -4 | 0; 11205 HEAP32[i29 >> 2] = i36; 11206 i36 = HEAP8[i26] | 0; 11207 i36 = i36 & 255; 11208 i36 = i36 | 128; 11209 i36 = i36 & 255; 11210 HEAP8[i26] = i36; 11211 i36 = HEAP32[i5 >> 2] | 0; 11212 i36 = i36 + -16 | 0; 11213 HEAP32[i25 >> 2] = i36; 11214 _luaD_throw(i1, 1); 11215 } 11216 HEAP32[i17 >> 2] = 1; 11217 i36 = HEAP32[i29 >> 2] | 0; 11218 i36 = i36 + -4 | 0; 11219 HEAP32[i29 >> 2] = i36; 11220 i36 = HEAP8[i26] | 0; 11221 i36 = i36 & 255; 11222 i36 = i36 | 128; 11223 i36 = i36 & 255; 11224 HEAP8[i26] = i36; 11225 i36 = HEAP32[i5 >> 2] | 0; 11226 i36 = i36 + -16 | 0; 11227 HEAP32[i25 >> 2] = i36; 11228 _luaD_throw(i1, 1); 11229 } else if ((i15 | 0) == 228) { 11230 STACKTOP = i12; 11231 return; 11232 } else if ((i15 | 0) == 239) { 11233 _luaG_runerror(i1, 9040, i13); 11234 } else if ((i15 | 0) == 244) { 11235 _luaG_runerror(i1, 9080, i13); 11236 } else if ((i15 | 0) == 249) { 11237 _luaG_runerror(i1, 9112, i13); 11238 } 11239 } 11240 function ___floatscan(i8, i2, i11) { 11241 i8 = i8 | 0; 11242 i2 = i2 | 0; 11243 i11 = i11 | 0; 11244 var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i9 = 0, i10 = 0, i12 = 0, i13 = 0, d14 = 0.0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, d28 = 0.0, i29 = 0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0; 11245 i1 = STACKTOP; 11246 STACKTOP = STACKTOP + 512 | 0; 11247 i5 = i1; 11248 if ((i2 | 0) == 1) { 11249 i2 = 53; 11250 i3 = -1074; 11251 } else if ((i2 | 0) == 2) { 11252 i2 = 53; 11253 i3 = -1074; 11254 } else if ((i2 | 0) == 0) { 11255 i2 = 24; 11256 i3 = -149; 11257 } else { 11258 d31 = 0.0; 11259 STACKTOP = i1; 11260 return +d31; 11261 } 11262 i9 = i8 + 4 | 0; 11263 i10 = i8 + 100 | 0; 11264 do { 11265 i4 = HEAP32[i9 >> 2] | 0; 11266 if (i4 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) { 11267 HEAP32[i9 >> 2] = i4 + 1; 11268 i21 = HEAPU8[i4] | 0; 11269 } else { 11270 i21 = ___shgetc(i8) | 0; 11271 } 11272 } while ((_isspace(i21 | 0) | 0) != 0); 11273 do { 11274 if ((i21 | 0) == 43 | (i21 | 0) == 45) { 11275 i4 = 1 - (((i21 | 0) == 45) << 1) | 0; 11276 i7 = HEAP32[i9 >> 2] | 0; 11277 if (i7 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) { 11278 HEAP32[i9 >> 2] = i7 + 1; 11279 i21 = HEAPU8[i7] | 0; 11280 break; 11281 } else { 11282 i21 = ___shgetc(i8) | 0; 11283 break; 11284 } 11285 } else { 11286 i4 = 1; 11287 } 11288 } while (0); 11289 i7 = 0; 11290 do { 11291 if ((i21 | 32 | 0) != (HEAP8[13408 + i7 | 0] | 0)) { 11292 break; 11293 } 11294 do { 11295 if (i7 >>> 0 < 7) { 11296 i12 = HEAP32[i9 >> 2] | 0; 11297 if (i12 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) { 11298 HEAP32[i9 >> 2] = i12 + 1; 11299 i21 = HEAPU8[i12] | 0; 11300 break; 11301 } else { 11302 i21 = ___shgetc(i8) | 0; 11303 break; 11304 } 11305 } 11306 } while (0); 11307 i7 = i7 + 1 | 0; 11308 } while (i7 >>> 0 < 8); 11309 do { 11310 if ((i7 | 0) == 3) { 11311 i13 = 23; 11312 } else if ((i7 | 0) != 8) { 11313 i12 = (i11 | 0) == 0; 11314 if (!(i7 >>> 0 < 4 | i12)) { 11315 if ((i7 | 0) == 8) { 11316 break; 11317 } else { 11318 i13 = 23; 11319 break; 11320 } 11321 } 11322 L34 : do { 11323 if ((i7 | 0) == 0) { 11324 i7 = 0; 11325 do { 11326 if ((i21 | 32 | 0) != (HEAP8[13424 + i7 | 0] | 0)) { 11327 break L34; 11328 } 11329 do { 11330 if (i7 >>> 0 < 2) { 11331 i15 = HEAP32[i9 >> 2] | 0; 11332 if (i15 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) { 11333 HEAP32[i9 >> 2] = i15 + 1; 11334 i21 = HEAPU8[i15] | 0; 11335 break; 11336 } else { 11337 i21 = ___shgetc(i8) | 0; 11338 break; 11339 } 11340 } 11341 } while (0); 11342 i7 = i7 + 1 | 0; 11343 } while (i7 >>> 0 < 3); 11344 } 11345 } while (0); 11346 if ((i7 | 0) == 0) { 11347 do { 11348 if ((i21 | 0) == 48) { 11349 i7 = HEAP32[i9 >> 2] | 0; 11350 if (i7 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) { 11351 HEAP32[i9 >> 2] = i7 + 1; 11352 i7 = HEAPU8[i7] | 0; 11353 } else { 11354 i7 = ___shgetc(i8) | 0; 11355 } 11356 if ((i7 | 32 | 0) != 120) { 11357 if ((HEAP32[i10 >> 2] | 0) == 0) { 11358 i21 = 48; 11359 break; 11360 } 11361 HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1; 11362 i21 = 48; 11363 break; 11364 } 11365 i5 = HEAP32[i9 >> 2] | 0; 11366 if (i5 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) { 11367 HEAP32[i9 >> 2] = i5 + 1; 11368 i21 = HEAPU8[i5] | 0; 11369 i19 = 0; 11370 } else { 11371 i21 = ___shgetc(i8) | 0; 11372 i19 = 0; 11373 } 11374 while (1) { 11375 if ((i21 | 0) == 46) { 11376 i13 = 70; 11377 break; 11378 } else if ((i21 | 0) != 48) { 11379 i5 = 0; 11380 i7 = 0; 11381 i15 = 0; 11382 i16 = 0; 11383 i18 = 0; 11384 i20 = 0; 11385 d28 = 1.0; 11386 i17 = 0; 11387 d14 = 0.0; 11388 break; 11389 } 11390 i5 = HEAP32[i9 >> 2] | 0; 11391 if (i5 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) { 11392 HEAP32[i9 >> 2] = i5 + 1; 11393 i21 = HEAPU8[i5] | 0; 11394 i19 = 1; 11395 continue; 11396 } else { 11397 i21 = ___shgetc(i8) | 0; 11398 i19 = 1; 11399 continue; 11400 } 11401 } 11402 L66 : do { 11403 if ((i13 | 0) == 70) { 11404 i5 = HEAP32[i9 >> 2] | 0; 11405 if (i5 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) { 11406 HEAP32[i9 >> 2] = i5 + 1; 11407 i21 = HEAPU8[i5] | 0; 11408 } else { 11409 i21 = ___shgetc(i8) | 0; 11410 } 11411 if ((i21 | 0) == 48) { 11412 i15 = -1; 11413 i16 = -1; 11414 while (1) { 11415 i5 = HEAP32[i9 >> 2] | 0; 11416 if (i5 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) { 11417 HEAP32[i9 >> 2] = i5 + 1; 11418 i21 = HEAPU8[i5] | 0; 11419 } else { 11420 i21 = ___shgetc(i8) | 0; 11421 } 11422 if ((i21 | 0) != 48) { 11423 i5 = 0; 11424 i7 = 0; 11425 i19 = 1; 11426 i18 = 1; 11427 i20 = 0; 11428 d28 = 1.0; 11429 i17 = 0; 11430 d14 = 0.0; 11431 break L66; 11432 } 11433 i29 = _i64Add(i15 | 0, i16 | 0, -1, -1) | 0; 11434 i15 = i29; 11435 i16 = tempRet0; 11436 } 11437 } else { 11438 i5 = 0; 11439 i7 = 0; 11440 i15 = 0; 11441 i16 = 0; 11442 i18 = 1; 11443 i20 = 0; 11444 d28 = 1.0; 11445 i17 = 0; 11446 d14 = 0.0; 11447 } 11448 } 11449 } while (0); 11450 L79 : while (1) { 11451 i24 = i21 + -48 | 0; 11452 do { 11453 if (!(i24 >>> 0 < 10)) { 11454 i23 = i21 | 32; 11455 i22 = (i21 | 0) == 46; 11456 if (!((i23 + -97 | 0) >>> 0 < 6 | i22)) { 11457 break L79; 11458 } 11459 if (i22) { 11460 if ((i18 | 0) == 0) { 11461 i15 = i7; 11462 i16 = i5; 11463 i18 = 1; 11464 break; 11465 } else { 11466 i21 = 46; 11467 break L79; 11468 } 11469 } else { 11470 i24 = (i21 | 0) > 57 ? i23 + -87 | 0 : i24; 11471 i13 = 84; 11472 break; 11473 } 11474 } else { 11475 i13 = 84; 11476 } 11477 } while (0); 11478 if ((i13 | 0) == 84) { 11479 i13 = 0; 11480 do { 11481 if (!((i5 | 0) < 0 | (i5 | 0) == 0 & i7 >>> 0 < 8)) { 11482 if ((i5 | 0) < 0 | (i5 | 0) == 0 & i7 >>> 0 < 14) { 11483 d31 = d28 * .0625; 11484 d30 = d31; 11485 d14 = d14 + d31 * +(i24 | 0); 11486 break; 11487 } 11488 if ((i24 | 0) != 0 & (i20 | 0) == 0) { 11489 i20 = 1; 11490 d30 = d28; 11491 d14 = d14 + d28 * .5; 11492 } else { 11493 d30 = d28; 11494 } 11495 } else { 11496 d30 = d28; 11497 i17 = i24 + (i17 << 4) | 0; 11498 } 11499 } while (0); 11500 i7 = _i64Add(i7 | 0, i5 | 0, 1, 0) | 0; 11501 i5 = tempRet0; 11502 i19 = 1; 11503 d28 = d30; 11504 } 11505 i21 = HEAP32[i9 >> 2] | 0; 11506 if (i21 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) { 11507 HEAP32[i9 >> 2] = i21 + 1; 11508 i21 = HEAPU8[i21] | 0; 11509 continue; 11510 } else { 11511 i21 = ___shgetc(i8) | 0; 11512 continue; 11513 } 11514 } 11515 if ((i19 | 0) == 0) { 11516 i2 = (HEAP32[i10 >> 2] | 0) == 0; 11517 if (!i2) { 11518 HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1; 11519 } 11520 if (!i12) { 11521 if (!i2 ? (i6 = HEAP32[i9 >> 2] | 0, HEAP32[i9 >> 2] = i6 + -1, (i18 | 0) != 0) : 0) { 11522 HEAP32[i9 >> 2] = i6 + -2; 11523 } 11524 } else { 11525 ___shlim(i8, 0); 11526 } 11527 d31 = +(i4 | 0) * 0.0; 11528 STACKTOP = i1; 11529 return +d31; 11530 } 11531 i13 = (i18 | 0) == 0; 11532 i6 = i13 ? i7 : i15; 11533 i13 = i13 ? i5 : i16; 11534 if ((i5 | 0) < 0 | (i5 | 0) == 0 & i7 >>> 0 < 8) { 11535 do { 11536 i17 = i17 << 4; 11537 i7 = _i64Add(i7 | 0, i5 | 0, 1, 0) | 0; 11538 i5 = tempRet0; 11539 } while ((i5 | 0) < 0 | (i5 | 0) == 0 & i7 >>> 0 < 8); 11540 } 11541 do { 11542 if ((i21 | 32 | 0) == 112) { 11543 i7 = _scanexp(i8, i11) | 0; 11544 i5 = tempRet0; 11545 if ((i7 | 0) == 0 & (i5 | 0) == -2147483648) { 11546 if (i12) { 11547 ___shlim(i8, 0); 11548 d31 = 0.0; 11549 STACKTOP = i1; 11550 return +d31; 11551 } else { 11552 if ((HEAP32[i10 >> 2] | 0) == 0) { 11553 i7 = 0; 11554 i5 = 0; 11555 break; 11556 } 11557 HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1; 11558 i7 = 0; 11559 i5 = 0; 11560 break; 11561 } 11562 } 11563 } else { 11564 if ((HEAP32[i10 >> 2] | 0) == 0) { 11565 i7 = 0; 11566 i5 = 0; 11567 } else { 11568 HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1; 11569 i7 = 0; 11570 i5 = 0; 11571 } 11572 } 11573 } while (0); 11574 i6 = _bitshift64Shl(i6 | 0, i13 | 0, 2) | 0; 11575 i6 = _i64Add(i6 | 0, tempRet0 | 0, -32, -1) | 0; 11576 i5 = _i64Add(i6 | 0, tempRet0 | 0, i7 | 0, i5 | 0) | 0; 11577 i6 = tempRet0; 11578 if ((i17 | 0) == 0) { 11579 d31 = +(i4 | 0) * 0.0; 11580 STACKTOP = i1; 11581 return +d31; 11582 } 11583 if ((i6 | 0) > 0 | (i6 | 0) == 0 & i5 >>> 0 > (0 - i3 | 0) >>> 0) { 11584 HEAP32[(___errno_location() | 0) >> 2] = 34; 11585 d31 = +(i4 | 0) * 1.7976931348623157e+308 * 1.7976931348623157e+308; 11586 STACKTOP = i1; 11587 return +d31; 11588 } 11589 i29 = i3 + -106 | 0; 11590 i27 = ((i29 | 0) < 0) << 31 >> 31; 11591 if ((i6 | 0) < (i27 | 0) | (i6 | 0) == (i27 | 0) & i5 >>> 0 < i29 >>> 0) { 11592 HEAP32[(___errno_location() | 0) >> 2] = 34; 11593 d31 = +(i4 | 0) * 2.2250738585072014e-308 * 2.2250738585072014e-308; 11594 STACKTOP = i1; 11595 return +d31; 11596 } 11597 if ((i17 | 0) > -1) { 11598 do { 11599 i17 = i17 << 1; 11600 if (!(d14 >= .5)) { 11601 d28 = d14; 11602 } else { 11603 d28 = d14 + -1.0; 11604 i17 = i17 | 1; 11605 } 11606 d14 = d14 + d28; 11607 i5 = _i64Add(i5 | 0, i6 | 0, -1, -1) | 0; 11608 i6 = tempRet0; 11609 } while ((i17 | 0) > -1); 11610 } 11611 i3 = _i64Subtract(32, 0, i3 | 0, ((i3 | 0) < 0) << 31 >> 31 | 0) | 0; 11612 i3 = _i64Add(i5 | 0, i6 | 0, i3 | 0, tempRet0 | 0) | 0; 11613 i29 = tempRet0; 11614 if (0 > (i29 | 0) | 0 == (i29 | 0) & i2 >>> 0 > i3 >>> 0) { 11615 i2 = (i3 | 0) < 0 ? 0 : i3; 11616 } 11617 if ((i2 | 0) < 53) { 11618 d28 = +(i4 | 0); 11619 d30 = +_copysign(+(+_scalbn(1.0, 84 - i2 | 0)), +d28); 11620 if ((i2 | 0) < 32 & d14 != 0.0) { 11621 i29 = i17 & 1; 11622 i17 = (i29 ^ 1) + i17 | 0; 11623 d14 = (i29 | 0) == 0 ? 0.0 : d14; 11624 } 11625 } else { 11626 d28 = +(i4 | 0); 11627 d30 = 0.0; 11628 } 11629 d14 = d28 * d14 + (d30 + d28 * +(i17 >>> 0)) - d30; 11630 if (!(d14 != 0.0)) { 11631 HEAP32[(___errno_location() | 0) >> 2] = 34; 11632 } 11633 d31 = +_scalbnl(d14, i5); 11634 STACKTOP = i1; 11635 return +d31; 11636 } 11637 } while (0); 11638 i7 = i3 + i2 | 0; 11639 i6 = 0 - i7 | 0; 11640 i20 = 0; 11641 while (1) { 11642 if ((i21 | 0) == 46) { 11643 i13 = 139; 11644 break; 11645 } else if ((i21 | 0) != 48) { 11646 i25 = 0; 11647 i22 = 0; 11648 i19 = 0; 11649 break; 11650 } 11651 i15 = HEAP32[i9 >> 2] | 0; 11652 if (i15 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) { 11653 HEAP32[i9 >> 2] = i15 + 1; 11654 i21 = HEAPU8[i15] | 0; 11655 i20 = 1; 11656 continue; 11657 } else { 11658 i21 = ___shgetc(i8) | 0; 11659 i20 = 1; 11660 continue; 11661 } 11662 } 11663 L168 : do { 11664 if ((i13 | 0) == 139) { 11665 i15 = HEAP32[i9 >> 2] | 0; 11666 if (i15 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) { 11667 HEAP32[i9 >> 2] = i15 + 1; 11668 i21 = HEAPU8[i15] | 0; 11669 } else { 11670 i21 = ___shgetc(i8) | 0; 11671 } 11672 if ((i21 | 0) == 48) { 11673 i25 = -1; 11674 i22 = -1; 11675 while (1) { 11676 i15 = HEAP32[i9 >> 2] | 0; 11677 if (i15 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) { 11678 HEAP32[i9 >> 2] = i15 + 1; 11679 i21 = HEAPU8[i15] | 0; 11680 } else { 11681 i21 = ___shgetc(i8) | 0; 11682 } 11683 if ((i21 | 0) != 48) { 11684 i20 = 1; 11685 i19 = 1; 11686 break L168; 11687 } 11688 i29 = _i64Add(i25 | 0, i22 | 0, -1, -1) | 0; 11689 i25 = i29; 11690 i22 = tempRet0; 11691 } 11692 } else { 11693 i25 = 0; 11694 i22 = 0; 11695 i19 = 1; 11696 } 11697 } 11698 } while (0); 11699 HEAP32[i5 >> 2] = 0; 11700 i26 = i21 + -48 | 0; 11701 i27 = (i21 | 0) == 46; 11702 L182 : do { 11703 if (i26 >>> 0 < 10 | i27) { 11704 i15 = i5 + 496 | 0; 11705 i24 = 0; 11706 i23 = 0; 11707 i18 = 0; 11708 i17 = 0; 11709 i16 = 0; 11710 while (1) { 11711 do { 11712 if (i27) { 11713 if ((i19 | 0) == 0) { 11714 i25 = i24; 11715 i22 = i23; 11716 i19 = 1; 11717 } else { 11718 break L182; 11719 } 11720 } else { 11721 i27 = _i64Add(i24 | 0, i23 | 0, 1, 0) | 0; 11722 i23 = tempRet0; 11723 i29 = (i21 | 0) != 48; 11724 if ((i17 | 0) >= 125) { 11725 if (!i29) { 11726 i24 = i27; 11727 break; 11728 } 11729 HEAP32[i15 >> 2] = HEAP32[i15 >> 2] | 1; 11730 i24 = i27; 11731 break; 11732 } 11733 i20 = i5 + (i17 << 2) | 0; 11734 if ((i18 | 0) != 0) { 11735 i26 = i21 + -48 + ((HEAP32[i20 >> 2] | 0) * 10 | 0) | 0; 11736 } 11737 HEAP32[i20 >> 2] = i26; 11738 i18 = i18 + 1 | 0; 11739 i21 = (i18 | 0) == 9; 11740 i24 = i27; 11741 i20 = 1; 11742 i18 = i21 ? 0 : i18; 11743 i17 = (i21 & 1) + i17 | 0; 11744 i16 = i29 ? i27 : i16; 11745 } 11746 } while (0); 11747 i21 = HEAP32[i9 >> 2] | 0; 11748 if (i21 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) { 11749 HEAP32[i9 >> 2] = i21 + 1; 11750 i21 = HEAPU8[i21] | 0; 11751 } else { 11752 i21 = ___shgetc(i8) | 0; 11753 } 11754 i26 = i21 + -48 | 0; 11755 i27 = (i21 | 0) == 46; 11756 if (!(i26 >>> 0 < 10 | i27)) { 11757 i13 = 162; 11758 break; 11759 } 11760 } 11761 } else { 11762 i24 = 0; 11763 i23 = 0; 11764 i18 = 0; 11765 i17 = 0; 11766 i16 = 0; 11767 i13 = 162; 11768 } 11769 } while (0); 11770 if ((i13 | 0) == 162) { 11771 i13 = (i19 | 0) == 0; 11772 i25 = i13 ? i24 : i25; 11773 i22 = i13 ? i23 : i22; 11774 } 11775 i13 = (i20 | 0) != 0; 11776 if (i13 ? (i21 | 32 | 0) == 101 : 0) { 11777 i15 = _scanexp(i8, i11) | 0; 11778 i11 = tempRet0; 11779 do { 11780 if ((i15 | 0) == 0 & (i11 | 0) == -2147483648) { 11781 if (i12) { 11782 ___shlim(i8, 0); 11783 d31 = 0.0; 11784 STACKTOP = i1; 11785 return +d31; 11786 } else { 11787 if ((HEAP32[i10 >> 2] | 0) == 0) { 11788 i15 = 0; 11789 i11 = 0; 11790 break; 11791 } 11792 HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1; 11793 i15 = 0; 11794 i11 = 0; 11795 break; 11796 } 11797 } 11798 } while (0); 11799 i9 = _i64Add(i15 | 0, i11 | 0, i25 | 0, i22 | 0) | 0; 11800 i22 = tempRet0; 11801 } else { 11802 if ((i21 | 0) > -1 ? (HEAP32[i10 >> 2] | 0) != 0 : 0) { 11803 HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1; 11804 i9 = i25; 11805 } else { 11806 i9 = i25; 11807 } 11808 } 11809 if (!i13) { 11810 HEAP32[(___errno_location() | 0) >> 2] = 22; 11811 ___shlim(i8, 0); 11812 d31 = 0.0; 11813 STACKTOP = i1; 11814 return +d31; 11815 } 11816 i8 = HEAP32[i5 >> 2] | 0; 11817 if ((i8 | 0) == 0) { 11818 d31 = +(i4 | 0) * 0.0; 11819 STACKTOP = i1; 11820 return +d31; 11821 } 11822 do { 11823 if ((i9 | 0) == (i24 | 0) & (i22 | 0) == (i23 | 0) & ((i23 | 0) < 0 | (i23 | 0) == 0 & i24 >>> 0 < 10)) { 11824 if (!(i2 >>> 0 > 30) ? (i8 >>> i2 | 0) != 0 : 0) { 11825 break; 11826 } 11827 d31 = +(i4 | 0) * +(i8 >>> 0); 11828 STACKTOP = i1; 11829 return +d31; 11830 } 11831 } while (0); 11832 i29 = (i3 | 0) / -2 | 0; 11833 i27 = ((i29 | 0) < 0) << 31 >> 31; 11834 if ((i22 | 0) > (i27 | 0) | (i22 | 0) == (i27 | 0) & i9 >>> 0 > i29 >>> 0) { 11835 HEAP32[(___errno_location() | 0) >> 2] = 34; 11836 d31 = +(i4 | 0) * 1.7976931348623157e+308 * 1.7976931348623157e+308; 11837 STACKTOP = i1; 11838 return +d31; 11839 } 11840 i29 = i3 + -106 | 0; 11841 i27 = ((i29 | 0) < 0) << 31 >> 31; 11842 if ((i22 | 0) < (i27 | 0) | (i22 | 0) == (i27 | 0) & i9 >>> 0 < i29 >>> 0) { 11843 HEAP32[(___errno_location() | 0) >> 2] = 34; 11844 d31 = +(i4 | 0) * 2.2250738585072014e-308 * 2.2250738585072014e-308; 11845 STACKTOP = i1; 11846 return +d31; 11847 } 11848 if ((i18 | 0) != 0) { 11849 if ((i18 | 0) < 9) { 11850 i8 = i5 + (i17 << 2) | 0; 11851 i10 = HEAP32[i8 >> 2] | 0; 11852 do { 11853 i10 = i10 * 10 | 0; 11854 i18 = i18 + 1 | 0; 11855 } while ((i18 | 0) != 9); 11856 HEAP32[i8 >> 2] = i10; 11857 } 11858 i17 = i17 + 1 | 0; 11859 } 11860 do { 11861 if ((i16 | 0) < 9 ? (i16 | 0) <= (i9 | 0) & (i9 | 0) < 18 : 0) { 11862 if ((i9 | 0) == 9) { 11863 d31 = +(i4 | 0) * +((HEAP32[i5 >> 2] | 0) >>> 0); 11864 STACKTOP = i1; 11865 return +d31; 11866 } 11867 if ((i9 | 0) < 9) { 11868 d31 = +(i4 | 0) * +((HEAP32[i5 >> 2] | 0) >>> 0) / +(HEAP32[13440 + (8 - i9 << 2) >> 2] | 0); 11869 STACKTOP = i1; 11870 return +d31; 11871 } 11872 i10 = i2 + 27 + (Math_imul(i9, -3) | 0) | 0; 11873 i8 = HEAP32[i5 >> 2] | 0; 11874 if ((i10 | 0) <= 30 ? (i8 >>> i10 | 0) != 0 : 0) { 11875 break; 11876 } 11877 d31 = +(i4 | 0) * +(i8 >>> 0) * +(HEAP32[13440 + (i9 + -10 << 2) >> 2] | 0); 11878 STACKTOP = i1; 11879 return +d31; 11880 } 11881 } while (0); 11882 i8 = (i9 | 0) % 9 | 0; 11883 if ((i8 | 0) == 0) { 11884 i8 = 0; 11885 i10 = 0; 11886 } else { 11887 i11 = (i9 | 0) > -1 ? i8 : i8 + 9 | 0; 11888 i12 = HEAP32[13440 + (8 - i11 << 2) >> 2] | 0; 11889 if ((i17 | 0) != 0) { 11890 i10 = 1e9 / (i12 | 0) | 0; 11891 i8 = 0; 11892 i16 = 0; 11893 i15 = 0; 11894 while (1) { 11895 i27 = i5 + (i15 << 2) | 0; 11896 i13 = HEAP32[i27 >> 2] | 0; 11897 i29 = ((i13 >>> 0) / (i12 >>> 0) | 0) + i16 | 0; 11898 HEAP32[i27 >> 2] = i29; 11899 i16 = Math_imul((i13 >>> 0) % (i12 >>> 0) | 0, i10) | 0; 11900 i13 = i15 + 1 | 0; 11901 if ((i15 | 0) == (i8 | 0) & (i29 | 0) == 0) { 11902 i8 = i13 & 127; 11903 i9 = i9 + -9 | 0; 11904 } 11905 if ((i13 | 0) == (i17 | 0)) { 11906 break; 11907 } else { 11908 i15 = i13; 11909 } 11910 } 11911 if ((i16 | 0) != 0) { 11912 HEAP32[i5 + (i17 << 2) >> 2] = i16; 11913 i17 = i17 + 1 | 0; 11914 } 11915 } else { 11916 i8 = 0; 11917 i17 = 0; 11918 } 11919 i10 = 0; 11920 i9 = 9 - i11 + i9 | 0; 11921 } 11922 L280 : while (1) { 11923 i11 = i5 + (i8 << 2) | 0; 11924 if ((i9 | 0) < 18) { 11925 do { 11926 i13 = 0; 11927 i11 = i17 + 127 | 0; 11928 while (1) { 11929 i11 = i11 & 127; 11930 i12 = i5 + (i11 << 2) | 0; 11931 i15 = _bitshift64Shl(HEAP32[i12 >> 2] | 0, 0, 29) | 0; 11932 i15 = _i64Add(i15 | 0, tempRet0 | 0, i13 | 0, 0) | 0; 11933 i13 = tempRet0; 11934 if (i13 >>> 0 > 0 | (i13 | 0) == 0 & i15 >>> 0 > 1e9) { 11935 i29 = ___udivdi3(i15 | 0, i13 | 0, 1e9, 0) | 0; 11936 i15 = ___uremdi3(i15 | 0, i13 | 0, 1e9, 0) | 0; 11937 i13 = i29; 11938 } else { 11939 i13 = 0; 11940 } 11941 HEAP32[i12 >> 2] = i15; 11942 i12 = (i11 | 0) == (i8 | 0); 11943 if (!((i11 | 0) != (i17 + 127 & 127 | 0) | i12)) { 11944 i17 = (i15 | 0) == 0 ? i11 : i17; 11945 } 11946 if (i12) { 11947 break; 11948 } else { 11949 i11 = i11 + -1 | 0; 11950 } 11951 } 11952 i10 = i10 + -29 | 0; 11953 } while ((i13 | 0) == 0); 11954 } else { 11955 if ((i9 | 0) != 18) { 11956 break; 11957 } 11958 do { 11959 if (!((HEAP32[i11 >> 2] | 0) >>> 0 < 9007199)) { 11960 i9 = 18; 11961 break L280; 11962 } 11963 i13 = 0; 11964 i12 = i17 + 127 | 0; 11965 while (1) { 11966 i12 = i12 & 127; 11967 i15 = i5 + (i12 << 2) | 0; 11968 i16 = _bitshift64Shl(HEAP32[i15 >> 2] | 0, 0, 29) | 0; 11969 i16 = _i64Add(i16 | 0, tempRet0 | 0, i13 | 0, 0) | 0; 11970 i13 = tempRet0; 11971 if (i13 >>> 0 > 0 | (i13 | 0) == 0 & i16 >>> 0 > 1e9) { 11972 i29 = ___udivdi3(i16 | 0, i13 | 0, 1e9, 0) | 0; 11973 i16 = ___uremdi3(i16 | 0, i13 | 0, 1e9, 0) | 0; 11974 i13 = i29; 11975 } else { 11976 i13 = 0; 11977 } 11978 HEAP32[i15 >> 2] = i16; 11979 i15 = (i12 | 0) == (i8 | 0); 11980 if (!((i12 | 0) != (i17 + 127 & 127 | 0) | i15)) { 11981 i17 = (i16 | 0) == 0 ? i12 : i17; 11982 } 11983 if (i15) { 11984 break; 11985 } else { 11986 i12 = i12 + -1 | 0; 11987 } 11988 } 11989 i10 = i10 + -29 | 0; 11990 } while ((i13 | 0) == 0); 11991 } 11992 i8 = i8 + 127 & 127; 11993 if ((i8 | 0) == (i17 | 0)) { 11994 i29 = i17 + 127 & 127; 11995 i17 = i5 + ((i17 + 126 & 127) << 2) | 0; 11996 HEAP32[i17 >> 2] = HEAP32[i17 >> 2] | HEAP32[i5 + (i29 << 2) >> 2]; 11997 i17 = i29; 11998 } 11999 HEAP32[i5 + (i8 << 2) >> 2] = i13; 12000 i9 = i9 + 9 | 0; 12001 } 12002 L311 : while (1) { 12003 i11 = i17 + 1 & 127; 12004 i12 = i5 + ((i17 + 127 & 127) << 2) | 0; 12005 while (1) { 12006 i15 = (i9 | 0) == 18; 12007 i13 = (i9 | 0) > 27 ? 9 : 1; 12008 while (1) { 12009 i16 = 0; 12010 while (1) { 12011 i18 = i16 + i8 & 127; 12012 if ((i18 | 0) == (i17 | 0)) { 12013 i16 = 2; 12014 break; 12015 } 12016 i18 = HEAP32[i5 + (i18 << 2) >> 2] | 0; 12017 i19 = HEAP32[13432 + (i16 << 2) >> 2] | 0; 12018 if (i18 >>> 0 < i19 >>> 0) { 12019 i16 = 2; 12020 break; 12021 } 12022 i20 = i16 + 1 | 0; 12023 if (i18 >>> 0 > i19 >>> 0) { 12024 break; 12025 } 12026 if ((i20 | 0) < 2) { 12027 i16 = i20; 12028 } else { 12029 i16 = i20; 12030 break; 12031 } 12032 } 12033 if ((i16 | 0) == 2 & i15) { 12034 break L311; 12035 } 12036 i10 = i13 + i10 | 0; 12037 if ((i8 | 0) == (i17 | 0)) { 12038 i8 = i17; 12039 } else { 12040 break; 12041 } 12042 } 12043 i15 = (1 << i13) + -1 | 0; 12044 i19 = 1e9 >>> i13; 12045 i18 = i8; 12046 i16 = 0; 12047 do { 12048 i27 = i5 + (i8 << 2) | 0; 12049 i29 = HEAP32[i27 >> 2] | 0; 12050 i20 = (i29 >>> i13) + i16 | 0; 12051 HEAP32[i27 >> 2] = i20; 12052 i16 = Math_imul(i29 & i15, i19) | 0; 12053 i20 = (i8 | 0) == (i18 | 0) & (i20 | 0) == 0; 12054 i8 = i8 + 1 & 127; 12055 i9 = i20 ? i9 + -9 | 0 : i9; 12056 i18 = i20 ? i8 : i18; 12057 } while ((i8 | 0) != (i17 | 0)); 12058 if ((i16 | 0) == 0) { 12059 i8 = i18; 12060 continue; 12061 } 12062 if ((i11 | 0) != (i18 | 0)) { 12063 break; 12064 } 12065 HEAP32[i12 >> 2] = HEAP32[i12 >> 2] | 1; 12066 i8 = i18; 12067 } 12068 HEAP32[i5 + (i17 << 2) >> 2] = i16; 12069 i8 = i18; 12070 i17 = i11; 12071 } 12072 i9 = i8 & 127; 12073 if ((i9 | 0) == (i17 | 0)) { 12074 HEAP32[i5 + (i11 + -1 << 2) >> 2] = 0; 12075 i17 = i11; 12076 } 12077 d28 = +((HEAP32[i5 + (i9 << 2) >> 2] | 0) >>> 0); 12078 i9 = i8 + 1 & 127; 12079 if ((i9 | 0) == (i17 | 0)) { 12080 i17 = i17 + 1 & 127; 12081 HEAP32[i5 + (i17 + -1 << 2) >> 2] = 0; 12082 } 12083 d14 = +(i4 | 0); 12084 d30 = d14 * (d28 * 1.0e9 + +((HEAP32[i5 + (i9 << 2) >> 2] | 0) >>> 0)); 12085 i4 = i10 + 53 | 0; 12086 i3 = i4 - i3 | 0; 12087 if ((i3 | 0) < (i2 | 0)) { 12088 i2 = (i3 | 0) < 0 ? 0 : i3; 12089 i9 = 1; 12090 } else { 12091 i9 = 0; 12092 } 12093 if ((i2 | 0) < 53) { 12094 d33 = +_copysign(+(+_scalbn(1.0, 105 - i2 | 0)), +d30); 12095 d32 = +_fmod(+d30, +(+_scalbn(1.0, 53 - i2 | 0))); 12096 d28 = d33; 12097 d31 = d32; 12098 d30 = d33 + (d30 - d32); 12099 } else { 12100 d28 = 0.0; 12101 d31 = 0.0; 12102 } 12103 i11 = i8 + 2 & 127; 12104 if ((i11 | 0) != (i17 | 0)) { 12105 i5 = HEAP32[i5 + (i11 << 2) >> 2] | 0; 12106 do { 12107 if (!(i5 >>> 0 < 5e8)) { 12108 if (i5 >>> 0 > 5e8) { 12109 d31 = d14 * .75 + d31; 12110 break; 12111 } 12112 if ((i8 + 3 & 127 | 0) == (i17 | 0)) { 12113 d31 = d14 * .5 + d31; 12114 break; 12115 } else { 12116 d31 = d14 * .75 + d31; 12117 break; 12118 } 12119 } else { 12120 if ((i5 | 0) == 0 ? (i8 + 3 & 127 | 0) == (i17 | 0) : 0) { 12121 break; 12122 } 12123 d31 = d14 * .25 + d31; 12124 } 12125 } while (0); 12126 if ((53 - i2 | 0) > 1 ? !(+_fmod(+d31, 1.0) != 0.0) : 0) { 12127 d31 = d31 + 1.0; 12128 } 12129 } 12130 d14 = d30 + d31 - d28; 12131 do { 12132 if ((i4 & 2147483647 | 0) > (-2 - i7 | 0)) { 12133 if (+Math_abs(+d14) >= 9007199254740992.0) { 12134 i9 = (i9 | 0) != 0 & (i2 | 0) == (i3 | 0) ? 0 : i9; 12135 i10 = i10 + 1 | 0; 12136 d14 = d14 * .5; 12137 } 12138 if ((i10 + 50 | 0) <= (i6 | 0) ? !((i9 | 0) != 0 & d31 != 0.0) : 0) { 12139 break; 12140 } 12141 HEAP32[(___errno_location() | 0) >> 2] = 34; 12142 } 12143 } while (0); 12144 d33 = +_scalbnl(d14, i10); 12145 STACKTOP = i1; 12146 return +d33; 12147 } else if ((i7 | 0) == 3) { 12148 i2 = HEAP32[i9 >> 2] | 0; 12149 if (i2 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) { 12150 HEAP32[i9 >> 2] = i2 + 1; 12151 i2 = HEAPU8[i2] | 0; 12152 } else { 12153 i2 = ___shgetc(i8) | 0; 12154 } 12155 if ((i2 | 0) == 40) { 12156 i2 = 1; 12157 } else { 12158 if ((HEAP32[i10 >> 2] | 0) == 0) { 12159 d33 = nan; 12160 STACKTOP = i1; 12161 return +d33; 12162 } 12163 HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1; 12164 d33 = nan; 12165 STACKTOP = i1; 12166 return +d33; 12167 } 12168 while (1) { 12169 i3 = HEAP32[i9 >> 2] | 0; 12170 if (i3 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) { 12171 HEAP32[i9 >> 2] = i3 + 1; 12172 i3 = HEAPU8[i3] | 0; 12173 } else { 12174 i3 = ___shgetc(i8) | 0; 12175 } 12176 if (!((i3 + -48 | 0) >>> 0 < 10 | (i3 + -65 | 0) >>> 0 < 26) ? !((i3 + -97 | 0) >>> 0 < 26 | (i3 | 0) == 95) : 0) { 12177 break; 12178 } 12179 i2 = i2 + 1 | 0; 12180 } 12181 if ((i3 | 0) == 41) { 12182 d33 = nan; 12183 STACKTOP = i1; 12184 return +d33; 12185 } 12186 i3 = (HEAP32[i10 >> 2] | 0) == 0; 12187 if (!i3) { 12188 HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1; 12189 } 12190 if (i12) { 12191 HEAP32[(___errno_location() | 0) >> 2] = 22; 12192 ___shlim(i8, 0); 12193 d33 = 0.0; 12194 STACKTOP = i1; 12195 return +d33; 12196 } 12197 if ((i2 | 0) == 0 | i3) { 12198 d33 = nan; 12199 STACKTOP = i1; 12200 return +d33; 12201 } 12202 while (1) { 12203 i2 = i2 + -1 | 0; 12204 HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1; 12205 if ((i2 | 0) == 0) { 12206 d14 = nan; 12207 break; 12208 } 12209 } 12210 STACKTOP = i1; 12211 return +d14; 12212 } else { 12213 if ((HEAP32[i10 >> 2] | 0) != 0) { 12214 HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1; 12215 } 12216 HEAP32[(___errno_location() | 0) >> 2] = 22; 12217 ___shlim(i8, 0); 12218 d33 = 0.0; 12219 STACKTOP = i1; 12220 return +d33; 12221 } 12222 } 12223 } while (0); 12224 if ((i13 | 0) == 23) { 12225 i2 = (HEAP32[i10 >> 2] | 0) == 0; 12226 if (!i2) { 12227 HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1; 12228 } 12229 if (!(i7 >>> 0 < 4 | (i11 | 0) == 0 | i2)) { 12230 do { 12231 HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1; 12232 i7 = i7 + -1 | 0; 12233 } while (i7 >>> 0 > 3); 12234 } 12235 } 12236 d33 = +(i4 | 0) * inf; 12237 STACKTOP = i1; 12238 return +d33; 12239 } 12240 function _statement(i4) { 12241 i4 = i4 | 0; 12242 var i1 = 0, i2 = 0, i3 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0; 12243 i2 = STACKTOP; 12244 STACKTOP = STACKTOP + 160 | 0; 12245 i8 = i2 + 120 | 0; 12246 i24 = i2 + 96 | 0; 12247 i15 = i2 + 72 | 0; 12248 i25 = i2 + 48 | 0; 12249 i20 = i2 + 24 | 0; 12250 i21 = i2; 12251 i19 = i4 + 4 | 0; 12252 i6 = HEAP32[i19 >> 2] | 0; 12253 i3 = i4 + 48 | 0; 12254 i9 = HEAP32[i3 >> 2] | 0; 12255 i1 = i4 + 52 | 0; 12256 i26 = (HEAP32[i1 >> 2] | 0) + 38 | 0; 12257 i27 = (HEAP16[i26 >> 1] | 0) + 1 << 16 >> 16; 12258 HEAP16[i26 >> 1] = i27; 12259 if ((i27 & 65535) > 200) { 12260 i27 = i9 + 12 | 0; 12261 i26 = HEAP32[(HEAP32[i27 >> 2] | 0) + 52 >> 2] | 0; 12262 i5 = HEAP32[(HEAP32[i9 >> 2] | 0) + 64 >> 2] | 0; 12263 if ((i5 | 0) == 0) { 12264 i29 = 6552; 12265 HEAP32[i8 >> 2] = 6360; 12266 i28 = i8 + 4 | 0; 12267 HEAP32[i28 >> 2] = 200; 12268 i28 = i8 + 8 | 0; 12269 HEAP32[i28 >> 2] = i29; 12270 i28 = _luaO_pushfstring(i26, 6592, i8) | 0; 12271 i29 = HEAP32[i27 >> 2] | 0; 12272 _luaX_syntaxerror(i29, i28); 12273 } 12274 HEAP32[i8 >> 2] = i5; 12275 i28 = _luaO_pushfstring(i26, 6568, i8) | 0; 12276 HEAP32[i8 >> 2] = 6360; 12277 i29 = i8 + 4 | 0; 12278 HEAP32[i29 >> 2] = 200; 12279 i29 = i8 + 8 | 0; 12280 HEAP32[i29 >> 2] = i28; 12281 i29 = _luaO_pushfstring(i26, 6592, i8) | 0; 12282 i28 = HEAP32[i27 >> 2] | 0; 12283 _luaX_syntaxerror(i28, i29); 12284 } 12285 i5 = i4 + 16 | 0; 12286 L8 : do { 12287 switch (HEAP32[i5 >> 2] | 0) { 12288 case 59: 12289 { 12290 _luaX_next(i4); 12291 break; 12292 } 12293 case 267: 12294 { 12295 HEAP32[i21 >> 2] = -1; 12296 _test_then_block(i4, i21); 12297 while (1) { 12298 i8 = HEAP32[i5 >> 2] | 0; 12299 if ((i8 | 0) == 260) { 12300 i7 = 10; 12301 break; 12302 } else if ((i8 | 0) != 261) { 12303 break; 12304 } 12305 _test_then_block(i4, i21); 12306 } 12307 if ((i7 | 0) == 10) { 12308 _luaX_next(i4); 12309 i7 = HEAP32[i3 >> 2] | 0; 12310 HEAP8[i20 + 10 | 0] = 0; 12311 HEAP8[i20 + 8 | 0] = HEAP8[i7 + 46 | 0] | 0; 12312 i29 = HEAP32[(HEAP32[i7 + 12 >> 2] | 0) + 64 >> 2] | 0; 12313 HEAP16[i20 + 4 >> 1] = HEAP32[i29 + 28 >> 2]; 12314 HEAP16[i20 + 6 >> 1] = HEAP32[i29 + 16 >> 2]; 12315 HEAP8[i20 + 9 | 0] = 0; 12316 i29 = i7 + 16 | 0; 12317 HEAP32[i20 >> 2] = HEAP32[i29 >> 2]; 12318 HEAP32[i29 >> 2] = i20; 12319 L16 : do { 12320 i8 = HEAP32[i5 >> 2] | 0; 12321 switch (i8 | 0) { 12322 case 277: 12323 case 286: 12324 case 262: 12325 case 261: 12326 case 260: 12327 { 12328 break L16; 12329 } 12330 default: 12331 {} 12332 } 12333 _statement(i4); 12334 } while ((i8 | 0) != 274); 12335 _leaveblock(i7); 12336 } 12337 _check_match(i4, 262, 267, i6); 12338 _luaK_patchtohere(i9, HEAP32[i21 >> 2] | 0); 12339 break; 12340 } 12341 case 259: 12342 { 12343 _luaX_next(i4); 12344 i7 = HEAP32[i3 >> 2] | 0; 12345 HEAP8[i20 + 10 | 0] = 0; 12346 HEAP8[i20 + 8 | 0] = HEAP8[i7 + 46 | 0] | 0; 12347 i29 = HEAP32[(HEAP32[i7 + 12 >> 2] | 0) + 64 >> 2] | 0; 12348 HEAP16[i20 + 4 >> 1] = HEAP32[i29 + 28 >> 2]; 12349 HEAP16[i20 + 6 >> 1] = HEAP32[i29 + 16 >> 2]; 12350 HEAP8[i20 + 9 | 0] = 0; 12351 i29 = i7 + 16 | 0; 12352 HEAP32[i20 >> 2] = HEAP32[i29 >> 2]; 12353 HEAP32[i29 >> 2] = i20; 12354 L22 : do { 12355 i8 = HEAP32[i5 >> 2] | 0; 12356 switch (i8 | 0) { 12357 case 277: 12358 case 286: 12359 case 262: 12360 case 261: 12361 case 260: 12362 { 12363 break L22; 12364 } 12365 default: 12366 {} 12367 } 12368 _statement(i4); 12369 } while ((i8 | 0) != 274); 12370 _leaveblock(i7); 12371 _check_match(i4, 262, 259, i6); 12372 break; 12373 } 12374 case 269: 12375 { 12376 _luaX_next(i4); 12377 i6 = HEAP32[i5 >> 2] | 0; 12378 if ((i6 | 0) == 265) { 12379 _luaX_next(i4); 12380 i7 = HEAP32[i3 >> 2] | 0; 12381 if ((HEAP32[i5 >> 2] | 0) == 288) { 12382 i29 = HEAP32[i4 + 24 >> 2] | 0; 12383 _luaX_next(i4); 12384 _new_localvar(i4, i29); 12385 i29 = HEAP32[i3 >> 2] | 0; 12386 i27 = i29 + 46 | 0; 12387 i28 = (HEAPU8[i27] | 0) + 1 | 0; 12388 HEAP8[i27] = i28; 12389 HEAP32[(HEAP32[(HEAP32[i29 >> 2] | 0) + 24 >> 2] | 0) + ((HEAP16[(HEAP32[HEAP32[(HEAP32[i29 + 12 >> 2] | 0) + 64 >> 2] >> 2] | 0) + ((i28 & 255) + -1 + (HEAP32[i29 + 40 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i29 + 20 >> 2]; 12390 _body(i4, i25, 0, HEAP32[i19 >> 2] | 0); 12391 HEAP32[(HEAP32[(HEAP32[i7 >> 2] | 0) + 24 >> 2] | 0) + ((HEAP16[(HEAP32[HEAP32[(HEAP32[i7 + 12 >> 2] | 0) + 64 >> 2] >> 2] | 0) + ((HEAP32[i7 + 40 >> 2] | 0) + (HEAP32[i25 + 8 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i7 + 20 >> 2]; 12392 break L8; 12393 } else { 12394 _error_expected(i4, 288); 12395 } 12396 } 12397 if ((i6 | 0) != 288) { 12398 _error_expected(i4, 288); 12399 } 12400 i7 = i4 + 24 | 0; 12401 i6 = 1; 12402 while (1) { 12403 i8 = HEAP32[i7 >> 2] | 0; 12404 _luaX_next(i4); 12405 _new_localvar(i4, i8); 12406 i8 = HEAP32[i5 >> 2] | 0; 12407 if ((i8 | 0) == 61) { 12408 i7 = 81; 12409 break; 12410 } else if ((i8 | 0) != 44) { 12411 i7 = 83; 12412 break; 12413 } 12414 _luaX_next(i4); 12415 if ((HEAP32[i5 >> 2] | 0) == 288) { 12416 i6 = i6 + 1 | 0; 12417 } else { 12418 i7 = 78; 12419 break; 12420 } 12421 } 12422 do { 12423 if ((i7 | 0) == 78) { 12424 _error_expected(i4, 288); 12425 } else if ((i7 | 0) == 81) { 12426 _luaX_next(i4); 12427 _subexpr(i4, i15, 0) | 0; 12428 if ((HEAP32[i5 >> 2] | 0) == 44) { 12429 i8 = 1; 12430 do { 12431 _luaX_next(i4); 12432 _luaK_exp2nextreg(HEAP32[i3 >> 2] | 0, i15); 12433 _subexpr(i4, i15, 0) | 0; 12434 i8 = i8 + 1 | 0; 12435 } while ((HEAP32[i5 >> 2] | 0) == 44); 12436 } else { 12437 i8 = 1; 12438 } 12439 i5 = HEAP32[i15 >> 2] | 0; 12440 i4 = HEAP32[i3 >> 2] | 0; 12441 i8 = i6 - i8 | 0; 12442 if ((i5 | 0) == 0) { 12443 i17 = i8; 12444 i18 = i4; 12445 i7 = 88; 12446 break; 12447 } else if (!((i5 | 0) == 13 | (i5 | 0) == 12)) { 12448 _luaK_exp2nextreg(i4, i15); 12449 i17 = i8; 12450 i18 = i4; 12451 i7 = 88; 12452 break; 12453 } 12454 i5 = i8 + 1 | 0; 12455 i5 = (i5 | 0) < 0 ? 0 : i5; 12456 _luaK_setreturns(i4, i15, i5); 12457 if ((i5 | 0) > 1) { 12458 _luaK_reserveregs(i4, i5 + -1 | 0); 12459 } 12460 } else if ((i7 | 0) == 83) { 12461 HEAP32[i15 >> 2] = 0; 12462 i17 = i6; 12463 i18 = HEAP32[i3 >> 2] | 0; 12464 i7 = 88; 12465 } 12466 } while (0); 12467 if ((i7 | 0) == 88 ? (i17 | 0) > 0 : 0) { 12468 i29 = HEAPU8[i18 + 48 | 0] | 0; 12469 _luaK_reserveregs(i18, i17); 12470 _luaK_nil(i18, i29, i17); 12471 } 12472 i5 = HEAP32[i3 >> 2] | 0; 12473 i4 = i5 + 46 | 0; 12474 i7 = (HEAPU8[i4] | 0) + i6 | 0; 12475 HEAP8[i4] = i7; 12476 if ((i6 | 0) != 0 ? (i11 = i5 + 20 | 0, i14 = i5 + 40 | 0, i12 = HEAP32[(HEAP32[i5 >> 2] | 0) + 24 >> 2] | 0, i13 = HEAP32[HEAP32[(HEAP32[i5 + 12 >> 2] | 0) + 64 >> 2] >> 2] | 0, HEAP32[i12 + ((HEAP16[i13 + ((i7 & 255) - i6 + (HEAP32[i14 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i11 >> 2], i16 = i6 + -1 | 0, (i16 | 0) != 0) : 0) { 12477 do { 12478 HEAP32[i12 + ((HEAP16[i13 + ((HEAPU8[i4] | 0) - i16 + (HEAP32[i14 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i11 >> 2]; 12479 i16 = i16 + -1 | 0; 12480 } while ((i16 | 0) != 0); 12481 } 12482 break; 12483 } 12484 case 264: 12485 { 12486 HEAP8[i24 + 10 | 0] = 1; 12487 HEAP8[i24 + 8 | 0] = HEAP8[i9 + 46 | 0] | 0; 12488 i29 = HEAP32[(HEAP32[i9 + 12 >> 2] | 0) + 64 >> 2] | 0; 12489 HEAP16[i24 + 4 >> 1] = HEAP32[i29 + 28 >> 2]; 12490 HEAP16[i24 + 6 >> 1] = HEAP32[i29 + 16 >> 2]; 12491 HEAP8[i24 + 9 | 0] = 0; 12492 i29 = i9 + 16 | 0; 12493 HEAP32[i24 >> 2] = HEAP32[i29 >> 2]; 12494 HEAP32[i29 >> 2] = i24; 12495 _luaX_next(i4); 12496 if ((HEAP32[i5 >> 2] | 0) != 288) { 12497 _error_expected(i4, 288); 12498 } 12499 i14 = i4 + 24 | 0; 12500 i13 = HEAP32[i14 >> 2] | 0; 12501 _luaX_next(i4); 12502 i11 = HEAP32[i5 >> 2] | 0; 12503 if ((i11 | 0) == 268 | (i11 | 0) == 44) { 12504 i12 = HEAP32[i3 >> 2] | 0; 12505 i11 = HEAPU8[i12 + 48 | 0] | 0; 12506 _new_localvar(i4, _luaX_newstring(i4, 6744, 15) | 0); 12507 _new_localvar(i4, _luaX_newstring(i4, 6760, 11) | 0); 12508 _new_localvar(i4, _luaX_newstring(i4, 6776, 13) | 0); 12509 _new_localvar(i4, i13); 12510 i13 = HEAP32[i5 >> 2] | 0; 12511 do { 12512 if ((i13 | 0) == 44) { 12513 i15 = 4; 12514 while (1) { 12515 _luaX_next(i4); 12516 if ((HEAP32[i5 >> 2] | 0) != 288) { 12517 i7 = 40; 12518 break; 12519 } 12520 i13 = HEAP32[i14 >> 2] | 0; 12521 _luaX_next(i4); 12522 _new_localvar(i4, i13); 12523 i13 = HEAP32[i5 >> 2] | 0; 12524 if ((i13 | 0) == 44) { 12525 i15 = i15 + 1 | 0; 12526 } else { 12527 i7 = 42; 12528 break; 12529 } 12530 } 12531 if ((i7 | 0) == 40) { 12532 _error_expected(i4, 288); 12533 } else if ((i7 | 0) == 42) { 12534 i22 = i13; 12535 i10 = i15 + -2 | 0; 12536 break; 12537 } 12538 } else { 12539 i22 = i13; 12540 i10 = 1; 12541 } 12542 } while (0); 12543 if ((i22 | 0) != 268) { 12544 _error_expected(i4, 268); 12545 } 12546 _luaX_next(i4); 12547 i13 = HEAP32[i19 >> 2] | 0; 12548 _subexpr(i4, i8, 0) | 0; 12549 if ((HEAP32[i5 >> 2] | 0) == 44) { 12550 i14 = 1; 12551 do { 12552 _luaX_next(i4); 12553 _luaK_exp2nextreg(HEAP32[i3 >> 2] | 0, i8); 12554 _subexpr(i4, i8, 0) | 0; 12555 i14 = i14 + 1 | 0; 12556 } while ((HEAP32[i5 >> 2] | 0) == 44); 12557 } else { 12558 i14 = 1; 12559 } 12560 i5 = HEAP32[i3 >> 2] | 0; 12561 i14 = 3 - i14 | 0; 12562 i15 = HEAP32[i8 >> 2] | 0; 12563 if ((i15 | 0) == 0) { 12564 i7 = 51; 12565 } else if ((i15 | 0) == 13 | (i15 | 0) == 12) { 12566 i15 = i14 + 1 | 0; 12567 i15 = (i15 | 0) < 0 ? 0 : i15; 12568 _luaK_setreturns(i5, i8, i15); 12569 if ((i15 | 0) > 1) { 12570 _luaK_reserveregs(i5, i15 + -1 | 0); 12571 } 12572 } else { 12573 _luaK_exp2nextreg(i5, i8); 12574 i7 = 51; 12575 } 12576 if ((i7 | 0) == 51 ? (i14 | 0) > 0 : 0) { 12577 i29 = HEAPU8[i5 + 48 | 0] | 0; 12578 _luaK_reserveregs(i5, i14); 12579 _luaK_nil(i5, i29, i14); 12580 } 12581 _luaK_checkstack(i12, 3); 12582 _forbody(i4, i11, i13, i10, 0); 12583 } else if ((i11 | 0) == 61) { 12584 i11 = HEAP32[i3 >> 2] | 0; 12585 i7 = i11 + 48 | 0; 12586 i10 = HEAPU8[i7] | 0; 12587 _new_localvar(i4, _luaX_newstring(i4, 6792, 11) | 0); 12588 _new_localvar(i4, _luaX_newstring(i4, 6808, 11) | 0); 12589 _new_localvar(i4, _luaX_newstring(i4, 6824, 10) | 0); 12590 _new_localvar(i4, i13); 12591 if ((HEAP32[i5 >> 2] | 0) != 61) { 12592 _error_expected(i4, 61); 12593 } 12594 _luaX_next(i4); 12595 _subexpr(i4, i8, 0) | 0; 12596 _luaK_exp2nextreg(HEAP32[i3 >> 2] | 0, i8); 12597 if ((HEAP32[i5 >> 2] | 0) != 44) { 12598 _error_expected(i4, 44); 12599 } 12600 _luaX_next(i4); 12601 _subexpr(i4, i8, 0) | 0; 12602 _luaK_exp2nextreg(HEAP32[i3 >> 2] | 0, i8); 12603 if ((HEAP32[i5 >> 2] | 0) == 44) { 12604 _luaX_next(i4); 12605 _subexpr(i4, i8, 0) | 0; 12606 _luaK_exp2nextreg(HEAP32[i3 >> 2] | 0, i8); 12607 } else { 12608 i29 = HEAPU8[i7] | 0; 12609 _luaK_codek(i11, i29, _luaK_numberK(i11, 1.0) | 0) | 0; 12610 _luaK_reserveregs(i11, 1); 12611 } 12612 _forbody(i4, i10, i6, 1, 1); 12613 } else { 12614 _luaX_syntaxerror(i4, 6720); 12615 } 12616 _check_match(i4, 262, 264, i6); 12617 _leaveblock(i9); 12618 break; 12619 } 12620 case 265: 12621 { 12622 _luaX_next(i4); 12623 if ((HEAP32[i5 >> 2] | 0) != 288) { 12624 _error_expected(i4, 288); 12625 } 12626 i8 = HEAP32[i4 + 24 >> 2] | 0; 12627 _luaX_next(i4); 12628 i9 = HEAP32[i3 >> 2] | 0; 12629 if ((_singlevaraux(i9, i8, i20, 1) | 0) == 0) { 12630 _singlevaraux(i9, HEAP32[i4 + 72 >> 2] | 0, i20, 1) | 0; 12631 i29 = _luaK_stringK(HEAP32[i3 >> 2] | 0, i8) | 0; 12632 HEAP32[i25 + 16 >> 2] = -1; 12633 HEAP32[i25 + 20 >> 2] = -1; 12634 HEAP32[i25 >> 2] = 4; 12635 HEAP32[i25 + 8 >> 2] = i29; 12636 _luaK_indexed(i9, i20, i25); 12637 } 12638 while (1) { 12639 i8 = HEAP32[i5 >> 2] | 0; 12640 if ((i8 | 0) == 58) { 12641 i7 = 70; 12642 break; 12643 } else if ((i8 | 0) != 46) { 12644 i5 = 0; 12645 break; 12646 } 12647 _fieldsel(i4, i20); 12648 } 12649 if ((i7 | 0) == 70) { 12650 _fieldsel(i4, i20); 12651 i5 = 1; 12652 } 12653 _body(i4, i21, i5, i6); 12654 _luaK_storevar(HEAP32[i3 >> 2] | 0, i20, i21); 12655 _luaK_fixline(HEAP32[i3 >> 2] | 0, i6); 12656 break; 12657 } 12658 case 278: 12659 { 12660 _luaX_next(i4); 12661 i7 = _luaK_getlabel(i9) | 0; 12662 _subexpr(i4, i20, 0) | 0; 12663 if ((HEAP32[i20 >> 2] | 0) == 1) { 12664 HEAP32[i20 >> 2] = 3; 12665 } 12666 _luaK_goiftrue(HEAP32[i3 >> 2] | 0, i20); 12667 i8 = HEAP32[i20 + 20 >> 2] | 0; 12668 HEAP8[i21 + 10 | 0] = 1; 12669 HEAP8[i21 + 8 | 0] = HEAP8[i9 + 46 | 0] | 0; 12670 i29 = HEAP32[(HEAP32[i9 + 12 >> 2] | 0) + 64 >> 2] | 0; 12671 HEAP16[i21 + 4 >> 1] = HEAP32[i29 + 28 >> 2]; 12672 HEAP16[i21 + 6 >> 1] = HEAP32[i29 + 16 >> 2]; 12673 HEAP8[i21 + 9 | 0] = 0; 12674 i29 = i9 + 16 | 0; 12675 HEAP32[i21 >> 2] = HEAP32[i29 >> 2]; 12676 HEAP32[i29 >> 2] = i21; 12677 if ((HEAP32[i5 >> 2] | 0) != 259) { 12678 _error_expected(i4, 259); 12679 } 12680 _luaX_next(i4); 12681 i10 = HEAP32[i3 >> 2] | 0; 12682 HEAP8[i20 + 10 | 0] = 0; 12683 HEAP8[i20 + 8 | 0] = HEAP8[i10 + 46 | 0] | 0; 12684 i29 = HEAP32[(HEAP32[i10 + 12 >> 2] | 0) + 64 >> 2] | 0; 12685 HEAP16[i20 + 4 >> 1] = HEAP32[i29 + 28 >> 2]; 12686 HEAP16[i20 + 6 >> 1] = HEAP32[i29 + 16 >> 2]; 12687 HEAP8[i20 + 9 | 0] = 0; 12688 i29 = i10 + 16 | 0; 12689 HEAP32[i20 >> 2] = HEAP32[i29 >> 2]; 12690 HEAP32[i29 >> 2] = i20; 12691 L119 : do { 12692 i11 = HEAP32[i5 >> 2] | 0; 12693 switch (i11 | 0) { 12694 case 277: 12695 case 286: 12696 case 262: 12697 case 261: 12698 case 260: 12699 { 12700 break L119; 12701 } 12702 default: 12703 {} 12704 } 12705 _statement(i4); 12706 } while ((i11 | 0) != 274); 12707 _leaveblock(i10); 12708 _luaK_patchlist(i9, _luaK_jump(i9) | 0, i7); 12709 _check_match(i4, 262, 278, i6); 12710 _leaveblock(i9); 12711 _luaK_patchtohere(i9, i8); 12712 break; 12713 } 12714 case 273: 12715 { 12716 i7 = _luaK_getlabel(i9) | 0; 12717 HEAP8[i24 + 10 | 0] = 1; 12718 i28 = i9 + 46 | 0; 12719 HEAP8[i24 + 8 | 0] = HEAP8[i28] | 0; 12720 i11 = i9 + 12 | 0; 12721 i29 = HEAP32[(HEAP32[i11 >> 2] | 0) + 64 >> 2] | 0; 12722 HEAP16[i24 + 4 >> 1] = HEAP32[i29 + 28 >> 2]; 12723 HEAP16[i24 + 6 >> 1] = HEAP32[i29 + 16 >> 2]; 12724 HEAP8[i24 + 9 | 0] = 0; 12725 i29 = i9 + 16 | 0; 12726 HEAP32[i24 >> 2] = HEAP32[i29 >> 2]; 12727 HEAP32[i29 >> 2] = i24; 12728 HEAP8[i15 + 10 | 0] = 0; 12729 i10 = i15 + 8 | 0; 12730 HEAP8[i10] = HEAP8[i28] | 0; 12731 i11 = HEAP32[(HEAP32[i11 >> 2] | 0) + 64 >> 2] | 0; 12732 HEAP16[i15 + 4 >> 1] = HEAP32[i11 + 28 >> 2]; 12733 HEAP16[i15 + 6 >> 1] = HEAP32[i11 + 16 >> 2]; 12734 i11 = i15 + 9 | 0; 12735 HEAP8[i11] = 0; 12736 HEAP32[i15 >> 2] = HEAP32[i29 >> 2]; 12737 HEAP32[i29 >> 2] = i15; 12738 _luaX_next(i4); 12739 L124 : do { 12740 i12 = HEAP32[i5 >> 2] | 0; 12741 switch (i12 | 0) { 12742 case 277: 12743 case 286: 12744 case 262: 12745 case 261: 12746 case 260: 12747 { 12748 break L124; 12749 } 12750 default: 12751 {} 12752 } 12753 _statement(i4); 12754 } while ((i12 | 0) != 274); 12755 _check_match(i4, 277, 273, i6); 12756 _subexpr(i4, i8, 0) | 0; 12757 if ((HEAP32[i8 >> 2] | 0) == 1) { 12758 HEAP32[i8 >> 2] = 3; 12759 } 12760 _luaK_goiftrue(HEAP32[i3 >> 2] | 0, i8); 12761 i4 = HEAP32[i8 + 20 >> 2] | 0; 12762 if ((HEAP8[i11] | 0) != 0) { 12763 _luaK_patchclose(i9, i4, HEAPU8[i10] | 0); 12764 } 12765 _leaveblock(i9); 12766 _luaK_patchlist(i9, i4, i7); 12767 _leaveblock(i9); 12768 break; 12769 } 12770 case 285: 12771 { 12772 _luaX_next(i4); 12773 if ((HEAP32[i5 >> 2] | 0) != 288) { 12774 _error_expected(i4, 288); 12775 } 12776 i10 = HEAP32[i4 + 24 >> 2] | 0; 12777 _luaX_next(i4); 12778 i15 = HEAP32[i3 >> 2] | 0; 12779 i9 = i4 + 64 | 0; 12780 i14 = HEAP32[i9 >> 2] | 0; 12781 i12 = i14 + 24 | 0; 12782 i11 = i15 + 16 | 0; 12783 i16 = HEAP16[(HEAP32[i11 >> 2] | 0) + 4 >> 1] | 0; 12784 i13 = i14 + 28 | 0; 12785 L138 : do { 12786 if ((i16 | 0) < (HEAP32[i13 >> 2] | 0)) { 12787 while (1) { 12788 i17 = i16 + 1 | 0; 12789 if ((_luaS_eqstr(i10, HEAP32[(HEAP32[i12 >> 2] | 0) + (i16 << 4) >> 2] | 0) | 0) != 0) { 12790 break; 12791 } 12792 if ((i17 | 0) < (HEAP32[i13 >> 2] | 0)) { 12793 i16 = i17; 12794 } else { 12795 break L138; 12796 } 12797 } 12798 i28 = i15 + 12 | 0; 12799 i29 = HEAP32[(HEAP32[i28 >> 2] | 0) + 52 >> 2] | 0; 12800 i27 = HEAP32[(HEAP32[i12 >> 2] | 0) + (i16 << 4) + 8 >> 2] | 0; 12801 HEAP32[i8 >> 2] = i10 + 16; 12802 HEAP32[i8 + 4 >> 2] = i27; 12803 i29 = _luaO_pushfstring(i29, 6680, i8) | 0; 12804 _semerror(HEAP32[i28 >> 2] | 0, i29); 12805 } 12806 } while (0); 12807 if ((HEAP32[i5 >> 2] | 0) != 285) { 12808 _error_expected(i4, 285); 12809 } 12810 _luaX_next(i4); 12811 i8 = HEAP32[i15 + 20 >> 2] | 0; 12812 i15 = HEAP32[i13 >> 2] | 0; 12813 i14 = i14 + 32 | 0; 12814 if ((i15 | 0) < (HEAP32[i14 >> 2] | 0)) { 12815 i14 = HEAP32[i12 >> 2] | 0; 12816 } else { 12817 i14 = _luaM_growaux_(HEAP32[i1 >> 2] | 0, HEAP32[i12 >> 2] | 0, i14, 16, 32767, 6312) | 0; 12818 HEAP32[i12 >> 2] = i14; 12819 } 12820 HEAP32[i14 + (i15 << 4) >> 2] = i10; 12821 i29 = HEAP32[i12 >> 2] | 0; 12822 HEAP32[i29 + (i15 << 4) + 8 >> 2] = i6; 12823 HEAP8[i29 + (i15 << 4) + 12 | 0] = HEAP8[(HEAP32[i3 >> 2] | 0) + 46 | 0] | 0; 12824 HEAP32[(HEAP32[i12 >> 2] | 0) + (i15 << 4) + 4 >> 2] = i8; 12825 HEAP32[i13 >> 2] = (HEAP32[i13 >> 2] | 0) + 1; 12826 L152 : while (1) { 12827 switch (HEAP32[i5 >> 2] | 0) { 12828 case 285: 12829 case 59: 12830 { 12831 break; 12832 } 12833 case 286: 12834 case 262: 12835 case 261: 12836 case 260: 12837 { 12838 i7 = 108; 12839 break L152; 12840 } 12841 default: 12842 { 12843 break L152; 12844 } 12845 } 12846 _statement(i4); 12847 } 12848 if ((i7 | 0) == 108) { 12849 HEAP8[(HEAP32[i12 >> 2] | 0) + (i15 << 4) + 12 | 0] = HEAP8[(HEAP32[i11 >> 2] | 0) + 8 | 0] | 0; 12850 } 12851 i5 = (HEAP32[i12 >> 2] | 0) + (i15 << 4) | 0; 12852 i8 = HEAP32[i9 >> 2] | 0; 12853 i7 = HEAP16[(HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] | 0) + 6 >> 1] | 0; 12854 i6 = i8 + 16 | 0; 12855 if ((i7 | 0) < (HEAP32[i6 >> 2] | 0)) { 12856 i8 = i8 + 12 | 0; 12857 do { 12858 while (1) { 12859 if ((_luaS_eqstr(HEAP32[(HEAP32[i8 >> 2] | 0) + (i7 << 4) >> 2] | 0, HEAP32[i5 >> 2] | 0) | 0) == 0) { 12860 break; 12861 } 12862 _closegoto(i4, i7, i5); 12863 if ((i7 | 0) >= (HEAP32[i6 >> 2] | 0)) { 12864 break L8; 12865 } 12866 } 12867 i7 = i7 + 1 | 0; 12868 } while ((i7 | 0) < (HEAP32[i6 >> 2] | 0)); 12869 } 12870 break; 12871 } 12872 case 274: 12873 { 12874 _luaX_next(i4); 12875 i6 = HEAP32[i3 >> 2] | 0; 12876 L166 : do { 12877 switch (HEAP32[i5 >> 2] | 0) { 12878 case 59: 12879 case 277: 12880 case 286: 12881 case 262: 12882 case 261: 12883 case 260: 12884 { 12885 i8 = 0; 12886 i7 = 0; 12887 break; 12888 } 12889 default: 12890 { 12891 _subexpr(i4, i24, 0) | 0; 12892 if ((HEAP32[i5 >> 2] | 0) == 44) { 12893 i7 = 1; 12894 do { 12895 _luaX_next(i4); 12896 _luaK_exp2nextreg(HEAP32[i3 >> 2] | 0, i24); 12897 _subexpr(i4, i24, 0) | 0; 12898 i7 = i7 + 1 | 0; 12899 } while ((HEAP32[i5 >> 2] | 0) == 44); 12900 } else { 12901 i7 = 1; 12902 } 12903 if (!(((HEAP32[i24 >> 2] | 0) + -12 | 0) >>> 0 < 2)) { 12904 if ((i7 | 0) == 1) { 12905 i8 = _luaK_exp2anyreg(i6, i24) | 0; 12906 i7 = 1; 12907 break L166; 12908 } else { 12909 _luaK_exp2nextreg(i6, i24); 12910 i8 = HEAPU8[i6 + 46 | 0] | 0; 12911 break L166; 12912 } 12913 } else { 12914 _luaK_setreturns(i6, i24, -1); 12915 if ((HEAP32[i24 >> 2] | 0) == 12 & (i7 | 0) == 1) { 12916 i29 = (HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i24 + 8 >> 2] << 2) | 0; 12917 HEAP32[i29 >> 2] = HEAP32[i29 >> 2] & -64 | 30; 12918 } 12919 i8 = HEAPU8[i6 + 46 | 0] | 0; 12920 i7 = -1; 12921 break L166; 12922 } 12923 } 12924 } 12925 } while (0); 12926 _luaK_ret(i6, i8, i7); 12927 if ((HEAP32[i5 >> 2] | 0) == 59) { 12928 _luaX_next(i4); 12929 } 12930 break; 12931 } 12932 case 266: 12933 case 258: 12934 { 12935 i6 = _luaK_jump(i9) | 0; 12936 i7 = HEAP32[i19 >> 2] | 0; 12937 i29 = (HEAP32[i5 >> 2] | 0) == 266; 12938 _luaX_next(i4); 12939 do { 12940 if (i29) { 12941 if ((HEAP32[i5 >> 2] | 0) == 288) { 12942 i23 = HEAP32[i4 + 24 >> 2] | 0; 12943 _luaX_next(i4); 12944 break; 12945 } else { 12946 _error_expected(i4, 288); 12947 } 12948 } else { 12949 i23 = _luaS_new(HEAP32[i1 >> 2] | 0, 6304) | 0; 12950 } 12951 } while (0); 12952 i10 = HEAP32[i4 + 64 >> 2] | 0; 12953 i9 = i10 + 12 | 0; 12954 i5 = i10 + 16 | 0; 12955 i8 = HEAP32[i5 >> 2] | 0; 12956 i10 = i10 + 20 | 0; 12957 if ((i8 | 0) < (HEAP32[i10 >> 2] | 0)) { 12958 i10 = HEAP32[i9 >> 2] | 0; 12959 } else { 12960 i10 = _luaM_growaux_(HEAP32[i1 >> 2] | 0, HEAP32[i9 >> 2] | 0, i10, 16, 32767, 6312) | 0; 12961 HEAP32[i9 >> 2] = i10; 12962 } 12963 HEAP32[i10 + (i8 << 4) >> 2] = i23; 12964 i29 = HEAP32[i9 >> 2] | 0; 12965 HEAP32[i29 + (i8 << 4) + 8 >> 2] = i7; 12966 HEAP8[i29 + (i8 << 4) + 12 | 0] = HEAP8[(HEAP32[i3 >> 2] | 0) + 46 | 0] | 0; 12967 HEAP32[(HEAP32[i9 >> 2] | 0) + (i8 << 4) + 4 >> 2] = i6; 12968 HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + 1; 12969 _findlabel(i4, i8) | 0; 12970 break; 12971 } 12972 default: 12973 { 12974 i6 = i8 + 8 | 0; 12975 _suffixedexp(i4, i6); 12976 i29 = HEAP32[i5 >> 2] | 0; 12977 if ((i29 | 0) == 44 | (i29 | 0) == 61) { 12978 HEAP32[i8 >> 2] = 0; 12979 _assignment(i4, i8, 1); 12980 break L8; 12981 } 12982 if ((HEAP32[i6 >> 2] | 0) == 12) { 12983 i29 = (HEAP32[(HEAP32[i9 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i8 + 16 >> 2] << 2) | 0; 12984 HEAP32[i29 >> 2] = HEAP32[i29 >> 2] & -8372225 | 16384; 12985 break L8; 12986 } else { 12987 _luaX_syntaxerror(i4, 6344); 12988 } 12989 } 12990 } 12991 } while (0); 12992 i29 = HEAP32[i3 >> 2] | 0; 12993 HEAP8[i29 + 48 | 0] = HEAP8[i29 + 46 | 0] | 0; 12994 i29 = (HEAP32[i1 >> 2] | 0) + 38 | 0; 12995 HEAP16[i29 >> 1] = (HEAP16[i29 >> 1] | 0) + -1 << 16 >> 16; 12996 STACKTOP = i2; 12997 return; 12998 } 12999 function _match(i1, i12, i11) { 13000 i1 = i1 | 0; 13001 i12 = i12 | 0; 13002 i11 = i11 | 0; 13003 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0; 13004 i2 = STACKTOP; 13005 STACKTOP = STACKTOP + 16 | 0; 13006 i8 = i2; 13007 i32 = HEAP32[i1 >> 2] | 0; 13008 HEAP32[i1 >> 2] = i32 + -1; 13009 if ((i32 | 0) == 0) { 13010 _luaL_error(HEAP32[i1 + 16 >> 2] | 0, 7272, i8) | 0; 13011 } 13012 i14 = i1 + 12 | 0; 13013 i22 = HEAP32[i14 >> 2] | 0; 13014 L4 : do { 13015 if ((i22 | 0) != (i11 | 0)) { 13016 i3 = i1 + 8 | 0; 13017 i9 = i1 + 16 | 0; 13018 i16 = i1 + 4 | 0; 13019 i10 = i1 + 20 | 0; 13020 L6 : while (1) { 13021 i19 = i12 + 1 | 0; 13022 i20 = i12 + -1 | 0; 13023 L8 : while (1) { 13024 i23 = HEAP8[i11] | 0; 13025 i21 = i23 << 24 >> 24; 13026 L10 : do { 13027 if ((i21 | 0) == 36) { 13028 i7 = i11 + 1 | 0; 13029 if ((i7 | 0) == (i22 | 0)) { 13030 i7 = 23; 13031 break L6; 13032 } else { 13033 i22 = i7; 13034 i21 = i7; 13035 i7 = 89; 13036 } 13037 } else if ((i21 | 0) == 37) { 13038 i21 = i11 + 1 | 0; 13039 i23 = HEAP8[i21] | 0; 13040 switch (i23 << 24 >> 24 | 0) { 13041 case 57: 13042 case 56: 13043 case 55: 13044 case 54: 13045 case 53: 13046 case 52: 13047 case 51: 13048 case 50: 13049 case 49: 13050 case 48: 13051 { 13052 i7 = 69; 13053 break L8; 13054 } 13055 case 98: 13056 { 13057 i7 = 25; 13058 break L8; 13059 } 13060 case 102: 13061 { 13062 break; 13063 } 13064 default: 13065 { 13066 if ((i21 | 0) == (i22 | 0)) { 13067 _luaL_error(HEAP32[i9 >> 2] | 0, 7368, i8) | 0; 13068 } 13069 i22 = i11 + 2 | 0; 13070 i7 = 89; 13071 break L10; 13072 } 13073 } 13074 i22 = i11 + 2 | 0; 13075 if ((HEAP8[i22] | 0) == 91) { 13076 i21 = 91; 13077 } else { 13078 _luaL_error(HEAP32[i9 >> 2] | 0, 7296, i8) | 0; 13079 i21 = HEAP8[i22] | 0; 13080 } 13081 i23 = i11 + 3 | 0; 13082 i21 = i21 << 24 >> 24; 13083 if ((i21 | 0) == 91) { 13084 i21 = (HEAP8[i23] | 0) == 94 ? i11 + 4 | 0 : i23; 13085 while (1) { 13086 if ((i21 | 0) == (HEAP32[i14 >> 2] | 0)) { 13087 _luaL_error(HEAP32[i9 >> 2] | 0, 7408, i8) | 0; 13088 } 13089 i11 = i21 + 1 | 0; 13090 if ((HEAP8[i21] | 0) == 37) { 13091 i11 = i11 >>> 0 < (HEAP32[i14 >> 2] | 0) >>> 0 ? i21 + 2 | 0 : i11; 13092 } 13093 if ((HEAP8[i11] | 0) == 93) { 13094 break; 13095 } else { 13096 i21 = i11; 13097 } 13098 } 13099 i11 = i11 + 1 | 0; 13100 } else if ((i21 | 0) == 37) { 13101 if ((i23 | 0) == (HEAP32[i14 >> 2] | 0)) { 13102 _luaL_error(HEAP32[i9 >> 2] | 0, 7368, i8) | 0; 13103 } 13104 i11 = i11 + 4 | 0; 13105 } else { 13106 i11 = i23; 13107 } 13108 if ((i12 | 0) == (HEAP32[i16 >> 2] | 0)) { 13109 i25 = 0; 13110 } else { 13111 i25 = HEAP8[i20] | 0; 13112 } 13113 i24 = i25 & 255; 13114 i21 = i11 + -1 | 0; 13115 i26 = (HEAP8[i23] | 0) == 94; 13116 i28 = i26 ? i23 : i22; 13117 i27 = i26 & 1; 13118 i26 = i27 ^ 1; 13119 i30 = i28 + 1 | 0; 13120 L41 : do { 13121 if (i30 >>> 0 < i21 >>> 0) { 13122 while (1) { 13123 i32 = HEAP8[i30] | 0; 13124 i29 = i28 + 2 | 0; 13125 i31 = HEAP8[i29] | 0; 13126 do { 13127 if (i32 << 24 >> 24 == 37) { 13128 if ((_match_class(i24, i31 & 255) | 0) == 0) { 13129 i28 = i29; 13130 } else { 13131 break L41; 13132 } 13133 } else { 13134 if (i31 << 24 >> 24 == 45 ? (i18 = i28 + 3 | 0, i18 >>> 0 < i21 >>> 0) : 0) { 13135 if ((i32 & 255) > (i25 & 255)) { 13136 i28 = i18; 13137 break; 13138 } 13139 if ((HEAPU8[i18] | 0) < (i25 & 255)) { 13140 i28 = i18; 13141 break; 13142 } else { 13143 break L41; 13144 } 13145 } 13146 if (i32 << 24 >> 24 == i25 << 24 >> 24) { 13147 break L41; 13148 } else { 13149 i28 = i30; 13150 } 13151 } 13152 } while (0); 13153 i30 = i28 + 1 | 0; 13154 if (!(i30 >>> 0 < i21 >>> 0)) { 13155 i26 = i27; 13156 break; 13157 } 13158 } 13159 } else { 13160 i26 = i27; 13161 } 13162 } while (0); 13163 if ((i26 | 0) != 0) { 13164 i12 = 0; 13165 break L4; 13166 } 13167 i24 = HEAP8[i12] | 0; 13168 i25 = i24 & 255; 13169 i27 = (HEAP8[i23] | 0) == 94; 13170 i26 = i27 ? i23 : i22; 13171 i22 = i27 & 1; 13172 i23 = i22 ^ 1; 13173 i30 = i26 + 1 | 0; 13174 L55 : do { 13175 if (i30 >>> 0 < i21 >>> 0) { 13176 do { 13177 i29 = HEAP8[i30] | 0; 13178 i28 = i26 + 2 | 0; 13179 i27 = HEAP8[i28] | 0; 13180 do { 13181 if (i29 << 24 >> 24 == 37) { 13182 if ((_match_class(i25, i27 & 255) | 0) == 0) { 13183 i26 = i28; 13184 } else { 13185 i22 = i23; 13186 break L55; 13187 } 13188 } else { 13189 if (i27 << 24 >> 24 == 45 ? (i17 = i26 + 3 | 0, i17 >>> 0 < i21 >>> 0) : 0) { 13190 if ((i29 & 255) > (i24 & 255)) { 13191 i26 = i17; 13192 break; 13193 } 13194 if ((HEAPU8[i17] | 0) < (i24 & 255)) { 13195 i26 = i17; 13196 break; 13197 } else { 13198 i22 = i23; 13199 break L55; 13200 } 13201 } 13202 if (i29 << 24 >> 24 == i24 << 24 >> 24) { 13203 i22 = i23; 13204 break L55; 13205 } else { 13206 i26 = i30; 13207 } 13208 } 13209 } while (0); 13210 i30 = i26 + 1 | 0; 13211 } while (i30 >>> 0 < i21 >>> 0); 13212 } 13213 } while (0); 13214 if ((i22 | 0) == 0) { 13215 i12 = 0; 13216 break L4; 13217 } 13218 } else if ((i21 | 0) == 40) { 13219 i7 = 7; 13220 break L6; 13221 } else if ((i21 | 0) != 41) { 13222 i21 = i11 + 1 | 0; 13223 if (i23 << 24 >> 24 == 91) { 13224 i7 = (HEAP8[i21] | 0) == 94 ? i11 + 2 | 0 : i21; 13225 while (1) { 13226 if ((i7 | 0) == (i22 | 0)) { 13227 _luaL_error(HEAP32[i9 >> 2] | 0, 7408, i8) | 0; 13228 } 13229 i22 = i7 + 1 | 0; 13230 if ((HEAP8[i7] | 0) == 37) { 13231 i7 = i22 >>> 0 < (HEAP32[i14 >> 2] | 0) >>> 0 ? i7 + 2 | 0 : i22; 13232 } else { 13233 i7 = i22; 13234 } 13235 if ((HEAP8[i7] | 0) == 93) { 13236 break; 13237 } 13238 i22 = HEAP32[i14 >> 2] | 0; 13239 } 13240 i22 = i7 + 1 | 0; 13241 i7 = 89; 13242 } else { 13243 i22 = i21; 13244 i7 = 89; 13245 } 13246 } else { 13247 i7 = 16; 13248 break L6; 13249 } 13250 } while (0); 13251 L80 : do { 13252 if ((i7 | 0) == 89) { 13253 i7 = 0; 13254 do { 13255 if ((HEAP32[i3 >> 2] | 0) >>> 0 > i12 >>> 0) { 13256 i23 = HEAP8[i12] | 0; 13257 i24 = i23 & 255; 13258 i26 = HEAP8[i11] | 0; 13259 i25 = i26 << 24 >> 24; 13260 L85 : do { 13261 if ((i25 | 0) == 46) { 13262 i23 = HEAP8[i22] | 0; 13263 } else if ((i25 | 0) == 37) { 13264 i25 = _match_class(i24, HEAPU8[i21] | 0) | 0; 13265 i7 = 104; 13266 } else if ((i25 | 0) == 91) { 13267 i7 = i22 + -1 | 0; 13268 i25 = (HEAP8[i21] | 0) == 94; 13269 i27 = i25 ? i21 : i11; 13270 i26 = i25 & 1; 13271 i25 = i26 ^ 1; 13272 i30 = i27 + 1 | 0; 13273 if (i30 >>> 0 < i7 >>> 0) { 13274 while (1) { 13275 i31 = HEAP8[i30] | 0; 13276 i29 = i27 + 2 | 0; 13277 i28 = HEAP8[i29] | 0; 13278 do { 13279 if (i31 << 24 >> 24 == 37) { 13280 if ((_match_class(i24, i28 & 255) | 0) == 0) { 13281 i27 = i29; 13282 } else { 13283 i7 = 104; 13284 break L85; 13285 } 13286 } else { 13287 if (i28 << 24 >> 24 == 45 ? (i13 = i27 + 3 | 0, i13 >>> 0 < i7 >>> 0) : 0) { 13288 if ((i31 & 255) > (i23 & 255)) { 13289 i27 = i13; 13290 break; 13291 } 13292 if ((HEAPU8[i13] | 0) < (i23 & 255)) { 13293 i27 = i13; 13294 break; 13295 } else { 13296 i7 = 104; 13297 break L85; 13298 } 13299 } 13300 if (i31 << 24 >> 24 == i23 << 24 >> 24) { 13301 i7 = 104; 13302 break L85; 13303 } else { 13304 i27 = i30; 13305 } 13306 } 13307 } while (0); 13308 i30 = i27 + 1 | 0; 13309 if (!(i30 >>> 0 < i7 >>> 0)) { 13310 i25 = i26; 13311 i7 = 104; 13312 break; 13313 } 13314 } 13315 } else { 13316 i25 = i26; 13317 i7 = 104; 13318 } 13319 } else { 13320 i25 = i26 << 24 >> 24 == i23 << 24 >> 24 | 0; 13321 i7 = 104; 13322 } 13323 } while (0); 13324 if ((i7 | 0) == 104) { 13325 i7 = 0; 13326 i23 = HEAP8[i22] | 0; 13327 if ((i25 | 0) == 0) { 13328 break; 13329 } 13330 } 13331 i23 = i23 << 24 >> 24; 13332 if ((i23 | 0) == 45) { 13333 i7 = 109; 13334 break L6; 13335 } else if ((i23 | 0) == 42) { 13336 i7 = 112; 13337 break L6; 13338 } else if ((i23 | 0) == 43) { 13339 break L6; 13340 } else if ((i23 | 0) != 63) { 13341 i12 = i19; 13342 i11 = i22; 13343 break L8; 13344 } 13345 i11 = i22 + 1 | 0; 13346 i21 = _match(i1, i19, i11) | 0; 13347 if ((i21 | 0) == 0) { 13348 break L80; 13349 } else { 13350 i12 = i21; 13351 break L4; 13352 } 13353 } else { 13354 i23 = HEAP8[i22] | 0; 13355 } 13356 } while (0); 13357 if (!(i23 << 24 >> 24 == 45 | i23 << 24 >> 24 == 63 | i23 << 24 >> 24 == 42)) { 13358 i12 = 0; 13359 break L4; 13360 } 13361 i11 = i22 + 1 | 0; 13362 } 13363 } while (0); 13364 i22 = HEAP32[i14 >> 2] | 0; 13365 if ((i11 | 0) == (i22 | 0)) { 13366 break L4; 13367 } 13368 } 13369 if ((i7 | 0) == 25) { 13370 i7 = 0; 13371 i21 = i11 + 2 | 0; 13372 if (!((i22 + -1 | 0) >>> 0 > i21 >>> 0)) { 13373 _luaL_error(HEAP32[i9 >> 2] | 0, 7440, i8) | 0; 13374 } 13375 i20 = HEAP8[i12] | 0; 13376 if (!(i20 << 24 >> 24 == (HEAP8[i21] | 0))) { 13377 i12 = 0; 13378 break L4; 13379 } 13380 i21 = HEAP8[i11 + 3 | 0] | 0; 13381 i22 = HEAP32[i3 >> 2] | 0; 13382 if (i19 >>> 0 < i22 >>> 0) { 13383 i24 = 1; 13384 } else { 13385 i12 = 0; 13386 break L4; 13387 } 13388 while (1) { 13389 i23 = HEAP8[i19] | 0; 13390 if (i23 << 24 >> 24 == i21 << 24 >> 24) { 13391 i24 = i24 + -1 | 0; 13392 if ((i24 | 0) == 0) { 13393 break; 13394 } 13395 } else { 13396 i24 = (i23 << 24 >> 24 == i20 << 24 >> 24) + i24 | 0; 13397 } 13398 i12 = i19 + 1 | 0; 13399 if (i12 >>> 0 < i22 >>> 0) { 13400 i32 = i19; 13401 i19 = i12; 13402 i12 = i32; 13403 } else { 13404 i12 = 0; 13405 break L4; 13406 } 13407 } 13408 i12 = i12 + 2 | 0; 13409 i11 = i11 + 4 | 0; 13410 } else if ((i7 | 0) == 69) { 13411 i7 = 0; 13412 i20 = i23 & 255; 13413 i19 = i20 + -49 | 0; 13414 if (((i19 | 0) >= 0 ? (i19 | 0) < (HEAP32[i10 >> 2] | 0) : 0) ? (i15 = HEAP32[i1 + (i19 << 3) + 28 >> 2] | 0, !((i15 | 0) == -1)) : 0) { 13415 i20 = i15; 13416 } else { 13417 i19 = HEAP32[i9 >> 2] | 0; 13418 HEAP32[i8 >> 2] = i20 + -48; 13419 i20 = _luaL_error(i19, 7336, i8) | 0; 13420 i19 = i20; 13421 i20 = HEAP32[i1 + (i20 << 3) + 28 >> 2] | 0; 13422 } 13423 if (((HEAP32[i3 >> 2] | 0) - i12 | 0) >>> 0 < i20 >>> 0) { 13424 i12 = 0; 13425 break L4; 13426 } 13427 if ((_memcmp(HEAP32[i1 + (i19 << 3) + 24 >> 2] | 0, i12, i20) | 0) != 0) { 13428 i12 = 0; 13429 break L4; 13430 } 13431 i12 = i12 + i20 | 0; 13432 if ((i12 | 0) == 0) { 13433 i12 = 0; 13434 break L4; 13435 } 13436 i11 = i11 + 2 | 0; 13437 } 13438 i22 = HEAP32[i14 >> 2] | 0; 13439 if ((i11 | 0) == (i22 | 0)) { 13440 break L4; 13441 } 13442 } 13443 if ((i7 | 0) == 7) { 13444 i3 = i11 + 1 | 0; 13445 if ((HEAP8[i3] | 0) == 41) { 13446 i3 = HEAP32[i10 >> 2] | 0; 13447 if ((i3 | 0) > 31) { 13448 _luaL_error(HEAP32[i9 >> 2] | 0, 7200, i8) | 0; 13449 } 13450 HEAP32[i1 + (i3 << 3) + 24 >> 2] = i12; 13451 HEAP32[i1 + (i3 << 3) + 28 >> 2] = -2; 13452 HEAP32[i10 >> 2] = i3 + 1; 13453 i12 = _match(i1, i12, i11 + 2 | 0) | 0; 13454 if ((i12 | 0) != 0) { 13455 break; 13456 } 13457 HEAP32[i10 >> 2] = (HEAP32[i10 >> 2] | 0) + -1; 13458 i12 = 0; 13459 break; 13460 } else { 13461 i4 = HEAP32[i10 >> 2] | 0; 13462 if ((i4 | 0) > 31) { 13463 _luaL_error(HEAP32[i9 >> 2] | 0, 7200, i8) | 0; 13464 } 13465 HEAP32[i1 + (i4 << 3) + 24 >> 2] = i12; 13466 HEAP32[i1 + (i4 << 3) + 28 >> 2] = -1; 13467 HEAP32[i10 >> 2] = i4 + 1; 13468 i12 = _match(i1, i12, i3) | 0; 13469 if ((i12 | 0) != 0) { 13470 break; 13471 } 13472 HEAP32[i10 >> 2] = (HEAP32[i10 >> 2] | 0) + -1; 13473 i12 = 0; 13474 break; 13475 } 13476 } else if ((i7 | 0) == 16) { 13477 i3 = i11 + 1 | 0; 13478 i5 = HEAP32[i10 >> 2] | 0; 13479 while (1) { 13480 i4 = i5 + -1 | 0; 13481 if ((i5 | 0) <= 0) { 13482 i7 = 19; 13483 break; 13484 } 13485 if ((HEAP32[i1 + (i4 << 3) + 28 >> 2] | 0) == -1) { 13486 break; 13487 } else { 13488 i5 = i4; 13489 } 13490 } 13491 if ((i7 | 0) == 19) { 13492 i4 = _luaL_error(HEAP32[i9 >> 2] | 0, 7488, i8) | 0; 13493 } 13494 i5 = i1 + (i4 << 3) + 28 | 0; 13495 HEAP32[i5 >> 2] = i12 - (HEAP32[i1 + (i4 << 3) + 24 >> 2] | 0); 13496 i12 = _match(i1, i12, i3) | 0; 13497 if ((i12 | 0) != 0) { 13498 break; 13499 } 13500 HEAP32[i5 >> 2] = -1; 13501 i12 = 0; 13502 break; 13503 } else if ((i7 | 0) == 23) { 13504 i12 = (i12 | 0) == (HEAP32[i3 >> 2] | 0) ? i12 : 0; 13505 break; 13506 } else if ((i7 | 0) == 109) { 13507 i4 = i22 + 1 | 0; 13508 i8 = _match(i1, i12, i4) | 0; 13509 if ((i8 | 0) != 0) { 13510 i12 = i8; 13511 break; 13512 } 13513 i8 = i22 + -1 | 0; 13514 while (1) { 13515 if (!((HEAP32[i3 >> 2] | 0) >>> 0 > i12 >>> 0)) { 13516 i12 = 0; 13517 break L4; 13518 } 13519 i9 = HEAP8[i12] | 0; 13520 i10 = i9 & 255; 13521 i14 = HEAP8[i11] | 0; 13522 i13 = i14 << 24 >> 24; 13523 L139 : do { 13524 if ((i13 | 0) == 91) { 13525 i6 = (HEAP8[i21] | 0) == 94; 13526 i13 = i6 ? i21 : i11; 13527 i6 = i6 & 1; 13528 i7 = i6 ^ 1; 13529 i14 = i13 + 1 | 0; 13530 if (i14 >>> 0 < i8 >>> 0) { 13531 while (1) { 13532 i17 = HEAP8[i14] | 0; 13533 i15 = i13 + 2 | 0; 13534 i16 = HEAP8[i15] | 0; 13535 do { 13536 if (i17 << 24 >> 24 == 37) { 13537 if ((_match_class(i10, i16 & 255) | 0) == 0) { 13538 i13 = i15; 13539 } else { 13540 i6 = i7; 13541 i7 = 147; 13542 break L139; 13543 } 13544 } else { 13545 if (i16 << 24 >> 24 == 45 ? (i5 = i13 + 3 | 0, i5 >>> 0 < i8 >>> 0) : 0) { 13546 if ((i17 & 255) > (i9 & 255)) { 13547 i13 = i5; 13548 break; 13549 } 13550 if ((HEAPU8[i5] | 0) < (i9 & 255)) { 13551 i13 = i5; 13552 break; 13553 } else { 13554 i6 = i7; 13555 i7 = 147; 13556 break L139; 13557 } 13558 } 13559 if (i17 << 24 >> 24 == i9 << 24 >> 24) { 13560 i6 = i7; 13561 i7 = 147; 13562 break L139; 13563 } else { 13564 i13 = i14; 13565 } 13566 } 13567 } while (0); 13568 i14 = i13 + 1 | 0; 13569 if (!(i14 >>> 0 < i8 >>> 0)) { 13570 i7 = 147; 13571 break; 13572 } 13573 } 13574 } else { 13575 i7 = 147; 13576 } 13577 } else if ((i13 | 0) == 37) { 13578 i6 = _match_class(i10, HEAPU8[i21] | 0) | 0; 13579 i7 = 147; 13580 } else if ((i13 | 0) != 46) { 13581 i6 = i14 << 24 >> 24 == i9 << 24 >> 24 | 0; 13582 i7 = 147; 13583 } 13584 } while (0); 13585 if ((i7 | 0) == 147 ? (i7 = 0, (i6 | 0) == 0) : 0) { 13586 i12 = 0; 13587 break L4; 13588 } 13589 i9 = i12 + 1 | 0; 13590 i12 = _match(i1, i9, i4) | 0; 13591 if ((i12 | 0) == 0) { 13592 i12 = i9; 13593 } else { 13594 break L4; 13595 } 13596 } 13597 } else if ((i7 | 0) == 112) { 13598 i19 = i12; 13599 } 13600 i10 = HEAP32[i3 >> 2] | 0; 13601 if (i10 >>> 0 > i19 >>> 0) { 13602 i5 = i22 + -1 | 0; 13603 i8 = i19; 13604 i6 = 0; 13605 do { 13606 i8 = HEAP8[i8] | 0; 13607 i9 = i8 & 255; 13608 i13 = HEAP8[i11] | 0; 13609 i12 = i13 << 24 >> 24; 13610 L183 : do { 13611 if ((i12 | 0) == 37) { 13612 i10 = _match_class(i9, HEAPU8[i21] | 0) | 0; 13613 i7 = 129; 13614 } else if ((i12 | 0) == 91) { 13615 i7 = (HEAP8[i21] | 0) == 94; 13616 i12 = i7 ? i21 : i11; 13617 i10 = i7 & 1; 13618 i7 = i10 ^ 1; 13619 i13 = i12 + 1 | 0; 13620 if (i13 >>> 0 < i5 >>> 0) { 13621 while (1) { 13622 i14 = HEAP8[i13] | 0; 13623 i16 = i12 + 2 | 0; 13624 i15 = HEAP8[i16] | 0; 13625 do { 13626 if (i14 << 24 >> 24 == 37) { 13627 if ((_match_class(i9, i15 & 255) | 0) == 0) { 13628 i12 = i16; 13629 } else { 13630 i10 = i7; 13631 i7 = 129; 13632 break L183; 13633 } 13634 } else { 13635 if (i15 << 24 >> 24 == 45 ? (i4 = i12 + 3 | 0, i4 >>> 0 < i5 >>> 0) : 0) { 13636 if ((i14 & 255) > (i8 & 255)) { 13637 i12 = i4; 13638 break; 13639 } 13640 if ((HEAPU8[i4] | 0) < (i8 & 255)) { 13641 i12 = i4; 13642 break; 13643 } else { 13644 i10 = i7; 13645 i7 = 129; 13646 break L183; 13647 } 13648 } 13649 if (i14 << 24 >> 24 == i8 << 24 >> 24) { 13650 i10 = i7; 13651 i7 = 129; 13652 break L183; 13653 } else { 13654 i12 = i13; 13655 } 13656 } 13657 } while (0); 13658 i13 = i12 + 1 | 0; 13659 if (!(i13 >>> 0 < i5 >>> 0)) { 13660 i7 = 129; 13661 break; 13662 } 13663 } 13664 } else { 13665 i7 = 129; 13666 } 13667 } else if ((i12 | 0) != 46) { 13668 i10 = i13 << 24 >> 24 == i8 << 24 >> 24 | 0; 13669 i7 = 129; 13670 } 13671 } while (0); 13672 if ((i7 | 0) == 129) { 13673 i7 = 0; 13674 if ((i10 | 0) == 0) { 13675 break; 13676 } 13677 i10 = HEAP32[i3 >> 2] | 0; 13678 } 13679 i6 = i6 + 1 | 0; 13680 i8 = i19 + i6 | 0; 13681 } while (i10 >>> 0 > i8 >>> 0); 13682 if (!((i6 | 0) > -1)) { 13683 i12 = 0; 13684 break; 13685 } 13686 } else { 13687 i6 = 0; 13688 } 13689 i3 = i22 + 1 | 0; 13690 while (1) { 13691 i12 = _match(i1, i19 + i6 | 0, i3) | 0; 13692 if ((i12 | 0) != 0) { 13693 break L4; 13694 } 13695 if ((i6 | 0) > 0) { 13696 i6 = i6 + -1 | 0; 13697 } else { 13698 i12 = 0; 13699 break; 13700 } 13701 } 13702 } 13703 } while (0); 13704 HEAP32[i1 >> 2] = (HEAP32[i1 >> 2] | 0) + 1; 13705 STACKTOP = i2; 13706 return i12 | 0; 13707 } 13708 function _free(i7) { 13709 i7 = i7 | 0; 13710 var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0; 13711 i1 = STACKTOP; 13712 if ((i7 | 0) == 0) { 13713 STACKTOP = i1; 13714 return; 13715 } 13716 i15 = i7 + -8 | 0; 13717 i16 = HEAP32[12928 >> 2] | 0; 13718 if (i15 >>> 0 < i16 >>> 0) { 13719 _abort(); 13720 } 13721 i13 = HEAP32[i7 + -4 >> 2] | 0; 13722 i12 = i13 & 3; 13723 if ((i12 | 0) == 1) { 13724 _abort(); 13725 } 13726 i8 = i13 & -8; 13727 i6 = i7 + (i8 + -8) | 0; 13728 do { 13729 if ((i13 & 1 | 0) == 0) { 13730 i19 = HEAP32[i15 >> 2] | 0; 13731 if ((i12 | 0) == 0) { 13732 STACKTOP = i1; 13733 return; 13734 } 13735 i15 = -8 - i19 | 0; 13736 i13 = i7 + i15 | 0; 13737 i12 = i19 + i8 | 0; 13738 if (i13 >>> 0 < i16 >>> 0) { 13739 _abort(); 13740 } 13741 if ((i13 | 0) == (HEAP32[12932 >> 2] | 0)) { 13742 i2 = i7 + (i8 + -4) | 0; 13743 if ((HEAP32[i2 >> 2] & 3 | 0) != 3) { 13744 i2 = i13; 13745 i11 = i12; 13746 break; 13747 } 13748 HEAP32[12920 >> 2] = i12; 13749 HEAP32[i2 >> 2] = HEAP32[i2 >> 2] & -2; 13750 HEAP32[i7 + (i15 + 4) >> 2] = i12 | 1; 13751 HEAP32[i6 >> 2] = i12; 13752 STACKTOP = i1; 13753 return; 13754 } 13755 i18 = i19 >>> 3; 13756 if (i19 >>> 0 < 256) { 13757 i2 = HEAP32[i7 + (i15 + 8) >> 2] | 0; 13758 i11 = HEAP32[i7 + (i15 + 12) >> 2] | 0; 13759 i14 = 12952 + (i18 << 1 << 2) | 0; 13760 if ((i2 | 0) != (i14 | 0)) { 13761 if (i2 >>> 0 < i16 >>> 0) { 13762 _abort(); 13763 } 13764 if ((HEAP32[i2 + 12 >> 2] | 0) != (i13 | 0)) { 13765 _abort(); 13766 } 13767 } 13768 if ((i11 | 0) == (i2 | 0)) { 13769 HEAP32[3228] = HEAP32[3228] & ~(1 << i18); 13770 i2 = i13; 13771 i11 = i12; 13772 break; 13773 } 13774 if ((i11 | 0) != (i14 | 0)) { 13775 if (i11 >>> 0 < i16 >>> 0) { 13776 _abort(); 13777 } 13778 i14 = i11 + 8 | 0; 13779 if ((HEAP32[i14 >> 2] | 0) == (i13 | 0)) { 13780 i17 = i14; 13781 } else { 13782 _abort(); 13783 } 13784 } else { 13785 i17 = i11 + 8 | 0; 13786 } 13787 HEAP32[i2 + 12 >> 2] = i11; 13788 HEAP32[i17 >> 2] = i2; 13789 i2 = i13; 13790 i11 = i12; 13791 break; 13792 } 13793 i17 = HEAP32[i7 + (i15 + 24) >> 2] | 0; 13794 i18 = HEAP32[i7 + (i15 + 12) >> 2] | 0; 13795 do { 13796 if ((i18 | 0) == (i13 | 0)) { 13797 i19 = i7 + (i15 + 20) | 0; 13798 i18 = HEAP32[i19 >> 2] | 0; 13799 if ((i18 | 0) == 0) { 13800 i19 = i7 + (i15 + 16) | 0; 13801 i18 = HEAP32[i19 >> 2] | 0; 13802 if ((i18 | 0) == 0) { 13803 i14 = 0; 13804 break; 13805 } 13806 } 13807 while (1) { 13808 i21 = i18 + 20 | 0; 13809 i20 = HEAP32[i21 >> 2] | 0; 13810 if ((i20 | 0) != 0) { 13811 i18 = i20; 13812 i19 = i21; 13813 continue; 13814 } 13815 i20 = i18 + 16 | 0; 13816 i21 = HEAP32[i20 >> 2] | 0; 13817 if ((i21 | 0) == 0) { 13818 break; 13819 } else { 13820 i18 = i21; 13821 i19 = i20; 13822 } 13823 } 13824 if (i19 >>> 0 < i16 >>> 0) { 13825 _abort(); 13826 } else { 13827 HEAP32[i19 >> 2] = 0; 13828 i14 = i18; 13829 break; 13830 } 13831 } else { 13832 i19 = HEAP32[i7 + (i15 + 8) >> 2] | 0; 13833 if (i19 >>> 0 < i16 >>> 0) { 13834 _abort(); 13835 } 13836 i16 = i19 + 12 | 0; 13837 if ((HEAP32[i16 >> 2] | 0) != (i13 | 0)) { 13838 _abort(); 13839 } 13840 i20 = i18 + 8 | 0; 13841 if ((HEAP32[i20 >> 2] | 0) == (i13 | 0)) { 13842 HEAP32[i16 >> 2] = i18; 13843 HEAP32[i20 >> 2] = i19; 13844 i14 = i18; 13845 break; 13846 } else { 13847 _abort(); 13848 } 13849 } 13850 } while (0); 13851 if ((i17 | 0) != 0) { 13852 i18 = HEAP32[i7 + (i15 + 28) >> 2] | 0; 13853 i16 = 13216 + (i18 << 2) | 0; 13854 if ((i13 | 0) == (HEAP32[i16 >> 2] | 0)) { 13855 HEAP32[i16 >> 2] = i14; 13856 if ((i14 | 0) == 0) { 13857 HEAP32[12916 >> 2] = HEAP32[12916 >> 2] & ~(1 << i18); 13858 i2 = i13; 13859 i11 = i12; 13860 break; 13861 } 13862 } else { 13863 if (i17 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 13864 _abort(); 13865 } 13866 i16 = i17 + 16 | 0; 13867 if ((HEAP32[i16 >> 2] | 0) == (i13 | 0)) { 13868 HEAP32[i16 >> 2] = i14; 13869 } else { 13870 HEAP32[i17 + 20 >> 2] = i14; 13871 } 13872 if ((i14 | 0) == 0) { 13873 i2 = i13; 13874 i11 = i12; 13875 break; 13876 } 13877 } 13878 if (i14 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 13879 _abort(); 13880 } 13881 HEAP32[i14 + 24 >> 2] = i17; 13882 i16 = HEAP32[i7 + (i15 + 16) >> 2] | 0; 13883 do { 13884 if ((i16 | 0) != 0) { 13885 if (i16 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 13886 _abort(); 13887 } else { 13888 HEAP32[i14 + 16 >> 2] = i16; 13889 HEAP32[i16 + 24 >> 2] = i14; 13890 break; 13891 } 13892 } 13893 } while (0); 13894 i15 = HEAP32[i7 + (i15 + 20) >> 2] | 0; 13895 if ((i15 | 0) != 0) { 13896 if (i15 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 13897 _abort(); 13898 } else { 13899 HEAP32[i14 + 20 >> 2] = i15; 13900 HEAP32[i15 + 24 >> 2] = i14; 13901 i2 = i13; 13902 i11 = i12; 13903 break; 13904 } 13905 } else { 13906 i2 = i13; 13907 i11 = i12; 13908 } 13909 } else { 13910 i2 = i13; 13911 i11 = i12; 13912 } 13913 } else { 13914 i2 = i15; 13915 i11 = i8; 13916 } 13917 } while (0); 13918 if (!(i2 >>> 0 < i6 >>> 0)) { 13919 _abort(); 13920 } 13921 i12 = i7 + (i8 + -4) | 0; 13922 i13 = HEAP32[i12 >> 2] | 0; 13923 if ((i13 & 1 | 0) == 0) { 13924 _abort(); 13925 } 13926 if ((i13 & 2 | 0) == 0) { 13927 if ((i6 | 0) == (HEAP32[12936 >> 2] | 0)) { 13928 i21 = (HEAP32[12924 >> 2] | 0) + i11 | 0; 13929 HEAP32[12924 >> 2] = i21; 13930 HEAP32[12936 >> 2] = i2; 13931 HEAP32[i2 + 4 >> 2] = i21 | 1; 13932 if ((i2 | 0) != (HEAP32[12932 >> 2] | 0)) { 13933 STACKTOP = i1; 13934 return; 13935 } 13936 HEAP32[12932 >> 2] = 0; 13937 HEAP32[12920 >> 2] = 0; 13938 STACKTOP = i1; 13939 return; 13940 } 13941 if ((i6 | 0) == (HEAP32[12932 >> 2] | 0)) { 13942 i21 = (HEAP32[12920 >> 2] | 0) + i11 | 0; 13943 HEAP32[12920 >> 2] = i21; 13944 HEAP32[12932 >> 2] = i2; 13945 HEAP32[i2 + 4 >> 2] = i21 | 1; 13946 HEAP32[i2 + i21 >> 2] = i21; 13947 STACKTOP = i1; 13948 return; 13949 } 13950 i11 = (i13 & -8) + i11 | 0; 13951 i12 = i13 >>> 3; 13952 do { 13953 if (!(i13 >>> 0 < 256)) { 13954 i10 = HEAP32[i7 + (i8 + 16) >> 2] | 0; 13955 i15 = HEAP32[i7 + (i8 | 4) >> 2] | 0; 13956 do { 13957 if ((i15 | 0) == (i6 | 0)) { 13958 i13 = i7 + (i8 + 12) | 0; 13959 i12 = HEAP32[i13 >> 2] | 0; 13960 if ((i12 | 0) == 0) { 13961 i13 = i7 + (i8 + 8) | 0; 13962 i12 = HEAP32[i13 >> 2] | 0; 13963 if ((i12 | 0) == 0) { 13964 i9 = 0; 13965 break; 13966 } 13967 } 13968 while (1) { 13969 i14 = i12 + 20 | 0; 13970 i15 = HEAP32[i14 >> 2] | 0; 13971 if ((i15 | 0) != 0) { 13972 i12 = i15; 13973 i13 = i14; 13974 continue; 13975 } 13976 i14 = i12 + 16 | 0; 13977 i15 = HEAP32[i14 >> 2] | 0; 13978 if ((i15 | 0) == 0) { 13979 break; 13980 } else { 13981 i12 = i15; 13982 i13 = i14; 13983 } 13984 } 13985 if (i13 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 13986 _abort(); 13987 } else { 13988 HEAP32[i13 >> 2] = 0; 13989 i9 = i12; 13990 break; 13991 } 13992 } else { 13993 i13 = HEAP32[i7 + i8 >> 2] | 0; 13994 if (i13 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 13995 _abort(); 13996 } 13997 i14 = i13 + 12 | 0; 13998 if ((HEAP32[i14 >> 2] | 0) != (i6 | 0)) { 13999 _abort(); 14000 } 14001 i12 = i15 + 8 | 0; 14002 if ((HEAP32[i12 >> 2] | 0) == (i6 | 0)) { 14003 HEAP32[i14 >> 2] = i15; 14004 HEAP32[i12 >> 2] = i13; 14005 i9 = i15; 14006 break; 14007 } else { 14008 _abort(); 14009 } 14010 } 14011 } while (0); 14012 if ((i10 | 0) != 0) { 14013 i12 = HEAP32[i7 + (i8 + 20) >> 2] | 0; 14014 i13 = 13216 + (i12 << 2) | 0; 14015 if ((i6 | 0) == (HEAP32[i13 >> 2] | 0)) { 14016 HEAP32[i13 >> 2] = i9; 14017 if ((i9 | 0) == 0) { 14018 HEAP32[12916 >> 2] = HEAP32[12916 >> 2] & ~(1 << i12); 14019 break; 14020 } 14021 } else { 14022 if (i10 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 14023 _abort(); 14024 } 14025 i12 = i10 + 16 | 0; 14026 if ((HEAP32[i12 >> 2] | 0) == (i6 | 0)) { 14027 HEAP32[i12 >> 2] = i9; 14028 } else { 14029 HEAP32[i10 + 20 >> 2] = i9; 14030 } 14031 if ((i9 | 0) == 0) { 14032 break; 14033 } 14034 } 14035 if (i9 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 14036 _abort(); 14037 } 14038 HEAP32[i9 + 24 >> 2] = i10; 14039 i6 = HEAP32[i7 + (i8 + 8) >> 2] | 0; 14040 do { 14041 if ((i6 | 0) != 0) { 14042 if (i6 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 14043 _abort(); 14044 } else { 14045 HEAP32[i9 + 16 >> 2] = i6; 14046 HEAP32[i6 + 24 >> 2] = i9; 14047 break; 14048 } 14049 } 14050 } while (0); 14051 i6 = HEAP32[i7 + (i8 + 12) >> 2] | 0; 14052 if ((i6 | 0) != 0) { 14053 if (i6 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 14054 _abort(); 14055 } else { 14056 HEAP32[i9 + 20 >> 2] = i6; 14057 HEAP32[i6 + 24 >> 2] = i9; 14058 break; 14059 } 14060 } 14061 } 14062 } else { 14063 i9 = HEAP32[i7 + i8 >> 2] | 0; 14064 i7 = HEAP32[i7 + (i8 | 4) >> 2] | 0; 14065 i8 = 12952 + (i12 << 1 << 2) | 0; 14066 if ((i9 | 0) != (i8 | 0)) { 14067 if (i9 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 14068 _abort(); 14069 } 14070 if ((HEAP32[i9 + 12 >> 2] | 0) != (i6 | 0)) { 14071 _abort(); 14072 } 14073 } 14074 if ((i7 | 0) == (i9 | 0)) { 14075 HEAP32[3228] = HEAP32[3228] & ~(1 << i12); 14076 break; 14077 } 14078 if ((i7 | 0) != (i8 | 0)) { 14079 if (i7 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 14080 _abort(); 14081 } 14082 i8 = i7 + 8 | 0; 14083 if ((HEAP32[i8 >> 2] | 0) == (i6 | 0)) { 14084 i10 = i8; 14085 } else { 14086 _abort(); 14087 } 14088 } else { 14089 i10 = i7 + 8 | 0; 14090 } 14091 HEAP32[i9 + 12 >> 2] = i7; 14092 HEAP32[i10 >> 2] = i9; 14093 } 14094 } while (0); 14095 HEAP32[i2 + 4 >> 2] = i11 | 1; 14096 HEAP32[i2 + i11 >> 2] = i11; 14097 if ((i2 | 0) == (HEAP32[12932 >> 2] | 0)) { 14098 HEAP32[12920 >> 2] = i11; 14099 STACKTOP = i1; 14100 return; 14101 } 14102 } else { 14103 HEAP32[i12 >> 2] = i13 & -2; 14104 HEAP32[i2 + 4 >> 2] = i11 | 1; 14105 HEAP32[i2 + i11 >> 2] = i11; 14106 } 14107 i6 = i11 >>> 3; 14108 if (i11 >>> 0 < 256) { 14109 i7 = i6 << 1; 14110 i3 = 12952 + (i7 << 2) | 0; 14111 i8 = HEAP32[3228] | 0; 14112 i6 = 1 << i6; 14113 if ((i8 & i6 | 0) != 0) { 14114 i6 = 12952 + (i7 + 2 << 2) | 0; 14115 i7 = HEAP32[i6 >> 2] | 0; 14116 if (i7 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 14117 _abort(); 14118 } else { 14119 i4 = i6; 14120 i5 = i7; 14121 } 14122 } else { 14123 HEAP32[3228] = i8 | i6; 14124 i4 = 12952 + (i7 + 2 << 2) | 0; 14125 i5 = i3; 14126 } 14127 HEAP32[i4 >> 2] = i2; 14128 HEAP32[i5 + 12 >> 2] = i2; 14129 HEAP32[i2 + 8 >> 2] = i5; 14130 HEAP32[i2 + 12 >> 2] = i3; 14131 STACKTOP = i1; 14132 return; 14133 } 14134 i4 = i11 >>> 8; 14135 if ((i4 | 0) != 0) { 14136 if (i11 >>> 0 > 16777215) { 14137 i4 = 31; 14138 } else { 14139 i20 = (i4 + 1048320 | 0) >>> 16 & 8; 14140 i21 = i4 << i20; 14141 i19 = (i21 + 520192 | 0) >>> 16 & 4; 14142 i21 = i21 << i19; 14143 i4 = (i21 + 245760 | 0) >>> 16 & 2; 14144 i4 = 14 - (i19 | i20 | i4) + (i21 << i4 >>> 15) | 0; 14145 i4 = i11 >>> (i4 + 7 | 0) & 1 | i4 << 1; 14146 } 14147 } else { 14148 i4 = 0; 14149 } 14150 i5 = 13216 + (i4 << 2) | 0; 14151 HEAP32[i2 + 28 >> 2] = i4; 14152 HEAP32[i2 + 20 >> 2] = 0; 14153 HEAP32[i2 + 16 >> 2] = 0; 14154 i7 = HEAP32[12916 >> 2] | 0; 14155 i6 = 1 << i4; 14156 L199 : do { 14157 if ((i7 & i6 | 0) != 0) { 14158 i5 = HEAP32[i5 >> 2] | 0; 14159 if ((i4 | 0) == 31) { 14160 i4 = 0; 14161 } else { 14162 i4 = 25 - (i4 >>> 1) | 0; 14163 } 14164 L204 : do { 14165 if ((HEAP32[i5 + 4 >> 2] & -8 | 0) != (i11 | 0)) { 14166 i4 = i11 << i4; 14167 i7 = i5; 14168 while (1) { 14169 i6 = i7 + (i4 >>> 31 << 2) + 16 | 0; 14170 i5 = HEAP32[i6 >> 2] | 0; 14171 if ((i5 | 0) == 0) { 14172 break; 14173 } 14174 if ((HEAP32[i5 + 4 >> 2] & -8 | 0) == (i11 | 0)) { 14175 i3 = i5; 14176 break L204; 14177 } else { 14178 i4 = i4 << 1; 14179 i7 = i5; 14180 } 14181 } 14182 if (i6 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 14183 _abort(); 14184 } else { 14185 HEAP32[i6 >> 2] = i2; 14186 HEAP32[i2 + 24 >> 2] = i7; 14187 HEAP32[i2 + 12 >> 2] = i2; 14188 HEAP32[i2 + 8 >> 2] = i2; 14189 break L199; 14190 } 14191 } else { 14192 i3 = i5; 14193 } 14194 } while (0); 14195 i5 = i3 + 8 | 0; 14196 i4 = HEAP32[i5 >> 2] | 0; 14197 i6 = HEAP32[12928 >> 2] | 0; 14198 if (i3 >>> 0 < i6 >>> 0) { 14199 _abort(); 14200 } 14201 if (i4 >>> 0 < i6 >>> 0) { 14202 _abort(); 14203 } else { 14204 HEAP32[i4 + 12 >> 2] = i2; 14205 HEAP32[i5 >> 2] = i2; 14206 HEAP32[i2 + 8 >> 2] = i4; 14207 HEAP32[i2 + 12 >> 2] = i3; 14208 HEAP32[i2 + 24 >> 2] = 0; 14209 break; 14210 } 14211 } else { 14212 HEAP32[12916 >> 2] = i7 | i6; 14213 HEAP32[i5 >> 2] = i2; 14214 HEAP32[i2 + 24 >> 2] = i5; 14215 HEAP32[i2 + 12 >> 2] = i2; 14216 HEAP32[i2 + 8 >> 2] = i2; 14217 } 14218 } while (0); 14219 i21 = (HEAP32[12944 >> 2] | 0) + -1 | 0; 14220 HEAP32[12944 >> 2] = i21; 14221 if ((i21 | 0) == 0) { 14222 i2 = 13368 | 0; 14223 } else { 14224 STACKTOP = i1; 14225 return; 14226 } 14227 while (1) { 14228 i2 = HEAP32[i2 >> 2] | 0; 14229 if ((i2 | 0) == 0) { 14230 break; 14231 } else { 14232 i2 = i2 + 8 | 0; 14233 } 14234 } 14235 HEAP32[12944 >> 2] = -1; 14236 STACKTOP = i1; 14237 return; 14238 } 14239 function _dispose_chunk(i6, i7) { 14240 i6 = i6 | 0; 14241 i7 = i7 | 0; 14242 var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0; 14243 i1 = STACKTOP; 14244 i5 = i6 + i7 | 0; 14245 i10 = HEAP32[i6 + 4 >> 2] | 0; 14246 do { 14247 if ((i10 & 1 | 0) == 0) { 14248 i14 = HEAP32[i6 >> 2] | 0; 14249 if ((i10 & 3 | 0) == 0) { 14250 STACKTOP = i1; 14251 return; 14252 } 14253 i10 = i6 + (0 - i14) | 0; 14254 i11 = i14 + i7 | 0; 14255 i15 = HEAP32[12928 >> 2] | 0; 14256 if (i10 >>> 0 < i15 >>> 0) { 14257 _abort(); 14258 } 14259 if ((i10 | 0) == (HEAP32[12932 >> 2] | 0)) { 14260 i2 = i6 + (i7 + 4) | 0; 14261 if ((HEAP32[i2 >> 2] & 3 | 0) != 3) { 14262 i2 = i10; 14263 i12 = i11; 14264 break; 14265 } 14266 HEAP32[12920 >> 2] = i11; 14267 HEAP32[i2 >> 2] = HEAP32[i2 >> 2] & -2; 14268 HEAP32[i6 + (4 - i14) >> 2] = i11 | 1; 14269 HEAP32[i5 >> 2] = i11; 14270 STACKTOP = i1; 14271 return; 14272 } 14273 i17 = i14 >>> 3; 14274 if (i14 >>> 0 < 256) { 14275 i2 = HEAP32[i6 + (8 - i14) >> 2] | 0; 14276 i12 = HEAP32[i6 + (12 - i14) >> 2] | 0; 14277 i13 = 12952 + (i17 << 1 << 2) | 0; 14278 if ((i2 | 0) != (i13 | 0)) { 14279 if (i2 >>> 0 < i15 >>> 0) { 14280 _abort(); 14281 } 14282 if ((HEAP32[i2 + 12 >> 2] | 0) != (i10 | 0)) { 14283 _abort(); 14284 } 14285 } 14286 if ((i12 | 0) == (i2 | 0)) { 14287 HEAP32[3228] = HEAP32[3228] & ~(1 << i17); 14288 i2 = i10; 14289 i12 = i11; 14290 break; 14291 } 14292 if ((i12 | 0) != (i13 | 0)) { 14293 if (i12 >>> 0 < i15 >>> 0) { 14294 _abort(); 14295 } 14296 i13 = i12 + 8 | 0; 14297 if ((HEAP32[i13 >> 2] | 0) == (i10 | 0)) { 14298 i16 = i13; 14299 } else { 14300 _abort(); 14301 } 14302 } else { 14303 i16 = i12 + 8 | 0; 14304 } 14305 HEAP32[i2 + 12 >> 2] = i12; 14306 HEAP32[i16 >> 2] = i2; 14307 i2 = i10; 14308 i12 = i11; 14309 break; 14310 } 14311 i16 = HEAP32[i6 + (24 - i14) >> 2] | 0; 14312 i18 = HEAP32[i6 + (12 - i14) >> 2] | 0; 14313 do { 14314 if ((i18 | 0) == (i10 | 0)) { 14315 i19 = 16 - i14 | 0; 14316 i18 = i6 + (i19 + 4) | 0; 14317 i17 = HEAP32[i18 >> 2] | 0; 14318 if ((i17 | 0) == 0) { 14319 i18 = i6 + i19 | 0; 14320 i17 = HEAP32[i18 >> 2] | 0; 14321 if ((i17 | 0) == 0) { 14322 i13 = 0; 14323 break; 14324 } 14325 } 14326 while (1) { 14327 i19 = i17 + 20 | 0; 14328 i20 = HEAP32[i19 >> 2] | 0; 14329 if ((i20 | 0) != 0) { 14330 i17 = i20; 14331 i18 = i19; 14332 continue; 14333 } 14334 i20 = i17 + 16 | 0; 14335 i19 = HEAP32[i20 >> 2] | 0; 14336 if ((i19 | 0) == 0) { 14337 break; 14338 } else { 14339 i17 = i19; 14340 i18 = i20; 14341 } 14342 } 14343 if (i18 >>> 0 < i15 >>> 0) { 14344 _abort(); 14345 } else { 14346 HEAP32[i18 >> 2] = 0; 14347 i13 = i17; 14348 break; 14349 } 14350 } else { 14351 i17 = HEAP32[i6 + (8 - i14) >> 2] | 0; 14352 if (i17 >>> 0 < i15 >>> 0) { 14353 _abort(); 14354 } 14355 i19 = i17 + 12 | 0; 14356 if ((HEAP32[i19 >> 2] | 0) != (i10 | 0)) { 14357 _abort(); 14358 } 14359 i15 = i18 + 8 | 0; 14360 if ((HEAP32[i15 >> 2] | 0) == (i10 | 0)) { 14361 HEAP32[i19 >> 2] = i18; 14362 HEAP32[i15 >> 2] = i17; 14363 i13 = i18; 14364 break; 14365 } else { 14366 _abort(); 14367 } 14368 } 14369 } while (0); 14370 if ((i16 | 0) != 0) { 14371 i15 = HEAP32[i6 + (28 - i14) >> 2] | 0; 14372 i17 = 13216 + (i15 << 2) | 0; 14373 if ((i10 | 0) == (HEAP32[i17 >> 2] | 0)) { 14374 HEAP32[i17 >> 2] = i13; 14375 if ((i13 | 0) == 0) { 14376 HEAP32[12916 >> 2] = HEAP32[12916 >> 2] & ~(1 << i15); 14377 i2 = i10; 14378 i12 = i11; 14379 break; 14380 } 14381 } else { 14382 if (i16 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 14383 _abort(); 14384 } 14385 i15 = i16 + 16 | 0; 14386 if ((HEAP32[i15 >> 2] | 0) == (i10 | 0)) { 14387 HEAP32[i15 >> 2] = i13; 14388 } else { 14389 HEAP32[i16 + 20 >> 2] = i13; 14390 } 14391 if ((i13 | 0) == 0) { 14392 i2 = i10; 14393 i12 = i11; 14394 break; 14395 } 14396 } 14397 if (i13 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 14398 _abort(); 14399 } 14400 HEAP32[i13 + 24 >> 2] = i16; 14401 i14 = 16 - i14 | 0; 14402 i15 = HEAP32[i6 + i14 >> 2] | 0; 14403 do { 14404 if ((i15 | 0) != 0) { 14405 if (i15 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 14406 _abort(); 14407 } else { 14408 HEAP32[i13 + 16 >> 2] = i15; 14409 HEAP32[i15 + 24 >> 2] = i13; 14410 break; 14411 } 14412 } 14413 } while (0); 14414 i14 = HEAP32[i6 + (i14 + 4) >> 2] | 0; 14415 if ((i14 | 0) != 0) { 14416 if (i14 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 14417 _abort(); 14418 } else { 14419 HEAP32[i13 + 20 >> 2] = i14; 14420 HEAP32[i14 + 24 >> 2] = i13; 14421 i2 = i10; 14422 i12 = i11; 14423 break; 14424 } 14425 } else { 14426 i2 = i10; 14427 i12 = i11; 14428 } 14429 } else { 14430 i2 = i10; 14431 i12 = i11; 14432 } 14433 } else { 14434 i2 = i6; 14435 i12 = i7; 14436 } 14437 } while (0); 14438 i10 = HEAP32[12928 >> 2] | 0; 14439 if (i5 >>> 0 < i10 >>> 0) { 14440 _abort(); 14441 } 14442 i11 = i6 + (i7 + 4) | 0; 14443 i13 = HEAP32[i11 >> 2] | 0; 14444 if ((i13 & 2 | 0) == 0) { 14445 if ((i5 | 0) == (HEAP32[12936 >> 2] | 0)) { 14446 i20 = (HEAP32[12924 >> 2] | 0) + i12 | 0; 14447 HEAP32[12924 >> 2] = i20; 14448 HEAP32[12936 >> 2] = i2; 14449 HEAP32[i2 + 4 >> 2] = i20 | 1; 14450 if ((i2 | 0) != (HEAP32[12932 >> 2] | 0)) { 14451 STACKTOP = i1; 14452 return; 14453 } 14454 HEAP32[12932 >> 2] = 0; 14455 HEAP32[12920 >> 2] = 0; 14456 STACKTOP = i1; 14457 return; 14458 } 14459 if ((i5 | 0) == (HEAP32[12932 >> 2] | 0)) { 14460 i20 = (HEAP32[12920 >> 2] | 0) + i12 | 0; 14461 HEAP32[12920 >> 2] = i20; 14462 HEAP32[12932 >> 2] = i2; 14463 HEAP32[i2 + 4 >> 2] = i20 | 1; 14464 HEAP32[i2 + i20 >> 2] = i20; 14465 STACKTOP = i1; 14466 return; 14467 } 14468 i12 = (i13 & -8) + i12 | 0; 14469 i11 = i13 >>> 3; 14470 do { 14471 if (!(i13 >>> 0 < 256)) { 14472 i9 = HEAP32[i6 + (i7 + 24) >> 2] | 0; 14473 i11 = HEAP32[i6 + (i7 + 12) >> 2] | 0; 14474 do { 14475 if ((i11 | 0) == (i5 | 0)) { 14476 i13 = i6 + (i7 + 20) | 0; 14477 i11 = HEAP32[i13 >> 2] | 0; 14478 if ((i11 | 0) == 0) { 14479 i13 = i6 + (i7 + 16) | 0; 14480 i11 = HEAP32[i13 >> 2] | 0; 14481 if ((i11 | 0) == 0) { 14482 i8 = 0; 14483 break; 14484 } 14485 } 14486 while (1) { 14487 i15 = i11 + 20 | 0; 14488 i14 = HEAP32[i15 >> 2] | 0; 14489 if ((i14 | 0) != 0) { 14490 i11 = i14; 14491 i13 = i15; 14492 continue; 14493 } 14494 i14 = i11 + 16 | 0; 14495 i15 = HEAP32[i14 >> 2] | 0; 14496 if ((i15 | 0) == 0) { 14497 break; 14498 } else { 14499 i11 = i15; 14500 i13 = i14; 14501 } 14502 } 14503 if (i13 >>> 0 < i10 >>> 0) { 14504 _abort(); 14505 } else { 14506 HEAP32[i13 >> 2] = 0; 14507 i8 = i11; 14508 break; 14509 } 14510 } else { 14511 i13 = HEAP32[i6 + (i7 + 8) >> 2] | 0; 14512 if (i13 >>> 0 < i10 >>> 0) { 14513 _abort(); 14514 } 14515 i10 = i13 + 12 | 0; 14516 if ((HEAP32[i10 >> 2] | 0) != (i5 | 0)) { 14517 _abort(); 14518 } 14519 i14 = i11 + 8 | 0; 14520 if ((HEAP32[i14 >> 2] | 0) == (i5 | 0)) { 14521 HEAP32[i10 >> 2] = i11; 14522 HEAP32[i14 >> 2] = i13; 14523 i8 = i11; 14524 break; 14525 } else { 14526 _abort(); 14527 } 14528 } 14529 } while (0); 14530 if ((i9 | 0) != 0) { 14531 i10 = HEAP32[i6 + (i7 + 28) >> 2] | 0; 14532 i11 = 13216 + (i10 << 2) | 0; 14533 if ((i5 | 0) == (HEAP32[i11 >> 2] | 0)) { 14534 HEAP32[i11 >> 2] = i8; 14535 if ((i8 | 0) == 0) { 14536 HEAP32[12916 >> 2] = HEAP32[12916 >> 2] & ~(1 << i10); 14537 break; 14538 } 14539 } else { 14540 if (i9 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 14541 _abort(); 14542 } 14543 i10 = i9 + 16 | 0; 14544 if ((HEAP32[i10 >> 2] | 0) == (i5 | 0)) { 14545 HEAP32[i10 >> 2] = i8; 14546 } else { 14547 HEAP32[i9 + 20 >> 2] = i8; 14548 } 14549 if ((i8 | 0) == 0) { 14550 break; 14551 } 14552 } 14553 if (i8 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 14554 _abort(); 14555 } 14556 HEAP32[i8 + 24 >> 2] = i9; 14557 i5 = HEAP32[i6 + (i7 + 16) >> 2] | 0; 14558 do { 14559 if ((i5 | 0) != 0) { 14560 if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 14561 _abort(); 14562 } else { 14563 HEAP32[i8 + 16 >> 2] = i5; 14564 HEAP32[i5 + 24 >> 2] = i8; 14565 break; 14566 } 14567 } 14568 } while (0); 14569 i5 = HEAP32[i6 + (i7 + 20) >> 2] | 0; 14570 if ((i5 | 0) != 0) { 14571 if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 14572 _abort(); 14573 } else { 14574 HEAP32[i8 + 20 >> 2] = i5; 14575 HEAP32[i5 + 24 >> 2] = i8; 14576 break; 14577 } 14578 } 14579 } 14580 } else { 14581 i8 = HEAP32[i6 + (i7 + 8) >> 2] | 0; 14582 i6 = HEAP32[i6 + (i7 + 12) >> 2] | 0; 14583 i7 = 12952 + (i11 << 1 << 2) | 0; 14584 if ((i8 | 0) != (i7 | 0)) { 14585 if (i8 >>> 0 < i10 >>> 0) { 14586 _abort(); 14587 } 14588 if ((HEAP32[i8 + 12 >> 2] | 0) != (i5 | 0)) { 14589 _abort(); 14590 } 14591 } 14592 if ((i6 | 0) == (i8 | 0)) { 14593 HEAP32[3228] = HEAP32[3228] & ~(1 << i11); 14594 break; 14595 } 14596 if ((i6 | 0) != (i7 | 0)) { 14597 if (i6 >>> 0 < i10 >>> 0) { 14598 _abort(); 14599 } 14600 i7 = i6 + 8 | 0; 14601 if ((HEAP32[i7 >> 2] | 0) == (i5 | 0)) { 14602 i9 = i7; 14603 } else { 14604 _abort(); 14605 } 14606 } else { 14607 i9 = i6 + 8 | 0; 14608 } 14609 HEAP32[i8 + 12 >> 2] = i6; 14610 HEAP32[i9 >> 2] = i8; 14611 } 14612 } while (0); 14613 HEAP32[i2 + 4 >> 2] = i12 | 1; 14614 HEAP32[i2 + i12 >> 2] = i12; 14615 if ((i2 | 0) == (HEAP32[12932 >> 2] | 0)) { 14616 HEAP32[12920 >> 2] = i12; 14617 STACKTOP = i1; 14618 return; 14619 } 14620 } else { 14621 HEAP32[i11 >> 2] = i13 & -2; 14622 HEAP32[i2 + 4 >> 2] = i12 | 1; 14623 HEAP32[i2 + i12 >> 2] = i12; 14624 } 14625 i6 = i12 >>> 3; 14626 if (i12 >>> 0 < 256) { 14627 i7 = i6 << 1; 14628 i5 = 12952 + (i7 << 2) | 0; 14629 i8 = HEAP32[3228] | 0; 14630 i6 = 1 << i6; 14631 if ((i8 & i6 | 0) != 0) { 14632 i7 = 12952 + (i7 + 2 << 2) | 0; 14633 i6 = HEAP32[i7 >> 2] | 0; 14634 if (i6 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 14635 _abort(); 14636 } else { 14637 i4 = i7; 14638 i3 = i6; 14639 } 14640 } else { 14641 HEAP32[3228] = i8 | i6; 14642 i4 = 12952 + (i7 + 2 << 2) | 0; 14643 i3 = i5; 14644 } 14645 HEAP32[i4 >> 2] = i2; 14646 HEAP32[i3 + 12 >> 2] = i2; 14647 HEAP32[i2 + 8 >> 2] = i3; 14648 HEAP32[i2 + 12 >> 2] = i5; 14649 STACKTOP = i1; 14650 return; 14651 } 14652 i3 = i12 >>> 8; 14653 if ((i3 | 0) != 0) { 14654 if (i12 >>> 0 > 16777215) { 14655 i3 = 31; 14656 } else { 14657 i19 = (i3 + 1048320 | 0) >>> 16 & 8; 14658 i20 = i3 << i19; 14659 i18 = (i20 + 520192 | 0) >>> 16 & 4; 14660 i20 = i20 << i18; 14661 i3 = (i20 + 245760 | 0) >>> 16 & 2; 14662 i3 = 14 - (i18 | i19 | i3) + (i20 << i3 >>> 15) | 0; 14663 i3 = i12 >>> (i3 + 7 | 0) & 1 | i3 << 1; 14664 } 14665 } else { 14666 i3 = 0; 14667 } 14668 i6 = 13216 + (i3 << 2) | 0; 14669 HEAP32[i2 + 28 >> 2] = i3; 14670 HEAP32[i2 + 20 >> 2] = 0; 14671 HEAP32[i2 + 16 >> 2] = 0; 14672 i5 = HEAP32[12916 >> 2] | 0; 14673 i4 = 1 << i3; 14674 if ((i5 & i4 | 0) == 0) { 14675 HEAP32[12916 >> 2] = i5 | i4; 14676 HEAP32[i6 >> 2] = i2; 14677 HEAP32[i2 + 24 >> 2] = i6; 14678 HEAP32[i2 + 12 >> 2] = i2; 14679 HEAP32[i2 + 8 >> 2] = i2; 14680 STACKTOP = i1; 14681 return; 14682 } 14683 i4 = HEAP32[i6 >> 2] | 0; 14684 if ((i3 | 0) == 31) { 14685 i3 = 0; 14686 } else { 14687 i3 = 25 - (i3 >>> 1) | 0; 14688 } 14689 L194 : do { 14690 if ((HEAP32[i4 + 4 >> 2] & -8 | 0) != (i12 | 0)) { 14691 i3 = i12 << i3; 14692 i6 = i4; 14693 while (1) { 14694 i5 = i6 + (i3 >>> 31 << 2) + 16 | 0; 14695 i4 = HEAP32[i5 >> 2] | 0; 14696 if ((i4 | 0) == 0) { 14697 break; 14698 } 14699 if ((HEAP32[i4 + 4 >> 2] & -8 | 0) == (i12 | 0)) { 14700 break L194; 14701 } else { 14702 i3 = i3 << 1; 14703 i6 = i4; 14704 } 14705 } 14706 if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 14707 _abort(); 14708 } 14709 HEAP32[i5 >> 2] = i2; 14710 HEAP32[i2 + 24 >> 2] = i6; 14711 HEAP32[i2 + 12 >> 2] = i2; 14712 HEAP32[i2 + 8 >> 2] = i2; 14713 STACKTOP = i1; 14714 return; 14715 } 14716 } while (0); 14717 i3 = i4 + 8 | 0; 14718 i6 = HEAP32[i3 >> 2] | 0; 14719 i5 = HEAP32[12928 >> 2] | 0; 14720 if (i4 >>> 0 < i5 >>> 0) { 14721 _abort(); 14722 } 14723 if (i6 >>> 0 < i5 >>> 0) { 14724 _abort(); 14725 } 14726 HEAP32[i6 + 12 >> 2] = i2; 14727 HEAP32[i3 >> 2] = i2; 14728 HEAP32[i2 + 8 >> 2] = i6; 14729 HEAP32[i2 + 12 >> 2] = i4; 14730 HEAP32[i2 + 24 >> 2] = 0; 14731 STACKTOP = i1; 14732 return; 14733 } 14734 function _singlestep(i2) { 14735 i2 = i2 | 0; 14736 var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0; 14737 i1 = STACKTOP; 14738 STACKTOP = STACKTOP + 16 | 0; 14739 i14 = i1; 14740 i3 = i2 + 12 | 0; 14741 i8 = HEAP32[i3 >> 2] | 0; 14742 i6 = i8 + 61 | 0; 14743 switch (HEAPU8[i6] | 0) { 14744 case 0: 14745 { 14746 if ((HEAP32[i8 + 84 >> 2] | 0) != 0) { 14747 i21 = i8 + 16 | 0; 14748 i22 = HEAP32[i21 >> 2] | 0; 14749 _propagatemark(i8); 14750 i22 = (HEAP32[i21 >> 2] | 0) - i22 | 0; 14751 STACKTOP = i1; 14752 return i22 | 0; 14753 } 14754 HEAP8[i6] = 1; 14755 i6 = i8 + 20 | 0; 14756 HEAP32[i6 >> 2] = HEAP32[i8 + 16 >> 2]; 14757 i8 = HEAP32[i3 >> 2] | 0; 14758 i7 = i8 + 16 | 0; 14759 i14 = HEAP32[i7 >> 2] | 0; 14760 if ((i2 | 0) != 0 ? !((HEAP8[i2 + 5 | 0] & 3) == 0) : 0) { 14761 _reallymarkobject(i8, i2); 14762 } 14763 if ((HEAP32[i8 + 48 >> 2] & 64 | 0) != 0 ? (i13 = HEAP32[i8 + 40 >> 2] | 0, !((HEAP8[i13 + 5 | 0] & 3) == 0)) : 0) { 14764 _reallymarkobject(i8, i13); 14765 } 14766 _markmt(i8); 14767 i13 = i8 + 112 | 0; 14768 i15 = HEAP32[i8 + 132 >> 2] | 0; 14769 if ((i15 | 0) != (i13 | 0)) { 14770 do { 14771 if (((HEAP8[i15 + 5 | 0] & 7) == 0 ? (i12 = HEAP32[i15 + 8 >> 2] | 0, (HEAP32[i12 + 8 >> 2] & 64 | 0) != 0) : 0) ? (i11 = HEAP32[i12 >> 2] | 0, !((HEAP8[i11 + 5 | 0] & 3) == 0)) : 0) { 14772 _reallymarkobject(i8, i11); 14773 } 14774 i15 = HEAP32[i15 + 20 >> 2] | 0; 14775 } while ((i15 | 0) != (i13 | 0)); 14776 } 14777 i16 = i8 + 84 | 0; 14778 if ((HEAP32[i16 >> 2] | 0) != 0) { 14779 do { 14780 _propagatemark(i8); 14781 } while ((HEAP32[i16 >> 2] | 0) != 0); 14782 } 14783 i17 = (HEAP32[i7 >> 2] | 0) - i14 | 0; 14784 i11 = i8 + 92 | 0; 14785 i12 = HEAP32[i11 >> 2] | 0; 14786 i21 = i8 + 88 | 0; 14787 i22 = HEAP32[i21 >> 2] | 0; 14788 i15 = i8 + 96 | 0; 14789 i13 = HEAP32[i15 >> 2] | 0; 14790 HEAP32[i15 >> 2] = 0; 14791 HEAP32[i21 >> 2] = 0; 14792 HEAP32[i11 >> 2] = 0; 14793 HEAP32[i16 >> 2] = i22; 14794 if ((i22 | 0) != 0) { 14795 do { 14796 _propagatemark(i8); 14797 } while ((HEAP32[i16 >> 2] | 0) != 0); 14798 } 14799 HEAP32[i16 >> 2] = i12; 14800 if ((i12 | 0) != 0) { 14801 do { 14802 _propagatemark(i8); 14803 } while ((HEAP32[i16 >> 2] | 0) != 0); 14804 } 14805 HEAP32[i16 >> 2] = i13; 14806 if ((i13 | 0) != 0) { 14807 do { 14808 _propagatemark(i8); 14809 } while ((HEAP32[i16 >> 2] | 0) != 0); 14810 } 14811 i18 = HEAP32[i7 >> 2] | 0; 14812 while (1) { 14813 i13 = HEAP32[i15 >> 2] | 0; 14814 HEAP32[i15 >> 2] = 0; 14815 i12 = 0; 14816 L42 : while (1) { 14817 i14 = i13; 14818 while (1) { 14819 if ((i14 | 0) == 0) { 14820 break L42; 14821 } 14822 i13 = HEAP32[i14 + 24 >> 2] | 0; 14823 if ((_traverseephemeron(i8, i14) | 0) == 0) { 14824 i14 = i13; 14825 } else { 14826 break; 14827 } 14828 } 14829 if ((HEAP32[i16 >> 2] | 0) == 0) { 14830 i12 = 1; 14831 continue; 14832 } 14833 while (1) { 14834 _propagatemark(i8); 14835 if ((HEAP32[i16 >> 2] | 0) == 0) { 14836 i12 = 1; 14837 continue L42; 14838 } 14839 } 14840 } 14841 if ((i12 | 0) == 0) { 14842 break; 14843 } 14844 } 14845 _clearvalues(i8, HEAP32[i11 >> 2] | 0, 0); 14846 i14 = i8 + 100 | 0; 14847 _clearvalues(i8, HEAP32[i14 >> 2] | 0, 0); 14848 i13 = HEAP32[i11 >> 2] | 0; 14849 i12 = HEAP32[i14 >> 2] | 0; 14850 i21 = HEAP32[i7 >> 2] | 0; 14851 i20 = HEAP32[i3 >> 2] | 0; 14852 i19 = i20 + 104 | 0; 14853 while (1) { 14854 i22 = HEAP32[i19 >> 2] | 0; 14855 if ((i22 | 0) == 0) { 14856 break; 14857 } else { 14858 i19 = i22; 14859 } 14860 } 14861 i17 = i17 - i18 + i21 | 0; 14862 i20 = i20 + 72 | 0; 14863 i21 = HEAP32[i20 >> 2] | 0; 14864 L55 : do { 14865 if ((i21 | 0) != 0) { 14866 while (1) { 14867 i18 = i21; 14868 while (1) { 14869 i22 = i18 + 5 | 0; 14870 i21 = HEAP8[i22] | 0; 14871 if ((i21 & 3) == 0) { 14872 break; 14873 } 14874 HEAP8[i22] = i21 & 255 | 8; 14875 HEAP32[i20 >> 2] = HEAP32[i18 >> 2]; 14876 HEAP32[i18 >> 2] = HEAP32[i19 >> 2]; 14877 HEAP32[i19 >> 2] = i18; 14878 i19 = HEAP32[i20 >> 2] | 0; 14879 if ((i19 | 0) == 0) { 14880 break L55; 14881 } else { 14882 i22 = i18; 14883 i18 = i19; 14884 i19 = i22; 14885 } 14886 } 14887 i21 = HEAP32[i18 >> 2] | 0; 14888 if ((i21 | 0) == 0) { 14889 break; 14890 } else { 14891 i20 = i18; 14892 } 14893 } 14894 } 14895 } while (0); 14896 i19 = HEAP32[i8 + 104 >> 2] | 0; 14897 if ((i19 | 0) != 0) { 14898 i18 = i8 + 60 | 0; 14899 do { 14900 i22 = i19 + 5 | 0; 14901 HEAP8[i22] = HEAP8[i18] & 3 | HEAP8[i22] & 184; 14902 _reallymarkobject(i8, i19); 14903 i19 = HEAP32[i19 >> 2] | 0; 14904 } while ((i19 | 0) != 0); 14905 } 14906 if ((HEAP32[i16 >> 2] | 0) != 0) { 14907 do { 14908 _propagatemark(i8); 14909 } while ((HEAP32[i16 >> 2] | 0) != 0); 14910 } 14911 i18 = HEAP32[i7 >> 2] | 0; 14912 while (1) { 14913 i20 = HEAP32[i15 >> 2] | 0; 14914 HEAP32[i15 >> 2] = 0; 14915 i19 = 0; 14916 L74 : while (1) { 14917 i21 = i20; 14918 while (1) { 14919 if ((i21 | 0) == 0) { 14920 break L74; 14921 } 14922 i20 = HEAP32[i21 + 24 >> 2] | 0; 14923 if ((_traverseephemeron(i8, i21) | 0) == 0) { 14924 i21 = i20; 14925 } else { 14926 break; 14927 } 14928 } 14929 if ((HEAP32[i16 >> 2] | 0) == 0) { 14930 i19 = 1; 14931 continue; 14932 } 14933 while (1) { 14934 _propagatemark(i8); 14935 if ((HEAP32[i16 >> 2] | 0) == 0) { 14936 i19 = 1; 14937 continue L74; 14938 } 14939 } 14940 } 14941 if ((i19 | 0) == 0) { 14942 break; 14943 } 14944 } 14945 i16 = i17 - i18 | 0; 14946 i15 = HEAP32[i15 >> 2] | 0; 14947 if ((i15 | 0) != 0) { 14948 do { 14949 i22 = 1 << HEAPU8[i15 + 7 | 0]; 14950 i19 = HEAP32[i15 + 16 >> 2] | 0; 14951 i17 = i19 + (i22 << 5) | 0; 14952 if ((i22 | 0) > 0) { 14953 do { 14954 i18 = i19 + 8 | 0; 14955 do { 14956 if ((HEAP32[i18 >> 2] | 0) != 0 ? (i9 = i19 + 24 | 0, i10 = HEAP32[i9 >> 2] | 0, (i10 & 64 | 0) != 0) : 0) { 14957 i20 = HEAP32[i19 + 16 >> 2] | 0; 14958 if ((i10 & 15 | 0) == 4) { 14959 if ((i20 | 0) == 0) { 14960 break; 14961 } 14962 if ((HEAP8[i20 + 5 | 0] & 3) == 0) { 14963 break; 14964 } 14965 _reallymarkobject(i8, i20); 14966 break; 14967 } else { 14968 i20 = i20 + 5 | 0; 14969 if ((HEAP8[i20] & 3) == 0) { 14970 break; 14971 } 14972 HEAP32[i18 >> 2] = 0; 14973 if ((HEAP8[i20] & 3) == 0) { 14974 break; 14975 } 14976 HEAP32[i9 >> 2] = 11; 14977 break; 14978 } 14979 } 14980 } while (0); 14981 i19 = i19 + 32 | 0; 14982 } while (i19 >>> 0 < i17 >>> 0); 14983 } 14984 i15 = HEAP32[i15 + 24 >> 2] | 0; 14985 } while ((i15 | 0) != 0); 14986 } 14987 i10 = HEAP32[i14 >> 2] | 0; 14988 if ((i10 | 0) != 0) { 14989 do { 14990 i22 = 1 << HEAPU8[i10 + 7 | 0]; 14991 i17 = HEAP32[i10 + 16 >> 2] | 0; 14992 i9 = i17 + (i22 << 5) | 0; 14993 if ((i22 | 0) > 0) { 14994 do { 14995 i15 = i17 + 8 | 0; 14996 do { 14997 if ((HEAP32[i15 >> 2] | 0) != 0 ? (i5 = i17 + 24 | 0, i4 = HEAP32[i5 >> 2] | 0, (i4 & 64 | 0) != 0) : 0) { 14998 i18 = HEAP32[i17 + 16 >> 2] | 0; 14999 if ((i4 & 15 | 0) == 4) { 15000 if ((i18 | 0) == 0) { 15001 break; 15002 } 15003 if ((HEAP8[i18 + 5 | 0] & 3) == 0) { 15004 break; 15005 } 15006 _reallymarkobject(i8, i18); 15007 break; 15008 } else { 15009 i18 = i18 + 5 | 0; 15010 if ((HEAP8[i18] & 3) == 0) { 15011 break; 15012 } 15013 HEAP32[i15 >> 2] = 0; 15014 if ((HEAP8[i18] & 3) == 0) { 15015 break; 15016 } 15017 HEAP32[i5 >> 2] = 11; 15018 break; 15019 } 15020 } 15021 } while (0); 15022 i17 = i17 + 32 | 0; 15023 } while (i17 >>> 0 < i9 >>> 0); 15024 } 15025 i10 = HEAP32[i10 + 24 >> 2] | 0; 15026 } while ((i10 | 0) != 0); 15027 } 15028 _clearvalues(i8, HEAP32[i11 >> 2] | 0, i13); 15029 _clearvalues(i8, HEAP32[i14 >> 2] | 0, i12); 15030 i4 = i8 + 60 | 0; 15031 HEAP8[i4] = HEAPU8[i4] ^ 3; 15032 i4 = i16 + (HEAP32[i7 >> 2] | 0) | 0; 15033 HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + i4; 15034 i3 = HEAP32[i3 >> 2] | 0; 15035 HEAP8[i3 + 61 | 0] = 2; 15036 HEAP32[i3 + 64 >> 2] = 0; 15037 i7 = i3 + 72 | 0; 15038 i5 = 0; 15039 do { 15040 i5 = i5 + 1 | 0; 15041 i6 = _sweeplist(i2, i7, 1) | 0; 15042 } while ((i6 | 0) == (i7 | 0)); 15043 HEAP32[i3 + 80 >> 2] = i6; 15044 i6 = i3 + 68 | 0; 15045 i7 = 0; 15046 do { 15047 i7 = i7 + 1 | 0; 15048 i8 = _sweeplist(i2, i6, 1) | 0; 15049 } while ((i8 | 0) == (i6 | 0)); 15050 HEAP32[i3 + 76 >> 2] = i8; 15051 i22 = ((i7 + i5 | 0) * 5 | 0) + i4 | 0; 15052 STACKTOP = i1; 15053 return i22 | 0; 15054 } 15055 case 2: 15056 { 15057 i3 = i8 + 64 | 0; 15058 i4 = i8 + 32 | 0; 15059 i8 = i8 + 24 | 0; 15060 i5 = 0; 15061 while (1) { 15062 i10 = HEAP32[i3 >> 2] | 0; 15063 i11 = i10 + i5 | 0; 15064 i9 = HEAP32[i4 >> 2] | 0; 15065 if ((i11 | 0) >= (i9 | 0)) { 15066 i2 = i10; 15067 break; 15068 } 15069 _sweeplist(i2, (HEAP32[i8 >> 2] | 0) + (i11 << 2) | 0, -3) | 0; 15070 i5 = i5 + 1 | 0; 15071 if ((i5 | 0) >= 80) { 15072 i7 = 96; 15073 break; 15074 } 15075 } 15076 if ((i7 | 0) == 96) { 15077 i2 = HEAP32[i3 >> 2] | 0; 15078 i9 = HEAP32[i4 >> 2] | 0; 15079 } 15080 i22 = i2 + i5 | 0; 15081 HEAP32[i3 >> 2] = i22; 15082 if ((i22 | 0) >= (i9 | 0)) { 15083 HEAP8[i6] = 3; 15084 } 15085 i22 = i5 * 5 | 0; 15086 STACKTOP = i1; 15087 return i22 | 0; 15088 } 15089 case 5: 15090 { 15091 i2 = i8 + 16 | 0; 15092 HEAP32[i2 >> 2] = HEAP32[i8 + 32 >> 2] << 2; 15093 i22 = i8 + 84 | 0; 15094 i3 = i8 + 172 | 0; 15095 HEAP32[i22 + 0 >> 2] = 0; 15096 HEAP32[i22 + 4 >> 2] = 0; 15097 HEAP32[i22 + 8 >> 2] = 0; 15098 HEAP32[i22 + 12 >> 2] = 0; 15099 HEAP32[i22 + 16 >> 2] = 0; 15100 i3 = HEAP32[i3 >> 2] | 0; 15101 if ((i3 | 0) != 0 ? !((HEAP8[i3 + 5 | 0] & 3) == 0) : 0) { 15102 _reallymarkobject(i8, i3); 15103 } 15104 if ((HEAP32[i8 + 48 >> 2] & 64 | 0) != 0 ? (i15 = HEAP32[i8 + 40 >> 2] | 0, !((HEAP8[i15 + 5 | 0] & 3) == 0)) : 0) { 15105 _reallymarkobject(i8, i15); 15106 } 15107 _markmt(i8); 15108 i4 = HEAP32[i8 + 104 >> 2] | 0; 15109 if ((i4 | 0) != 0) { 15110 i3 = i8 + 60 | 0; 15111 do { 15112 i22 = i4 + 5 | 0; 15113 HEAP8[i22] = HEAP8[i3] & 3 | HEAP8[i22] & 184; 15114 _reallymarkobject(i8, i4); 15115 i4 = HEAP32[i4 >> 2] | 0; 15116 } while ((i4 | 0) != 0); 15117 } 15118 HEAP8[i6] = 0; 15119 i22 = HEAP32[i2 >> 2] | 0; 15120 STACKTOP = i1; 15121 return i22 | 0; 15122 } 15123 case 3: 15124 { 15125 i3 = i8 + 80 | 0; 15126 i4 = HEAP32[i3 >> 2] | 0; 15127 if ((i4 | 0) == 0) { 15128 HEAP8[i6] = 4; 15129 i22 = 0; 15130 STACKTOP = i1; 15131 return i22 | 0; 15132 } else { 15133 HEAP32[i3 >> 2] = _sweeplist(i2, i4, 80) | 0; 15134 i22 = 400; 15135 STACKTOP = i1; 15136 return i22 | 0; 15137 } 15138 } 15139 case 4: 15140 { 15141 i4 = i8 + 76 | 0; 15142 i5 = HEAP32[i4 >> 2] | 0; 15143 if ((i5 | 0) != 0) { 15144 HEAP32[i4 >> 2] = _sweeplist(i2, i5, 80) | 0; 15145 i22 = 400; 15146 STACKTOP = i1; 15147 return i22 | 0; 15148 } 15149 HEAP32[i14 >> 2] = HEAP32[i8 + 172 >> 2]; 15150 _sweeplist(i2, i14, 1) | 0; 15151 i3 = HEAP32[i3 >> 2] | 0; 15152 if ((HEAP8[i3 + 62 | 0] | 0) != 1) { 15153 i4 = (HEAP32[i3 + 32 >> 2] | 0) / 2 | 0; 15154 if ((HEAP32[i3 + 28 >> 2] | 0) >>> 0 < i4 >>> 0) { 15155 _luaS_resize(i2, i4); 15156 } 15157 i21 = i3 + 144 | 0; 15158 i22 = i3 + 152 | 0; 15159 HEAP32[i21 >> 2] = _luaM_realloc_(i2, HEAP32[i21 >> 2] | 0, HEAP32[i22 >> 2] | 0, 0) | 0; 15160 HEAP32[i22 >> 2] = 0; 15161 } 15162 HEAP8[i6] = 5; 15163 i22 = 5; 15164 STACKTOP = i1; 15165 return i22 | 0; 15166 } 15167 default: 15168 { 15169 i22 = 0; 15170 STACKTOP = i1; 15171 return i22 | 0; 15172 } 15173 } 15174 return 0; 15175 } 15176 function _pmain(i3) { 15177 i3 = i3 | 0; 15178 var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0; 15179 i1 = STACKTOP; 15180 STACKTOP = STACKTOP + 16 | 0; 15181 i2 = i1; 15182 i7 = _lua_tointegerx(i3, 1, 0) | 0; 15183 i4 = _lua_touserdata(i3, 2) | 0; 15184 i5 = HEAP32[i4 >> 2] | 0; 15185 if ((i5 | 0) != 0 ? (HEAP8[i5] | 0) != 0 : 0) { 15186 HEAP32[20] = i5; 15187 } 15188 i12 = HEAP32[i4 + 4 >> 2] | 0; 15189 do { 15190 if ((i12 | 0) == 0) { 15191 i5 = 0; 15192 i6 = 0; 15193 i8 = 0; 15194 i9 = 1; 15195 i10 = 1; 15196 } else { 15197 i9 = 0; 15198 i8 = 0; 15199 i11 = 0; 15200 i6 = 0; 15201 i5 = 1; 15202 L6 : while (1) { 15203 if ((HEAP8[i12] | 0) != 45) { 15204 i10 = 18; 15205 break; 15206 } 15207 switch (HEAP8[i12 + 1 | 0] | 0) { 15208 case 108: 15209 { 15210 i10 = 12; 15211 break; 15212 } 15213 case 69: 15214 { 15215 i9 = 1; 15216 break; 15217 } 15218 case 45: 15219 { 15220 i10 = 7; 15221 break L6; 15222 } 15223 case 105: 15224 { 15225 if ((HEAP8[i12 + 2 | 0] | 0) == 0) { 15226 i11 = 1; 15227 i6 = 1; 15228 } else { 15229 i5 = -1; 15230 break L6; 15231 } 15232 break; 15233 } 15234 case 101: 15235 { 15236 i8 = 1; 15237 i10 = 12; 15238 break; 15239 } 15240 case 118: 15241 { 15242 if ((HEAP8[i12 + 2 | 0] | 0) == 0) { 15243 i11 = 1; 15244 } else { 15245 i5 = -1; 15246 break L6; 15247 } 15248 break; 15249 } 15250 case 0: 15251 { 15252 i10 = 18; 15253 break L6; 15254 } 15255 default: 15256 { 15257 i10 = 16; 15258 break L6; 15259 } 15260 } 15261 if ((i10 | 0) == 12) { 15262 i10 = 0; 15263 if ((HEAP8[i12 + 2 | 0] | 0) == 0) { 15264 i12 = i5 + 1 | 0; 15265 i13 = HEAP32[i4 + (i12 << 2) >> 2] | 0; 15266 if ((i13 | 0) == 0) { 15267 i10 = 15; 15268 break; 15269 } 15270 if ((HEAP8[i13] | 0) == 45) { 15271 i10 = 15; 15272 break; 15273 } else { 15274 i5 = i12; 15275 } 15276 } 15277 } 15278 i5 = i5 + 1 | 0; 15279 i12 = HEAP32[i4 + (i5 << 2) >> 2] | 0; 15280 if ((i12 | 0) == 0) { 15281 i5 = 0; 15282 i12 = i9; 15283 i10 = 23; 15284 break; 15285 } 15286 } 15287 if ((i10 | 0) == 7) { 15288 if ((HEAP8[i12 + 2 | 0] | 0) == 0) { 15289 i5 = i5 + 1 | 0; 15290 i5 = (HEAP32[i4 + (i5 << 2) >> 2] | 0) == 0 ? 0 : i5; 15291 i10 = 18; 15292 } else { 15293 i5 = -1; 15294 } 15295 } else if ((i10 | 0) == 15) { 15296 i5 = 0 - i5 | 0; 15297 i10 = 18; 15298 } else if ((i10 | 0) == 16) { 15299 i5 = 0 - i5 | 0; 15300 i10 = 18; 15301 } 15302 if ((i10 | 0) == 18) { 15303 if ((i5 | 0) >= 0) { 15304 i12 = i9; 15305 i10 = 23; 15306 } 15307 } 15308 if ((i10 | 0) == 23) { 15309 if ((i11 | 0) == 0) { 15310 i9 = 1; 15311 } else { 15312 i9 = HEAP32[_stdout >> 2] | 0; 15313 _fwrite(440, 1, 51, i9 | 0) | 0; 15314 _fputc(10, i9 | 0) | 0; 15315 _fflush(i9 | 0) | 0; 15316 i9 = 0; 15317 } 15318 if ((i12 | 0) == 0) { 15319 i10 = 1; 15320 break; 15321 } 15322 _lua_pushboolean(i3, 1); 15323 _lua_setfield(i3, -1001e3, 96); 15324 i10 = 0; 15325 break; 15326 } 15327 i3 = HEAP32[i4 + (0 - i5 << 2) >> 2] | 0; 15328 i4 = HEAP32[_stderr >> 2] | 0; 15329 HEAP32[i2 >> 2] = HEAP32[20]; 15330 _fprintf(i4 | 0, 496, i2 | 0) | 0; 15331 _fflush(i4 | 0) | 0; 15332 i13 = HEAP8[i3 + 1 | 0] | 0; 15333 if (i13 << 24 >> 24 == 108 | i13 << 24 >> 24 == 101) { 15334 HEAP32[i2 >> 2] = i3; 15335 _fprintf(i4 | 0, 504, i2 | 0) | 0; 15336 _fflush(i4 | 0) | 0; 15337 } else { 15338 HEAP32[i2 >> 2] = i3; 15339 _fprintf(i4 | 0, 528, i2 | 0) | 0; 15340 _fflush(i4 | 0) | 0; 15341 } 15342 HEAP32[i2 >> 2] = HEAP32[20]; 15343 _fprintf(i4 | 0, 560, i2 | 0) | 0; 15344 _fflush(i4 | 0) | 0; 15345 i13 = 0; 15346 STACKTOP = i1; 15347 return i13 | 0; 15348 } 15349 } while (0); 15350 _luaL_checkversion_(i3, 502.0); 15351 _lua_gc(i3, 0, 0) | 0; 15352 _luaL_openlibs(i3); 15353 _lua_gc(i3, 1, 0) | 0; 15354 do { 15355 if (i10) { 15356 i10 = _getenv(409 | 0) | 0; 15357 if ((i10 | 0) == 0) { 15358 i10 = _getenv(425 | 0) | 0; 15359 if ((i10 | 0) == 0) { 15360 break; 15361 } else { 15362 i11 = 424; 15363 } 15364 } else { 15365 i11 = 408; 15366 } 15367 if ((HEAP8[i10] | 0) == 64) { 15368 i13 = _luaL_loadfilex(i3, i10 + 1 | 0, 0) | 0; 15369 if ((i13 | 0) == 0) { 15370 i12 = _lua_gettop(i3) | 0; 15371 _lua_pushcclosure(i3, 142, 0); 15372 _lua_insert(i3, i12); 15373 HEAP32[48] = i3; 15374 _signal(2, 1) | 0; 15375 i13 = _lua_pcallk(i3, 0, 0, i12, 0, 0) | 0; 15376 _signal(2, 0) | 0; 15377 _lua_remove(i3, i12); 15378 if ((i13 | 0) == 0) { 15379 break; 15380 } 15381 } 15382 if ((_lua_type(i3, -1) | 0) == 0) { 15383 i13 = 0; 15384 STACKTOP = i1; 15385 return i13 | 0; 15386 } 15387 i11 = _lua_tolstring(i3, -1, 0) | 0; 15388 i12 = HEAP32[20] | 0; 15389 i10 = HEAP32[_stderr >> 2] | 0; 15390 if ((i12 | 0) != 0) { 15391 HEAP32[i2 >> 2] = i12; 15392 _fprintf(i10 | 0, 496, i2 | 0) | 0; 15393 _fflush(i10 | 0) | 0; 15394 } 15395 HEAP32[i2 >> 2] = (i11 | 0) == 0 ? 48 : i11; 15396 _fprintf(i10 | 0, 912, i2 | 0) | 0; 15397 _fflush(i10 | 0) | 0; 15398 _lua_settop(i3, -2); 15399 _lua_gc(i3, 2, 0) | 0; 15400 } else { 15401 i13 = _luaL_loadbufferx(i3, i10, _strlen(i10 | 0) | 0, i11, 0) | 0; 15402 if ((i13 | 0) == 0) { 15403 i12 = _lua_gettop(i3) | 0; 15404 _lua_pushcclosure(i3, 142, 0); 15405 _lua_insert(i3, i12); 15406 HEAP32[48] = i3; 15407 _signal(2, 1) | 0; 15408 i13 = _lua_pcallk(i3, 0, 0, i12, 0, 0) | 0; 15409 _signal(2, 0) | 0; 15410 _lua_remove(i3, i12); 15411 if ((i13 | 0) == 0) { 15412 break; 15413 } 15414 } 15415 if ((_lua_type(i3, -1) | 0) == 0) { 15416 i13 = 0; 15417 STACKTOP = i1; 15418 return i13 | 0; 15419 } 15420 i11 = _lua_tolstring(i3, -1, 0) | 0; 15421 i10 = HEAP32[20] | 0; 15422 i12 = HEAP32[_stderr >> 2] | 0; 15423 if ((i10 | 0) != 0) { 15424 HEAP32[i2 >> 2] = i10; 15425 _fprintf(i12 | 0, 496, i2 | 0) | 0; 15426 _fflush(i12 | 0) | 0; 15427 } 15428 HEAP32[i2 >> 2] = (i11 | 0) == 0 ? 48 : i11; 15429 _fprintf(i12 | 0, 912, i2 | 0) | 0; 15430 _fflush(i12 | 0) | 0; 15431 _lua_settop(i3, -2); 15432 _lua_gc(i3, 2, 0) | 0; 15433 } 15434 if ((i13 | 0) != 0) { 15435 i13 = 0; 15436 STACKTOP = i1; 15437 return i13 | 0; 15438 } 15439 } 15440 } while (0); 15441 i7 = (i5 | 0) > 0 ? i5 : i7; 15442 L67 : do { 15443 if ((i7 | 0) > 1) { 15444 i10 = 1; 15445 while (1) { 15446 i11 = HEAP32[i4 + (i10 << 2) >> 2] | 0; 15447 i12 = HEAP8[i11 + 1 | 0] | 0; 15448 if ((i12 | 0) == 108) { 15449 i11 = i11 + 2 | 0; 15450 if ((HEAP8[i11] | 0) == 0) { 15451 i10 = i10 + 1 | 0; 15452 i11 = HEAP32[i4 + (i10 << 2) >> 2] | 0; 15453 } 15454 _lua_getglobal(i3, 400); 15455 _lua_pushstring(i3, i11) | 0; 15456 i12 = (_lua_gettop(i3) | 0) + -1 | 0; 15457 _lua_pushcclosure(i3, 142, 0); 15458 _lua_insert(i3, i12); 15459 HEAP32[48] = i3; 15460 _signal(2, 1) | 0; 15461 i13 = _lua_pcallk(i3, 1, 1, i12, 0, 0) | 0; 15462 _signal(2, 0) | 0; 15463 _lua_remove(i3, i12); 15464 if ((i13 | 0) != 0) { 15465 i10 = 58; 15466 break; 15467 } 15468 _lua_setglobal(i3, i11); 15469 } else if ((i12 | 0) == 101) { 15470 i11 = i11 + 2 | 0; 15471 if ((HEAP8[i11] | 0) == 0) { 15472 i10 = i10 + 1 | 0; 15473 i11 = HEAP32[i4 + (i10 << 2) >> 2] | 0; 15474 } 15475 if ((_luaL_loadbufferx(i3, i11, _strlen(i11 | 0) | 0, 384, 0) | 0) != 0) { 15476 i10 = 50; 15477 break; 15478 } 15479 i12 = _lua_gettop(i3) | 0; 15480 _lua_pushcclosure(i3, 142, 0); 15481 _lua_insert(i3, i12); 15482 HEAP32[48] = i3; 15483 _signal(2, 1) | 0; 15484 i13 = _lua_pcallk(i3, 0, 0, i12, 0, 0) | 0; 15485 _signal(2, 0) | 0; 15486 _lua_remove(i3, i12); 15487 if ((i13 | 0) != 0) { 15488 i10 = 50; 15489 break; 15490 } 15491 } 15492 i10 = i10 + 1 | 0; 15493 if ((i10 | 0) >= (i7 | 0)) { 15494 break L67; 15495 } 15496 } 15497 if ((i10 | 0) == 50) { 15498 if ((_lua_type(i3, -1) | 0) == 0) { 15499 i13 = 0; 15500 STACKTOP = i1; 15501 return i13 | 0; 15502 } 15503 i5 = _lua_tolstring(i3, -1, 0) | 0; 15504 i6 = HEAP32[20] | 0; 15505 i4 = HEAP32[_stderr >> 2] | 0; 15506 if ((i6 | 0) != 0) { 15507 HEAP32[i2 >> 2] = i6; 15508 _fprintf(i4 | 0, 496, i2 | 0) | 0; 15509 _fflush(i4 | 0) | 0; 15510 } 15511 HEAP32[i2 >> 2] = (i5 | 0) == 0 ? 48 : i5; 15512 _fprintf(i4 | 0, 912, i2 | 0) | 0; 15513 _fflush(i4 | 0) | 0; 15514 _lua_settop(i3, -2); 15515 _lua_gc(i3, 2, 0) | 0; 15516 i13 = 0; 15517 STACKTOP = i1; 15518 return i13 | 0; 15519 } else if ((i10 | 0) == 58) { 15520 if ((_lua_type(i3, -1) | 0) == 0) { 15521 i13 = 0; 15522 STACKTOP = i1; 15523 return i13 | 0; 15524 } 15525 i5 = _lua_tolstring(i3, -1, 0) | 0; 15526 i6 = HEAP32[20] | 0; 15527 i4 = HEAP32[_stderr >> 2] | 0; 15528 if ((i6 | 0) != 0) { 15529 HEAP32[i2 >> 2] = i6; 15530 _fprintf(i4 | 0, 496, i2 | 0) | 0; 15531 _fflush(i4 | 0) | 0; 15532 } 15533 HEAP32[i2 >> 2] = (i5 | 0) == 0 ? 48 : i5; 15534 _fprintf(i4 | 0, 912, i2 | 0) | 0; 15535 _fflush(i4 | 0) | 0; 15536 _lua_settop(i3, -2); 15537 _lua_gc(i3, 2, 0) | 0; 15538 i13 = 0; 15539 STACKTOP = i1; 15540 return i13 | 0; 15541 } 15542 } 15543 } while (0); 15544 do { 15545 if ((i5 | 0) != 0) { 15546 i10 = 0; 15547 while (1) { 15548 if ((HEAP32[i4 + (i10 << 2) >> 2] | 0) == 0) { 15549 break; 15550 } else { 15551 i10 = i10 + 1 | 0; 15552 } 15553 } 15554 i11 = i5 + 1 | 0; 15555 i7 = i10 - i11 | 0; 15556 _luaL_checkstack(i3, i7 + 3 | 0, 352); 15557 if ((i11 | 0) < (i10 | 0)) { 15558 i12 = i11; 15559 do { 15560 _lua_pushstring(i3, HEAP32[i4 + (i12 << 2) >> 2] | 0) | 0; 15561 i12 = i12 + 1 | 0; 15562 } while ((i12 | 0) != (i10 | 0)); 15563 } 15564 _lua_createtable(i3, i7, i11); 15565 if ((i10 | 0) > 0) { 15566 i11 = 0; 15567 do { 15568 _lua_pushstring(i3, HEAP32[i4 + (i11 << 2) >> 2] | 0) | 0; 15569 _lua_rawseti(i3, -2, i11 - i5 | 0); 15570 i11 = i11 + 1 | 0; 15571 } while ((i11 | 0) != (i10 | 0)); 15572 } 15573 _lua_setglobal(i3, 328); 15574 i10 = HEAP32[i4 + (i5 << 2) >> 2] | 0; 15575 if ((_strcmp(i10, 336) | 0) == 0) { 15576 i13 = (_strcmp(HEAP32[i4 + (i5 + -1 << 2) >> 2] | 0, 344) | 0) == 0; 15577 i10 = i13 ? i10 : 0; 15578 } 15579 i10 = _luaL_loadfilex(i3, i10, 0) | 0; 15580 i4 = ~i7; 15581 _lua_insert(i3, i4); 15582 if ((i10 | 0) == 0) { 15583 i13 = (_lua_gettop(i3) | 0) - i7 | 0; 15584 _lua_pushcclosure(i3, 142, 0); 15585 _lua_insert(i3, i13); 15586 HEAP32[48] = i3; 15587 _signal(2, 1) | 0; 15588 i10 = _lua_pcallk(i3, i7, -1, i13, 0, 0) | 0; 15589 _signal(2, 0) | 0; 15590 _lua_remove(i3, i13); 15591 if ((i10 | 0) == 0) { 15592 break; 15593 } 15594 } else { 15595 _lua_settop(i3, i4); 15596 } 15597 if ((_lua_type(i3, -1) | 0) != 0) { 15598 i7 = _lua_tolstring(i3, -1, 0) | 0; 15599 i11 = HEAP32[20] | 0; 15600 i4 = HEAP32[_stderr >> 2] | 0; 15601 if ((i11 | 0) != 0) { 15602 HEAP32[i2 >> 2] = i11; 15603 _fprintf(i4 | 0, 496, i2 | 0) | 0; 15604 _fflush(i4 | 0) | 0; 15605 } 15606 HEAP32[i2 >> 2] = (i7 | 0) == 0 ? 48 : i7; 15607 _fprintf(i4 | 0, 912, i2 | 0) | 0; 15608 _fflush(i4 | 0) | 0; 15609 _lua_settop(i3, -2); 15610 _lua_gc(i3, 2, 0) | 0; 15611 } 15612 if ((i10 | 0) != 0) { 15613 i13 = 0; 15614 STACKTOP = i1; 15615 return i13 | 0; 15616 } 15617 } 15618 } while (0); 15619 if ((i6 | 0) == 0) { 15620 if (!((i8 | i5 | 0) != 0 | i9 ^ 1)) { 15621 i13 = HEAP32[_stdout >> 2] | 0; 15622 _fwrite(440, 1, 51, i13 | 0) | 0; 15623 _fputc(10, i13 | 0) | 0; 15624 _fflush(i13 | 0) | 0; 15625 _dotty(i3); 15626 } 15627 } else { 15628 _dotty(i3); 15629 } 15630 _lua_pushboolean(i3, 1); 15631 i13 = 1; 15632 STACKTOP = i1; 15633 return i13 | 0; 15634 } 15635 function _DumpFunction(i6, i2) { 15636 i6 = i6 | 0; 15637 i2 = i2 | 0; 15638 var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0; 15639 i5 = STACKTOP; 15640 STACKTOP = STACKTOP + 64 | 0; 15641 i17 = i5 + 56 | 0; 15642 i19 = i5 + 52 | 0; 15643 i20 = i5 + 48 | 0; 15644 i18 = i5; 15645 i21 = i5 + 60 | 0; 15646 i22 = i5 + 44 | 0; 15647 i1 = i5 + 40 | 0; 15648 i16 = i5 + 36 | 0; 15649 i23 = i5 + 32 | 0; 15650 i3 = i5 + 28 | 0; 15651 i7 = i5 + 24 | 0; 15652 i8 = i5 + 20 | 0; 15653 i9 = i5 + 16 | 0; 15654 i10 = i5 + 12 | 0; 15655 i12 = i5 + 8 | 0; 15656 HEAP32[i17 >> 2] = HEAP32[i6 + 64 >> 2]; 15657 i4 = i2 + 16 | 0; 15658 i28 = HEAP32[i4 >> 2] | 0; 15659 if ((i28 | 0) == 0) { 15660 i28 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i17, 4, HEAP32[i2 + 8 >> 2] | 0) | 0; 15661 HEAP32[i4 >> 2] = i28; 15662 } 15663 HEAP32[i17 >> 2] = HEAP32[i6 + 68 >> 2]; 15664 if ((i28 | 0) == 0) { 15665 i28 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i17, 4, HEAP32[i2 + 8 >> 2] | 0) | 0; 15666 HEAP32[i4 >> 2] = i28; 15667 } 15668 HEAP8[i17] = HEAP8[i6 + 76 | 0] | 0; 15669 if ((i28 | 0) == 0) { 15670 i28 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i17, 1, HEAP32[i2 + 8 >> 2] | 0) | 0; 15671 HEAP32[i4 >> 2] = i28; 15672 } 15673 HEAP8[i17] = HEAP8[i6 + 77 | 0] | 0; 15674 if ((i28 | 0) == 0) { 15675 i28 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i17, 1, HEAP32[i2 + 8 >> 2] | 0) | 0; 15676 HEAP32[i4 >> 2] = i28; 15677 } 15678 HEAP8[i17] = HEAP8[i6 + 78 | 0] | 0; 15679 if ((i28 | 0) == 0) { 15680 i28 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i17, 1, HEAP32[i2 + 8 >> 2] | 0) | 0; 15681 HEAP32[i4 >> 2] = i28; 15682 } 15683 i25 = HEAP32[i6 + 12 >> 2] | 0; 15684 i24 = HEAP32[i6 + 48 >> 2] | 0; 15685 HEAP32[i23 >> 2] = i24; 15686 if ((i28 | 0) == 0) { 15687 i26 = i2 + 4 | 0; 15688 i27 = i2 + 8 | 0; 15689 i28 = FUNCTION_TABLE_iiiii[HEAP32[i26 >> 2] & 3](HEAP32[i2 >> 2] | 0, i23, 4, HEAP32[i27 >> 2] | 0) | 0; 15690 HEAP32[i4 >> 2] = i28; 15691 if ((i28 | 0) == 0) { 15692 i28 = FUNCTION_TABLE_iiiii[HEAP32[i26 >> 2] & 3](HEAP32[i2 >> 2] | 0, i25, i24 << 2, HEAP32[i27 >> 2] | 0) | 0; 15693 HEAP32[i4 >> 2] = i28; 15694 i25 = HEAP32[i6 + 44 >> 2] | 0; 15695 HEAP32[i22 >> 2] = i25; 15696 if ((i28 | 0) == 0) { 15697 i28 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i22, 4, HEAP32[i2 + 8 >> 2] | 0) | 0; 15698 HEAP32[i4 >> 2] = i28; 15699 } 15700 } else { 15701 i11 = 13; 15702 } 15703 } else { 15704 i11 = 13; 15705 } 15706 if ((i11 | 0) == 13) { 15707 i25 = HEAP32[i6 + 44 >> 2] | 0; 15708 HEAP32[i22 >> 2] = i25; 15709 } 15710 if ((i25 | 0) > 0) { 15711 i24 = i6 + 8 | 0; 15712 i23 = i2 + 4 | 0; 15713 i22 = i2 + 8 | 0; 15714 i26 = 0; 15715 do { 15716 i30 = HEAP32[i24 >> 2] | 0; 15717 i27 = i30 + (i26 << 4) | 0; 15718 i30 = i30 + (i26 << 4) + 8 | 0; 15719 i29 = HEAP32[i30 >> 2] | 0; 15720 HEAP8[i17] = i29 & 15; 15721 if ((i28 | 0) == 0) { 15722 i28 = FUNCTION_TABLE_iiiii[HEAP32[i23 >> 2] & 3](HEAP32[i2 >> 2] | 0, i17, 1, HEAP32[i22 >> 2] | 0) | 0; 15723 HEAP32[i4 >> 2] = i28; 15724 i29 = HEAP32[i30 >> 2] | 0; 15725 } 15726 i29 = i29 & 15; 15727 do { 15728 if ((i29 | 0) == 3) { 15729 HEAPF64[i18 >> 3] = +HEAPF64[i27 >> 3]; 15730 if ((i28 | 0) == 0) { 15731 i28 = FUNCTION_TABLE_iiiii[HEAP32[i23 >> 2] & 3](HEAP32[i2 >> 2] | 0, i18, 8, HEAP32[i22 >> 2] | 0) | 0; 15732 HEAP32[i4 >> 2] = i28; 15733 } 15734 } else if ((i29 | 0) == 1) { 15735 HEAP8[i21] = HEAP32[i27 >> 2]; 15736 if ((i28 | 0) == 0) { 15737 i28 = FUNCTION_TABLE_iiiii[HEAP32[i23 >> 2] & 3](HEAP32[i2 >> 2] | 0, i21, 1, HEAP32[i22 >> 2] | 0) | 0; 15738 HEAP32[i4 >> 2] = i28; 15739 } 15740 } else if ((i29 | 0) == 4) { 15741 i27 = HEAP32[i27 >> 2] | 0; 15742 if ((i27 | 0) == 0) { 15743 HEAP32[i19 >> 2] = 0; 15744 if ((i28 | 0) != 0) { 15745 break; 15746 } 15747 i28 = FUNCTION_TABLE_iiiii[HEAP32[i23 >> 2] & 3](HEAP32[i2 >> 2] | 0, i19, 4, HEAP32[i22 >> 2] | 0) | 0; 15748 HEAP32[i4 >> 2] = i28; 15749 break; 15750 } 15751 HEAP32[i20 >> 2] = (HEAP32[i27 + 12 >> 2] | 0) + 1; 15752 if ((i28 | 0) == 0) { 15753 i28 = FUNCTION_TABLE_iiiii[HEAP32[i23 >> 2] & 3](HEAP32[i2 >> 2] | 0, i20, 4, HEAP32[i22 >> 2] | 0) | 0; 15754 HEAP32[i4 >> 2] = i28; 15755 if ((i28 | 0) == 0) { 15756 i28 = FUNCTION_TABLE_iiiii[HEAP32[i23 >> 2] & 3](HEAP32[i2 >> 2] | 0, i27 + 16 | 0, HEAP32[i20 >> 2] | 0, HEAP32[i22 >> 2] | 0) | 0; 15757 HEAP32[i4 >> 2] = i28; 15758 } 15759 } 15760 } 15761 } while (0); 15762 i26 = i26 + 1 | 0; 15763 } while ((i26 | 0) != (i25 | 0)); 15764 } 15765 i18 = HEAP32[i6 + 56 >> 2] | 0; 15766 HEAP32[i17 >> 2] = i18; 15767 if ((i28 | 0) == 0) { 15768 i28 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i17, 4, HEAP32[i2 + 8 >> 2] | 0) | 0; 15769 HEAP32[i4 >> 2] = i28; 15770 } 15771 if ((i18 | 0) > 0) { 15772 i17 = i6 + 16 | 0; 15773 i19 = 0; 15774 do { 15775 _DumpFunction(HEAP32[(HEAP32[i17 >> 2] | 0) + (i19 << 2) >> 2] | 0, i2); 15776 i19 = i19 + 1 | 0; 15777 } while ((i19 | 0) != (i18 | 0)); 15778 i28 = HEAP32[i4 >> 2] | 0; 15779 } 15780 i17 = i6 + 40 | 0; 15781 i18 = HEAP32[i17 >> 2] | 0; 15782 HEAP32[i16 >> 2] = i18; 15783 if ((i28 | 0) == 0) { 15784 i28 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i16, 4, HEAP32[i2 + 8 >> 2] | 0) | 0; 15785 HEAP32[i4 >> 2] = i28; 15786 } 15787 if ((i18 | 0) > 0) { 15788 i19 = i6 + 28 | 0; 15789 i16 = i2 + 4 | 0; 15790 i20 = i2 + 8 | 0; 15791 i21 = 0; 15792 do { 15793 i22 = HEAP32[i19 >> 2] | 0; 15794 HEAP8[i1] = HEAP8[i22 + (i21 << 3) + 4 | 0] | 0; 15795 if ((i28 | 0) == 0) { 15796 i28 = FUNCTION_TABLE_iiiii[HEAP32[i16 >> 2] & 3](HEAP32[i2 >> 2] | 0, i1, 1, HEAP32[i20 >> 2] | 0) | 0; 15797 HEAP32[i4 >> 2] = i28; 15798 i22 = HEAP32[i19 >> 2] | 0; 15799 } 15800 HEAP8[i1] = HEAP8[i22 + (i21 << 3) + 5 | 0] | 0; 15801 if ((i28 | 0) == 0) { 15802 i28 = FUNCTION_TABLE_iiiii[HEAP32[i16 >> 2] & 3](HEAP32[i2 >> 2] | 0, i1, 1, HEAP32[i20 >> 2] | 0) | 0; 15803 HEAP32[i4 >> 2] = i28; 15804 } 15805 i21 = i21 + 1 | 0; 15806 } while ((i21 | 0) != (i18 | 0)); 15807 } 15808 i16 = i2 + 12 | 0; 15809 if ((HEAP32[i16 >> 2] | 0) == 0 ? (i13 = HEAP32[i6 + 36 >> 2] | 0, (i13 | 0) != 0) : 0) { 15810 HEAP32[i12 >> 2] = (HEAP32[i13 + 12 >> 2] | 0) + 1; 15811 if ((i28 | 0) == 0 ? (i14 = i2 + 4 | 0, i15 = i2 + 8 | 0, i30 = FUNCTION_TABLE_iiiii[HEAP32[i14 >> 2] & 3](HEAP32[i2 >> 2] | 0, i12, 4, HEAP32[i15 >> 2] | 0) | 0, HEAP32[i4 >> 2] = i30, (i30 | 0) == 0) : 0) { 15812 HEAP32[i4 >> 2] = FUNCTION_TABLE_iiiii[HEAP32[i14 >> 2] & 3](HEAP32[i2 >> 2] | 0, i13 + 16 | 0, HEAP32[i12 >> 2] | 0, HEAP32[i15 >> 2] | 0) | 0; 15813 } 15814 } else { 15815 i12 = i10; 15816 i11 = 50; 15817 } 15818 if ((i11 | 0) == 50) { 15819 HEAP32[i10 >> 2] = 0; 15820 if ((i28 | 0) == 0) { 15821 HEAP32[i4 >> 2] = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i12, 4, HEAP32[i2 + 8 >> 2] | 0) | 0; 15822 } 15823 } 15824 if ((HEAP32[i16 >> 2] | 0) == 0) { 15825 i11 = HEAP32[i6 + 52 >> 2] | 0; 15826 } else { 15827 i11 = 0; 15828 } 15829 i10 = HEAP32[i6 + 20 >> 2] | 0; 15830 HEAP32[i9 >> 2] = i11; 15831 i14 = HEAP32[i4 >> 2] | 0; 15832 if ((i14 | 0) == 0) { 15833 i12 = i2 + 4 | 0; 15834 i13 = i2 + 8 | 0; 15835 i14 = FUNCTION_TABLE_iiiii[HEAP32[i12 >> 2] & 3](HEAP32[i2 >> 2] | 0, i9, 4, HEAP32[i13 >> 2] | 0) | 0; 15836 HEAP32[i4 >> 2] = i14; 15837 if ((i14 | 0) == 0) { 15838 i14 = FUNCTION_TABLE_iiiii[HEAP32[i12 >> 2] & 3](HEAP32[i2 >> 2] | 0, i10, i11 << 2, HEAP32[i13 >> 2] | 0) | 0; 15839 HEAP32[i4 >> 2] = i14; 15840 } 15841 } 15842 if ((HEAP32[i16 >> 2] | 0) == 0) { 15843 i9 = HEAP32[i6 + 60 >> 2] | 0; 15844 } else { 15845 i9 = 0; 15846 } 15847 HEAP32[i8 >> 2] = i9; 15848 if ((i14 | 0) == 0) { 15849 i14 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i8, 4, HEAP32[i2 + 8 >> 2] | 0) | 0; 15850 HEAP32[i4 >> 2] = i14; 15851 } 15852 if ((i9 | 0) > 0) { 15853 i10 = i6 + 24 | 0; 15854 i11 = i2 + 4 | 0; 15855 i8 = i2 + 8 | 0; 15856 i12 = 0; 15857 do { 15858 i13 = HEAP32[(HEAP32[i10 >> 2] | 0) + (i12 * 12 | 0) >> 2] | 0; 15859 if ((i13 | 0) == 0) { 15860 HEAP32[i1 >> 2] = 0; 15861 if ((i14 | 0) == 0) { 15862 i14 = FUNCTION_TABLE_iiiii[HEAP32[i11 >> 2] & 3](HEAP32[i2 >> 2] | 0, i1, 4, HEAP32[i8 >> 2] | 0) | 0; 15863 HEAP32[i4 >> 2] = i14; 15864 } 15865 } else { 15866 HEAP32[i3 >> 2] = (HEAP32[i13 + 12 >> 2] | 0) + 1; 15867 if ((i14 | 0) == 0) { 15868 i14 = FUNCTION_TABLE_iiiii[HEAP32[i11 >> 2] & 3](HEAP32[i2 >> 2] | 0, i3, 4, HEAP32[i8 >> 2] | 0) | 0; 15869 HEAP32[i4 >> 2] = i14; 15870 if ((i14 | 0) == 0) { 15871 i14 = FUNCTION_TABLE_iiiii[HEAP32[i11 >> 2] & 3](HEAP32[i2 >> 2] | 0, i13 + 16 | 0, HEAP32[i3 >> 2] | 0, HEAP32[i8 >> 2] | 0) | 0; 15872 HEAP32[i4 >> 2] = i14; 15873 } 15874 } 15875 } 15876 i13 = HEAP32[i10 >> 2] | 0; 15877 HEAP32[i1 >> 2] = HEAP32[i13 + (i12 * 12 | 0) + 4 >> 2]; 15878 if ((i14 | 0) == 0) { 15879 i14 = FUNCTION_TABLE_iiiii[HEAP32[i11 >> 2] & 3](HEAP32[i2 >> 2] | 0, i1, 4, HEAP32[i8 >> 2] | 0) | 0; 15880 HEAP32[i4 >> 2] = i14; 15881 i13 = HEAP32[i10 >> 2] | 0; 15882 } 15883 HEAP32[i1 >> 2] = HEAP32[i13 + (i12 * 12 | 0) + 8 >> 2]; 15884 if ((i14 | 0) == 0) { 15885 i14 = FUNCTION_TABLE_iiiii[HEAP32[i11 >> 2] & 3](HEAP32[i2 >> 2] | 0, i1, 4, HEAP32[i8 >> 2] | 0) | 0; 15886 HEAP32[i4 >> 2] = i14; 15887 } 15888 i12 = i12 + 1 | 0; 15889 } while ((i12 | 0) != (i9 | 0)); 15890 } 15891 if ((HEAP32[i16 >> 2] | 0) == 0) { 15892 i8 = HEAP32[i17 >> 2] | 0; 15893 } else { 15894 i8 = 0; 15895 } 15896 HEAP32[i7 >> 2] = i8; 15897 if ((i14 | 0) == 0) { 15898 i14 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i7, 4, HEAP32[i2 + 8 >> 2] | 0) | 0; 15899 HEAP32[i4 >> 2] = i14; 15900 } 15901 if ((i8 | 0) <= 0) { 15902 STACKTOP = i5; 15903 return; 15904 } 15905 i7 = i6 + 28 | 0; 15906 i6 = i2 + 4 | 0; 15907 i9 = i2 + 8 | 0; 15908 i10 = 0; 15909 do { 15910 i11 = HEAP32[(HEAP32[i7 >> 2] | 0) + (i10 << 3) >> 2] | 0; 15911 if ((i11 | 0) == 0) { 15912 HEAP32[i1 >> 2] = 0; 15913 if ((i14 | 0) == 0) { 15914 i14 = FUNCTION_TABLE_iiiii[HEAP32[i6 >> 2] & 3](HEAP32[i2 >> 2] | 0, i1, 4, HEAP32[i9 >> 2] | 0) | 0; 15915 HEAP32[i4 >> 2] = i14; 15916 } 15917 } else { 15918 HEAP32[i3 >> 2] = (HEAP32[i11 + 12 >> 2] | 0) + 1; 15919 if ((i14 | 0) == 0) { 15920 i14 = FUNCTION_TABLE_iiiii[HEAP32[i6 >> 2] & 3](HEAP32[i2 >> 2] | 0, i3, 4, HEAP32[i9 >> 2] | 0) | 0; 15921 HEAP32[i4 >> 2] = i14; 15922 if ((i14 | 0) == 0) { 15923 i14 = FUNCTION_TABLE_iiiii[HEAP32[i6 >> 2] & 3](HEAP32[i2 >> 2] | 0, i11 + 16 | 0, HEAP32[i3 >> 2] | 0, HEAP32[i9 >> 2] | 0) | 0; 15924 HEAP32[i4 >> 2] = i14; 15925 } 15926 } 15927 } 15928 i10 = i10 + 1 | 0; 15929 } while ((i10 | 0) != (i8 | 0)); 15930 STACKTOP = i5; 15931 return; 15932 } 15933 function _LoadFunction(i2, i6) { 15934 i2 = i2 | 0; 15935 i6 = i6 | 0; 15936 var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0; 15937 i1 = STACKTOP; 15938 STACKTOP = STACKTOP + 16 | 0; 15939 i3 = i1; 15940 i5 = i1 + 8 | 0; 15941 i4 = i2 + 4 | 0; 15942 if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) { 15943 _error(i2, 8824); 15944 } 15945 i8 = HEAP32[i3 >> 2] | 0; 15946 if ((i8 | 0) < 0) { 15947 _error(i2, 8872); 15948 } 15949 HEAP32[i6 + 64 >> 2] = i8; 15950 if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) { 15951 _error(i2, 8824); 15952 } 15953 i8 = HEAP32[i3 >> 2] | 0; 15954 if ((i8 | 0) < 0) { 15955 _error(i2, 8872); 15956 } 15957 HEAP32[i6 + 68 >> 2] = i8; 15958 if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 1) | 0) != 0) { 15959 _error(i2, 8824); 15960 } 15961 HEAP8[i6 + 76 | 0] = HEAP8[i3] | 0; 15962 if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 1) | 0) != 0) { 15963 _error(i2, 8824); 15964 } 15965 HEAP8[i6 + 77 | 0] = HEAP8[i3] | 0; 15966 if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 1) | 0) != 0) { 15967 _error(i2, 8824); 15968 } 15969 HEAP8[i6 + 78 | 0] = HEAP8[i3] | 0; 15970 if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) { 15971 _error(i2, 8824); 15972 } 15973 i9 = HEAP32[i3 >> 2] | 0; 15974 if ((i9 | 0) < 0) { 15975 _error(i2, 8872); 15976 } 15977 i8 = HEAP32[i2 >> 2] | 0; 15978 if ((i9 + 1 | 0) >>> 0 > 1073741823) { 15979 _luaM_toobig(i8); 15980 } 15981 i14 = i9 << 2; 15982 i13 = _luaM_realloc_(i8, 0, 0, i14) | 0; 15983 HEAP32[i6 + 12 >> 2] = i13; 15984 HEAP32[i6 + 48 >> 2] = i9; 15985 if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i13, i14) | 0) != 0) { 15986 _error(i2, 8824); 15987 } 15988 if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) { 15989 _error(i2, 8824); 15990 } 15991 i8 = HEAP32[i3 >> 2] | 0; 15992 if ((i8 | 0) < 0) { 15993 _error(i2, 8872); 15994 } 15995 i9 = HEAP32[i2 >> 2] | 0; 15996 if ((i8 + 1 | 0) >>> 0 > 268435455) { 15997 _luaM_toobig(i9); 15998 } 15999 i11 = _luaM_realloc_(i9, 0, 0, i8 << 4) | 0; 16000 i9 = i6 + 8 | 0; 16001 HEAP32[i9 >> 2] = i11; 16002 HEAP32[i6 + 44 >> 2] = i8; 16003 i12 = (i8 | 0) > 0; 16004 L43 : do { 16005 if (i12) { 16006 i10 = 0; 16007 do { 16008 HEAP32[i11 + (i10 << 4) + 8 >> 2] = 0; 16009 i10 = i10 + 1 | 0; 16010 } while ((i10 | 0) != (i8 | 0)); 16011 if (i12) { 16012 i10 = i2 + 8 | 0; 16013 i13 = 0; 16014 while (1) { 16015 i12 = i11 + (i13 << 4) | 0; 16016 if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 1) | 0) != 0) { 16017 i9 = 34; 16018 break; 16019 } 16020 i14 = HEAP8[i3] | 0; 16021 if ((i14 | 0) == 4) { 16022 if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) { 16023 i9 = 44; 16024 break; 16025 } 16026 i14 = HEAP32[i3 >> 2] | 0; 16027 if ((i14 | 0) == 0) { 16028 i14 = 0; 16029 } else { 16030 i14 = _luaZ_openspace(HEAP32[i2 >> 2] | 0, HEAP32[i10 >> 2] | 0, i14) | 0; 16031 if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i14, HEAP32[i3 >> 2] | 0) | 0) != 0) { 16032 i9 = 47; 16033 break; 16034 } 16035 i14 = _luaS_newlstr(HEAP32[i2 >> 2] | 0, i14, (HEAP32[i3 >> 2] | 0) + -1 | 0) | 0; 16036 } 16037 HEAP32[i12 >> 2] = i14; 16038 HEAP32[i11 + (i13 << 4) + 8 >> 2] = HEAPU8[i14 + 4 | 0] | 64; 16039 } else if ((i14 | 0) == 1) { 16040 if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 1) | 0) != 0) { 16041 i9 = 38; 16042 break; 16043 } 16044 HEAP32[i12 >> 2] = HEAP8[i3] | 0; 16045 HEAP32[i11 + (i13 << 4) + 8 >> 2] = 1; 16046 } else if ((i14 | 0) == 3) { 16047 if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 8) | 0) != 0) { 16048 i9 = 41; 16049 break; 16050 } 16051 HEAPF64[i12 >> 3] = +HEAPF64[i3 >> 3]; 16052 HEAP32[i11 + (i13 << 4) + 8 >> 2] = 3; 16053 } else if ((i14 | 0) == 0) { 16054 HEAP32[i11 + (i13 << 4) + 8 >> 2] = 0; 16055 } 16056 i13 = i13 + 1 | 0; 16057 if ((i13 | 0) >= (i8 | 0)) { 16058 break L43; 16059 } 16060 i11 = HEAP32[i9 >> 2] | 0; 16061 } 16062 if ((i9 | 0) == 34) { 16063 _error(i2, 8824); 16064 } else if ((i9 | 0) == 38) { 16065 _error(i2, 8824); 16066 } else if ((i9 | 0) == 41) { 16067 _error(i2, 8824); 16068 } else if ((i9 | 0) == 44) { 16069 _error(i2, 8824); 16070 } else if ((i9 | 0) == 47) { 16071 _error(i2, 8824); 16072 } 16073 } 16074 } 16075 } while (0); 16076 if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) { 16077 _error(i2, 8824); 16078 } 16079 i8 = HEAP32[i3 >> 2] | 0; 16080 if ((i8 | 0) < 0) { 16081 _error(i2, 8872); 16082 } 16083 i9 = HEAP32[i2 >> 2] | 0; 16084 if ((i8 + 1 | 0) >>> 0 > 1073741823) { 16085 _luaM_toobig(i9); 16086 } 16087 i11 = _luaM_realloc_(i9, 0, 0, i8 << 2) | 0; 16088 i9 = i6 + 16 | 0; 16089 HEAP32[i9 >> 2] = i11; 16090 HEAP32[i6 + 56 >> 2] = i8; 16091 i10 = (i8 | 0) > 0; 16092 if (i10) { 16093 i12 = 0; 16094 while (1) { 16095 HEAP32[i11 + (i12 << 2) >> 2] = 0; 16096 i12 = i12 + 1 | 0; 16097 if ((i12 | 0) == (i8 | 0)) { 16098 break; 16099 } 16100 i11 = HEAP32[i9 >> 2] | 0; 16101 } 16102 if (i10) { 16103 i10 = 0; 16104 do { 16105 i14 = _luaF_newproto(HEAP32[i2 >> 2] | 0) | 0; 16106 HEAP32[(HEAP32[i9 >> 2] | 0) + (i10 << 2) >> 2] = i14; 16107 _LoadFunction(i2, HEAP32[(HEAP32[i9 >> 2] | 0) + (i10 << 2) >> 2] | 0); 16108 i10 = i10 + 1 | 0; 16109 } while ((i10 | 0) != (i8 | 0)); 16110 } 16111 } 16112 if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) { 16113 _error(i2, 8824); 16114 } 16115 i9 = HEAP32[i3 >> 2] | 0; 16116 if ((i9 | 0) < 0) { 16117 _error(i2, 8872); 16118 } 16119 i8 = HEAP32[i2 >> 2] | 0; 16120 if ((i9 + 1 | 0) >>> 0 > 536870911) { 16121 _luaM_toobig(i8); 16122 } 16123 i10 = _luaM_realloc_(i8, 0, 0, i9 << 3) | 0; 16124 i8 = i6 + 28 | 0; 16125 HEAP32[i8 >> 2] = i10; 16126 HEAP32[i6 + 40 >> 2] = i9; 16127 L98 : do { 16128 if ((i9 | 0) > 0) { 16129 HEAP32[i10 >> 2] = 0; 16130 if ((i9 | 0) == 1) { 16131 i10 = 0; 16132 } else { 16133 i10 = 1; 16134 while (1) { 16135 HEAP32[(HEAP32[i8 >> 2] | 0) + (i10 << 3) >> 2] = 0; 16136 i10 = i10 + 1 | 0; 16137 if ((i10 | 0) == (i9 | 0)) { 16138 i10 = 0; 16139 break; 16140 } 16141 } 16142 } 16143 while (1) { 16144 if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 1) | 0) != 0) { 16145 i9 = 73; 16146 break; 16147 } 16148 HEAP8[(HEAP32[i8 >> 2] | 0) + (i10 << 3) + 4 | 0] = HEAP8[i3] | 0; 16149 if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 1) | 0) != 0) { 16150 i9 = 75; 16151 break; 16152 } 16153 HEAP8[(HEAP32[i8 >> 2] | 0) + (i10 << 3) + 5 | 0] = HEAP8[i3] | 0; 16154 i10 = i10 + 1 | 0; 16155 if ((i10 | 0) >= (i9 | 0)) { 16156 break L98; 16157 } 16158 } 16159 if ((i9 | 0) == 73) { 16160 _error(i2, 8824); 16161 } else if ((i9 | 0) == 75) { 16162 _error(i2, 8824); 16163 } 16164 } 16165 } while (0); 16166 if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) { 16167 _error(i2, 8824); 16168 } 16169 i9 = HEAP32[i3 >> 2] | 0; 16170 do { 16171 if ((i9 | 0) != 0) { 16172 i9 = _luaZ_openspace(HEAP32[i2 >> 2] | 0, HEAP32[i2 + 8 >> 2] | 0, i9) | 0; 16173 if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i9, HEAP32[i3 >> 2] | 0) | 0) == 0) { 16174 i7 = _luaS_newlstr(HEAP32[i2 >> 2] | 0, i9, (HEAP32[i3 >> 2] | 0) + -1 | 0) | 0; 16175 break; 16176 } else { 16177 _error(i2, 8824); 16178 } 16179 } else { 16180 i7 = 0; 16181 } 16182 } while (0); 16183 HEAP32[i6 + 36 >> 2] = i7; 16184 if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) { 16185 _error(i2, 8824); 16186 } 16187 i7 = HEAP32[i3 >> 2] | 0; 16188 if ((i7 | 0) < 0) { 16189 _error(i2, 8872); 16190 } 16191 i9 = HEAP32[i2 >> 2] | 0; 16192 if ((i7 + 1 | 0) >>> 0 > 1073741823) { 16193 _luaM_toobig(i9); 16194 } 16195 i14 = i7 << 2; 16196 i13 = _luaM_realloc_(i9, 0, 0, i14) | 0; 16197 HEAP32[i6 + 20 >> 2] = i13; 16198 HEAP32[i6 + 52 >> 2] = i7; 16199 if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i13, i14) | 0) != 0) { 16200 _error(i2, 8824); 16201 } 16202 if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) { 16203 _error(i2, 8824); 16204 } 16205 i7 = HEAP32[i3 >> 2] | 0; 16206 if ((i7 | 0) < 0) { 16207 _error(i2, 8872); 16208 } 16209 i9 = HEAP32[i2 >> 2] | 0; 16210 if ((i7 + 1 | 0) >>> 0 > 357913941) { 16211 _luaM_toobig(i9); 16212 } 16213 i10 = _luaM_realloc_(i9, 0, 0, i7 * 12 | 0) | 0; 16214 i9 = i6 + 24 | 0; 16215 HEAP32[i9 >> 2] = i10; 16216 HEAP32[i6 + 60 >> 2] = i7; 16217 L141 : do { 16218 if ((i7 | 0) > 0) { 16219 HEAP32[i10 >> 2] = 0; 16220 if ((i7 | 0) != 1) { 16221 i6 = 1; 16222 do { 16223 HEAP32[(HEAP32[i9 >> 2] | 0) + (i6 * 12 | 0) >> 2] = 0; 16224 i6 = i6 + 1 | 0; 16225 } while ((i6 | 0) != (i7 | 0)); 16226 } 16227 i6 = i2 + 8 | 0; 16228 i10 = 0; 16229 while (1) { 16230 if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) { 16231 i9 = 102; 16232 break; 16233 } 16234 i11 = HEAP32[i3 >> 2] | 0; 16235 if ((i11 | 0) == 0) { 16236 i11 = 0; 16237 } else { 16238 i11 = _luaZ_openspace(HEAP32[i2 >> 2] | 0, HEAP32[i6 >> 2] | 0, i11) | 0; 16239 if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i11, HEAP32[i3 >> 2] | 0) | 0) != 0) { 16240 i9 = 105; 16241 break; 16242 } 16243 i11 = _luaS_newlstr(HEAP32[i2 >> 2] | 0, i11, (HEAP32[i3 >> 2] | 0) + -1 | 0) | 0; 16244 } 16245 HEAP32[(HEAP32[i9 >> 2] | 0) + (i10 * 12 | 0) >> 2] = i11; 16246 if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) { 16247 i9 = 108; 16248 break; 16249 } 16250 i11 = HEAP32[i3 >> 2] | 0; 16251 if ((i11 | 0) < 0) { 16252 i9 = 110; 16253 break; 16254 } 16255 HEAP32[(HEAP32[i9 >> 2] | 0) + (i10 * 12 | 0) + 4 >> 2] = i11; 16256 if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) { 16257 i9 = 112; 16258 break; 16259 } 16260 i11 = HEAP32[i3 >> 2] | 0; 16261 if ((i11 | 0) < 0) { 16262 i9 = 114; 16263 break; 16264 } 16265 HEAP32[(HEAP32[i9 >> 2] | 0) + (i10 * 12 | 0) + 8 >> 2] = i11; 16266 i10 = i10 + 1 | 0; 16267 if ((i10 | 0) >= (i7 | 0)) { 16268 break L141; 16269 } 16270 } 16271 if ((i9 | 0) == 102) { 16272 _error(i2, 8824); 16273 } else if ((i9 | 0) == 105) { 16274 _error(i2, 8824); 16275 } else if ((i9 | 0) == 108) { 16276 _error(i2, 8824); 16277 } else if ((i9 | 0) == 110) { 16278 _error(i2, 8872); 16279 } else if ((i9 | 0) == 112) { 16280 _error(i2, 8824); 16281 } else if ((i9 | 0) == 114) { 16282 _error(i2, 8872); 16283 } 16284 } 16285 } while (0); 16286 if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i5, 4) | 0) != 0) { 16287 _error(i2, 8824); 16288 } 16289 i6 = HEAP32[i5 >> 2] | 0; 16290 if ((i6 | 0) < 0) { 16291 _error(i2, 8872); 16292 } 16293 if ((i6 | 0) <= 0) { 16294 STACKTOP = i1; 16295 return; 16296 } 16297 i5 = i2 + 8 | 0; 16298 i7 = 0; 16299 while (1) { 16300 if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) { 16301 i9 = 123; 16302 break; 16303 } 16304 i9 = HEAP32[i3 >> 2] | 0; 16305 if ((i9 | 0) == 0) { 16306 i9 = 0; 16307 } else { 16308 i9 = _luaZ_openspace(HEAP32[i2 >> 2] | 0, HEAP32[i5 >> 2] | 0, i9) | 0; 16309 if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i9, HEAP32[i3 >> 2] | 0) | 0) != 0) { 16310 i9 = 126; 16311 break; 16312 } 16313 i9 = _luaS_newlstr(HEAP32[i2 >> 2] | 0, i9, (HEAP32[i3 >> 2] | 0) + -1 | 0) | 0; 16314 } 16315 HEAP32[(HEAP32[i8 >> 2] | 0) + (i7 << 3) >> 2] = i9; 16316 i7 = i7 + 1 | 0; 16317 if ((i7 | 0) >= (i6 | 0)) { 16318 i9 = 129; 16319 break; 16320 } 16321 } 16322 if ((i9 | 0) == 123) { 16323 _error(i2, 8824); 16324 } else if ((i9 | 0) == 126) { 16325 _error(i2, 8824); 16326 } else if ((i9 | 0) == 129) { 16327 STACKTOP = i1; 16328 return; 16329 } 16330 } 16331 function _exp2reg(i4, i1, i7) { 16332 i4 = i4 | 0; 16333 i1 = i1 | 0; 16334 i7 = i7 | 0; 16335 var i2 = 0, i3 = 0, i5 = 0, i6 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0; 16336 i5 = STACKTOP; 16337 _discharge2reg(i4, i1, i7); 16338 i6 = i1 + 16 | 0; 16339 do { 16340 if ((HEAP32[i1 >> 2] | 0) == 10 ? (i10 = HEAP32[i1 + 8 >> 2] | 0, !((i10 | 0) == -1)) : 0) { 16341 i22 = HEAP32[i6 >> 2] | 0; 16342 if ((i22 | 0) == -1) { 16343 HEAP32[i6 >> 2] = i10; 16344 break; 16345 } 16346 i20 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0; 16347 while (1) { 16348 i19 = i20 + (i22 << 2) | 0; 16349 i21 = HEAP32[i19 >> 2] | 0; 16350 i23 = (i21 >>> 14) + -131071 | 0; 16351 if ((i23 | 0) == -1) { 16352 break; 16353 } 16354 i23 = i22 + 1 + i23 | 0; 16355 if ((i23 | 0) == -1) { 16356 break; 16357 } else { 16358 i22 = i23; 16359 } 16360 } 16361 i10 = i10 + ~i22 | 0; 16362 if ((((i10 | 0) > -1 ? i10 : 0 - i10 | 0) | 0) > 131071) { 16363 _luaX_syntaxerror(HEAP32[i4 + 12 >> 2] | 0, 10624); 16364 } else { 16365 HEAP32[i19 >> 2] = (i10 << 14) + 2147467264 | i21 & 16383; 16366 break; 16367 } 16368 } 16369 } while (0); 16370 i21 = HEAP32[i6 >> 2] | 0; 16371 i10 = i1 + 20 | 0; 16372 i19 = HEAP32[i10 >> 2] | 0; 16373 if ((i21 | 0) == (i19 | 0)) { 16374 HEAP32[i6 >> 2] = -1; 16375 HEAP32[i10 >> 2] = -1; 16376 i25 = i1 + 8 | 0; 16377 HEAP32[i25 >> 2] = i7; 16378 HEAP32[i1 >> 2] = 6; 16379 STACKTOP = i5; 16380 return; 16381 } 16382 L18 : do { 16383 if ((i21 | 0) == -1) { 16384 i18 = 20; 16385 } else { 16386 i20 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0; 16387 while (1) { 16388 i23 = i20 + (i21 << 2) | 0; 16389 if ((i21 | 0) > 0 ? (i18 = HEAP32[i20 + (i21 + -1 << 2) >> 2] | 0, (HEAP8[5584 + (i18 & 63) | 0] | 0) < 0) : 0) { 16390 i22 = i18; 16391 } else { 16392 i22 = HEAP32[i23 >> 2] | 0; 16393 } 16394 if ((i22 & 63 | 0) != 28) { 16395 i18 = 28; 16396 break L18; 16397 } 16398 i22 = ((HEAP32[i23 >> 2] | 0) >>> 14) + -131071 | 0; 16399 if ((i22 | 0) == -1) { 16400 i18 = 20; 16401 break L18; 16402 } 16403 i21 = i21 + 1 + i22 | 0; 16404 if ((i21 | 0) == -1) { 16405 i18 = 20; 16406 break; 16407 } 16408 } 16409 } 16410 } while (0); 16411 L29 : do { 16412 if ((i18 | 0) == 20) { 16413 if ((i19 | 0) == -1) { 16414 i15 = -1; 16415 i8 = -1; 16416 } else { 16417 i20 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0; 16418 while (1) { 16419 i21 = i20 + (i19 << 2) | 0; 16420 if ((i19 | 0) > 0 ? (i17 = HEAP32[i20 + (i19 + -1 << 2) >> 2] | 0, (HEAP8[5584 + (i17 & 63) | 0] | 0) < 0) : 0) { 16421 i22 = i17; 16422 } else { 16423 i22 = HEAP32[i21 >> 2] | 0; 16424 } 16425 if ((i22 & 63 | 0) != 28) { 16426 i18 = 28; 16427 break L29; 16428 } 16429 i21 = ((HEAP32[i21 >> 2] | 0) >>> 14) + -131071 | 0; 16430 if ((i21 | 0) == -1) { 16431 i15 = -1; 16432 i8 = -1; 16433 break L29; 16434 } 16435 i19 = i19 + 1 + i21 | 0; 16436 if ((i19 | 0) == -1) { 16437 i15 = -1; 16438 i8 = -1; 16439 break; 16440 } 16441 } 16442 } 16443 } 16444 } while (0); 16445 do { 16446 if ((i18 | 0) == 28) { 16447 i17 = i4 + 28 | 0; 16448 do { 16449 if ((HEAP32[i1 >> 2] | 0) != 10) { 16450 i21 = HEAP32[i17 >> 2] | 0; 16451 HEAP32[i17 >> 2] = -1; 16452 i18 = _luaK_code(i4, 2147450903) | 0; 16453 if (!((i21 | 0) == -1)) { 16454 if (!((i18 | 0) == -1)) { 16455 i23 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0; 16456 i22 = i18; 16457 while (1) { 16458 i20 = i23 + (i22 << 2) | 0; 16459 i19 = HEAP32[i20 >> 2] | 0; 16460 i24 = (i19 >>> 14) + -131071 | 0; 16461 if ((i24 | 0) == -1) { 16462 break; 16463 } 16464 i24 = i22 + 1 + i24 | 0; 16465 if ((i24 | 0) == -1) { 16466 break; 16467 } else { 16468 i22 = i24; 16469 } 16470 } 16471 i21 = i21 + ~i22 | 0; 16472 if ((((i21 | 0) > -1 ? i21 : 0 - i21 | 0) | 0) > 131071) { 16473 _luaX_syntaxerror(HEAP32[i4 + 12 >> 2] | 0, 10624); 16474 } else { 16475 HEAP32[i20 >> 2] = (i21 << 14) + 2147467264 | i19 & 16383; 16476 i16 = i18; 16477 break; 16478 } 16479 } else { 16480 i16 = i21; 16481 } 16482 } else { 16483 i16 = i18; 16484 } 16485 } else { 16486 i16 = -1; 16487 } 16488 } while (0); 16489 i24 = i4 + 20 | 0; 16490 i25 = i4 + 24 | 0; 16491 HEAP32[i25 >> 2] = HEAP32[i24 >> 2]; 16492 i19 = i7 << 6; 16493 i18 = _luaK_code(i4, i19 | 16387) | 0; 16494 HEAP32[i25 >> 2] = HEAP32[i24 >> 2]; 16495 i19 = _luaK_code(i4, i19 | 8388611) | 0; 16496 HEAP32[i25 >> 2] = HEAP32[i24 >> 2]; 16497 if (!((i16 | 0) == -1)) { 16498 i22 = HEAP32[i17 >> 2] | 0; 16499 if ((i22 | 0) == -1) { 16500 HEAP32[i17 >> 2] = i16; 16501 i15 = i18; 16502 i8 = i19; 16503 break; 16504 } 16505 i17 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0; 16506 while (1) { 16507 i21 = i17 + (i22 << 2) | 0; 16508 i20 = HEAP32[i21 >> 2] | 0; 16509 i23 = (i20 >>> 14) + -131071 | 0; 16510 if ((i23 | 0) == -1) { 16511 break; 16512 } 16513 i23 = i22 + 1 + i23 | 0; 16514 if ((i23 | 0) == -1) { 16515 break; 16516 } else { 16517 i22 = i23; 16518 } 16519 } 16520 i16 = i16 + ~i22 | 0; 16521 if ((((i16 | 0) > -1 ? i16 : 0 - i16 | 0) | 0) > 131071) { 16522 _luaX_syntaxerror(HEAP32[i4 + 12 >> 2] | 0, 10624); 16523 } else { 16524 HEAP32[i21 >> 2] = (i16 << 14) + 2147467264 | i20 & 16383; 16525 i15 = i18; 16526 i8 = i19; 16527 break; 16528 } 16529 } else { 16530 i15 = i18; 16531 i8 = i19; 16532 } 16533 } 16534 } while (0); 16535 i16 = HEAP32[i4 + 20 >> 2] | 0; 16536 HEAP32[i4 + 24 >> 2] = i16; 16537 i22 = HEAP32[i10 >> 2] | 0; 16538 L67 : do { 16539 if (!((i22 | 0) == -1)) { 16540 i19 = (i7 | 0) == 255; 16541 i17 = i7 << 6 & 16320; 16542 i18 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0; 16543 while (1) { 16544 i20 = i18 + (i22 << 2) | 0; 16545 i23 = HEAP32[i20 >> 2] | 0; 16546 i21 = (i23 >>> 14) + -131071 | 0; 16547 if ((i21 | 0) == -1) { 16548 i21 = -1; 16549 } else { 16550 i21 = i22 + 1 + i21 | 0; 16551 } 16552 if ((i22 | 0) > 0 ? (i14 = i18 + (i22 + -1 << 2) | 0, i13 = HEAP32[i14 >> 2] | 0, (HEAP8[5584 + (i13 & 63) | 0] | 0) < 0) : 0) { 16553 i24 = i14; 16554 i25 = i13; 16555 } else { 16556 i24 = i20; 16557 i25 = i23; 16558 } 16559 if ((i25 & 63 | 0) == 28) { 16560 i23 = i25 >>> 23; 16561 if (i19 | (i23 | 0) == (i7 | 0)) { 16562 i23 = i25 & 8372224 | i23 << 6 | 27; 16563 } else { 16564 i23 = i25 & -16321 | i17; 16565 } 16566 HEAP32[i24 >> 2] = i23; 16567 i22 = i16 + ~i22 | 0; 16568 if ((((i22 | 0) > -1 ? i22 : 0 - i22 | 0) | 0) > 131071) { 16569 i18 = 58; 16570 break; 16571 } 16572 i22 = HEAP32[i20 >> 2] & 16383 | (i22 << 14) + 2147467264; 16573 } else { 16574 i22 = i15 + ~i22 | 0; 16575 if ((((i22 | 0) > -1 ? i22 : 0 - i22 | 0) | 0) > 131071) { 16576 i18 = 61; 16577 break; 16578 } 16579 i22 = i23 & 16383 | (i22 << 14) + 2147467264; 16580 } 16581 HEAP32[i20 >> 2] = i22; 16582 if ((i21 | 0) == -1) { 16583 break L67; 16584 } else { 16585 i22 = i21; 16586 } 16587 } 16588 if ((i18 | 0) == 58) { 16589 _luaX_syntaxerror(HEAP32[i4 + 12 >> 2] | 0, 10624); 16590 } else if ((i18 | 0) == 61) { 16591 _luaX_syntaxerror(HEAP32[i4 + 12 >> 2] | 0, 10624); 16592 } 16593 } 16594 } while (0); 16595 i20 = HEAP32[i6 >> 2] | 0; 16596 if ((i20 | 0) == -1) { 16597 HEAP32[i6 >> 2] = -1; 16598 HEAP32[i10 >> 2] = -1; 16599 i25 = i1 + 8 | 0; 16600 HEAP32[i25 >> 2] = i7; 16601 HEAP32[i1 >> 2] = 6; 16602 STACKTOP = i5; 16603 return; 16604 } 16605 i13 = i7 << 6; 16606 i15 = i13 & 16320; 16607 i14 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0; 16608 if ((i7 | 0) == 255) { 16609 while (1) { 16610 i17 = i14 + (i20 << 2) | 0; 16611 i19 = HEAP32[i17 >> 2] | 0; 16612 i18 = (i19 >>> 14) + -131071 | 0; 16613 if ((i18 | 0) == -1) { 16614 i18 = -1; 16615 } else { 16616 i18 = i20 + 1 + i18 | 0; 16617 } 16618 if ((i20 | 0) > 0 ? (i12 = i14 + (i20 + -1 << 2) | 0, i11 = HEAP32[i12 >> 2] | 0, (HEAP8[5584 + (i11 & 63) | 0] | 0) < 0) : 0) { 16619 i22 = i12; 16620 i21 = i11; 16621 } else { 16622 i22 = i17; 16623 i21 = i19; 16624 } 16625 if ((i21 & 63 | 0) == 28) { 16626 HEAP32[i22 >> 2] = i21 & 8372224 | i21 >>> 23 << 6 | 27; 16627 i19 = i16 + ~i20 | 0; 16628 if ((((i19 | 0) > -1 ? i19 : 0 - i19 | 0) | 0) > 131071) { 16629 i18 = 87; 16630 break; 16631 } 16632 i19 = HEAP32[i17 >> 2] & 16383 | (i19 << 14) + 2147467264; 16633 } else { 16634 i20 = i8 + ~i20 | 0; 16635 if ((((i20 | 0) > -1 ? i20 : 0 - i20 | 0) | 0) > 131071) { 16636 i18 = 90; 16637 break; 16638 } 16639 i19 = i19 & 16383 | (i20 << 14) + 2147467264; 16640 } 16641 HEAP32[i17 >> 2] = i19; 16642 if ((i18 | 0) == -1) { 16643 i18 = 93; 16644 break; 16645 } else { 16646 i20 = i18; 16647 } 16648 } 16649 if ((i18 | 0) == 87) { 16650 i25 = i4 + 12 | 0; 16651 i25 = HEAP32[i25 >> 2] | 0; 16652 _luaX_syntaxerror(i25, 10624); 16653 } else if ((i18 | 0) == 90) { 16654 i25 = i4 + 12 | 0; 16655 i25 = HEAP32[i25 >> 2] | 0; 16656 _luaX_syntaxerror(i25, 10624); 16657 } else if ((i18 | 0) == 93) { 16658 HEAP32[i6 >> 2] = -1; 16659 HEAP32[i10 >> 2] = -1; 16660 i25 = i1 + 8 | 0; 16661 HEAP32[i25 >> 2] = i7; 16662 HEAP32[i1 >> 2] = 6; 16663 STACKTOP = i5; 16664 return; 16665 } 16666 } else { 16667 i9 = i20; 16668 } 16669 while (1) { 16670 i11 = i14 + (i9 << 2) | 0; 16671 i17 = HEAP32[i11 >> 2] | 0; 16672 i12 = (i17 >>> 14) + -131071 | 0; 16673 if ((i12 | 0) == -1) { 16674 i12 = -1; 16675 } else { 16676 i12 = i9 + 1 + i12 | 0; 16677 } 16678 if ((i9 | 0) > 0 ? (i3 = i14 + (i9 + -1 << 2) | 0, i2 = HEAP32[i3 >> 2] | 0, (HEAP8[5584 + (i2 & 63) | 0] | 0) < 0) : 0) { 16679 i18 = i3; 16680 i19 = i2; 16681 } else { 16682 i18 = i11; 16683 i19 = i17; 16684 } 16685 if ((i19 & 63 | 0) == 28) { 16686 if ((i19 >>> 23 | 0) == (i7 | 0)) { 16687 i17 = i19 & 8372224 | i13 | 27; 16688 } else { 16689 i17 = i19 & -16321 | i15; 16690 } 16691 HEAP32[i18 >> 2] = i17; 16692 i9 = i16 + ~i9 | 0; 16693 if ((((i9 | 0) > -1 ? i9 : 0 - i9 | 0) | 0) > 131071) { 16694 i18 = 87; 16695 break; 16696 } 16697 i9 = HEAP32[i11 >> 2] & 16383 | (i9 << 14) + 2147467264; 16698 } else { 16699 i9 = i8 + ~i9 | 0; 16700 if ((((i9 | 0) > -1 ? i9 : 0 - i9 | 0) | 0) > 131071) { 16701 i18 = 90; 16702 break; 16703 } 16704 i9 = i17 & 16383 | (i9 << 14) + 2147467264; 16705 } 16706 HEAP32[i11 >> 2] = i9; 16707 if ((i12 | 0) == -1) { 16708 i18 = 93; 16709 break; 16710 } else { 16711 i9 = i12; 16712 } 16713 } 16714 if ((i18 | 0) == 87) { 16715 i25 = i4 + 12 | 0; 16716 i25 = HEAP32[i25 >> 2] | 0; 16717 _luaX_syntaxerror(i25, 10624); 16718 } else if ((i18 | 0) == 90) { 16719 i25 = i4 + 12 | 0; 16720 i25 = HEAP32[i25 >> 2] | 0; 16721 _luaX_syntaxerror(i25, 10624); 16722 } else if ((i18 | 0) == 93) { 16723 HEAP32[i6 >> 2] = -1; 16724 HEAP32[i10 >> 2] = -1; 16725 i25 = i1 + 8 | 0; 16726 HEAP32[i25 >> 2] = i7; 16727 HEAP32[i1 >> 2] = 6; 16728 STACKTOP = i5; 16729 return; 16730 } 16731 } 16732 function _propagatemark(i2) { 16733 i2 = i2 | 0; 16734 var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0; 16735 i1 = STACKTOP; 16736 i15 = i2 + 84 | 0; 16737 i3 = HEAP32[i15 >> 2] | 0; 16738 i10 = i3 + 5 | 0; 16739 HEAP8[i10] = HEAPU8[i10] | 4; 16740 switch (HEAPU8[i3 + 4 | 0] | 0) { 16741 case 5: 16742 { 16743 i9 = i3 + 24 | 0; 16744 HEAP32[i15 >> 2] = HEAP32[i9 >> 2]; 16745 i15 = i3 + 8 | 0; 16746 i14 = HEAP32[i15 >> 2] | 0; 16747 do { 16748 if ((i14 | 0) != 0) { 16749 if ((HEAP8[i14 + 6 | 0] & 8) == 0) { 16750 i11 = _luaT_gettm(i14, 3, HEAP32[i2 + 196 >> 2] | 0) | 0; 16751 i14 = HEAP32[i15 >> 2] | 0; 16752 if ((i14 | 0) != 0) { 16753 i6 = 5; 16754 } 16755 } else { 16756 i11 = 0; 16757 i6 = 5; 16758 } 16759 if ((i6 | 0) == 5) { 16760 if (!((HEAP8[i14 + 5 | 0] & 3) == 0)) { 16761 _reallymarkobject(i2, i14); 16762 } 16763 } 16764 if (((i11 | 0) != 0 ? (HEAP32[i11 + 8 >> 2] & 15 | 0) == 4 : 0) ? (i13 = (HEAP32[i11 >> 2] | 0) + 16 | 0, i12 = _strchr(i13, 107) | 0, i12 = (i12 | 0) != 0, i13 = (_strchr(i13, 118) | 0) == 0, !(i13 & (i12 ^ 1))) : 0) { 16765 HEAP8[i10] = HEAP8[i10] & 251; 16766 if (i12) { 16767 if (i13) { 16768 _traverseephemeron(i2, i3) | 0; 16769 break; 16770 } else { 16771 i15 = i2 + 100 | 0; 16772 HEAP32[i9 >> 2] = HEAP32[i15 >> 2]; 16773 HEAP32[i15 >> 2] = i3; 16774 break; 16775 } 16776 } 16777 i15 = 1 << HEAPU8[i3 + 7 | 0]; 16778 i5 = HEAP32[i3 + 16 >> 2] | 0; 16779 i4 = i5 + (i15 << 5) | 0; 16780 i8 = (HEAP32[i3 + 28 >> 2] | 0) > 0 | 0; 16781 if ((i15 | 0) > 0) { 16782 do { 16783 i12 = i5 + 8 | 0; 16784 i10 = i5 + 24 | 0; 16785 i11 = (HEAP32[i10 >> 2] & 64 | 0) == 0; 16786 do { 16787 if ((HEAP32[i12 >> 2] | 0) == 0) { 16788 if (!i11 ? !((HEAP8[(HEAP32[i5 + 16 >> 2] | 0) + 5 | 0] & 3) == 0) : 0) { 16789 HEAP32[i10 >> 2] = 11; 16790 } 16791 } else { 16792 if (!i11 ? (i7 = HEAP32[i5 + 16 >> 2] | 0, !((HEAP8[i7 + 5 | 0] & 3) == 0)) : 0) { 16793 _reallymarkobject(i2, i7); 16794 } 16795 if ((i8 | 0) == 0) { 16796 i10 = HEAP32[i12 >> 2] | 0; 16797 if ((i10 & 64 | 0) != 0) { 16798 i8 = HEAP32[i5 >> 2] | 0; 16799 if ((i10 & 15 | 0) != 4) { 16800 i8 = (HEAP8[i8 + 5 | 0] & 3) != 0 | 0; 16801 break; 16802 } 16803 if ((i8 | 0) != 0 ? !((HEAP8[i8 + 5 | 0] & 3) == 0) : 0) { 16804 _reallymarkobject(i2, i8); 16805 i8 = 0; 16806 } else { 16807 i8 = 0; 16808 } 16809 } else { 16810 i8 = 0; 16811 } 16812 } 16813 } 16814 } while (0); 16815 i5 = i5 + 32 | 0; 16816 } while (i5 >>> 0 < i4 >>> 0); 16817 } 16818 if ((i8 | 0) == 0) { 16819 i15 = i2 + 88 | 0; 16820 HEAP32[i9 >> 2] = HEAP32[i15 >> 2]; 16821 HEAP32[i15 >> 2] = i3; 16822 break; 16823 } else { 16824 i15 = i2 + 92 | 0; 16825 HEAP32[i9 >> 2] = HEAP32[i15 >> 2]; 16826 HEAP32[i15 >> 2] = i3; 16827 break; 16828 } 16829 } else { 16830 i6 = 33; 16831 } 16832 } else { 16833 i6 = 33; 16834 } 16835 } while (0); 16836 if ((i6 | 0) == 33) { 16837 i7 = i3 + 16 | 0; 16838 i10 = HEAP32[i7 >> 2] | 0; 16839 i6 = i10 + (1 << HEAPU8[i3 + 7 | 0] << 5) | 0; 16840 i9 = i3 + 28 | 0; 16841 i13 = HEAP32[i9 >> 2] | 0; 16842 if ((i13 | 0) > 0) { 16843 i10 = i3 + 12 | 0; 16844 i11 = 0; 16845 do { 16846 i12 = HEAP32[i10 >> 2] | 0; 16847 if ((HEAP32[i12 + (i11 << 4) + 8 >> 2] & 64 | 0) != 0 ? (i8 = HEAP32[i12 + (i11 << 4) >> 2] | 0, !((HEAP8[i8 + 5 | 0] & 3) == 0)) : 0) { 16848 _reallymarkobject(i2, i8); 16849 i13 = HEAP32[i9 >> 2] | 0; 16850 } 16851 i11 = i11 + 1 | 0; 16852 } while ((i11 | 0) < (i13 | 0)); 16853 i7 = HEAP32[i7 >> 2] | 0; 16854 } else { 16855 i7 = i10; 16856 } 16857 if (i7 >>> 0 < i6 >>> 0) { 16858 do { 16859 i10 = i7 + 8 | 0; 16860 i11 = HEAP32[i10 >> 2] | 0; 16861 i9 = i7 + 24 | 0; 16862 i8 = (HEAP32[i9 >> 2] & 64 | 0) == 0; 16863 if ((i11 | 0) == 0) { 16864 if (!i8 ? !((HEAP8[(HEAP32[i7 + 16 >> 2] | 0) + 5 | 0] & 3) == 0) : 0) { 16865 HEAP32[i9 >> 2] = 11; 16866 } 16867 } else { 16868 if (!i8 ? (i5 = HEAP32[i7 + 16 >> 2] | 0, !((HEAP8[i5 + 5 | 0] & 3) == 0)) : 0) { 16869 _reallymarkobject(i2, i5); 16870 i11 = HEAP32[i10 >> 2] | 0; 16871 } 16872 if ((i11 & 64 | 0) != 0 ? (i4 = HEAP32[i7 >> 2] | 0, !((HEAP8[i4 + 5 | 0] & 3) == 0)) : 0) { 16873 _reallymarkobject(i2, i4); 16874 } 16875 } 16876 i7 = i7 + 32 | 0; 16877 } while (i7 >>> 0 < i6 >>> 0); 16878 } 16879 } 16880 i3 = (HEAP32[i3 + 28 >> 2] << 4) + 32 + (32 << HEAPU8[i3 + 7 | 0]) | 0; 16881 break; 16882 } 16883 case 8: 16884 { 16885 i7 = i3 + 60 | 0; 16886 HEAP32[i15 >> 2] = HEAP32[i7 >> 2]; 16887 i4 = i2 + 88 | 0; 16888 HEAP32[i7 >> 2] = HEAP32[i4 >> 2]; 16889 HEAP32[i4 >> 2] = i3; 16890 HEAP8[i10] = HEAP8[i10] & 251; 16891 i4 = i3 + 28 | 0; 16892 i7 = HEAP32[i4 >> 2] | 0; 16893 if ((i7 | 0) == 0) { 16894 i3 = 1; 16895 } else { 16896 i5 = i3 + 8 | 0; 16897 i6 = HEAP32[i5 >> 2] | 0; 16898 if (i7 >>> 0 < i6 >>> 0) { 16899 do { 16900 if ((HEAP32[i7 + 8 >> 2] & 64 | 0) != 0 ? (i11 = HEAP32[i7 >> 2] | 0, !((HEAP8[i11 + 5 | 0] & 3) == 0)) : 0) { 16901 _reallymarkobject(i2, i11); 16902 i6 = HEAP32[i5 >> 2] | 0; 16903 } 16904 i7 = i7 + 16 | 0; 16905 } while (i7 >>> 0 < i6 >>> 0); 16906 } 16907 if ((HEAP8[i2 + 61 | 0] | 0) == 1) { 16908 i3 = i3 + 32 | 0; 16909 i4 = (HEAP32[i4 >> 2] | 0) + (HEAP32[i3 >> 2] << 4) | 0; 16910 if (i7 >>> 0 < i4 >>> 0) { 16911 do { 16912 HEAP32[i7 + 8 >> 2] = 0; 16913 i7 = i7 + 16 | 0; 16914 } while (i7 >>> 0 < i4 >>> 0); 16915 } 16916 } else { 16917 i3 = i3 + 32 | 0; 16918 } 16919 i3 = (HEAP32[i3 >> 2] << 4) + 112 | 0; 16920 } 16921 break; 16922 } 16923 case 9: 16924 { 16925 HEAP32[i15 >> 2] = HEAP32[i3 + 72 >> 2]; 16926 i5 = i3 + 32 | 0; 16927 i4 = HEAP32[i5 >> 2] | 0; 16928 if ((i4 | 0) != 0 ? !((HEAP8[i4 + 5 | 0] & 3) == 0) : 0) { 16929 HEAP32[i5 >> 2] = 0; 16930 } 16931 i4 = HEAP32[i3 + 36 >> 2] | 0; 16932 if ((i4 | 0) != 0 ? !((HEAP8[i4 + 5 | 0] & 3) == 0) : 0) { 16933 _reallymarkobject(i2, i4); 16934 } 16935 i4 = i3 + 44 | 0; 16936 i8 = HEAP32[i4 >> 2] | 0; 16937 if ((i8 | 0) > 0) { 16938 i5 = i3 + 8 | 0; 16939 i6 = 0; 16940 do { 16941 i7 = HEAP32[i5 >> 2] | 0; 16942 if ((HEAP32[i7 + (i6 << 4) + 8 >> 2] & 64 | 0) != 0 ? (i9 = HEAP32[i7 + (i6 << 4) >> 2] | 0, !((HEAP8[i9 + 5 | 0] & 3) == 0)) : 0) { 16943 _reallymarkobject(i2, i9); 16944 i8 = HEAP32[i4 >> 2] | 0; 16945 } 16946 i6 = i6 + 1 | 0; 16947 } while ((i6 | 0) < (i8 | 0)); 16948 } 16949 i5 = i3 + 40 | 0; 16950 i8 = HEAP32[i5 >> 2] | 0; 16951 if ((i8 | 0) > 0) { 16952 i6 = i3 + 28 | 0; 16953 i7 = 0; 16954 do { 16955 i9 = HEAP32[(HEAP32[i6 >> 2] | 0) + (i7 << 3) >> 2] | 0; 16956 if ((i9 | 0) != 0 ? !((HEAP8[i9 + 5 | 0] & 3) == 0) : 0) { 16957 _reallymarkobject(i2, i9); 16958 i8 = HEAP32[i5 >> 2] | 0; 16959 } 16960 i7 = i7 + 1 | 0; 16961 } while ((i7 | 0) < (i8 | 0)); 16962 } 16963 i6 = i3 + 56 | 0; 16964 i8 = HEAP32[i6 >> 2] | 0; 16965 if ((i8 | 0) > 0) { 16966 i7 = i3 + 16 | 0; 16967 i9 = 0; 16968 do { 16969 i10 = HEAP32[(HEAP32[i7 >> 2] | 0) + (i9 << 2) >> 2] | 0; 16970 if ((i10 | 0) != 0 ? !((HEAP8[i10 + 5 | 0] & 3) == 0) : 0) { 16971 _reallymarkobject(i2, i10); 16972 i8 = HEAP32[i6 >> 2] | 0; 16973 } 16974 i9 = i9 + 1 | 0; 16975 } while ((i9 | 0) < (i8 | 0)); 16976 } 16977 i7 = i3 + 60 | 0; 16978 i11 = HEAP32[i7 >> 2] | 0; 16979 if ((i11 | 0) > 0) { 16980 i8 = i3 + 24 | 0; 16981 i9 = 0; 16982 do { 16983 i10 = HEAP32[(HEAP32[i8 >> 2] | 0) + (i9 * 12 | 0) >> 2] | 0; 16984 if ((i10 | 0) != 0 ? !((HEAP8[i10 + 5 | 0] & 3) == 0) : 0) { 16985 _reallymarkobject(i2, i10); 16986 i11 = HEAP32[i7 >> 2] | 0; 16987 } 16988 i9 = i9 + 1 | 0; 16989 } while ((i9 | 0) < (i11 | 0)); 16990 i8 = HEAP32[i6 >> 2] | 0; 16991 } 16992 i3 = (i11 * 12 | 0) + 80 + (HEAP32[i4 >> 2] << 4) + (HEAP32[i5 >> 2] << 3) + ((HEAP32[i3 + 48 >> 2] | 0) + i8 + (HEAP32[i3 + 52 >> 2] | 0) << 2) | 0; 16993 break; 16994 } 16995 case 38: 16996 { 16997 HEAP32[i15 >> 2] = HEAP32[i3 + 8 >> 2]; 16998 i4 = i3 + 6 | 0; 16999 i5 = HEAP8[i4] | 0; 17000 if (i5 << 24 >> 24 == 0) { 17001 i7 = i5 & 255; 17002 } else { 17003 i6 = 0; 17004 do { 17005 if ((HEAP32[i3 + (i6 << 4) + 24 >> 2] & 64 | 0) != 0 ? (i14 = HEAP32[i3 + (i6 << 4) + 16 >> 2] | 0, !((HEAP8[i14 + 5 | 0] & 3) == 0)) : 0) { 17006 _reallymarkobject(i2, i14); 17007 i5 = HEAP8[i4] | 0; 17008 } 17009 i6 = i6 + 1 | 0; 17010 i7 = i5 & 255; 17011 } while ((i6 | 0) < (i7 | 0)); 17012 } 17013 i3 = (i7 << 4) + 16 | 0; 17014 break; 17015 } 17016 case 6: 17017 { 17018 HEAP32[i15 >> 2] = HEAP32[i3 + 8 >> 2]; 17019 i4 = HEAP32[i3 + 12 >> 2] | 0; 17020 if ((i4 | 0) != 0 ? !((HEAP8[i4 + 5 | 0] & 3) == 0) : 0) { 17021 _reallymarkobject(i2, i4); 17022 } 17023 i4 = i3 + 6 | 0; 17024 i6 = HEAP8[i4] | 0; 17025 if (i6 << 24 >> 24 == 0) { 17026 i7 = i6 & 255; 17027 } else { 17028 i5 = 0; 17029 do { 17030 i7 = HEAP32[i3 + (i5 << 2) + 16 >> 2] | 0; 17031 if ((i7 | 0) != 0 ? !((HEAP8[i7 + 5 | 0] & 3) == 0) : 0) { 17032 _reallymarkobject(i2, i7); 17033 i6 = HEAP8[i4] | 0; 17034 } 17035 i5 = i5 + 1 | 0; 17036 i7 = i6 & 255; 17037 } while ((i5 | 0) < (i7 | 0)); 17038 } 17039 i3 = (i7 << 2) + 16 | 0; 17040 break; 17041 } 17042 default: 17043 { 17044 STACKTOP = i1; 17045 return; 17046 } 17047 } 17048 i15 = i2 + 16 | 0; 17049 HEAP32[i15 >> 2] = (HEAP32[i15 >> 2] | 0) + i3; 17050 STACKTOP = i1; 17051 return; 17052 } 17053 function _strstr(i8, i4) { 17054 i8 = i8 | 0; 17055 i4 = i4 | 0; 17056 var i1 = 0, i2 = 0, i3 = 0, i5 = 0, i6 = 0, i7 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0; 17057 i1 = STACKTOP; 17058 STACKTOP = STACKTOP + 1056 | 0; 17059 i6 = i1 + 1024 | 0; 17060 i2 = i1; 17061 i10 = HEAP8[i4] | 0; 17062 if (i10 << 24 >> 24 == 0) { 17063 i20 = i8; 17064 STACKTOP = i1; 17065 return i20 | 0; 17066 } 17067 i8 = _strchr(i8, i10 << 24 >> 24) | 0; 17068 if ((i8 | 0) == 0) { 17069 i20 = 0; 17070 STACKTOP = i1; 17071 return i20 | 0; 17072 } 17073 i13 = HEAP8[i4 + 1 | 0] | 0; 17074 if (i13 << 24 >> 24 == 0) { 17075 i20 = i8; 17076 STACKTOP = i1; 17077 return i20 | 0; 17078 } 17079 i11 = i8 + 1 | 0; 17080 i9 = HEAP8[i11] | 0; 17081 if (i9 << 24 >> 24 == 0) { 17082 i20 = 0; 17083 STACKTOP = i1; 17084 return i20 | 0; 17085 } 17086 i15 = HEAP8[i4 + 2 | 0] | 0; 17087 if (i15 << 24 >> 24 == 0) { 17088 i2 = i13 & 255 | (i10 & 255) << 8; 17089 i3 = i9; 17090 i4 = HEAPU8[i8] << 8 | i9 & 255; 17091 while (1) { 17092 i5 = i4 & 65535; 17093 if ((i5 | 0) == (i2 | 0)) { 17094 break; 17095 } 17096 i11 = i11 + 1 | 0; 17097 i4 = HEAP8[i11] | 0; 17098 if (i4 << 24 >> 24 == 0) { 17099 i3 = 0; 17100 break; 17101 } else { 17102 i3 = i4; 17103 i4 = i4 & 255 | i5 << 8; 17104 } 17105 } 17106 i20 = i3 << 24 >> 24 == 0 ? 0 : i11 + -1 | 0; 17107 STACKTOP = i1; 17108 return i20 | 0; 17109 } 17110 i16 = i8 + 2 | 0; 17111 i11 = HEAP8[i16] | 0; 17112 if (i11 << 24 >> 24 == 0) { 17113 i20 = 0; 17114 STACKTOP = i1; 17115 return i20 | 0; 17116 } 17117 i18 = HEAP8[i4 + 3 | 0] | 0; 17118 if (i18 << 24 >> 24 == 0) { 17119 i2 = (i13 & 255) << 16 | (i10 & 255) << 24 | (i15 & 255) << 8; 17120 i4 = (i11 & 255) << 8 | (i9 & 255) << 16 | HEAPU8[i8] << 24; 17121 if ((i4 | 0) == (i2 | 0)) { 17122 i3 = 0; 17123 } else { 17124 do { 17125 i16 = i16 + 1 | 0; 17126 i3 = HEAP8[i16] | 0; 17127 i4 = (i3 & 255 | i4) << 8; 17128 i3 = i3 << 24 >> 24 == 0; 17129 } while (!(i3 | (i4 | 0) == (i2 | 0))); 17130 } 17131 i20 = i3 ? 0 : i16 + -2 | 0; 17132 STACKTOP = i1; 17133 return i20 | 0; 17134 } 17135 i16 = i8 + 3 | 0; 17136 i17 = HEAP8[i16] | 0; 17137 if (i17 << 24 >> 24 == 0) { 17138 i20 = 0; 17139 STACKTOP = i1; 17140 return i20 | 0; 17141 } 17142 if ((HEAP8[i4 + 4 | 0] | 0) == 0) { 17143 i2 = (i13 & 255) << 16 | (i10 & 255) << 24 | (i15 & 255) << 8 | i18 & 255; 17144 i3 = (i11 & 255) << 8 | (i9 & 255) << 16 | i17 & 255 | HEAPU8[i8] << 24; 17145 if ((i3 | 0) == (i2 | 0)) { 17146 i4 = 0; 17147 } else { 17148 do { 17149 i16 = i16 + 1 | 0; 17150 i4 = HEAP8[i16] | 0; 17151 i3 = i4 & 255 | i3 << 8; 17152 i4 = i4 << 24 >> 24 == 0; 17153 } while (!(i4 | (i3 | 0) == (i2 | 0))); 17154 } 17155 i20 = i4 ? 0 : i16 + -3 | 0; 17156 STACKTOP = i1; 17157 return i20 | 0; 17158 } 17159 HEAP32[i6 + 0 >> 2] = 0; 17160 HEAP32[i6 + 4 >> 2] = 0; 17161 HEAP32[i6 + 8 >> 2] = 0; 17162 HEAP32[i6 + 12 >> 2] = 0; 17163 HEAP32[i6 + 16 >> 2] = 0; 17164 HEAP32[i6 + 20 >> 2] = 0; 17165 HEAP32[i6 + 24 >> 2] = 0; 17166 HEAP32[i6 + 28 >> 2] = 0; 17167 i9 = 0; 17168 while (1) { 17169 if ((HEAP8[i8 + i9 | 0] | 0) == 0) { 17170 i14 = 0; 17171 i12 = 80; 17172 break; 17173 } 17174 i20 = i10 & 255; 17175 i3 = i6 + (i20 >>> 5 << 2) | 0; 17176 HEAP32[i3 >> 2] = HEAP32[i3 >> 2] | 1 << (i20 & 31); 17177 i3 = i9 + 1 | 0; 17178 HEAP32[i2 + (i20 << 2) >> 2] = i3; 17179 i10 = HEAP8[i4 + i3 | 0] | 0; 17180 if (i10 << 24 >> 24 == 0) { 17181 break; 17182 } else { 17183 i9 = i3; 17184 } 17185 } 17186 if ((i12 | 0) == 80) { 17187 STACKTOP = i1; 17188 return i14 | 0; 17189 } 17190 L49 : do { 17191 if (i3 >>> 0 > 1) { 17192 i14 = 1; 17193 i11 = -1; 17194 i12 = 0; 17195 L50 : while (1) { 17196 i10 = 1; 17197 while (1) { 17198 i13 = i14; 17199 L54 : while (1) { 17200 i14 = 1; 17201 while (1) { 17202 i15 = HEAP8[i4 + (i14 + i11) | 0] | 0; 17203 i16 = HEAP8[i4 + i13 | 0] | 0; 17204 if (!(i15 << 24 >> 24 == i16 << 24 >> 24)) { 17205 break L54; 17206 } 17207 i15 = i14 + 1 | 0; 17208 if ((i14 | 0) == (i10 | 0)) { 17209 break; 17210 } 17211 i13 = i15 + i12 | 0; 17212 if (i13 >>> 0 < i3 >>> 0) { 17213 i14 = i15; 17214 } else { 17215 break L50; 17216 } 17217 } 17218 i12 = i12 + i10 | 0; 17219 i13 = i12 + 1 | 0; 17220 if (!(i13 >>> 0 < i3 >>> 0)) { 17221 break L50; 17222 } 17223 } 17224 i10 = i13 - i11 | 0; 17225 if (!((i15 & 255) > (i16 & 255))) { 17226 break; 17227 } 17228 i14 = i13 + 1 | 0; 17229 if (i14 >>> 0 < i3 >>> 0) { 17230 i12 = i13; 17231 } else { 17232 break L50; 17233 } 17234 } 17235 i14 = i12 + 2 | 0; 17236 if (i14 >>> 0 < i3 >>> 0) { 17237 i11 = i12; 17238 i12 = i12 + 1 | 0; 17239 } else { 17240 i11 = i12; 17241 i10 = 1; 17242 break; 17243 } 17244 } 17245 i16 = 1; 17246 i12 = -1; 17247 i14 = 0; 17248 while (1) { 17249 i13 = 1; 17250 while (1) { 17251 i15 = i16; 17252 L69 : while (1) { 17253 i18 = 1; 17254 while (1) { 17255 i17 = HEAP8[i4 + (i18 + i12) | 0] | 0; 17256 i16 = HEAP8[i4 + i15 | 0] | 0; 17257 if (!(i17 << 24 >> 24 == i16 << 24 >> 24)) { 17258 break L69; 17259 } 17260 i16 = i18 + 1 | 0; 17261 if ((i18 | 0) == (i13 | 0)) { 17262 break; 17263 } 17264 i15 = i16 + i14 | 0; 17265 if (i15 >>> 0 < i3 >>> 0) { 17266 i18 = i16; 17267 } else { 17268 i14 = i12; 17269 break L49; 17270 } 17271 } 17272 i14 = i14 + i13 | 0; 17273 i15 = i14 + 1 | 0; 17274 if (!(i15 >>> 0 < i3 >>> 0)) { 17275 i14 = i12; 17276 break L49; 17277 } 17278 } 17279 i13 = i15 - i12 | 0; 17280 if (!((i17 & 255) < (i16 & 255))) { 17281 break; 17282 } 17283 i16 = i15 + 1 | 0; 17284 if (i16 >>> 0 < i3 >>> 0) { 17285 i14 = i15; 17286 } else { 17287 i14 = i12; 17288 break L49; 17289 } 17290 } 17291 i16 = i14 + 2 | 0; 17292 if (i16 >>> 0 < i3 >>> 0) { 17293 i12 = i14; 17294 i14 = i14 + 1 | 0; 17295 } else { 17296 i13 = 1; 17297 break; 17298 } 17299 } 17300 } else { 17301 i11 = -1; 17302 i14 = -1; 17303 i10 = 1; 17304 i13 = 1; 17305 } 17306 } while (0); 17307 i15 = (i14 + 1 | 0) >>> 0 > (i11 + 1 | 0) >>> 0; 17308 i12 = i15 ? i13 : i10; 17309 i11 = i15 ? i14 : i11; 17310 i10 = i11 + 1 | 0; 17311 if ((_memcmp(i4, i4 + i12 | 0, i10) | 0) == 0) { 17312 i15 = i3 - i12 | 0; 17313 i16 = i3 | 63; 17314 if ((i3 | 0) != (i12 | 0)) { 17315 i14 = i8; 17316 i13 = 0; 17317 i17 = i8; 17318 L82 : while (1) { 17319 i18 = i14; 17320 do { 17321 if ((i17 - i18 | 0) >>> 0 < i3 >>> 0) { 17322 i19 = _memchr(i17, 0, i16) | 0; 17323 if ((i19 | 0) != 0) { 17324 if ((i19 - i18 | 0) >>> 0 < i3 >>> 0) { 17325 i14 = 0; 17326 i12 = 80; 17327 break L82; 17328 } else { 17329 i17 = i19; 17330 break; 17331 } 17332 } else { 17333 i17 = i17 + i16 | 0; 17334 break; 17335 } 17336 } 17337 } while (0); 17338 i18 = HEAPU8[i14 + i9 | 0] | 0; 17339 if ((1 << (i18 & 31) & HEAP32[i6 + (i18 >>> 5 << 2) >> 2] | 0) == 0) { 17340 i14 = i14 + i3 | 0; 17341 i13 = 0; 17342 continue; 17343 } 17344 i20 = HEAP32[i2 + (i18 << 2) >> 2] | 0; 17345 i18 = i3 - i20 | 0; 17346 if ((i3 | 0) != (i20 | 0)) { 17347 i14 = i14 + ((i13 | 0) != 0 & i18 >>> 0 < i12 >>> 0 ? i15 : i18) | 0; 17348 i13 = 0; 17349 continue; 17350 } 17351 i20 = i10 >>> 0 > i13 >>> 0 ? i10 : i13; 17352 i18 = HEAP8[i4 + i20 | 0] | 0; 17353 L96 : do { 17354 if (i18 << 24 >> 24 == 0) { 17355 i19 = i10; 17356 } else { 17357 while (1) { 17358 i19 = i20 + 1 | 0; 17359 if (!(i18 << 24 >> 24 == (HEAP8[i14 + i20 | 0] | 0))) { 17360 break; 17361 } 17362 i18 = HEAP8[i4 + i19 | 0] | 0; 17363 if (i18 << 24 >> 24 == 0) { 17364 i19 = i10; 17365 break L96; 17366 } else { 17367 i20 = i19; 17368 } 17369 } 17370 i14 = i14 + (i20 - i11) | 0; 17371 i13 = 0; 17372 continue L82; 17373 } 17374 } while (0); 17375 while (1) { 17376 if (!(i19 >>> 0 > i13 >>> 0)) { 17377 break; 17378 } 17379 i18 = i19 + -1 | 0; 17380 if ((HEAP8[i4 + i18 | 0] | 0) == (HEAP8[i14 + i18 | 0] | 0)) { 17381 i19 = i18; 17382 } else { 17383 break; 17384 } 17385 } 17386 if ((i19 | 0) == (i13 | 0)) { 17387 i12 = 80; 17388 break; 17389 } 17390 i14 = i14 + i12 | 0; 17391 i13 = i15; 17392 } 17393 if ((i12 | 0) == 80) { 17394 STACKTOP = i1; 17395 return i14 | 0; 17396 } 17397 } else { 17398 i5 = i16; 17399 i7 = i3; 17400 } 17401 } else { 17402 i7 = i3 - i11 + -1 | 0; 17403 i5 = i3 | 63; 17404 i7 = (i11 >>> 0 > i7 >>> 0 ? i11 : i7) + 1 | 0; 17405 } 17406 i12 = i4 + i10 | 0; 17407 i14 = i8; 17408 L111 : while (1) { 17409 i13 = i14; 17410 do { 17411 if ((i8 - i13 | 0) >>> 0 < i3 >>> 0) { 17412 i15 = _memchr(i8, 0, i5) | 0; 17413 if ((i15 | 0) != 0) { 17414 if ((i15 - i13 | 0) >>> 0 < i3 >>> 0) { 17415 i14 = 0; 17416 i12 = 80; 17417 break L111; 17418 } else { 17419 i8 = i15; 17420 break; 17421 } 17422 } else { 17423 i8 = i8 + i5 | 0; 17424 break; 17425 } 17426 } 17427 } while (0); 17428 i13 = HEAPU8[i14 + i9 | 0] | 0; 17429 if ((1 << (i13 & 31) & HEAP32[i6 + (i13 >>> 5 << 2) >> 2] | 0) == 0) { 17430 i14 = i14 + i3 | 0; 17431 continue; 17432 } 17433 i13 = HEAP32[i2 + (i13 << 2) >> 2] | 0; 17434 if ((i3 | 0) != (i13 | 0)) { 17435 i14 = i14 + (i3 - i13) | 0; 17436 continue; 17437 } 17438 i15 = HEAP8[i12] | 0; 17439 L125 : do { 17440 if (i15 << 24 >> 24 == 0) { 17441 i13 = i10; 17442 } else { 17443 i16 = i10; 17444 while (1) { 17445 i13 = i16 + 1 | 0; 17446 if (!(i15 << 24 >> 24 == (HEAP8[i14 + i16 | 0] | 0))) { 17447 break; 17448 } 17449 i15 = HEAP8[i4 + i13 | 0] | 0; 17450 if (i15 << 24 >> 24 == 0) { 17451 i13 = i10; 17452 break L125; 17453 } else { 17454 i16 = i13; 17455 } 17456 } 17457 i14 = i14 + (i16 - i11) | 0; 17458 continue L111; 17459 } 17460 } while (0); 17461 do { 17462 if ((i13 | 0) == 0) { 17463 i12 = 80; 17464 break L111; 17465 } 17466 i13 = i13 + -1 | 0; 17467 } while ((HEAP8[i4 + i13 | 0] | 0) == (HEAP8[i14 + i13 | 0] | 0)); 17468 i14 = i14 + i7 | 0; 17469 } 17470 if ((i12 | 0) == 80) { 17471 STACKTOP = i1; 17472 return i14 | 0; 17473 } 17474 return 0; 17475 } 17476 function _str_format(i2) { 17477 i2 = i2 | 0; 17478 var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, d21 = 0.0, i22 = 0; 17479 i12 = STACKTOP; 17480 STACKTOP = STACKTOP + 1104 | 0; 17481 i4 = i12; 17482 i7 = i12 + 1060 | 0; 17483 i9 = i12 + 1082 | 0; 17484 i20 = i12 + 1056 | 0; 17485 i10 = i12 + 16 | 0; 17486 i5 = i12 + 1064 | 0; 17487 i6 = i12 + 8 | 0; 17488 i8 = _lua_gettop(i2) | 0; 17489 i16 = _luaL_checklstring(i2, 1, i20) | 0; 17490 i20 = HEAP32[i20 >> 2] | 0; 17491 i3 = i16 + i20 | 0; 17492 _luaL_buffinit(i2, i10); 17493 L1 : do { 17494 if ((i20 | 0) > 0) { 17495 i1 = i10 + 8 | 0; 17496 i13 = i10 + 4 | 0; 17497 i14 = i5 + 1 | 0; 17498 i19 = 1; 17499 L3 : while (1) { 17500 while (1) { 17501 i15 = HEAP8[i16] | 0; 17502 if (i15 << 24 >> 24 == 37) { 17503 i18 = i16 + 1 | 0; 17504 if ((HEAP8[i18] | 0) != 37) { 17505 break; 17506 } 17507 i15 = HEAP32[i1 >> 2] | 0; 17508 if (i15 >>> 0 < (HEAP32[i13 >> 2] | 0) >>> 0) { 17509 i17 = 37; 17510 } else { 17511 _luaL_prepbuffsize(i10, 1) | 0; 17512 i15 = HEAP32[i1 >> 2] | 0; 17513 i17 = HEAP8[i18] | 0; 17514 } 17515 HEAP32[i1 >> 2] = i15 + 1; 17516 HEAP8[(HEAP32[i10 >> 2] | 0) + i15 | 0] = i17; 17517 i16 = i16 + 2 | 0; 17518 } else { 17519 i17 = HEAP32[i1 >> 2] | 0; 17520 if (!(i17 >>> 0 < (HEAP32[i13 >> 2] | 0) >>> 0)) { 17521 _luaL_prepbuffsize(i10, 1) | 0; 17522 i17 = HEAP32[i1 >> 2] | 0; 17523 i15 = HEAP8[i16] | 0; 17524 } 17525 HEAP32[i1 >> 2] = i17 + 1; 17526 HEAP8[(HEAP32[i10 >> 2] | 0) + i17 | 0] = i15; 17527 i16 = i16 + 1 | 0; 17528 } 17529 if (!(i16 >>> 0 < i3 >>> 0)) { 17530 break L1; 17531 } 17532 } 17533 i17 = _luaL_prepbuffsize(i10, 512) | 0; 17534 i15 = i19 + 1 | 0; 17535 if ((i19 | 0) >= (i8 | 0)) { 17536 _luaL_argerror(i2, i15, 7648) | 0; 17537 } 17538 i19 = HEAP8[i18] | 0; 17539 L22 : do { 17540 if (i19 << 24 >> 24 == 0) { 17541 i19 = 0; 17542 i20 = i18; 17543 } else { 17544 i20 = i18; 17545 while (1) { 17546 i16 = i20 + 1 | 0; 17547 if ((_memchr(7800, i19 << 24 >> 24, 6) | 0) == 0) { 17548 break L22; 17549 } 17550 i19 = HEAP8[i16] | 0; 17551 if (i19 << 24 >> 24 == 0) { 17552 i19 = 0; 17553 i20 = i16; 17554 break; 17555 } else { 17556 i20 = i16; 17557 } 17558 } 17559 } 17560 } while (0); 17561 i16 = i18; 17562 if ((i20 - i16 | 0) >>> 0 > 5) { 17563 _luaL_error(i2, 7808, i4) | 0; 17564 i19 = HEAP8[i20] | 0; 17565 } 17566 i19 = ((i19 & 255) + -48 | 0) >>> 0 < 10 ? i20 + 1 | 0 : i20; 17567 i19 = ((HEAPU8[i19] | 0) + -48 | 0) >>> 0 < 10 ? i19 + 1 | 0 : i19; 17568 i20 = HEAP8[i19] | 0; 17569 if (i20 << 24 >> 24 == 46) { 17570 i20 = i19 + 1 | 0; 17571 i19 = ((HEAPU8[i20] | 0) + -48 | 0) >>> 0 < 10 ? i19 + 2 | 0 : i20; 17572 i19 = ((HEAPU8[i19] | 0) + -48 | 0) >>> 0 < 10 ? i19 + 1 | 0 : i19; 17573 i20 = HEAP8[i19] | 0; 17574 } 17575 if (((i20 & 255) + -48 | 0) >>> 0 < 10) { 17576 _luaL_error(i2, 7840, i4) | 0; 17577 } 17578 HEAP8[i5] = 37; 17579 i16 = i19 - i16 | 0; 17580 _memcpy(i14 | 0, i18 | 0, i16 + 1 | 0) | 0; 17581 HEAP8[i5 + (i16 + 2) | 0] = 0; 17582 i16 = i19 + 1 | 0; 17583 i18 = HEAP8[i19] | 0; 17584 L36 : do { 17585 switch (i18 | 0) { 17586 case 115: 17587 { 17588 i18 = _luaL_tolstring(i2, i15, i6) | 0; 17589 if ((_strchr(i5, 46) | 0) == 0 ? (HEAP32[i6 >> 2] | 0) >>> 0 > 99 : 0) { 17590 _luaL_addvalue(i10); 17591 i17 = 0; 17592 break L36; 17593 } 17594 HEAP32[i4 >> 2] = i18; 17595 i17 = _sprintf(i17 | 0, i5 | 0, i4 | 0) | 0; 17596 _lua_settop(i2, -2); 17597 break; 17598 } 17599 case 88: 17600 case 120: 17601 case 117: 17602 case 111: 17603 { 17604 d21 = +_luaL_checknumber(i2, i15); 17605 i18 = ~~d21 >>> 0; 17606 d21 = d21 - +(i18 >>> 0); 17607 if (!(d21 > -1.0 & d21 < 1.0)) { 17608 _luaL_argerror(i2, i15, 7696) | 0; 17609 } 17610 i20 = _strlen(i5 | 0) | 0; 17611 i22 = i5 + (i20 + -1) | 0; 17612 i19 = HEAP8[i22] | 0; 17613 HEAP8[i22] = 108; 17614 HEAP8[i22 + 1 | 0] = 0; 17615 HEAP8[i5 + i20 | 0] = i19; 17616 HEAP8[i5 + (i20 + 1) | 0] = 0; 17617 HEAP32[i4 >> 2] = i18; 17618 i17 = _sprintf(i17 | 0, i5 | 0, i4 | 0) | 0; 17619 break; 17620 } 17621 case 99: 17622 { 17623 HEAP32[i4 >> 2] = _luaL_checkinteger(i2, i15) | 0; 17624 i17 = _sprintf(i17 | 0, i5 | 0, i4 | 0) | 0; 17625 break; 17626 } 17627 case 113: 17628 { 17629 i17 = _luaL_checklstring(i2, i15, i7) | 0; 17630 i18 = HEAP32[i1 >> 2] | 0; 17631 if (!(i18 >>> 0 < (HEAP32[i13 >> 2] | 0) >>> 0)) { 17632 _luaL_prepbuffsize(i10, 1) | 0; 17633 i18 = HEAP32[i1 >> 2] | 0; 17634 } 17635 HEAP32[i1 >> 2] = i18 + 1; 17636 HEAP8[(HEAP32[i10 >> 2] | 0) + i18 | 0] = 34; 17637 i22 = HEAP32[i7 >> 2] | 0; 17638 HEAP32[i7 >> 2] = i22 + -1; 17639 if ((i22 | 0) != 0) { 17640 while (1) { 17641 i18 = HEAP8[i17] | 0; 17642 do { 17643 if (i18 << 24 >> 24 == 10 | i18 << 24 >> 24 == 92 | i18 << 24 >> 24 == 34) { 17644 i18 = HEAP32[i1 >> 2] | 0; 17645 if (!(i18 >>> 0 < (HEAP32[i13 >> 2] | 0) >>> 0)) { 17646 _luaL_prepbuffsize(i10, 1) | 0; 17647 i18 = HEAP32[i1 >> 2] | 0; 17648 } 17649 HEAP32[i1 >> 2] = i18 + 1; 17650 HEAP8[(HEAP32[i10 >> 2] | 0) + i18 | 0] = 92; 17651 i18 = HEAP32[i1 >> 2] | 0; 17652 if (!(i18 >>> 0 < (HEAP32[i13 >> 2] | 0) >>> 0)) { 17653 _luaL_prepbuffsize(i10, 1) | 0; 17654 i18 = HEAP32[i1 >> 2] | 0; 17655 } 17656 i22 = HEAP8[i17] | 0; 17657 HEAP32[i1 >> 2] = i18 + 1; 17658 HEAP8[(HEAP32[i10 >> 2] | 0) + i18 | 0] = i22; 17659 } else if (i18 << 24 >> 24 == 0) { 17660 i18 = 0; 17661 i11 = 44; 17662 } else { 17663 if ((_iscntrl(i18 & 255 | 0) | 0) != 0) { 17664 i18 = HEAP8[i17] | 0; 17665 i11 = 44; 17666 break; 17667 } 17668 i18 = HEAP32[i1 >> 2] | 0; 17669 if (!(i18 >>> 0 < (HEAP32[i13 >> 2] | 0) >>> 0)) { 17670 _luaL_prepbuffsize(i10, 1) | 0; 17671 i18 = HEAP32[i1 >> 2] | 0; 17672 } 17673 i22 = HEAP8[i17] | 0; 17674 HEAP32[i1 >> 2] = i18 + 1; 17675 HEAP8[(HEAP32[i10 >> 2] | 0) + i18 | 0] = i22; 17676 } 17677 } while (0); 17678 if ((i11 | 0) == 44) { 17679 i11 = 0; 17680 i18 = i18 & 255; 17681 if (((HEAPU8[i17 + 1 | 0] | 0) + -48 | 0) >>> 0 < 10) { 17682 HEAP32[i4 >> 2] = i18; 17683 _sprintf(i9 | 0, 7792, i4 | 0) | 0; 17684 } else { 17685 HEAP32[i4 >> 2] = i18; 17686 _sprintf(i9 | 0, 7784, i4 | 0) | 0; 17687 } 17688 _luaL_addstring(i10, i9); 17689 } 17690 i22 = HEAP32[i7 >> 2] | 0; 17691 HEAP32[i7 >> 2] = i22 + -1; 17692 if ((i22 | 0) == 0) { 17693 break; 17694 } else { 17695 i17 = i17 + 1 | 0; 17696 } 17697 } 17698 } 17699 i17 = HEAP32[i1 >> 2] | 0; 17700 if (!(i17 >>> 0 < (HEAP32[i13 >> 2] | 0) >>> 0)) { 17701 _luaL_prepbuffsize(i10, 1) | 0; 17702 i17 = HEAP32[i1 >> 2] | 0; 17703 } 17704 HEAP32[i1 >> 2] = i17 + 1; 17705 HEAP8[(HEAP32[i10 >> 2] | 0) + i17 | 0] = 34; 17706 i17 = 0; 17707 break; 17708 } 17709 case 71: 17710 case 103: 17711 case 102: 17712 case 69: 17713 case 101: 17714 { 17715 HEAP8[i5 + (_strlen(i5 | 0) | 0) | 0] = 0; 17716 d21 = +_luaL_checknumber(i2, i15); 17717 HEAPF64[tempDoublePtr >> 3] = d21; 17718 HEAP32[i4 >> 2] = HEAP32[tempDoublePtr >> 2]; 17719 HEAP32[i4 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2]; 17720 i17 = _sprintf(i17 | 0, i5 | 0, i4 | 0) | 0; 17721 break; 17722 } 17723 case 105: 17724 case 100: 17725 { 17726 d21 = +_luaL_checknumber(i2, i15); 17727 i18 = ~~d21; 17728 d21 = d21 - +(i18 | 0); 17729 if (!(d21 > -1.0 & d21 < 1.0)) { 17730 _luaL_argerror(i2, i15, 7664) | 0; 17731 } 17732 i22 = _strlen(i5 | 0) | 0; 17733 i19 = i5 + (i22 + -1) | 0; 17734 i20 = HEAP8[i19] | 0; 17735 HEAP8[i19] = 108; 17736 HEAP8[i19 + 1 | 0] = 0; 17737 HEAP8[i5 + i22 | 0] = i20; 17738 HEAP8[i5 + (i22 + 1) | 0] = 0; 17739 HEAP32[i4 >> 2] = i18; 17740 i17 = _sprintf(i17 | 0, i5 | 0, i4 | 0) | 0; 17741 break; 17742 } 17743 default: 17744 { 17745 break L3; 17746 } 17747 } 17748 } while (0); 17749 HEAP32[i1 >> 2] = (HEAP32[i1 >> 2] | 0) + i17; 17750 if (i16 >>> 0 < i3 >>> 0) { 17751 i19 = i15; 17752 } else { 17753 break L1; 17754 } 17755 } 17756 HEAP32[i4 >> 2] = i18; 17757 i22 = _luaL_error(i2, 7744, i4) | 0; 17758 STACKTOP = i12; 17759 return i22 | 0; 17760 } 17761 } while (0); 17762 _luaL_pushresult(i10); 17763 i22 = 1; 17764 STACKTOP = i12; 17765 return i22 | 0; 17766 } 17767 function _luaD_precall(i3, i17, i4) { 17768 i3 = i3 | 0; 17769 i17 = i17 | 0; 17770 i4 = i4 | 0; 17771 var i1 = 0, i2 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0; 17772 i1 = STACKTOP; 17773 STACKTOP = STACKTOP + 16 | 0; 17774 i8 = i1; 17775 i6 = i3 + 28 | 0; 17776 i2 = i3 + 8 | 0; 17777 i13 = i3 + 24 | 0; 17778 i14 = i3 + 32 | 0; 17779 while (1) { 17780 i15 = HEAP32[i6 >> 2] | 0; 17781 i16 = i17; 17782 i12 = i15; 17783 i5 = i16 - i12 | 0; 17784 i11 = HEAP32[i17 + 8 >> 2] & 63; 17785 if ((i11 | 0) == 38) { 17786 i11 = 4; 17787 break; 17788 } else if ((i11 | 0) == 22) { 17789 i11 = 3; 17790 break; 17791 } else if ((i11 | 0) == 6) { 17792 i11 = 31; 17793 break; 17794 } 17795 i11 = _luaT_gettmbyobj(i3, i17, 16) | 0; 17796 i15 = i16 - (HEAP32[i6 >> 2] | 0) | 0; 17797 i16 = i11 + 8 | 0; 17798 if ((HEAP32[i16 >> 2] & 15 | 0) != 6) { 17799 i11 = 54; 17800 break; 17801 } 17802 i19 = HEAP32[i2 >> 2] | 0; 17803 if (i19 >>> 0 > i17 >>> 0) { 17804 while (1) { 17805 i18 = i19 + -16 | 0; 17806 i22 = i18; 17807 i21 = HEAP32[i22 + 4 >> 2] | 0; 17808 i20 = i19; 17809 HEAP32[i20 >> 2] = HEAP32[i22 >> 2]; 17810 HEAP32[i20 + 4 >> 2] = i21; 17811 HEAP32[i19 + 8 >> 2] = HEAP32[i19 + -8 >> 2]; 17812 if (i18 >>> 0 > i17 >>> 0) { 17813 i19 = i18; 17814 } else { 17815 break; 17816 } 17817 } 17818 i19 = HEAP32[i2 >> 2] | 0; 17819 } 17820 i17 = i19 + 16 | 0; 17821 HEAP32[i2 >> 2] = i17; 17822 if (((HEAP32[i13 >> 2] | 0) - i17 | 0) < 16) { 17823 i18 = HEAP32[i14 >> 2] | 0; 17824 if ((i18 | 0) > 1e6) { 17825 i11 = 60; 17826 break; 17827 } 17828 i17 = (i17 - (HEAP32[i6 >> 2] | 0) >> 4) + 5 | 0; 17829 i18 = i18 << 1; 17830 i18 = (i18 | 0) > 1e6 ? 1e6 : i18; 17831 i17 = (i18 | 0) < (i17 | 0) ? i17 : i18; 17832 if ((i17 | 0) > 1e6) { 17833 i11 = 62; 17834 break; 17835 } 17836 _luaD_reallocstack(i3, i17); 17837 } 17838 i22 = HEAP32[i6 >> 2] | 0; 17839 i17 = i22 + i15 | 0; 17840 i19 = i11; 17841 i20 = HEAP32[i19 + 4 >> 2] | 0; 17842 i21 = i17; 17843 HEAP32[i21 >> 2] = HEAP32[i19 >> 2]; 17844 HEAP32[i21 + 4 >> 2] = i20; 17845 HEAP32[i22 + (i15 + 8) >> 2] = HEAP32[i16 >> 2]; 17846 } 17847 if ((i11 | 0) == 3) { 17848 i10 = i17; 17849 } else if ((i11 | 0) == 4) { 17850 i10 = (HEAP32[i17 >> 2] | 0) + 12 | 0; 17851 } else if ((i11 | 0) == 31) { 17852 i10 = HEAP32[(HEAP32[i17 >> 2] | 0) + 12 >> 2] | 0; 17853 i18 = HEAP32[i2 >> 2] | 0; 17854 i16 = i18; 17855 i11 = i10 + 78 | 0; 17856 i17 = HEAPU8[i11] | 0; 17857 do { 17858 if (((HEAP32[i13 >> 2] | 0) - i16 >> 4 | 0) <= (i17 | 0)) { 17859 i13 = HEAP32[i14 >> 2] | 0; 17860 if ((i13 | 0) > 1e6) { 17861 _luaD_throw(i3, 6); 17862 } 17863 i12 = i17 + 5 + (i16 - i12 >> 4) | 0; 17864 i13 = i13 << 1; 17865 i13 = (i13 | 0) > 1e6 ? 1e6 : i13; 17866 i12 = (i13 | 0) < (i12 | 0) ? i12 : i13; 17867 if ((i12 | 0) > 1e6) { 17868 _luaD_reallocstack(i3, 1000200); 17869 _luaG_runerror(i3, 2224, i8); 17870 } else { 17871 _luaD_reallocstack(i3, i12); 17872 i7 = HEAP32[i6 >> 2] | 0; 17873 i9 = HEAP32[i2 >> 2] | 0; 17874 break; 17875 } 17876 } else { 17877 i7 = i15; 17878 i9 = i18; 17879 } 17880 } while (0); 17881 i6 = i7 + i5 | 0; 17882 i22 = i9 - i6 >> 4; 17883 i12 = i22 + -1 | 0; 17884 i8 = i10 + 76 | 0; 17885 i13 = HEAP8[i8] | 0; 17886 if ((i22 | 0) > (i13 & 255 | 0)) { 17887 i8 = i13; 17888 } else { 17889 i13 = i9; 17890 while (1) { 17891 i9 = i13 + 16 | 0; 17892 HEAP32[i2 >> 2] = i9; 17893 HEAP32[i13 + 8 >> 2] = 0; 17894 i12 = i12 + 1 | 0; 17895 i13 = HEAP8[i8] | 0; 17896 if ((i12 | 0) < (i13 & 255 | 0)) { 17897 i13 = i9; 17898 } else { 17899 i8 = i13; 17900 break; 17901 } 17902 } 17903 } 17904 if ((HEAP8[i10 + 77 | 0] | 0) != 0) { 17905 i5 = i8 & 255; 17906 if (!(i8 << 24 >> 24 == 0) ? (i22 = 0 - i12 | 0, HEAP32[i2 >> 2] = i9 + 16, i19 = i9 + (i22 << 4) | 0, i20 = HEAP32[i19 + 4 >> 2] | 0, i21 = i9, HEAP32[i21 >> 2] = HEAP32[i19 >> 2], HEAP32[i21 + 4 >> 2] = i20, i22 = i9 + (i22 << 4) + 8 | 0, HEAP32[i9 + 8 >> 2] = HEAP32[i22 >> 2], HEAP32[i22 >> 2] = 0, (i8 & 255) > 1) : 0) { 17907 i7 = 1; 17908 do { 17909 i21 = HEAP32[i2 >> 2] | 0; 17910 i22 = i7 - i12 | 0; 17911 HEAP32[i2 >> 2] = i21 + 16; 17912 i18 = i9 + (i22 << 4) | 0; 17913 i19 = HEAP32[i18 + 4 >> 2] | 0; 17914 i20 = i21; 17915 HEAP32[i20 >> 2] = HEAP32[i18 >> 2]; 17916 HEAP32[i20 + 4 >> 2] = i19; 17917 i22 = i9 + (i22 << 4) + 8 | 0; 17918 HEAP32[i21 + 8 >> 2] = HEAP32[i22 >> 2]; 17919 HEAP32[i22 >> 2] = 0; 17920 i7 = i7 + 1 | 0; 17921 } while ((i7 | 0) < (i5 | 0)); 17922 } 17923 } else { 17924 i9 = i7 + (i5 + 16) | 0; 17925 } 17926 i7 = i3 + 16 | 0; 17927 i5 = HEAP32[(HEAP32[i7 >> 2] | 0) + 12 >> 2] | 0; 17928 if ((i5 | 0) == 0) { 17929 i5 = _luaE_extendCI(i3) | 0; 17930 } 17931 HEAP32[i7 >> 2] = i5; 17932 HEAP16[i5 + 16 >> 1] = i4; 17933 HEAP32[i5 >> 2] = i6; 17934 HEAP32[i5 + 24 >> 2] = i9; 17935 i22 = i9 + (HEAPU8[i11] << 4) | 0; 17936 HEAP32[i5 + 4 >> 2] = i22; 17937 i4 = i5 + 28 | 0; 17938 HEAP32[i4 >> 2] = HEAP32[i10 + 12 >> 2]; 17939 i6 = i5 + 18 | 0; 17940 HEAP8[i6] = 1; 17941 HEAP32[i2 >> 2] = i22; 17942 if ((HEAP32[(HEAP32[i3 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) { 17943 _luaC_step(i3); 17944 } 17945 if ((HEAP8[i3 + 40 | 0] & 1) == 0) { 17946 i22 = 0; 17947 STACKTOP = i1; 17948 return i22 | 0; 17949 } 17950 HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + 4; 17951 i2 = HEAP32[i5 + 8 >> 2] | 0; 17952 if (!((HEAP8[i2 + 18 | 0] & 1) == 0) ? (HEAP32[(HEAP32[i2 + 28 >> 2] | 0) + -4 >> 2] & 63 | 0) == 30 : 0) { 17953 HEAP8[i6] = HEAPU8[i6] | 64; 17954 i2 = 4; 17955 } else { 17956 i2 = 0; 17957 } 17958 _luaD_hook(i3, i2, -1); 17959 HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + -4; 17960 i22 = 0; 17961 STACKTOP = i1; 17962 return i22 | 0; 17963 } else if ((i11 | 0) == 54) { 17964 _luaG_typeerror(i3, i17, 2520); 17965 } else if ((i11 | 0) == 60) { 17966 _luaD_throw(i3, 6); 17967 } else if ((i11 | 0) == 62) { 17968 _luaD_reallocstack(i3, 1000200); 17969 _luaG_runerror(i3, 2224, i8); 17970 } 17971 i7 = HEAP32[i10 >> 2] | 0; 17972 i9 = HEAP32[i2 >> 2] | 0; 17973 do { 17974 if (((HEAP32[i13 >> 2] | 0) - i9 | 0) < 336) { 17975 i10 = HEAP32[i14 >> 2] | 0; 17976 if ((i10 | 0) > 1e6) { 17977 _luaD_throw(i3, 6); 17978 } 17979 i9 = (i9 - i12 >> 4) + 25 | 0; 17980 i10 = i10 << 1; 17981 i10 = (i10 | 0) > 1e6 ? 1e6 : i10; 17982 i9 = (i10 | 0) < (i9 | 0) ? i9 : i10; 17983 if ((i9 | 0) > 1e6) { 17984 _luaD_reallocstack(i3, 1000200); 17985 _luaG_runerror(i3, 2224, i8); 17986 } else { 17987 _luaD_reallocstack(i3, i9); 17988 break; 17989 } 17990 } 17991 } while (0); 17992 i8 = i3 + 16 | 0; 17993 i9 = HEAP32[(HEAP32[i8 >> 2] | 0) + 12 >> 2] | 0; 17994 if ((i9 | 0) == 0) { 17995 i9 = _luaE_extendCI(i3) | 0; 17996 } 17997 HEAP32[i8 >> 2] = i9; 17998 HEAP16[i9 + 16 >> 1] = i4; 17999 HEAP32[i9 >> 2] = (HEAP32[i6 >> 2] | 0) + i5; 18000 HEAP32[i9 + 4 >> 2] = (HEAP32[i2 >> 2] | 0) + 320; 18001 HEAP8[i9 + 18 | 0] = 0; 18002 if ((HEAP32[(HEAP32[i3 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) { 18003 _luaC_step(i3); 18004 } 18005 i5 = i3 + 40 | 0; 18006 if (!((HEAP8[i5] & 1) == 0)) { 18007 _luaD_hook(i3, 0, -1); 18008 } 18009 i7 = FUNCTION_TABLE_ii[i7 & 255](i3) | 0; 18010 i7 = (HEAP32[i2 >> 2] | 0) + (0 - i7 << 4) | 0; 18011 i4 = HEAP32[i8 >> 2] | 0; 18012 i5 = HEAPU8[i5] | 0; 18013 if ((i5 & 6 | 0) == 0) { 18014 i5 = i7; 18015 i6 = i4 + 8 | 0; 18016 } else { 18017 if ((i5 & 2 | 0) == 0) { 18018 i5 = i7; 18019 } else { 18020 i5 = i7 - (HEAP32[i6 >> 2] | 0) | 0; 18021 _luaD_hook(i3, 1, -1); 18022 i5 = (HEAP32[i6 >> 2] | 0) + i5 | 0; 18023 } 18024 i6 = i4 + 8 | 0; 18025 HEAP32[i3 + 20 >> 2] = HEAP32[(HEAP32[i6 >> 2] | 0) + 28 >> 2]; 18026 } 18027 i3 = HEAP32[i4 >> 2] | 0; 18028 i4 = HEAP16[i4 + 16 >> 1] | 0; 18029 HEAP32[i8 >> 2] = HEAP32[i6 >> 2]; 18030 L82 : do { 18031 if (!(i4 << 16 >> 16 == 0)) { 18032 i4 = i4 << 16 >> 16; 18033 while (1) { 18034 if (!(i5 >>> 0 < (HEAP32[i2 >> 2] | 0) >>> 0)) { 18035 break; 18036 } 18037 i6 = i3 + 16 | 0; 18038 i20 = i5; 18039 i21 = HEAP32[i20 + 4 >> 2] | 0; 18040 i22 = i3; 18041 HEAP32[i22 >> 2] = HEAP32[i20 >> 2]; 18042 HEAP32[i22 + 4 >> 2] = i21; 18043 HEAP32[i3 + 8 >> 2] = HEAP32[i5 + 8 >> 2]; 18044 i4 = i4 + -1 | 0; 18045 if ((i4 | 0) == 0) { 18046 i3 = i6; 18047 break L82; 18048 } 18049 i5 = i5 + 16 | 0; 18050 i3 = i6; 18051 } 18052 if ((i4 | 0) > 0) { 18053 i5 = i4; 18054 i6 = i3; 18055 while (1) { 18056 i5 = i5 + -1 | 0; 18057 HEAP32[i6 + 8 >> 2] = 0; 18058 if ((i5 | 0) <= 0) { 18059 break; 18060 } else { 18061 i6 = i6 + 16 | 0; 18062 } 18063 } 18064 i3 = i3 + (i4 << 4) | 0; 18065 } 18066 } 18067 } while (0); 18068 HEAP32[i2 >> 2] = i3; 18069 i22 = 1; 18070 STACKTOP = i1; 18071 return i22 | 0; 18072 } 18073 function _lua_getinfo(i1, i6, i29) { 18074 i1 = i1 | 0; 18075 i6 = i6 | 0; 18076 i29 = i29 | 0; 18077 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0; 18078 i3 = STACKTOP; 18079 STACKTOP = STACKTOP + 16 | 0; 18080 i2 = i3; 18081 if ((HEAP8[i6] | 0) == 62) { 18082 i10 = i1 + 8 | 0; 18083 i7 = (HEAP32[i10 >> 2] | 0) + -16 | 0; 18084 HEAP32[i10 >> 2] = i7; 18085 i6 = i6 + 1 | 0; 18086 i10 = 0; 18087 } else { 18088 i7 = HEAP32[i29 + 96 >> 2] | 0; 18089 i10 = i7; 18090 i7 = HEAP32[i7 >> 2] | 0; 18091 } 18092 i8 = i7 + 8 | 0; 18093 if ((HEAP32[i8 >> 2] & 31 | 0) == 6) { 18094 i9 = HEAP32[i7 >> 2] | 0; 18095 } else { 18096 i9 = 0; 18097 } 18098 i34 = HEAP8[i6] | 0; 18099 L8 : do { 18100 if (i34 << 24 >> 24 == 0) { 18101 i33 = 1; 18102 } else { 18103 i12 = (i9 | 0) == 0; 18104 i27 = i29 + 16 | 0; 18105 i28 = i29 + 24 | 0; 18106 i21 = i29 + 28 | 0; 18107 i25 = i29 + 12 | 0; 18108 i26 = i29 + 36 | 0; 18109 i19 = i9 + 4 | 0; 18110 i24 = i9 + 12 | 0; 18111 i18 = (i10 | 0) == 0; 18112 i23 = i29 + 20 | 0; 18113 i17 = i10 + 18 | 0; 18114 i22 = i10 + 28 | 0; 18115 i15 = i29 + 32 | 0; 18116 i14 = i29 + 34 | 0; 18117 i13 = i29 + 33 | 0; 18118 i11 = i9 + 6 | 0; 18119 i16 = i29 + 35 | 0; 18120 i20 = i29 + 8 | 0; 18121 i30 = i29 + 4 | 0; 18122 i29 = i10 + 8 | 0; 18123 i31 = i1 + 12 | 0; 18124 i32 = i6; 18125 i33 = 1; 18126 while (1) { 18127 L12 : do { 18128 switch (i34 << 24 >> 24 | 0) { 18129 case 116: 18130 { 18131 if (i18) { 18132 i34 = 0; 18133 } else { 18134 i34 = HEAPU8[i17] & 64; 18135 } 18136 HEAP8[i16] = i34; 18137 break; 18138 } 18139 case 110: 18140 { 18141 L18 : do { 18142 if ((!i18 ? (HEAP8[i17] & 64) == 0 : 0) ? (i5 = HEAP32[i29 >> 2] | 0, !((HEAP8[i5 + 18 | 0] & 1) == 0)) : 0) { 18143 i36 = HEAP32[(HEAP32[HEAP32[i5 >> 2] >> 2] | 0) + 12 >> 2] | 0; 18144 i35 = HEAP32[i36 + 12 >> 2] | 0; 18145 i34 = ((HEAP32[i5 + 28 >> 2] | 0) - i35 >> 2) + -1 | 0; 18146 i35 = HEAP32[i35 + (i34 << 2) >> 2] | 0; 18147 switch (i35 & 63 | 0) { 18148 case 10: 18149 case 8: 18150 { 18151 i34 = 1; 18152 i4 = 46; 18153 break; 18154 } 18155 case 24: 18156 { 18157 i34 = 5; 18158 i4 = 46; 18159 break; 18160 } 18161 case 13: 18162 { 18163 i34 = 6; 18164 i4 = 46; 18165 break; 18166 } 18167 case 14: 18168 { 18169 i34 = 7; 18170 i4 = 46; 18171 break; 18172 } 18173 case 15: 18174 { 18175 i34 = 8; 18176 i4 = 46; 18177 break; 18178 } 18179 case 16: 18180 { 18181 i34 = 9; 18182 i4 = 46; 18183 break; 18184 } 18185 case 17: 18186 { 18187 i34 = 10; 18188 i4 = 46; 18189 break; 18190 } 18191 case 18: 18192 { 18193 i34 = 11; 18194 i4 = 46; 18195 break; 18196 } 18197 case 19: 18198 { 18199 i34 = 12; 18200 i4 = 46; 18201 break; 18202 } 18203 case 21: 18204 { 18205 i34 = 4; 18206 i4 = 46; 18207 break; 18208 } 18209 case 25: 18210 { 18211 i34 = 13; 18212 i4 = 46; 18213 break; 18214 } 18215 case 26: 18216 { 18217 i34 = 14; 18218 i4 = 46; 18219 break; 18220 } 18221 case 22: 18222 { 18223 i34 = 15; 18224 i4 = 46; 18225 break; 18226 } 18227 case 7: 18228 case 6: 18229 case 12: 18230 { 18231 i34 = 0; 18232 i4 = 46; 18233 break; 18234 } 18235 case 34: 18236 { 18237 i34 = 2120; 18238 i35 = 2120; 18239 break; 18240 } 18241 case 30: 18242 case 29: 18243 { 18244 i36 = _getobjname(i36, i34, i35 >>> 6 & 255, i30) | 0; 18245 HEAP32[i20 >> 2] = i36; 18246 if ((i36 | 0) == 0) { 18247 break L18; 18248 } else { 18249 break L12; 18250 } 18251 } 18252 default: 18253 { 18254 i4 = 47; 18255 break L18; 18256 } 18257 } 18258 if ((i4 | 0) == 46) { 18259 i4 = 0; 18260 i34 = (HEAP32[(HEAP32[i31 >> 2] | 0) + (i34 << 2) + 184 >> 2] | 0) + 16 | 0; 18261 i35 = 2136; 18262 } 18263 HEAP32[i30 >> 2] = i34; 18264 HEAP32[i20 >> 2] = i35; 18265 break L12; 18266 } else { 18267 i4 = 47; 18268 } 18269 } while (0); 18270 if ((i4 | 0) == 47) { 18271 i4 = 0; 18272 HEAP32[i20 >> 2] = 0; 18273 } 18274 HEAP32[i20 >> 2] = 2112; 18275 HEAP32[i30 >> 2] = 0; 18276 break; 18277 } 18278 case 108: 18279 { 18280 if (!i18 ? !((HEAP8[i17] & 1) == 0) : 0) { 18281 i35 = HEAP32[(HEAP32[HEAP32[i10 >> 2] >> 2] | 0) + 12 >> 2] | 0; 18282 i34 = HEAP32[i35 + 20 >> 2] | 0; 18283 if ((i34 | 0) == 0) { 18284 i34 = 0; 18285 } else { 18286 i34 = HEAP32[i34 + (((HEAP32[i22 >> 2] | 0) - (HEAP32[i35 + 12 >> 2] | 0) >> 2) + -1 << 2) >> 2] | 0; 18287 } 18288 } else { 18289 i34 = -1; 18290 } 18291 HEAP32[i23 >> 2] = i34; 18292 break; 18293 } 18294 case 83: 18295 { 18296 if (!i12 ? (HEAP8[i19] | 0) != 38 : 0) { 18297 i34 = HEAP32[i24 >> 2] | 0; 18298 i35 = HEAP32[i34 + 36 >> 2] | 0; 18299 if ((i35 | 0) == 0) { 18300 i35 = 2168; 18301 } else { 18302 i35 = i35 + 16 | 0; 18303 } 18304 HEAP32[i27 >> 2] = i35; 18305 i36 = HEAP32[i34 + 64 >> 2] | 0; 18306 HEAP32[i28 >> 2] = i36; 18307 HEAP32[i21 >> 2] = HEAP32[i34 + 68 >> 2]; 18308 i34 = (i36 | 0) == 0 ? 2176 : 2184; 18309 } else { 18310 HEAP32[i27 >> 2] = 2152; 18311 HEAP32[i28 >> 2] = -1; 18312 HEAP32[i21 >> 2] = -1; 18313 i35 = 2152; 18314 i34 = 2160; 18315 } 18316 HEAP32[i25 >> 2] = i34; 18317 _luaO_chunkid(i26, i35, 60); 18318 break; 18319 } 18320 case 117: 18321 { 18322 if (!i12) { 18323 HEAP8[i15] = HEAP8[i11] | 0; 18324 if ((HEAP8[i19] | 0) != 38) { 18325 HEAP8[i14] = HEAP8[(HEAP32[i24 >> 2] | 0) + 77 | 0] | 0; 18326 HEAP8[i13] = HEAP8[(HEAP32[i24 >> 2] | 0) + 76 | 0] | 0; 18327 break L12; 18328 } 18329 } else { 18330 HEAP8[i15] = 0; 18331 } 18332 HEAP8[i14] = 1; 18333 HEAP8[i13] = 0; 18334 break; 18335 } 18336 case 102: 18337 case 76: 18338 { 18339 break; 18340 } 18341 default: 18342 { 18343 i33 = 0; 18344 } 18345 } 18346 } while (0); 18347 i32 = i32 + 1 | 0; 18348 i34 = HEAP8[i32] | 0; 18349 if (i34 << 24 >> 24 == 0) { 18350 break L8; 18351 } 18352 } 18353 } 18354 } while (0); 18355 if ((_strchr(i6, 102) | 0) != 0) { 18356 i36 = i1 + 8 | 0; 18357 i35 = HEAP32[i36 >> 2] | 0; 18358 i31 = i7; 18359 i32 = HEAP32[i31 + 4 >> 2] | 0; 18360 i34 = i35; 18361 HEAP32[i34 >> 2] = HEAP32[i31 >> 2]; 18362 HEAP32[i34 + 4 >> 2] = i32; 18363 HEAP32[i35 + 8 >> 2] = HEAP32[i8 >> 2]; 18364 HEAP32[i36 >> 2] = (HEAP32[i36 >> 2] | 0) + 16; 18365 } 18366 if ((_strchr(i6, 76) | 0) == 0) { 18367 STACKTOP = i3; 18368 return i33 | 0; 18369 } 18370 if ((i9 | 0) != 0 ? (HEAP8[i9 + 4 | 0] | 0) != 38 : 0) { 18371 i6 = i9 + 12 | 0; 18372 i5 = HEAP32[(HEAP32[i6 >> 2] | 0) + 20 >> 2] | 0; 18373 i4 = _luaH_new(i1) | 0; 18374 i36 = i1 + 8 | 0; 18375 i35 = HEAP32[i36 >> 2] | 0; 18376 HEAP32[i35 >> 2] = i4; 18377 HEAP32[i35 + 8 >> 2] = 69; 18378 HEAP32[i36 >> 2] = (HEAP32[i36 >> 2] | 0) + 16; 18379 HEAP32[i2 >> 2] = 1; 18380 HEAP32[i2 + 8 >> 2] = 1; 18381 if ((HEAP32[(HEAP32[i6 >> 2] | 0) + 52 >> 2] | 0) > 0) { 18382 i7 = 0; 18383 } else { 18384 STACKTOP = i3; 18385 return i33 | 0; 18386 } 18387 do { 18388 _luaH_setint(i1, i4, HEAP32[i5 + (i7 << 2) >> 2] | 0, i2); 18389 i7 = i7 + 1 | 0; 18390 } while ((i7 | 0) < (HEAP32[(HEAP32[i6 >> 2] | 0) + 52 >> 2] | 0)); 18391 STACKTOP = i3; 18392 return i33 | 0; 18393 } 18394 i36 = i1 + 8 | 0; 18395 i35 = HEAP32[i36 >> 2] | 0; 18396 HEAP32[i35 + 8 >> 2] = 0; 18397 HEAP32[i36 >> 2] = i35 + 16; 18398 STACKTOP = i3; 18399 return i33 | 0; 18400 } 18401 function _read_long_string(i3, i1, i5) { 18402 i3 = i3 | 0; 18403 i1 = i1 | 0; 18404 i5 = i5 | 0; 18405 var i2 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0; 18406 i2 = STACKTOP; 18407 i14 = HEAP32[i3 >> 2] | 0; 18408 i4 = i3 + 60 | 0; 18409 i13 = HEAP32[i4 >> 2] | 0; 18410 i15 = i13 + 4 | 0; 18411 i16 = HEAP32[i15 >> 2] | 0; 18412 i10 = i13 + 8 | 0; 18413 i12 = HEAP32[i10 >> 2] | 0; 18414 do { 18415 if ((i16 + 1 | 0) >>> 0 > i12 >>> 0) { 18416 if (i12 >>> 0 > 2147483645) { 18417 _lexerror(i3, 12368, 0); 18418 } 18419 i16 = i12 << 1; 18420 i17 = HEAP32[i3 + 52 >> 2] | 0; 18421 if ((i16 | 0) == -2) { 18422 _luaM_toobig(i17); 18423 } else { 18424 i8 = _luaM_realloc_(i17, HEAP32[i13 >> 2] | 0, i12, i16) | 0; 18425 HEAP32[i13 >> 2] = i8; 18426 HEAP32[i10 >> 2] = i16; 18427 i9 = HEAP32[i15 >> 2] | 0; 18428 break; 18429 } 18430 } else { 18431 i9 = i16; 18432 i8 = HEAP32[i13 >> 2] | 0; 18433 } 18434 } while (0); 18435 HEAP32[i15 >> 2] = i9 + 1; 18436 HEAP8[i8 + i9 | 0] = i14; 18437 i9 = i3 + 56 | 0; 18438 i8 = HEAP32[i9 >> 2] | 0; 18439 i18 = HEAP32[i8 >> 2] | 0; 18440 HEAP32[i8 >> 2] = i18 + -1; 18441 if ((i18 | 0) == 0) { 18442 i12 = _luaZ_fill(i8) | 0; 18443 } else { 18444 i18 = i8 + 4 | 0; 18445 i12 = HEAP32[i18 >> 2] | 0; 18446 HEAP32[i18 >> 2] = i12 + 1; 18447 i12 = HEAPU8[i12] | 0; 18448 } 18449 HEAP32[i3 >> 2] = i12; 18450 if ((i12 | 0) == 13 | (i12 | 0) == 10) { 18451 _inclinenumber(i3); 18452 i11 = 13; 18453 } 18454 L17 : while (1) { 18455 if ((i11 | 0) == 13) { 18456 i11 = 0; 18457 i12 = HEAP32[i3 >> 2] | 0; 18458 } 18459 i8 = (i1 | 0) == 0; 18460 i10 = i3 + 52 | 0; 18461 L21 : do { 18462 if (i8) { 18463 while (1) { 18464 if ((i12 | 0) == 13 | (i12 | 0) == 10) { 18465 break L21; 18466 } else if ((i12 | 0) == 93) { 18467 i11 = 22; 18468 break L21; 18469 } else if ((i12 | 0) == -1) { 18470 i11 = 21; 18471 break L17; 18472 } 18473 i12 = HEAP32[i9 >> 2] | 0; 18474 i18 = HEAP32[i12 >> 2] | 0; 18475 HEAP32[i12 >> 2] = i18 + -1; 18476 if ((i18 | 0) == 0) { 18477 i12 = _luaZ_fill(i12) | 0; 18478 } else { 18479 i18 = i12 + 4 | 0; 18480 i12 = HEAP32[i18 >> 2] | 0; 18481 HEAP32[i18 >> 2] = i12 + 1; 18482 i12 = HEAPU8[i12] | 0; 18483 } 18484 HEAP32[i3 >> 2] = i12; 18485 } 18486 } else { 18487 while (1) { 18488 if ((i12 | 0) == 13 | (i12 | 0) == 10) { 18489 break L21; 18490 } else if ((i12 | 0) == 93) { 18491 i11 = 22; 18492 break L21; 18493 } else if ((i12 | 0) == -1) { 18494 i11 = 21; 18495 break L17; 18496 } 18497 i14 = HEAP32[i4 >> 2] | 0; 18498 i13 = i14 + 4 | 0; 18499 i17 = HEAP32[i13 >> 2] | 0; 18500 i16 = i14 + 8 | 0; 18501 i15 = HEAP32[i16 >> 2] | 0; 18502 if ((i17 + 1 | 0) >>> 0 > i15 >>> 0) { 18503 if (i15 >>> 0 > 2147483645) { 18504 i11 = 46; 18505 break L17; 18506 } 18507 i17 = i15 << 1; 18508 i18 = HEAP32[i10 >> 2] | 0; 18509 if ((i17 | 0) == -2) { 18510 i11 = 48; 18511 break L17; 18512 } 18513 i18 = _luaM_realloc_(i18, HEAP32[i14 >> 2] | 0, i15, i17) | 0; 18514 HEAP32[i14 >> 2] = i18; 18515 HEAP32[i16 >> 2] = i17; 18516 i17 = HEAP32[i13 >> 2] | 0; 18517 i14 = i18; 18518 } else { 18519 i14 = HEAP32[i14 >> 2] | 0; 18520 } 18521 HEAP32[i13 >> 2] = i17 + 1; 18522 HEAP8[i14 + i17 | 0] = i12; 18523 i12 = HEAP32[i9 >> 2] | 0; 18524 i18 = HEAP32[i12 >> 2] | 0; 18525 HEAP32[i12 >> 2] = i18 + -1; 18526 if ((i18 | 0) == 0) { 18527 i12 = _luaZ_fill(i12) | 0; 18528 } else { 18529 i18 = i12 + 4 | 0; 18530 i12 = HEAP32[i18 >> 2] | 0; 18531 HEAP32[i18 >> 2] = i12 + 1; 18532 i12 = HEAPU8[i12] | 0; 18533 } 18534 HEAP32[i3 >> 2] = i12; 18535 } 18536 } 18537 } while (0); 18538 if ((i11 | 0) == 22) { 18539 if ((_skip_sep(i3) | 0) == (i5 | 0)) { 18540 i11 = 23; 18541 break; 18542 } else { 18543 i11 = 13; 18544 continue; 18545 } 18546 } 18547 i12 = HEAP32[i4 >> 2] | 0; 18548 i11 = i12 + 4 | 0; 18549 i15 = HEAP32[i11 >> 2] | 0; 18550 i14 = i12 + 8 | 0; 18551 i13 = HEAP32[i14 >> 2] | 0; 18552 if ((i15 + 1 | 0) >>> 0 > i13 >>> 0) { 18553 if (i13 >>> 0 > 2147483645) { 18554 i11 = 37; 18555 break; 18556 } 18557 i15 = i13 << 1; 18558 i10 = HEAP32[i10 >> 2] | 0; 18559 if ((i15 | 0) == -2) { 18560 i11 = 39; 18561 break; 18562 } 18563 i10 = _luaM_realloc_(i10, HEAP32[i12 >> 2] | 0, i13, i15) | 0; 18564 HEAP32[i12 >> 2] = i10; 18565 HEAP32[i14 >> 2] = i15; 18566 i15 = HEAP32[i11 >> 2] | 0; 18567 } else { 18568 i10 = HEAP32[i12 >> 2] | 0; 18569 } 18570 HEAP32[i11 >> 2] = i15 + 1; 18571 HEAP8[i10 + i15 | 0] = 10; 18572 _inclinenumber(i3); 18573 if (!i8) { 18574 i11 = 13; 18575 continue; 18576 } 18577 HEAP32[(HEAP32[i4 >> 2] | 0) + 4 >> 2] = 0; 18578 i11 = 13; 18579 } 18580 if ((i11 | 0) == 21) { 18581 _lexerror(i3, (i1 | 0) != 0 ? 12512 : 12536, 286); 18582 } else if ((i11 | 0) == 23) { 18583 i15 = HEAP32[i3 >> 2] | 0; 18584 i13 = HEAP32[i4 >> 2] | 0; 18585 i14 = i13 + 4 | 0; 18586 i16 = HEAP32[i14 >> 2] | 0; 18587 i11 = i13 + 8 | 0; 18588 i12 = HEAP32[i11 >> 2] | 0; 18589 do { 18590 if ((i16 + 1 | 0) >>> 0 > i12 >>> 0) { 18591 if (i12 >>> 0 > 2147483645) { 18592 _lexerror(i3, 12368, 0); 18593 } 18594 i17 = i12 << 1; 18595 i16 = HEAP32[i10 >> 2] | 0; 18596 if ((i17 | 0) == -2) { 18597 _luaM_toobig(i16); 18598 } else { 18599 i6 = _luaM_realloc_(i16, HEAP32[i13 >> 2] | 0, i12, i17) | 0; 18600 HEAP32[i13 >> 2] = i6; 18601 HEAP32[i11 >> 2] = i17; 18602 i7 = HEAP32[i14 >> 2] | 0; 18603 break; 18604 } 18605 } else { 18606 i7 = i16; 18607 i6 = HEAP32[i13 >> 2] | 0; 18608 } 18609 } while (0); 18610 HEAP32[i14 >> 2] = i7 + 1; 18611 HEAP8[i6 + i7 | 0] = i15; 18612 i6 = HEAP32[i9 >> 2] | 0; 18613 i18 = HEAP32[i6 >> 2] | 0; 18614 HEAP32[i6 >> 2] = i18 + -1; 18615 if ((i18 | 0) == 0) { 18616 i6 = _luaZ_fill(i6) | 0; 18617 } else { 18618 i18 = i6 + 4 | 0; 18619 i6 = HEAP32[i18 >> 2] | 0; 18620 HEAP32[i18 >> 2] = i6 + 1; 18621 i6 = HEAPU8[i6] | 0; 18622 } 18623 HEAP32[i3 >> 2] = i6; 18624 if (i8) { 18625 STACKTOP = i2; 18626 return; 18627 } 18628 i4 = HEAP32[i4 >> 2] | 0; 18629 i5 = i5 + 2 | 0; 18630 i6 = HEAP32[i10 >> 2] | 0; 18631 i5 = _luaS_newlstr(i6, (HEAP32[i4 >> 2] | 0) + i5 | 0, (HEAP32[i4 + 4 >> 2] | 0) - (i5 << 1) | 0) | 0; 18632 i4 = i6 + 8 | 0; 18633 i7 = HEAP32[i4 >> 2] | 0; 18634 HEAP32[i4 >> 2] = i7 + 16; 18635 HEAP32[i7 >> 2] = i5; 18636 HEAP32[i7 + 8 >> 2] = HEAPU8[i5 + 4 | 0] | 0 | 64; 18637 i7 = _luaH_set(i6, HEAP32[(HEAP32[i3 + 48 >> 2] | 0) + 4 >> 2] | 0, (HEAP32[i4 >> 2] | 0) + -16 | 0) | 0; 18638 i3 = i7 + 8 | 0; 18639 if ((HEAP32[i3 >> 2] | 0) == 0 ? (HEAP32[i7 >> 2] = 1, HEAP32[i3 >> 2] = 1, (HEAP32[(HEAP32[i6 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) : 0) { 18640 _luaC_step(i6); 18641 } 18642 HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + -16; 18643 HEAP32[i1 >> 2] = i5; 18644 STACKTOP = i2; 18645 return; 18646 } else if ((i11 | 0) == 37) { 18647 _lexerror(i3, 12368, 0); 18648 } else if ((i11 | 0) == 39) { 18649 _luaM_toobig(i10); 18650 } else if ((i11 | 0) == 46) { 18651 _lexerror(i3, 12368, 0); 18652 } else if ((i11 | 0) == 48) { 18653 _luaM_toobig(i18); 18654 } 18655 } 18656 function _try_realloc_chunk(i1, i3) { 18657 i1 = i1 | 0; 18658 i3 = i3 | 0; 18659 var i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0; 18660 i2 = STACKTOP; 18661 i4 = i1 + 4 | 0; 18662 i6 = HEAP32[i4 >> 2] | 0; 18663 i8 = i6 & -8; 18664 i5 = i1 + i8 | 0; 18665 i10 = HEAP32[12928 >> 2] | 0; 18666 if (i1 >>> 0 < i10 >>> 0) { 18667 _abort(); 18668 } 18669 i12 = i6 & 3; 18670 if (!((i12 | 0) != 1 & i1 >>> 0 < i5 >>> 0)) { 18671 _abort(); 18672 } 18673 i7 = i1 + (i8 | 4) | 0; 18674 i13 = HEAP32[i7 >> 2] | 0; 18675 if ((i13 & 1 | 0) == 0) { 18676 _abort(); 18677 } 18678 if ((i12 | 0) == 0) { 18679 if (i3 >>> 0 < 256) { 18680 i15 = 0; 18681 STACKTOP = i2; 18682 return i15 | 0; 18683 } 18684 if (!(i8 >>> 0 < (i3 + 4 | 0) >>> 0) ? !((i8 - i3 | 0) >>> 0 > HEAP32[13392 >> 2] << 1 >>> 0) : 0) { 18685 i15 = i1; 18686 STACKTOP = i2; 18687 return i15 | 0; 18688 } 18689 i15 = 0; 18690 STACKTOP = i2; 18691 return i15 | 0; 18692 } 18693 if (!(i8 >>> 0 < i3 >>> 0)) { 18694 i5 = i8 - i3 | 0; 18695 if (!(i5 >>> 0 > 15)) { 18696 i15 = i1; 18697 STACKTOP = i2; 18698 return i15 | 0; 18699 } 18700 HEAP32[i4 >> 2] = i6 & 1 | i3 | 2; 18701 HEAP32[i1 + (i3 + 4) >> 2] = i5 | 3; 18702 HEAP32[i7 >> 2] = HEAP32[i7 >> 2] | 1; 18703 _dispose_chunk(i1 + i3 | 0, i5); 18704 i15 = i1; 18705 STACKTOP = i2; 18706 return i15 | 0; 18707 } 18708 if ((i5 | 0) == (HEAP32[12936 >> 2] | 0)) { 18709 i5 = (HEAP32[12924 >> 2] | 0) + i8 | 0; 18710 if (!(i5 >>> 0 > i3 >>> 0)) { 18711 i15 = 0; 18712 STACKTOP = i2; 18713 return i15 | 0; 18714 } 18715 i15 = i5 - i3 | 0; 18716 HEAP32[i4 >> 2] = i6 & 1 | i3 | 2; 18717 HEAP32[i1 + (i3 + 4) >> 2] = i15 | 1; 18718 HEAP32[12936 >> 2] = i1 + i3; 18719 HEAP32[12924 >> 2] = i15; 18720 i15 = i1; 18721 STACKTOP = i2; 18722 return i15 | 0; 18723 } 18724 if ((i5 | 0) == (HEAP32[12932 >> 2] | 0)) { 18725 i7 = (HEAP32[12920 >> 2] | 0) + i8 | 0; 18726 if (i7 >>> 0 < i3 >>> 0) { 18727 i15 = 0; 18728 STACKTOP = i2; 18729 return i15 | 0; 18730 } 18731 i5 = i7 - i3 | 0; 18732 if (i5 >>> 0 > 15) { 18733 HEAP32[i4 >> 2] = i6 & 1 | i3 | 2; 18734 HEAP32[i1 + (i3 + 4) >> 2] = i5 | 1; 18735 HEAP32[i1 + i7 >> 2] = i5; 18736 i15 = i1 + (i7 + 4) | 0; 18737 HEAP32[i15 >> 2] = HEAP32[i15 >> 2] & -2; 18738 i3 = i1 + i3 | 0; 18739 } else { 18740 HEAP32[i4 >> 2] = i6 & 1 | i7 | 2; 18741 i3 = i1 + (i7 + 4) | 0; 18742 HEAP32[i3 >> 2] = HEAP32[i3 >> 2] | 1; 18743 i3 = 0; 18744 i5 = 0; 18745 } 18746 HEAP32[12920 >> 2] = i5; 18747 HEAP32[12932 >> 2] = i3; 18748 i15 = i1; 18749 STACKTOP = i2; 18750 return i15 | 0; 18751 } 18752 if ((i13 & 2 | 0) != 0) { 18753 i15 = 0; 18754 STACKTOP = i2; 18755 return i15 | 0; 18756 } 18757 i7 = (i13 & -8) + i8 | 0; 18758 if (i7 >>> 0 < i3 >>> 0) { 18759 i15 = 0; 18760 STACKTOP = i2; 18761 return i15 | 0; 18762 } 18763 i6 = i7 - i3 | 0; 18764 i12 = i13 >>> 3; 18765 do { 18766 if (!(i13 >>> 0 < 256)) { 18767 i11 = HEAP32[i1 + (i8 + 24) >> 2] | 0; 18768 i13 = HEAP32[i1 + (i8 + 12) >> 2] | 0; 18769 do { 18770 if ((i13 | 0) == (i5 | 0)) { 18771 i13 = i1 + (i8 + 20) | 0; 18772 i12 = HEAP32[i13 >> 2] | 0; 18773 if ((i12 | 0) == 0) { 18774 i13 = i1 + (i8 + 16) | 0; 18775 i12 = HEAP32[i13 >> 2] | 0; 18776 if ((i12 | 0) == 0) { 18777 i9 = 0; 18778 break; 18779 } 18780 } 18781 while (1) { 18782 i15 = i12 + 20 | 0; 18783 i14 = HEAP32[i15 >> 2] | 0; 18784 if ((i14 | 0) != 0) { 18785 i12 = i14; 18786 i13 = i15; 18787 continue; 18788 } 18789 i15 = i12 + 16 | 0; 18790 i14 = HEAP32[i15 >> 2] | 0; 18791 if ((i14 | 0) == 0) { 18792 break; 18793 } else { 18794 i12 = i14; 18795 i13 = i15; 18796 } 18797 } 18798 if (i13 >>> 0 < i10 >>> 0) { 18799 _abort(); 18800 } else { 18801 HEAP32[i13 >> 2] = 0; 18802 i9 = i12; 18803 break; 18804 } 18805 } else { 18806 i12 = HEAP32[i1 + (i8 + 8) >> 2] | 0; 18807 if (i12 >>> 0 < i10 >>> 0) { 18808 _abort(); 18809 } 18810 i14 = i12 + 12 | 0; 18811 if ((HEAP32[i14 >> 2] | 0) != (i5 | 0)) { 18812 _abort(); 18813 } 18814 i10 = i13 + 8 | 0; 18815 if ((HEAP32[i10 >> 2] | 0) == (i5 | 0)) { 18816 HEAP32[i14 >> 2] = i13; 18817 HEAP32[i10 >> 2] = i12; 18818 i9 = i13; 18819 break; 18820 } else { 18821 _abort(); 18822 } 18823 } 18824 } while (0); 18825 if ((i11 | 0) != 0) { 18826 i10 = HEAP32[i1 + (i8 + 28) >> 2] | 0; 18827 i12 = 13216 + (i10 << 2) | 0; 18828 if ((i5 | 0) == (HEAP32[i12 >> 2] | 0)) { 18829 HEAP32[i12 >> 2] = i9; 18830 if ((i9 | 0) == 0) { 18831 HEAP32[12916 >> 2] = HEAP32[12916 >> 2] & ~(1 << i10); 18832 break; 18833 } 18834 } else { 18835 if (i11 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 18836 _abort(); 18837 } 18838 i10 = i11 + 16 | 0; 18839 if ((HEAP32[i10 >> 2] | 0) == (i5 | 0)) { 18840 HEAP32[i10 >> 2] = i9; 18841 } else { 18842 HEAP32[i11 + 20 >> 2] = i9; 18843 } 18844 if ((i9 | 0) == 0) { 18845 break; 18846 } 18847 } 18848 if (i9 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 18849 _abort(); 18850 } 18851 HEAP32[i9 + 24 >> 2] = i11; 18852 i5 = HEAP32[i1 + (i8 + 16) >> 2] | 0; 18853 do { 18854 if ((i5 | 0) != 0) { 18855 if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 18856 _abort(); 18857 } else { 18858 HEAP32[i9 + 16 >> 2] = i5; 18859 HEAP32[i5 + 24 >> 2] = i9; 18860 break; 18861 } 18862 } 18863 } while (0); 18864 i5 = HEAP32[i1 + (i8 + 20) >> 2] | 0; 18865 if ((i5 | 0) != 0) { 18866 if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) { 18867 _abort(); 18868 } else { 18869 HEAP32[i9 + 20 >> 2] = i5; 18870 HEAP32[i5 + 24 >> 2] = i9; 18871 break; 18872 } 18873 } 18874 } 18875 } else { 18876 i9 = HEAP32[i1 + (i8 + 8) >> 2] | 0; 18877 i8 = HEAP32[i1 + (i8 + 12) >> 2] | 0; 18878 i13 = 12952 + (i12 << 1 << 2) | 0; 18879 if ((i9 | 0) != (i13 | 0)) { 18880 if (i9 >>> 0 < i10 >>> 0) { 18881 _abort(); 18882 } 18883 if ((HEAP32[i9 + 12 >> 2] | 0) != (i5 | 0)) { 18884 _abort(); 18885 } 18886 } 18887 if ((i8 | 0) == (i9 | 0)) { 18888 HEAP32[3228] = HEAP32[3228] & ~(1 << i12); 18889 break; 18890 } 18891 if ((i8 | 0) != (i13 | 0)) { 18892 if (i8 >>> 0 < i10 >>> 0) { 18893 _abort(); 18894 } 18895 i10 = i8 + 8 | 0; 18896 if ((HEAP32[i10 >> 2] | 0) == (i5 | 0)) { 18897 i11 = i10; 18898 } else { 18899 _abort(); 18900 } 18901 } else { 18902 i11 = i8 + 8 | 0; 18903 } 18904 HEAP32[i9 + 12 >> 2] = i8; 18905 HEAP32[i11 >> 2] = i9; 18906 } 18907 } while (0); 18908 if (i6 >>> 0 < 16) { 18909 HEAP32[i4 >> 2] = i7 | HEAP32[i4 >> 2] & 1 | 2; 18910 i15 = i1 + (i7 | 4) | 0; 18911 HEAP32[i15 >> 2] = HEAP32[i15 >> 2] | 1; 18912 i15 = i1; 18913 STACKTOP = i2; 18914 return i15 | 0; 18915 } else { 18916 HEAP32[i4 >> 2] = HEAP32[i4 >> 2] & 1 | i3 | 2; 18917 HEAP32[i1 + (i3 + 4) >> 2] = i6 | 3; 18918 i15 = i1 + (i7 | 4) | 0; 18919 HEAP32[i15 >> 2] = HEAP32[i15 >> 2] | 1; 18920 _dispose_chunk(i1 + i3 | 0, i6); 18921 i15 = i1; 18922 STACKTOP = i2; 18923 return i15 | 0; 18924 } 18925 return 0; 18926 } 18927 function _luaK_posfix(i3, i16, i1, i4, i14) { 18928 i3 = i3 | 0; 18929 i16 = i16 | 0; 18930 i1 = i1 | 0; 18931 i4 = i4 | 0; 18932 i14 = i14 | 0; 18933 var i2 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i15 = 0; 18934 i2 = STACKTOP; 18935 switch (i16 | 0) { 18936 case 14: 18937 { 18938 _luaK_dischargevars(i3, i4); 18939 i6 = i4 + 16 | 0; 18940 i5 = HEAP32[i1 + 16 >> 2] | 0; 18941 do { 18942 if (!((i5 | 0) == -1)) { 18943 i9 = HEAP32[i6 >> 2] | 0; 18944 if ((i9 | 0) == -1) { 18945 HEAP32[i6 >> 2] = i5; 18946 break; 18947 } 18948 i7 = HEAP32[(HEAP32[i3 >> 2] | 0) + 12 >> 2] | 0; 18949 while (1) { 18950 i6 = i7 + (i9 << 2) | 0; 18951 i8 = HEAP32[i6 >> 2] | 0; 18952 i10 = (i8 >>> 14) + -131071 | 0; 18953 if ((i10 | 0) == -1) { 18954 break; 18955 } 18956 i10 = i9 + 1 + i10 | 0; 18957 if ((i10 | 0) == -1) { 18958 break; 18959 } else { 18960 i9 = i10; 18961 } 18962 } 18963 i5 = i5 + ~i9 | 0; 18964 if ((((i5 | 0) > -1 ? i5 : 0 - i5 | 0) | 0) > 131071) { 18965 _luaX_syntaxerror(HEAP32[i3 + 12 >> 2] | 0, 10624); 18966 } else { 18967 HEAP32[i6 >> 2] = (i5 << 14) + 2147467264 | i8 & 16383; 18968 break; 18969 } 18970 } 18971 } while (0); 18972 HEAP32[i1 + 0 >> 2] = HEAP32[i4 + 0 >> 2]; 18973 HEAP32[i1 + 4 >> 2] = HEAP32[i4 + 4 >> 2]; 18974 HEAP32[i1 + 8 >> 2] = HEAP32[i4 + 8 >> 2]; 18975 HEAP32[i1 + 12 >> 2] = HEAP32[i4 + 12 >> 2]; 18976 HEAP32[i1 + 16 >> 2] = HEAP32[i4 + 16 >> 2]; 18977 HEAP32[i1 + 20 >> 2] = HEAP32[i4 + 20 >> 2]; 18978 STACKTOP = i2; 18979 return; 18980 } 18981 case 13: 18982 { 18983 _luaK_dischargevars(i3, i4); 18984 i6 = i4 + 20 | 0; 18985 i5 = HEAP32[i1 + 20 >> 2] | 0; 18986 do { 18987 if (!((i5 | 0) == -1)) { 18988 i9 = HEAP32[i6 >> 2] | 0; 18989 if ((i9 | 0) == -1) { 18990 HEAP32[i6 >> 2] = i5; 18991 break; 18992 } 18993 i7 = HEAP32[(HEAP32[i3 >> 2] | 0) + 12 >> 2] | 0; 18994 while (1) { 18995 i8 = i7 + (i9 << 2) | 0; 18996 i6 = HEAP32[i8 >> 2] | 0; 18997 i10 = (i6 >>> 14) + -131071 | 0; 18998 if ((i10 | 0) == -1) { 18999 break; 19000 } 19001 i10 = i9 + 1 + i10 | 0; 19002 if ((i10 | 0) == -1) { 19003 break; 19004 } else { 19005 i9 = i10; 19006 } 19007 } 19008 i5 = i5 + ~i9 | 0; 19009 if ((((i5 | 0) > -1 ? i5 : 0 - i5 | 0) | 0) > 131071) { 19010 _luaX_syntaxerror(HEAP32[i3 + 12 >> 2] | 0, 10624); 19011 } else { 19012 HEAP32[i8 >> 2] = (i5 << 14) + 2147467264 | i6 & 16383; 19013 break; 19014 } 19015 } 19016 } while (0); 19017 HEAP32[i1 + 0 >> 2] = HEAP32[i4 + 0 >> 2]; 19018 HEAP32[i1 + 4 >> 2] = HEAP32[i4 + 4 >> 2]; 19019 HEAP32[i1 + 8 >> 2] = HEAP32[i4 + 8 >> 2]; 19020 HEAP32[i1 + 12 >> 2] = HEAP32[i4 + 12 >> 2]; 19021 HEAP32[i1 + 16 >> 2] = HEAP32[i4 + 16 >> 2]; 19022 HEAP32[i1 + 20 >> 2] = HEAP32[i4 + 20 >> 2]; 19023 STACKTOP = i2; 19024 return; 19025 } 19026 case 6: 19027 { 19028 i12 = i4 + 16 | 0; 19029 i13 = i4 + 20 | 0; 19030 i16 = (HEAP32[i12 >> 2] | 0) == (HEAP32[i13 >> 2] | 0); 19031 _luaK_dischargevars(i3, i4); 19032 do { 19033 if (!i16) { 19034 if ((HEAP32[i4 >> 2] | 0) == 6) { 19035 i10 = HEAP32[i4 + 8 >> 2] | 0; 19036 if ((HEAP32[i12 >> 2] | 0) == (HEAP32[i13 >> 2] | 0)) { 19037 break; 19038 } 19039 if ((i10 | 0) >= (HEAPU8[i3 + 46 | 0] | 0 | 0)) { 19040 _exp2reg(i3, i4, i10); 19041 break; 19042 } 19043 } 19044 _luaK_exp2nextreg(i3, i4); 19045 } 19046 } while (0); 19047 if ((HEAP32[i4 >> 2] | 0) == 11 ? (i5 = i4 + 8 | 0, i7 = HEAP32[i5 >> 2] | 0, i8 = (HEAP32[i3 >> 2] | 0) + 12 | 0, i9 = HEAP32[i8 >> 2] | 0, i6 = HEAP32[i9 + (i7 << 2) >> 2] | 0, (i6 & 63 | 0) == 22) : 0) { 19048 i4 = i1 + 8 | 0; 19049 if (((HEAP32[i1 >> 2] | 0) == 6 ? (i11 = HEAP32[i4 >> 2] | 0, (i11 & 256 | 0) == 0) : 0) ? (HEAPU8[i3 + 46 | 0] | 0 | 0) <= (i11 | 0) : 0) { 19050 i6 = i3 + 48 | 0; 19051 HEAP8[i6] = (HEAP8[i6] | 0) + -1 << 24 >> 24; 19052 i6 = HEAP32[i5 >> 2] | 0; 19053 i16 = HEAP32[i8 >> 2] | 0; 19054 i9 = i16; 19055 i7 = i6; 19056 i6 = HEAP32[i16 + (i6 << 2) >> 2] | 0; 19057 } 19058 HEAP32[i9 + (i7 << 2) >> 2] = HEAP32[i4 >> 2] << 23 | i6 & 8388607; 19059 HEAP32[i1 >> 2] = 11; 19060 HEAP32[i4 >> 2] = HEAP32[i5 >> 2]; 19061 STACKTOP = i2; 19062 return; 19063 } 19064 _luaK_exp2nextreg(i3, i4); 19065 _codearith(i3, 22, i1, i4, i14); 19066 STACKTOP = i2; 19067 return; 19068 } 19069 case 9: 19070 case 8: 19071 case 7: 19072 { 19073 i7 = i16 + 17 | 0; 19074 i6 = _luaK_exp2RK(i3, i1) | 0; 19075 i5 = _luaK_exp2RK(i3, i4) | 0; 19076 if (((HEAP32[i4 >> 2] | 0) == 6 ? (i15 = HEAP32[i4 + 8 >> 2] | 0, (i15 & 256 | 0) == 0) : 0) ? (HEAPU8[i3 + 46 | 0] | 0 | 0) <= (i15 | 0) : 0) { 19077 i16 = i3 + 48 | 0; 19078 HEAP8[i16] = (HEAP8[i16] | 0) + -1 << 24 >> 24; 19079 } 19080 i4 = i1 + 8 | 0; 19081 if (((HEAP32[i1 >> 2] | 0) == 6 ? (i10 = HEAP32[i4 >> 2] | 0, (i10 & 256 | 0) == 0) : 0) ? (HEAPU8[i3 + 46 | 0] | 0 | 0) <= (i10 | 0) : 0) { 19082 i16 = i3 + 48 | 0; 19083 HEAP8[i16] = (HEAP8[i16] | 0) + -1 << 24 >> 24; 19084 } 19085 HEAP32[i4 >> 2] = _condjump(i3, i7, 1, i6, i5) | 0; 19086 HEAP32[i1 >> 2] = 10; 19087 STACKTOP = i2; 19088 return; 19089 } 19090 case 12: 19091 case 11: 19092 case 10: 19093 { 19094 i7 = i16 + 14 | 0; 19095 i6 = _luaK_exp2RK(i3, i1) | 0; 19096 i5 = _luaK_exp2RK(i3, i4) | 0; 19097 if (((HEAP32[i4 >> 2] | 0) == 6 ? (i13 = HEAP32[i4 + 8 >> 2] | 0, (i13 & 256 | 0) == 0) : 0) ? (HEAPU8[i3 + 46 | 0] | 0 | 0) <= (i13 | 0) : 0) { 19098 i16 = i3 + 48 | 0; 19099 HEAP8[i16] = (HEAP8[i16] | 0) + -1 << 24 >> 24; 19100 } 19101 i4 = i1 + 8 | 0; 19102 if (((HEAP32[i1 >> 2] | 0) == 6 ? (i12 = HEAP32[i4 >> 2] | 0, (i12 & 256 | 0) == 0) : 0) ? (HEAPU8[i3 + 46 | 0] | 0 | 0) <= (i12 | 0) : 0) { 19103 i16 = i3 + 48 | 0; 19104 HEAP8[i16] = (HEAP8[i16] | 0) + -1 << 24 >> 24; 19105 } 19106 i8 = (i7 | 0) == 24; 19107 HEAP32[i4 >> 2] = _condjump(i3, i7, i8 & 1 ^ 1, i8 ? i6 : i5, i8 ? i5 : i6) | 0; 19108 HEAP32[i1 >> 2] = 10; 19109 STACKTOP = i2; 19110 return; 19111 } 19112 case 5: 19113 case 4: 19114 case 3: 19115 case 2: 19116 case 1: 19117 case 0: 19118 { 19119 _codearith(i3, i16 + 13 | 0, i1, i4, i14); 19120 STACKTOP = i2; 19121 return; 19122 } 19123 default: 19124 { 19125 STACKTOP = i2; 19126 return; 19127 } 19128 } 19129 } 19130 function _body(i1, i4, i13, i5) { 19131 i1 = i1 | 0; 19132 i4 = i4 | 0; 19133 i13 = i13 | 0; 19134 i5 = i5 | 0; 19135 var i2 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0; 19136 i6 = STACKTOP; 19137 STACKTOP = STACKTOP + 64 | 0; 19138 i3 = i6 + 12 | 0; 19139 i14 = i6; 19140 i2 = i1 + 48 | 0; 19141 i19 = HEAP32[i2 >> 2] | 0; 19142 i18 = i1 + 52 | 0; 19143 i17 = HEAP32[i18 >> 2] | 0; 19144 i16 = HEAP32[i19 >> 2] | 0; 19145 i19 = i19 + 36 | 0; 19146 i23 = i16 + 56 | 0; 19147 i24 = HEAP32[i23 >> 2] | 0; 19148 i15 = i16 + 16 | 0; 19149 if (((HEAP32[i19 >> 2] | 0) >= (i24 | 0) ? (i21 = _luaM_growaux_(i17, HEAP32[i15 >> 2] | 0, i23, 4, 262143, 6512) | 0, HEAP32[i15 >> 2] = i21, i20 = HEAP32[i23 >> 2] | 0, (i24 | 0) < (i20 | 0)) : 0) ? (i22 = i24 + 1 | 0, HEAP32[i21 + (i24 << 2) >> 2] = 0, (i22 | 0) < (i20 | 0)) : 0) { 19150 while (1) { 19151 i21 = i22 + 1 | 0; 19152 HEAP32[(HEAP32[i15 >> 2] | 0) + (i22 << 2) >> 2] = 0; 19153 if ((i21 | 0) == (i20 | 0)) { 19154 break; 19155 } else { 19156 i22 = i21; 19157 } 19158 } 19159 } 19160 i20 = _luaF_newproto(i17) | 0; 19161 i24 = HEAP32[i19 >> 2] | 0; 19162 HEAP32[i19 >> 2] = i24 + 1; 19163 HEAP32[(HEAP32[i15 >> 2] | 0) + (i24 << 2) >> 2] = i20; 19164 if (!((HEAP8[i20 + 5 | 0] & 3) == 0) ? !((HEAP8[i16 + 5 | 0] & 4) == 0) : 0) { 19165 _luaC_barrier_(i17, i16, i20); 19166 } 19167 HEAP32[i3 >> 2] = i20; 19168 HEAP32[i20 + 64 >> 2] = i5; 19169 i16 = HEAP32[i18 >> 2] | 0; 19170 HEAP32[i3 + 8 >> 2] = HEAP32[i2 >> 2]; 19171 i17 = i3 + 12 | 0; 19172 HEAP32[i17 >> 2] = i1; 19173 HEAP32[i2 >> 2] = i3; 19174 HEAP32[i3 + 20 >> 2] = 0; 19175 HEAP32[i3 + 24 >> 2] = 0; 19176 HEAP32[i3 + 28 >> 2] = -1; 19177 HEAP32[i3 + 32 >> 2] = 0; 19178 HEAP32[i3 + 36 >> 2] = 0; 19179 i22 = i3 + 44 | 0; 19180 i15 = i1 + 64 | 0; 19181 HEAP32[i22 + 0 >> 2] = 0; 19182 HEAP8[i22 + 4 | 0] = 0; 19183 HEAP32[i3 + 40 >> 2] = HEAP32[(HEAP32[i15 >> 2] | 0) + 4 >> 2]; 19184 i15 = i3 + 16 | 0; 19185 HEAP32[i15 >> 2] = 0; 19186 HEAP32[i20 + 36 >> 2] = HEAP32[i1 + 68 >> 2]; 19187 HEAP8[i20 + 78 | 0] = 2; 19188 i22 = _luaH_new(i16) | 0; 19189 HEAP32[i3 + 4 >> 2] = i22; 19190 i23 = i16 + 8 | 0; 19191 i24 = HEAP32[i23 >> 2] | 0; 19192 HEAP32[i24 >> 2] = i22; 19193 HEAP32[i24 + 8 >> 2] = 69; 19194 i24 = (HEAP32[i23 >> 2] | 0) + 16 | 0; 19195 HEAP32[i23 >> 2] = i24; 19196 if (((HEAP32[i16 + 24 >> 2] | 0) - i24 | 0) < 16) { 19197 _luaD_growstack(i16, 0); 19198 } 19199 HEAP8[i14 + 10 | 0] = 0; 19200 HEAP8[i14 + 8 | 0] = HEAP8[i3 + 46 | 0] | 0; 19201 i24 = HEAP32[(HEAP32[i17 >> 2] | 0) + 64 >> 2] | 0; 19202 HEAP16[i14 + 4 >> 1] = HEAP32[i24 + 28 >> 2]; 19203 HEAP16[i14 + 6 >> 1] = HEAP32[i24 + 16 >> 2]; 19204 HEAP8[i14 + 9 | 0] = 0; 19205 HEAP32[i14 >> 2] = HEAP32[i15 >> 2]; 19206 HEAP32[i15 >> 2] = i14; 19207 i14 = i1 + 16 | 0; 19208 if ((HEAP32[i14 >> 2] | 0) != 40) { 19209 _error_expected(i1, 40); 19210 } 19211 _luaX_next(i1); 19212 if ((i13 | 0) != 0) { 19213 _new_localvar(i1, _luaX_newstring(i1, 6456, 4) | 0); 19214 i24 = HEAP32[i2 >> 2] | 0; 19215 i22 = i24 + 46 | 0; 19216 i23 = (HEAPU8[i22] | 0) + 1 | 0; 19217 HEAP8[i22] = i23; 19218 HEAP32[(HEAP32[(HEAP32[i24 >> 2] | 0) + 24 >> 2] | 0) + ((HEAP16[(HEAP32[HEAP32[(HEAP32[i24 + 12 >> 2] | 0) + 64 >> 2] >> 2] | 0) + ((i23 & 255) + -1 + (HEAP32[i24 + 40 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i24 + 20 >> 2]; 19219 } 19220 i13 = HEAP32[i2 >> 2] | 0; 19221 i15 = HEAP32[i13 >> 2] | 0; 19222 i16 = i15 + 77 | 0; 19223 HEAP8[i16] = 0; 19224 i19 = HEAP32[i14 >> 2] | 0; 19225 L20 : do { 19226 if ((i19 | 0) != 41) { 19227 i17 = i1 + 24 | 0; 19228 i18 = 0; 19229 while (1) { 19230 if ((i19 | 0) == 280) { 19231 i17 = 18; 19232 break; 19233 } else if ((i19 | 0) != 288) { 19234 i17 = 19; 19235 break; 19236 } 19237 i24 = HEAP32[i17 >> 2] | 0; 19238 _luaX_next(i1); 19239 _new_localvar(i1, i24); 19240 i18 = i18 + 1 | 0; 19241 if ((HEAP8[i16] | 0) != 0) { 19242 i11 = i18; 19243 break L20; 19244 } 19245 if ((HEAP32[i14 >> 2] | 0) != 44) { 19246 i11 = i18; 19247 break L20; 19248 } 19249 _luaX_next(i1); 19250 i19 = HEAP32[i14 >> 2] | 0; 19251 } 19252 if ((i17 | 0) == 18) { 19253 _luaX_next(i1); 19254 HEAP8[i16] = 1; 19255 i11 = i18; 19256 break; 19257 } else if ((i17 | 0) == 19) { 19258 _luaX_syntaxerror(i1, 6464); 19259 } 19260 } else { 19261 i11 = 0; 19262 } 19263 } while (0); 19264 i18 = HEAP32[i2 >> 2] | 0; 19265 i16 = i18 + 46 | 0; 19266 i17 = (HEAPU8[i16] | 0) + i11 | 0; 19267 HEAP8[i16] = i17; 19268 if ((i11 | 0) != 0 ? (i8 = i18 + 20 | 0, i9 = i18 + 40 | 0, i7 = HEAP32[(HEAP32[i18 >> 2] | 0) + 24 >> 2] | 0, i10 = HEAP32[HEAP32[(HEAP32[i18 + 12 >> 2] | 0) + 64 >> 2] >> 2] | 0, HEAP32[i7 + ((HEAP16[i10 + ((i17 & 255) - i11 + (HEAP32[i9 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i8 >> 2], i12 = i11 + -1 | 0, (i12 | 0) != 0) : 0) { 19269 do { 19270 HEAP32[i7 + ((HEAP16[i10 + ((HEAPU8[i16] | 0) - i12 + (HEAP32[i9 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i8 >> 2]; 19271 i12 = i12 + -1 | 0; 19272 } while ((i12 | 0) != 0); 19273 } 19274 i24 = i13 + 46 | 0; 19275 HEAP8[i15 + 76 | 0] = HEAP8[i24] | 0; 19276 _luaK_reserveregs(i13, HEAPU8[i24] | 0); 19277 if ((HEAP32[i14 >> 2] | 0) != 41) { 19278 _error_expected(i1, 41); 19279 } 19280 _luaX_next(i1); 19281 L39 : while (1) { 19282 i7 = HEAP32[i14 >> 2] | 0; 19283 switch (i7 | 0) { 19284 case 277: 19285 case 286: 19286 case 262: 19287 case 261: 19288 case 260: 19289 { 19290 i17 = 30; 19291 break L39; 19292 } 19293 default: 19294 {} 19295 } 19296 _statement(i1); 19297 if ((i7 | 0) == 274) { 19298 i17 = 30; 19299 break; 19300 } 19301 } 19302 if ((i17 | 0) == 30) { 19303 HEAP32[(HEAP32[i3 >> 2] | 0) + 68 >> 2] = HEAP32[i1 + 4 >> 2]; 19304 _check_match(i1, 262, 265, i5); 19305 i24 = HEAP32[(HEAP32[i2 >> 2] | 0) + 8 >> 2] | 0; 19306 i23 = _luaK_codeABx(i24, 37, 0, (HEAP32[i24 + 36 >> 2] | 0) + -1 | 0) | 0; 19307 HEAP32[i4 + 16 >> 2] = -1; 19308 HEAP32[i4 + 20 >> 2] = -1; 19309 HEAP32[i4 >> 2] = 11; 19310 HEAP32[i4 + 8 >> 2] = i23; 19311 _luaK_exp2nextreg(i24, i4); 19312 _close_func(i1); 19313 STACKTOP = i6; 19314 return; 19315 } 19316 } 19317 function _luaH_newkey(i3, i2, i1) { 19318 i3 = i3 | 0; 19319 i2 = i2 | 0; 19320 i1 = i1 | 0; 19321 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, d21 = 0.0; 19322 i4 = STACKTOP; 19323 STACKTOP = STACKTOP + 144 | 0; 19324 i8 = i4 + 8 | 0; 19325 i10 = i4; 19326 i5 = i4 + 16 | 0; 19327 i6 = i1 + 8 | 0; 19328 i11 = HEAP32[i6 >> 2] | 0; 19329 if ((i11 | 0) == 0) { 19330 _luaG_runerror(i3, 7968, i8); 19331 } else if ((i11 | 0) == 3) { 19332 i15 = 3; 19333 } 19334 if ((i15 | 0) == 3 ? (d21 = +HEAPF64[i1 >> 3], !(d21 == d21 & 0.0 == 0.0)) : 0) { 19335 _luaG_runerror(i3, 7992, i8); 19336 } 19337 i13 = _mainposition(i2, i1) | 0; 19338 i14 = i13 + 8 | 0; 19339 do { 19340 if ((HEAP32[i14 >> 2] | 0) != 0 | (i13 | 0) == 8016) { 19341 i18 = i2 + 20 | 0; 19342 i11 = i2 + 16 | 0; 19343 i17 = HEAP32[i11 >> 2] | 0; 19344 i16 = HEAP32[i18 >> 2] | 0; 19345 while (1) { 19346 if (!(i16 >>> 0 > i17 >>> 0)) { 19347 break; 19348 } 19349 i12 = i16 + -32 | 0; 19350 HEAP32[i18 >> 2] = i12; 19351 if ((HEAP32[i16 + -8 >> 2] | 0) == 0) { 19352 i15 = 37; 19353 break; 19354 } else { 19355 i16 = i12; 19356 } 19357 } 19358 if ((i15 | 0) == 37) { 19359 i5 = _mainposition(i2, i13 + 16 | 0) | 0; 19360 if ((i5 | 0) == (i13 | 0)) { 19361 i20 = i13 + 28 | 0; 19362 HEAP32[i16 + -4 >> 2] = HEAP32[i20 >> 2]; 19363 HEAP32[i20 >> 2] = i12; 19364 break; 19365 } else { 19366 i7 = i5; 19367 } 19368 do { 19369 i5 = i7 + 28 | 0; 19370 i7 = HEAP32[i5 >> 2] | 0; 19371 } while ((i7 | 0) != (i13 | 0)); 19372 HEAP32[i5 >> 2] = i12; 19373 HEAP32[i12 + 0 >> 2] = HEAP32[i13 + 0 >> 2]; 19374 HEAP32[i12 + 4 >> 2] = HEAP32[i13 + 4 >> 2]; 19375 HEAP32[i12 + 8 >> 2] = HEAP32[i13 + 8 >> 2]; 19376 HEAP32[i12 + 12 >> 2] = HEAP32[i13 + 12 >> 2]; 19377 HEAP32[i12 + 16 >> 2] = HEAP32[i13 + 16 >> 2]; 19378 HEAP32[i12 + 20 >> 2] = HEAP32[i13 + 20 >> 2]; 19379 HEAP32[i12 + 24 >> 2] = HEAP32[i13 + 24 >> 2]; 19380 HEAP32[i12 + 28 >> 2] = HEAP32[i13 + 28 >> 2]; 19381 HEAP32[i13 + 28 >> 2] = 0; 19382 HEAP32[i14 >> 2] = 0; 19383 i12 = i13; 19384 break; 19385 } 19386 i13 = i5 + 0 | 0; 19387 i12 = i13 + 124 | 0; 19388 do { 19389 HEAP32[i13 >> 2] = 0; 19390 i13 = i13 + 4 | 0; 19391 } while ((i13 | 0) < (i12 | 0)); 19392 i15 = i2 + 12 | 0; 19393 i13 = HEAP32[i2 + 28 >> 2] | 0; 19394 i12 = 0; 19395 i20 = 1; 19396 i16 = 0; 19397 i14 = 1; 19398 while (1) { 19399 if ((i14 | 0) > (i13 | 0)) { 19400 if ((i20 | 0) > (i13 | 0)) { 19401 break; 19402 } else { 19403 i19 = i13; 19404 } 19405 } else { 19406 i19 = i14; 19407 } 19408 if ((i20 | 0) > (i19 | 0)) { 19409 i18 = i20; 19410 i17 = 0; 19411 } else { 19412 i18 = HEAP32[i15 >> 2] | 0; 19413 i17 = 0; 19414 while (1) { 19415 i17 = ((HEAP32[i18 + (i20 + -1 << 4) + 8 >> 2] | 0) != 0) + i17 | 0; 19416 if ((i20 | 0) >= (i19 | 0)) { 19417 break; 19418 } else { 19419 i20 = i20 + 1 | 0; 19420 } 19421 } 19422 i18 = i19 + 1 | 0; 19423 } 19424 i20 = i5 + (i16 << 2) | 0; 19425 HEAP32[i20 >> 2] = (HEAP32[i20 >> 2] | 0) + i17; 19426 i12 = i17 + i12 | 0; 19427 i16 = i16 + 1 | 0; 19428 if ((i16 | 0) < 31) { 19429 i20 = i18; 19430 i14 = i14 << 1; 19431 } else { 19432 break; 19433 } 19434 } 19435 i14 = 0; 19436 i15 = 1 << (HEAPU8[i2 + 7 | 0] | 0); 19437 i13 = 0; 19438 L32 : while (1) { 19439 i16 = i15; 19440 while (1) { 19441 i15 = i16 + -1 | 0; 19442 if ((i16 | 0) == 0) { 19443 break L32; 19444 } 19445 i16 = HEAP32[i11 >> 2] | 0; 19446 if ((HEAP32[i16 + (i15 << 5) + 8 >> 2] | 0) == 0) { 19447 i16 = i15; 19448 } else { 19449 break; 19450 } 19451 } 19452 if (((HEAP32[i16 + (i15 << 5) + 24 >> 2] | 0) == 3 ? (d21 = +HEAPF64[i16 + (i15 << 5) + 16 >> 3], HEAPF64[i10 >> 3] = d21 + 6755399441055744.0, i9 = HEAP32[i10 >> 2] | 0, +(i9 | 0) == d21) : 0) ? (i9 + -1 | 0) >>> 0 < 1073741824 : 0) { 19453 i16 = i5 + ((_luaO_ceillog2(i9) | 0) << 2) | 0; 19454 HEAP32[i16 >> 2] = (HEAP32[i16 >> 2] | 0) + 1; 19455 i16 = 1; 19456 } else { 19457 i16 = 0; 19458 } 19459 i14 = i16 + i14 | 0; 19460 i13 = i13 + 1 | 0; 19461 } 19462 i9 = i14 + i12 | 0; 19463 if (((HEAP32[i6 >> 2] | 0) == 3 ? (d21 = +HEAPF64[i1 >> 3], HEAPF64[i8 >> 3] = d21 + 6755399441055744.0, i7 = HEAP32[i8 >> 2] | 0, +(i7 | 0) == d21) : 0) ? (i7 + -1 | 0) >>> 0 < 1073741824 : 0) { 19464 i6 = i5 + ((_luaO_ceillog2(i7) | 0) << 2) | 0; 19465 HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + 1; 19466 i6 = 1; 19467 } else { 19468 i6 = 0; 19469 } 19470 i7 = i9 + i6 | 0; 19471 L49 : do { 19472 if ((i7 | 0) > 0) { 19473 i14 = 0; 19474 i10 = 0; 19475 i6 = 0; 19476 i8 = 0; 19477 i11 = 0; 19478 i9 = 1; 19479 while (1) { 19480 i15 = HEAP32[i5 + (i6 << 2) >> 2] | 0; 19481 if ((i15 | 0) > 0) { 19482 i15 = i15 + i10 | 0; 19483 i14 = (i15 | 0) > (i14 | 0); 19484 i10 = i15; 19485 i8 = i14 ? i9 : i8; 19486 i11 = i14 ? i15 : i11; 19487 } 19488 if ((i10 | 0) == (i7 | 0)) { 19489 break L49; 19490 } 19491 i9 = i9 << 1; 19492 i14 = (i9 | 0) / 2 | 0; 19493 if ((i14 | 0) < (i7 | 0)) { 19494 i6 = i6 + 1 | 0; 19495 } else { 19496 break; 19497 } 19498 } 19499 } else { 19500 i8 = 0; 19501 i11 = 0; 19502 } 19503 } while (0); 19504 _luaH_resize(i3, i2, i8, i12 + 1 + i13 - i11 | 0); 19505 i5 = _luaH_get(i2, i1) | 0; 19506 if ((i5 | 0) != 5192) { 19507 i20 = i5; 19508 STACKTOP = i4; 19509 return i20 | 0; 19510 } 19511 i20 = _luaH_newkey(i3, i2, i1) | 0; 19512 STACKTOP = i4; 19513 return i20 | 0; 19514 } else { 19515 i12 = i13; 19516 } 19517 } while (0); 19518 i18 = i1; 19519 i19 = HEAP32[i18 + 4 >> 2] | 0; 19520 i20 = i12 + 16 | 0; 19521 HEAP32[i20 >> 2] = HEAP32[i18 >> 2]; 19522 HEAP32[i20 + 4 >> 2] = i19; 19523 HEAP32[i12 + 24 >> 2] = HEAP32[i6 >> 2]; 19524 if (((HEAP32[i6 >> 2] & 64 | 0) != 0 ? !((HEAP8[(HEAP32[i1 >> 2] | 0) + 5 | 0] & 3) == 0) : 0) ? !((HEAP8[i2 + 5 | 0] & 4) == 0) : 0) { 19525 _luaC_barrierback_(i3, i2); 19526 } 19527 i20 = i12; 19528 STACKTOP = i4; 19529 return i20 | 0; 19530 } 19531 function _luaV_concat(i7, i10) { 19532 i7 = i7 | 0; 19533 i10 = i10 | 0; 19534 var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0, i9 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0; 19535 i5 = STACKTOP; 19536 STACKTOP = STACKTOP + 48 | 0; 19537 i9 = i5; 19538 i8 = i5 + 8 | 0; 19539 i6 = i7 + 8 | 0; 19540 i2 = i7 + 12 | 0; 19541 i3 = i7 + 28 | 0; 19542 i4 = i7 + 16 | 0; 19543 i11 = HEAP32[i6 >> 2] | 0; 19544 L1 : while (1) { 19545 i14 = i11 + -32 | 0; 19546 i12 = i11 + -24 | 0; 19547 i17 = HEAP32[i12 >> 2] | 0; 19548 i13 = i11 + -16 | 0; 19549 do { 19550 if ((i17 & 15 | 0) == 4 | (i17 | 0) == 3) { 19551 i15 = i11 + -8 | 0; 19552 i16 = HEAP32[i15 >> 2] | 0; 19553 if ((i16 & 15 | 0) == 4) { 19554 i16 = i13; 19555 } else { 19556 if ((i16 | 0) != 3) { 19557 i1 = 7; 19558 break; 19559 } 19560 HEAPF64[tempDoublePtr >> 3] = +HEAPF64[i13 >> 3]; 19561 HEAP32[i9 >> 2] = HEAP32[tempDoublePtr >> 2]; 19562 HEAP32[i9 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2]; 19563 i16 = _luaS_newlstr(i7, i8, _sprintf(i8 | 0, 8936, i9 | 0) | 0) | 0; 19564 HEAP32[i13 >> 2] = i16; 19565 HEAP32[i15 >> 2] = HEAPU8[i16 + 4 | 0] | 0 | 64; 19566 i16 = i13; 19567 i17 = HEAP32[i12 >> 2] | 0; 19568 } 19569 i16 = HEAP32[(HEAP32[i16 >> 2] | 0) + 12 >> 2] | 0; 19570 i18 = (i17 & 15 | 0) == 4; 19571 if ((i16 | 0) == 0) { 19572 if (i18) { 19573 i12 = 2; 19574 break; 19575 } 19576 if ((i17 | 0) != 3) { 19577 i12 = 2; 19578 break; 19579 } 19580 HEAPF64[tempDoublePtr >> 3] = +HEAPF64[i14 >> 3]; 19581 HEAP32[i9 >> 2] = HEAP32[tempDoublePtr >> 2]; 19582 HEAP32[i9 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2]; 19583 i18 = _luaS_newlstr(i7, i8, _sprintf(i8 | 0, 8936, i9 | 0) | 0) | 0; 19584 HEAP32[i14 >> 2] = i18; 19585 HEAP32[i12 >> 2] = HEAPU8[i18 + 4 | 0] | 0 | 64; 19586 i12 = 2; 19587 break; 19588 } 19589 if (i18 ? (HEAP32[(HEAP32[i14 >> 2] | 0) + 12 >> 2] | 0) == 0 : 0) { 19590 i16 = i13; 19591 i17 = HEAP32[i16 + 4 >> 2] | 0; 19592 i18 = i14; 19593 HEAP32[i18 >> 2] = HEAP32[i16 >> 2]; 19594 HEAP32[i18 + 4 >> 2] = i17; 19595 HEAP32[i12 >> 2] = HEAP32[i15 >> 2]; 19596 i12 = 2; 19597 break; 19598 } 19599 L19 : do { 19600 if ((i10 | 0) > 1) { 19601 i12 = 1; 19602 do { 19603 i15 = ~i12; 19604 i14 = i11 + (i15 << 4) | 0; 19605 i15 = i11 + (i15 << 4) + 8 | 0; 19606 i13 = HEAP32[i15 >> 2] | 0; 19607 if ((i13 & 15 | 0) != 4) { 19608 if ((i13 | 0) != 3) { 19609 break L19; 19610 } 19611 HEAPF64[tempDoublePtr >> 3] = +HEAPF64[i14 >> 3]; 19612 HEAP32[i9 >> 2] = HEAP32[tempDoublePtr >> 2]; 19613 HEAP32[i9 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2]; 19614 i18 = _luaS_newlstr(i7, i8, _sprintf(i8 | 0, 8936, i9 | 0) | 0) | 0; 19615 HEAP32[i14 >> 2] = i18; 19616 HEAP32[i15 >> 2] = HEAPU8[i18 + 4 | 0] | 0 | 64; 19617 } 19618 i13 = HEAP32[(HEAP32[i14 >> 2] | 0) + 12 >> 2] | 0; 19619 if (!(i13 >>> 0 < (-3 - i16 | 0) >>> 0)) { 19620 i1 = 24; 19621 break L1; 19622 } 19623 i16 = i13 + i16 | 0; 19624 i12 = i12 + 1 | 0; 19625 } while ((i12 | 0) < (i10 | 0)); 19626 } else { 19627 i12 = 1; 19628 } 19629 } while (0); 19630 i14 = _luaZ_openspace(i7, (HEAP32[i2 >> 2] | 0) + 144 | 0, i16) | 0; 19631 i15 = i12; 19632 i13 = 0; 19633 do { 19634 i17 = HEAP32[i11 + (0 - i15 << 4) >> 2] | 0; 19635 i18 = HEAP32[i17 + 12 >> 2] | 0; 19636 _memcpy(i14 + i13 | 0, i17 + 16 | 0, i18 | 0) | 0; 19637 i13 = i18 + i13 | 0; 19638 i15 = i15 + -1 | 0; 19639 } while ((i15 | 0) > 0); 19640 i18 = 0 - i12 | 0; 19641 i17 = _luaS_newlstr(i7, i14, i13) | 0; 19642 HEAP32[i11 + (i18 << 4) >> 2] = i17; 19643 HEAP32[i11 + (i18 << 4) + 8 >> 2] = HEAPU8[i17 + 4 | 0] | 0 | 64; 19644 } else { 19645 i1 = 7; 19646 } 19647 } while (0); 19648 if ((i1 | 0) == 7) { 19649 i1 = 0; 19650 i15 = _luaT_gettmbyobj(i7, i14, 15) | 0; 19651 if ((HEAP32[i15 + 8 >> 2] | 0) == 0) { 19652 i15 = _luaT_gettmbyobj(i7, i13, 15) | 0; 19653 if ((HEAP32[i15 + 8 >> 2] | 0) == 0) { 19654 i1 = 10; 19655 break; 19656 } 19657 } 19658 i18 = i14 - (HEAP32[i3 >> 2] | 0) | 0; 19659 i16 = HEAP32[i6 >> 2] | 0; 19660 HEAP32[i6 >> 2] = i16 + 16; 19661 i20 = i15; 19662 i19 = HEAP32[i20 + 4 >> 2] | 0; 19663 i17 = i16; 19664 HEAP32[i17 >> 2] = HEAP32[i20 >> 2]; 19665 HEAP32[i17 + 4 >> 2] = i19; 19666 HEAP32[i16 + 8 >> 2] = HEAP32[i15 + 8 >> 2]; 19667 i15 = HEAP32[i6 >> 2] | 0; 19668 HEAP32[i6 >> 2] = i15 + 16; 19669 i16 = i14; 19670 i17 = HEAP32[i16 + 4 >> 2] | 0; 19671 i14 = i15; 19672 HEAP32[i14 >> 2] = HEAP32[i16 >> 2]; 19673 HEAP32[i14 + 4 >> 2] = i17; 19674 HEAP32[i15 + 8 >> 2] = HEAP32[i12 >> 2]; 19675 i12 = HEAP32[i6 >> 2] | 0; 19676 HEAP32[i6 >> 2] = i12 + 16; 19677 i15 = i13; 19678 i14 = HEAP32[i15 + 4 >> 2] | 0; 19679 i17 = i12; 19680 HEAP32[i17 >> 2] = HEAP32[i15 >> 2]; 19681 HEAP32[i17 + 4 >> 2] = i14; 19682 HEAP32[i12 + 8 >> 2] = HEAP32[i11 + -8 >> 2]; 19683 _luaD_call(i7, (HEAP32[i6 >> 2] | 0) + -48 | 0, 1, HEAP8[(HEAP32[i4 >> 2] | 0) + 18 | 0] & 1); 19684 i12 = HEAP32[i3 >> 2] | 0; 19685 i17 = HEAP32[i6 >> 2] | 0; 19686 i14 = i17 + -16 | 0; 19687 HEAP32[i6 >> 2] = i14; 19688 i15 = HEAP32[i14 + 4 >> 2] | 0; 19689 i16 = i12 + i18 | 0; 19690 HEAP32[i16 >> 2] = HEAP32[i14 >> 2]; 19691 HEAP32[i16 + 4 >> 2] = i15; 19692 HEAP32[i12 + (i18 + 8) >> 2] = HEAP32[i17 + -8 >> 2]; 19693 i12 = 2; 19694 } 19695 i10 = i10 + 1 - i12 | 0; 19696 i11 = (HEAP32[i6 >> 2] | 0) + (1 - i12 << 4) | 0; 19697 HEAP32[i6 >> 2] = i11; 19698 if ((i10 | 0) <= 1) { 19699 i1 = 30; 19700 break; 19701 } 19702 } 19703 if ((i1 | 0) == 10) { 19704 _luaG_concaterror(i7, i14, i13); 19705 } else if ((i1 | 0) == 24) { 19706 _luaG_runerror(i7, 9e3, i9); 19707 } else if ((i1 | 0) == 30) { 19708 STACKTOP = i5; 19709 return; 19710 } 19711 } 19712 function _str_gsub(i1) { 19713 i1 = i1 | 0; 19714 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0; 19715 i3 = STACKTOP; 19716 STACKTOP = STACKTOP + 1344 | 0; 19717 i4 = i3; 19718 i5 = i3 + 1336 | 0; 19719 i14 = i3 + 1332 | 0; 19720 i10 = i3 + 1328 | 0; 19721 i6 = i3 + 1048 | 0; 19722 i2 = i3 + 8 | 0; 19723 i20 = _luaL_checklstring(i1, 1, i14) | 0; 19724 i13 = _luaL_checklstring(i1, 2, i10) | 0; 19725 i8 = _lua_type(i1, 3) | 0; 19726 i9 = _luaL_optinteger(i1, 4, (HEAP32[i14 >> 2] | 0) + 1 | 0) | 0; 19727 i7 = (HEAP8[i13] | 0) == 94; 19728 if (!((i8 + -3 | 0) >>> 0 < 2 | (i8 | 0) == 6 | (i8 | 0) == 5)) { 19729 _luaL_argerror(i1, 3, 7528) | 0; 19730 } 19731 _luaL_buffinit(i1, i2); 19732 if (i7) { 19733 i15 = (HEAP32[i10 >> 2] | 0) + -1 | 0; 19734 HEAP32[i10 >> 2] = i15; 19735 i13 = i13 + 1 | 0; 19736 } else { 19737 i15 = HEAP32[i10 >> 2] | 0; 19738 } 19739 i11 = i6 + 16 | 0; 19740 HEAP32[i11 >> 2] = i1; 19741 HEAP32[i6 >> 2] = 200; 19742 i12 = i6 + 4 | 0; 19743 HEAP32[i12 >> 2] = i20; 19744 i10 = i6 + 8 | 0; 19745 HEAP32[i10 >> 2] = i20 + (HEAP32[i14 >> 2] | 0); 19746 HEAP32[i6 + 12 >> 2] = i13 + i15; 19747 i14 = i6 + 20 | 0; 19748 i15 = i2 + 8 | 0; 19749 i18 = i2 + 4 | 0; 19750 i16 = i6 + 28 | 0; 19751 i17 = i6 + 24 | 0; 19752 i22 = 0; 19753 while (1) { 19754 if (!(i22 >>> 0 < i9 >>> 0)) { 19755 i19 = 48; 19756 break; 19757 } 19758 HEAP32[i14 >> 2] = 0; 19759 i21 = _match(i6, i20, i13) | 0; 19760 if ((i21 | 0) != 0) { 19761 i22 = i22 + 1 | 0; 19762 i23 = HEAP32[i11 >> 2] | 0; 19763 if ((i8 | 0) == 5) { 19764 do { 19765 if ((HEAP32[i14 >> 2] | 0) > 0) { 19766 i24 = HEAP32[i16 >> 2] | 0; 19767 if (!((i24 | 0) == -1)) { 19768 i25 = HEAP32[i17 >> 2] | 0; 19769 if ((i24 | 0) == -2) { 19770 _lua_pushinteger(i23, i25 + 1 - (HEAP32[i12 >> 2] | 0) | 0); 19771 break; 19772 } else { 19773 i19 = i23; 19774 } 19775 } else { 19776 _luaL_error(i23, 7248, i4) | 0; 19777 i19 = HEAP32[i11 >> 2] | 0; 19778 i25 = HEAP32[i17 >> 2] | 0; 19779 } 19780 _lua_pushlstring(i19, i25, i24) | 0; 19781 } else { 19782 _lua_pushlstring(i23, i20, i21 - i20 | 0) | 0; 19783 } 19784 } while (0); 19785 _lua_gettable(i23, 3); 19786 i19 = 37; 19787 } else if ((i8 | 0) != 6) { 19788 i24 = _lua_tolstring(i23, 3, i5) | 0; 19789 if ((HEAP32[i5 >> 2] | 0) != 0) { 19790 i23 = i21 - i20 | 0; 19791 i25 = 0; 19792 do { 19793 i26 = i24 + i25 | 0; 19794 i27 = HEAP8[i26] | 0; 19795 do { 19796 if (i27 << 24 >> 24 == 37) { 19797 i25 = i25 + 1 | 0; 19798 i26 = i24 + i25 | 0; 19799 i28 = HEAP8[i26] | 0; 19800 i27 = i28 << 24 >> 24; 19801 if (((i28 & 255) + -48 | 0) >>> 0 < 10) { 19802 if (i28 << 24 >> 24 == 48) { 19803 _luaL_addlstring(i2, i20, i23); 19804 break; 19805 } else { 19806 _push_onecapture(i6, i27 + -49 | 0, i20, i21); 19807 _luaL_addvalue(i2); 19808 break; 19809 } 19810 } 19811 if (!(i28 << 24 >> 24 == 37)) { 19812 i28 = HEAP32[i11 >> 2] | 0; 19813 HEAP32[i4 >> 2] = 37; 19814 _luaL_error(i28, 7600, i4) | 0; 19815 } 19816 i27 = HEAP32[i15 >> 2] | 0; 19817 if (!(i27 >>> 0 < (HEAP32[i18 >> 2] | 0) >>> 0)) { 19818 _luaL_prepbuffsize(i2, 1) | 0; 19819 i27 = HEAP32[i15 >> 2] | 0; 19820 } 19821 i28 = HEAP8[i26] | 0; 19822 HEAP32[i15 >> 2] = i27 + 1; 19823 HEAP8[(HEAP32[i2 >> 2] | 0) + i27 | 0] = i28; 19824 } else { 19825 i28 = HEAP32[i15 >> 2] | 0; 19826 if (!(i28 >>> 0 < (HEAP32[i18 >> 2] | 0) >>> 0)) { 19827 _luaL_prepbuffsize(i2, 1) | 0; 19828 i28 = HEAP32[i15 >> 2] | 0; 19829 i27 = HEAP8[i26] | 0; 19830 } 19831 HEAP32[i15 >> 2] = i28 + 1; 19832 HEAP8[(HEAP32[i2 >> 2] | 0) + i28 | 0] = i27; 19833 } 19834 } while (0); 19835 i25 = i25 + 1 | 0; 19836 } while (i25 >>> 0 < (HEAP32[i5 >> 2] | 0) >>> 0); 19837 } 19838 } else { 19839 _lua_pushvalue(i23, 3); 19840 i19 = HEAP32[i14 >> 2] | 0; 19841 i19 = (i19 | 0) != 0 | (i20 | 0) == 0 ? i19 : 1; 19842 _luaL_checkstack(HEAP32[i11 >> 2] | 0, i19, 7200); 19843 if ((i19 | 0) > 0) { 19844 i24 = 0; 19845 do { 19846 _push_onecapture(i6, i24, i20, i21); 19847 i24 = i24 + 1 | 0; 19848 } while ((i24 | 0) != (i19 | 0)); 19849 } 19850 _lua_callk(i23, i19, 1, 0, 0); 19851 i19 = 37; 19852 } 19853 if ((i19 | 0) == 37) { 19854 i19 = 0; 19855 if ((_lua_toboolean(i23, -1) | 0) != 0) { 19856 if ((_lua_isstring(i23, -1) | 0) == 0) { 19857 HEAP32[i4 >> 2] = _lua_typename(i23, _lua_type(i23, -1) | 0) | 0; 19858 _luaL_error(i23, 7560, i4) | 0; 19859 } 19860 } else { 19861 _lua_settop(i23, -2); 19862 _lua_pushlstring(i23, i20, i21 - i20 | 0) | 0; 19863 } 19864 _luaL_addvalue(i2); 19865 } 19866 if (i21 >>> 0 > i20 >>> 0) { 19867 i20 = i21; 19868 } else { 19869 i19 = 43; 19870 } 19871 } else { 19872 i19 = 43; 19873 } 19874 if ((i19 | 0) == 43) { 19875 i19 = 0; 19876 if (!(i20 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0)) { 19877 i19 = 48; 19878 break; 19879 } 19880 i21 = HEAP32[i15 >> 2] | 0; 19881 if (!(i21 >>> 0 < (HEAP32[i18 >> 2] | 0) >>> 0)) { 19882 _luaL_prepbuffsize(i2, 1) | 0; 19883 i21 = HEAP32[i15 >> 2] | 0; 19884 } 19885 i28 = HEAP8[i20] | 0; 19886 HEAP32[i15 >> 2] = i21 + 1; 19887 HEAP8[(HEAP32[i2 >> 2] | 0) + i21 | 0] = i28; 19888 i20 = i20 + 1 | 0; 19889 } 19890 if (i7) { 19891 i19 = 48; 19892 break; 19893 } 19894 } 19895 if ((i19 | 0) == 48) { 19896 _luaL_addlstring(i2, i20, (HEAP32[i10 >> 2] | 0) - i20 | 0); 19897 _luaL_pushresult(i2); 19898 _lua_pushinteger(i1, i22); 19899 STACKTOP = i3; 19900 return 2; 19901 } 19902 return 0; 19903 } 19904 function _constructor(i11, i13) { 19905 i11 = i11 | 0; 19906 i13 = i13 | 0; 19907 var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i12 = 0, i14 = 0, i15 = 0, i16 = 0; 19908 i5 = STACKTOP; 19909 STACKTOP = STACKTOP + 64 | 0; 19910 i10 = i5 + 40 | 0; 19911 i8 = i5; 19912 i12 = i11 + 48 | 0; 19913 i6 = HEAP32[i12 >> 2] | 0; 19914 i9 = HEAP32[i11 + 4 >> 2] | 0; 19915 i2 = _luaK_codeABC(i6, 11, 0, 0, 0) | 0; 19916 i7 = i8 + 36 | 0; 19917 HEAP32[i7 >> 2] = 0; 19918 i4 = i8 + 28 | 0; 19919 HEAP32[i4 >> 2] = 0; 19920 i3 = i8 + 32 | 0; 19921 HEAP32[i3 >> 2] = 0; 19922 i1 = i8 + 24 | 0; 19923 HEAP32[i1 >> 2] = i13; 19924 HEAP32[i13 + 16 >> 2] = -1; 19925 HEAP32[i13 + 20 >> 2] = -1; 19926 HEAP32[i13 >> 2] = 11; 19927 HEAP32[i13 + 8 >> 2] = i2; 19928 HEAP32[i8 + 16 >> 2] = -1; 19929 HEAP32[i8 + 20 >> 2] = -1; 19930 HEAP32[i8 >> 2] = 0; 19931 HEAP32[i8 + 8 >> 2] = 0; 19932 _luaK_exp2nextreg(HEAP32[i12 >> 2] | 0, i13); 19933 i13 = i11 + 16 | 0; 19934 if ((HEAP32[i13 >> 2] | 0) != 123) { 19935 _error_expected(i11, 123); 19936 } 19937 _luaX_next(i11); 19938 L4 : do { 19939 if ((HEAP32[i13 >> 2] | 0) != 125) { 19940 L5 : while (1) { 19941 if ((HEAP32[i8 >> 2] | 0) != 0 ? (_luaK_exp2nextreg(i6, i8), HEAP32[i8 >> 2] = 0, (HEAP32[i7 >> 2] | 0) == 50) : 0) { 19942 _luaK_setlist(i6, HEAP32[(HEAP32[i1 >> 2] | 0) + 8 >> 2] | 0, HEAP32[i3 >> 2] | 0, 50); 19943 HEAP32[i7 >> 2] = 0; 19944 } 19945 i14 = HEAP32[i13 >> 2] | 0; 19946 do { 19947 if ((i14 | 0) == 288) { 19948 if ((_luaX_lookahead(i11) | 0) == 61) { 19949 _recfield(i11, i8); 19950 break; 19951 } 19952 _subexpr(i11, i8, 0) | 0; 19953 i14 = HEAP32[i12 >> 2] | 0; 19954 i15 = HEAP32[i3 >> 2] | 0; 19955 if ((i15 | 0) > 2147483645) { 19956 i12 = 10; 19957 break L5; 19958 } 19959 HEAP32[i3 >> 2] = i15 + 1; 19960 HEAP32[i7 >> 2] = (HEAP32[i7 >> 2] | 0) + 1; 19961 } else if ((i14 | 0) == 91) { 19962 _recfield(i11, i8); 19963 } else { 19964 _subexpr(i11, i8, 0) | 0; 19965 i14 = HEAP32[i12 >> 2] | 0; 19966 i15 = HEAP32[i3 >> 2] | 0; 19967 if ((i15 | 0) > 2147483645) { 19968 i12 = 17; 19969 break L5; 19970 } 19971 HEAP32[i3 >> 2] = i15 + 1; 19972 HEAP32[i7 >> 2] = (HEAP32[i7 >> 2] | 0) + 1; 19973 } 19974 } while (0); 19975 i14 = HEAP32[i13 >> 2] | 0; 19976 if ((i14 | 0) == 44) { 19977 _luaX_next(i11); 19978 } else if ((i14 | 0) == 59) { 19979 _luaX_next(i11); 19980 } else { 19981 break L4; 19982 } 19983 if ((HEAP32[i13 >> 2] | 0) == 125) { 19984 break L4; 19985 } 19986 } 19987 if ((i12 | 0) == 10) { 19988 i12 = i14 + 12 | 0; 19989 i13 = HEAP32[(HEAP32[i12 >> 2] | 0) + 52 >> 2] | 0; 19990 i14 = HEAP32[(HEAP32[i14 >> 2] | 0) + 64 >> 2] | 0; 19991 if ((i14 | 0) == 0) { 19992 i16 = 6552; 19993 HEAP32[i10 >> 2] = 6528; 19994 i15 = i10 + 4 | 0; 19995 HEAP32[i15 >> 2] = 2147483645; 19996 i15 = i10 + 8 | 0; 19997 HEAP32[i15 >> 2] = i16; 19998 i15 = _luaO_pushfstring(i13, 6592, i10) | 0; 19999 i16 = HEAP32[i12 >> 2] | 0; 20000 _luaX_syntaxerror(i16, i15); 20001 } 20002 HEAP32[i10 >> 2] = i14; 20003 i15 = _luaO_pushfstring(i13, 6568, i10) | 0; 20004 HEAP32[i10 >> 2] = 6528; 20005 i16 = i10 + 4 | 0; 20006 HEAP32[i16 >> 2] = 2147483645; 20007 i16 = i10 + 8 | 0; 20008 HEAP32[i16 >> 2] = i15; 20009 i16 = _luaO_pushfstring(i13, 6592, i10) | 0; 20010 i15 = HEAP32[i12 >> 2] | 0; 20011 _luaX_syntaxerror(i15, i16); 20012 } else if ((i12 | 0) == 17) { 20013 i13 = i14 + 12 | 0; 20014 i12 = HEAP32[(HEAP32[i13 >> 2] | 0) + 52 >> 2] | 0; 20015 i14 = HEAP32[(HEAP32[i14 >> 2] | 0) + 64 >> 2] | 0; 20016 if ((i14 | 0) == 0) { 20017 i15 = 6552; 20018 HEAP32[i10 >> 2] = 6528; 20019 i16 = i10 + 4 | 0; 20020 HEAP32[i16 >> 2] = 2147483645; 20021 i16 = i10 + 8 | 0; 20022 HEAP32[i16 >> 2] = i15; 20023 i16 = _luaO_pushfstring(i12, 6592, i10) | 0; 20024 i15 = HEAP32[i13 >> 2] | 0; 20025 _luaX_syntaxerror(i15, i16); 20026 } 20027 HEAP32[i10 >> 2] = i14; 20028 i15 = _luaO_pushfstring(i12, 6568, i10) | 0; 20029 HEAP32[i10 >> 2] = 6528; 20030 i16 = i10 + 4 | 0; 20031 HEAP32[i16 >> 2] = 2147483645; 20032 i16 = i10 + 8 | 0; 20033 HEAP32[i16 >> 2] = i15; 20034 i16 = _luaO_pushfstring(i12, 6592, i10) | 0; 20035 i15 = HEAP32[i13 >> 2] | 0; 20036 _luaX_syntaxerror(i15, i16); 20037 } 20038 } 20039 } while (0); 20040 _check_match(i11, 125, 123, i9); 20041 i9 = HEAP32[i7 >> 2] | 0; 20042 do { 20043 if ((i9 | 0) != 0) { 20044 i10 = HEAP32[i8 >> 2] | 0; 20045 if ((i10 | 0) != 0) if ((i10 | 0) == 13 | (i10 | 0) == 12) { 20046 _luaK_setreturns(i6, i8, -1); 20047 _luaK_setlist(i6, HEAP32[(HEAP32[i1 >> 2] | 0) + 8 >> 2] | 0, HEAP32[i3 >> 2] | 0, -1); 20048 HEAP32[i3 >> 2] = (HEAP32[i3 >> 2] | 0) + -1; 20049 break; 20050 } else { 20051 _luaK_exp2nextreg(i6, i8); 20052 i9 = HEAP32[i7 >> 2] | 0; 20053 } 20054 _luaK_setlist(i6, HEAP32[(HEAP32[i1 >> 2] | 0) + 8 >> 2] | 0, HEAP32[i3 >> 2] | 0, i9); 20055 } 20056 } while (0); 20057 i16 = HEAP32[(HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] | 0) + (i2 << 2) >> 2] & 8388607; 20058 i16 = (_luaO_int2fb(HEAP32[i3 >> 2] | 0) | 0) << 23 | i16; 20059 HEAP32[(HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] | 0) + (i2 << 2) >> 2] = i16; 20060 i16 = (_luaO_int2fb(HEAP32[i4 >> 2] | 0) | 0) << 14 & 8372224 | i16 & -8372225; 20061 HEAP32[(HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] | 0) + (i2 << 2) >> 2] = i16; 20062 STACKTOP = i5; 20063 return; 20064 } 20065 function _luaK_prefix(i4, i14, i7, i13) { 20066 i4 = i4 | 0; 20067 i14 = i14 | 0; 20068 i7 = i7 | 0; 20069 i13 = i13 | 0; 20070 var i1 = 0, i2 = 0, i3 = 0, i5 = 0, i6 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0; 20071 i1 = STACKTOP; 20072 STACKTOP = STACKTOP + 32 | 0; 20073 i12 = i1; 20074 HEAP32[i12 + 20 >> 2] = -1; 20075 HEAP32[i12 + 16 >> 2] = -1; 20076 HEAP32[i12 >> 2] = 5; 20077 HEAPF64[i12 + 8 >> 3] = 0.0; 20078 if ((i14 | 0) == 1) { 20079 _luaK_dischargevars(i4, i7); 20080 switch (HEAP32[i7 >> 2] | 0) { 20081 case 2: 20082 case 5: 20083 case 4: 20084 { 20085 HEAP32[i7 >> 2] = 3; 20086 break; 20087 } 20088 case 10: 20089 { 20090 i13 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0; 20091 i12 = HEAP32[i7 + 8 >> 2] | 0; 20092 i10 = i13 + (i12 << 2) | 0; 20093 if (!((i12 | 0) > 0 ? (i11 = i13 + (i12 + -1 << 2) | 0, i9 = HEAP32[i11 >> 2] | 0, (HEAP8[5584 + (i9 & 63) | 0] | 0) < 0) : 0)) { 20094 i11 = i10; 20095 i9 = HEAP32[i10 >> 2] | 0; 20096 } 20097 HEAP32[i11 >> 2] = ((i9 & 16320 | 0) == 0) << 6 | i9 & -16321; 20098 break; 20099 } 20100 case 6: 20101 { 20102 i8 = 25; 20103 break; 20104 } 20105 case 3: 20106 case 1: 20107 { 20108 HEAP32[i7 >> 2] = 2; 20109 break; 20110 } 20111 case 11: 20112 { 20113 i12 = i4 + 48 | 0; 20114 i8 = HEAP8[i12] | 0; 20115 i11 = (i8 & 255) + 1 | 0; 20116 i9 = (HEAP32[i4 >> 2] | 0) + 78 | 0; 20117 do { 20118 if (i11 >>> 0 > (HEAPU8[i9] | 0) >>> 0) { 20119 if (i11 >>> 0 > 249) { 20120 _luaX_syntaxerror(HEAP32[i4 + 12 >> 2] | 0, 10536); 20121 } else { 20122 HEAP8[i9] = i11; 20123 i10 = HEAP8[i12] | 0; 20124 break; 20125 } 20126 } else { 20127 i10 = i8; 20128 } 20129 } while (0); 20130 i14 = (i10 & 255) + 1 | 0; 20131 HEAP8[i12] = i14; 20132 _discharge2reg(i4, i7, (i14 & 255) + -1 | 0); 20133 if ((HEAP32[i7 >> 2] | 0) == 6) { 20134 i8 = 25; 20135 } else { 20136 i9 = i7 + 8 | 0; 20137 i8 = 28; 20138 } 20139 break; 20140 } 20141 default: 20142 {} 20143 } 20144 if ((i8 | 0) == 25) { 20145 i8 = i7 + 8 | 0; 20146 i9 = HEAP32[i8 >> 2] | 0; 20147 if ((i9 & 256 | 0) == 0 ? (HEAPU8[i4 + 46 | 0] | 0) <= (i9 | 0) : 0) { 20148 i9 = i4 + 48 | 0; 20149 HEAP8[i9] = (HEAP8[i9] | 0) + -1 << 24 >> 24; 20150 i9 = i8; 20151 i8 = 28; 20152 } else { 20153 i9 = i8; 20154 i8 = 28; 20155 } 20156 } 20157 if ((i8 | 0) == 28) { 20158 HEAP32[i9 >> 2] = _luaK_code(i4, HEAP32[i9 >> 2] << 23 | 20) | 0; 20159 HEAP32[i7 >> 2] = 11; 20160 } 20161 i14 = i7 + 20 | 0; 20162 i8 = HEAP32[i14 >> 2] | 0; 20163 i7 = i7 + 16 | 0; 20164 i9 = HEAP32[i7 >> 2] | 0; 20165 HEAP32[i14 >> 2] = i9; 20166 HEAP32[i7 >> 2] = i8; 20167 if (!((i9 | 0) == -1)) { 20168 i8 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0; 20169 do { 20170 i12 = i8 + (i9 << 2) | 0; 20171 if ((i9 | 0) > 0 ? (i5 = i8 + (i9 + -1 << 2) | 0, i6 = HEAP32[i5 >> 2] | 0, (HEAP8[5584 + (i6 & 63) | 0] | 0) < 0) : 0) { 20172 i10 = i5; 20173 i11 = i6; 20174 } else { 20175 i10 = i12; 20176 i11 = HEAP32[i12 >> 2] | 0; 20177 } 20178 if ((i11 & 63 | 0) == 28) { 20179 HEAP32[i10 >> 2] = i11 & 8372224 | i11 >>> 23 << 6 | 27; 20180 } 20181 i10 = ((HEAP32[i12 >> 2] | 0) >>> 14) + -131071 | 0; 20182 if ((i10 | 0) == -1) { 20183 break; 20184 } 20185 i9 = i9 + 1 + i10 | 0; 20186 } while (!((i9 | 0) == -1)); 20187 i8 = HEAP32[i7 >> 2] | 0; 20188 } 20189 if ((i8 | 0) == -1) { 20190 STACKTOP = i1; 20191 return; 20192 } 20193 i4 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0; 20194 while (1) { 20195 i6 = i4 + (i8 << 2) | 0; 20196 if ((i8 | 0) > 0 ? (i2 = i4 + (i8 + -1 << 2) | 0, i3 = HEAP32[i2 >> 2] | 0, (HEAP8[5584 + (i3 & 63) | 0] | 0) < 0) : 0) { 20197 i7 = i2; 20198 i5 = i3; 20199 } else { 20200 i7 = i6; 20201 i5 = HEAP32[i6 >> 2] | 0; 20202 } 20203 if ((i5 & 63 | 0) == 28) { 20204 HEAP32[i7 >> 2] = i5 & 8372224 | i5 >>> 23 << 6 | 27; 20205 } 20206 i5 = ((HEAP32[i6 >> 2] | 0) >>> 14) + -131071 | 0; 20207 if ((i5 | 0) == -1) { 20208 i8 = 54; 20209 break; 20210 } 20211 i8 = i8 + 1 + i5 | 0; 20212 if ((i8 | 0) == -1) { 20213 i8 = 54; 20214 break; 20215 } 20216 } 20217 if ((i8 | 0) == 54) { 20218 STACKTOP = i1; 20219 return; 20220 } 20221 } else if ((i14 | 0) == 0) { 20222 if (((HEAP32[i7 >> 2] | 0) == 5 ? (HEAP32[i7 + 16 >> 2] | 0) == -1 : 0) ? (HEAP32[i7 + 20 >> 2] | 0) == -1 : 0) { 20223 i14 = i7 + 8 | 0; 20224 HEAPF64[i14 >> 3] = -+HEAPF64[i14 >> 3]; 20225 STACKTOP = i1; 20226 return; 20227 } 20228 _luaK_dischargevars(i4, i7); 20229 if ((HEAP32[i7 >> 2] | 0) == 6) { 20230 i2 = HEAP32[i7 + 8 >> 2] | 0; 20231 if ((HEAP32[i7 + 16 >> 2] | 0) != (HEAP32[i7 + 20 >> 2] | 0)) { 20232 if ((i2 | 0) < (HEAPU8[i4 + 46 | 0] | 0)) { 20233 i8 = 10; 20234 } else { 20235 _exp2reg(i4, i7, i2); 20236 } 20237 } 20238 } else { 20239 i8 = 10; 20240 } 20241 if ((i8 | 0) == 10) { 20242 _luaK_exp2nextreg(i4, i7); 20243 } 20244 _codearith(i4, 19, i7, i12, i13); 20245 STACKTOP = i1; 20246 return; 20247 } else if ((i14 | 0) == 2) { 20248 _luaK_dischargevars(i4, i7); 20249 if ((HEAP32[i7 >> 2] | 0) == 6) { 20250 i2 = HEAP32[i7 + 8 >> 2] | 0; 20251 if ((HEAP32[i7 + 16 >> 2] | 0) != (HEAP32[i7 + 20 >> 2] | 0)) { 20252 if ((i2 | 0) < (HEAPU8[i4 + 46 | 0] | 0)) { 20253 i8 = 52; 20254 } else { 20255 _exp2reg(i4, i7, i2); 20256 } 20257 } 20258 } else { 20259 i8 = 52; 20260 } 20261 if ((i8 | 0) == 52) { 20262 _luaK_exp2nextreg(i4, i7); 20263 } 20264 _codearith(i4, 21, i7, i12, i13); 20265 STACKTOP = i1; 20266 return; 20267 } else { 20268 STACKTOP = i1; 20269 return; 20270 } 20271 } 20272 function _subexpr(i6, i3, i7) { 20273 i6 = i6 | 0; 20274 i3 = i3 | 0; 20275 i7 = i7 | 0; 20276 var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0; 20277 i2 = STACKTOP; 20278 STACKTOP = STACKTOP + 48 | 0; 20279 i11 = i2 + 24 | 0; 20280 i5 = i2; 20281 i4 = i6 + 48 | 0; 20282 i9 = HEAP32[i4 >> 2] | 0; 20283 i1 = i6 + 52 | 0; 20284 i12 = (HEAP32[i1 >> 2] | 0) + 38 | 0; 20285 i13 = (HEAP16[i12 >> 1] | 0) + 1 << 16 >> 16; 20286 HEAP16[i12 >> 1] = i13; 20287 if ((i13 & 65535) > 200) { 20288 i10 = i9 + 12 | 0; 20289 i12 = HEAP32[(HEAP32[i10 >> 2] | 0) + 52 >> 2] | 0; 20290 i13 = HEAP32[(HEAP32[i9 >> 2] | 0) + 64 >> 2] | 0; 20291 if ((i13 | 0) == 0) { 20292 i15 = 6552; 20293 HEAP32[i11 >> 2] = 6360; 20294 i14 = i11 + 4 | 0; 20295 HEAP32[i14 >> 2] = 200; 20296 i14 = i11 + 8 | 0; 20297 HEAP32[i14 >> 2] = i15; 20298 i14 = _luaO_pushfstring(i12, 6592, i11) | 0; 20299 i15 = HEAP32[i10 >> 2] | 0; 20300 _luaX_syntaxerror(i15, i14); 20301 } 20302 HEAP32[i11 >> 2] = i13; 20303 i14 = _luaO_pushfstring(i12, 6568, i11) | 0; 20304 HEAP32[i11 >> 2] = 6360; 20305 i15 = i11 + 4 | 0; 20306 HEAP32[i15 >> 2] = 200; 20307 i15 = i11 + 8 | 0; 20308 HEAP32[i15 >> 2] = i14; 20309 i15 = _luaO_pushfstring(i12, 6592, i11) | 0; 20310 i14 = HEAP32[i10 >> 2] | 0; 20311 _luaX_syntaxerror(i14, i15); 20312 } 20313 i10 = i6 + 16 | 0; 20314 L8 : do { 20315 switch (HEAP32[i10 >> 2] | 0) { 20316 case 287: 20317 { 20318 HEAP32[i3 + 16 >> 2] = -1; 20319 HEAP32[i3 + 20 >> 2] = -1; 20320 HEAP32[i3 >> 2] = 5; 20321 HEAP32[i3 + 8 >> 2] = 0; 20322 HEAPF64[i3 + 8 >> 3] = +HEAPF64[i6 + 24 >> 3]; 20323 i8 = 20; 20324 break; 20325 } 20326 case 271: 20327 { 20328 i9 = 1; 20329 i8 = 8; 20330 break; 20331 } 20332 case 289: 20333 { 20334 i8 = _luaK_stringK(i9, HEAP32[i6 + 24 >> 2] | 0) | 0; 20335 HEAP32[i3 + 16 >> 2] = -1; 20336 HEAP32[i3 + 20 >> 2] = -1; 20337 HEAP32[i3 >> 2] = 4; 20338 HEAP32[i3 + 8 >> 2] = i8; 20339 i8 = 20; 20340 break; 20341 } 20342 case 265: 20343 { 20344 _luaX_next(i6); 20345 _body(i6, i3, 0, HEAP32[i6 + 4 >> 2] | 0); 20346 break; 20347 } 20348 case 276: 20349 { 20350 HEAP32[i3 + 16 >> 2] = -1; 20351 HEAP32[i3 + 20 >> 2] = -1; 20352 HEAP32[i3 >> 2] = 2; 20353 HEAP32[i3 + 8 >> 2] = 0; 20354 i8 = 20; 20355 break; 20356 } 20357 case 45: 20358 { 20359 i9 = 0; 20360 i8 = 8; 20361 break; 20362 } 20363 case 35: 20364 { 20365 i9 = 2; 20366 i8 = 8; 20367 break; 20368 } 20369 case 123: 20370 { 20371 _constructor(i6, i3); 20372 break; 20373 } 20374 case 263: 20375 { 20376 HEAP32[i3 + 16 >> 2] = -1; 20377 HEAP32[i3 + 20 >> 2] = -1; 20378 HEAP32[i3 >> 2] = 3; 20379 HEAP32[i3 + 8 >> 2] = 0; 20380 i8 = 20; 20381 break; 20382 } 20383 case 280: 20384 { 20385 if ((HEAP8[(HEAP32[i9 >> 2] | 0) + 77 | 0] | 0) == 0) { 20386 _luaX_syntaxerror(i6, 6408); 20387 } else { 20388 i8 = _luaK_codeABC(i9, 38, 0, 1, 0) | 0; 20389 HEAP32[i3 + 16 >> 2] = -1; 20390 HEAP32[i3 + 20 >> 2] = -1; 20391 HEAP32[i3 >> 2] = 13; 20392 HEAP32[i3 + 8 >> 2] = i8; 20393 i8 = 20; 20394 break L8; 20395 } 20396 break; 20397 } 20398 case 270: 20399 { 20400 HEAP32[i3 + 16 >> 2] = -1; 20401 HEAP32[i3 + 20 >> 2] = -1; 20402 HEAP32[i3 >> 2] = 1; 20403 HEAP32[i3 + 8 >> 2] = 0; 20404 i8 = 20; 20405 break; 20406 } 20407 default: 20408 { 20409 _suffixedexp(i6, i3); 20410 } 20411 } 20412 } while (0); 20413 if ((i8 | 0) == 8) { 20414 i15 = HEAP32[i6 + 4 >> 2] | 0; 20415 _luaX_next(i6); 20416 _subexpr(i6, i3, 8) | 0; 20417 _luaK_prefix(HEAP32[i4 >> 2] | 0, i9, i3, i15); 20418 } else if ((i8 | 0) == 20) { 20419 _luaX_next(i6); 20420 } 20421 switch (HEAP32[i10 >> 2] | 0) { 20422 case 257: 20423 { 20424 i9 = 13; 20425 break; 20426 } 20427 case 272: 20428 { 20429 i9 = 14; 20430 break; 20431 } 20432 case 47: 20433 { 20434 i9 = 3; 20435 break; 20436 } 20437 case 37: 20438 { 20439 i9 = 4; 20440 break; 20441 } 20442 case 43: 20443 { 20444 i9 = 0; 20445 break; 20446 } 20447 case 284: 20448 { 20449 i9 = 10; 20450 break; 20451 } 20452 case 281: 20453 { 20454 i9 = 7; 20455 break; 20456 } 20457 case 62: 20458 { 20459 i9 = 11; 20460 break; 20461 } 20462 case 282: 20463 { 20464 i9 = 12; 20465 break; 20466 } 20467 case 45: 20468 { 20469 i9 = 1; 20470 break; 20471 } 20472 case 42: 20473 { 20474 i9 = 2; 20475 break; 20476 } 20477 case 60: 20478 { 20479 i9 = 8; 20480 break; 20481 } 20482 case 283: 20483 { 20484 i9 = 9; 20485 break; 20486 } 20487 case 94: 20488 { 20489 i9 = 5; 20490 break; 20491 } 20492 case 279: 20493 { 20494 i9 = 6; 20495 break; 20496 } 20497 default: 20498 { 20499 i15 = 15; 20500 i14 = HEAP32[i1 >> 2] | 0; 20501 i14 = i14 + 38 | 0; 20502 i13 = HEAP16[i14 >> 1] | 0; 20503 i13 = i13 + -1 << 16 >> 16; 20504 HEAP16[i14 >> 1] = i13; 20505 STACKTOP = i2; 20506 return i15 | 0; 20507 } 20508 } 20509 i8 = i6 + 4 | 0; 20510 while (1) { 20511 if ((HEAPU8[6376 + (i9 << 1) | 0] | 0) <= (i7 | 0)) { 20512 i8 = 39; 20513 break; 20514 } 20515 i15 = HEAP32[i8 >> 2] | 0; 20516 _luaX_next(i6); 20517 _luaK_infix(HEAP32[i4 >> 2] | 0, i9, i3); 20518 i10 = _subexpr(i6, i5, HEAPU8[6377 + (i9 << 1) | 0] | 0) | 0; 20519 _luaK_posfix(HEAP32[i4 >> 2] | 0, i9, i3, i5, i15); 20520 if ((i10 | 0) == 15) { 20521 i9 = 15; 20522 i8 = 39; 20523 break; 20524 } else { 20525 i9 = i10; 20526 } 20527 } 20528 if ((i8 | 0) == 39) { 20529 i15 = HEAP32[i1 >> 2] | 0; 20530 i15 = i15 + 38 | 0; 20531 i14 = HEAP16[i15 >> 1] | 0; 20532 i14 = i14 + -1 << 16 >> 16; 20533 HEAP16[i15 >> 1] = i14; 20534 STACKTOP = i2; 20535 return i9 | 0; 20536 } 20537 return 0; 20538 } 20539 function _luaV_lessequal(i5, i3, i2) { 20540 i5 = i5 | 0; 20541 i3 = i3 | 0; 20542 i2 = i2 | 0; 20543 var i1 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0; 20544 i1 = STACKTOP; 20545 i4 = i3 + 8 | 0; 20546 i7 = HEAP32[i4 >> 2] | 0; 20547 if ((i7 | 0) == 3) { 20548 if ((HEAP32[i2 + 8 >> 2] | 0) == 3) { 20549 i9 = +HEAPF64[i3 >> 3] <= +HEAPF64[i2 >> 3] | 0; 20550 STACKTOP = i1; 20551 return i9 | 0; 20552 } 20553 } else { 20554 if ((i7 & 15 | 0) == 4 ? (HEAP32[i2 + 8 >> 2] & 15 | 0) == 4 : 0) { 20555 i3 = HEAP32[i3 >> 2] | 0; 20556 i6 = HEAP32[i2 >> 2] | 0; 20557 i4 = i3 + 16 | 0; 20558 i5 = i6 + 16 | 0; 20559 i7 = _strcmp(i4, i5) | 0; 20560 L8 : do { 20561 if ((i7 | 0) == 0) { 20562 i2 = HEAP32[i3 + 12 >> 2] | 0; 20563 i3 = HEAP32[i6 + 12 >> 2] | 0; 20564 i6 = i5; 20565 while (1) { 20566 i5 = _strlen(i4 | 0) | 0; 20567 i7 = (i5 | 0) == (i2 | 0); 20568 if ((i5 | 0) == (i3 | 0)) { 20569 break; 20570 } 20571 if (i7) { 20572 i7 = -1; 20573 break L8; 20574 } 20575 i5 = i5 + 1 | 0; 20576 i4 = i4 + i5 | 0; 20577 i6 = i6 + i5 | 0; 20578 i7 = _strcmp(i4, i6) | 0; 20579 if ((i7 | 0) == 0) { 20580 i2 = i2 - i5 | 0; 20581 i3 = i3 - i5 | 0; 20582 } else { 20583 break L8; 20584 } 20585 } 20586 i7 = i7 & 1 ^ 1; 20587 } 20588 } while (0); 20589 i9 = (i7 | 0) < 1 | 0; 20590 STACKTOP = i1; 20591 return i9 | 0; 20592 } 20593 } 20594 i7 = i5 + 8 | 0; 20595 i8 = HEAP32[i7 >> 2] | 0; 20596 i9 = _luaT_gettmbyobj(i5, i3, 14) | 0; 20597 if ((HEAP32[i9 + 8 >> 2] | 0) == 0) { 20598 i9 = _luaT_gettmbyobj(i5, i2, 14) | 0; 20599 if ((HEAP32[i9 + 8 >> 2] | 0) == 0) { 20600 i8 = HEAP32[i7 >> 2] | 0; 20601 i9 = _luaT_gettmbyobj(i5, i2, 13) | 0; 20602 if ((HEAP32[i9 + 8 >> 2] | 0) == 0) { 20603 i9 = _luaT_gettmbyobj(i5, i3, 13) | 0; 20604 if ((HEAP32[i9 + 8 >> 2] | 0) == 0) { 20605 _luaG_ordererror(i5, i3, i2); 20606 } else { 20607 i6 = i9; 20608 } 20609 } else { 20610 i6 = i9; 20611 } 20612 i10 = i5 + 28 | 0; 20613 i9 = i8 - (HEAP32[i10 >> 2] | 0) | 0; 20614 i8 = HEAP32[i7 >> 2] | 0; 20615 HEAP32[i7 >> 2] = i8 + 16; 20616 i13 = i6; 20617 i11 = HEAP32[i13 + 4 >> 2] | 0; 20618 i12 = i8; 20619 HEAP32[i12 >> 2] = HEAP32[i13 >> 2]; 20620 HEAP32[i12 + 4 >> 2] = i11; 20621 HEAP32[i8 + 8 >> 2] = HEAP32[i6 + 8 >> 2]; 20622 i8 = HEAP32[i7 >> 2] | 0; 20623 HEAP32[i7 >> 2] = i8 + 16; 20624 i12 = i2; 20625 i11 = HEAP32[i12 + 4 >> 2] | 0; 20626 i6 = i8; 20627 HEAP32[i6 >> 2] = HEAP32[i12 >> 2]; 20628 HEAP32[i6 + 4 >> 2] = i11; 20629 HEAP32[i8 + 8 >> 2] = HEAP32[i2 + 8 >> 2]; 20630 i2 = HEAP32[i7 >> 2] | 0; 20631 HEAP32[i7 >> 2] = i2 + 16; 20632 i8 = i3; 20633 i6 = HEAP32[i8 + 4 >> 2] | 0; 20634 i3 = i2; 20635 HEAP32[i3 >> 2] = HEAP32[i8 >> 2]; 20636 HEAP32[i3 + 4 >> 2] = i6; 20637 HEAP32[i2 + 8 >> 2] = HEAP32[i4 >> 2]; 20638 _luaD_call(i5, (HEAP32[i7 >> 2] | 0) + -48 | 0, 1, HEAP8[(HEAP32[i5 + 16 >> 2] | 0) + 18 | 0] & 1); 20639 i3 = HEAP32[i10 >> 2] | 0; 20640 i2 = HEAP32[i7 >> 2] | 0; 20641 i5 = i2 + -16 | 0; 20642 HEAP32[i7 >> 2] = i5; 20643 i6 = HEAP32[i5 + 4 >> 2] | 0; 20644 i8 = i3 + i9 | 0; 20645 HEAP32[i8 >> 2] = HEAP32[i5 >> 2]; 20646 HEAP32[i8 + 4 >> 2] = i6; 20647 HEAP32[i3 + (i9 + 8) >> 2] = HEAP32[i2 + -8 >> 2]; 20648 i3 = HEAP32[i7 >> 2] | 0; 20649 i2 = HEAP32[i3 + 8 >> 2] | 0; 20650 if ((i2 | 0) != 0) { 20651 if ((i2 | 0) == 1) { 20652 i2 = (HEAP32[i3 >> 2] | 0) != 0; 20653 } else { 20654 i2 = 1; 20655 } 20656 } else { 20657 i2 = 0; 20658 } 20659 i13 = i2 & 1 ^ 1; 20660 STACKTOP = i1; 20661 return i13 | 0; 20662 } 20663 } 20664 i10 = i5 + 28 | 0; 20665 i13 = i8 - (HEAP32[i10 >> 2] | 0) | 0; 20666 i11 = HEAP32[i7 >> 2] | 0; 20667 HEAP32[i7 >> 2] = i11 + 16; 20668 i6 = i9; 20669 i8 = HEAP32[i6 + 4 >> 2] | 0; 20670 i12 = i11; 20671 HEAP32[i12 >> 2] = HEAP32[i6 >> 2]; 20672 HEAP32[i12 + 4 >> 2] = i8; 20673 HEAP32[i11 + 8 >> 2] = HEAP32[i9 + 8 >> 2]; 20674 i9 = HEAP32[i7 >> 2] | 0; 20675 HEAP32[i7 >> 2] = i9 + 16; 20676 i11 = i3; 20677 i12 = HEAP32[i11 + 4 >> 2] | 0; 20678 i3 = i9; 20679 HEAP32[i3 >> 2] = HEAP32[i11 >> 2]; 20680 HEAP32[i3 + 4 >> 2] = i12; 20681 HEAP32[i9 + 8 >> 2] = HEAP32[i4 >> 2]; 20682 i3 = HEAP32[i7 >> 2] | 0; 20683 HEAP32[i7 >> 2] = i3 + 16; 20684 i9 = i2; 20685 i12 = HEAP32[i9 + 4 >> 2] | 0; 20686 i11 = i3; 20687 HEAP32[i11 >> 2] = HEAP32[i9 >> 2]; 20688 HEAP32[i11 + 4 >> 2] = i12; 20689 HEAP32[i3 + 8 >> 2] = HEAP32[i2 + 8 >> 2]; 20690 _luaD_call(i5, (HEAP32[i7 >> 2] | 0) + -48 | 0, 1, HEAP8[(HEAP32[i5 + 16 >> 2] | 0) + 18 | 0] & 1); 20691 i2 = HEAP32[i10 >> 2] | 0; 20692 i3 = HEAP32[i7 >> 2] | 0; 20693 i10 = i3 + -16 | 0; 20694 HEAP32[i7 >> 2] = i10; 20695 i11 = HEAP32[i10 + 4 >> 2] | 0; 20696 i12 = i2 + i13 | 0; 20697 HEAP32[i12 >> 2] = HEAP32[i10 >> 2]; 20698 HEAP32[i12 + 4 >> 2] = i11; 20699 HEAP32[i2 + (i13 + 8) >> 2] = HEAP32[i3 + -8 >> 2]; 20700 i2 = HEAP32[i7 >> 2] | 0; 20701 i3 = HEAP32[i2 + 8 >> 2] | 0; 20702 if ((i3 | 0) != 0) { 20703 if ((i3 | 0) == 1) { 20704 i2 = (HEAP32[i2 >> 2] | 0) != 0; 20705 } else { 20706 i2 = 1; 20707 } 20708 } else { 20709 i2 = 0; 20710 } 20711 i13 = i2 & 1; 20712 STACKTOP = i1; 20713 return i13 | 0; 20714 } 20715 function ___udivmoddi4(i6, i8, i2, i4, i1) { 20716 i6 = i6 | 0; 20717 i8 = i8 | 0; 20718 i2 = i2 | 0; 20719 i4 = i4 | 0; 20720 i1 = i1 | 0; 20721 var i3 = 0, i5 = 0, i7 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0; 20722 i5 = i6; 20723 i9 = i8; 20724 i7 = i9; 20725 i10 = i2; 20726 i3 = i4; 20727 i11 = i3; 20728 if ((i7 | 0) == 0) { 20729 i2 = (i1 | 0) != 0; 20730 if ((i11 | 0) == 0) { 20731 if (i2) { 20732 HEAP32[i1 >> 2] = (i5 >>> 0) % (i10 >>> 0); 20733 HEAP32[i1 + 4 >> 2] = 0; 20734 } 20735 i11 = 0; 20736 i12 = (i5 >>> 0) / (i10 >>> 0) >>> 0; 20737 return (tempRet0 = i11, i12) | 0; 20738 } else { 20739 if (!i2) { 20740 i11 = 0; 20741 i12 = 0; 20742 return (tempRet0 = i11, i12) | 0; 20743 } 20744 HEAP32[i1 >> 2] = i6 | 0; 20745 HEAP32[i1 + 4 >> 2] = i8 & 0; 20746 i11 = 0; 20747 i12 = 0; 20748 return (tempRet0 = i11, i12) | 0; 20749 } 20750 } 20751 i12 = (i11 | 0) == 0; 20752 do { 20753 if ((i10 | 0) != 0) { 20754 if (!i12) { 20755 i10 = (_llvm_ctlz_i32(i11 | 0) | 0) - (_llvm_ctlz_i32(i7 | 0) | 0) | 0; 20756 if (i10 >>> 0 <= 31) { 20757 i11 = i10 + 1 | 0; 20758 i12 = 31 - i10 | 0; 20759 i8 = i10 - 31 >> 31; 20760 i9 = i11; 20761 i6 = i5 >>> (i11 >>> 0) & i8 | i7 << i12; 20762 i8 = i7 >>> (i11 >>> 0) & i8; 20763 i11 = 0; 20764 i7 = i5 << i12; 20765 break; 20766 } 20767 if ((i1 | 0) == 0) { 20768 i11 = 0; 20769 i12 = 0; 20770 return (tempRet0 = i11, i12) | 0; 20771 } 20772 HEAP32[i1 >> 2] = i6 | 0; 20773 HEAP32[i1 + 4 >> 2] = i9 | i8 & 0; 20774 i11 = 0; 20775 i12 = 0; 20776 return (tempRet0 = i11, i12) | 0; 20777 } 20778 i11 = i10 - 1 | 0; 20779 if ((i11 & i10 | 0) != 0) { 20780 i12 = (_llvm_ctlz_i32(i10 | 0) | 0) + 33 - (_llvm_ctlz_i32(i7 | 0) | 0) | 0; 20781 i15 = 64 - i12 | 0; 20782 i10 = 32 - i12 | 0; 20783 i13 = i10 >> 31; 20784 i14 = i12 - 32 | 0; 20785 i8 = i14 >> 31; 20786 i9 = i12; 20787 i6 = i10 - 1 >> 31 & i7 >>> (i14 >>> 0) | (i7 << i10 | i5 >>> (i12 >>> 0)) & i8; 20788 i8 = i8 & i7 >>> (i12 >>> 0); 20789 i11 = i5 << i15 & i13; 20790 i7 = (i7 << i15 | i5 >>> (i14 >>> 0)) & i13 | i5 << i10 & i12 - 33 >> 31; 20791 break; 20792 } 20793 if ((i1 | 0) != 0) { 20794 HEAP32[i1 >> 2] = i11 & i5; 20795 HEAP32[i1 + 4 >> 2] = 0; 20796 } 20797 if ((i10 | 0) == 1) { 20798 i14 = i9 | i8 & 0; 20799 i15 = i6 | 0 | 0; 20800 return (tempRet0 = i14, i15) | 0; 20801 } else { 20802 i15 = _llvm_cttz_i32(i10 | 0) | 0; 20803 i14 = i7 >>> (i15 >>> 0) | 0; 20804 i15 = i7 << 32 - i15 | i5 >>> (i15 >>> 0) | 0; 20805 return (tempRet0 = i14, i15) | 0; 20806 } 20807 } else { 20808 if (i12) { 20809 if ((i1 | 0) != 0) { 20810 HEAP32[i1 >> 2] = (i7 >>> 0) % (i10 >>> 0); 20811 HEAP32[i1 + 4 >> 2] = 0; 20812 } 20813 i14 = 0; 20814 i15 = (i7 >>> 0) / (i10 >>> 0) >>> 0; 20815 return (tempRet0 = i14, i15) | 0; 20816 } 20817 if ((i5 | 0) == 0) { 20818 if ((i1 | 0) != 0) { 20819 HEAP32[i1 >> 2] = 0; 20820 HEAP32[i1 + 4 >> 2] = (i7 >>> 0) % (i11 >>> 0); 20821 } 20822 i14 = 0; 20823 i15 = (i7 >>> 0) / (i11 >>> 0) >>> 0; 20824 return (tempRet0 = i14, i15) | 0; 20825 } 20826 i10 = i11 - 1 | 0; 20827 if ((i10 & i11 | 0) == 0) { 20828 if ((i1 | 0) != 0) { 20829 HEAP32[i1 >> 2] = i6 | 0; 20830 HEAP32[i1 + 4 >> 2] = i10 & i7 | i8 & 0; 20831 } 20832 i14 = 0; 20833 i15 = i7 >>> ((_llvm_cttz_i32(i11 | 0) | 0) >>> 0); 20834 return (tempRet0 = i14, i15) | 0; 20835 } 20836 i10 = (_llvm_ctlz_i32(i11 | 0) | 0) - (_llvm_ctlz_i32(i7 | 0) | 0) | 0; 20837 if (i10 >>> 0 <= 30) { 20838 i8 = i10 + 1 | 0; 20839 i15 = 31 - i10 | 0; 20840 i9 = i8; 20841 i6 = i7 << i15 | i5 >>> (i8 >>> 0); 20842 i8 = i7 >>> (i8 >>> 0); 20843 i11 = 0; 20844 i7 = i5 << i15; 20845 break; 20846 } 20847 if ((i1 | 0) == 0) { 20848 i14 = 0; 20849 i15 = 0; 20850 return (tempRet0 = i14, i15) | 0; 20851 } 20852 HEAP32[i1 >> 2] = i6 | 0; 20853 HEAP32[i1 + 4 >> 2] = i9 | i8 & 0; 20854 i14 = 0; 20855 i15 = 0; 20856 return (tempRet0 = i14, i15) | 0; 20857 } 20858 } while (0); 20859 if ((i9 | 0) == 0) { 20860 i12 = i6; 20861 i2 = 0; 20862 i6 = 0; 20863 } else { 20864 i2 = i2 | 0 | 0; 20865 i3 = i3 | i4 & 0; 20866 i4 = _i64Add(i2, i3, -1, -1) | 0; 20867 i5 = tempRet0; 20868 i10 = i8; 20869 i12 = i6; 20870 i6 = 0; 20871 while (1) { 20872 i8 = i11 >>> 31 | i7 << 1; 20873 i11 = i6 | i11 << 1; 20874 i7 = i12 << 1 | i7 >>> 31 | 0; 20875 i10 = i12 >>> 31 | i10 << 1 | 0; 20876 _i64Subtract(i4, i5, i7, i10) | 0; 20877 i12 = tempRet0; 20878 i15 = i12 >> 31 | ((i12 | 0) < 0 ? -1 : 0) << 1; 20879 i6 = i15 & 1; 20880 i12 = _i64Subtract(i7, i10, i15 & i2, (((i12 | 0) < 0 ? -1 : 0) >> 31 | ((i12 | 0) < 0 ? -1 : 0) << 1) & i3) | 0; 20881 i10 = tempRet0; 20882 i9 = i9 - 1 | 0; 20883 if ((i9 | 0) == 0) { 20884 break; 20885 } else { 20886 i7 = i8; 20887 } 20888 } 20889 i7 = i8; 20890 i8 = i10; 20891 i2 = 0; 20892 } 20893 i3 = 0; 20894 if ((i1 | 0) != 0) { 20895 HEAP32[i1 >> 2] = i12; 20896 HEAP32[i1 + 4 >> 2] = i8; 20897 } 20898 i14 = (i11 | 0) >>> 31 | (i7 | i3) << 1 | (i3 << 1 | i11 >>> 31) & 0 | i2; 20899 i15 = (i11 << 1 | 0 >>> 31) & -2 | i6; 20900 return (tempRet0 = i14, i15) | 0; 20901 } 20902 function _leaveblock(i1) { 20903 i1 = i1 | 0; 20904 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0; 20905 i3 = STACKTOP; 20906 STACKTOP = STACKTOP + 16 | 0; 20907 i5 = i3; 20908 i7 = i1 + 16 | 0; 20909 i4 = HEAP32[i7 >> 2] | 0; 20910 i2 = i1 + 12 | 0; 20911 i6 = HEAP32[i2 >> 2] | 0; 20912 if ((HEAP32[i4 >> 2] | 0) != 0 ? (HEAP8[i4 + 9 | 0] | 0) != 0 : 0) { 20913 i16 = _luaK_jump(i1) | 0; 20914 _luaK_patchclose(i1, i16, HEAPU8[i4 + 8 | 0] | 0); 20915 _luaK_patchtohere(i1, i16); 20916 } 20917 L5 : do { 20918 if ((HEAP8[i4 + 10 | 0] | 0) != 0) { 20919 i15 = i6 + 52 | 0; 20920 i14 = _luaS_new(HEAP32[i15 >> 2] | 0, 6304) | 0; 20921 i13 = i6 + 64 | 0; 20922 i16 = HEAP32[i13 >> 2] | 0; 20923 i10 = i16 + 24 | 0; 20924 i8 = i6 + 48 | 0; 20925 i11 = HEAP32[(HEAP32[i8 >> 2] | 0) + 20 >> 2] | 0; 20926 i12 = i16 + 28 | 0; 20927 i9 = HEAP32[i12 >> 2] | 0; 20928 i16 = i16 + 32 | 0; 20929 if ((i9 | 0) < (HEAP32[i16 >> 2] | 0)) { 20930 i15 = HEAP32[i10 >> 2] | 0; 20931 } else { 20932 i15 = _luaM_growaux_(HEAP32[i15 >> 2] | 0, HEAP32[i10 >> 2] | 0, i16, 16, 32767, 6312) | 0; 20933 HEAP32[i10 >> 2] = i15; 20934 } 20935 HEAP32[i15 + (i9 << 4) >> 2] = i14; 20936 i16 = HEAP32[i10 >> 2] | 0; 20937 HEAP32[i16 + (i9 << 4) + 8 >> 2] = 0; 20938 HEAP8[i16 + (i9 << 4) + 12 | 0] = HEAP8[(HEAP32[i8 >> 2] | 0) + 46 | 0] | 0; 20939 HEAP32[(HEAP32[i10 >> 2] | 0) + (i9 << 4) + 4 >> 2] = i11; 20940 HEAP32[i12 >> 2] = (HEAP32[i12 >> 2] | 0) + 1; 20941 i10 = HEAP32[i13 >> 2] | 0; 20942 i9 = (HEAP32[i10 + 24 >> 2] | 0) + (i9 << 4) | 0; 20943 i11 = HEAP16[(HEAP32[(HEAP32[i8 >> 2] | 0) + 16 >> 2] | 0) + 6 >> 1] | 0; 20944 i8 = i10 + 16 | 0; 20945 if ((i11 | 0) < (HEAP32[i8 >> 2] | 0)) { 20946 i10 = i10 + 12 | 0; 20947 do { 20948 while (1) { 20949 if ((_luaS_eqstr(HEAP32[(HEAP32[i10 >> 2] | 0) + (i11 << 4) >> 2] | 0, HEAP32[i9 >> 2] | 0) | 0) == 0) { 20950 break; 20951 } 20952 _closegoto(i6, i11, i9); 20953 if ((i11 | 0) >= (HEAP32[i8 >> 2] | 0)) { 20954 break L5; 20955 } 20956 } 20957 i11 = i11 + 1 | 0; 20958 } while ((i11 | 0) < (HEAP32[i8 >> 2] | 0)); 20959 } 20960 } 20961 } while (0); 20962 HEAP32[i7 >> 2] = HEAP32[i4 >> 2]; 20963 i7 = i4 + 8 | 0; 20964 i9 = HEAP8[i7] | 0; 20965 i10 = i1 + 46 | 0; 20966 i8 = (HEAP32[i2 >> 2] | 0) + 64 | 0; 20967 i14 = (HEAP32[i8 >> 2] | 0) + 4 | 0; 20968 HEAP32[i14 >> 2] = (i9 & 255) - (HEAPU8[i10] | 0) + (HEAP32[i14 >> 2] | 0); 20969 i14 = HEAP8[i10] | 0; 20970 if ((i14 & 255) > (i9 & 255)) { 20971 i13 = i1 + 20 | 0; 20972 i11 = i1 + 40 | 0; 20973 i12 = (HEAP32[i1 >> 2] | 0) + 24 | 0; 20974 do { 20975 i16 = HEAP32[i13 >> 2] | 0; 20976 i14 = i14 + -1 << 24 >> 24; 20977 HEAP8[i10] = i14; 20978 HEAP32[(HEAP32[i12 >> 2] | 0) + ((HEAP16[(HEAP32[HEAP32[i8 >> 2] >> 2] | 0) + ((HEAP32[i11 >> 2] | 0) + (i14 & 255) << 1) >> 1] | 0) * 12 | 0) + 8 >> 2] = i16; 20979 i14 = HEAP8[i10] | 0; 20980 } while ((i14 & 255) > (i9 & 255)); 20981 } 20982 HEAP8[i1 + 48 | 0] = i14; 20983 i10 = HEAP32[i6 + 64 >> 2] | 0; 20984 HEAP32[i10 + 28 >> 2] = HEAP16[i4 + 4 >> 1] | 0; 20985 i9 = HEAP16[i4 + 6 >> 1] | 0; 20986 if ((HEAP32[i4 >> 2] | 0) == 0) { 20987 if ((i9 | 0) >= (HEAP32[i10 + 16 >> 2] | 0)) { 20988 STACKTOP = i3; 20989 return; 20990 } 20991 i10 = HEAP32[i10 + 12 >> 2] | 0; 20992 i11 = HEAP32[i10 + (i9 << 4) >> 2] | 0; 20993 if ((HEAP8[i11 + 4 | 0] | 0) != 4) { 20994 i16 = 6200; 20995 i15 = i6 + 52 | 0; 20996 i15 = HEAP32[i15 >> 2] | 0; 20997 i14 = i11 + 16 | 0; 20998 i13 = i10 + (i9 << 4) + 8 | 0; 20999 i13 = HEAP32[i13 >> 2] | 0; 21000 HEAP32[i5 >> 2] = i14; 21001 i14 = i5 + 4 | 0; 21002 HEAP32[i14 >> 2] = i13; 21003 i16 = _luaO_pushfstring(i15, i16, i5) | 0; 21004 _semerror(i6, i16); 21005 } 21006 i16 = (HEAP8[i11 + 6 | 0] | 0) != 0 ? 6160 : 6200; 21007 i15 = i6 + 52 | 0; 21008 i15 = HEAP32[i15 >> 2] | 0; 21009 i14 = i11 + 16 | 0; 21010 i13 = i10 + (i9 << 4) + 8 | 0; 21011 i13 = HEAP32[i13 >> 2] | 0; 21012 HEAP32[i5 >> 2] = i14; 21013 i14 = i5 + 4 | 0; 21014 HEAP32[i14 >> 2] = i13; 21015 i16 = _luaO_pushfstring(i15, i16, i5) | 0; 21016 _semerror(i6, i16); 21017 } 21018 i6 = HEAP32[i8 >> 2] | 0; 21019 i5 = i6 + 16 | 0; 21020 if ((i9 | 0) >= (HEAP32[i5 >> 2] | 0)) { 21021 STACKTOP = i3; 21022 return; 21023 } 21024 i6 = i6 + 12 | 0; 21025 i4 = i4 + 9 | 0; 21026 do { 21027 i10 = HEAP32[i6 >> 2] | 0; 21028 i8 = i10 + (i9 << 4) + 12 | 0; 21029 i11 = HEAP8[i7] | 0; 21030 i12 = i11 & 255; 21031 if ((HEAPU8[i8] | 0) > (i11 & 255)) { 21032 if ((HEAP8[i4] | 0) != 0) { 21033 _luaK_patchclose(i1, HEAP32[i10 + (i9 << 4) + 4 >> 2] | 0, i12); 21034 i11 = HEAP8[i7] | 0; 21035 } 21036 HEAP8[i8] = i11; 21037 } 21038 i9 = ((_findlabel(HEAP32[i2 >> 2] | 0, i9) | 0) == 0) + i9 | 0; 21039 } while ((i9 | 0) < (HEAP32[i5 >> 2] | 0)); 21040 STACKTOP = i3; 21041 return; 21042 } 21043 function _getobjname(i3, i7, i9, i2) { 21044 i3 = i3 | 0; 21045 i7 = i7 | 0; 21046 i9 = i9 | 0; 21047 i2 = i2 | 0; 21048 var i1 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0; 21049 i1 = STACKTOP; 21050 i4 = i3 + 12 | 0; 21051 L1 : while (1) { 21052 i13 = _luaF_getlocalname(i3, i9 + 1 | 0, i7) | 0; 21053 HEAP32[i2 >> 2] = i13; 21054 if ((i13 | 0) != 0) { 21055 i2 = 2040; 21056 i4 = 42; 21057 break; 21058 } 21059 if ((i7 | 0) <= 0) { 21060 i2 = 0; 21061 i4 = 42; 21062 break; 21063 } 21064 i6 = HEAP32[i4 >> 2] | 0; 21065 i8 = 0; 21066 i5 = -1; 21067 do { 21068 i12 = HEAP32[i6 + (i8 << 2) >> 2] | 0; 21069 i13 = i12 & 63; 21070 i11 = i12 >>> 6 & 255; 21071 switch (i13 | 0) { 21072 case 27: 21073 { 21074 i10 = i8; 21075 i5 = (i11 | 0) == (i9 | 0) ? i8 : i5; 21076 break; 21077 } 21078 case 30: 21079 case 29: 21080 { 21081 i10 = i8; 21082 i5 = (i11 | 0) > (i9 | 0) ? i5 : i8; 21083 break; 21084 } 21085 case 23: 21086 { 21087 i10 = (i12 >>> 14) + -131071 | 0; 21088 i13 = i8 + 1 + i10 | 0; 21089 i10 = ((i8 | 0) >= (i13 | 0) | (i13 | 0) > (i7 | 0) ? 0 : i10) + i8 | 0; 21090 break; 21091 } 21092 case 4: 21093 { 21094 if ((i11 | 0) > (i9 | 0)) { 21095 i10 = i8; 21096 } else { 21097 i10 = i8; 21098 i5 = (i11 + (i12 >>> 23) | 0) < (i9 | 0) ? i5 : i8; 21099 } 21100 break; 21101 } 21102 case 34: 21103 { 21104 i10 = i8; 21105 i5 = (i11 + 2 | 0) > (i9 | 0) ? i5 : i8; 21106 break; 21107 } 21108 default: 21109 { 21110 i10 = i8; 21111 i5 = (HEAP8[5584 + i13 | 0] & 64) != 0 & (i11 | 0) == (i9 | 0) ? i8 : i5; 21112 } 21113 } 21114 i8 = i10 + 1 | 0; 21115 } while ((i8 | 0) < (i7 | 0)); 21116 if ((i5 | 0) == -1) { 21117 i2 = 0; 21118 i4 = 42; 21119 break; 21120 } 21121 i7 = HEAP32[i6 + (i5 << 2) >> 2] | 0; 21122 i9 = i7 & 63; 21123 switch (i9 | 0) { 21124 case 0: 21125 { 21126 break; 21127 } 21128 case 7: 21129 case 6: 21130 { 21131 i4 = 17; 21132 break L1; 21133 } 21134 case 5: 21135 { 21136 i4 = 29; 21137 break L1; 21138 } 21139 case 1: 21140 { 21141 i4 = 32; 21142 break L1; 21143 } 21144 case 2: 21145 { 21146 i4 = 33; 21147 break L1; 21148 } 21149 case 12: 21150 { 21151 i4 = 36; 21152 break L1; 21153 } 21154 default: 21155 { 21156 i2 = 0; 21157 i4 = 42; 21158 break L1; 21159 } 21160 } 21161 i9 = i7 >>> 23; 21162 if (i9 >>> 0 < (i7 >>> 6 & 255) >>> 0) { 21163 i7 = i5; 21164 } else { 21165 i2 = 0; 21166 i4 = 42; 21167 break; 21168 } 21169 } 21170 if ((i4 | 0) == 17) { 21171 i6 = i7 >>> 14; 21172 i8 = i6 & 511; 21173 i7 = i7 >>> 23; 21174 if ((i9 | 0) != 7) { 21175 i7 = HEAP32[(HEAP32[i3 + 28 >> 2] | 0) + (i7 << 3) >> 2] | 0; 21176 if ((i7 | 0) == 0) { 21177 i7 = 2104; 21178 } else { 21179 i7 = i7 + 16 | 0; 21180 } 21181 } else { 21182 i7 = _luaF_getlocalname(i3, i7 + 1 | 0, i5) | 0; 21183 } 21184 if ((i6 & 256 | 0) == 0) { 21185 i3 = _getobjname(i3, i5, i8, i2) | 0; 21186 if (!((i3 | 0) != 0 ? (HEAP8[i3] | 0) == 99 : 0)) { 21187 i4 = 26; 21188 } 21189 } else { 21190 i5 = i6 & 255; 21191 i3 = HEAP32[i3 + 8 >> 2] | 0; 21192 if ((HEAP32[i3 + (i5 << 4) + 8 >> 2] & 15 | 0) == 4) { 21193 HEAP32[i2 >> 2] = (HEAP32[i3 + (i5 << 4) >> 2] | 0) + 16; 21194 } else { 21195 i4 = 26; 21196 } 21197 } 21198 if ((i4 | 0) == 26) { 21199 HEAP32[i2 >> 2] = 2104; 21200 } 21201 if ((i7 | 0) == 0) { 21202 i13 = 2064; 21203 STACKTOP = i1; 21204 return i13 | 0; 21205 } 21206 i13 = (_strcmp(i7, 2048) | 0) == 0; 21207 i13 = i13 ? 2056 : 2064; 21208 STACKTOP = i1; 21209 return i13 | 0; 21210 } else if ((i4 | 0) == 29) { 21211 i3 = HEAP32[(HEAP32[i3 + 28 >> 2] | 0) + (i7 >>> 23 << 3) >> 2] | 0; 21212 if ((i3 | 0) == 0) { 21213 i3 = 2104; 21214 } else { 21215 i3 = i3 + 16 | 0; 21216 } 21217 HEAP32[i2 >> 2] = i3; 21218 i13 = 2072; 21219 STACKTOP = i1; 21220 return i13 | 0; 21221 } else if ((i4 | 0) == 32) { 21222 i5 = i7 >>> 14; 21223 } else if ((i4 | 0) == 33) { 21224 i5 = (HEAP32[i6 + (i5 + 1 << 2) >> 2] | 0) >>> 6; 21225 } else if ((i4 | 0) == 36) { 21226 i4 = i7 >>> 14; 21227 if ((i4 & 256 | 0) == 0) { 21228 i3 = _getobjname(i3, i5, i4 & 511, i2) | 0; 21229 if ((i3 | 0) != 0 ? (HEAP8[i3] | 0) == 99 : 0) { 21230 i13 = 2096; 21231 STACKTOP = i1; 21232 return i13 | 0; 21233 } 21234 } else { 21235 i4 = i4 & 255; 21236 i3 = HEAP32[i3 + 8 >> 2] | 0; 21237 if ((HEAP32[i3 + (i4 << 4) + 8 >> 2] & 15 | 0) == 4) { 21238 HEAP32[i2 >> 2] = (HEAP32[i3 + (i4 << 4) >> 2] | 0) + 16; 21239 i13 = 2096; 21240 STACKTOP = i1; 21241 return i13 | 0; 21242 } 21243 } 21244 HEAP32[i2 >> 2] = 2104; 21245 i13 = 2096; 21246 STACKTOP = i1; 21247 return i13 | 0; 21248 } else if ((i4 | 0) == 42) { 21249 STACKTOP = i1; 21250 return i2 | 0; 21251 } 21252 i3 = HEAP32[i3 + 8 >> 2] | 0; 21253 if ((HEAP32[i3 + (i5 << 4) + 8 >> 2] & 15 | 0) != 4) { 21254 i13 = 0; 21255 STACKTOP = i1; 21256 return i13 | 0; 21257 } 21258 HEAP32[i2 >> 2] = (HEAP32[i3 + (i5 << 4) >> 2] | 0) + 16; 21259 i13 = 2080; 21260 STACKTOP = i1; 21261 return i13 | 0; 21262 } 21263 function _assignment(i2, i16, i5) { 21264 i2 = i2 | 0; 21265 i16 = i16 | 0; 21266 i5 = i5 | 0; 21267 var i1 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0; 21268 i3 = STACKTOP; 21269 STACKTOP = STACKTOP + 80 | 0; 21270 i6 = i3 + 56 | 0; 21271 i1 = i3 + 32 | 0; 21272 i8 = i3; 21273 i4 = i16 + 8 | 0; 21274 if (!(((HEAP32[i4 >> 2] | 0) + -7 | 0) >>> 0 < 3)) { 21275 _luaX_syntaxerror(i2, 6344); 21276 } 21277 i13 = i2 + 16 | 0; 21278 i14 = HEAP32[i13 >> 2] | 0; 21279 do { 21280 if ((i14 | 0) == 44) { 21281 _luaX_next(i2); 21282 HEAP32[i8 >> 2] = i16; 21283 i14 = i8 + 8 | 0; 21284 _suffixedexp(i2, i14); 21285 i15 = i2 + 48 | 0; 21286 if ((HEAP32[i14 >> 2] | 0) != 9 ? (i10 = HEAP32[i15 >> 2] | 0, i11 = HEAP8[i10 + 48 | 0] | 0, i9 = i11 & 255, (i16 | 0) != 0) : 0) { 21287 i13 = i8 + 16 | 0; 21288 i12 = i11 & 255; 21289 i18 = 0; 21290 do { 21291 if ((HEAP32[i16 + 8 >> 2] | 0) == 9) { 21292 i17 = i16 + 16 | 0; 21293 i19 = i17 + 3 | 0; 21294 i20 = HEAPU8[i19] | 0; 21295 i21 = HEAP32[i14 >> 2] | 0; 21296 if ((i20 | 0) == (i21 | 0)) { 21297 i21 = i17 + 2 | 0; 21298 if ((HEAPU8[i21] | 0) == (HEAP32[i13 >> 2] | 0)) { 21299 HEAP8[i19] = 7; 21300 HEAP8[i21] = i11; 21301 i20 = HEAP32[i14 >> 2] | 0; 21302 i18 = 1; 21303 } 21304 } else { 21305 i20 = i21; 21306 } 21307 if ((i20 | 0) == 7 ? (HEAP16[i17 >> 1] | 0) == (HEAP32[i13 >> 2] | 0) : 0) { 21308 HEAP16[i17 >> 1] = i12; 21309 i18 = 1; 21310 } 21311 } 21312 i16 = HEAP32[i16 >> 2] | 0; 21313 } while ((i16 | 0) != 0); 21314 if ((i18 | 0) != 0) { 21315 _luaK_codeABC(i10, (HEAP32[i14 >> 2] | 0) == 7 ? 0 : 5, i9, HEAP32[i13 >> 2] | 0, 0) | 0; 21316 _luaK_reserveregs(i10, 1); 21317 } 21318 } 21319 i9 = HEAP32[i15 >> 2] | 0; 21320 if (((HEAPU16[(HEAP32[i2 + 52 >> 2] | 0) + 38 >> 1] | 0) + i5 | 0) <= 200) { 21321 _assignment(i2, i8, i5 + 1 | 0); 21322 i7 = i1; 21323 break; 21324 } 21325 i8 = i9 + 12 | 0; 21326 i5 = HEAP32[(HEAP32[i8 >> 2] | 0) + 52 >> 2] | 0; 21327 i9 = HEAP32[(HEAP32[i9 >> 2] | 0) + 64 >> 2] | 0; 21328 if ((i9 | 0) == 0) { 21329 i20 = 6552; 21330 HEAP32[i6 >> 2] = 6360; 21331 i21 = i6 + 4 | 0; 21332 HEAP32[i21 >> 2] = 200; 21333 i21 = i6 + 8 | 0; 21334 HEAP32[i21 >> 2] = i20; 21335 i21 = _luaO_pushfstring(i5, 6592, i6) | 0; 21336 i20 = HEAP32[i8 >> 2] | 0; 21337 _luaX_syntaxerror(i20, i21); 21338 } 21339 HEAP32[i6 >> 2] = i9; 21340 i20 = _luaO_pushfstring(i5, 6568, i6) | 0; 21341 HEAP32[i6 >> 2] = 6360; 21342 i21 = i6 + 4 | 0; 21343 HEAP32[i21 >> 2] = 200; 21344 i21 = i6 + 8 | 0; 21345 HEAP32[i21 >> 2] = i20; 21346 i21 = _luaO_pushfstring(i5, 6592, i6) | 0; 21347 i20 = HEAP32[i8 >> 2] | 0; 21348 _luaX_syntaxerror(i20, i21); 21349 } else if ((i14 | 0) == 61) { 21350 _luaX_next(i2); 21351 _subexpr(i2, i1, 0) | 0; 21352 i6 = i2 + 48 | 0; 21353 if ((HEAP32[i13 >> 2] | 0) == 44) { 21354 i9 = 1; 21355 do { 21356 _luaX_next(i2); 21357 _luaK_exp2nextreg(HEAP32[i6 >> 2] | 0, i1); 21358 _subexpr(i2, i1, 0) | 0; 21359 i9 = i9 + 1 | 0; 21360 } while ((HEAP32[i13 >> 2] | 0) == 44); 21361 } else { 21362 i9 = 1; 21363 } 21364 i8 = HEAP32[i6 >> 2] | 0; 21365 if ((i9 | 0) == (i5 | 0)) { 21366 _luaK_setoneret(i8, i1); 21367 _luaK_storevar(HEAP32[i6 >> 2] | 0, i4, i1); 21368 STACKTOP = i3; 21369 return; 21370 } 21371 i7 = i5 - i9 | 0; 21372 i10 = HEAP32[i1 >> 2] | 0; 21373 if ((i10 | 0) == 13 | (i10 | 0) == 12) { 21374 i10 = i7 + 1 | 0; 21375 i10 = (i10 | 0) < 0 ? 0 : i10; 21376 _luaK_setreturns(i8, i1, i10); 21377 if ((i10 | 0) > 1) { 21378 _luaK_reserveregs(i8, i10 + -1 | 0); 21379 } 21380 } else if ((i10 | 0) == 0) { 21381 i12 = 30; 21382 } else { 21383 _luaK_exp2nextreg(i8, i1); 21384 i12 = 30; 21385 } 21386 if ((i12 | 0) == 30 ? (i7 | 0) > 0 : 0) { 21387 i21 = HEAPU8[i8 + 48 | 0] | 0; 21388 _luaK_reserveregs(i8, i7); 21389 _luaK_nil(i8, i21, i7); 21390 } 21391 if ((i9 | 0) > (i5 | 0)) { 21392 i21 = (HEAP32[i6 >> 2] | 0) + 48 | 0; 21393 HEAP8[i21] = i7 + (HEAPU8[i21] | 0); 21394 i7 = i1; 21395 } else { 21396 i7 = i1; 21397 } 21398 } else { 21399 _error_expected(i2, 61); 21400 } 21401 } while (0); 21402 i21 = HEAP32[i2 + 48 >> 2] | 0; 21403 i20 = (HEAPU8[i21 + 48 | 0] | 0) + -1 | 0; 21404 HEAP32[i1 + 16 >> 2] = -1; 21405 HEAP32[i1 + 20 >> 2] = -1; 21406 HEAP32[i7 >> 2] = 6; 21407 HEAP32[i1 + 8 >> 2] = i20; 21408 _luaK_storevar(i21, i4, i1); 21409 STACKTOP = i3; 21410 return; 21411 } 21412 function _str_find_aux(i3, i7) { 21413 i3 = i3 | 0; 21414 i7 = i7 | 0; 21415 var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0; 21416 i1 = STACKTOP; 21417 STACKTOP = STACKTOP + 288 | 0; 21418 i9 = i1 + 284 | 0; 21419 i5 = i1 + 280 | 0; 21420 i4 = i1; 21421 i2 = _luaL_checklstring(i3, 1, i9) | 0; 21422 i8 = _luaL_checklstring(i3, 2, i5) | 0; 21423 i12 = _luaL_optinteger(i3, 3, 1) | 0; 21424 i10 = HEAP32[i9 >> 2] | 0; 21425 if (!((i12 | 0) > -1)) { 21426 if (i10 >>> 0 < (0 - i12 | 0) >>> 0) { 21427 i12 = 1; 21428 } else { 21429 i12 = i12 + 1 + i10 | 0; 21430 i6 = 4; 21431 } 21432 } else { 21433 i6 = 4; 21434 } 21435 if ((i6 | 0) == 4) { 21436 if ((i12 | 0) != 0) { 21437 if (i12 >>> 0 > (i10 + 1 | 0) >>> 0) { 21438 _lua_pushnil(i3); 21439 i13 = 1; 21440 STACKTOP = i1; 21441 return i13 | 0; 21442 } 21443 } else { 21444 i12 = 1; 21445 } 21446 } 21447 i7 = (i7 | 0) != 0; 21448 L10 : do { 21449 if (i7) { 21450 i13 = (_lua_toboolean(i3, 4) | 0) == 0; 21451 i10 = HEAP32[i5 >> 2] | 0; 21452 if (i13) { 21453 i11 = 0; 21454 do { 21455 i13 = i8 + i11 | 0; 21456 if ((_strpbrk(i13, 7512) | 0) != 0) { 21457 i6 = 20; 21458 break L10; 21459 } 21460 i11 = i11 + 1 + (_strlen(i13 | 0) | 0) | 0; 21461 } while (!(i11 >>> 0 > i10 >>> 0)); 21462 } 21463 i11 = i2 + (i12 + -1) | 0; 21464 i9 = (HEAP32[i9 >> 2] | 0) - i12 + 1 | 0; 21465 L17 : do { 21466 if ((i10 | 0) == 0) { 21467 if ((i11 | 0) == 0) { 21468 break L10; 21469 } 21470 } else { 21471 if (i10 >>> 0 > i9 >>> 0) { 21472 break L10; 21473 } 21474 i4 = i10 + -1 | 0; 21475 if ((i4 | 0) == (i9 | 0)) { 21476 break L10; 21477 } 21478 i7 = HEAP8[i8] | 0; 21479 i8 = i8 + 1 | 0; 21480 i9 = i9 - i4 | 0; 21481 i12 = i11; 21482 while (1) { 21483 i11 = _memchr(i12, i7, i9) | 0; 21484 if ((i11 | 0) == 0) { 21485 break L10; 21486 } 21487 i10 = i11 + 1 | 0; 21488 if ((_memcmp(i10, i8, i4) | 0) == 0) { 21489 break L17; 21490 } 21491 i11 = i10; 21492 i9 = i12 + i9 | 0; 21493 if ((i9 | 0) == (i11 | 0)) { 21494 break L10; 21495 } else { 21496 i9 = i9 - i11 | 0; 21497 i12 = i10; 21498 } 21499 } 21500 } 21501 } while (0); 21502 i13 = i11 - i2 | 0; 21503 _lua_pushinteger(i3, i13 + 1 | 0); 21504 _lua_pushinteger(i3, i13 + (HEAP32[i5 >> 2] | 0) | 0); 21505 i13 = 2; 21506 STACKTOP = i1; 21507 return i13 | 0; 21508 } else { 21509 i6 = 20; 21510 } 21511 } while (0); 21512 L28 : do { 21513 if ((i6 | 0) == 20) { 21514 i6 = i2 + (i12 + -1) | 0; 21515 i10 = (HEAP8[i8] | 0) == 94; 21516 if (i10) { 21517 i12 = (HEAP32[i5 >> 2] | 0) + -1 | 0; 21518 HEAP32[i5 >> 2] = i12; 21519 i8 = i8 + 1 | 0; 21520 } else { 21521 i12 = HEAP32[i5 >> 2] | 0; 21522 } 21523 i5 = i4 + 16 | 0; 21524 HEAP32[i5 >> 2] = i3; 21525 HEAP32[i4 >> 2] = 200; 21526 HEAP32[i4 + 4 >> 2] = i2; 21527 i11 = i4 + 8 | 0; 21528 HEAP32[i11 >> 2] = i2 + (HEAP32[i9 >> 2] | 0); 21529 HEAP32[i4 + 12 >> 2] = i8 + i12; 21530 i9 = i4 + 20 | 0; 21531 L34 : do { 21532 if (i10) { 21533 HEAP32[i9 >> 2] = 0; 21534 i8 = _match(i4, i6, i8) | 0; 21535 if ((i8 | 0) == 0) { 21536 break L28; 21537 } 21538 } else { 21539 while (1) { 21540 HEAP32[i9 >> 2] = 0; 21541 i10 = _match(i4, i6, i8) | 0; 21542 if ((i10 | 0) != 0) { 21543 i8 = i10; 21544 break L34; 21545 } 21546 if (!(i6 >>> 0 < (HEAP32[i11 >> 2] | 0) >>> 0)) { 21547 break L28; 21548 } 21549 i6 = i6 + 1 | 0; 21550 } 21551 } 21552 } while (0); 21553 if (i7) { 21554 _lua_pushinteger(i3, 1 - i2 + i6 | 0); 21555 _lua_pushinteger(i3, i8 - i2 | 0); 21556 i2 = HEAP32[i9 >> 2] | 0; 21557 _luaL_checkstack(HEAP32[i5 >> 2] | 0, i2, 7200); 21558 if ((i2 | 0) > 0) { 21559 i3 = 0; 21560 do { 21561 _push_onecapture(i4, i3, 0, 0); 21562 i3 = i3 + 1 | 0; 21563 } while ((i3 | 0) != (i2 | 0)); 21564 } 21565 i13 = i2 + 2 | 0; 21566 STACKTOP = i1; 21567 return i13 | 0; 21568 } else { 21569 i3 = HEAP32[i9 >> 2] | 0; 21570 i2 = (i3 | 0) != 0 | (i6 | 0) == 0 ? i3 : 1; 21571 _luaL_checkstack(HEAP32[i5 >> 2] | 0, i2, 7200); 21572 if ((i2 | 0) > 0) { 21573 i3 = 0; 21574 } else { 21575 i13 = i3; 21576 STACKTOP = i1; 21577 return i13 | 0; 21578 } 21579 do { 21580 _push_onecapture(i4, i3, i6, i8); 21581 i3 = i3 + 1 | 0; 21582 } while ((i3 | 0) != (i2 | 0)); 21583 STACKTOP = i1; 21584 return i2 | 0; 21585 } 21586 } 21587 } while (0); 21588 _lua_pushnil(i3); 21589 i13 = 1; 21590 STACKTOP = i1; 21591 return i13 | 0; 21592 } 21593 function _luaO_pushvfstring(i2, i13, i10) { 21594 i2 = i2 | 0; 21595 i13 = i13 | 0; 21596 i10 = i10 | 0; 21597 var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i11 = 0, i12 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, d18 = 0.0; 21598 i3 = STACKTOP; 21599 STACKTOP = STACKTOP + 48 | 0; 21600 i7 = i3; 21601 i9 = i3 + 32 | 0; 21602 i8 = i3 + 8 | 0; 21603 i14 = _strchr(i13, 37) | 0; 21604 i6 = i2 + 24 | 0; 21605 i4 = i2 + 8 | 0; 21606 i15 = HEAP32[i4 >> 2] | 0; 21607 i17 = (HEAP32[i6 >> 2] | 0) - i15 | 0; 21608 L1 : do { 21609 if ((i14 | 0) == 0) { 21610 i5 = i13; 21611 i11 = i17; 21612 i12 = i15; 21613 i1 = 0; 21614 } else { 21615 i16 = 0; 21616 L3 : while (1) { 21617 if ((i17 | 0) < 48) { 21618 _luaD_growstack(i2, 2); 21619 i15 = HEAP32[i4 >> 2] | 0; 21620 } 21621 HEAP32[i4 >> 2] = i15 + 16; 21622 i13 = _luaS_newlstr(i2, i13, i14 - i13 | 0) | 0; 21623 HEAP32[i15 >> 2] = i13; 21624 HEAP32[i15 + 8 >> 2] = HEAPU8[i13 + 4 | 0] | 64; 21625 i13 = HEAP8[i14 + 1 | 0] | 0; 21626 switch (i13 | 0) { 21627 case 115: 21628 { 21629 i17 = HEAP32[i10 >> 2] | 0; 21630 i13 = HEAP32[i17 >> 2] | 0; 21631 HEAP32[i10 >> 2] = i17 + 4; 21632 i13 = (i13 | 0) == 0 ? 5480 : i13; 21633 i15 = _strlen(i13 | 0) | 0; 21634 i17 = HEAP32[i4 >> 2] | 0; 21635 HEAP32[i4 >> 2] = i17 + 16; 21636 i15 = _luaS_newlstr(i2, i13, i15) | 0; 21637 HEAP32[i17 >> 2] = i15; 21638 HEAP32[i17 + 8 >> 2] = HEAPU8[i15 + 4 | 0] | 64; 21639 break; 21640 } 21641 case 100: 21642 { 21643 i17 = HEAP32[i4 >> 2] | 0; 21644 HEAP32[i4 >> 2] = i17 + 16; 21645 i13 = HEAP32[i10 >> 2] | 0; 21646 i15 = HEAP32[i13 >> 2] | 0; 21647 HEAP32[i10 >> 2] = i13 + 4; 21648 HEAPF64[i17 >> 3] = +(i15 | 0); 21649 HEAP32[i17 + 8 >> 2] = 3; 21650 break; 21651 } 21652 case 37: 21653 { 21654 i17 = HEAP32[i4 >> 2] | 0; 21655 HEAP32[i4 >> 2] = i17 + 16; 21656 i15 = _luaS_newlstr(i2, 5496, 1) | 0; 21657 HEAP32[i17 >> 2] = i15; 21658 HEAP32[i17 + 8 >> 2] = HEAPU8[i15 + 4 | 0] | 64; 21659 break; 21660 } 21661 case 99: 21662 { 21663 i15 = HEAP32[i10 >> 2] | 0; 21664 i17 = HEAP32[i15 >> 2] | 0; 21665 HEAP32[i10 >> 2] = i15 + 4; 21666 HEAP8[i9] = i17; 21667 i17 = HEAP32[i4 >> 2] | 0; 21668 HEAP32[i4 >> 2] = i17 + 16; 21669 i15 = _luaS_newlstr(i2, i9, 1) | 0; 21670 HEAP32[i17 >> 2] = i15; 21671 HEAP32[i17 + 8 >> 2] = HEAPU8[i15 + 4 | 0] | 64; 21672 break; 21673 } 21674 case 102: 21675 { 21676 i17 = HEAP32[i4 >> 2] | 0; 21677 HEAP32[i4 >> 2] = i17 + 16; 21678 i15 = HEAP32[i10 >> 2] | 0; 21679 d18 = +HEAPF64[i15 >> 3]; 21680 HEAP32[i10 >> 2] = i15 + 8; 21681 HEAPF64[i17 >> 3] = d18; 21682 HEAP32[i17 + 8 >> 2] = 3; 21683 break; 21684 } 21685 case 112: 21686 { 21687 i17 = HEAP32[i10 >> 2] | 0; 21688 i15 = HEAP32[i17 >> 2] | 0; 21689 HEAP32[i10 >> 2] = i17 + 4; 21690 HEAP32[i7 >> 2] = i15; 21691 i15 = _sprintf(i8 | 0, 5488, i7 | 0) | 0; 21692 i17 = HEAP32[i4 >> 2] | 0; 21693 HEAP32[i4 >> 2] = i17 + 16; 21694 i15 = _luaS_newlstr(i2, i8, i15) | 0; 21695 HEAP32[i17 >> 2] = i15; 21696 HEAP32[i17 + 8 >> 2] = HEAPU8[i15 + 4 | 0] | 64; 21697 break; 21698 } 21699 default: 21700 { 21701 break L3; 21702 } 21703 } 21704 i16 = i16 + 2 | 0; 21705 i13 = i14 + 2 | 0; 21706 i14 = _strchr(i13, 37) | 0; 21707 i15 = HEAP32[i4 >> 2] | 0; 21708 i17 = (HEAP32[i6 >> 2] | 0) - i15 | 0; 21709 if ((i14 | 0) == 0) { 21710 i5 = i13; 21711 i11 = i17; 21712 i12 = i15; 21713 i1 = i16; 21714 break L1; 21715 } 21716 } 21717 HEAP32[i7 >> 2] = i13; 21718 _luaG_runerror(i2, 5504, i7); 21719 } 21720 } while (0); 21721 if ((i11 | 0) < 32) { 21722 _luaD_growstack(i2, 1); 21723 i12 = HEAP32[i4 >> 2] | 0; 21724 } 21725 i17 = _strlen(i5 | 0) | 0; 21726 HEAP32[i4 >> 2] = i12 + 16; 21727 i17 = _luaS_newlstr(i2, i5, i17) | 0; 21728 HEAP32[i12 >> 2] = i17; 21729 HEAP32[i12 + 8 >> 2] = HEAPU8[i17 + 4 | 0] | 64; 21730 if ((i1 | 0) <= 0) { 21731 i17 = HEAP32[i4 >> 2] | 0; 21732 i17 = i17 + -16 | 0; 21733 i17 = HEAP32[i17 >> 2] | 0; 21734 i17 = i17 + 16 | 0; 21735 STACKTOP = i3; 21736 return i17 | 0; 21737 } 21738 _luaV_concat(i2, i1 | 1); 21739 i17 = HEAP32[i4 >> 2] | 0; 21740 i17 = i17 + -16 | 0; 21741 i17 = HEAP32[i17 >> 2] | 0; 21742 i17 = i17 + 16 | 0; 21743 STACKTOP = i3; 21744 return i17 | 0; 21745 } 21746 function _luaH_getn(i6) { 21747 i6 = i6 | 0; 21748 var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, d11 = 0.0, i12 = 0, i13 = 0; 21749 i1 = STACKTOP; 21750 STACKTOP = STACKTOP + 16 | 0; 21751 i2 = i1; 21752 i3 = i6 + 28 | 0; 21753 i12 = HEAP32[i3 >> 2] | 0; 21754 if ((i12 | 0) != 0 ? (i4 = HEAP32[i6 + 12 >> 2] | 0, (HEAP32[i4 + (i12 + -1 << 4) + 8 >> 2] | 0) == 0) : 0) { 21755 if (i12 >>> 0 > 1) { 21756 i10 = 0; 21757 } else { 21758 i13 = 0; 21759 STACKTOP = i1; 21760 return i13 | 0; 21761 } 21762 do { 21763 i2 = (i10 + i12 | 0) >>> 1; 21764 i3 = (HEAP32[i4 + (i2 + -1 << 4) + 8 >> 2] | 0) == 0; 21765 i12 = i3 ? i2 : i12; 21766 i10 = i3 ? i10 : i2; 21767 } while ((i12 - i10 | 0) >>> 0 > 1); 21768 STACKTOP = i1; 21769 return i10 | 0; 21770 } 21771 i4 = i6 + 16 | 0; 21772 if ((HEAP32[i4 >> 2] | 0) == 8016) { 21773 i13 = i12; 21774 STACKTOP = i1; 21775 return i13 | 0; 21776 } 21777 i5 = i6 + 12 | 0; 21778 i6 = i6 + 7 | 0; 21779 i9 = i2 + 4 | 0; 21780 i8 = i12 + 1 | 0; 21781 i13 = i12; 21782 i10 = i12; 21783 while (1) { 21784 i12 = i8 + -1 | 0; 21785 L15 : do { 21786 if (i12 >>> 0 < i13 >>> 0) { 21787 i12 = (HEAP32[i5 >> 2] | 0) + (i12 << 4) | 0; 21788 } else { 21789 d11 = +(i8 | 0); 21790 HEAPF64[i2 >> 3] = d11 + 1.0; 21791 i13 = (HEAP32[i9 >> 2] | 0) + (HEAP32[i2 >> 2] | 0) | 0; 21792 if ((i13 | 0) < 0) { 21793 i12 = 0 - i13 | 0; 21794 i13 = (i13 | 0) == (i12 | 0) ? 0 : i12; 21795 } 21796 i12 = (HEAP32[i4 >> 2] | 0) + (((i13 | 0) % ((1 << (HEAPU8[i6] | 0)) + -1 | 1 | 0) | 0) << 5) | 0; 21797 while (1) { 21798 if ((HEAP32[i12 + 24 >> 2] | 0) == 3 ? +HEAPF64[i12 + 16 >> 3] == d11 : 0) { 21799 break; 21800 } 21801 i12 = HEAP32[i12 + 28 >> 2] | 0; 21802 if ((i12 | 0) == 0) { 21803 i12 = 5192; 21804 break L15; 21805 } 21806 } 21807 } 21808 } while (0); 21809 if ((HEAP32[i12 + 8 >> 2] | 0) == 0) { 21810 break; 21811 } 21812 i10 = i8 << 1; 21813 if (i10 >>> 0 > 2147483645) { 21814 i7 = 21; 21815 break; 21816 } 21817 i12 = i8; 21818 i8 = i10; 21819 i13 = HEAP32[i3 >> 2] | 0; 21820 i10 = i12; 21821 } 21822 if ((i7 | 0) == 21) { 21823 i8 = i2 + 4 | 0; 21824 i7 = 1; 21825 while (1) { 21826 i10 = i7 + -1 | 0; 21827 L34 : do { 21828 if (i10 >>> 0 < (HEAP32[i3 >> 2] | 0) >>> 0) { 21829 i9 = (HEAP32[i5 >> 2] | 0) + (i10 << 4) | 0; 21830 } else { 21831 d11 = +(i7 | 0); 21832 HEAPF64[i2 >> 3] = d11 + 1.0; 21833 i9 = (HEAP32[i8 >> 2] | 0) + (HEAP32[i2 >> 2] | 0) | 0; 21834 if ((i9 | 0) < 0) { 21835 i12 = 0 - i9 | 0; 21836 i9 = (i9 | 0) == (i12 | 0) ? 0 : i12; 21837 } 21838 i9 = (HEAP32[i4 >> 2] | 0) + (((i9 | 0) % ((1 << (HEAPU8[i6] | 0)) + -1 | 1 | 0) | 0) << 5) | 0; 21839 while (1) { 21840 if ((HEAP32[i9 + 24 >> 2] | 0) == 3 ? +HEAPF64[i9 + 16 >> 3] == d11 : 0) { 21841 break; 21842 } 21843 i9 = HEAP32[i9 + 28 >> 2] | 0; 21844 if ((i9 | 0) == 0) { 21845 i9 = 5192; 21846 break L34; 21847 } 21848 } 21849 } 21850 } while (0); 21851 if ((HEAP32[i9 + 8 >> 2] | 0) == 0) { 21852 break; 21853 } 21854 i7 = i7 + 1 | 0; 21855 } 21856 STACKTOP = i1; 21857 return i10 | 0; 21858 } 21859 if (!((i8 - i10 | 0) >>> 0 > 1)) { 21860 i13 = i10; 21861 STACKTOP = i1; 21862 return i13 | 0; 21863 } 21864 i7 = i2 + 4 | 0; 21865 do { 21866 i9 = (i8 + i10 | 0) >>> 1; 21867 i12 = i9 + -1 | 0; 21868 L55 : do { 21869 if (i12 >>> 0 < (HEAP32[i3 >> 2] | 0) >>> 0) { 21870 i12 = (HEAP32[i5 >> 2] | 0) + (i12 << 4) | 0; 21871 } else { 21872 d11 = +(i9 | 0); 21873 HEAPF64[i2 >> 3] = d11 + 1.0; 21874 i13 = (HEAP32[i7 >> 2] | 0) + (HEAP32[i2 >> 2] | 0) | 0; 21875 if ((i13 | 0) < 0) { 21876 i12 = 0 - i13 | 0; 21877 i13 = (i13 | 0) == (i12 | 0) ? 0 : i12; 21878 } 21879 i12 = (HEAP32[i4 >> 2] | 0) + (((i13 | 0) % ((1 << (HEAPU8[i6] | 0)) + -1 | 1 | 0) | 0) << 5) | 0; 21880 while (1) { 21881 if ((HEAP32[i12 + 24 >> 2] | 0) == 3 ? +HEAPF64[i12 + 16 >> 3] == d11 : 0) { 21882 break; 21883 } 21884 i12 = HEAP32[i12 + 28 >> 2] | 0; 21885 if ((i12 | 0) == 0) { 21886 i12 = 5192; 21887 break L55; 21888 } 21889 } 21890 } 21891 } while (0); 21892 i12 = (HEAP32[i12 + 8 >> 2] | 0) == 0; 21893 i8 = i12 ? i9 : i8; 21894 i10 = i12 ? i10 : i9; 21895 } while ((i8 - i10 | 0) >>> 0 > 1); 21896 STACKTOP = i1; 21897 return i10 | 0; 21898 } 21899 function _lua_resume(i4, i3, i7) { 21900 i4 = i4 | 0; 21901 i3 = i3 | 0; 21902 i7 = i7 | 0; 21903 var i1 = 0, i2 = 0, i5 = 0, i6 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0; 21904 i1 = STACKTOP; 21905 if ((i3 | 0) == 0) { 21906 i5 = 1; 21907 } else { 21908 i5 = (HEAPU16[i3 + 38 >> 1] | 0) + 1 & 65535; 21909 } 21910 i3 = i4 + 38 | 0; 21911 HEAP16[i3 >> 1] = i5; 21912 i5 = i4 + 36 | 0; 21913 HEAP16[i5 >> 1] = 0; 21914 i6 = i4 + 8 | 0; 21915 i13 = _luaD_rawrunprotected(i4, 4, (HEAP32[i6 >> 2] | 0) + (0 - i7 << 4) | 0) | 0; 21916 if ((i13 | 0) == -1) { 21917 i18 = 2; 21918 HEAP16[i5 >> 1] = 1; 21919 i17 = HEAP16[i3 >> 1] | 0; 21920 i17 = i17 + -1 << 16 >> 16; 21921 HEAP16[i3 >> 1] = i17; 21922 STACKTOP = i1; 21923 return i18 | 0; 21924 } 21925 if (!(i13 >>> 0 > 1)) { 21926 i18 = i13; 21927 HEAP16[i5 >> 1] = 1; 21928 i17 = HEAP16[i3 >> 1] | 0; 21929 i17 = i17 + -1 << 16 >> 16; 21930 HEAP16[i3 >> 1] = i17; 21931 STACKTOP = i1; 21932 return i18 | 0; 21933 } 21934 i7 = i4 + 16 | 0; 21935 i12 = i4 + 28 | 0; 21936 i11 = i4 + 41 | 0; 21937 i10 = i4 + 68 | 0; 21938 i9 = i4 + 32 | 0; 21939 i8 = i4 + 12 | 0; 21940 L10 : while (1) { 21941 i15 = HEAP32[i7 >> 2] | 0; 21942 if ((i15 | 0) == 0) { 21943 break; 21944 } 21945 while (1) { 21946 i14 = i15 + 18 | 0; 21947 if (!((HEAP8[i14] & 16) == 0)) { 21948 break; 21949 } 21950 i15 = HEAP32[i15 + 8 >> 2] | 0; 21951 if ((i15 | 0) == 0) { 21952 break L10; 21953 } 21954 } 21955 i16 = HEAP32[i12 >> 2] | 0; 21956 i17 = HEAP32[i15 + 20 >> 2] | 0; 21957 i18 = i16 + i17 | 0; 21958 _luaF_close(i4, i18); 21959 if ((i13 | 0) == 4) { 21960 i19 = HEAP32[(HEAP32[i8 >> 2] | 0) + 180 >> 2] | 0; 21961 HEAP32[i18 >> 2] = i19; 21962 HEAP32[i16 + (i17 + 8) >> 2] = HEAPU8[i19 + 4 | 0] | 0 | 64; 21963 } else if ((i13 | 0) == 6) { 21964 i19 = _luaS_newlstr(i4, 2424, 23) | 0; 21965 HEAP32[i18 >> 2] = i19; 21966 HEAP32[i16 + (i17 + 8) >> 2] = HEAPU8[i19 + 4 | 0] | 0 | 64; 21967 } else { 21968 i19 = HEAP32[i6 >> 2] | 0; 21969 i21 = i19 + -16 | 0; 21970 i20 = HEAP32[i21 + 4 >> 2] | 0; 21971 HEAP32[i18 >> 2] = HEAP32[i21 >> 2]; 21972 HEAP32[i18 + 4 >> 2] = i20; 21973 HEAP32[i16 + (i17 + 8) >> 2] = HEAP32[i19 + -8 >> 2]; 21974 } 21975 i17 = i16 + (i17 + 16) | 0; 21976 HEAP32[i6 >> 2] = i17; 21977 HEAP32[i7 >> 2] = i15; 21978 HEAP8[i11] = HEAP8[i15 + 36 | 0] | 0; 21979 HEAP16[i5 >> 1] = 0; 21980 if ((i15 | 0) != 0) { 21981 i16 = i15; 21982 do { 21983 i18 = HEAP32[i16 + 4 >> 2] | 0; 21984 i17 = i17 >>> 0 < i18 >>> 0 ? i18 : i17; 21985 i16 = HEAP32[i16 + 8 >> 2] | 0; 21986 } while ((i16 | 0) != 0); 21987 } 21988 i16 = i17 - (HEAP32[i12 >> 2] | 0) | 0; 21989 i17 = (i16 >> 4) + 1 | 0; 21990 i17 = ((i17 | 0) / 8 | 0) + 10 + i17 | 0; 21991 i17 = (i17 | 0) > 1e6 ? 1e6 : i17; 21992 if ((i16 | 0) <= 15999984 ? (i17 | 0) < (HEAP32[i9 >> 2] | 0) : 0) { 21993 _luaD_reallocstack(i4, i17); 21994 } 21995 HEAP32[i10 >> 2] = HEAP32[i15 + 32 >> 2]; 21996 HEAP8[i14] = HEAPU8[i14] | 0 | 32; 21997 HEAP8[i15 + 37 | 0] = i13; 21998 i13 = _luaD_rawrunprotected(i4, 5, 0) | 0; 21999 if (!(i13 >>> 0 > 1)) { 22000 i2 = 24; 22001 break; 22002 } 22003 } 22004 if ((i2 | 0) == 24) { 22005 HEAP16[i5 >> 1] = 1; 22006 i21 = HEAP16[i3 >> 1] | 0; 22007 i21 = i21 + -1 << 16 >> 16; 22008 HEAP16[i3 >> 1] = i21; 22009 STACKTOP = i1; 22010 return i13 | 0; 22011 } 22012 HEAP8[i4 + 6 | 0] = i13; 22013 i2 = HEAP32[i6 >> 2] | 0; 22014 if ((i13 | 0) == 4) { 22015 i21 = HEAP32[(HEAP32[i8 >> 2] | 0) + 180 >> 2] | 0; 22016 HEAP32[i2 >> 2] = i21; 22017 HEAP32[i2 + 8 >> 2] = HEAPU8[i21 + 4 | 0] | 0 | 64; 22018 } else if ((i13 | 0) == 6) { 22019 i21 = _luaS_newlstr(i4, 2424, 23) | 0; 22020 HEAP32[i2 >> 2] = i21; 22021 HEAP32[i2 + 8 >> 2] = HEAPU8[i21 + 4 | 0] | 0 | 64; 22022 } else { 22023 i19 = i2 + -16 | 0; 22024 i20 = HEAP32[i19 + 4 >> 2] | 0; 22025 i21 = i2; 22026 HEAP32[i21 >> 2] = HEAP32[i19 >> 2]; 22027 HEAP32[i21 + 4 >> 2] = i20; 22028 HEAP32[i2 + 8 >> 2] = HEAP32[i2 + -8 >> 2]; 22029 } 22030 i21 = i2 + 16 | 0; 22031 HEAP32[i6 >> 2] = i21; 22032 HEAP32[(HEAP32[i7 >> 2] | 0) + 4 >> 2] = i21; 22033 i21 = i13; 22034 HEAP16[i5 >> 1] = 1; 22035 i20 = HEAP16[i3 >> 1] | 0; 22036 i20 = i20 + -1 << 16 >> 16; 22037 HEAP16[i3 >> 1] = i20; 22038 STACKTOP = i1; 22039 return i21 | 0; 22040 } 22041 function _luaK_goiftrue(i1, i3) { 22042 i1 = i1 | 0; 22043 i3 = i3 | 0; 22044 var i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0; 22045 i2 = STACKTOP; 22046 _luaK_dischargevars(i1, i3); 22047 i12 = HEAP32[i3 >> 2] | 0; 22048 do { 22049 if ((i12 | 0) == 10) { 22050 i9 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0; 22051 i5 = i3 + 8 | 0; 22052 i8 = HEAP32[i5 >> 2] | 0; 22053 i7 = i9 + (i8 << 2) | 0; 22054 if (!((i8 | 0) > 0 ? (i10 = i9 + (i8 + -1 << 2) | 0, i6 = HEAP32[i10 >> 2] | 0, (HEAP8[5584 + (i6 & 63) | 0] | 0) < 0) : 0)) { 22055 i10 = i7; 22056 i6 = HEAP32[i7 >> 2] | 0; 22057 } 22058 HEAP32[i10 >> 2] = ((i6 & 16320 | 0) == 0) << 6 | i6 & -16321; 22059 i5 = HEAP32[i5 >> 2] | 0; 22060 i8 = 18; 22061 } else if (!((i12 | 0) == 2 | (i12 | 0) == 5 | (i12 | 0) == 4)) { 22062 i5 = i3 + 8 | 0; 22063 if ((i12 | 0) == 6) { 22064 i8 = 14; 22065 } else if ((i12 | 0) == 11 ? (i11 = HEAP32[(HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i5 >> 2] << 2) >> 2] | 0, (i11 & 63 | 0) == 20) : 0) { 22066 i5 = i1 + 20 | 0; 22067 HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + -1; 22068 i5 = _condjump(i1, 27, i11 >>> 23, 0, 1) | 0; 22069 i8 = 18; 22070 break; 22071 } else { 22072 i8 = 9; 22073 } 22074 if ((i8 | 0) == 9) { 22075 i12 = i1 + 48 | 0; 22076 i10 = HEAP8[i12] | 0; 22077 i11 = (i10 & 255) + 1 | 0; 22078 i6 = (HEAP32[i1 >> 2] | 0) + 78 | 0; 22079 do { 22080 if (i11 >>> 0 > (HEAPU8[i6] | 0) >>> 0) { 22081 if (i11 >>> 0 > 249) { 22082 _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10536); 22083 } else { 22084 HEAP8[i6] = i11; 22085 i9 = HEAP8[i12] | 0; 22086 break; 22087 } 22088 } else { 22089 i9 = i10; 22090 } 22091 } while (0); 22092 i11 = (i9 & 255) + 1 | 0; 22093 HEAP8[i12] = i11; 22094 _discharge2reg(i1, i3, (i11 & 255) + -1 | 0); 22095 if ((HEAP32[i3 >> 2] | 0) == 6) { 22096 i8 = 14; 22097 } 22098 } 22099 if (((i8 | 0) == 14 ? (i7 = HEAP32[i5 >> 2] | 0, (i7 & 256 | 0) == 0) : 0) ? (HEAPU8[i1 + 46 | 0] | 0) <= (i7 | 0) : 0) { 22100 i12 = i1 + 48 | 0; 22101 HEAP8[i12] = (HEAP8[i12] | 0) + -1 << 24 >> 24; 22102 } 22103 i5 = _condjump(i1, 28, 255, HEAP32[i5 >> 2] | 0, 0) | 0; 22104 i8 = 18; 22105 } 22106 } while (0); 22107 do { 22108 if ((i8 | 0) == 18 ? (i4 = i3 + 20 | 0, !((i5 | 0) == -1)) : 0) { 22109 i8 = HEAP32[i4 >> 2] | 0; 22110 if ((i8 | 0) == -1) { 22111 HEAP32[i4 >> 2] = i5; 22112 break; 22113 } 22114 i4 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0; 22115 while (1) { 22116 i7 = i4 + (i8 << 2) | 0; 22117 i6 = HEAP32[i7 >> 2] | 0; 22118 i9 = (i6 >>> 14) + -131071 | 0; 22119 if ((i9 | 0) == -1) { 22120 break; 22121 } 22122 i9 = i8 + 1 + i9 | 0; 22123 if ((i9 | 0) == -1) { 22124 break; 22125 } else { 22126 i8 = i9; 22127 } 22128 } 22129 i4 = i5 + ~i8 | 0; 22130 if ((((i4 | 0) > -1 ? i4 : 0 - i4 | 0) | 0) > 131071) { 22131 _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10624); 22132 } else { 22133 HEAP32[i7 >> 2] = (i4 << 14) + 2147467264 | i6 & 16383; 22134 break; 22135 } 22136 } 22137 } while (0); 22138 i3 = i3 + 16 | 0; 22139 i4 = HEAP32[i3 >> 2] | 0; 22140 HEAP32[i1 + 24 >> 2] = HEAP32[i1 + 20 >> 2]; 22141 i5 = i1 + 28 | 0; 22142 if ((i4 | 0) == -1) { 22143 HEAP32[i3 >> 2] = -1; 22144 STACKTOP = i2; 22145 return; 22146 } 22147 i8 = HEAP32[i5 >> 2] | 0; 22148 if ((i8 | 0) == -1) { 22149 HEAP32[i5 >> 2] = i4; 22150 HEAP32[i3 >> 2] = -1; 22151 STACKTOP = i2; 22152 return; 22153 } 22154 i7 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0; 22155 while (1) { 22156 i5 = i7 + (i8 << 2) | 0; 22157 i6 = HEAP32[i5 >> 2] | 0; 22158 i9 = (i6 >>> 14) + -131071 | 0; 22159 if ((i9 | 0) == -1) { 22160 break; 22161 } 22162 i9 = i8 + 1 + i9 | 0; 22163 if ((i9 | 0) == -1) { 22164 break; 22165 } else { 22166 i8 = i9; 22167 } 22168 } 22169 i4 = i4 + ~i8 | 0; 22170 if ((((i4 | 0) > -1 ? i4 : 0 - i4 | 0) | 0) > 131071) { 22171 _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10624); 22172 } 22173 HEAP32[i5 >> 2] = (i4 << 14) + 2147467264 | i6 & 16383; 22174 HEAP32[i3 >> 2] = -1; 22175 STACKTOP = i2; 22176 return; 22177 } 22178 function _luaO_str2d(i1, i3, i5) { 22179 i1 = i1 | 0; 22180 i3 = i3 | 0; 22181 i5 = i5 | 0; 22182 var i2 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, d9 = 0.0, i10 = 0, i11 = 0, i12 = 0, i13 = 0; 22183 i2 = STACKTOP; 22184 STACKTOP = STACKTOP + 16 | 0; 22185 i4 = i2; 22186 if ((_strpbrk(i1, 5464) | 0) != 0) { 22187 i13 = 0; 22188 STACKTOP = i2; 22189 return i13 | 0; 22190 } 22191 do { 22192 if ((_strpbrk(i1, 5472) | 0) == 0) { 22193 d9 = +_strtod(i1, i4); 22194 i10 = HEAP32[i4 >> 2] | 0; 22195 } else { 22196 HEAP32[i4 >> 2] = i1; 22197 i8 = i1; 22198 while (1) { 22199 i6 = HEAP8[i8] | 0; 22200 i10 = i8 + 1 | 0; 22201 if ((HEAP8[(i6 & 255) + 10913 | 0] & 8) == 0) { 22202 break; 22203 } else { 22204 i8 = i10; 22205 } 22206 } 22207 if (i6 << 24 >> 24 == 43) { 22208 i6 = 0; 22209 i8 = i10; 22210 } else if (i6 << 24 >> 24 == 45) { 22211 i6 = 1; 22212 i8 = i10; 22213 } else { 22214 i6 = 0; 22215 } 22216 if ((HEAP8[i8] | 0) == 48 ? (i13 = HEAP8[i8 + 1 | 0] | 0, i13 << 24 >> 24 == 88 | i13 << 24 >> 24 == 120) : 0) { 22217 i10 = i8 + 2 | 0; 22218 i8 = HEAP8[i10] | 0; 22219 i12 = i8 & 255; 22220 i11 = HEAP8[i12 + 10913 | 0] | 0; 22221 if ((i11 & 16) == 0) { 22222 d9 = 0.0; 22223 i11 = i8; 22224 i8 = 0; 22225 } else { 22226 d9 = 0.0; 22227 i8 = 0; 22228 while (1) { 22229 if ((i11 & 2) == 0) { 22230 i11 = (i12 | 32) + -87 | 0; 22231 } else { 22232 i11 = i12 + -48 | 0; 22233 } 22234 d9 = d9 * 16.0 + +(i11 | 0); 22235 i8 = i8 + 1 | 0; 22236 i10 = i10 + 1 | 0; 22237 i13 = HEAP8[i10] | 0; 22238 i12 = i13 & 255; 22239 i11 = HEAP8[i12 + 10913 | 0] | 0; 22240 if ((i11 & 16) == 0) { 22241 i11 = i13; 22242 break; 22243 } 22244 } 22245 } 22246 if (i11 << 24 >> 24 == 46) { 22247 i10 = i10 + 1 | 0; 22248 i13 = HEAPU8[i10] | 0; 22249 i11 = HEAP8[i13 + 10913 | 0] | 0; 22250 if ((i11 & 16) == 0) { 22251 i12 = 0; 22252 } else { 22253 i12 = 0; 22254 do { 22255 if ((i11 & 2) == 0) { 22256 i11 = (i13 | 32) + -87 | 0; 22257 } else { 22258 i11 = i13 + -48 | 0; 22259 } 22260 d9 = d9 * 16.0 + +(i11 | 0); 22261 i12 = i12 + 1 | 0; 22262 i10 = i10 + 1 | 0; 22263 i13 = HEAPU8[i10] | 0; 22264 i11 = HEAP8[i13 + 10913 | 0] | 0; 22265 } while (!((i11 & 16) == 0)); 22266 } 22267 } else { 22268 i12 = 0; 22269 } 22270 if ((i12 | i8 | 0) != 0) { 22271 i8 = Math_imul(i12, -4) | 0; 22272 HEAP32[i4 >> 2] = i10; 22273 i13 = HEAP8[i10] | 0; 22274 if (i13 << 24 >> 24 == 80 | i13 << 24 >> 24 == 112) { 22275 i13 = i10 + 1 | 0; 22276 i11 = HEAP8[i13] | 0; 22277 if (i11 << 24 >> 24 == 45) { 22278 i11 = 1; 22279 i13 = i10 + 2 | 0; 22280 } else if (i11 << 24 >> 24 == 43) { 22281 i11 = 0; 22282 i13 = i10 + 2 | 0; 22283 } else { 22284 i11 = 0; 22285 } 22286 i12 = HEAP8[i13] | 0; 22287 if (!((HEAP8[(i12 & 255) + 10913 | 0] & 2) == 0)) { 22288 i10 = i13; 22289 i7 = 0; 22290 do { 22291 i10 = i10 + 1 | 0; 22292 i7 = (i12 << 24 >> 24) + -48 + (i7 * 10 | 0) | 0; 22293 i12 = HEAP8[i10] | 0; 22294 } while (!((HEAP8[(i12 & 255) + 10913 | 0] & 2) == 0)); 22295 i8 = ((i11 | 0) == 0 ? i7 : 0 - i7 | 0) + i8 | 0; 22296 i7 = 29; 22297 } 22298 } else { 22299 i7 = 29; 22300 } 22301 if ((i7 | 0) == 29) { 22302 HEAP32[i4 >> 2] = i10; 22303 } 22304 if ((i6 | 0) != 0) { 22305 d9 = -d9; 22306 } 22307 d9 = +_ldexp(d9, i8); 22308 break; 22309 } 22310 } 22311 HEAPF64[i5 >> 3] = 0.0; 22312 i13 = 0; 22313 STACKTOP = i2; 22314 return i13 | 0; 22315 } 22316 } while (0); 22317 HEAPF64[i5 >> 3] = d9; 22318 if ((i10 | 0) == (i1 | 0)) { 22319 i13 = 0; 22320 STACKTOP = i2; 22321 return i13 | 0; 22322 } 22323 if (!((HEAP8[(HEAPU8[i10] | 0) + 10913 | 0] & 8) == 0)) { 22324 do { 22325 i10 = i10 + 1 | 0; 22326 } while (!((HEAP8[(HEAPU8[i10] | 0) + 10913 | 0] & 8) == 0)); 22327 HEAP32[i4 >> 2] = i10; 22328 } 22329 i13 = (i10 | 0) == (i1 + i3 | 0) | 0; 22330 STACKTOP = i2; 22331 return i13 | 0; 22332 } 22333 function _luaV_equalobj_(i2, i4, i5) { 22334 i2 = i2 | 0; 22335 i4 = i4 | 0; 22336 i5 = i5 | 0; 22337 var i1 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0; 22338 i1 = STACKTOP; 22339 i3 = i4 + 8 | 0; 22340 L1 : do { 22341 switch (HEAP32[i3 >> 2] & 63 | 0) { 22342 case 7: 22343 { 22344 i6 = HEAP32[i4 >> 2] | 0; 22345 i7 = HEAP32[i5 >> 2] | 0; 22346 if ((i6 | 0) == (i7 | 0)) { 22347 i7 = 1; 22348 STACKTOP = i1; 22349 return i7 | 0; 22350 } 22351 if ((i2 | 0) == 0) { 22352 i7 = 0; 22353 STACKTOP = i1; 22354 return i7 | 0; 22355 } else { 22356 i6 = _get_equalTM(i2, HEAP32[i6 + 8 >> 2] | 0, HEAP32[i7 + 8 >> 2] | 0) | 0; 22357 break L1; 22358 } 22359 } 22360 case 5: 22361 { 22362 i7 = HEAP32[i4 >> 2] | 0; 22363 i6 = HEAP32[i5 >> 2] | 0; 22364 if ((i7 | 0) == (i6 | 0)) { 22365 i7 = 1; 22366 STACKTOP = i1; 22367 return i7 | 0; 22368 } 22369 if ((i2 | 0) == 0) { 22370 i7 = 0; 22371 STACKTOP = i1; 22372 return i7 | 0; 22373 } else { 22374 i6 = _get_equalTM(i2, HEAP32[i7 + 8 >> 2] | 0, HEAP32[i6 + 8 >> 2] | 0) | 0; 22375 break L1; 22376 } 22377 } 22378 case 4: 22379 { 22380 i7 = (HEAP32[i4 >> 2] | 0) == (HEAP32[i5 >> 2] | 0) | 0; 22381 STACKTOP = i1; 22382 return i7 | 0; 22383 } 22384 case 20: 22385 { 22386 i7 = _luaS_eqlngstr(HEAP32[i4 >> 2] | 0, HEAP32[i5 >> 2] | 0) | 0; 22387 STACKTOP = i1; 22388 return i7 | 0; 22389 } 22390 case 3: 22391 { 22392 i7 = +HEAPF64[i4 >> 3] == +HEAPF64[i5 >> 3] | 0; 22393 STACKTOP = i1; 22394 return i7 | 0; 22395 } 22396 case 1: 22397 { 22398 i7 = (HEAP32[i4 >> 2] | 0) == (HEAP32[i5 >> 2] | 0) | 0; 22399 STACKTOP = i1; 22400 return i7 | 0; 22401 } 22402 case 22: 22403 { 22404 i7 = (HEAP32[i4 >> 2] | 0) == (HEAP32[i5 >> 2] | 0) | 0; 22405 STACKTOP = i1; 22406 return i7 | 0; 22407 } 22408 case 2: 22409 { 22410 i7 = (HEAP32[i4 >> 2] | 0) == (HEAP32[i5 >> 2] | 0) | 0; 22411 STACKTOP = i1; 22412 return i7 | 0; 22413 } 22414 case 0: 22415 { 22416 i7 = 1; 22417 STACKTOP = i1; 22418 return i7 | 0; 22419 } 22420 default: 22421 { 22422 i7 = (HEAP32[i4 >> 2] | 0) == (HEAP32[i5 >> 2] | 0) | 0; 22423 STACKTOP = i1; 22424 return i7 | 0; 22425 } 22426 } 22427 } while (0); 22428 if ((i6 | 0) == 0) { 22429 i7 = 0; 22430 STACKTOP = i1; 22431 return i7 | 0; 22432 } 22433 i7 = i2 + 8 | 0; 22434 i10 = HEAP32[i7 >> 2] | 0; 22435 i9 = i2 + 28 | 0; 22436 i8 = i10 - (HEAP32[i9 >> 2] | 0) | 0; 22437 HEAP32[i7 >> 2] = i10 + 16; 22438 i13 = i6; 22439 i12 = HEAP32[i13 + 4 >> 2] | 0; 22440 i11 = i10; 22441 HEAP32[i11 >> 2] = HEAP32[i13 >> 2]; 22442 HEAP32[i11 + 4 >> 2] = i12; 22443 HEAP32[i10 + 8 >> 2] = HEAP32[i6 + 8 >> 2]; 22444 i10 = HEAP32[i7 >> 2] | 0; 22445 HEAP32[i7 >> 2] = i10 + 16; 22446 i11 = i4; 22447 i4 = HEAP32[i11 + 4 >> 2] | 0; 22448 i6 = i10; 22449 HEAP32[i6 >> 2] = HEAP32[i11 >> 2]; 22450 HEAP32[i6 + 4 >> 2] = i4; 22451 HEAP32[i10 + 8 >> 2] = HEAP32[i3 >> 2]; 22452 i3 = HEAP32[i7 >> 2] | 0; 22453 HEAP32[i7 >> 2] = i3 + 16; 22454 i10 = i5; 22455 i6 = HEAP32[i10 + 4 >> 2] | 0; 22456 i4 = i3; 22457 HEAP32[i4 >> 2] = HEAP32[i10 >> 2]; 22458 HEAP32[i4 + 4 >> 2] = i6; 22459 HEAP32[i3 + 8 >> 2] = HEAP32[i5 + 8 >> 2]; 22460 _luaD_call(i2, (HEAP32[i7 >> 2] | 0) + -48 | 0, 1, HEAP8[(HEAP32[i2 + 16 >> 2] | 0) + 18 | 0] & 1); 22461 i2 = HEAP32[i9 >> 2] | 0; 22462 i3 = HEAP32[i7 >> 2] | 0; 22463 i4 = i3 + -16 | 0; 22464 HEAP32[i7 >> 2] = i4; 22465 i5 = HEAP32[i4 + 4 >> 2] | 0; 22466 i6 = i2 + i8 | 0; 22467 HEAP32[i6 >> 2] = HEAP32[i4 >> 2]; 22468 HEAP32[i6 + 4 >> 2] = i5; 22469 HEAP32[i2 + (i8 + 8) >> 2] = HEAP32[i3 + -8 >> 2]; 22470 i2 = HEAP32[i7 >> 2] | 0; 22471 i3 = HEAP32[i2 + 8 >> 2] | 0; 22472 if ((i3 | 0) != 0) { 22473 if ((i3 | 0) == 1) { 22474 i2 = (HEAP32[i2 >> 2] | 0) != 0; 22475 } else { 22476 i2 = 1; 22477 } 22478 } else { 22479 i2 = 0; 22480 } 22481 i13 = i2 & 1; 22482 STACKTOP = i1; 22483 return i13 | 0; 22484 } 22485 function _forbody(i1, i5, i6, i4, i9) { 22486 i1 = i1 | 0; 22487 i5 = i5 | 0; 22488 i6 = i6 | 0; 22489 i4 = i4 | 0; 22490 i9 = i9 | 0; 22491 var i2 = 0, i3 = 0, i7 = 0, i8 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0; 22492 i3 = STACKTOP; 22493 STACKTOP = STACKTOP + 32 | 0; 22494 i8 = i3 + 12 | 0; 22495 i19 = i3; 22496 i11 = i1 + 48 | 0; 22497 i7 = HEAP32[i11 >> 2] | 0; 22498 i18 = i7 + 46 | 0; 22499 i22 = (HEAPU8[i18] | 0) + 3 | 0; 22500 HEAP8[i18] = i22; 22501 i21 = i7 + 20 | 0; 22502 i17 = i7 + 12 | 0; 22503 i2 = i7 + 40 | 0; 22504 i20 = HEAP32[(HEAP32[i7 >> 2] | 0) + 24 >> 2] | 0; 22505 i10 = HEAP32[HEAP32[(HEAP32[i17 >> 2] | 0) + 64 >> 2] >> 2] | 0; 22506 HEAP32[i20 + ((HEAP16[i10 + ((i22 & 255) + -3 + (HEAP32[i2 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i21 >> 2]; 22507 HEAP32[i20 + ((HEAP16[i10 + ((HEAPU8[i18] | 0) + -2 + (HEAP32[i2 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i21 >> 2]; 22508 HEAP32[i20 + ((HEAP16[i10 + ((HEAPU8[i18] | 0) + -1 + (HEAP32[i2 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i21 >> 2]; 22509 i2 = i1 + 16 | 0; 22510 if ((HEAP32[i2 >> 2] | 0) != 259) { 22511 _error_expected(i1, 259); 22512 } 22513 _luaX_next(i1); 22514 i10 = (i9 | 0) != 0; 22515 if (i10) { 22516 i9 = _luaK_codeABx(i7, 33, i5, 131070) | 0; 22517 } else { 22518 i9 = _luaK_jump(i7) | 0; 22519 } 22520 HEAP8[i19 + 10 | 0] = 0; 22521 HEAP8[i19 + 8 | 0] = HEAP8[i18] | 0; 22522 i17 = HEAP32[(HEAP32[i17 >> 2] | 0) + 64 >> 2] | 0; 22523 HEAP16[i19 + 4 >> 1] = HEAP32[i17 + 28 >> 2]; 22524 HEAP16[i19 + 6 >> 1] = HEAP32[i17 + 16 >> 2]; 22525 HEAP8[i19 + 9 | 0] = 0; 22526 i17 = i7 + 16 | 0; 22527 HEAP32[i19 >> 2] = HEAP32[i17 >> 2]; 22528 HEAP32[i17 >> 2] = i19; 22529 i19 = HEAP32[i11 >> 2] | 0; 22530 i17 = i19 + 46 | 0; 22531 i18 = (HEAPU8[i17] | 0) + i4 | 0; 22532 HEAP8[i17] = i18; 22533 if ((i4 | 0) != 0 ? (i13 = i19 + 20 | 0, i12 = i19 + 40 | 0, i14 = HEAP32[(HEAP32[i19 >> 2] | 0) + 24 >> 2] | 0, i15 = HEAP32[HEAP32[(HEAP32[i19 + 12 >> 2] | 0) + 64 >> 2] >> 2] | 0, HEAP32[i14 + ((HEAP16[i15 + ((i18 & 255) - i4 + (HEAP32[i12 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i13 >> 2], i16 = i4 + -1 | 0, (i16 | 0) != 0) : 0) { 22534 do { 22535 HEAP32[i14 + ((HEAP16[i15 + ((HEAPU8[i17] | 0) - i16 + (HEAP32[i12 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i13 >> 2]; 22536 i16 = i16 + -1 | 0; 22537 } while ((i16 | 0) != 0); 22538 } 22539 _luaK_reserveregs(i7, i4); 22540 i11 = HEAP32[i11 >> 2] | 0; 22541 HEAP8[i8 + 10 | 0] = 0; 22542 HEAP8[i8 + 8 | 0] = HEAP8[i11 + 46 | 0] | 0; 22543 i22 = HEAP32[(HEAP32[i11 + 12 >> 2] | 0) + 64 >> 2] | 0; 22544 HEAP16[i8 + 4 >> 1] = HEAP32[i22 + 28 >> 2]; 22545 HEAP16[i8 + 6 >> 1] = HEAP32[i22 + 16 >> 2]; 22546 HEAP8[i8 + 9 | 0] = 0; 22547 i22 = i11 + 16 | 0; 22548 HEAP32[i8 >> 2] = HEAP32[i22 >> 2]; 22549 HEAP32[i22 >> 2] = i8; 22550 L13 : do { 22551 i8 = HEAP32[i2 >> 2] | 0; 22552 switch (i8 | 0) { 22553 case 277: 22554 case 286: 22555 case 262: 22556 case 261: 22557 case 260: 22558 { 22559 break L13; 22560 } 22561 default: 22562 {} 22563 } 22564 _statement(i1); 22565 } while ((i8 | 0) != 274); 22566 _leaveblock(i11); 22567 _leaveblock(i7); 22568 _luaK_patchtohere(i7, i9); 22569 if (i10) { 22570 i21 = _luaK_codeABx(i7, 32, i5, 131070) | 0; 22571 i22 = i9 + 1 | 0; 22572 _luaK_patchlist(i7, i21, i22); 22573 _luaK_fixline(i7, i6); 22574 STACKTOP = i3; 22575 return; 22576 } else { 22577 _luaK_codeABC(i7, 34, i5, 0, i4) | 0; 22578 _luaK_fixline(i7, i6); 22579 i21 = _luaK_codeABx(i7, 35, i5 + 2 | 0, 131070) | 0; 22580 i22 = i9 + 1 | 0; 22581 _luaK_patchlist(i7, i21, i22); 22582 _luaK_fixline(i7, i6); 22583 STACKTOP = i3; 22584 return; 22585 } 22586 } 22587 function _dotty(i1) { 22588 i1 = i1 | 0; 22589 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0; 22590 i6 = STACKTOP; 22591 STACKTOP = STACKTOP + 16 | 0; 22592 i3 = i6; 22593 i4 = i6 + 4 | 0; 22594 i2 = HEAP32[20] | 0; 22595 HEAP32[20] = 0; 22596 _lua_settop(i1, 0); 22597 if ((_pushline(i1, 1) | 0) == 0) { 22598 _lua_settop(i1, 0); 22599 i10 = HEAP32[_stdout >> 2] | 0; 22600 _fputc(10, i10 | 0) | 0; 22601 _fflush(i10 | 0) | 0; 22602 HEAP32[20] = i2; 22603 STACKTOP = i6; 22604 return; 22605 } 22606 i5 = HEAP32[_stderr >> 2] | 0; 22607 L4 : while (1) { 22608 i8 = _lua_tolstring(i1, 1, i4) | 0; 22609 i8 = _luaL_loadbufferx(i1, i8, HEAP32[i4 >> 2] | 0, 256, 0) | 0; 22610 L6 : do { 22611 if ((i8 | 0) == 3) { 22612 while (1) { 22613 i8 = _lua_tolstring(i1, -1, i3) | 0; 22614 i7 = HEAP32[i3 >> 2] | 0; 22615 if (!(i7 >>> 0 > 4)) { 22616 break; 22617 } 22618 if ((_strcmp(i8 + (i7 + -5) | 0, 264) | 0) != 0) { 22619 break; 22620 } 22621 _lua_settop(i1, -2); 22622 if ((_pushline(i1, 0) | 0) == 0) { 22623 i7 = 23; 22624 break L4; 22625 } 22626 _lua_pushlstring(i1, 184, 1) | 0; 22627 _lua_insert(i1, -2); 22628 _lua_concat(i1, 3); 22629 i8 = _lua_tolstring(i1, 1, i4) | 0; 22630 i8 = _luaL_loadbufferx(i1, i8, HEAP32[i4 >> 2] | 0, 256, 0) | 0; 22631 if ((i8 | 0) != 3) { 22632 i7 = 9; 22633 break L6; 22634 } 22635 } 22636 _lua_remove(i1, 1); 22637 i8 = 3; 22638 i7 = 10; 22639 } else { 22640 i7 = 9; 22641 } 22642 } while (0); 22643 do { 22644 if ((i7 | 0) == 9) { 22645 _lua_remove(i1, 1); 22646 if ((i8 | 0) == -1) { 22647 i7 = 23; 22648 break L4; 22649 } else if ((i8 | 0) != 0) { 22650 i7 = 10; 22651 break; 22652 } 22653 i9 = _lua_gettop(i1) | 0; 22654 _lua_pushcclosure(i1, 142, 0); 22655 _lua_insert(i1, i9); 22656 HEAP32[48] = i1; 22657 _signal(2, 1) | 0; 22658 i10 = _lua_pcallk(i1, 0, -1, i9, 0, 0) | 0; 22659 _signal(2, 0) | 0; 22660 _lua_remove(i1, i9); 22661 if ((i10 | 0) == 0) { 22662 i7 = 17; 22663 } else { 22664 i9 = 0; 22665 i7 = 12; 22666 } 22667 } 22668 } while (0); 22669 if ((i7 | 0) == 10) { 22670 i9 = (i8 | 0) == 0; 22671 i7 = 12; 22672 } 22673 do { 22674 if ((i7 | 0) == 12) { 22675 i7 = 0; 22676 if ((_lua_type(i1, -1) | 0) == 0) { 22677 if (i9) { 22678 i7 = 17; 22679 break; 22680 } else { 22681 break; 22682 } 22683 } 22684 i10 = _lua_tolstring(i1, -1, 0) | 0; 22685 i8 = HEAP32[20] | 0; 22686 if ((i8 | 0) != 0) { 22687 HEAP32[i3 >> 2] = i8; 22688 _fprintf(i5 | 0, 496, i3 | 0) | 0; 22689 _fflush(i5 | 0) | 0; 22690 } 22691 HEAP32[i3 >> 2] = (i10 | 0) == 0 ? 48 : i10; 22692 _fprintf(i5 | 0, 912, i3 | 0) | 0; 22693 _fflush(i5 | 0) | 0; 22694 _lua_settop(i1, -2); 22695 _lua_gc(i1, 2, 0) | 0; 22696 if (i9) { 22697 i7 = 17; 22698 } 22699 } 22700 } while (0); 22701 if (((i7 | 0) == 17 ? (0, (_lua_gettop(i1) | 0) > 0) : 0) ? (_luaL_checkstack(i1, 20, 112), _lua_getglobal(i1, 144), _lua_insert(i1, 1), (_lua_pcallk(i1, (_lua_gettop(i1) | 0) + -1 | 0, 0, 0, 0, 0) | 0) != 0) : 0) { 22702 i7 = HEAP32[20] | 0; 22703 HEAP32[i3 >> 2] = _lua_tolstring(i1, -1, 0) | 0; 22704 i8 = _lua_pushfstring(i1, 152, i3) | 0; 22705 if ((i7 | 0) != 0) { 22706 HEAP32[i3 >> 2] = i7; 22707 _fprintf(i5 | 0, 496, i3 | 0) | 0; 22708 _fflush(i5 | 0) | 0; 22709 } 22710 HEAP32[i3 >> 2] = i8; 22711 _fprintf(i5 | 0, 912, i3 | 0) | 0; 22712 _fflush(i5 | 0) | 0; 22713 } 22714 _lua_settop(i1, 0); 22715 if ((_pushline(i1, 1) | 0) == 0) { 22716 i7 = 23; 22717 break; 22718 } 22719 } 22720 if ((i7 | 0) == 23) { 22721 _lua_settop(i1, 0); 22722 i10 = HEAP32[_stdout >> 2] | 0; 22723 _fputc(10, i10 | 0) | 0; 22724 _fflush(i10 | 0) | 0; 22725 HEAP32[20] = i2; 22726 STACKTOP = i6; 22727 return; 22728 } 22729 } 22730 function _test_then_block(i5, i1) { 22731 i5 = i5 | 0; 22732 i1 = i1 | 0; 22733 var i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0; 22734 i2 = STACKTOP; 22735 STACKTOP = STACKTOP + 48 | 0; 22736 i10 = i2 + 24 | 0; 22737 i9 = i2; 22738 i8 = i5 + 48 | 0; 22739 i4 = HEAP32[i8 >> 2] | 0; 22740 _luaX_next(i5); 22741 _subexpr(i5, i9, 0) | 0; 22742 i3 = i5 + 16 | 0; 22743 if ((HEAP32[i3 >> 2] | 0) != 275) { 22744 _error_expected(i5, 275); 22745 } 22746 _luaX_next(i5); 22747 i14 = HEAP32[i3 >> 2] | 0; 22748 do { 22749 if ((i14 | 0) == 258 | (i14 | 0) == 266) { 22750 _luaK_goiffalse(HEAP32[i8 >> 2] | 0, i9); 22751 HEAP8[i10 + 10 | 0] = 0; 22752 HEAP8[i10 + 8 | 0] = HEAP8[i4 + 46 | 0] | 0; 22753 i11 = HEAP32[(HEAP32[i4 + 12 >> 2] | 0) + 64 >> 2] | 0; 22754 HEAP16[i10 + 4 >> 1] = HEAP32[i11 + 28 >> 2]; 22755 HEAP16[i10 + 6 >> 1] = HEAP32[i11 + 16 >> 2]; 22756 HEAP8[i10 + 9 | 0] = 0; 22757 i11 = i4 + 16 | 0; 22758 HEAP32[i10 >> 2] = HEAP32[i11 >> 2]; 22759 HEAP32[i11 >> 2] = i10; 22760 i11 = HEAP32[i9 + 16 >> 2] | 0; 22761 i10 = HEAP32[i5 + 4 >> 2] | 0; 22762 i14 = (HEAP32[i3 >> 2] | 0) == 266; 22763 _luaX_next(i5); 22764 do { 22765 if (i14) { 22766 if ((HEAP32[i3 >> 2] | 0) == 288) { 22767 i7 = HEAP32[i5 + 24 >> 2] | 0; 22768 _luaX_next(i5); 22769 break; 22770 } else { 22771 _error_expected(i5, 288); 22772 } 22773 } else { 22774 i7 = _luaS_new(HEAP32[i5 + 52 >> 2] | 0, 6304) | 0; 22775 } 22776 } while (0); 22777 i14 = HEAP32[i5 + 64 >> 2] | 0; 22778 i12 = i14 + 12 | 0; 22779 i13 = i14 + 16 | 0; 22780 i9 = HEAP32[i13 >> 2] | 0; 22781 i14 = i14 + 20 | 0; 22782 if ((i9 | 0) < (HEAP32[i14 >> 2] | 0)) { 22783 i14 = HEAP32[i12 >> 2] | 0; 22784 } else { 22785 i14 = _luaM_growaux_(HEAP32[i5 + 52 >> 2] | 0, HEAP32[i12 >> 2] | 0, i14, 16, 32767, 6312) | 0; 22786 HEAP32[i12 >> 2] = i14; 22787 } 22788 HEAP32[i14 + (i9 << 4) >> 2] = i7; 22789 i14 = HEAP32[i12 >> 2] | 0; 22790 HEAP32[i14 + (i9 << 4) + 8 >> 2] = i10; 22791 HEAP8[i14 + (i9 << 4) + 12 | 0] = HEAP8[(HEAP32[i8 >> 2] | 0) + 46 | 0] | 0; 22792 HEAP32[(HEAP32[i12 >> 2] | 0) + (i9 << 4) + 4 >> 2] = i11; 22793 HEAP32[i13 >> 2] = (HEAP32[i13 >> 2] | 0) + 1; 22794 _findlabel(i5, i9) | 0; 22795 L18 : while (1) { 22796 switch (HEAP32[i3 >> 2] | 0) { 22797 case 286: 22798 case 262: 22799 case 261: 22800 case 260: 22801 { 22802 break L18; 22803 } 22804 case 285: 22805 case 59: 22806 { 22807 break; 22808 } 22809 default: 22810 { 22811 i6 = 16; 22812 break L18; 22813 } 22814 } 22815 _statement(i5); 22816 } 22817 if ((i6 | 0) == 16) { 22818 i6 = _luaK_jump(i4) | 0; 22819 break; 22820 } 22821 _leaveblock(i4); 22822 STACKTOP = i2; 22823 return; 22824 } else { 22825 _luaK_goiftrue(HEAP32[i8 >> 2] | 0, i9); 22826 HEAP8[i10 + 10 | 0] = 0; 22827 HEAP8[i10 + 8 | 0] = HEAP8[i4 + 46 | 0] | 0; 22828 i6 = HEAP32[(HEAP32[i4 + 12 >> 2] | 0) + 64 >> 2] | 0; 22829 HEAP16[i10 + 4 >> 1] = HEAP32[i6 + 28 >> 2]; 22830 HEAP16[i10 + 6 >> 1] = HEAP32[i6 + 16 >> 2]; 22831 HEAP8[i10 + 9 | 0] = 0; 22832 i6 = i4 + 16 | 0; 22833 HEAP32[i10 >> 2] = HEAP32[i6 >> 2]; 22834 HEAP32[i6 >> 2] = i10; 22835 i6 = HEAP32[i9 + 20 >> 2] | 0; 22836 } 22837 } while (0); 22838 L26 : do { 22839 i7 = HEAP32[i3 >> 2] | 0; 22840 switch (i7 | 0) { 22841 case 277: 22842 case 286: 22843 case 262: 22844 case 261: 22845 case 260: 22846 { 22847 break L26; 22848 } 22849 default: 22850 {} 22851 } 22852 _statement(i5); 22853 } while ((i7 | 0) != 274); 22854 _leaveblock(i4); 22855 if (((HEAP32[i3 >> 2] | 0) + -260 | 0) >>> 0 < 2) { 22856 _luaK_concat(i4, i1, _luaK_jump(i4) | 0); 22857 } 22858 _luaK_patchtohere(i4, i6); 22859 STACKTOP = i2; 22860 return; 22861 } 22862 function _luaL_gsub(i2, i13, i11, i10) { 22863 i2 = i2 | 0; 22864 i13 = i13 | 0; 22865 i11 = i11 | 0; 22866 i10 = i10 | 0; 22867 var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i12 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0; 22868 i1 = STACKTOP; 22869 STACKTOP = STACKTOP + 1056 | 0; 22870 i8 = i1; 22871 i4 = i1 + 8 | 0; 22872 i9 = _strlen(i11 | 0) | 0; 22873 i6 = i4 + 12 | 0; 22874 HEAP32[i6 >> 2] = i2; 22875 i3 = i4 + 16 | 0; 22876 HEAP32[i4 >> 2] = i3; 22877 i5 = i4 + 8 | 0; 22878 HEAP32[i5 >> 2] = 0; 22879 i7 = i4 + 4 | 0; 22880 HEAP32[i7 >> 2] = 1024; 22881 i12 = _strstr(i13, i11) | 0; 22882 if ((i12 | 0) == 0) { 22883 i14 = 0; 22884 i17 = 1024; 22885 i16 = i2; 22886 } else { 22887 i14 = 0; 22888 i17 = 1024; 22889 i16 = i2; 22890 do { 22891 i15 = i12 - i13 | 0; 22892 if ((i17 - i14 | 0) >>> 0 < i15 >>> 0) { 22893 i17 = i17 << 1; 22894 i17 = (i17 - i14 | 0) >>> 0 < i15 >>> 0 ? i14 + i15 | 0 : i17; 22895 if (i17 >>> 0 < i14 >>> 0 | (i17 - i14 | 0) >>> 0 < i15 >>> 0) { 22896 _luaL_error(i16, 1272, i8) | 0; 22897 } 22898 i14 = _lua_newuserdata(i16, i17) | 0; 22899 _memcpy(i14 | 0, HEAP32[i4 >> 2] | 0, HEAP32[i5 >> 2] | 0) | 0; 22900 if ((HEAP32[i4 >> 2] | 0) != (i3 | 0)) { 22901 _lua_remove(i16, -2); 22902 } 22903 HEAP32[i4 >> 2] = i14; 22904 HEAP32[i7 >> 2] = i17; 22905 i16 = i14; 22906 i14 = HEAP32[i5 >> 2] | 0; 22907 } else { 22908 i16 = HEAP32[i4 >> 2] | 0; 22909 } 22910 _memcpy(i16 + i14 | 0, i13 | 0, i15 | 0) | 0; 22911 i15 = (HEAP32[i5 >> 2] | 0) + i15 | 0; 22912 HEAP32[i5 >> 2] = i15; 22913 i13 = _strlen(i10 | 0) | 0; 22914 i14 = HEAP32[i6 >> 2] | 0; 22915 i16 = HEAP32[i7 >> 2] | 0; 22916 if ((i16 - i15 | 0) >>> 0 < i13 >>> 0) { 22917 i16 = i16 << 1; 22918 i16 = (i16 - i15 | 0) >>> 0 < i13 >>> 0 ? i15 + i13 | 0 : i16; 22919 if (i16 >>> 0 < i15 >>> 0 | (i16 - i15 | 0) >>> 0 < i13 >>> 0) { 22920 _luaL_error(i14, 1272, i8) | 0; 22921 } 22922 i15 = _lua_newuserdata(i14, i16) | 0; 22923 _memcpy(i15 | 0, HEAP32[i4 >> 2] | 0, HEAP32[i5 >> 2] | 0) | 0; 22924 if ((HEAP32[i4 >> 2] | 0) != (i3 | 0)) { 22925 _lua_remove(i14, -2); 22926 } 22927 HEAP32[i4 >> 2] = i15; 22928 HEAP32[i7 >> 2] = i16; 22929 i14 = i15; 22930 i15 = HEAP32[i5 >> 2] | 0; 22931 } else { 22932 i14 = HEAP32[i4 >> 2] | 0; 22933 } 22934 _memcpy(i14 + i15 | 0, i10 | 0, i13 | 0) | 0; 22935 i14 = (HEAP32[i5 >> 2] | 0) + i13 | 0; 22936 HEAP32[i5 >> 2] = i14; 22937 i13 = i12 + i9 | 0; 22938 i12 = _strstr(i13, i11) | 0; 22939 i16 = HEAP32[i6 >> 2] | 0; 22940 i17 = HEAP32[i7 >> 2] | 0; 22941 } while ((i12 | 0) != 0); 22942 } 22943 i9 = _strlen(i13 | 0) | 0; 22944 if ((i17 - i14 | 0) >>> 0 < i9 >>> 0) { 22945 i10 = i17 << 1; 22946 i10 = (i10 - i14 | 0) >>> 0 < i9 >>> 0 ? i14 + i9 | 0 : i10; 22947 if (i10 >>> 0 < i14 >>> 0 | (i10 - i14 | 0) >>> 0 < i9 >>> 0) { 22948 _luaL_error(i16, 1272, i8) | 0; 22949 } 22950 i8 = _lua_newuserdata(i16, i10) | 0; 22951 _memcpy(i8 | 0, HEAP32[i4 >> 2] | 0, HEAP32[i5 >> 2] | 0) | 0; 22952 if ((HEAP32[i4 >> 2] | 0) != (i3 | 0)) { 22953 _lua_remove(i16, -2); 22954 } 22955 HEAP32[i4 >> 2] = i8; 22956 HEAP32[i7 >> 2] = i10; 22957 i14 = HEAP32[i5 >> 2] | 0; 22958 } else { 22959 i8 = HEAP32[i4 >> 2] | 0; 22960 } 22961 _memcpy(i8 + i14 | 0, i13 | 0, i9 | 0) | 0; 22962 i17 = (HEAP32[i5 >> 2] | 0) + i9 | 0; 22963 HEAP32[i5 >> 2] = i17; 22964 i5 = HEAP32[i6 >> 2] | 0; 22965 _lua_pushlstring(i5, HEAP32[i4 >> 2] | 0, i17) | 0; 22966 if ((HEAP32[i4 >> 2] | 0) == (i3 | 0)) { 22967 i17 = _lua_tolstring(i2, -1, 0) | 0; 22968 STACKTOP = i1; 22969 return i17 | 0; 22970 } 22971 _lua_remove(i5, -2); 22972 i17 = _lua_tolstring(i2, -1, 0) | 0; 22973 STACKTOP = i1; 22974 return i17 | 0; 22975 } 22976 function _luaK_goiffalse(i1, i3) { 22977 i1 = i1 | 0; 22978 i3 = i3 | 0; 22979 var i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0; 22980 i2 = STACKTOP; 22981 _luaK_dischargevars(i1, i3); 22982 i9 = HEAP32[i3 >> 2] | 0; 22983 do { 22984 if ((i9 | 0) == 10) { 22985 i4 = HEAP32[i3 + 8 >> 2] | 0; 22986 i8 = 15; 22987 } else if (!((i9 | 0) == 3 | (i9 | 0) == 1)) { 22988 i4 = i3 + 8 | 0; 22989 if ((i9 | 0) == 6) { 22990 i8 = 11; 22991 } else if ((i9 | 0) == 11 ? (i10 = HEAP32[(HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i4 >> 2] << 2) >> 2] | 0, (i10 & 63 | 0) == 20) : 0) { 22992 i4 = i1 + 20 | 0; 22993 HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + -1; 22994 i4 = _condjump(i1, 27, i10 >>> 23, 0, 0) | 0; 22995 i8 = 15; 22996 break; 22997 } else { 22998 i8 = 6; 22999 } 23000 if ((i8 | 0) == 6) { 23001 i9 = i1 + 48 | 0; 23002 i11 = HEAP8[i9] | 0; 23003 i10 = (i11 & 255) + 1 | 0; 23004 i12 = (HEAP32[i1 >> 2] | 0) + 78 | 0; 23005 do { 23006 if (i10 >>> 0 > (HEAPU8[i12] | 0) >>> 0) { 23007 if (i10 >>> 0 > 249) { 23008 _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10536); 23009 } else { 23010 HEAP8[i12] = i10; 23011 i7 = HEAP8[i9] | 0; 23012 break; 23013 } 23014 } else { 23015 i7 = i11; 23016 } 23017 } while (0); 23018 i12 = (i7 & 255) + 1 | 0; 23019 HEAP8[i9] = i12; 23020 _discharge2reg(i1, i3, (i12 & 255) + -1 | 0); 23021 if ((HEAP32[i3 >> 2] | 0) == 6) { 23022 i8 = 11; 23023 } 23024 } 23025 if (((i8 | 0) == 11 ? (i6 = HEAP32[i4 >> 2] | 0, (i6 & 256 | 0) == 0) : 0) ? (HEAPU8[i1 + 46 | 0] | 0 | 0) <= (i6 | 0) : 0) { 23026 i12 = i1 + 48 | 0; 23027 HEAP8[i12] = (HEAP8[i12] | 0) + -1 << 24 >> 24; 23028 } 23029 i4 = _condjump(i1, 28, 255, HEAP32[i4 >> 2] | 0, 1) | 0; 23030 i8 = 15; 23031 } 23032 } while (0); 23033 do { 23034 if ((i8 | 0) == 15 ? (i5 = i3 + 16 | 0, !((i4 | 0) == -1)) : 0) { 23035 i8 = HEAP32[i5 >> 2] | 0; 23036 if ((i8 | 0) == -1) { 23037 HEAP32[i5 >> 2] = i4; 23038 break; 23039 } 23040 i5 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0; 23041 while (1) { 23042 i7 = i5 + (i8 << 2) | 0; 23043 i6 = HEAP32[i7 >> 2] | 0; 23044 i9 = (i6 >>> 14) + -131071 | 0; 23045 if ((i9 | 0) == -1) { 23046 break; 23047 } 23048 i9 = i8 + 1 + i9 | 0; 23049 if ((i9 | 0) == -1) { 23050 break; 23051 } else { 23052 i8 = i9; 23053 } 23054 } 23055 i4 = i4 + ~i8 | 0; 23056 if ((((i4 | 0) > -1 ? i4 : 0 - i4 | 0) | 0) > 131071) { 23057 _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10624); 23058 } else { 23059 HEAP32[i7 >> 2] = (i4 << 14) + 2147467264 | i6 & 16383; 23060 break; 23061 } 23062 } 23063 } while (0); 23064 i3 = i3 + 20 | 0; 23065 i4 = HEAP32[i3 >> 2] | 0; 23066 HEAP32[i1 + 24 >> 2] = HEAP32[i1 + 20 >> 2]; 23067 i5 = i1 + 28 | 0; 23068 if ((i4 | 0) == -1) { 23069 HEAP32[i3 >> 2] = -1; 23070 STACKTOP = i2; 23071 return; 23072 } 23073 i8 = HEAP32[i5 >> 2] | 0; 23074 if ((i8 | 0) == -1) { 23075 HEAP32[i5 >> 2] = i4; 23076 HEAP32[i3 >> 2] = -1; 23077 STACKTOP = i2; 23078 return; 23079 } 23080 i7 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0; 23081 while (1) { 23082 i5 = i7 + (i8 << 2) | 0; 23083 i6 = HEAP32[i5 >> 2] | 0; 23084 i9 = (i6 >>> 14) + -131071 | 0; 23085 if ((i9 | 0) == -1) { 23086 break; 23087 } 23088 i9 = i8 + 1 + i9 | 0; 23089 if ((i9 | 0) == -1) { 23090 break; 23091 } else { 23092 i8 = i9; 23093 } 23094 } 23095 i4 = i4 + ~i8 | 0; 23096 if ((((i4 | 0) > -1 ? i4 : 0 - i4 | 0) | 0) > 131071) { 23097 _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10624); 23098 } 23099 HEAP32[i5 >> 2] = (i4 << 14) + 2147467264 | i6 & 16383; 23100 HEAP32[i3 >> 2] = -1; 23101 STACKTOP = i2; 23102 return; 23103 } 23104 function _luaV_settable(i2, i11, i7, i9) { 23105 i2 = i2 | 0; 23106 i11 = i11 | 0; 23107 i7 = i7 | 0; 23108 i9 = i9 | 0; 23109 var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0, i10 = 0, i12 = 0, i13 = 0, i14 = 0; 23110 i6 = STACKTOP; 23111 STACKTOP = STACKTOP + 16 | 0; 23112 i5 = i6; 23113 i4 = i2 + 12 | 0; 23114 i3 = i11; 23115 i13 = HEAP32[i11 + 8 >> 2] | 0; 23116 i12 = 0; 23117 while (1) { 23118 i11 = i3 + 8 | 0; 23119 if ((i13 | 0) != 69) { 23120 i14 = _luaT_gettmbyobj(i2, i3, 1) | 0; 23121 i13 = HEAP32[i14 + 8 >> 2] | 0; 23122 if ((i13 | 0) == 0) { 23123 i1 = 16; 23124 break; 23125 } 23126 } else { 23127 i8 = HEAP32[i3 >> 2] | 0; 23128 i13 = _luaH_get(i8, i7) | 0; 23129 if ((HEAP32[i13 + 8 >> 2] | 0) != 0) { 23130 i10 = i13; 23131 break; 23132 } 23133 i14 = HEAP32[i8 + 8 >> 2] | 0; 23134 if ((i14 | 0) == 0) { 23135 i1 = 9; 23136 break; 23137 } 23138 if (!((HEAP8[i14 + 6 | 0] & 2) == 0)) { 23139 i1 = 9; 23140 break; 23141 } 23142 i14 = _luaT_gettm(i14, 1, HEAP32[(HEAP32[i4 >> 2] | 0) + 188 >> 2] | 0) | 0; 23143 if ((i14 | 0) == 0) { 23144 i1 = 9; 23145 break; 23146 } 23147 i13 = HEAP32[i14 + 8 >> 2] | 0; 23148 } 23149 i12 = i12 + 1 | 0; 23150 if ((i13 & 15 | 0) == 6) { 23151 i1 = 18; 23152 break; 23153 } 23154 if ((i12 | 0) < 100) { 23155 i3 = i14; 23156 } else { 23157 i1 = 19; 23158 break; 23159 } 23160 } 23161 if ((i1 | 0) == 9) { 23162 if ((i13 | 0) == 5192) { 23163 i10 = _luaH_newkey(i2, i8, i7) | 0; 23164 } else { 23165 i10 = i13; 23166 } 23167 } else if ((i1 | 0) == 16) { 23168 _luaG_typeerror(i2, i3, 8944); 23169 } else if ((i1 | 0) == 18) { 23170 i13 = i2 + 8 | 0; 23171 i8 = HEAP32[i13 >> 2] | 0; 23172 HEAP32[i13 >> 2] = i8 + 16; 23173 i5 = i14; 23174 i12 = HEAP32[i5 + 4 >> 2] | 0; 23175 i10 = i8; 23176 HEAP32[i10 >> 2] = HEAP32[i5 >> 2]; 23177 HEAP32[i10 + 4 >> 2] = i12; 23178 HEAP32[i8 + 8 >> 2] = HEAP32[i14 + 8 >> 2]; 23179 i14 = HEAP32[i13 >> 2] | 0; 23180 HEAP32[i13 >> 2] = i14 + 16; 23181 i8 = i3; 23182 i10 = HEAP32[i8 + 4 >> 2] | 0; 23183 i12 = i14; 23184 HEAP32[i12 >> 2] = HEAP32[i8 >> 2]; 23185 HEAP32[i12 + 4 >> 2] = i10; 23186 HEAP32[i14 + 8 >> 2] = HEAP32[i11 >> 2]; 23187 i14 = HEAP32[i13 >> 2] | 0; 23188 HEAP32[i13 >> 2] = i14 + 16; 23189 i12 = i7; 23190 i11 = HEAP32[i12 + 4 >> 2] | 0; 23191 i10 = i14; 23192 HEAP32[i10 >> 2] = HEAP32[i12 >> 2]; 23193 HEAP32[i10 + 4 >> 2] = i11; 23194 HEAP32[i14 + 8 >> 2] = HEAP32[i7 + 8 >> 2]; 23195 i14 = HEAP32[i13 >> 2] | 0; 23196 HEAP32[i13 >> 2] = i14 + 16; 23197 i10 = i9; 23198 i11 = HEAP32[i10 + 4 >> 2] | 0; 23199 i12 = i14; 23200 HEAP32[i12 >> 2] = HEAP32[i10 >> 2]; 23201 HEAP32[i12 + 4 >> 2] = i11; 23202 HEAP32[i14 + 8 >> 2] = HEAP32[i9 + 8 >> 2]; 23203 _luaD_call(i2, (HEAP32[i13 >> 2] | 0) + -64 | 0, 0, HEAP8[(HEAP32[i2 + 16 >> 2] | 0) + 18 | 0] & 1); 23204 STACKTOP = i6; 23205 return; 23206 } else if ((i1 | 0) == 19) { 23207 _luaG_runerror(i2, 8976, i5); 23208 } 23209 i12 = i9; 23210 i13 = HEAP32[i12 + 4 >> 2] | 0; 23211 i14 = i10; 23212 HEAP32[i14 >> 2] = HEAP32[i12 >> 2]; 23213 HEAP32[i14 + 4 >> 2] = i13; 23214 i14 = i9 + 8 | 0; 23215 HEAP32[i10 + 8 >> 2] = HEAP32[i14 >> 2]; 23216 HEAP8[i8 + 6 | 0] = 0; 23217 if ((HEAP32[i14 >> 2] & 64 | 0) == 0) { 23218 STACKTOP = i6; 23219 return; 23220 } 23221 if ((HEAP8[(HEAP32[i9 >> 2] | 0) + 5 | 0] & 3) == 0) { 23222 STACKTOP = i6; 23223 return; 23224 } 23225 if ((HEAP8[i8 + 5 | 0] & 4) == 0) { 23226 STACKTOP = i6; 23227 return; 23228 } 23229 _luaC_barrierback_(i2, i8); 23230 STACKTOP = i6; 23231 return; 23232 } 23233 function _luaK_code(i4, i5) { 23234 i4 = i4 | 0; 23235 i5 = i5 | 0; 23236 var i1 = 0, i2 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0; 23237 i2 = STACKTOP; 23238 i1 = HEAP32[i4 >> 2] | 0; 23239 i7 = i4 + 28 | 0; 23240 i15 = HEAP32[i7 >> 2] | 0; 23241 i3 = i4 + 20 | 0; 23242 i8 = HEAP32[i3 >> 2] | 0; 23243 do { 23244 if (!((i15 | 0) == -1)) { 23245 i11 = HEAP32[i1 + 12 >> 2] | 0; 23246 while (1) { 23247 i12 = i11 + (i15 << 2) | 0; 23248 i14 = HEAP32[i12 >> 2] | 0; 23249 i13 = (i14 >>> 14) + -131071 | 0; 23250 if ((i13 | 0) == -1) { 23251 i13 = -1; 23252 } else { 23253 i13 = i15 + 1 + i13 | 0; 23254 } 23255 if ((i15 | 0) > 0 ? (i9 = i11 + (i15 + -1 << 2) | 0, i10 = HEAP32[i9 >> 2] | 0, (HEAP8[5584 + (i10 & 63) | 0] | 0) < 0) : 0) { 23256 i17 = i9; 23257 i16 = i10; 23258 } else { 23259 i17 = i12; 23260 i16 = i14; 23261 } 23262 if ((i16 & 63 | 0) == 28) { 23263 HEAP32[i17 >> 2] = i16 & 8372224 | i16 >>> 23 << 6 | 27; 23264 i14 = i8 + ~i15 | 0; 23265 if ((((i14 | 0) > -1 ? i14 : 0 - i14 | 0) | 0) > 131071) { 23266 i8 = 10; 23267 break; 23268 } 23269 i14 = HEAP32[i12 >> 2] & 16383 | (i14 << 14) + 2147467264; 23270 } else { 23271 i15 = i8 + ~i15 | 0; 23272 if ((((i15 | 0) > -1 ? i15 : 0 - i15 | 0) | 0) > 131071) { 23273 i8 = 13; 23274 break; 23275 } 23276 i14 = (i15 << 14) + 2147467264 | i14 & 16383; 23277 } 23278 HEAP32[i12 >> 2] = i14; 23279 if ((i13 | 0) == -1) { 23280 i8 = 16; 23281 break; 23282 } else { 23283 i15 = i13; 23284 } 23285 } 23286 if ((i8 | 0) == 10) { 23287 _luaX_syntaxerror(HEAP32[i4 + 12 >> 2] | 0, 10624); 23288 } else if ((i8 | 0) == 13) { 23289 _luaX_syntaxerror(HEAP32[i4 + 12 >> 2] | 0, 10624); 23290 } else if ((i8 | 0) == 16) { 23291 i6 = HEAP32[i3 >> 2] | 0; 23292 break; 23293 } 23294 } else { 23295 i6 = i8; 23296 } 23297 } while (0); 23298 HEAP32[i7 >> 2] = -1; 23299 i7 = i1 + 48 | 0; 23300 if ((i6 | 0) < (HEAP32[i7 >> 2] | 0)) { 23301 i7 = i1 + 12 | 0; 23302 } else { 23303 i6 = i1 + 12 | 0; 23304 HEAP32[i6 >> 2] = _luaM_growaux_(HEAP32[(HEAP32[i4 + 12 >> 2] | 0) + 52 >> 2] | 0, HEAP32[i6 >> 2] | 0, i7, 4, 2147483645, 10616) | 0; 23305 i7 = i6; 23306 i6 = HEAP32[i3 >> 2] | 0; 23307 } 23308 HEAP32[(HEAP32[i7 >> 2] | 0) + (i6 << 2) >> 2] = i5; 23309 i5 = HEAP32[i3 >> 2] | 0; 23310 i6 = i1 + 52 | 0; 23311 i4 = i4 + 12 | 0; 23312 if ((i5 | 0) < (HEAP32[i6 >> 2] | 0)) { 23313 i15 = i1 + 20 | 0; 23314 i17 = i5; 23315 i16 = HEAP32[i4 >> 2] | 0; 23316 i16 = i16 + 8 | 0; 23317 i16 = HEAP32[i16 >> 2] | 0; 23318 i15 = HEAP32[i15 >> 2] | 0; 23319 i17 = i15 + (i17 << 2) | 0; 23320 HEAP32[i17 >> 2] = i16; 23321 i17 = HEAP32[i3 >> 2] | 0; 23322 i16 = i17 + 1 | 0; 23323 HEAP32[i3 >> 2] = i16; 23324 STACKTOP = i2; 23325 return i17 | 0; 23326 } else { 23327 i15 = i1 + 20 | 0; 23328 HEAP32[i15 >> 2] = _luaM_growaux_(HEAP32[(HEAP32[i4 >> 2] | 0) + 52 >> 2] | 0, HEAP32[i15 >> 2] | 0, i6, 4, 2147483645, 10616) | 0; 23329 i17 = HEAP32[i3 >> 2] | 0; 23330 i16 = HEAP32[i4 >> 2] | 0; 23331 i16 = i16 + 8 | 0; 23332 i16 = HEAP32[i16 >> 2] | 0; 23333 i15 = HEAP32[i15 >> 2] | 0; 23334 i17 = i15 + (i17 << 2) | 0; 23335 HEAP32[i17 >> 2] = i16; 23336 i17 = HEAP32[i3 >> 2] | 0; 23337 i16 = i17 + 1 | 0; 23338 HEAP32[i3 >> 2] = i16; 23339 STACKTOP = i2; 23340 return i17 | 0; 23341 } 23342 return 0; 23343 } 23344 function _luaH_next(i9, i5, i2) { 23345 i9 = i9 | 0; 23346 i5 = i5 | 0; 23347 i2 = i2 | 0; 23348 var i1 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, d14 = 0.0; 23349 i1 = STACKTOP; 23350 STACKTOP = STACKTOP + 16 | 0; 23351 i8 = i1 + 8 | 0; 23352 i11 = i1; 23353 i3 = i2 + 8 | 0; 23354 i10 = HEAP32[i3 >> 2] | 0; 23355 do { 23356 if ((i10 | 0) != 0) { 23357 if ((((i10 | 0) == 3 ? (d14 = +HEAPF64[i2 >> 3], HEAPF64[i11 >> 3] = d14 + 6755399441055744.0, i12 = HEAP32[i11 >> 2] | 0, +(i12 | 0) == d14) : 0) ? (i12 | 0) > 0 : 0) ? (i13 = HEAP32[i5 + 28 >> 2] | 0, (i12 | 0) <= (i13 | 0)) : 0) { 23358 i6 = i13; 23359 i7 = i12 + -1 | 0; 23360 break; 23361 } 23362 i10 = _mainposition(i5, i2) | 0; 23363 while (1) { 23364 i4 = i10 + 16 | 0; 23365 i11 = i10 + 24 | 0; 23366 i12 = HEAP32[i11 >> 2] | 0; 23367 if ((i12 | 0) == (HEAP32[i3 >> 2] | 0)) { 23368 if ((_luaV_equalobj_(0, i4, i2) | 0) != 0) { 23369 i4 = 15; 23370 break; 23371 } 23372 i12 = HEAP32[i11 >> 2] | 0; 23373 } 23374 if (((i12 | 0) == 11 ? (HEAP32[i3 >> 2] & 64 | 0) != 0 : 0) ? (HEAP32[i4 >> 2] | 0) == (HEAP32[i2 >> 2] | 0) : 0) { 23375 i4 = 15; 23376 break; 23377 } 23378 i10 = HEAP32[i10 + 28 >> 2] | 0; 23379 if ((i10 | 0) == 0) { 23380 i4 = 18; 23381 break; 23382 } 23383 } 23384 if ((i4 | 0) == 15) { 23385 i7 = HEAP32[i5 + 28 >> 2] | 0; 23386 i6 = i7; 23387 i7 = (i10 - (HEAP32[i5 + 16 >> 2] | 0) >> 5) + i7 | 0; 23388 break; 23389 } else if ((i4 | 0) == 18) { 23390 _luaG_runerror(i9, 8064, i8); 23391 } 23392 } else { 23393 i6 = HEAP32[i5 + 28 >> 2] | 0; 23394 i7 = -1; 23395 } 23396 } while (0); 23397 i8 = i5 + 12 | 0; 23398 while (1) { 23399 i9 = i7 + 1 | 0; 23400 if ((i9 | 0) >= (i6 | 0)) { 23401 break; 23402 } 23403 i11 = HEAP32[i8 >> 2] | 0; 23404 i10 = i11 + (i9 << 4) + 8 | 0; 23405 if ((HEAP32[i10 >> 2] | 0) == 0) { 23406 i7 = i9; 23407 } else { 23408 i4 = 21; 23409 break; 23410 } 23411 } 23412 if ((i4 | 0) == 21) { 23413 HEAPF64[i2 >> 3] = +(i7 + 2 | 0); 23414 HEAP32[i3 >> 2] = 3; 23415 i11 = i11 + (i9 << 4) | 0; 23416 i12 = HEAP32[i11 + 4 >> 2] | 0; 23417 i13 = i2 + 16 | 0; 23418 HEAP32[i13 >> 2] = HEAP32[i11 >> 2]; 23419 HEAP32[i13 + 4 >> 2] = i12; 23420 HEAP32[i2 + 24 >> 2] = HEAP32[i10 >> 2]; 23421 i13 = 1; 23422 STACKTOP = i1; 23423 return i13 | 0; 23424 } 23425 i8 = i9 - i6 | 0; 23426 i6 = 1 << (HEAPU8[i5 + 7 | 0] | 0); 23427 if ((i8 | 0) >= (i6 | 0)) { 23428 i13 = 0; 23429 STACKTOP = i1; 23430 return i13 | 0; 23431 } 23432 i7 = i5 + 16 | 0; 23433 i5 = HEAP32[i7 >> 2] | 0; 23434 while (1) { 23435 i9 = i8 + 1 | 0; 23436 if ((HEAP32[i5 + (i8 << 5) + 8 >> 2] | 0) != 0) { 23437 break; 23438 } 23439 if ((i9 | 0) < (i6 | 0)) { 23440 i8 = i9; 23441 } else { 23442 i2 = 0; 23443 i4 = 27; 23444 break; 23445 } 23446 } 23447 if ((i4 | 0) == 27) { 23448 STACKTOP = i1; 23449 return i2 | 0; 23450 } 23451 i11 = i5 + (i8 << 5) + 16 | 0; 23452 i10 = HEAP32[i11 + 4 >> 2] | 0; 23453 i13 = i2; 23454 HEAP32[i13 >> 2] = HEAP32[i11 >> 2]; 23455 HEAP32[i13 + 4 >> 2] = i10; 23456 HEAP32[i3 >> 2] = HEAP32[i5 + (i8 << 5) + 24 >> 2]; 23457 i13 = HEAP32[i7 >> 2] | 0; 23458 i10 = i13 + (i8 << 5) | 0; 23459 i11 = HEAP32[i10 + 4 >> 2] | 0; 23460 i12 = i2 + 16 | 0; 23461 HEAP32[i12 >> 2] = HEAP32[i10 >> 2]; 23462 HEAP32[i12 + 4 >> 2] = i11; 23463 HEAP32[i2 + 24 >> 2] = HEAP32[i13 + (i8 << 5) + 8 >> 2]; 23464 i13 = 1; 23465 STACKTOP = i1; 23466 return i13 | 0; 23467 } 23468 function _g_read(i1, i3, i2) { 23469 i1 = i1 | 0; 23470 i3 = i3 | 0; 23471 i2 = i2 | 0; 23472 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0; 23473 i4 = STACKTOP; 23474 STACKTOP = STACKTOP + 1056 | 0; 23475 i7 = i4 + 8 | 0; 23476 i9 = i4; 23477 i10 = _lua_gettop(i1) | 0; 23478 _clearerr(i3 | 0); 23479 L1 : do { 23480 if ((i10 | 0) == 1) { 23481 i11 = i2 + 1 | 0; 23482 i12 = _read_line(i1, i3, 1) | 0; 23483 } else { 23484 _luaL_checkstack(i1, i10 + 19 | 0, 3256); 23485 i6 = i7 + 8 | 0; 23486 i5 = i7 + 8 | 0; 23487 i10 = i10 + -2 | 0; 23488 i11 = i2; 23489 L4 : while (1) { 23490 do { 23491 if ((_lua_type(i1, i11) | 0) == 3) { 23492 i12 = _lua_tointegerx(i1, i11, 0) | 0; 23493 if ((i12 | 0) == 0) { 23494 i12 = _fgetc(i3 | 0) | 0; 23495 _ungetc(i12 | 0, i3 | 0) | 0; 23496 _lua_pushlstring(i1, 0, 0) | 0; 23497 i12 = (i12 | 0) != -1 | 0; 23498 break; 23499 } else { 23500 _luaL_buffinit(i1, i7); 23501 i12 = _fread(_luaL_prepbuffsize(i7, i12) | 0, 1, i12 | 0, i3 | 0) | 0; 23502 HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + i12; 23503 _luaL_pushresult(i7); 23504 i12 = (i12 | 0) != 0 | 0; 23505 break; 23506 } 23507 } else { 23508 i12 = _lua_tolstring(i1, i11, 0) | 0; 23509 if (!((i12 | 0) != 0 ? (HEAP8[i12] | 0) == 42 : 0)) { 23510 _luaL_argerror(i1, i11, 3280) | 0; 23511 } 23512 i12 = HEAP8[i12 + 1 | 0] | 0; 23513 if ((i12 | 0) == 110) { 23514 HEAP32[i7 >> 2] = i9; 23515 if ((_fscanf(i3 | 0, 3312, i7 | 0) | 0) != 1) { 23516 i8 = 14; 23517 break L4; 23518 } 23519 _lua_pushnumber(i1, +HEAPF64[i9 >> 3]); 23520 i12 = 1; 23521 break; 23522 } else if ((i12 | 0) == 108) { 23523 i12 = _read_line(i1, i3, 1) | 0; 23524 break; 23525 } else if ((i12 | 0) == 76) { 23526 i12 = _read_line(i1, i3, 0) | 0; 23527 break; 23528 } else if ((i12 | 0) == 97) { 23529 _luaL_buffinit(i1, i7); 23530 i12 = _fread(_luaL_prepbuffsize(i7, 1024) | 0, 1, 1024, i3 | 0) | 0; 23531 HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + i12; 23532 if (!(i12 >>> 0 < 1024)) { 23533 i12 = 1024; 23534 do { 23535 i12 = i12 << (i12 >>> 0 < 1073741824); 23536 i13 = _fread(_luaL_prepbuffsize(i7, i12) | 0, 1, i12 | 0, i3 | 0) | 0; 23537 HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + i13; 23538 } while (!(i13 >>> 0 < i12 >>> 0)); 23539 } 23540 _luaL_pushresult(i7); 23541 i12 = 1; 23542 break; 23543 } else { 23544 break L4; 23545 } 23546 } 23547 } while (0); 23548 i11 = i11 + 1 | 0; 23549 if ((i10 | 0) == 0 | (i12 | 0) == 0) { 23550 break L1; 23551 } else { 23552 i10 = i10 + -1 | 0; 23553 } 23554 } 23555 if ((i8 | 0) == 14) { 23556 _lua_pushnil(i1); 23557 i11 = i11 + 1 | 0; 23558 i12 = 0; 23559 break; 23560 } 23561 i13 = _luaL_argerror(i1, i11, 3296) | 0; 23562 STACKTOP = i4; 23563 return i13 | 0; 23564 } 23565 } while (0); 23566 if ((_ferror(i3 | 0) | 0) != 0) { 23567 i13 = _luaL_fileresult(i1, 0, 0) | 0; 23568 STACKTOP = i4; 23569 return i13 | 0; 23570 } 23571 if ((i12 | 0) == 0) { 23572 _lua_settop(i1, -2); 23573 _lua_pushnil(i1); 23574 } 23575 i13 = i11 - i2 | 0; 23576 STACKTOP = i4; 23577 return i13 | 0; 23578 } 23579 function _luaY_parser(i8, i12, i10, i11, i9, i13) { 23580 i8 = i8 | 0; 23581 i12 = i12 | 0; 23582 i10 = i10 | 0; 23583 i11 = i11 | 0; 23584 i9 = i9 | 0; 23585 i13 = i13 | 0; 23586 var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i14 = 0, i15 = 0; 23587 i2 = STACKTOP; 23588 STACKTOP = STACKTOP + 176 | 0; 23589 i5 = i2 + 156 | 0; 23590 i7 = i2 + 80 | 0; 23591 i4 = i2; 23592 i6 = i2 + 104 | 0; 23593 i3 = _luaF_newLclosure(i8, 1) | 0; 23594 i15 = i8 + 8 | 0; 23595 i14 = HEAP32[i15 >> 2] | 0; 23596 HEAP32[i14 >> 2] = i3; 23597 HEAP32[i14 + 8 >> 2] = 70; 23598 i14 = (HEAP32[i15 >> 2] | 0) + 16 | 0; 23599 HEAP32[i15 >> 2] = i14; 23600 if (((HEAP32[i8 + 24 >> 2] | 0) - i14 | 0) < 16) { 23601 _luaD_growstack(i8, 0); 23602 } 23603 i14 = _luaF_newproto(i8) | 0; 23604 HEAP32[i3 + 12 >> 2] = i14; 23605 HEAP32[i6 >> 2] = i14; 23606 i9 = _luaS_new(i8, i9) | 0; 23607 HEAP32[(HEAP32[i6 >> 2] | 0) + 36 >> 2] = i9; 23608 HEAP32[i4 + 60 >> 2] = i10; 23609 i9 = i4 + 64 | 0; 23610 HEAP32[i9 >> 2] = i11; 23611 HEAP32[i11 + 28 >> 2] = 0; 23612 HEAP32[i11 + 16 >> 2] = 0; 23613 HEAP32[i11 + 4 >> 2] = 0; 23614 _luaX_setinput(i8, i4, i12, HEAP32[(HEAP32[i6 >> 2] | 0) + 36 >> 2] | 0, i13); 23615 i10 = HEAP32[i4 + 52 >> 2] | 0; 23616 i13 = i4 + 48 | 0; 23617 HEAP32[i6 + 8 >> 2] = HEAP32[i13 >> 2]; 23618 i8 = i6 + 12 | 0; 23619 HEAP32[i8 >> 2] = i4; 23620 HEAP32[i13 >> 2] = i6; 23621 HEAP32[i6 + 20 >> 2] = 0; 23622 HEAP32[i6 + 24 >> 2] = 0; 23623 HEAP32[i6 + 28 >> 2] = -1; 23624 HEAP32[i6 + 32 >> 2] = 0; 23625 HEAP32[i6 + 36 >> 2] = 0; 23626 i13 = i6 + 44 | 0; 23627 HEAP32[i13 + 0 >> 2] = 0; 23628 HEAP8[i13 + 4 | 0] = 0; 23629 HEAP32[i6 + 40 >> 2] = HEAP32[(HEAP32[i9 >> 2] | 0) + 4 >> 2]; 23630 i9 = i6 + 16 | 0; 23631 HEAP32[i9 >> 2] = 0; 23632 i13 = HEAP32[i6 >> 2] | 0; 23633 HEAP32[i13 + 36 >> 2] = HEAP32[i4 + 68 >> 2]; 23634 HEAP8[i13 + 78 | 0] = 2; 23635 i13 = _luaH_new(i10) | 0; 23636 HEAP32[i6 + 4 >> 2] = i13; 23637 i14 = i10 + 8 | 0; 23638 i15 = HEAP32[i14 >> 2] | 0; 23639 HEAP32[i15 >> 2] = i13; 23640 HEAP32[i15 + 8 >> 2] = 69; 23641 i15 = (HEAP32[i14 >> 2] | 0) + 16 | 0; 23642 HEAP32[i14 >> 2] = i15; 23643 if (((HEAP32[i10 + 24 >> 2] | 0) - i15 | 0) < 16) { 23644 _luaD_growstack(i10, 0); 23645 } 23646 HEAP8[i5 + 10 | 0] = 0; 23647 HEAP8[i5 + 8 | 0] = HEAP8[i6 + 46 | 0] | 0; 23648 i15 = HEAP32[(HEAP32[i8 >> 2] | 0) + 64 >> 2] | 0; 23649 HEAP16[i5 + 4 >> 1] = HEAP32[i15 + 28 >> 2]; 23650 HEAP16[i5 + 6 >> 1] = HEAP32[i15 + 16 >> 2]; 23651 HEAP8[i5 + 9 | 0] = 0; 23652 HEAP32[i5 >> 2] = HEAP32[i9 >> 2]; 23653 HEAP32[i9 >> 2] = i5; 23654 HEAP8[(HEAP32[i6 >> 2] | 0) + 77 | 0] = 1; 23655 HEAP32[i7 + 16 >> 2] = -1; 23656 HEAP32[i7 + 20 >> 2] = -1; 23657 HEAP32[i7 >> 2] = 7; 23658 HEAP32[i7 + 8 >> 2] = 0; 23659 _newupvalue(i6, HEAP32[i4 + 72 >> 2] | 0, i7) | 0; 23660 _luaX_next(i4); 23661 i5 = i4 + 16 | 0; 23662 L7 : while (1) { 23663 i6 = HEAP32[i5 >> 2] | 0; 23664 switch (i6 | 0) { 23665 case 277: 23666 case 286: 23667 case 262: 23668 case 261: 23669 case 260: 23670 { 23671 break L7; 23672 } 23673 default: 23674 {} 23675 } 23676 _statement(i4); 23677 if ((i6 | 0) == 274) { 23678 i1 = 8; 23679 break; 23680 } 23681 } 23682 if ((i1 | 0) == 8) { 23683 i6 = HEAP32[i5 >> 2] | 0; 23684 } 23685 if ((i6 | 0) == 286) { 23686 _close_func(i4); 23687 STACKTOP = i2; 23688 return i3 | 0; 23689 } else { 23690 _error_expected(i4, 286); 23691 } 23692 return 0; 23693 } 23694 function _luaV_lessthan(i5, i4, i2) { 23695 i5 = i5 | 0; 23696 i4 = i4 | 0; 23697 i2 = i2 | 0; 23698 var i1 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0; 23699 i1 = STACKTOP; 23700 i6 = i4 + 8 | 0; 23701 i7 = HEAP32[i6 >> 2] | 0; 23702 if ((i7 | 0) == 3) { 23703 if ((HEAP32[i2 + 8 >> 2] | 0) == 3) { 23704 i9 = +HEAPF64[i4 >> 3] < +HEAPF64[i2 >> 3] | 0; 23705 STACKTOP = i1; 23706 return i9 | 0; 23707 } 23708 } else { 23709 if ((i7 & 15 | 0) == 4 ? (HEAP32[i2 + 8 >> 2] & 15 | 0) == 4 : 0) { 23710 i6 = HEAP32[i4 >> 2] | 0; 23711 i4 = HEAP32[i2 >> 2] | 0; 23712 i3 = i6 + 16 | 0; 23713 i5 = i4 + 16 | 0; 23714 i7 = _strcmp(i3, i5) | 0; 23715 L8 : do { 23716 if ((i7 | 0) == 0) { 23717 i2 = HEAP32[i6 + 12 >> 2] | 0; 23718 i4 = HEAP32[i4 + 12 >> 2] | 0; 23719 while (1) { 23720 i7 = _strlen(i3 | 0) | 0; 23721 i6 = (i7 | 0) == (i2 | 0); 23722 if ((i7 | 0) == (i4 | 0)) { 23723 break; 23724 } 23725 if (i6) { 23726 i7 = -1; 23727 break L8; 23728 } 23729 i6 = i7 + 1 | 0; 23730 i3 = i3 + i6 | 0; 23731 i5 = i5 + i6 | 0; 23732 i7 = _strcmp(i3, i5) | 0; 23733 if ((i7 | 0) == 0) { 23734 i2 = i2 - i6 | 0; 23735 i4 = i4 - i6 | 0; 23736 } else { 23737 break L8; 23738 } 23739 } 23740 i7 = i6 & 1 ^ 1; 23741 } 23742 } while (0); 23743 i9 = i7 >>> 31; 23744 STACKTOP = i1; 23745 return i9 | 0; 23746 } 23747 } 23748 i8 = i5 + 8 | 0; 23749 i7 = HEAP32[i8 >> 2] | 0; 23750 i9 = _luaT_gettmbyobj(i5, i4, 13) | 0; 23751 if ((HEAP32[i9 + 8 >> 2] | 0) == 0) { 23752 i9 = _luaT_gettmbyobj(i5, i2, 13) | 0; 23753 if ((HEAP32[i9 + 8 >> 2] | 0) == 0) { 23754 _luaG_ordererror(i5, i4, i2); 23755 } else { 23756 i3 = i9; 23757 } 23758 } else { 23759 i3 = i9; 23760 } 23761 i10 = i5 + 28 | 0; 23762 i9 = i7 - (HEAP32[i10 >> 2] | 0) | 0; 23763 i11 = HEAP32[i8 >> 2] | 0; 23764 HEAP32[i8 >> 2] = i11 + 16; 23765 i13 = i3; 23766 i12 = HEAP32[i13 + 4 >> 2] | 0; 23767 i7 = i11; 23768 HEAP32[i7 >> 2] = HEAP32[i13 >> 2]; 23769 HEAP32[i7 + 4 >> 2] = i12; 23770 HEAP32[i11 + 8 >> 2] = HEAP32[i3 + 8 >> 2]; 23771 i3 = HEAP32[i8 >> 2] | 0; 23772 HEAP32[i8 >> 2] = i3 + 16; 23773 i11 = i4; 23774 i7 = HEAP32[i11 + 4 >> 2] | 0; 23775 i4 = i3; 23776 HEAP32[i4 >> 2] = HEAP32[i11 >> 2]; 23777 HEAP32[i4 + 4 >> 2] = i7; 23778 HEAP32[i3 + 8 >> 2] = HEAP32[i6 >> 2]; 23779 i3 = HEAP32[i8 >> 2] | 0; 23780 HEAP32[i8 >> 2] = i3 + 16; 23781 i4 = i2; 23782 i7 = HEAP32[i4 + 4 >> 2] | 0; 23783 i6 = i3; 23784 HEAP32[i6 >> 2] = HEAP32[i4 >> 2]; 23785 HEAP32[i6 + 4 >> 2] = i7; 23786 HEAP32[i3 + 8 >> 2] = HEAP32[i2 + 8 >> 2]; 23787 _luaD_call(i5, (HEAP32[i8 >> 2] | 0) + -48 | 0, 1, HEAP8[(HEAP32[i5 + 16 >> 2] | 0) + 18 | 0] & 1); 23788 i2 = HEAP32[i10 >> 2] | 0; 23789 i3 = HEAP32[i8 >> 2] | 0; 23790 i5 = i3 + -16 | 0; 23791 HEAP32[i8 >> 2] = i5; 23792 i6 = HEAP32[i5 + 4 >> 2] | 0; 23793 i7 = i2 + i9 | 0; 23794 HEAP32[i7 >> 2] = HEAP32[i5 >> 2]; 23795 HEAP32[i7 + 4 >> 2] = i6; 23796 HEAP32[i2 + (i9 + 8) >> 2] = HEAP32[i3 + -8 >> 2]; 23797 i2 = HEAP32[i8 >> 2] | 0; 23798 i3 = HEAP32[i2 + 8 >> 2] | 0; 23799 if ((i3 | 0) != 0) { 23800 if ((i3 | 0) == 1) { 23801 i2 = (HEAP32[i2 >> 2] | 0) != 0; 23802 } else { 23803 i2 = 1; 23804 } 23805 } else { 23806 i2 = 0; 23807 } 23808 i13 = i2 & 1; 23809 STACKTOP = i1; 23810 return i13 | 0; 23811 } 23812 function _discharge2reg(i4, i3, i1) { 23813 i4 = i4 | 0; 23814 i3 = i3 | 0; 23815 i1 = i1 | 0; 23816 var i2 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, d11 = 0.0; 23817 i2 = STACKTOP; 23818 STACKTOP = STACKTOP + 32 | 0; 23819 i9 = i2 + 16 | 0; 23820 i8 = i2; 23821 _luaK_dischargevars(i4, i3); 23822 i10 = HEAP32[i3 >> 2] | 0; 23823 L1 : do { 23824 switch (i10 | 0) { 23825 case 5: 23826 { 23827 d11 = +HEAPF64[i3 + 8 >> 3]; 23828 HEAPF64[i9 >> 3] = d11; 23829 i5 = HEAP32[(HEAP32[i4 + 12 >> 2] | 0) + 52 >> 2] | 0; 23830 HEAPF64[i8 >> 3] = d11; 23831 HEAP32[i8 + 8 >> 2] = 3; 23832 if (d11 != d11 | 0.0 != 0.0 | d11 == 0.0) { 23833 i10 = i5 + 8 | 0; 23834 i7 = HEAP32[i10 >> 2] | 0; 23835 HEAP32[i10 >> 2] = i7 + 16; 23836 i5 = _luaS_newlstr(i5, i9, 8) | 0; 23837 HEAP32[i7 >> 2] = i5; 23838 HEAP32[i7 + 8 >> 2] = HEAPU8[i5 + 4 | 0] | 0 | 64; 23839 i5 = _addk(i4, (HEAP32[i10 >> 2] | 0) + -16 | 0, i8) | 0; 23840 HEAP32[i10 >> 2] = (HEAP32[i10 >> 2] | 0) + -16; 23841 } else { 23842 i5 = _addk(i4, i8, i8) | 0; 23843 } 23844 i6 = i1 << 6; 23845 if ((i5 | 0) < 262144) { 23846 _luaK_code(i4, i6 | i5 << 14 | 1) | 0; 23847 break L1; 23848 } else { 23849 _luaK_code(i4, i6 | 2) | 0; 23850 _luaK_code(i4, i5 << 6 | 39) | 0; 23851 break L1; 23852 } 23853 } 23854 case 2: 23855 case 3: 23856 { 23857 _luaK_code(i4, i1 << 6 | ((i10 | 0) == 2) << 23 | 3) | 0; 23858 break; 23859 } 23860 case 4: 23861 { 23862 i6 = HEAP32[i3 + 8 >> 2] | 0; 23863 i5 = i1 << 6; 23864 if ((i6 | 0) < 262144) { 23865 _luaK_code(i4, i5 | i6 << 14 | 1) | 0; 23866 break L1; 23867 } else { 23868 _luaK_code(i4, i5 | 2) | 0; 23869 _luaK_code(i4, i6 << 6 | 39) | 0; 23870 break L1; 23871 } 23872 } 23873 case 1: 23874 { 23875 i9 = i1 + 1 | 0; 23876 i8 = HEAP32[i4 + 20 >> 2] | 0; 23877 do { 23878 if ((i8 | 0) > (HEAP32[i4 + 24 >> 2] | 0) ? (i5 = (HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0) + (i8 + -1 << 2) | 0, i6 = HEAP32[i5 >> 2] | 0, (i6 & 63 | 0) == 4) : 0) { 23879 i10 = i6 >>> 6 & 255; 23880 i8 = i10 + (i6 >>> 23) | 0; 23881 if (!((i10 | 0) <= (i1 | 0) ? (i8 + 1 | 0) >= (i1 | 0) : 0)) { 23882 i7 = 6; 23883 } 23884 if ((i7 | 0) == 6 ? (i10 | 0) < (i1 | 0) | (i10 | 0) > (i9 | 0) : 0) { 23885 break; 23886 } 23887 i4 = (i10 | 0) < (i1 | 0) ? i10 : i1; 23888 HEAP32[i5 >> 2] = i4 << 6 & 16320 | i6 & 8372287 | ((i8 | 0) > (i1 | 0) ? i8 : i1) - i4 << 23; 23889 break L1; 23890 } 23891 } while (0); 23892 _luaK_code(i4, i1 << 6 | 4) | 0; 23893 break; 23894 } 23895 case 6: 23896 { 23897 i5 = HEAP32[i3 + 8 >> 2] | 0; 23898 if ((i5 | 0) != (i1 | 0)) { 23899 _luaK_code(i4, i5 << 23 | i1 << 6) | 0; 23900 } 23901 break; 23902 } 23903 case 11: 23904 { 23905 i10 = (HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i3 + 8 >> 2] << 2) | 0; 23906 HEAP32[i10 >> 2] = HEAP32[i10 >> 2] & -16321 | i1 << 6 & 16320; 23907 break; 23908 } 23909 default: 23910 { 23911 STACKTOP = i2; 23912 return; 23913 } 23914 } 23915 } while (0); 23916 HEAP32[i3 + 8 >> 2] = i1; 23917 HEAP32[i3 >> 2] = 6; 23918 STACKTOP = i2; 23919 return; 23920 } 23921 function _unroll(i3, i4) { 23922 i3 = i3 | 0; 23923 i4 = i4 | 0; 23924 var i1 = 0, i2 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0; 23925 i9 = STACKTOP; 23926 i11 = i3 + 16 | 0; 23927 i13 = HEAP32[i11 >> 2] | 0; 23928 i5 = i3 + 72 | 0; 23929 if ((i13 | 0) == (i5 | 0)) { 23930 STACKTOP = i9; 23931 return; 23932 } 23933 i6 = i3 + 8 | 0; 23934 i10 = i3 + 40 | 0; 23935 i7 = i3 + 20 | 0; 23936 i8 = i3 + 28 | 0; 23937 i4 = i3 + 68 | 0; 23938 do { 23939 i12 = i13 + 18 | 0; 23940 i14 = HEAP8[i12] | 0; 23941 if ((i14 & 1) == 0) { 23942 i14 = i14 & 255; 23943 if ((i14 & 16 | 0) != 0) { 23944 HEAP8[i12] = i14 & 239; 23945 HEAP32[i4 >> 2] = HEAP32[i13 + 32 >> 2]; 23946 } 23947 if ((HEAP16[i13 + 16 >> 1] | 0) == -1 ? (i2 = (HEAP32[i11 >> 2] | 0) + 4 | 0, i1 = HEAP32[i6 >> 2] | 0, (HEAP32[i2 >> 2] | 0) >>> 0 < i1 >>> 0) : 0) { 23948 HEAP32[i2 >> 2] = i1; 23949 } 23950 i14 = HEAP8[i12] | 0; 23951 if ((i14 & 32) == 0) { 23952 HEAP8[i13 + 37 | 0] = 1; 23953 } 23954 HEAP8[i12] = i14 & 199 | 8; 23955 i14 = FUNCTION_TABLE_ii[HEAP32[i13 + 28 >> 2] & 255](i3) | 0; 23956 i14 = (HEAP32[i6 >> 2] | 0) + (0 - i14 << 4) | 0; 23957 i13 = HEAP32[i11 >> 2] | 0; 23958 i12 = HEAPU8[i10] | 0; 23959 if ((i12 & 6 | 0) == 0) { 23960 i15 = i13 + 8 | 0; 23961 } else { 23962 if ((i12 & 2 | 0) != 0) { 23963 i14 = i14 - (HEAP32[i8 >> 2] | 0) | 0; 23964 _luaD_hook(i3, 1, -1); 23965 i14 = (HEAP32[i8 >> 2] | 0) + i14 | 0; 23966 } 23967 i15 = i13 + 8 | 0; 23968 HEAP32[i7 >> 2] = HEAP32[(HEAP32[i15 >> 2] | 0) + 28 >> 2]; 23969 } 23970 i12 = HEAP32[i13 >> 2] | 0; 23971 i13 = HEAP16[i13 + 16 >> 1] | 0; 23972 HEAP32[i11 >> 2] = HEAP32[i15 >> 2]; 23973 L25 : do { 23974 if (!(i13 << 16 >> 16 == 0)) { 23975 i15 = i13 << 16 >> 16; 23976 if (i14 >>> 0 < (HEAP32[i6 >> 2] | 0) >>> 0) { 23977 i13 = i14; 23978 i14 = i15; 23979 i15 = i12; 23980 while (1) { 23981 i12 = i15 + 16 | 0; 23982 i18 = i13; 23983 i17 = HEAP32[i18 + 4 >> 2] | 0; 23984 i16 = i15; 23985 HEAP32[i16 >> 2] = HEAP32[i18 >> 2]; 23986 HEAP32[i16 + 4 >> 2] = i17; 23987 HEAP32[i15 + 8 >> 2] = HEAP32[i13 + 8 >> 2]; 23988 i14 = i14 + -1 | 0; 23989 i13 = i13 + 16 | 0; 23990 if ((i14 | 0) == 0) { 23991 break L25; 23992 } 23993 if (i13 >>> 0 < (HEAP32[i6 >> 2] | 0) >>> 0) { 23994 i15 = i12; 23995 } else { 23996 i13 = i14; 23997 break; 23998 } 23999 } 24000 } else { 24001 i13 = i15; 24002 } 24003 if ((i13 | 0) > 0) { 24004 i14 = i13; 24005 i15 = i12; 24006 while (1) { 24007 i14 = i14 + -1 | 0; 24008 HEAP32[i15 + 8 >> 2] = 0; 24009 if ((i14 | 0) <= 0) { 24010 break; 24011 } else { 24012 i15 = i15 + 16 | 0; 24013 } 24014 } 24015 i12 = i12 + (i13 << 4) | 0; 24016 } 24017 } 24018 } while (0); 24019 HEAP32[i6 >> 2] = i12; 24020 } else { 24021 _luaV_finishOp(i3); 24022 _luaV_execute(i3); 24023 } 24024 i13 = HEAP32[i11 >> 2] | 0; 24025 } while ((i13 | 0) != (i5 | 0)); 24026 STACKTOP = i9; 24027 return; 24028 } 24029 function _traverseephemeron(i1, i2) { 24030 i1 = i1 | 0; 24031 i2 = i2 | 0; 24032 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0; 24033 i3 = STACKTOP; 24034 i11 = i2 + 16 | 0; 24035 i9 = HEAP32[i11 >> 2] | 0; 24036 i5 = i9 + (1 << (HEAPU8[i2 + 7 | 0] | 0) << 5) | 0; 24037 i10 = i2 + 28 | 0; 24038 i13 = HEAP32[i10 >> 2] | 0; 24039 if ((i13 | 0) > 0) { 24040 i9 = i2 + 12 | 0; 24041 i12 = 0; 24042 i8 = 0; 24043 do { 24044 i14 = HEAP32[i9 >> 2] | 0; 24045 if ((HEAP32[i14 + (i12 << 4) + 8 >> 2] & 64 | 0) != 0 ? (i7 = HEAP32[i14 + (i12 << 4) >> 2] | 0, !((HEAP8[i7 + 5 | 0] & 3) == 0)) : 0) { 24046 _reallymarkobject(i1, i7); 24047 i13 = HEAP32[i10 >> 2] | 0; 24048 i8 = 1; 24049 } 24050 i12 = i12 + 1 | 0; 24051 } while ((i12 | 0) < (i13 | 0)); 24052 i9 = HEAP32[i11 >> 2] | 0; 24053 } else { 24054 i8 = 0; 24055 } 24056 if (i9 >>> 0 < i5 >>> 0) { 24057 i7 = 0; 24058 i10 = 0; 24059 do { 24060 i11 = i9 + 8 | 0; 24061 i12 = HEAP32[i11 >> 2] | 0; 24062 i14 = i9 + 24 | 0; 24063 i13 = HEAP32[i14 >> 2] | 0; 24064 i15 = (i13 & 64 | 0) == 0; 24065 L14 : do { 24066 if ((i12 | 0) == 0) { 24067 if (!i15 ? !((HEAP8[(HEAP32[i9 + 16 >> 2] | 0) + 5 | 0] & 3) == 0) : 0) { 24068 HEAP32[i14 >> 2] = 11; 24069 } 24070 } else { 24071 do { 24072 if (i15) { 24073 i6 = i12; 24074 i4 = 18; 24075 } else { 24076 i14 = HEAP32[i9 + 16 >> 2] | 0; 24077 if ((i13 & 15 | 0) == 4) { 24078 if ((i14 | 0) == 0) { 24079 i6 = i12; 24080 i4 = 18; 24081 break; 24082 } 24083 if ((HEAP8[i14 + 5 | 0] & 3) == 0) { 24084 i6 = i12; 24085 i4 = 18; 24086 break; 24087 } 24088 _reallymarkobject(i1, i14); 24089 i6 = HEAP32[i11 >> 2] | 0; 24090 i4 = 18; 24091 break; 24092 } 24093 i11 = (i12 & 64 | 0) == 0; 24094 if ((HEAP8[i14 + 5 | 0] & 3) == 0) { 24095 if (i11) { 24096 break L14; 24097 } else { 24098 break; 24099 } 24100 } 24101 if (i11) { 24102 i7 = 1; 24103 break L14; 24104 } 24105 i7 = 1; 24106 i10 = (HEAP8[(HEAP32[i9 >> 2] | 0) + 5 | 0] & 3) == 0 ? i10 : 1; 24107 break L14; 24108 } 24109 } while (0); 24110 if ((i4 | 0) == 18 ? (i4 = 0, (i6 & 64 | 0) == 0) : 0) { 24111 break; 24112 } 24113 i11 = HEAP32[i9 >> 2] | 0; 24114 if (!((HEAP8[i11 + 5 | 0] & 3) == 0)) { 24115 _reallymarkobject(i1, i11); 24116 i8 = 1; 24117 } 24118 } 24119 } while (0); 24120 i9 = i9 + 32 | 0; 24121 } while (i9 >>> 0 < i5 >>> 0); 24122 if ((i10 | 0) != 0) { 24123 i15 = i1 + 96 | 0; 24124 HEAP32[i2 + 24 >> 2] = HEAP32[i15 >> 2]; 24125 HEAP32[i15 >> 2] = i2; 24126 i15 = i8; 24127 STACKTOP = i3; 24128 return i15 | 0; 24129 } 24130 if ((i7 | 0) != 0) { 24131 i15 = i1 + 100 | 0; 24132 HEAP32[i2 + 24 >> 2] = HEAP32[i15 >> 2]; 24133 HEAP32[i15 >> 2] = i2; 24134 i15 = i8; 24135 STACKTOP = i3; 24136 return i15 | 0; 24137 } 24138 } 24139 i15 = i1 + 88 | 0; 24140 HEAP32[i2 + 24 >> 2] = HEAP32[i15 >> 2]; 24141 HEAP32[i15 >> 2] = i2; 24142 i15 = i8; 24143 STACKTOP = i3; 24144 return i15 | 0; 24145 } 24146 function _luaV_gettable(i2, i7, i5, i1) { 24147 i2 = i2 | 0; 24148 i7 = i7 | 0; 24149 i5 = i5 | 0; 24150 i1 = i1 | 0; 24151 var i3 = 0, i4 = 0, i6 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0; 24152 i6 = STACKTOP; 24153 STACKTOP = STACKTOP + 16 | 0; 24154 i4 = i6; 24155 i8 = i2 + 12 | 0; 24156 i3 = i7; 24157 i10 = HEAP32[i7 + 8 >> 2] | 0; 24158 i9 = 0; 24159 while (1) { 24160 i7 = i3 + 8 | 0; 24161 if ((i10 | 0) != 69) { 24162 i12 = _luaT_gettmbyobj(i2, i3, 0) | 0; 24163 i10 = HEAP32[i12 + 8 >> 2] | 0; 24164 if ((i10 | 0) == 0) { 24165 i8 = 11; 24166 break; 24167 } 24168 } else { 24169 i12 = HEAP32[i3 >> 2] | 0; 24170 i11 = _luaH_get(i12, i5) | 0; 24171 i10 = i11 + 8 | 0; 24172 if ((HEAP32[i10 >> 2] | 0) != 0) { 24173 i8 = 9; 24174 break; 24175 } 24176 i12 = HEAP32[i12 + 8 >> 2] | 0; 24177 if ((i12 | 0) == 0) { 24178 i8 = 9; 24179 break; 24180 } 24181 if (!((HEAP8[i12 + 6 | 0] & 1) == 0)) { 24182 i8 = 9; 24183 break; 24184 } 24185 i12 = _luaT_gettm(i12, 0, HEAP32[(HEAP32[i8 >> 2] | 0) + 184 >> 2] | 0) | 0; 24186 if ((i12 | 0) == 0) { 24187 i8 = 9; 24188 break; 24189 } 24190 i10 = HEAP32[i12 + 8 >> 2] | 0; 24191 } 24192 i9 = i9 + 1 | 0; 24193 if ((i10 & 15 | 0) == 6) { 24194 i8 = 13; 24195 break; 24196 } 24197 if ((i9 | 0) < 100) { 24198 i3 = i12; 24199 } else { 24200 i8 = 14; 24201 break; 24202 } 24203 } 24204 if ((i8 | 0) == 9) { 24205 i9 = i11; 24206 i11 = HEAP32[i9 + 4 >> 2] | 0; 24207 i12 = i1; 24208 HEAP32[i12 >> 2] = HEAP32[i9 >> 2]; 24209 HEAP32[i12 + 4 >> 2] = i11; 24210 HEAP32[i1 + 8 >> 2] = HEAP32[i10 >> 2]; 24211 STACKTOP = i6; 24212 return; 24213 } else if ((i8 | 0) == 11) { 24214 _luaG_typeerror(i2, i3, 8944); 24215 } else if ((i8 | 0) == 13) { 24216 i10 = i2 + 28 | 0; 24217 i11 = i1 - (HEAP32[i10 >> 2] | 0) | 0; 24218 i8 = i2 + 8 | 0; 24219 i9 = HEAP32[i8 >> 2] | 0; 24220 HEAP32[i8 >> 2] = i9 + 16; 24221 i13 = i12; 24222 i1 = HEAP32[i13 + 4 >> 2] | 0; 24223 i4 = i9; 24224 HEAP32[i4 >> 2] = HEAP32[i13 >> 2]; 24225 HEAP32[i4 + 4 >> 2] = i1; 24226 HEAP32[i9 + 8 >> 2] = HEAP32[i12 + 8 >> 2]; 24227 i12 = HEAP32[i8 >> 2] | 0; 24228 HEAP32[i8 >> 2] = i12 + 16; 24229 i9 = HEAP32[i3 + 4 >> 2] | 0; 24230 i4 = i12; 24231 HEAP32[i4 >> 2] = HEAP32[i3 >> 2]; 24232 HEAP32[i4 + 4 >> 2] = i9; 24233 HEAP32[i12 + 8 >> 2] = HEAP32[i7 >> 2]; 24234 i12 = HEAP32[i8 >> 2] | 0; 24235 HEAP32[i8 >> 2] = i12 + 16; 24236 i4 = i5; 24237 i9 = HEAP32[i4 + 4 >> 2] | 0; 24238 i7 = i12; 24239 HEAP32[i7 >> 2] = HEAP32[i4 >> 2]; 24240 HEAP32[i7 + 4 >> 2] = i9; 24241 HEAP32[i12 + 8 >> 2] = HEAP32[i5 + 8 >> 2]; 24242 _luaD_call(i2, (HEAP32[i8 >> 2] | 0) + -48 | 0, 1, HEAP8[(HEAP32[i2 + 16 >> 2] | 0) + 18 | 0] & 1); 24243 i12 = HEAP32[i10 >> 2] | 0; 24244 i10 = HEAP32[i8 >> 2] | 0; 24245 i7 = i10 + -16 | 0; 24246 HEAP32[i8 >> 2] = i7; 24247 i8 = HEAP32[i7 + 4 >> 2] | 0; 24248 i9 = i12 + i11 | 0; 24249 HEAP32[i9 >> 2] = HEAP32[i7 >> 2]; 24250 HEAP32[i9 + 4 >> 2] = i8; 24251 HEAP32[i12 + (i11 + 8) >> 2] = HEAP32[i10 + -8 >> 2]; 24252 STACKTOP = i6; 24253 return; 24254 } else if ((i8 | 0) == 14) { 24255 _luaG_runerror(i2, 8952, i4); 24256 } 24257 } 24258 function _db_getinfo(i1) { 24259 i1 = i1 | 0; 24260 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0; 24261 i2 = STACKTOP; 24262 STACKTOP = STACKTOP + 112 | 0; 24263 i3 = i2; 24264 if ((_lua_type(i1, 1) | 0) == 8) { 24265 i4 = _lua_tothread(i1, 1) | 0; 24266 i7 = 1; 24267 } else { 24268 i4 = i1; 24269 i7 = 0; 24270 } 24271 i5 = i7 | 2; 24272 i6 = _luaL_optlstring(i1, i5, 11784, 0) | 0; 24273 i7 = i7 + 1 | 0; 24274 do { 24275 if ((_lua_isnumber(i1, i7) | 0) != 0) { 24276 if ((_lua_getstack(i4, _lua_tointegerx(i1, i7, 0) | 0, i3) | 0) == 0) { 24277 _lua_pushnil(i1); 24278 i7 = 1; 24279 STACKTOP = i2; 24280 return i7 | 0; 24281 } 24282 } else { 24283 if ((_lua_type(i1, i7) | 0) == 6) { 24284 HEAP32[i3 >> 2] = i6; 24285 _lua_pushfstring(i1, 11792, i3) | 0; 24286 i6 = _lua_tolstring(i1, -1, 0) | 0; 24287 _lua_pushvalue(i1, i7); 24288 _lua_xmove(i1, i4, 1); 24289 break; 24290 } 24291 i7 = _luaL_argerror(i1, i7, 11800) | 0; 24292 STACKTOP = i2; 24293 return i7 | 0; 24294 } 24295 } while (0); 24296 if ((_lua_getinfo(i4, i6, i3) | 0) == 0) { 24297 i7 = _luaL_argerror(i1, i5, 11832) | 0; 24298 STACKTOP = i2; 24299 return i7 | 0; 24300 } 24301 _lua_createtable(i1, 0, 2); 24302 if ((_strchr(i6, 83) | 0) != 0) { 24303 _lua_pushstring(i1, HEAP32[i3 + 16 >> 2] | 0) | 0; 24304 _lua_setfield(i1, -2, 11848); 24305 _lua_pushstring(i1, i3 + 36 | 0) | 0; 24306 _lua_setfield(i1, -2, 11856); 24307 _lua_pushinteger(i1, HEAP32[i3 + 24 >> 2] | 0); 24308 _lua_setfield(i1, -2, 11872); 24309 _lua_pushinteger(i1, HEAP32[i3 + 28 >> 2] | 0); 24310 _lua_setfield(i1, -2, 11888); 24311 _lua_pushstring(i1, HEAP32[i3 + 12 >> 2] | 0) | 0; 24312 _lua_setfield(i1, -2, 11904); 24313 } 24314 if ((_strchr(i6, 108) | 0) != 0) { 24315 _lua_pushinteger(i1, HEAP32[i3 + 20 >> 2] | 0); 24316 _lua_setfield(i1, -2, 11912); 24317 } 24318 if ((_strchr(i6, 117) | 0) != 0) { 24319 _lua_pushinteger(i1, HEAPU8[i3 + 32 | 0] | 0); 24320 _lua_setfield(i1, -2, 11928); 24321 _lua_pushinteger(i1, HEAPU8[i3 + 33 | 0] | 0); 24322 _lua_setfield(i1, -2, 11936); 24323 _lua_pushboolean(i1, HEAP8[i3 + 34 | 0] | 0); 24324 _lua_setfield(i1, -2, 11944); 24325 } 24326 if ((_strchr(i6, 110) | 0) != 0) { 24327 _lua_pushstring(i1, HEAP32[i3 + 4 >> 2] | 0) | 0; 24328 _lua_setfield(i1, -2, 11960); 24329 _lua_pushstring(i1, HEAP32[i3 + 8 >> 2] | 0) | 0; 24330 _lua_setfield(i1, -2, 11968); 24331 } 24332 if ((_strchr(i6, 116) | 0) != 0) { 24333 _lua_pushboolean(i1, HEAP8[i3 + 35 | 0] | 0); 24334 _lua_setfield(i1, -2, 11984); 24335 } 24336 if ((_strchr(i6, 76) | 0) != 0) { 24337 if ((i4 | 0) == (i1 | 0)) { 24338 _lua_pushvalue(i1, -2); 24339 _lua_remove(i1, -3); 24340 } else { 24341 _lua_xmove(i4, i1, 1); 24342 } 24343 _lua_setfield(i1, -2, 12e3); 24344 } 24345 if ((_strchr(i6, 102) | 0) == 0) { 24346 i7 = 1; 24347 STACKTOP = i2; 24348 return i7 | 0; 24349 } 24350 if ((i4 | 0) == (i1 | 0)) { 24351 _lua_pushvalue(i1, -2); 24352 _lua_remove(i1, -3); 24353 } else { 24354 _lua_xmove(i4, i1, 1); 24355 } 24356 _lua_setfield(i1, -2, 12016); 24357 i7 = 1; 24358 STACKTOP = i2; 24359 return i7 | 0; 24360 } 24361 function _luaL_traceback(i4, i1, i9, i7) { 24362 i4 = i4 | 0; 24363 i1 = i1 | 0; 24364 i9 = i9 | 0; 24365 i7 = i7 | 0; 24366 var i2 = 0, i3 = 0, i5 = 0, i6 = 0, i8 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0; 24367 i3 = STACKTOP; 24368 STACKTOP = STACKTOP + 208 | 0; 24369 i6 = i3; 24370 i5 = i3 + 100 | 0; 24371 i2 = _lua_gettop(i4) | 0; 24372 i8 = 1; 24373 i10 = 1; 24374 while (1) { 24375 if ((_lua_getstack(i1, i8, i6) | 0) == 0) { 24376 break; 24377 } else { 24378 i10 = i8; 24379 i8 = i8 << 1; 24380 } 24381 } 24382 if ((i10 | 0) < (i8 | 0)) { 24383 while (1) { 24384 i11 = (i8 + i10 | 0) / 2 | 0; 24385 i12 = (_lua_getstack(i1, i11, i6) | 0) == 0; 24386 i8 = i12 ? i11 : i8; 24387 i10 = i12 ? i10 : i11 + 1 | 0; 24388 if ((i10 | 0) >= (i8 | 0)) { 24389 i10 = i8; 24390 break; 24391 } 24392 } 24393 } else { 24394 i10 = i8; 24395 } 24396 i8 = (i10 + -1 | 0) > 22 ? 12 : 0; 24397 if ((i9 | 0) != 0) { 24398 HEAP32[i6 >> 2] = i9; 24399 _lua_pushfstring(i4, 944, i6) | 0; 24400 } 24401 _lua_pushlstring(i4, 952, 16) | 0; 24402 if ((_lua_getstack(i1, i7, i5) | 0) == 0) { 24403 i17 = _lua_gettop(i4) | 0; 24404 i17 = i17 - i2 | 0; 24405 _lua_concat(i4, i17); 24406 STACKTOP = i3; 24407 return; 24408 } 24409 i10 = i10 + -11 | 0; 24410 i13 = i5 + 36 | 0; 24411 i9 = i5 + 20 | 0; 24412 i16 = i5 + 8 | 0; 24413 i12 = i5 + 12 | 0; 24414 i15 = i5 + 24 | 0; 24415 i14 = i5 + 35 | 0; 24416 i11 = i5 + 4 | 0; 24417 do { 24418 i7 = i7 + 1 | 0; 24419 if ((i7 | 0) == (i8 | 0)) { 24420 _lua_pushlstring(i4, 976, 5) | 0; 24421 i7 = i10; 24422 } else { 24423 _lua_getinfo(i1, 984, i5) | 0; 24424 HEAP32[i6 >> 2] = i13; 24425 _lua_pushfstring(i4, 992, i6) | 0; 24426 i17 = HEAP32[i9 >> 2] | 0; 24427 if ((i17 | 0) > 0) { 24428 HEAP32[i6 >> 2] = i17; 24429 _lua_pushfstring(i4, 1e3, i6) | 0; 24430 } 24431 _lua_pushlstring(i4, 1008, 4) | 0; 24432 do { 24433 if ((HEAP8[HEAP32[i16 >> 2] | 0] | 0) == 0) { 24434 i17 = HEAP8[HEAP32[i12 >> 2] | 0] | 0; 24435 if (i17 << 24 >> 24 == 109) { 24436 _lua_pushlstring(i4, 1800, 10) | 0; 24437 break; 24438 } else if (i17 << 24 >> 24 == 67) { 24439 if ((_pushglobalfuncname(i4, i5) | 0) == 0) { 24440 _lua_pushlstring(i4, 1112, 1) | 0; 24441 break; 24442 } else { 24443 HEAP32[i6 >> 2] = _lua_tolstring(i4, -1, 0) | 0; 24444 _lua_pushfstring(i4, 1784, i6) | 0; 24445 _lua_remove(i4, -2); 24446 break; 24447 } 24448 } else { 24449 i17 = HEAP32[i15 >> 2] | 0; 24450 HEAP32[i6 >> 2] = i13; 24451 HEAP32[i6 + 4 >> 2] = i17; 24452 _lua_pushfstring(i4, 1816, i6) | 0; 24453 break; 24454 } 24455 } else { 24456 HEAP32[i6 >> 2] = HEAP32[i11 >> 2]; 24457 _lua_pushfstring(i4, 1784, i6) | 0; 24458 } 24459 } while (0); 24460 if ((HEAP8[i14] | 0) != 0) { 24461 _lua_pushlstring(i4, 1016, 20) | 0; 24462 } 24463 _lua_concat(i4, (_lua_gettop(i4) | 0) - i2 | 0); 24464 } 24465 } while ((_lua_getstack(i1, i7, i5) | 0) != 0); 24466 i17 = _lua_gettop(i4) | 0; 24467 i17 = i17 - i2 | 0; 24468 _lua_concat(i4, i17); 24469 STACKTOP = i3; 24470 return; 24471 } 24472 function _luaK_exp2RK(i3, i1) { 24473 i3 = i3 | 0; 24474 i1 = i1 | 0; 24475 var i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, d11 = 0.0, i12 = 0; 24476 i2 = STACKTOP; 24477 STACKTOP = STACKTOP + 32 | 0; 24478 i7 = i2 + 16 | 0; 24479 i6 = i2; 24480 i4 = i1 + 16 | 0; 24481 i5 = i1 + 20 | 0; 24482 i10 = (HEAP32[i4 >> 2] | 0) == (HEAP32[i5 >> 2] | 0); 24483 _luaK_dischargevars(i3, i1); 24484 do { 24485 if (!i10) { 24486 if ((HEAP32[i1 >> 2] | 0) == 6) { 24487 i10 = HEAP32[i1 + 8 >> 2] | 0; 24488 if ((HEAP32[i4 >> 2] | 0) == (HEAP32[i5 >> 2] | 0)) { 24489 break; 24490 } 24491 if ((i10 | 0) >= (HEAPU8[i3 + 46 | 0] | 0 | 0)) { 24492 _exp2reg(i3, i1, i10); 24493 break; 24494 } 24495 } 24496 _luaK_exp2nextreg(i3, i1); 24497 } 24498 } while (0); 24499 i10 = HEAP32[i1 >> 2] | 0; 24500 switch (i10 | 0) { 24501 case 4: 24502 { 24503 i8 = HEAP32[i1 + 8 >> 2] | 0; 24504 i9 = 18; 24505 break; 24506 } 24507 case 1: 24508 case 3: 24509 case 2: 24510 { 24511 if ((HEAP32[i3 + 32 >> 2] | 0) < 256) { 24512 if ((i10 | 0) == 1) { 24513 HEAP32[i6 + 8 >> 2] = 0; 24514 HEAP32[i7 >> 2] = HEAP32[i3 + 4 >> 2]; 24515 HEAP32[i7 + 8 >> 2] = 69; 24516 i3 = _addk(i3, i7, i6) | 0; 24517 } else { 24518 HEAP32[i7 >> 2] = (i10 | 0) == 2; 24519 HEAP32[i7 + 8 >> 2] = 1; 24520 i3 = _addk(i3, i7, i7) | 0; 24521 } 24522 HEAP32[i1 + 8 >> 2] = i3; 24523 HEAP32[i1 >> 2] = 4; 24524 i10 = i3 | 256; 24525 STACKTOP = i2; 24526 return i10 | 0; 24527 } 24528 break; 24529 } 24530 case 5: 24531 { 24532 i9 = i1 + 8 | 0; 24533 d11 = +HEAPF64[i9 >> 3]; 24534 HEAPF64[i7 >> 3] = d11; 24535 i8 = HEAP32[(HEAP32[i3 + 12 >> 2] | 0) + 52 >> 2] | 0; 24536 HEAPF64[i6 >> 3] = d11; 24537 HEAP32[i6 + 8 >> 2] = 3; 24538 if (d11 != d11 | 0.0 != 0.0 | d11 == 0.0) { 24539 i10 = i8 + 8 | 0; 24540 i12 = HEAP32[i10 >> 2] | 0; 24541 HEAP32[i10 >> 2] = i12 + 16; 24542 i8 = _luaS_newlstr(i8, i7, 8) | 0; 24543 HEAP32[i12 >> 2] = i8; 24544 HEAP32[i12 + 8 >> 2] = HEAPU8[i8 + 4 | 0] | 0 | 64; 24545 i8 = _addk(i3, (HEAP32[i10 >> 2] | 0) + -16 | 0, i6) | 0; 24546 HEAP32[i10 >> 2] = (HEAP32[i10 >> 2] | 0) + -16; 24547 } else { 24548 i8 = _addk(i3, i6, i6) | 0; 24549 } 24550 HEAP32[i9 >> 2] = i8; 24551 HEAP32[i1 >> 2] = 4; 24552 i9 = 18; 24553 break; 24554 } 24555 default: 24556 {} 24557 } 24558 if ((i9 | 0) == 18 ? (i8 | 0) < 256 : 0) { 24559 i12 = i8 | 256; 24560 STACKTOP = i2; 24561 return i12 | 0; 24562 } 24563 _luaK_dischargevars(i3, i1); 24564 if ((HEAP32[i1 >> 2] | 0) == 6) { 24565 i7 = i1 + 8 | 0; 24566 i6 = HEAP32[i7 >> 2] | 0; 24567 if ((HEAP32[i4 >> 2] | 0) == (HEAP32[i5 >> 2] | 0)) { 24568 i12 = i6; 24569 STACKTOP = i2; 24570 return i12 | 0; 24571 } 24572 if ((i6 | 0) >= (HEAPU8[i3 + 46 | 0] | 0 | 0)) { 24573 _exp2reg(i3, i1, i6); 24574 i12 = HEAP32[i7 >> 2] | 0; 24575 STACKTOP = i2; 24576 return i12 | 0; 24577 } 24578 } else { 24579 i7 = i1 + 8 | 0; 24580 } 24581 _luaK_exp2nextreg(i3, i1); 24582 i12 = HEAP32[i7 >> 2] | 0; 24583 STACKTOP = i2; 24584 return i12 | 0; 24585 } 24586 function _os_date(i1) { 24587 i1 = i1 | 0; 24588 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0; 24589 i2 = STACKTOP; 24590 STACKTOP = STACKTOP + 1264 | 0; 24591 i4 = i2; 24592 i7 = i2 + 1048 | 0; 24593 i6 = i2 + 1256 | 0; 24594 i3 = i2 + 8 | 0; 24595 i5 = i2 + 1056 | 0; 24596 i12 = _luaL_optlstring(i1, 1, 6064, 0) | 0; 24597 if ((_lua_type(i1, 2) | 0) < 1) { 24598 i8 = _time(0) | 0; 24599 } else { 24600 i8 = ~~+_luaL_checknumber(i1, 2); 24601 } 24602 HEAP32[i7 >> 2] = i8; 24603 if ((HEAP8[i12] | 0) == 33) { 24604 i12 = i12 + 1 | 0; 24605 i10 = _gmtime(i7 | 0) | 0; 24606 } else { 24607 i10 = _localtime(i7 | 0) | 0; 24608 } 24609 if ((i10 | 0) == 0) { 24610 _lua_pushnil(i1); 24611 STACKTOP = i2; 24612 return 1; 24613 } 24614 if ((_strcmp(i12, 6072) | 0) == 0) { 24615 _lua_createtable(i1, 0, 9); 24616 _lua_pushinteger(i1, HEAP32[i10 >> 2] | 0); 24617 _lua_setfield(i1, -2, 5864); 24618 _lua_pushinteger(i1, HEAP32[i10 + 4 >> 2] | 0); 24619 _lua_setfield(i1, -2, 5872); 24620 _lua_pushinteger(i1, HEAP32[i10 + 8 >> 2] | 0); 24621 _lua_setfield(i1, -2, 5880); 24622 _lua_pushinteger(i1, HEAP32[i10 + 12 >> 2] | 0); 24623 _lua_setfield(i1, -2, 5888); 24624 _lua_pushinteger(i1, (HEAP32[i10 + 16 >> 2] | 0) + 1 | 0); 24625 _lua_setfield(i1, -2, 5896); 24626 _lua_pushinteger(i1, (HEAP32[i10 + 20 >> 2] | 0) + 1900 | 0); 24627 _lua_setfield(i1, -2, 5904); 24628 _lua_pushinteger(i1, (HEAP32[i10 + 24 >> 2] | 0) + 1 | 0); 24629 _lua_setfield(i1, -2, 6080); 24630 _lua_pushinteger(i1, (HEAP32[i10 + 28 >> 2] | 0) + 1 | 0); 24631 _lua_setfield(i1, -2, 6088); 24632 i3 = HEAP32[i10 + 32 >> 2] | 0; 24633 if ((i3 | 0) < 0) { 24634 STACKTOP = i2; 24635 return 1; 24636 } 24637 _lua_pushboolean(i1, i3); 24638 _lua_setfield(i1, -2, 5912); 24639 STACKTOP = i2; 24640 return 1; 24641 } 24642 HEAP8[i6] = 37; 24643 _luaL_buffinit(i1, i3); 24644 i11 = i3 + 8 | 0; 24645 i9 = i3 + 4 | 0; 24646 i8 = i6 + 1 | 0; 24647 i7 = i6 + 2 | 0; 24648 while (1) { 24649 i14 = HEAP8[i12] | 0; 24650 if (i14 << 24 >> 24 == 0) { 24651 break; 24652 } else if (!(i14 << 24 >> 24 == 37)) { 24653 i13 = HEAP32[i11 >> 2] | 0; 24654 if (!(i13 >>> 0 < (HEAP32[i9 >> 2] | 0) >>> 0)) { 24655 _luaL_prepbuffsize(i3, 1) | 0; 24656 i13 = HEAP32[i11 >> 2] | 0; 24657 i14 = HEAP8[i12] | 0; 24658 } 24659 HEAP32[i11 >> 2] = i13 + 1; 24660 HEAP8[(HEAP32[i3 >> 2] | 0) + i13 | 0] = i14; 24661 i12 = i12 + 1 | 0; 24662 continue; 24663 } 24664 i13 = i12 + 1 | 0; 24665 i12 = i12 + 2 | 0; 24666 i14 = HEAP8[i13] | 0; 24667 if (!(i14 << 24 >> 24 == 0) ? (_memchr(6096, i14 << 24 >> 24, 23) | 0) != 0 : 0) { 24668 HEAP8[i8] = i14; 24669 HEAP8[i7] = 0; 24670 } else { 24671 HEAP32[i4 >> 2] = i13; 24672 _luaL_argerror(i1, 1, _lua_pushfstring(i1, 6120, i4) | 0) | 0; 24673 i12 = i13; 24674 } 24675 _luaL_addlstring(i3, i5, _strftime(i5 | 0, 200, i6 | 0, i10 | 0) | 0); 24676 } 24677 _luaL_pushresult(i3); 24678 STACKTOP = i2; 24679 return 1; 24680 } 24681 function _luaV_finishOp(i3) { 24682 i3 = i3 | 0; 24683 var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0; 24684 i1 = STACKTOP; 24685 i8 = HEAP32[i3 + 16 >> 2] | 0; 24686 i7 = i8 + 24 | 0; 24687 i4 = HEAP32[i7 >> 2] | 0; 24688 i5 = i8 + 28 | 0; 24689 i2 = HEAP32[(HEAP32[i5 >> 2] | 0) + -4 >> 2] | 0; 24690 i6 = i2 & 63; 24691 switch (i6 | 0) { 24692 case 34: 24693 { 24694 HEAP32[i3 + 8 >> 2] = HEAP32[i8 + 4 >> 2]; 24695 STACKTOP = i1; 24696 return; 24697 } 24698 case 24: 24699 case 25: 24700 case 26: 24701 { 24702 i7 = i3 + 8 | 0; 24703 i8 = HEAP32[i7 >> 2] | 0; 24704 i9 = HEAP32[i8 + -8 >> 2] | 0; 24705 if ((i9 | 0) != 0) { 24706 if ((i9 | 0) == 1) { 24707 i9 = (HEAP32[i8 + -16 >> 2] | 0) == 0; 24708 } else { 24709 i9 = 0; 24710 } 24711 } else { 24712 i9 = 1; 24713 } 24714 i9 = i9 & 1; 24715 i10 = i9 ^ 1; 24716 HEAP32[i7 >> 2] = i8 + -16; 24717 if ((i6 | 0) == 26) { 24718 i8 = (HEAP32[(_luaT_gettmbyobj(i3, i4 + (i2 >>> 23 << 4) | 0, 14) | 0) + 8 >> 2] | 0) == 0; 24719 i10 = i8 ? i9 : i10; 24720 } 24721 if ((i10 | 0) == (i2 >>> 6 & 255 | 0)) { 24722 STACKTOP = i1; 24723 return; 24724 } 24725 HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + 4; 24726 STACKTOP = i1; 24727 return; 24728 } 24729 case 22: 24730 { 24731 i5 = i3 + 8 | 0; 24732 i10 = HEAP32[i5 >> 2] | 0; 24733 i6 = i10 + -32 | 0; 24734 i4 = i6 - (i4 + (i2 >>> 23 << 4)) | 0; 24735 i12 = i10 + -16 | 0; 24736 i11 = HEAP32[i12 + 4 >> 2] | 0; 24737 i9 = i10 + -48 | 0; 24738 HEAP32[i9 >> 2] = HEAP32[i12 >> 2]; 24739 HEAP32[i9 + 4 >> 2] = i11; 24740 HEAP32[i10 + -40 >> 2] = HEAP32[i10 + -8 >> 2]; 24741 if ((i4 | 0) > 16) { 24742 HEAP32[i5 >> 2] = i6; 24743 _luaV_concat(i3, i4 >> 4); 24744 } 24745 i10 = HEAP32[i5 >> 2] | 0; 24746 i11 = HEAP32[i7 >> 2] | 0; 24747 i12 = i2 >>> 6 & 255; 24748 i6 = i10 + -16 | 0; 24749 i7 = HEAP32[i6 + 4 >> 2] | 0; 24750 i9 = i11 + (i12 << 4) | 0; 24751 HEAP32[i9 >> 2] = HEAP32[i6 >> 2]; 24752 HEAP32[i9 + 4 >> 2] = i7; 24753 HEAP32[i11 + (i12 << 4) + 8 >> 2] = HEAP32[i10 + -8 >> 2]; 24754 HEAP32[i5 >> 2] = HEAP32[i8 + 4 >> 2]; 24755 STACKTOP = i1; 24756 return; 24757 } 24758 case 12: 24759 case 7: 24760 case 6: 24761 case 21: 24762 case 19: 24763 case 18: 24764 case 17: 24765 case 16: 24766 case 15: 24767 case 14: 24768 case 13: 24769 { 24770 i12 = i3 + 8 | 0; 24771 i11 = HEAP32[i12 >> 2] | 0; 24772 i8 = i11 + -16 | 0; 24773 HEAP32[i12 >> 2] = i8; 24774 i12 = i2 >>> 6 & 255; 24775 i9 = HEAP32[i8 + 4 >> 2] | 0; 24776 i10 = i4 + (i12 << 4) | 0; 24777 HEAP32[i10 >> 2] = HEAP32[i8 >> 2]; 24778 HEAP32[i10 + 4 >> 2] = i9; 24779 HEAP32[i4 + (i12 << 4) + 8 >> 2] = HEAP32[i11 + -8 >> 2]; 24780 STACKTOP = i1; 24781 return; 24782 } 24783 case 29: 24784 { 24785 if ((i2 & 8372224 | 0) == 0) { 24786 STACKTOP = i1; 24787 return; 24788 } 24789 HEAP32[i3 + 8 >> 2] = HEAP32[i8 + 4 >> 2]; 24790 STACKTOP = i1; 24791 return; 24792 } 24793 default: 24794 { 24795 STACKTOP = i1; 24796 return; 24797 } 24798 } 24799 } 24800 function _auxsort(i2, i4, i5) { 24801 i2 = i2 | 0; 24802 i4 = i4 | 0; 24803 i5 = i5 | 0; 24804 var i1 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0; 24805 i1 = STACKTOP; 24806 STACKTOP = STACKTOP + 16 | 0; 24807 i3 = i1; 24808 if ((i4 | 0) >= (i5 | 0)) { 24809 STACKTOP = i1; 24810 return; 24811 } 24812 while (1) { 24813 _lua_rawgeti(i2, 1, i4); 24814 _lua_rawgeti(i2, 1, i5); 24815 if ((_sort_comp(i2, -1, -2) | 0) == 0) { 24816 _lua_settop(i2, -3); 24817 } else { 24818 _lua_rawseti(i2, 1, i4); 24819 _lua_rawseti(i2, 1, i5); 24820 } 24821 i6 = i5 - i4 | 0; 24822 if ((i6 | 0) == 1) { 24823 i2 = 24; 24824 break; 24825 } 24826 i7 = (i5 + i4 | 0) / 2 | 0; 24827 _lua_rawgeti(i2, 1, i7); 24828 _lua_rawgeti(i2, 1, i4); 24829 do { 24830 if ((_sort_comp(i2, -2, -1) | 0) == 0) { 24831 _lua_settop(i2, -2); 24832 _lua_rawgeti(i2, 1, i5); 24833 if ((_sort_comp(i2, -1, -2) | 0) == 0) { 24834 _lua_settop(i2, -3); 24835 break; 24836 } else { 24837 _lua_rawseti(i2, 1, i7); 24838 _lua_rawseti(i2, 1, i5); 24839 break; 24840 } 24841 } else { 24842 _lua_rawseti(i2, 1, i7); 24843 _lua_rawseti(i2, 1, i4); 24844 } 24845 } while (0); 24846 if ((i6 | 0) == 2) { 24847 i2 = 24; 24848 break; 24849 } 24850 _lua_rawgeti(i2, 1, i7); 24851 _lua_pushvalue(i2, -1); 24852 i6 = i5 + -1 | 0; 24853 _lua_rawgeti(i2, 1, i6); 24854 _lua_rawseti(i2, 1, i7); 24855 _lua_rawseti(i2, 1, i6); 24856 i7 = i4; 24857 i9 = i6; 24858 while (1) { 24859 i8 = i7 + 1 | 0; 24860 _lua_rawgeti(i2, 1, i8); 24861 if ((_sort_comp(i2, -1, -2) | 0) != 0) { 24862 i7 = i8; 24863 while (1) { 24864 if ((i7 | 0) >= (i5 | 0)) { 24865 _luaL_error(i2, 8216, i3) | 0; 24866 } 24867 _lua_settop(i2, -2); 24868 i8 = i7 + 1 | 0; 24869 _lua_rawgeti(i2, 1, i8); 24870 if ((_sort_comp(i2, -1, -2) | 0) == 0) { 24871 break; 24872 } else { 24873 i7 = i8; 24874 } 24875 } 24876 } 24877 i10 = i9 + -1 | 0; 24878 _lua_rawgeti(i2, 1, i10); 24879 if ((_sort_comp(i2, -3, -1) | 0) != 0) { 24880 i9 = i10; 24881 while (1) { 24882 if ((i9 | 0) <= (i4 | 0)) { 24883 _luaL_error(i2, 8216, i3) | 0; 24884 } 24885 _lua_settop(i2, -2); 24886 i10 = i9 + -1 | 0; 24887 _lua_rawgeti(i2, 1, i10); 24888 if ((_sort_comp(i2, -3, -1) | 0) == 0) { 24889 break; 24890 } else { 24891 i9 = i10; 24892 } 24893 } 24894 } 24895 if ((i9 | 0) <= (i8 | 0)) { 24896 break; 24897 } 24898 _lua_rawseti(i2, 1, i8); 24899 _lua_rawseti(i2, 1, i10); 24900 i7 = i8; 24901 i9 = i10; 24902 } 24903 _lua_settop(i2, -4); 24904 _lua_rawgeti(i2, 1, i6); 24905 _lua_rawgeti(i2, 1, i8); 24906 _lua_rawseti(i2, 1, i6); 24907 _lua_rawseti(i2, 1, i8); 24908 i8 = (i8 - i4 | 0) < (i5 - i8 | 0); 24909 i9 = i7 + 2 | 0; 24910 i10 = i8 ? i9 : i4; 24911 i6 = i8 ? i5 : i7; 24912 _auxsort(i2, i8 ? i4 : i9, i8 ? i7 : i5); 24913 if ((i10 | 0) < (i6 | 0)) { 24914 i4 = i10; 24915 i5 = i6; 24916 } else { 24917 i2 = 24; 24918 break; 24919 } 24920 } 24921 if ((i2 | 0) == 24) { 24922 STACKTOP = i1; 24923 return; 24924 } 24925 } 24926 function _skip_sep(i3) { 24927 i3 = i3 | 0; 24928 var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0; 24929 i1 = STACKTOP; 24930 i2 = HEAP32[i3 >> 2] | 0; 24931 i4 = i3 + 60 | 0; 24932 i10 = HEAP32[i4 >> 2] | 0; 24933 i8 = i10 + 4 | 0; 24934 i11 = HEAP32[i8 >> 2] | 0; 24935 i7 = i10 + 8 | 0; 24936 i5 = HEAP32[i7 >> 2] | 0; 24937 do { 24938 if ((i11 + 1 | 0) >>> 0 > i5 >>> 0) { 24939 if (i5 >>> 0 > 2147483645) { 24940 _lexerror(i3, 12368, 0); 24941 } 24942 i12 = i5 << 1; 24943 i11 = HEAP32[i3 + 52 >> 2] | 0; 24944 if ((i12 | 0) == -2) { 24945 _luaM_toobig(i11); 24946 } else { 24947 i9 = _luaM_realloc_(i11, HEAP32[i10 >> 2] | 0, i5, i12) | 0; 24948 HEAP32[i10 >> 2] = i9; 24949 HEAP32[i7 >> 2] = i12; 24950 i6 = HEAP32[i8 >> 2] | 0; 24951 break; 24952 } 24953 } else { 24954 i6 = i11; 24955 i9 = HEAP32[i10 >> 2] | 0; 24956 } 24957 } while (0); 24958 HEAP32[i8 >> 2] = i6 + 1; 24959 HEAP8[i9 + i6 | 0] = i2; 24960 i5 = i3 + 56 | 0; 24961 i6 = HEAP32[i5 >> 2] | 0; 24962 i13 = HEAP32[i6 >> 2] | 0; 24963 HEAP32[i6 >> 2] = i13 + -1; 24964 if ((i13 | 0) == 0) { 24965 i6 = _luaZ_fill(i6) | 0; 24966 } else { 24967 i13 = i6 + 4 | 0; 24968 i6 = HEAP32[i13 >> 2] | 0; 24969 HEAP32[i13 >> 2] = i6 + 1; 24970 i6 = HEAPU8[i6] | 0; 24971 } 24972 HEAP32[i3 >> 2] = i6; 24973 if ((i6 | 0) != 61) { 24974 i12 = i6; 24975 i13 = 0; 24976 i12 = (i12 | 0) != (i2 | 0); 24977 i12 = i12 << 31 >> 31; 24978 i13 = i12 ^ i13; 24979 STACKTOP = i1; 24980 return i13 | 0; 24981 } 24982 i6 = i3 + 52 | 0; 24983 i7 = 0; 24984 while (1) { 24985 i9 = HEAP32[i4 >> 2] | 0; 24986 i8 = i9 + 4 | 0; 24987 i10 = HEAP32[i8 >> 2] | 0; 24988 i11 = i9 + 8 | 0; 24989 i12 = HEAP32[i11 >> 2] | 0; 24990 if ((i10 + 1 | 0) >>> 0 > i12 >>> 0) { 24991 if (i12 >>> 0 > 2147483645) { 24992 i4 = 16; 24993 break; 24994 } 24995 i13 = i12 << 1; 24996 i10 = HEAP32[i6 >> 2] | 0; 24997 if ((i13 | 0) == -2) { 24998 i4 = 18; 24999 break; 25000 } 25001 i12 = _luaM_realloc_(i10, HEAP32[i9 >> 2] | 0, i12, i13) | 0; 25002 HEAP32[i9 >> 2] = i12; 25003 HEAP32[i11 >> 2] = i13; 25004 i10 = HEAP32[i8 >> 2] | 0; 25005 i9 = i12; 25006 } else { 25007 i9 = HEAP32[i9 >> 2] | 0; 25008 } 25009 HEAP32[i8 >> 2] = i10 + 1; 25010 HEAP8[i9 + i10 | 0] = 61; 25011 i8 = HEAP32[i5 >> 2] | 0; 25012 i13 = HEAP32[i8 >> 2] | 0; 25013 HEAP32[i8 >> 2] = i13 + -1; 25014 if ((i13 | 0) == 0) { 25015 i8 = _luaZ_fill(i8) | 0; 25016 } else { 25017 i13 = i8 + 4 | 0; 25018 i8 = HEAP32[i13 >> 2] | 0; 25019 HEAP32[i13 >> 2] = i8 + 1; 25020 i8 = HEAPU8[i8] | 0; 25021 } 25022 HEAP32[i3 >> 2] = i8; 25023 i7 = i7 + 1 | 0; 25024 if ((i8 | 0) != 61) { 25025 i4 = 24; 25026 break; 25027 } 25028 } 25029 if ((i4 | 0) == 16) { 25030 _lexerror(i3, 12368, 0); 25031 } else if ((i4 | 0) == 18) { 25032 _luaM_toobig(i10); 25033 } else if ((i4 | 0) == 24) { 25034 i13 = (i8 | 0) != (i2 | 0); 25035 i13 = i13 << 31 >> 31; 25036 i13 = i13 ^ i7; 25037 STACKTOP = i1; 25038 return i13 | 0; 25039 } 25040 return 0; 25041 } 25042 function _luaV_arith(i8, i2, i3, i5, i4) { 25043 i8 = i8 | 0; 25044 i2 = i2 | 0; 25045 i3 = i3 | 0; 25046 i5 = i5 | 0; 25047 i4 = i4 | 0; 25048 var i1 = 0, i6 = 0, i7 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, d14 = 0.0; 25049 i1 = STACKTOP; 25050 STACKTOP = STACKTOP + 32 | 0; 25051 i9 = i1 + 24 | 0; 25052 i13 = i1 + 16 | 0; 25053 i12 = i1; 25054 i6 = i3 + 8 | 0; 25055 i11 = HEAP32[i6 >> 2] | 0; 25056 if ((i11 | 0) != 3) { 25057 if ((i11 & 15 | 0) == 4 ? (i11 = HEAP32[i3 >> 2] | 0, (_luaO_str2d(i11 + 16 | 0, HEAP32[i11 + 12 >> 2] | 0, i13) | 0) != 0) : 0) { 25058 HEAPF64[i12 >> 3] = +HEAPF64[i13 >> 3]; 25059 HEAP32[i12 + 8 >> 2] = 3; 25060 i10 = 5; 25061 } 25062 } else { 25063 i12 = i3; 25064 i10 = 5; 25065 } 25066 do { 25067 if ((i10 | 0) == 5) { 25068 i10 = HEAP32[i5 + 8 >> 2] | 0; 25069 if ((i10 | 0) == 3) { 25070 if ((i5 | 0) == 0) { 25071 break; 25072 } 25073 d14 = +HEAPF64[i5 >> 3]; 25074 } else { 25075 if ((i10 & 15 | 0) != 4) { 25076 break; 25077 } 25078 i13 = HEAP32[i5 >> 2] | 0; 25079 if ((_luaO_str2d(i13 + 16 | 0, HEAP32[i13 + 12 >> 2] | 0, i9) | 0) == 0) { 25080 break; 25081 } 25082 d14 = +HEAPF64[i9 >> 3]; 25083 } 25084 HEAPF64[i2 >> 3] = +_luaO_arith(i4 + -6 | 0, +HEAPF64[i12 >> 3], d14); 25085 HEAP32[i2 + 8 >> 2] = 3; 25086 STACKTOP = i1; 25087 return; 25088 } 25089 } while (0); 25090 i9 = _luaT_gettmbyobj(i8, i3, i4) | 0; 25091 if ((HEAP32[i9 + 8 >> 2] | 0) == 0) { 25092 i4 = _luaT_gettmbyobj(i8, i5, i4) | 0; 25093 if ((HEAP32[i4 + 8 >> 2] | 0) == 0) { 25094 _luaG_aritherror(i8, i3, i5); 25095 } else { 25096 i7 = i4; 25097 } 25098 } else { 25099 i7 = i9; 25100 } 25101 i12 = i8 + 28 | 0; 25102 i13 = i2 - (HEAP32[i12 >> 2] | 0) | 0; 25103 i9 = i8 + 8 | 0; 25104 i11 = HEAP32[i9 >> 2] | 0; 25105 HEAP32[i9 >> 2] = i11 + 16; 25106 i2 = i7; 25107 i10 = HEAP32[i2 + 4 >> 2] | 0; 25108 i4 = i11; 25109 HEAP32[i4 >> 2] = HEAP32[i2 >> 2]; 25110 HEAP32[i4 + 4 >> 2] = i10; 25111 HEAP32[i11 + 8 >> 2] = HEAP32[i7 + 8 >> 2]; 25112 i11 = HEAP32[i9 >> 2] | 0; 25113 HEAP32[i9 >> 2] = i11 + 16; 25114 i4 = i3; 25115 i10 = HEAP32[i4 + 4 >> 2] | 0; 25116 i7 = i11; 25117 HEAP32[i7 >> 2] = HEAP32[i4 >> 2]; 25118 HEAP32[i7 + 4 >> 2] = i10; 25119 HEAP32[i11 + 8 >> 2] = HEAP32[i6 >> 2]; 25120 i11 = HEAP32[i9 >> 2] | 0; 25121 HEAP32[i9 >> 2] = i11 + 16; 25122 i6 = i5; 25123 i7 = HEAP32[i6 + 4 >> 2] | 0; 25124 i10 = i11; 25125 HEAP32[i10 >> 2] = HEAP32[i6 >> 2]; 25126 HEAP32[i10 + 4 >> 2] = i7; 25127 HEAP32[i11 + 8 >> 2] = HEAP32[i5 + 8 >> 2]; 25128 _luaD_call(i8, (HEAP32[i9 >> 2] | 0) + -48 | 0, 1, HEAP8[(HEAP32[i8 + 16 >> 2] | 0) + 18 | 0] & 1); 25129 i12 = HEAP32[i12 >> 2] | 0; 25130 i11 = HEAP32[i9 >> 2] | 0; 25131 i8 = i11 + -16 | 0; 25132 HEAP32[i9 >> 2] = i8; 25133 i9 = HEAP32[i8 + 4 >> 2] | 0; 25134 i10 = i12 + i13 | 0; 25135 HEAP32[i10 >> 2] = HEAP32[i8 >> 2]; 25136 HEAP32[i10 + 4 >> 2] = i9; 25137 HEAP32[i12 + (i13 + 8) >> 2] = HEAP32[i11 + -8 >> 2]; 25138 STACKTOP = i1; 25139 return; 25140 } 25141 function _new_localvar(i1, i8) { 25142 i1 = i1 | 0; 25143 i8 = i8 | 0; 25144 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0; 25145 i3 = STACKTOP; 25146 STACKTOP = STACKTOP + 16 | 0; 25147 i4 = i3; 25148 i5 = HEAP32[i1 + 48 >> 2] | 0; 25149 i2 = HEAP32[i1 + 64 >> 2] | 0; 25150 i7 = HEAP32[i5 >> 2] | 0; 25151 i10 = i7 + 60 | 0; 25152 i11 = HEAP32[i10 >> 2] | 0; 25153 i6 = i5 + 44 | 0; 25154 if ((HEAP16[i6 >> 1] | 0) < (i11 | 0)) { 25155 i9 = i7 + 24 | 0; 25156 i10 = i11; 25157 } else { 25158 i9 = i7 + 24 | 0; 25159 HEAP32[i9 >> 2] = _luaM_growaux_(HEAP32[i1 + 52 >> 2] | 0, HEAP32[i9 >> 2] | 0, i10, 12, 32767, 6496) | 0; 25160 i10 = HEAP32[i10 >> 2] | 0; 25161 } 25162 if ((i11 | 0) < (i10 | 0)) { 25163 i12 = i11; 25164 while (1) { 25165 i11 = i12 + 1 | 0; 25166 HEAP32[(HEAP32[i9 >> 2] | 0) + (i12 * 12 | 0) >> 2] = 0; 25167 if ((i11 | 0) == (i10 | 0)) { 25168 break; 25169 } else { 25170 i12 = i11; 25171 } 25172 } 25173 } 25174 i10 = HEAP16[i6 >> 1] | 0; 25175 HEAP32[(HEAP32[i9 >> 2] | 0) + ((i10 << 16 >> 16) * 12 | 0) >> 2] = i8; 25176 if (!((HEAP8[i8 + 5 | 0] & 3) == 0) ? !((HEAP8[i7 + 5 | 0] & 4) == 0) : 0) { 25177 _luaC_barrier_(HEAP32[i1 + 52 >> 2] | 0, i7, i8); 25178 i7 = HEAP16[i6 >> 1] | 0; 25179 } else { 25180 i7 = i10; 25181 } 25182 HEAP16[i6 >> 1] = i7 + 1 << 16 >> 16; 25183 i6 = i2 + 4 | 0; 25184 i8 = HEAP32[i6 >> 2] | 0; 25185 if ((i8 + 1 - (HEAP32[i5 + 40 >> 2] | 0) | 0) > 200) { 25186 i10 = i5 + 12 | 0; 25187 i9 = HEAP32[(HEAP32[i10 >> 2] | 0) + 52 >> 2] | 0; 25188 i5 = HEAP32[(HEAP32[i5 >> 2] | 0) + 64 >> 2] | 0; 25189 if ((i5 | 0) == 0) { 25190 i11 = 6552; 25191 HEAP32[i4 >> 2] = 6496; 25192 i12 = i4 + 4 | 0; 25193 HEAP32[i12 >> 2] = 200; 25194 i12 = i4 + 8 | 0; 25195 HEAP32[i12 >> 2] = i11; 25196 i12 = _luaO_pushfstring(i9, 6592, i4) | 0; 25197 i11 = HEAP32[i10 >> 2] | 0; 25198 _luaX_syntaxerror(i11, i12); 25199 } 25200 HEAP32[i4 >> 2] = i5; 25201 i11 = _luaO_pushfstring(i9, 6568, i4) | 0; 25202 HEAP32[i4 >> 2] = 6496; 25203 i12 = i4 + 4 | 0; 25204 HEAP32[i12 >> 2] = 200; 25205 i12 = i4 + 8 | 0; 25206 HEAP32[i12 >> 2] = i11; 25207 i12 = _luaO_pushfstring(i9, 6592, i4) | 0; 25208 i11 = HEAP32[i10 >> 2] | 0; 25209 _luaX_syntaxerror(i11, i12); 25210 } 25211 i4 = i2 + 8 | 0; 25212 if ((i8 + 2 | 0) > (HEAP32[i4 >> 2] | 0)) { 25213 i11 = _luaM_growaux_(HEAP32[i1 + 52 >> 2] | 0, HEAP32[i2 >> 2] | 0, i4, 2, 2147483645, 6496) | 0; 25214 HEAP32[i2 >> 2] = i11; 25215 i12 = HEAP32[i6 >> 2] | 0; 25216 i10 = i12 + 1 | 0; 25217 HEAP32[i6 >> 2] = i10; 25218 i12 = i11 + (i12 << 1) | 0; 25219 HEAP16[i12 >> 1] = i7; 25220 STACKTOP = i3; 25221 return; 25222 } else { 25223 i12 = i8; 25224 i11 = HEAP32[i2 >> 2] | 0; 25225 i10 = i12 + 1 | 0; 25226 HEAP32[i6 >> 2] = i10; 25227 i12 = i11 + (i12 << 1) | 0; 25228 HEAP16[i12 >> 1] = i7; 25229 STACKTOP = i3; 25230 return; 25231 } 25232 } 25233 function _luaC_fullgc(i1, i5) { 25234 i1 = i1 | 0; 25235 i5 = i5 | 0; 25236 var i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0; 25237 i2 = STACKTOP; 25238 i4 = i1 + 12 | 0; 25239 i3 = HEAP32[i4 >> 2] | 0; 25240 i6 = i3 + 62 | 0; 25241 i8 = HEAP8[i6] | 0; 25242 i5 = (i5 | 0) != 0; 25243 if (!i5) { 25244 HEAP8[i6] = 0; 25245 i9 = (HEAP32[i4 >> 2] | 0) + 104 | 0; 25246 i10 = HEAP32[i9 >> 2] | 0; 25247 if ((i10 | 0) != 0) { 25248 do { 25249 i11 = i10 + 5 | 0; 25250 HEAP8[i11] = HEAP8[i11] & 191; 25251 _GCTM(i1, 1); 25252 i10 = HEAP32[i9 >> 2] | 0; 25253 } while ((i10 | 0) != 0); 25254 if ((HEAP8[i6] | 0) == 2) { 25255 i9 = 7; 25256 } else { 25257 i9 = 6; 25258 } 25259 } else { 25260 i9 = 6; 25261 } 25262 } else { 25263 HEAP8[i6] = 1; 25264 i9 = 6; 25265 } 25266 if ((i9 | 0) == 6 ? (HEAPU8[i3 + 61 | 0] | 0) < 2 : 0) { 25267 i9 = 7; 25268 } 25269 if ((i9 | 0) == 7) { 25270 i9 = HEAP32[i4 >> 2] | 0; 25271 HEAP8[i9 + 61 | 0] = 2; 25272 HEAP32[i9 + 64 >> 2] = 0; 25273 i10 = i9 + 72 | 0; 25274 do { 25275 i11 = _sweeplist(i1, i10, 1) | 0; 25276 } while ((i11 | 0) == (i10 | 0)); 25277 HEAP32[i9 + 80 >> 2] = i11; 25278 i11 = i9 + 68 | 0; 25279 do { 25280 i10 = _sweeplist(i1, i11, 1) | 0; 25281 } while ((i10 | 0) == (i11 | 0)); 25282 HEAP32[i9 + 76 >> 2] = i10; 25283 } 25284 i11 = HEAP32[i4 >> 2] | 0; 25285 i9 = i11 + 61 | 0; 25286 if ((HEAP8[i9] | 0) == 5) { 25287 i9 = 5; 25288 } else { 25289 do { 25290 _singlestep(i1) | 0; 25291 } while ((HEAP8[i9] | 0) != 5); 25292 i9 = HEAP32[i4 >> 2] | 0; 25293 i11 = i9; 25294 i9 = HEAP8[i9 + 61 | 0] | 0; 25295 } 25296 i10 = i11 + 61 | 0; 25297 if ((1 << (i9 & 255) & -33 | 0) == 0) { 25298 do { 25299 _singlestep(i1) | 0; 25300 } while ((1 << HEAPU8[i10] & -33 | 0) == 0); 25301 i9 = HEAP32[i4 >> 2] | 0; 25302 i11 = i9; 25303 i9 = HEAP8[i9 + 61 | 0] | 0; 25304 } 25305 i10 = i11 + 61 | 0; 25306 if (!(i9 << 24 >> 24 == 5)) { 25307 do { 25308 _singlestep(i1) | 0; 25309 } while ((HEAP8[i10] | 0) != 5); 25310 } 25311 if (i8 << 24 >> 24 == 2 ? (i7 = (HEAP32[i4 >> 2] | 0) + 61 | 0, (HEAP8[i7] | 0) != 0) : 0) { 25312 do { 25313 _singlestep(i1) | 0; 25314 } while ((HEAP8[i7] | 0) != 0); 25315 } 25316 HEAP8[i6] = i8; 25317 i6 = HEAP32[i3 + 8 >> 2] | 0; 25318 i7 = HEAP32[i3 + 12 >> 2] | 0; 25319 i8 = (i7 + i6 | 0) / 100 | 0; 25320 i9 = HEAP32[i3 + 156 >> 2] | 0; 25321 if ((i9 | 0) < (2147483644 / (i8 | 0) | 0 | 0)) { 25322 i8 = Math_imul(i9, i8) | 0; 25323 } else { 25324 i8 = 2147483644; 25325 } 25326 _luaE_setdebt(i3, i6 - i8 + i7 | 0); 25327 if (i5) { 25328 STACKTOP = i2; 25329 return; 25330 } 25331 i3 = (HEAP32[i4 >> 2] | 0) + 104 | 0; 25332 i4 = HEAP32[i3 >> 2] | 0; 25333 if ((i4 | 0) == 0) { 25334 STACKTOP = i2; 25335 return; 25336 } 25337 do { 25338 i11 = i4 + 5 | 0; 25339 HEAP8[i11] = HEAP8[i11] & 191; 25340 _GCTM(i1, 1); 25341 i4 = HEAP32[i3 >> 2] | 0; 25342 } while ((i4 | 0) != 0); 25343 STACKTOP = i2; 25344 return; 25345 } 25346 function _scanexp(i3, i6) { 25347 i3 = i3 | 0; 25348 i6 = i6 | 0; 25349 var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0; 25350 i1 = STACKTOP; 25351 i2 = i3 + 4 | 0; 25352 i5 = HEAP32[i2 >> 2] | 0; 25353 i4 = i3 + 100 | 0; 25354 if (i5 >>> 0 < (HEAP32[i4 >> 2] | 0) >>> 0) { 25355 HEAP32[i2 >> 2] = i5 + 1; 25356 i8 = HEAPU8[i5] | 0; 25357 } else { 25358 i8 = ___shgetc(i3) | 0; 25359 } 25360 if ((i8 | 0) == 43 | (i8 | 0) == 45) { 25361 i5 = (i8 | 0) == 45 | 0; 25362 i7 = HEAP32[i2 >> 2] | 0; 25363 if (i7 >>> 0 < (HEAP32[i4 >> 2] | 0) >>> 0) { 25364 HEAP32[i2 >> 2] = i7 + 1; 25365 i8 = HEAPU8[i7] | 0; 25366 } else { 25367 i8 = ___shgetc(i3) | 0; 25368 } 25369 if (!((i8 + -48 | 0) >>> 0 < 10 | (i6 | 0) == 0) ? (HEAP32[i4 >> 2] | 0) != 0 : 0) { 25370 HEAP32[i2 >> 2] = (HEAP32[i2 >> 2] | 0) + -1; 25371 } 25372 } else { 25373 i5 = 0; 25374 } 25375 if ((i8 + -48 | 0) >>> 0 > 9) { 25376 if ((HEAP32[i4 >> 2] | 0) == 0) { 25377 i7 = -2147483648; 25378 i8 = 0; 25379 tempRet0 = i7; 25380 STACKTOP = i1; 25381 return i8 | 0; 25382 } 25383 HEAP32[i2 >> 2] = (HEAP32[i2 >> 2] | 0) + -1; 25384 i7 = -2147483648; 25385 i8 = 0; 25386 tempRet0 = i7; 25387 STACKTOP = i1; 25388 return i8 | 0; 25389 } else { 25390 i6 = 0; 25391 } 25392 while (1) { 25393 i6 = i8 + -48 + i6 | 0; 25394 i7 = HEAP32[i2 >> 2] | 0; 25395 if (i7 >>> 0 < (HEAP32[i4 >> 2] | 0) >>> 0) { 25396 HEAP32[i2 >> 2] = i7 + 1; 25397 i8 = HEAPU8[i7] | 0; 25398 } else { 25399 i8 = ___shgetc(i3) | 0; 25400 } 25401 if (!((i8 + -48 | 0) >>> 0 < 10 & (i6 | 0) < 214748364)) { 25402 break; 25403 } 25404 i6 = i6 * 10 | 0; 25405 } 25406 i7 = ((i6 | 0) < 0) << 31 >> 31; 25407 if ((i8 + -48 | 0) >>> 0 < 10) { 25408 do { 25409 i7 = ___muldi3(i6 | 0, i7 | 0, 10, 0) | 0; 25410 i6 = tempRet0; 25411 i8 = _i64Add(i8 | 0, ((i8 | 0) < 0) << 31 >> 31 | 0, -48, -1) | 0; 25412 i6 = _i64Add(i8 | 0, tempRet0 | 0, i7 | 0, i6 | 0) | 0; 25413 i7 = tempRet0; 25414 i8 = HEAP32[i2 >> 2] | 0; 25415 if (i8 >>> 0 < (HEAP32[i4 >> 2] | 0) >>> 0) { 25416 HEAP32[i2 >> 2] = i8 + 1; 25417 i8 = HEAPU8[i8] | 0; 25418 } else { 25419 i8 = ___shgetc(i3) | 0; 25420 } 25421 } while ((i8 + -48 | 0) >>> 0 < 10 & ((i7 | 0) < 21474836 | (i7 | 0) == 21474836 & i6 >>> 0 < 2061584302)); 25422 } 25423 if ((i8 + -48 | 0) >>> 0 < 10) { 25424 do { 25425 i8 = HEAP32[i2 >> 2] | 0; 25426 if (i8 >>> 0 < (HEAP32[i4 >> 2] | 0) >>> 0) { 25427 HEAP32[i2 >> 2] = i8 + 1; 25428 i8 = HEAPU8[i8] | 0; 25429 } else { 25430 i8 = ___shgetc(i3) | 0; 25431 } 25432 } while ((i8 + -48 | 0) >>> 0 < 10); 25433 } 25434 if ((HEAP32[i4 >> 2] | 0) != 0) { 25435 HEAP32[i2 >> 2] = (HEAP32[i2 >> 2] | 0) + -1; 25436 } 25437 i3 = (i5 | 0) != 0; 25438 i2 = _i64Subtract(0, 0, i6 | 0, i7 | 0) | 0; 25439 i4 = i3 ? tempRet0 : i7; 25440 i8 = i3 ? i2 : i6; 25441 tempRet0 = i4; 25442 STACKTOP = i1; 25443 return i8 | 0; 25444 } 25445 function _sweeplist(i3, i8, i9) { 25446 i3 = i3 | 0; 25447 i8 = i8 | 0; 25448 i9 = i9 | 0; 25449 var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i10 = 0, i11 = 0, i12 = 0; 25450 i1 = STACKTOP; 25451 i5 = i3 + 12 | 0; 25452 i7 = HEAP32[i5 >> 2] | 0; 25453 i6 = HEAPU8[i7 + 60 | 0] | 0; 25454 i2 = i6 ^ 3; 25455 i7 = (HEAP8[i7 + 62 | 0] | 0) == 2; 25456 i4 = i7 ? 255 : 184; 25457 i6 = i7 ? 64 : i6 & 3; 25458 i7 = i7 ? 64 : 0; 25459 i10 = HEAP32[i8 >> 2] | 0; 25460 L1 : do { 25461 if ((i10 | 0) == 0) { 25462 i10 = 0; 25463 } else { 25464 i11 = i9; 25465 L2 : while (1) { 25466 i9 = i11 + -1 | 0; 25467 if ((i11 | 0) == 0) { 25468 break L1; 25469 } 25470 i11 = i10 + 5 | 0; 25471 i12 = HEAPU8[i11] | 0; 25472 L5 : do { 25473 if (((i12 ^ 3) & i2 | 0) == 0) { 25474 HEAP32[i8 >> 2] = HEAP32[i10 >> 2]; 25475 switch (HEAPU8[i10 + 4 | 0] | 0) { 25476 case 4: 25477 { 25478 i12 = (HEAP32[i5 >> 2] | 0) + 28 | 0; 25479 HEAP32[i12 >> 2] = (HEAP32[i12 >> 2] | 0) + -1; 25480 break; 25481 } 25482 case 38: 25483 { 25484 _luaM_realloc_(i3, i10, (HEAPU8[i10 + 6 | 0] << 4) + 16 | 0, 0) | 0; 25485 break L5; 25486 } 25487 case 6: 25488 { 25489 _luaM_realloc_(i3, i10, (HEAPU8[i10 + 6 | 0] << 2) + 16 | 0, 0) | 0; 25490 break L5; 25491 } 25492 case 20: 25493 { 25494 break; 25495 } 25496 case 5: 25497 { 25498 _luaH_free(i3, i10); 25499 break L5; 25500 } 25501 case 10: 25502 { 25503 _luaF_freeupval(i3, i10); 25504 break L5; 25505 } 25506 case 8: 25507 { 25508 _luaE_freethread(i3, i10); 25509 break L5; 25510 } 25511 case 9: 25512 { 25513 _luaF_freeproto(i3, i10); 25514 break L5; 25515 } 25516 case 7: 25517 { 25518 _luaM_realloc_(i3, i10, (HEAP32[i10 + 16 >> 2] | 0) + 24 | 0, 0) | 0; 25519 break L5; 25520 } 25521 default: 25522 { 25523 break L5; 25524 } 25525 } 25526 _luaM_realloc_(i3, i10, (HEAP32[i10 + 12 >> 2] | 0) + 17 | 0, 0) | 0; 25527 } else { 25528 if ((i12 & i7 | 0) != 0) { 25529 i2 = 0; 25530 break L2; 25531 } 25532 if (((HEAP8[i10 + 4 | 0] | 0) == 8 ? (HEAP32[i10 + 28 >> 2] | 0) != 0 : 0) ? (_sweeplist(i3, i10 + 56 | 0, -3) | 0, _luaE_freeCI(i10), (HEAP8[(HEAP32[i5 >> 2] | 0) + 62 | 0] | 0) != 1) : 0) { 25533 _luaD_shrinkstack(i10); 25534 } 25535 HEAP8[i11] = i12 & i4 | i6; 25536 i8 = i10; 25537 } 25538 } while (0); 25539 i10 = HEAP32[i8 >> 2] | 0; 25540 if ((i10 | 0) == 0) { 25541 i10 = 0; 25542 break L1; 25543 } else { 25544 i11 = i9; 25545 } 25546 } 25547 STACKTOP = i1; 25548 return i2 | 0; 25549 } 25550 } while (0); 25551 i12 = (i10 | 0) == 0 ? 0 : i8; 25552 STACKTOP = i1; 25553 return i12 | 0; 25554 } 25555 function _resume(i1, i6) { 25556 i1 = i1 | 0; 25557 i6 = i6 | 0; 25558 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0; 25559 i2 = STACKTOP; 25560 i3 = i1 + 16 | 0; 25561 i5 = HEAP32[i3 >> 2] | 0; 25562 if ((HEAPU16[i1 + 38 >> 1] | 0) > 199) { 25563 _resume_error(i1, 2240, i6); 25564 } 25565 i4 = i1 + 6 | 0; 25566 i7 = HEAP8[i4] | 0; 25567 if (i7 << 24 >> 24 == 0) { 25568 if ((i5 | 0) != (i1 + 72 | 0)) { 25569 _resume_error(i1, 2448, i6); 25570 } 25571 if ((_luaD_precall(i1, i6 + -16 | 0, -1) | 0) != 0) { 25572 STACKTOP = i2; 25573 return; 25574 } 25575 _luaV_execute(i1); 25576 STACKTOP = i2; 25577 return; 25578 } else if (i7 << 24 >> 24 == 1) { 25579 HEAP8[i4] = 0; 25580 i4 = i1 + 28 | 0; 25581 HEAP32[i5 >> 2] = (HEAP32[i4 >> 2] | 0) + (HEAP32[i5 + 20 >> 2] | 0); 25582 i8 = i5 + 18 | 0; 25583 i7 = HEAP8[i8] | 0; 25584 if ((i7 & 1) == 0) { 25585 i9 = HEAP32[i5 + 28 >> 2] | 0; 25586 if ((i9 | 0) != 0) { 25587 HEAP8[i5 + 37 | 0] = 1; 25588 HEAP8[i8] = i7 & 255 | 8; 25589 i6 = FUNCTION_TABLE_ii[i9 & 255](i1) | 0; 25590 i6 = (HEAP32[i1 + 8 >> 2] | 0) + (0 - i6 << 4) | 0; 25591 } 25592 i5 = HEAP32[i3 >> 2] | 0; 25593 i7 = HEAPU8[i1 + 40 | 0] | 0; 25594 if ((i7 & 6 | 0) == 0) { 25595 i7 = i5 + 8 | 0; 25596 } else { 25597 if ((i7 & 2 | 0) != 0) { 25598 i6 = i6 - (HEAP32[i4 >> 2] | 0) | 0; 25599 _luaD_hook(i1, 1, -1); 25600 i6 = (HEAP32[i4 >> 2] | 0) + i6 | 0; 25601 } 25602 i7 = i5 + 8 | 0; 25603 HEAP32[i1 + 20 >> 2] = HEAP32[(HEAP32[i7 >> 2] | 0) + 28 >> 2]; 25604 } 25605 i4 = HEAP32[i5 >> 2] | 0; 25606 i5 = HEAP16[i5 + 16 >> 1] | 0; 25607 HEAP32[i3 >> 2] = HEAP32[i7 >> 2]; 25608 i3 = i1 + 8 | 0; 25609 L27 : do { 25610 if (!(i5 << 16 >> 16 == 0)) { 25611 i5 = i5 << 16 >> 16; 25612 while (1) { 25613 if (!(i6 >>> 0 < (HEAP32[i3 >> 2] | 0) >>> 0)) { 25614 break; 25615 } 25616 i7 = i4 + 16 | 0; 25617 i10 = i6; 25618 i8 = HEAP32[i10 + 4 >> 2] | 0; 25619 i9 = i4; 25620 HEAP32[i9 >> 2] = HEAP32[i10 >> 2]; 25621 HEAP32[i9 + 4 >> 2] = i8; 25622 HEAP32[i4 + 8 >> 2] = HEAP32[i6 + 8 >> 2]; 25623 i5 = i5 + -1 | 0; 25624 if ((i5 | 0) == 0) { 25625 i4 = i7; 25626 break L27; 25627 } 25628 i6 = i6 + 16 | 0; 25629 i4 = i7; 25630 } 25631 if ((i5 | 0) > 0) { 25632 i7 = i5; 25633 i6 = i4; 25634 while (1) { 25635 i7 = i7 + -1 | 0; 25636 HEAP32[i6 + 8 >> 2] = 0; 25637 if ((i7 | 0) <= 0) { 25638 break; 25639 } else { 25640 i6 = i6 + 16 | 0; 25641 } 25642 } 25643 i4 = i4 + (i5 << 4) | 0; 25644 } 25645 } 25646 } while (0); 25647 HEAP32[i3 >> 2] = i4; 25648 } else { 25649 _luaV_execute(i1); 25650 } 25651 _unroll(i1, 0); 25652 STACKTOP = i2; 25653 return; 25654 } else { 25655 _resume_error(i1, 2488, i6); 25656 } 25657 } 25658 function _lua_setupvalue(i1, i5, i3) { 25659 i1 = i1 | 0; 25660 i5 = i5 | 0; 25661 i3 = i3 | 0; 25662 var i2 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0; 25663 i2 = STACKTOP; 25664 i6 = HEAP32[i1 + 16 >> 2] | 0; 25665 do { 25666 if ((i5 | 0) <= 0) { 25667 if (!((i5 | 0) < -1000999)) { 25668 i5 = (HEAP32[i1 + 8 >> 2] | 0) + (i5 << 4) | 0; 25669 break; 25670 } 25671 if ((i5 | 0) == -1001e3) { 25672 i5 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0; 25673 break; 25674 } 25675 i5 = -1001e3 - i5 | 0; 25676 i6 = HEAP32[i6 >> 2] | 0; 25677 if ((HEAP32[i6 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i6 >> 2] | 0, (i5 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) { 25678 i5 = i4 + (i5 + -1 << 4) + 16 | 0; 25679 } else { 25680 i5 = 5192; 25681 } 25682 } else { 25683 i4 = (HEAP32[i6 >> 2] | 0) + (i5 << 4) | 0; 25684 i5 = i4 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i4 : 5192; 25685 } 25686 } while (0); 25687 i4 = HEAP32[i5 + 8 >> 2] & 63; 25688 do { 25689 if ((i4 | 0) == 6) { 25690 i5 = HEAP32[i5 >> 2] | 0; 25691 i4 = HEAP32[i5 + 12 >> 2] | 0; 25692 if ((i3 | 0) <= 0) { 25693 i6 = 0; 25694 STACKTOP = i2; 25695 return i6 | 0; 25696 } 25697 if ((HEAP32[i4 + 40 >> 2] | 0) < (i3 | 0)) { 25698 i6 = 0; 25699 STACKTOP = i2; 25700 return i6 | 0; 25701 } 25702 i6 = i3 + -1 | 0; 25703 i3 = HEAP32[i5 + 16 + (i6 << 2) >> 2] | 0; 25704 i5 = HEAP32[i3 + 8 >> 2] | 0; 25705 i4 = HEAP32[(HEAP32[i4 + 28 >> 2] | 0) + (i6 << 3) >> 2] | 0; 25706 if ((i4 | 0) == 0) { 25707 i4 = 936; 25708 } else { 25709 i4 = i4 + 16 | 0; 25710 } 25711 } else if ((i4 | 0) == 38) { 25712 i6 = HEAP32[i5 >> 2] | 0; 25713 if ((i3 | 0) <= 0) { 25714 i6 = 0; 25715 STACKTOP = i2; 25716 return i6 | 0; 25717 } 25718 if ((HEAPU8[i6 + 6 | 0] | 0 | 0) >= (i3 | 0)) { 25719 i4 = 936; 25720 i5 = i6 + (i3 + -1 << 4) + 16 | 0; 25721 i3 = i6; 25722 break; 25723 } else { 25724 i6 = 0; 25725 STACKTOP = i2; 25726 return i6 | 0; 25727 } 25728 } else { 25729 i6 = 0; 25730 STACKTOP = i2; 25731 return i6 | 0; 25732 } 25733 } while (0); 25734 i6 = i1 + 8 | 0; 25735 i7 = HEAP32[i6 >> 2] | 0; 25736 i10 = i7 + -16 | 0; 25737 HEAP32[i6 >> 2] = i10; 25738 i9 = HEAP32[i10 + 4 >> 2] | 0; 25739 i8 = i5; 25740 HEAP32[i8 >> 2] = HEAP32[i10 >> 2]; 25741 HEAP32[i8 + 4 >> 2] = i9; 25742 HEAP32[i5 + 8 >> 2] = HEAP32[i7 + -8 >> 2]; 25743 i5 = HEAP32[i6 >> 2] | 0; 25744 if ((HEAP32[i5 + 8 >> 2] & 64 | 0) == 0) { 25745 i10 = i4; 25746 STACKTOP = i2; 25747 return i10 | 0; 25748 } 25749 i5 = HEAP32[i5 >> 2] | 0; 25750 if ((HEAP8[i5 + 5 | 0] & 3) == 0) { 25751 i10 = i4; 25752 STACKTOP = i2; 25753 return i10 | 0; 25754 } 25755 if ((HEAP8[i3 + 5 | 0] & 4) == 0) { 25756 i10 = i4; 25757 STACKTOP = i2; 25758 return i10 | 0; 25759 } 25760 _luaC_barrier_(i1, i3, i5); 25761 i10 = i4; 25762 STACKTOP = i2; 25763 return i10 | 0; 25764 } 25765 function _luaC_forcestep(i2) { 25766 i2 = i2 | 0; 25767 var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0; 25768 i1 = STACKTOP; 25769 i3 = HEAP32[i2 + 12 >> 2] | 0; 25770 do { 25771 if ((HEAP8[i3 + 62 | 0] | 0) == 2) { 25772 i4 = i3 + 20 | 0; 25773 i6 = HEAP32[i4 >> 2] | 0; 25774 do { 25775 if ((i6 | 0) != 0) { 25776 i5 = i3 + 61 | 0; 25777 if ((HEAP8[i5] | 0) != 5) { 25778 do { 25779 _singlestep(i2) | 0; 25780 } while ((HEAP8[i5] | 0) != 5); 25781 } 25782 HEAP8[i5] = 0; 25783 i5 = HEAP32[i3 + 8 >> 2] | 0; 25784 i7 = HEAP32[i3 + 12 >> 2] | 0; 25785 if ((i7 + i5 | 0) >>> 0 > (Math_imul(HEAP32[i3 + 160 >> 2] | 0, (i6 >>> 0) / 100 | 0) | 0) >>> 0) { 25786 HEAP32[i4 >> 2] = 0; 25787 break; 25788 } else { 25789 HEAP32[i4 >> 2] = i6; 25790 break; 25791 } 25792 } else { 25793 _luaC_fullgc(i2, 0); 25794 i5 = HEAP32[i3 + 8 >> 2] | 0; 25795 i7 = HEAP32[i3 + 12 >> 2] | 0; 25796 HEAP32[i4 >> 2] = i7 + i5; 25797 } 25798 } while (0); 25799 i4 = i5 + i7 | 0; 25800 i5 = (i4 | 0) / 100 | 0; 25801 i6 = HEAP32[i3 + 156 >> 2] | 0; 25802 if ((i6 | 0) < (2147483644 / (i5 | 0) | 0 | 0)) { 25803 i5 = Math_imul(i6, i5) | 0; 25804 } else { 25805 i5 = 2147483644; 25806 } 25807 _luaE_setdebt(i3, i4 - i5 | 0); 25808 i5 = i3 + 61 | 0; 25809 } else { 25810 i4 = i3 + 12 | 0; 25811 i5 = HEAP32[i3 + 164 >> 2] | 0; 25812 i7 = (i5 | 0) < 40 ? 40 : i5; 25813 i5 = ((HEAP32[i4 >> 2] | 0) / 200 | 0) + 1 | 0; 25814 if ((i5 | 0) < (2147483644 / (i7 | 0) | 0 | 0)) { 25815 i8 = Math_imul(i5, i7) | 0; 25816 } else { 25817 i8 = 2147483644; 25818 } 25819 i5 = i3 + 61 | 0; 25820 do { 25821 i8 = i8 - (_singlestep(i2) | 0) | 0; 25822 i9 = (HEAP8[i5] | 0) == 5; 25823 if (!((i8 | 0) > -1600)) { 25824 i6 = 17; 25825 break; 25826 } 25827 } while (!i9); 25828 if ((i6 | 0) == 17 ? !i9 : 0) { 25829 _luaE_setdebt(i3, ((i8 | 0) / (i7 | 0) | 0) * 200 | 0); 25830 break; 25831 } 25832 i6 = (HEAP32[i3 + 20 >> 2] | 0) / 100 | 0; 25833 i7 = HEAP32[i3 + 156 >> 2] | 0; 25834 if ((i7 | 0) < (2147483644 / (i6 | 0) | 0 | 0)) { 25835 i6 = Math_imul(i7, i6) | 0; 25836 } else { 25837 i6 = 2147483644; 25838 } 25839 _luaE_setdebt(i3, (HEAP32[i3 + 8 >> 2] | 0) - i6 + (HEAP32[i4 >> 2] | 0) | 0); 25840 } 25841 } while (0); 25842 i3 = i3 + 104 | 0; 25843 if ((HEAP32[i3 >> 2] | 0) == 0) { 25844 STACKTOP = i1; 25845 return; 25846 } else { 25847 i4 = 0; 25848 } 25849 while (1) { 25850 if ((i4 | 0) >= 4 ? (HEAP8[i5] | 0) != 5 : 0) { 25851 i6 = 26; 25852 break; 25853 } 25854 _GCTM(i2, 1); 25855 if ((HEAP32[i3 >> 2] | 0) == 0) { 25856 i6 = 26; 25857 break; 25858 } else { 25859 i4 = i4 + 1 | 0; 25860 } 25861 } 25862 if ((i6 | 0) == 26) { 25863 STACKTOP = i1; 25864 return; 25865 } 25866 } 25867 function _luaL_loadfilex(i1, i9, i7) { 25868 i1 = i1 | 0; 25869 i9 = i9 | 0; 25870 i7 = i7 | 0; 25871 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0, i10 = 0, i11 = 0; 25872 i5 = STACKTOP; 25873 STACKTOP = STACKTOP + 1056 | 0; 25874 i3 = i5; 25875 i6 = i5 + 16 | 0; 25876 i8 = i5 + 12 | 0; 25877 i2 = (_lua_gettop(i1) | 0) + 1 | 0; 25878 i4 = (i9 | 0) == 0; 25879 if (!i4) { 25880 HEAP32[i3 >> 2] = i9; 25881 _lua_pushfstring(i1, 1304, i3) | 0; 25882 i10 = _fopen(i9 | 0, 1312) | 0; 25883 HEAP32[i6 + 4 >> 2] = i10; 25884 if ((i10 | 0) == 0) { 25885 i10 = _strerror(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0; 25886 i9 = (_lua_tolstring(i1, i2, 0) | 0) + 1 | 0; 25887 HEAP32[i3 >> 2] = 1320; 25888 HEAP32[i3 + 4 >> 2] = i9; 25889 HEAP32[i3 + 8 >> 2] = i10; 25890 _lua_pushfstring(i1, 1720, i3) | 0; 25891 _lua_remove(i1, i2); 25892 i10 = 7; 25893 STACKTOP = i5; 25894 return i10 | 0; 25895 } 25896 } else { 25897 _lua_pushlstring(i1, 1296, 6) | 0; 25898 HEAP32[i6 + 4 >> 2] = HEAP32[_stdin >> 2]; 25899 } 25900 if ((_skipcomment(i6, i8) | 0) != 0) { 25901 i10 = HEAP32[i6 >> 2] | 0; 25902 HEAP32[i6 >> 2] = i10 + 1; 25903 HEAP8[i6 + i10 + 8 | 0] = 10; 25904 } 25905 i10 = HEAP32[i8 >> 2] | 0; 25906 do { 25907 if (!((i10 | 0) != 27 | i4)) { 25908 i11 = i6 + 4 | 0; 25909 i10 = _freopen(i9 | 0, 1328, HEAP32[i11 >> 2] | 0) | 0; 25910 HEAP32[i11 >> 2] = i10; 25911 if ((i10 | 0) != 0) { 25912 _skipcomment(i6, i8) | 0; 25913 i10 = HEAP32[i8 >> 2] | 0; 25914 break; 25915 } 25916 i11 = _strerror(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0; 25917 i10 = (_lua_tolstring(i1, i2, 0) | 0) + 1 | 0; 25918 HEAP32[i3 >> 2] = 1336; 25919 HEAP32[i3 + 4 >> 2] = i10; 25920 HEAP32[i3 + 8 >> 2] = i11; 25921 _lua_pushfstring(i1, 1720, i3) | 0; 25922 _lua_remove(i1, i2); 25923 i11 = 7; 25924 STACKTOP = i5; 25925 return i11 | 0; 25926 } 25927 } while (0); 25928 if (!((i10 | 0) == -1)) { 25929 i11 = HEAP32[i6 >> 2] | 0; 25930 HEAP32[i6 >> 2] = i11 + 1; 25931 HEAP8[i6 + i11 + 8 | 0] = i10; 25932 } 25933 i7 = _lua_load(i1, 1, i6, _lua_tolstring(i1, -1, 0) | 0, i7) | 0; 25934 i8 = HEAP32[i6 + 4 >> 2] | 0; 25935 i6 = _ferror(i8 | 0) | 0; 25936 if (!i4) { 25937 _fclose(i8 | 0) | 0; 25938 } 25939 if ((i6 | 0) == 0) { 25940 _lua_remove(i1, i2); 25941 i11 = i7; 25942 STACKTOP = i5; 25943 return i11 | 0; 25944 } else { 25945 _lua_settop(i1, i2); 25946 i11 = _strerror(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0; 25947 i10 = (_lua_tolstring(i1, i2, 0) | 0) + 1 | 0; 25948 HEAP32[i3 >> 2] = 1344; 25949 HEAP32[i3 + 4 >> 2] = i10; 25950 HEAP32[i3 + 8 >> 2] = i11; 25951 _lua_pushfstring(i1, 1720, i3) | 0; 25952 _lua_remove(i1, i2); 25953 i11 = 7; 25954 STACKTOP = i5; 25955 return i11 | 0; 25956 } 25957 return 0; 25958 } 25959 function _newupvalue(i3, i1, i2) { 25960 i3 = i3 | 0; 25961 i1 = i1 | 0; 25962 i2 = i2 | 0; 25963 var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0; 25964 i4 = STACKTOP; 25965 STACKTOP = STACKTOP + 16 | 0; 25966 i12 = i4; 25967 i5 = HEAP32[i3 >> 2] | 0; 25968 i9 = i5 + 40 | 0; 25969 i7 = HEAP32[i9 >> 2] | 0; 25970 i6 = i3 + 47 | 0; 25971 i10 = HEAPU8[i6] | 0; 25972 if ((i10 + 1 | 0) >>> 0 > 255) { 25973 i11 = i3 + 12 | 0; 25974 i8 = HEAP32[(HEAP32[i11 >> 2] | 0) + 52 >> 2] | 0; 25975 i13 = HEAP32[i5 + 64 >> 2] | 0; 25976 if ((i13 | 0) == 0) { 25977 i15 = 6552; 25978 HEAP32[i12 >> 2] = 6880; 25979 i14 = i12 + 4 | 0; 25980 HEAP32[i14 >> 2] = 255; 25981 i14 = i12 + 8 | 0; 25982 HEAP32[i14 >> 2] = i15; 25983 i14 = _luaO_pushfstring(i8, 6592, i12) | 0; 25984 i15 = HEAP32[i11 >> 2] | 0; 25985 _luaX_syntaxerror(i15, i14); 25986 } 25987 HEAP32[i12 >> 2] = i13; 25988 i14 = _luaO_pushfstring(i8, 6568, i12) | 0; 25989 HEAP32[i12 >> 2] = 6880; 25990 i15 = i12 + 4 | 0; 25991 HEAP32[i15 >> 2] = 255; 25992 i15 = i12 + 8 | 0; 25993 HEAP32[i15 >> 2] = i14; 25994 i15 = _luaO_pushfstring(i8, 6592, i12) | 0; 25995 i14 = HEAP32[i11 >> 2] | 0; 25996 _luaX_syntaxerror(i14, i15); 25997 } 25998 if ((i10 | 0) < (i7 | 0)) { 25999 i8 = i7; 26000 } else { 26001 i8 = i5 + 28 | 0; 26002 HEAP32[i8 >> 2] = _luaM_growaux_(HEAP32[(HEAP32[i3 + 12 >> 2] | 0) + 52 >> 2] | 0, HEAP32[i8 >> 2] | 0, i9, 8, 255, 6880) | 0; 26003 i8 = HEAP32[i9 >> 2] | 0; 26004 } 26005 i9 = i5 + 28 | 0; 26006 if ((i7 | 0) < (i8 | 0)) { 26007 while (1) { 26008 i10 = i7 + 1 | 0; 26009 HEAP32[(HEAP32[i9 >> 2] | 0) + (i7 << 3) >> 2] = 0; 26010 if ((i10 | 0) < (i8 | 0)) { 26011 i7 = i10; 26012 } else { 26013 break; 26014 } 26015 } 26016 } 26017 HEAP8[(HEAP32[i9 >> 2] | 0) + ((HEAPU8[i6] | 0) << 3) + 4 | 0] = (HEAP32[i2 >> 2] | 0) == 7 | 0; 26018 HEAP8[(HEAP32[i9 >> 2] | 0) + ((HEAPU8[i6] | 0) << 3) + 5 | 0] = HEAP32[i2 + 8 >> 2]; 26019 HEAP32[(HEAP32[i9 >> 2] | 0) + ((HEAPU8[i6] | 0) << 3) >> 2] = i1; 26020 if ((HEAP8[i1 + 5 | 0] & 3) == 0) { 26021 i15 = HEAP8[i6] | 0; 26022 i14 = i15 + 1 << 24 >> 24; 26023 HEAP8[i6] = i14; 26024 i15 = i15 & 255; 26025 STACKTOP = i4; 26026 return i15 | 0; 26027 } 26028 if ((HEAP8[i5 + 5 | 0] & 4) == 0) { 26029 i15 = HEAP8[i6] | 0; 26030 i14 = i15 + 1 << 24 >> 24; 26031 HEAP8[i6] = i14; 26032 i15 = i15 & 255; 26033 STACKTOP = i4; 26034 return i15 | 0; 26035 } 26036 _luaC_barrier_(HEAP32[(HEAP32[i3 + 12 >> 2] | 0) + 52 >> 2] | 0, i5, i1); 26037 i15 = HEAP8[i6] | 0; 26038 i14 = i15 + 1 << 24 >> 24; 26039 HEAP8[i6] = i14; 26040 i15 = i15 & 255; 26041 STACKTOP = i4; 26042 return i15 | 0; 26043 } 26044 function _close_func(i1) { 26045 i1 = i1 | 0; 26046 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0; 26047 i6 = STACKTOP; 26048 i2 = HEAP32[i1 + 52 >> 2] | 0; 26049 i5 = i1 + 48 | 0; 26050 i4 = HEAP32[i5 >> 2] | 0; 26051 i3 = HEAP32[i4 >> 2] | 0; 26052 _luaK_ret(i4, 0, 0); 26053 _leaveblock(i4); 26054 i7 = i4 + 20 | 0; 26055 i8 = HEAP32[i7 >> 2] | 0; 26056 if ((i8 + 1 | 0) >>> 0 > 1073741823) { 26057 _luaM_toobig(i2); 26058 } 26059 i10 = i3 + 12 | 0; 26060 i9 = i3 + 48 | 0; 26061 HEAP32[i10 >> 2] = _luaM_realloc_(i2, HEAP32[i10 >> 2] | 0, HEAP32[i9 >> 2] << 2, i8 << 2) | 0; 26062 HEAP32[i9 >> 2] = HEAP32[i7 >> 2]; 26063 i8 = HEAP32[i7 >> 2] | 0; 26064 if ((i8 + 1 | 0) >>> 0 > 1073741823) { 26065 _luaM_toobig(i2); 26066 } 26067 i9 = i3 + 20 | 0; 26068 i10 = i3 + 52 | 0; 26069 HEAP32[i9 >> 2] = _luaM_realloc_(i2, HEAP32[i9 >> 2] | 0, HEAP32[i10 >> 2] << 2, i8 << 2) | 0; 26070 HEAP32[i10 >> 2] = HEAP32[i7 >> 2]; 26071 i8 = i4 + 32 | 0; 26072 i7 = HEAP32[i8 >> 2] | 0; 26073 if ((i7 + 1 | 0) >>> 0 > 268435455) { 26074 _luaM_toobig(i2); 26075 } 26076 i9 = i3 + 8 | 0; 26077 i10 = i3 + 44 | 0; 26078 HEAP32[i9 >> 2] = _luaM_realloc_(i2, HEAP32[i9 >> 2] | 0, HEAP32[i10 >> 2] << 4, i7 << 4) | 0; 26079 HEAP32[i10 >> 2] = HEAP32[i8 >> 2]; 26080 i8 = i4 + 36 | 0; 26081 i7 = HEAP32[i8 >> 2] | 0; 26082 if ((i7 + 1 | 0) >>> 0 > 1073741823) { 26083 _luaM_toobig(i2); 26084 } 26085 i9 = i3 + 16 | 0; 26086 i10 = i3 + 56 | 0; 26087 HEAP32[i9 >> 2] = _luaM_realloc_(i2, HEAP32[i9 >> 2] | 0, HEAP32[i10 >> 2] << 2, i7 << 2) | 0; 26088 HEAP32[i10 >> 2] = HEAP32[i8 >> 2]; 26089 i7 = i4 + 44 | 0; 26090 i8 = HEAP16[i7 >> 1] | 0; 26091 if ((i8 + 1 | 0) >>> 0 > 357913941) { 26092 _luaM_toobig(i2); 26093 } 26094 i10 = i3 + 24 | 0; 26095 i9 = i3 + 60 | 0; 26096 HEAP32[i10 >> 2] = _luaM_realloc_(i2, HEAP32[i10 >> 2] | 0, (HEAP32[i9 >> 2] | 0) * 12 | 0, i8 * 12 | 0) | 0; 26097 HEAP32[i9 >> 2] = HEAP16[i7 >> 1] | 0; 26098 i9 = i4 + 47 | 0; 26099 i8 = i3 + 28 | 0; 26100 i10 = i3 + 40 | 0; 26101 HEAP32[i8 >> 2] = _luaM_realloc_(i2, HEAP32[i8 >> 2] | 0, HEAP32[i10 >> 2] << 3, HEAPU8[i9] << 3) | 0; 26102 HEAP32[i10 >> 2] = HEAPU8[i9] | 0; 26103 HEAP32[i5 >> 2] = HEAP32[i4 + 8 >> 2]; 26104 if (((HEAP32[i1 + 16 >> 2] | 0) + -288 | 0) >>> 0 < 2) { 26105 i10 = HEAP32[i1 + 24 >> 2] | 0; 26106 _luaX_newstring(i1, i10 + 16 | 0, HEAP32[i10 + 12 >> 2] | 0) | 0; 26107 } 26108 i10 = i2 + 8 | 0; 26109 HEAP32[i10 >> 2] = (HEAP32[i10 >> 2] | 0) + -16; 26110 if ((HEAP32[(HEAP32[i2 + 12 >> 2] | 0) + 12 >> 2] | 0) <= 0) { 26111 STACKTOP = i6; 26112 return; 26113 } 26114 _luaC_step(i2); 26115 STACKTOP = i6; 26116 return; 26117 } 26118 function _lua_topointer(i3, i6) { 26119 i3 = i3 | 0; 26120 i6 = i6 | 0; 26121 var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0; 26122 i1 = STACKTOP; 26123 i4 = HEAP32[i3 + 16 >> 2] | 0; 26124 i5 = (i6 | 0) > 0; 26125 do { 26126 if (!i5) { 26127 if (!((i6 | 0) < -1000999)) { 26128 i7 = (HEAP32[i3 + 8 >> 2] | 0) + (i6 << 4) | 0; 26129 break; 26130 } 26131 if ((i6 | 0) == -1001e3) { 26132 i7 = (HEAP32[i3 + 12 >> 2] | 0) + 40 | 0; 26133 break; 26134 } 26135 i8 = -1001e3 - i6 | 0; 26136 i9 = HEAP32[i4 >> 2] | 0; 26137 if ((HEAP32[i9 + 8 >> 2] | 0) != 22 ? (i7 = HEAP32[i9 >> 2] | 0, (i8 | 0) <= (HEAPU8[i7 + 6 | 0] | 0 | 0)) : 0) { 26138 i7 = i7 + (i8 + -1 << 4) + 16 | 0; 26139 } else { 26140 i7 = 5192; 26141 } 26142 } else { 26143 i7 = (HEAP32[i4 >> 2] | 0) + (i6 << 4) | 0; 26144 i7 = i7 >>> 0 < (HEAP32[i3 + 8 >> 2] | 0) >>> 0 ? i7 : 5192; 26145 } 26146 } while (0); 26147 switch (HEAP32[i7 + 8 >> 2] & 63 | 0) { 26148 case 22: 26149 { 26150 i9 = HEAP32[i7 >> 2] | 0; 26151 STACKTOP = i1; 26152 return i9 | 0; 26153 } 26154 case 2: 26155 case 7: 26156 { 26157 do { 26158 if (!i5) { 26159 if (!((i6 | 0) < -1000999)) { 26160 i2 = (HEAP32[i3 + 8 >> 2] | 0) + (i6 << 4) | 0; 26161 break; 26162 } 26163 if ((i6 | 0) == -1001e3) { 26164 i2 = (HEAP32[i3 + 12 >> 2] | 0) + 40 | 0; 26165 break; 26166 } 26167 i3 = -1001e3 - i6 | 0; 26168 i4 = HEAP32[i4 >> 2] | 0; 26169 if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i2 = HEAP32[i4 >> 2] | 0, (i3 | 0) <= (HEAPU8[i2 + 6 | 0] | 0 | 0)) : 0) { 26170 i2 = i2 + (i3 + -1 << 4) + 16 | 0; 26171 } else { 26172 i2 = 5192; 26173 } 26174 } else { 26175 i2 = (HEAP32[i4 >> 2] | 0) + (i6 << 4) | 0; 26176 i2 = i2 >>> 0 < (HEAP32[i3 + 8 >> 2] | 0) >>> 0 ? i2 : 5192; 26177 } 26178 } while (0); 26179 i3 = HEAP32[i2 + 8 >> 2] & 15; 26180 if ((i3 | 0) == 7) { 26181 i9 = (HEAP32[i2 >> 2] | 0) + 24 | 0; 26182 STACKTOP = i1; 26183 return i9 | 0; 26184 } else if ((i3 | 0) == 2) { 26185 i9 = HEAP32[i2 >> 2] | 0; 26186 STACKTOP = i1; 26187 return i9 | 0; 26188 } else { 26189 i9 = 0; 26190 STACKTOP = i1; 26191 return i9 | 0; 26192 } 26193 } 26194 case 8: 26195 { 26196 i9 = HEAP32[i7 >> 2] | 0; 26197 STACKTOP = i1; 26198 return i9 | 0; 26199 } 26200 case 5: 26201 { 26202 i9 = HEAP32[i7 >> 2] | 0; 26203 STACKTOP = i1; 26204 return i9 | 0; 26205 } 26206 case 38: 26207 { 26208 i9 = HEAP32[i7 >> 2] | 0; 26209 STACKTOP = i1; 26210 return i9 | 0; 26211 } 26212 case 6: 26213 { 26214 i9 = HEAP32[i7 >> 2] | 0; 26215 STACKTOP = i1; 26216 return i9 | 0; 26217 } 26218 default: 26219 { 26220 i9 = 0; 26221 STACKTOP = i1; 26222 return i9 | 0; 26223 } 26224 } 26225 return 0; 26226 } 26227 function _luaH_get(i4, i6) { 26228 i4 = i4 | 0; 26229 i6 = i6 | 0; 26230 var i1 = 0, i2 = 0, i3 = 0, d5 = 0.0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, d11 = 0.0; 26231 i3 = STACKTOP; 26232 STACKTOP = STACKTOP + 16 | 0; 26233 i8 = i3 + 8 | 0; 26234 i9 = i3; 26235 i7 = i6 + 8 | 0; 26236 i10 = HEAP32[i7 >> 2] & 63; 26237 if ((i10 | 0) == 4) { 26238 i6 = HEAP32[i6 >> 2] | 0; 26239 i7 = (HEAP32[i4 + 16 >> 2] | 0) + (((1 << (HEAPU8[i4 + 7 | 0] | 0)) + -1 & HEAP32[i6 + 8 >> 2]) << 5) | 0; 26240 while (1) { 26241 if ((HEAP32[i7 + 24 >> 2] | 0) == 68 ? (HEAP32[i7 + 16 >> 2] | 0) == (i6 | 0) : 0) { 26242 break; 26243 } 26244 i4 = HEAP32[i7 + 28 >> 2] | 0; 26245 if ((i4 | 0) == 0) { 26246 i2 = 5192; 26247 i1 = 22; 26248 break; 26249 } else { 26250 i7 = i4; 26251 } 26252 } 26253 if ((i1 | 0) == 22) { 26254 STACKTOP = i3; 26255 return i2 | 0; 26256 } 26257 i10 = i7; 26258 STACKTOP = i3; 26259 return i10 | 0; 26260 } else if ((i10 | 0) == 3) { 26261 d11 = +HEAPF64[i6 >> 3]; 26262 HEAPF64[i9 >> 3] = d11 + 6755399441055744.0; 26263 i9 = HEAP32[i9 >> 2] | 0; 26264 d5 = +(i9 | 0); 26265 if (d5 == d11) { 26266 i6 = i9 + -1 | 0; 26267 if (i6 >>> 0 < (HEAP32[i4 + 28 >> 2] | 0) >>> 0) { 26268 i10 = (HEAP32[i4 + 12 >> 2] | 0) + (i6 << 4) | 0; 26269 STACKTOP = i3; 26270 return i10 | 0; 26271 } 26272 HEAPF64[i8 >> 3] = d5 + 1.0; 26273 i6 = (HEAP32[i8 + 4 >> 2] | 0) + (HEAP32[i8 >> 2] | 0) | 0; 26274 if ((i6 | 0) < 0) { 26275 i7 = 0 - i6 | 0; 26276 i6 = (i6 | 0) == (i7 | 0) ? 0 : i7; 26277 } 26278 i4 = (HEAP32[i4 + 16 >> 2] | 0) + (((i6 | 0) % ((1 << (HEAPU8[i4 + 7 | 0] | 0)) + -1 | 1 | 0) | 0) << 5) | 0; 26279 while (1) { 26280 if ((HEAP32[i4 + 24 >> 2] | 0) == 3 ? +HEAPF64[i4 + 16 >> 3] == d5 : 0) { 26281 break; 26282 } 26283 i6 = HEAP32[i4 + 28 >> 2] | 0; 26284 if ((i6 | 0) == 0) { 26285 i2 = 5192; 26286 i1 = 22; 26287 break; 26288 } else { 26289 i4 = i6; 26290 } 26291 } 26292 if ((i1 | 0) == 22) { 26293 STACKTOP = i3; 26294 return i2 | 0; 26295 } 26296 i10 = i4; 26297 STACKTOP = i3; 26298 return i10 | 0; 26299 } 26300 } else if ((i10 | 0) == 0) { 26301 i10 = 5192; 26302 STACKTOP = i3; 26303 return i10 | 0; 26304 } 26305 i8 = _mainposition(i4, i6) | 0; 26306 while (1) { 26307 if ((HEAP32[i8 + 24 >> 2] | 0) == (HEAP32[i7 >> 2] | 0) ? (_luaV_equalobj_(0, i8 + 16 | 0, i6) | 0) != 0 : 0) { 26308 break; 26309 } 26310 i4 = HEAP32[i8 + 28 >> 2] | 0; 26311 if ((i4 | 0) == 0) { 26312 i2 = 5192; 26313 i1 = 22; 26314 break; 26315 } else { 26316 i8 = i4; 26317 } 26318 } 26319 if ((i1 | 0) == 22) { 26320 STACKTOP = i3; 26321 return i2 | 0; 26322 } 26323 i10 = i8; 26324 STACKTOP = i3; 26325 return i10 | 0; 26326 } 26327 function _suffixedexp(i1, i8) { 26328 i1 = i1 | 0; 26329 i8 = i8 | 0; 26330 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0; 26331 i2 = STACKTOP; 26332 STACKTOP = STACKTOP + 80 | 0; 26333 i10 = i2 + 48 | 0; 26334 i3 = i2 + 24 | 0; 26335 i6 = i2; 26336 i4 = i1 + 48 | 0; 26337 i9 = HEAP32[i4 >> 2] | 0; 26338 i5 = HEAP32[i1 + 4 >> 2] | 0; 26339 i7 = i1 + 16 | 0; 26340 i12 = HEAP32[i7 >> 2] | 0; 26341 if ((i12 | 0) == 40) { 26342 _luaX_next(i1); 26343 _subexpr(i1, i8, 0) | 0; 26344 _check_match(i1, 41, 40, i5); 26345 _luaK_dischargevars(HEAP32[i4 >> 2] | 0, i8); 26346 i11 = i1 + 24 | 0; 26347 } else if ((i12 | 0) == 288) { 26348 i11 = i1 + 24 | 0; 26349 i13 = HEAP32[i11 >> 2] | 0; 26350 _luaX_next(i1); 26351 i12 = HEAP32[i4 >> 2] | 0; 26352 if ((_singlevaraux(i12, i13, i8, 1) | 0) == 0) { 26353 _singlevaraux(i12, HEAP32[i1 + 72 >> 2] | 0, i8, 1) | 0; 26354 i13 = _luaK_stringK(HEAP32[i4 >> 2] | 0, i13) | 0; 26355 HEAP32[i10 + 16 >> 2] = -1; 26356 HEAP32[i10 + 20 >> 2] = -1; 26357 HEAP32[i10 >> 2] = 4; 26358 HEAP32[i10 + 8 >> 2] = i13; 26359 _luaK_indexed(i12, i8, i10); 26360 } 26361 } else { 26362 _luaX_syntaxerror(i1, 6656); 26363 } 26364 i10 = i6 + 16 | 0; 26365 i12 = i6 + 20 | 0; 26366 i13 = i6 + 8 | 0; 26367 L7 : while (1) { 26368 switch (HEAP32[i7 >> 2] | 0) { 26369 case 46: 26370 { 26371 _fieldsel(i1, i8); 26372 continue L7; 26373 } 26374 case 91: 26375 { 26376 _luaK_exp2anyregup(i9, i8); 26377 _luaX_next(i1); 26378 _subexpr(i1, i3, 0) | 0; 26379 _luaK_exp2val(HEAP32[i4 >> 2] | 0, i3); 26380 if ((HEAP32[i7 >> 2] | 0) != 93) { 26381 i3 = 10; 26382 break L7; 26383 } 26384 _luaX_next(i1); 26385 _luaK_indexed(i9, i8, i3); 26386 continue L7; 26387 } 26388 case 58: 26389 { 26390 _luaX_next(i1); 26391 if ((HEAP32[i7 >> 2] | 0) != 288) { 26392 i3 = 13; 26393 break L7; 26394 } 26395 i14 = HEAP32[i11 >> 2] | 0; 26396 _luaX_next(i1); 26397 i14 = _luaK_stringK(HEAP32[i4 >> 2] | 0, i14) | 0; 26398 HEAP32[i10 >> 2] = -1; 26399 HEAP32[i12 >> 2] = -1; 26400 HEAP32[i6 >> 2] = 4; 26401 HEAP32[i13 >> 2] = i14; 26402 _luaK_self(i9, i8, i6); 26403 _funcargs(i1, i8, i5); 26404 continue L7; 26405 } 26406 case 123: 26407 case 289: 26408 case 40: 26409 { 26410 _luaK_exp2nextreg(i9, i8); 26411 _funcargs(i1, i8, i5); 26412 continue L7; 26413 } 26414 default: 26415 { 26416 i3 = 16; 26417 break L7; 26418 } 26419 } 26420 } 26421 if ((i3 | 0) == 10) { 26422 _error_expected(i1, 93); 26423 } else if ((i3 | 0) == 13) { 26424 _error_expected(i1, 288); 26425 } else if ((i3 | 0) == 16) { 26426 STACKTOP = i2; 26427 return; 26428 } 26429 } 26430 function _luaK_patchlist(i2, i7, i3) { 26431 i2 = i2 | 0; 26432 i7 = i7 | 0; 26433 i3 = i3 | 0; 26434 var i1 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0; 26435 i1 = STACKTOP; 26436 if ((HEAP32[i2 + 20 >> 2] | 0) == (i3 | 0)) { 26437 HEAP32[i2 + 24 >> 2] = i3; 26438 i3 = i2 + 28 | 0; 26439 if ((i7 | 0) == -1) { 26440 STACKTOP = i1; 26441 return; 26442 } 26443 i6 = HEAP32[i3 >> 2] | 0; 26444 if ((i6 | 0) == -1) { 26445 HEAP32[i3 >> 2] = i7; 26446 STACKTOP = i1; 26447 return; 26448 } 26449 i5 = HEAP32[(HEAP32[i2 >> 2] | 0) + 12 >> 2] | 0; 26450 while (1) { 26451 i3 = i5 + (i6 << 2) | 0; 26452 i4 = HEAP32[i3 >> 2] | 0; 26453 i8 = (i4 >>> 14) + -131071 | 0; 26454 if ((i8 | 0) == -1) { 26455 break; 26456 } 26457 i8 = i6 + 1 + i8 | 0; 26458 if ((i8 | 0) == -1) { 26459 break; 26460 } else { 26461 i6 = i8; 26462 } 26463 } 26464 i5 = ~i6 + i7 | 0; 26465 if ((((i5 | 0) > -1 ? i5 : 0 - i5 | 0) | 0) > 131071) { 26466 _luaX_syntaxerror(HEAP32[i2 + 12 >> 2] | 0, 10624); 26467 } 26468 HEAP32[i3 >> 2] = (i5 << 14) + 2147467264 | i4 & 16383; 26469 STACKTOP = i1; 26470 return; 26471 } 26472 if ((i7 | 0) == -1) { 26473 STACKTOP = i1; 26474 return; 26475 } 26476 i6 = HEAP32[(HEAP32[i2 >> 2] | 0) + 12 >> 2] | 0; 26477 i10 = i7; 26478 while (1) { 26479 i7 = i6 + (i10 << 2) | 0; 26480 i9 = HEAP32[i7 >> 2] | 0; 26481 i8 = (i9 >>> 14) + -131071 | 0; 26482 if ((i8 | 0) == -1) { 26483 i8 = -1; 26484 } else { 26485 i8 = i10 + 1 + i8 | 0; 26486 } 26487 if ((i10 | 0) > 0 ? (i4 = i6 + (i10 + -1 << 2) | 0, i5 = HEAP32[i4 >> 2] | 0, (HEAP8[5584 + (i5 & 63) | 0] | 0) < 0) : 0) { 26488 i12 = i4; 26489 i11 = i5; 26490 } else { 26491 i12 = i7; 26492 i11 = i9; 26493 } 26494 if ((i11 & 63 | 0) == 28) { 26495 HEAP32[i12 >> 2] = i11 & 8372224 | i11 >>> 23 << 6 | 27; 26496 i9 = ~i10 + i3 | 0; 26497 if ((((i9 | 0) > -1 ? i9 : 0 - i9 | 0) | 0) > 131071) { 26498 i3 = 20; 26499 break; 26500 } 26501 i9 = HEAP32[i7 >> 2] & 16383 | (i9 << 14) + 2147467264; 26502 } else { 26503 i10 = ~i10 + i3 | 0; 26504 if ((((i10 | 0) > -1 ? i10 : 0 - i10 | 0) | 0) > 131071) { 26505 i3 = 23; 26506 break; 26507 } 26508 i9 = i9 & 16383 | (i10 << 14) + 2147467264; 26509 } 26510 HEAP32[i7 >> 2] = i9; 26511 if ((i8 | 0) == -1) { 26512 i3 = 26; 26513 break; 26514 } else { 26515 i10 = i8; 26516 } 26517 } 26518 if ((i3 | 0) == 20) { 26519 _luaX_syntaxerror(HEAP32[i2 + 12 >> 2] | 0, 10624); 26520 } else if ((i3 | 0) == 23) { 26521 _luaX_syntaxerror(HEAP32[i2 + 12 >> 2] | 0, 10624); 26522 } else if ((i3 | 0) == 26) { 26523 STACKTOP = i1; 26524 return; 26525 } 26526 } 26527 function _luaG_typeerror(i5, i6, i1) { 26528 i5 = i5 | 0; 26529 i6 = i6 | 0; 26530 i1 = i1 | 0; 26531 var i2 = 0, i3 = 0, i4 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0; 26532 i2 = STACKTOP; 26533 STACKTOP = STACKTOP + 32 | 0; 26534 i3 = i2; 26535 i2 = i2 + 16 | 0; 26536 i8 = HEAP32[i5 + 16 >> 2] | 0; 26537 HEAP32[i2 >> 2] = 0; 26538 i4 = HEAP32[8528 + ((HEAP32[i6 + 8 >> 2] & 15) + 1 << 2) >> 2] | 0; 26539 L1 : do { 26540 if (!((HEAP8[i8 + 18 | 0] & 1) == 0)) { 26541 i7 = HEAP32[HEAP32[i8 >> 2] >> 2] | 0; 26542 i10 = HEAP8[i7 + 6 | 0] | 0; 26543 L3 : do { 26544 if (!(i10 << 24 >> 24 == 0)) { 26545 i9 = i7 + 16 | 0; 26546 i11 = i10 & 255; 26547 i10 = 0; 26548 while (1) { 26549 i12 = i10 + 1 | 0; 26550 if ((HEAP32[(HEAP32[i9 + (i10 << 2) >> 2] | 0) + 8 >> 2] | 0) == (i6 | 0)) { 26551 break; 26552 } 26553 if ((i12 | 0) < (i11 | 0)) { 26554 i10 = i12; 26555 } else { 26556 break L3; 26557 } 26558 } 26559 i9 = HEAP32[(HEAP32[(HEAP32[i7 + 12 >> 2] | 0) + 28 >> 2] | 0) + (i10 << 3) >> 2] | 0; 26560 if ((i9 | 0) == 0) { 26561 i9 = 2104; 26562 } else { 26563 i9 = i9 + 16 | 0; 26564 } 26565 HEAP32[i2 >> 2] = i9; 26566 i11 = i9; 26567 i10 = 2072; 26568 HEAP32[i3 >> 2] = i1; 26569 i12 = i3 + 4 | 0; 26570 HEAP32[i12 >> 2] = i10; 26571 i12 = i3 + 8 | 0; 26572 HEAP32[i12 >> 2] = i11; 26573 i12 = i3 + 12 | 0; 26574 HEAP32[i12 >> 2] = i4; 26575 _luaG_runerror(i5, 1840, i3); 26576 } 26577 } while (0); 26578 i9 = HEAP32[i8 + 24 >> 2] | 0; 26579 i10 = HEAP32[i8 + 4 >> 2] | 0; 26580 if (i9 >>> 0 < i10 >>> 0) { 26581 i12 = i9; 26582 while (1) { 26583 i11 = i12 + 16 | 0; 26584 if ((i12 | 0) == (i6 | 0)) { 26585 break; 26586 } 26587 if (i11 >>> 0 < i10 >>> 0) { 26588 i12 = i11; 26589 } else { 26590 break L1; 26591 } 26592 } 26593 i12 = HEAP32[i7 + 12 >> 2] | 0; 26594 i6 = _getobjname(i12, ((HEAP32[i8 + 28 >> 2] | 0) - (HEAP32[i12 + 12 >> 2] | 0) >> 2) + -1 | 0, i6 - i9 >> 4, i2) | 0; 26595 if ((i6 | 0) != 0) { 26596 i11 = HEAP32[i2 >> 2] | 0; 26597 i10 = i6; 26598 HEAP32[i3 >> 2] = i1; 26599 i12 = i3 + 4 | 0; 26600 HEAP32[i12 >> 2] = i10; 26601 i12 = i3 + 8 | 0; 26602 HEAP32[i12 >> 2] = i11; 26603 i12 = i3 + 12 | 0; 26604 HEAP32[i12 >> 2] = i4; 26605 _luaG_runerror(i5, 1840, i3); 26606 } 26607 } 26608 } 26609 } while (0); 26610 HEAP32[i3 >> 2] = i1; 26611 HEAP32[i3 + 4 >> 2] = i4; 26612 _luaG_runerror(i5, 1880, i3); 26613 } 26614 function _lua_setmetatable(i1, i7) { 26615 i1 = i1 | 0; 26616 i7 = i7 | 0; 26617 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0; 26618 i4 = STACKTOP; 26619 i6 = HEAP32[i1 + 16 >> 2] | 0; 26620 do { 26621 if ((i7 | 0) <= 0) { 26622 if (!((i7 | 0) < -1000999)) { 26623 i5 = (HEAP32[i1 + 8 >> 2] | 0) + (i7 << 4) | 0; 26624 break; 26625 } 26626 if ((i7 | 0) == -1001e3) { 26627 i5 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0; 26628 break; 26629 } 26630 i7 = -1001e3 - i7 | 0; 26631 i6 = HEAP32[i6 >> 2] | 0; 26632 if ((HEAP32[i6 + 8 >> 2] | 0) != 22 ? (i5 = HEAP32[i6 >> 2] | 0, (i7 | 0) <= (HEAPU8[i5 + 6 | 0] | 0 | 0)) : 0) { 26633 i5 = i5 + (i7 + -1 << 4) + 16 | 0; 26634 } else { 26635 i5 = 5192; 26636 } 26637 } else { 26638 i5 = (HEAP32[i6 >> 2] | 0) + (i7 << 4) | 0; 26639 i5 = i5 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i5 : 5192; 26640 } 26641 } while (0); 26642 i6 = i1 + 8 | 0; 26643 i7 = HEAP32[i6 >> 2] | 0; 26644 if ((HEAP32[i7 + -8 >> 2] | 0) == 0) { 26645 i7 = 0; 26646 } else { 26647 i7 = HEAP32[i7 + -16 >> 2] | 0; 26648 } 26649 i8 = HEAP32[i5 + 8 >> 2] & 15; 26650 if ((i8 | 0) == 5) { 26651 HEAP32[(HEAP32[i5 >> 2] | 0) + 8 >> 2] = i7; 26652 if ((i7 | 0) == 0) { 26653 i8 = HEAP32[i6 >> 2] | 0; 26654 i8 = i8 + -16 | 0; 26655 HEAP32[i6 >> 2] = i8; 26656 STACKTOP = i4; 26657 return 1; 26658 } 26659 if (!((HEAP8[i7 + 5 | 0] & 3) == 0) ? (i2 = HEAP32[i5 >> 2] | 0, !((HEAP8[i2 + 5 | 0] & 4) == 0)) : 0) { 26660 _luaC_barrierback_(i1, i2); 26661 } 26662 _luaC_checkfinalizer(i1, HEAP32[i5 >> 2] | 0, i7); 26663 i8 = HEAP32[i6 >> 2] | 0; 26664 i8 = i8 + -16 | 0; 26665 HEAP32[i6 >> 2] = i8; 26666 STACKTOP = i4; 26667 return 1; 26668 } else if ((i8 | 0) == 7) { 26669 HEAP32[(HEAP32[i5 >> 2] | 0) + 8 >> 2] = i7; 26670 if ((i7 | 0) == 0) { 26671 i8 = HEAP32[i6 >> 2] | 0; 26672 i8 = i8 + -16 | 0; 26673 HEAP32[i6 >> 2] = i8; 26674 STACKTOP = i4; 26675 return 1; 26676 } 26677 if (!((HEAP8[i7 + 5 | 0] & 3) == 0) ? (i3 = HEAP32[i5 >> 2] | 0, !((HEAP8[i3 + 5 | 0] & 4) == 0)) : 0) { 26678 _luaC_barrier_(i1, i3, i7); 26679 } 26680 _luaC_checkfinalizer(i1, HEAP32[i5 >> 2] | 0, i7); 26681 i8 = HEAP32[i6 >> 2] | 0; 26682 i8 = i8 + -16 | 0; 26683 HEAP32[i6 >> 2] = i8; 26684 STACKTOP = i4; 26685 return 1; 26686 } else { 26687 HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + (i8 << 2) + 252 >> 2] = i7; 26688 i8 = HEAP32[i6 >> 2] | 0; 26689 i8 = i8 + -16 | 0; 26690 HEAP32[i6 >> 2] = i8; 26691 STACKTOP = i4; 26692 return 1; 26693 } 26694 return 0; 26695 } 26696 function _recfield(i2, i10) { 26697 i2 = i2 | 0; 26698 i10 = i10 | 0; 26699 var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0; 26700 i1 = STACKTOP; 26701 STACKTOP = STACKTOP + 64 | 0; 26702 i9 = i1 + 48 | 0; 26703 i6 = i1 + 24 | 0; 26704 i3 = i1; 26705 i13 = i2 + 48 | 0; 26706 i8 = HEAP32[i13 >> 2] | 0; 26707 i5 = i8 + 48 | 0; 26708 i4 = HEAP8[i5] | 0; 26709 i7 = i2 + 16 | 0; 26710 do { 26711 if ((HEAP32[i7 >> 2] | 0) != 288) { 26712 _luaX_next(i2); 26713 _subexpr(i2, i6, 0) | 0; 26714 _luaK_exp2val(HEAP32[i13 >> 2] | 0, i6); 26715 if ((HEAP32[i7 >> 2] | 0) == 93) { 26716 _luaX_next(i2); 26717 i11 = i10 + 28 | 0; 26718 break; 26719 } else { 26720 _error_expected(i2, 93); 26721 } 26722 } else { 26723 i12 = i10 + 28 | 0; 26724 if ((HEAP32[i12 >> 2] | 0) <= 2147483645) { 26725 i11 = HEAP32[i2 + 24 >> 2] | 0; 26726 _luaX_next(i2); 26727 i11 = _luaK_stringK(HEAP32[i13 >> 2] | 0, i11) | 0; 26728 HEAP32[i6 + 16 >> 2] = -1; 26729 HEAP32[i6 + 20 >> 2] = -1; 26730 HEAP32[i6 >> 2] = 4; 26731 HEAP32[i6 + 8 >> 2] = i11; 26732 i11 = i12; 26733 break; 26734 } 26735 i14 = i8 + 12 | 0; 26736 i13 = HEAP32[(HEAP32[i14 >> 2] | 0) + 52 >> 2] | 0; 26737 i12 = HEAP32[(HEAP32[i8 >> 2] | 0) + 64 >> 2] | 0; 26738 if ((i12 | 0) == 0) { 26739 i16 = 6552; 26740 HEAP32[i9 >> 2] = 6528; 26741 i15 = i9 + 4 | 0; 26742 HEAP32[i15 >> 2] = 2147483645; 26743 i15 = i9 + 8 | 0; 26744 HEAP32[i15 >> 2] = i16; 26745 i15 = _luaO_pushfstring(i13, 6592, i9) | 0; 26746 i16 = HEAP32[i14 >> 2] | 0; 26747 _luaX_syntaxerror(i16, i15); 26748 } 26749 HEAP32[i9 >> 2] = i12; 26750 i15 = _luaO_pushfstring(i13, 6568, i9) | 0; 26751 HEAP32[i9 >> 2] = 6528; 26752 i16 = i9 + 4 | 0; 26753 HEAP32[i16 >> 2] = 2147483645; 26754 i16 = i9 + 8 | 0; 26755 HEAP32[i16 >> 2] = i15; 26756 i16 = _luaO_pushfstring(i13, 6592, i9) | 0; 26757 i15 = HEAP32[i14 >> 2] | 0; 26758 _luaX_syntaxerror(i15, i16); 26759 } 26760 } while (0); 26761 HEAP32[i11 >> 2] = (HEAP32[i11 >> 2] | 0) + 1; 26762 if ((HEAP32[i7 >> 2] | 0) == 61) { 26763 _luaX_next(i2); 26764 i16 = _luaK_exp2RK(i8, i6) | 0; 26765 _subexpr(i2, i3, 0) | 0; 26766 i15 = HEAP32[(HEAP32[i10 + 24 >> 2] | 0) + 8 >> 2] | 0; 26767 _luaK_codeABC(i8, 10, i15, i16, _luaK_exp2RK(i8, i3) | 0) | 0; 26768 HEAP8[i5] = i4; 26769 STACKTOP = i1; 26770 return; 26771 } else { 26772 _error_expected(i2, 61); 26773 } 26774 } 26775 function _lua_newstate(i3, i6) { 26776 i3 = i3 | 0; 26777 i6 = i6 | 0; 26778 var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i7 = 0; 26779 i1 = STACKTOP; 26780 STACKTOP = STACKTOP + 32 | 0; 26781 i5 = i1 + 8 | 0; 26782 i4 = i1; 26783 i2 = FUNCTION_TABLE_iiiii[i3 & 3](i6, 0, 8, 400) | 0; 26784 if ((i2 | 0) == 0) { 26785 i6 = 0; 26786 STACKTOP = i1; 26787 return i6 | 0; 26788 } 26789 i7 = i2 + 112 | 0; 26790 HEAP32[i2 >> 2] = 0; 26791 HEAP8[i2 + 4 | 0] = 8; 26792 HEAP8[i2 + 172 | 0] = 33; 26793 HEAP8[i2 + 5 | 0] = 1; 26794 HEAP8[i2 + 174 | 0] = 0; 26795 HEAP32[i2 + 12 >> 2] = i7; 26796 HEAP32[i2 + 28 >> 2] = 0; 26797 HEAP32[i2 + 16 >> 2] = 0; 26798 HEAP32[i2 + 32 >> 2] = 0; 26799 HEAP32[i2 + 64 >> 2] = 0; 26800 HEAP16[i2 + 38 >> 1] = 0; 26801 HEAP32[i2 + 52 >> 2] = 0; 26802 HEAP8[i2 + 40 | 0] = 0; 26803 HEAP32[i2 + 44 >> 2] = 0; 26804 HEAP8[i2 + 41 | 0] = 1; 26805 HEAP32[i2 + 48 >> 2] = 0; 26806 HEAP32[i2 + 56 >> 2] = 0; 26807 HEAP16[i2 + 36 >> 1] = 1; 26808 HEAP8[i2 + 6 | 0] = 0; 26809 HEAP32[i2 + 68 >> 2] = 0; 26810 HEAP32[i7 >> 2] = i3; 26811 HEAP32[i2 + 116 >> 2] = i6; 26812 HEAP32[i2 + 284 >> 2] = i2; 26813 i3 = _time(0) | 0; 26814 HEAP32[i4 >> 2] = i3; 26815 HEAP32[i5 >> 2] = i2; 26816 HEAP32[i5 + 4 >> 2] = i4; 26817 HEAP32[i5 + 8 >> 2] = 5192; 26818 HEAP32[i5 + 12 >> 2] = 1; 26819 HEAP32[i2 + 168 >> 2] = _luaS_hash(i5, 16, i3) | 0; 26820 i4 = i2 + 224 | 0; 26821 HEAP32[i2 + 240 >> 2] = i4; 26822 HEAP32[i2 + 244 >> 2] = i4; 26823 HEAP8[i2 + 175 | 0] = 0; 26824 i4 = i2 + 132 | 0; 26825 HEAP32[i2 + 160 >> 2] = 0; 26826 HEAP32[i2 + 256 >> 2] = 0; 26827 HEAP32[i2 + 264 >> 2] = 0; 26828 HEAP32[i2 + 280 >> 2] = 0; 26829 HEAP32[i4 + 0 >> 2] = 0; 26830 HEAP32[i4 + 4 >> 2] = 0; 26831 HEAP32[i4 + 8 >> 2] = 0; 26832 HEAP32[i4 + 12 >> 2] = 0; 26833 HEAP32[i2 + 288 >> 2] = _lua_version(0) | 0; 26834 HEAP8[i2 + 173 | 0] = 5; 26835 i4 = i2 + 120 | 0; 26836 i5 = i2 + 180 | 0; 26837 i3 = i5 + 40 | 0; 26838 do { 26839 HEAP32[i5 >> 2] = 0; 26840 i5 = i5 + 4 | 0; 26841 } while ((i5 | 0) < (i3 | 0)); 26842 HEAP32[i4 >> 2] = 400; 26843 HEAP32[i2 + 124 >> 2] = 0; 26844 HEAP32[i2 + 268 >> 2] = 200; 26845 HEAP32[i2 + 272 >> 2] = 200; 26846 HEAP32[i2 + 276 >> 2] = 200; 26847 i5 = i2 + 364 | 0; 26848 i3 = i5 + 36 | 0; 26849 do { 26850 HEAP32[i5 >> 2] = 0; 26851 i5 = i5 + 4 | 0; 26852 } while ((i5 | 0) < (i3 | 0)); 26853 if ((_luaD_rawrunprotected(i2, 8, 0) | 0) == 0) { 26854 i7 = i2; 26855 STACKTOP = i1; 26856 return i7 | 0; 26857 } 26858 _close_state(i2); 26859 i7 = 0; 26860 STACKTOP = i1; 26861 return i7 | 0; 26862 } 26863 function _luaU_undump(i1, i7, i8, i9) { 26864 i1 = i1 | 0; 26865 i7 = i7 | 0; 26866 i8 = i8 | 0; 26867 i9 = i9 | 0; 26868 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0; 26869 i2 = STACKTOP; 26870 STACKTOP = STACKTOP + 64 | 0; 26871 i4 = i2 + 16 | 0; 26872 i5 = i2 + 34 | 0; 26873 i3 = i2; 26874 i6 = HEAP8[i9] | 0; 26875 if (i6 << 24 >> 24 == 27) { 26876 HEAP32[i3 + 12 >> 2] = 8800; 26877 } else if (i6 << 24 >> 24 == 61 | i6 << 24 >> 24 == 64) { 26878 HEAP32[i3 + 12 >> 2] = i9 + 1; 26879 } else { 26880 HEAP32[i3 + 12 >> 2] = i9; 26881 } 26882 HEAP32[i3 >> 2] = i1; 26883 HEAP32[i3 + 4 >> 2] = i7; 26884 HEAP32[i3 + 8 >> 2] = i8; 26885 HEAP32[i4 >> 2] = 1635077147; 26886 HEAP8[i4 + 4 | 0] = 82; 26887 HEAP8[i4 + 5 | 0] = 0; 26888 HEAP8[i4 + 6 | 0] = 1; 26889 HEAP8[i4 + 7 | 0] = 4; 26890 HEAP8[i4 + 8 | 0] = 4; 26891 HEAP8[i4 + 9 | 0] = 4; 26892 HEAP8[i4 + 10 | 0] = 8; 26893 i9 = i4 + 12 | 0; 26894 HEAP8[i4 + 11 | 0] = 0; 26895 HEAP8[i9 + 0 | 0] = HEAP8[8816 | 0] | 0; 26896 HEAP8[i9 + 1 | 0] = HEAP8[8817 | 0] | 0; 26897 HEAP8[i9 + 2 | 0] = HEAP8[8818 | 0] | 0; 26898 HEAP8[i9 + 3 | 0] = HEAP8[8819 | 0] | 0; 26899 HEAP8[i9 + 4 | 0] = HEAP8[8820 | 0] | 0; 26900 HEAP8[i9 + 5 | 0] = HEAP8[8821 | 0] | 0; 26901 HEAP8[i5] = 27; 26902 if ((_luaZ_read(i7, i5 + 1 | 0, 17) | 0) != 0) { 26903 _error(i3, 8824); 26904 } 26905 if ((_memcmp(i4, i5, 18) | 0) == 0) { 26906 i4 = _luaF_newLclosure(i1, 1) | 0; 26907 i5 = i1 + 8 | 0; 26908 i9 = HEAP32[i5 >> 2] | 0; 26909 HEAP32[i9 >> 2] = i4; 26910 HEAP32[i9 + 8 >> 2] = 70; 26911 i9 = (HEAP32[i5 >> 2] | 0) + 16 | 0; 26912 HEAP32[i5 >> 2] = i9; 26913 if (((HEAP32[i1 + 24 >> 2] | 0) - i9 | 0) < 16) { 26914 _luaD_growstack(i1, 0); 26915 } 26916 i9 = _luaF_newproto(i1) | 0; 26917 i6 = i4 + 12 | 0; 26918 HEAP32[i6 >> 2] = i9; 26919 _LoadFunction(i3, i9); 26920 i6 = HEAP32[i6 >> 2] | 0; 26921 i3 = HEAP32[i6 + 40 >> 2] | 0; 26922 if ((i3 | 0) == 1) { 26923 i9 = i4; 26924 STACKTOP = i2; 26925 return i9 | 0; 26926 } 26927 i9 = _luaF_newLclosure(i1, i3) | 0; 26928 HEAP32[i9 + 12 >> 2] = i6; 26929 i8 = HEAP32[i5 >> 2] | 0; 26930 HEAP32[i8 + -16 >> 2] = i9; 26931 HEAP32[i8 + -8 >> 2] = 70; 26932 STACKTOP = i2; 26933 return i9 | 0; 26934 } 26935 if ((_memcmp(i4, i5, 4) | 0) != 0) { 26936 _error(i3, 8888); 26937 } 26938 if ((_memcmp(i4, i5, 6) | 0) != 0) { 26939 _error(i3, 8896); 26940 } 26941 if ((_memcmp(i4, i5, 12) | 0) == 0) { 26942 _error(i3, 8872); 26943 } else { 26944 _error(i3, 8920); 26945 } 26946 return 0; 26947 } 26948 function _lua_compare(i2, i7, i5, i3) { 26949 i2 = i2 | 0; 26950 i7 = i7 | 0; 26951 i5 = i5 | 0; 26952 i3 = i3 | 0; 26953 var i1 = 0, i4 = 0, i6 = 0, i8 = 0; 26954 i1 = STACKTOP; 26955 i4 = HEAP32[i2 + 16 >> 2] | 0; 26956 do { 26957 if ((i7 | 0) <= 0) { 26958 if (!((i7 | 0) < -1000999)) { 26959 i6 = (HEAP32[i2 + 8 >> 2] | 0) + (i7 << 4) | 0; 26960 break; 26961 } 26962 if ((i7 | 0) == -1001e3) { 26963 i6 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0; 26964 break; 26965 } 26966 i7 = -1001e3 - i7 | 0; 26967 i8 = HEAP32[i4 >> 2] | 0; 26968 if ((HEAP32[i8 + 8 >> 2] | 0) != 22 ? (i6 = HEAP32[i8 >> 2] | 0, (i7 | 0) <= (HEAPU8[i6 + 6 | 0] | 0 | 0)) : 0) { 26969 i6 = i6 + (i7 + -1 << 4) + 16 | 0; 26970 } else { 26971 i6 = 5192; 26972 } 26973 } else { 26974 i6 = (HEAP32[i4 >> 2] | 0) + (i7 << 4) | 0; 26975 i6 = i6 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i6 : 5192; 26976 } 26977 } while (0); 26978 do { 26979 if ((i5 | 0) <= 0) { 26980 if (!((i5 | 0) < -1000999)) { 26981 i4 = (HEAP32[i2 + 8 >> 2] | 0) + (i5 << 4) | 0; 26982 break; 26983 } 26984 if ((i5 | 0) == -1001e3) { 26985 i4 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0; 26986 break; 26987 } 26988 i5 = -1001e3 - i5 | 0; 26989 i4 = HEAP32[i4 >> 2] | 0; 26990 if ((HEAP32[i4 + 8 >> 2] | 0) == 22) { 26991 i8 = 0; 26992 STACKTOP = i1; 26993 return i8 | 0; 26994 } 26995 i4 = HEAP32[i4 >> 2] | 0; 26996 if ((i5 | 0) > (HEAPU8[i4 + 6 | 0] | 0 | 0)) { 26997 i8 = 0; 26998 STACKTOP = i1; 26999 return i8 | 0; 27000 } else { 27001 i4 = i4 + (i5 + -1 << 4) + 16 | 0; 27002 break; 27003 } 27004 } else { 27005 i4 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0; 27006 i4 = i4 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i4 : 5192; 27007 } 27008 } while (0); 27009 if ((i6 | 0) == 5192 | (i4 | 0) == 5192) { 27010 i8 = 0; 27011 STACKTOP = i1; 27012 return i8 | 0; 27013 } 27014 if ((i3 | 0) == 1) { 27015 i8 = _luaV_lessthan(i2, i6, i4) | 0; 27016 STACKTOP = i1; 27017 return i8 | 0; 27018 } else if ((i3 | 0) == 2) { 27019 i8 = _luaV_lessequal(i2, i6, i4) | 0; 27020 STACKTOP = i1; 27021 return i8 | 0; 27022 } else if ((i3 | 0) == 0) { 27023 if ((HEAP32[i6 + 8 >> 2] | 0) == (HEAP32[i4 + 8 >> 2] | 0)) { 27024 i2 = (_luaV_equalobj_(i2, i6, i4) | 0) != 0; 27025 } else { 27026 i2 = 0; 27027 } 27028 i8 = i2 & 1; 27029 STACKTOP = i1; 27030 return i8 | 0; 27031 } else { 27032 i8 = 0; 27033 STACKTOP = i1; 27034 return i8 | 0; 27035 } 27036 return 0; 27037 } 27038 function _lexerror(i7, i3, i8) { 27039 i7 = i7 | 0; 27040 i3 = i3 | 0; 27041 i8 = i8 | 0; 27042 var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i6 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0; 27043 i12 = STACKTOP; 27044 STACKTOP = STACKTOP + 80 | 0; 27045 i2 = i12; 27046 i12 = i12 + 12 | 0; 27047 _luaO_chunkid(i12, (HEAP32[i7 + 68 >> 2] | 0) + 16 | 0, 60); 27048 i1 = i7 + 52 | 0; 27049 i4 = HEAP32[i1 >> 2] | 0; 27050 i13 = HEAP32[i7 + 4 >> 2] | 0; 27051 HEAP32[i2 >> 2] = i12; 27052 HEAP32[i2 + 4 >> 2] = i13; 27053 HEAP32[i2 + 8 >> 2] = i3; 27054 i4 = _luaO_pushfstring(i4, 12592, i2) | 0; 27055 if ((i8 | 0) == 0) { 27056 i13 = HEAP32[i1 >> 2] | 0; 27057 _luaD_throw(i13, 3); 27058 } 27059 i3 = HEAP32[i1 >> 2] | 0; 27060 do { 27061 if (!((i8 + -287 | 0) >>> 0 < 3)) { 27062 if ((i8 | 0) >= 257) { 27063 i5 = HEAP32[12096 + (i8 + -257 << 2) >> 2] | 0; 27064 if ((i8 | 0) >= 286) { 27065 break; 27066 } 27067 HEAP32[i2 >> 2] = i5; 27068 i5 = _luaO_pushfstring(i3, 12256, i2) | 0; 27069 break; 27070 } 27071 if ((HEAP8[i8 + 10913 | 0] & 4) == 0) { 27072 HEAP32[i2 >> 2] = i8; 27073 i5 = _luaO_pushfstring(i3, 12240, i2) | 0; 27074 break; 27075 } else { 27076 HEAP32[i2 >> 2] = i8; 27077 i5 = _luaO_pushfstring(i3, 12232, i2) | 0; 27078 break; 27079 } 27080 } else { 27081 i11 = i7 + 60 | 0; 27082 i12 = HEAP32[i11 >> 2] | 0; 27083 i10 = i12 + 4 | 0; 27084 i13 = HEAP32[i10 >> 2] | 0; 27085 i8 = i12 + 8 | 0; 27086 i9 = HEAP32[i8 >> 2] | 0; 27087 do { 27088 if ((i13 + 1 | 0) >>> 0 > i9 >>> 0) { 27089 if (i9 >>> 0 > 2147483645) { 27090 _lexerror(i7, 12368, 0); 27091 } 27092 i7 = i9 << 1; 27093 if ((i7 | 0) == -2) { 27094 _luaM_toobig(i3); 27095 } else { 27096 i6 = _luaM_realloc_(i3, HEAP32[i12 >> 2] | 0, i9, i7) | 0; 27097 HEAP32[i12 >> 2] = i6; 27098 HEAP32[i8 >> 2] = i7; 27099 i5 = HEAP32[i10 >> 2] | 0; 27100 break; 27101 } 27102 } else { 27103 i5 = i13; 27104 i6 = HEAP32[i12 >> 2] | 0; 27105 } 27106 } while (0); 27107 HEAP32[i10 >> 2] = i5 + 1; 27108 HEAP8[i6 + i5 | 0] = 0; 27109 i5 = HEAP32[i1 >> 2] | 0; 27110 HEAP32[i2 >> 2] = HEAP32[HEAP32[i11 >> 2] >> 2]; 27111 i5 = _luaO_pushfstring(i5, 12256, i2) | 0; 27112 } 27113 } while (0); 27114 HEAP32[i2 >> 2] = i4; 27115 HEAP32[i2 + 4 >> 2] = i5; 27116 _luaO_pushfstring(i3, 12608, i2) | 0; 27117 i13 = HEAP32[i1 >> 2] | 0; 27118 _luaD_throw(i13, 3); 27119 } 27120 function _luaV_objlen(i2, i5, i1) { 27121 i2 = i2 | 0; 27122 i5 = i5 | 0; 27123 i1 = i1 | 0; 27124 var i3 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0; 27125 i3 = STACKTOP; 27126 i4 = i1 + 8 | 0; 27127 i8 = HEAP32[i4 >> 2] & 15; 27128 do { 27129 if ((i8 | 0) == 5) { 27130 i7 = HEAP32[i1 >> 2] | 0; 27131 i8 = HEAP32[i7 + 8 >> 2] | 0; 27132 if (((i8 | 0) != 0 ? (HEAP8[i8 + 6 | 0] & 16) == 0 : 0) ? (i6 = _luaT_gettm(i8, 4, HEAP32[(HEAP32[i2 + 12 >> 2] | 0) + 200 >> 2] | 0) | 0, (i6 | 0) != 0) : 0) { 27133 i7 = i6; 27134 break; 27135 } 27136 HEAPF64[i5 >> 3] = +(_luaH_getn(i7) | 0); 27137 HEAP32[i5 + 8 >> 2] = 3; 27138 STACKTOP = i3; 27139 return; 27140 } else if ((i8 | 0) != 4) { 27141 i6 = _luaT_gettmbyobj(i2, i1, 4) | 0; 27142 if ((HEAP32[i6 + 8 >> 2] | 0) == 0) { 27143 _luaG_typeerror(i2, i1, 9024); 27144 } else { 27145 i7 = i6; 27146 } 27147 } else { 27148 HEAPF64[i5 >> 3] = +((HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0) >>> 0); 27149 HEAP32[i5 + 8 >> 2] = 3; 27150 STACKTOP = i3; 27151 return; 27152 } 27153 } while (0); 27154 i6 = i2 + 28 | 0; 27155 i8 = i5 - (HEAP32[i6 >> 2] | 0) | 0; 27156 i5 = i2 + 8 | 0; 27157 i11 = HEAP32[i5 >> 2] | 0; 27158 HEAP32[i5 >> 2] = i11 + 16; 27159 i12 = i7; 27160 i10 = HEAP32[i12 + 4 >> 2] | 0; 27161 i9 = i11; 27162 HEAP32[i9 >> 2] = HEAP32[i12 >> 2]; 27163 HEAP32[i9 + 4 >> 2] = i10; 27164 HEAP32[i11 + 8 >> 2] = HEAP32[i7 + 8 >> 2]; 27165 i7 = HEAP32[i5 >> 2] | 0; 27166 HEAP32[i5 >> 2] = i7 + 16; 27167 i11 = i1; 27168 i9 = HEAP32[i11 + 4 >> 2] | 0; 27169 i10 = i7; 27170 HEAP32[i10 >> 2] = HEAP32[i11 >> 2]; 27171 HEAP32[i10 + 4 >> 2] = i9; 27172 HEAP32[i7 + 8 >> 2] = HEAP32[i4 >> 2]; 27173 i7 = HEAP32[i5 >> 2] | 0; 27174 HEAP32[i5 >> 2] = i7 + 16; 27175 i10 = i1; 27176 i9 = HEAP32[i10 + 4 >> 2] | 0; 27177 i1 = i7; 27178 HEAP32[i1 >> 2] = HEAP32[i10 >> 2]; 27179 HEAP32[i1 + 4 >> 2] = i9; 27180 HEAP32[i7 + 8 >> 2] = HEAP32[i4 >> 2]; 27181 _luaD_call(i2, (HEAP32[i5 >> 2] | 0) + -48 | 0, 1, HEAP8[(HEAP32[i2 + 16 >> 2] | 0) + 18 | 0] & 1); 27182 i7 = HEAP32[i6 >> 2] | 0; 27183 i6 = HEAP32[i5 >> 2] | 0; 27184 i2 = i6 + -16 | 0; 27185 HEAP32[i5 >> 2] = i2; 27186 i4 = HEAP32[i2 + 4 >> 2] | 0; 27187 i5 = i7 + i8 | 0; 27188 HEAP32[i5 >> 2] = HEAP32[i2 >> 2]; 27189 HEAP32[i5 + 4 >> 2] = i4; 27190 HEAP32[i7 + (i8 + 8) >> 2] = HEAP32[i6 + -8 >> 2]; 27191 STACKTOP = i3; 27192 return; 27193 } 27194 function _get_equalTM(i6, i5, i4) { 27195 i6 = i6 | 0; 27196 i5 = i5 | 0; 27197 i4 = i4 | 0; 27198 var i1 = 0, i2 = 0, i3 = 0, i7 = 0; 27199 i1 = STACKTOP; 27200 L1 : do { 27201 if (((i5 | 0) != 0 ? (HEAP8[i5 + 6 | 0] & 32) == 0 : 0) ? (i7 = i6 + 12 | 0, i2 = _luaT_gettm(i5, 5, HEAP32[(HEAP32[i7 >> 2] | 0) + 204 >> 2] | 0) | 0, (i2 | 0) != 0) : 0) { 27202 if ((i5 | 0) != (i4 | 0)) { 27203 if (((i4 | 0) != 0 ? (HEAP8[i4 + 6 | 0] & 32) == 0 : 0) ? (i3 = _luaT_gettm(i4, 5, HEAP32[(HEAP32[i7 >> 2] | 0) + 204 >> 2] | 0) | 0, (i3 | 0) != 0) : 0) { 27204 i4 = HEAP32[i2 + 8 >> 2] | 0; 27205 L9 : do { 27206 if ((i4 | 0) == (HEAP32[i3 + 8 >> 2] | 0)) { 27207 switch (i4 & 63 | 0) { 27208 case 3: 27209 { 27210 i3 = +HEAPF64[i2 >> 3] == +HEAPF64[i3 >> 3] | 0; 27211 break; 27212 } 27213 case 22: 27214 { 27215 i3 = (HEAP32[i2 >> 2] | 0) == (HEAP32[i3 >> 2] | 0) | 0; 27216 break; 27217 } 27218 case 5: 27219 { 27220 if ((HEAP32[i2 >> 2] | 0) == (HEAP32[i3 >> 2] | 0)) { 27221 break L1; 27222 } else { 27223 break L9; 27224 } 27225 } 27226 case 1: 27227 { 27228 i3 = (HEAP32[i2 >> 2] | 0) == (HEAP32[i3 >> 2] | 0) | 0; 27229 break; 27230 } 27231 case 4: 27232 { 27233 i3 = (HEAP32[i2 >> 2] | 0) == (HEAP32[i3 >> 2] | 0) | 0; 27234 break; 27235 } 27236 case 0: 27237 { 27238 break L1; 27239 } 27240 case 7: 27241 { 27242 if ((HEAP32[i2 >> 2] | 0) == (HEAP32[i3 >> 2] | 0)) { 27243 break L1; 27244 } else { 27245 break L9; 27246 } 27247 } 27248 case 2: 27249 { 27250 i3 = (HEAP32[i2 >> 2] | 0) == (HEAP32[i3 >> 2] | 0) | 0; 27251 break; 27252 } 27253 case 20: 27254 { 27255 i3 = _luaS_eqlngstr(HEAP32[i2 >> 2] | 0, HEAP32[i3 >> 2] | 0) | 0; 27256 break; 27257 } 27258 default: 27259 { 27260 i3 = (HEAP32[i2 >> 2] | 0) == (HEAP32[i3 >> 2] | 0) | 0; 27261 } 27262 } 27263 if ((i3 | 0) != 0) { 27264 break L1; 27265 } 27266 } 27267 } while (0); 27268 i2 = 0; 27269 } else { 27270 i2 = 0; 27271 } 27272 } 27273 } else { 27274 i2 = 0; 27275 } 27276 } while (0); 27277 STACKTOP = i1; 27278 return i2 | 0; 27279 } 27280 function _luaS_newlstr(i2, i4, i3) { 27281 i2 = i2 | 0; 27282 i4 = i4 | 0; 27283 i3 = i3 | 0; 27284 var i1 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0; 27285 i1 = STACKTOP; 27286 if (!(i3 >>> 0 < 41)) { 27287 if ((i3 + 1 | 0) >>> 0 > 4294967277) { 27288 _luaM_toobig(i2); 27289 } 27290 i10 = HEAP32[(HEAP32[i2 + 12 >> 2] | 0) + 56 >> 2] | 0; 27291 i11 = _luaC_newobj(i2, 20, i3 + 17 | 0, 0, 0) | 0; 27292 HEAP32[i11 + 12 >> 2] = i3; 27293 HEAP32[i11 + 8 >> 2] = i10; 27294 HEAP8[i11 + 6 | 0] = 0; 27295 i10 = i11 + 16 | 0; 27296 _memcpy(i10 | 0, i4 | 0, i3 | 0) | 0; 27297 HEAP8[i10 + i3 | 0] = 0; 27298 STACKTOP = i1; 27299 return i11 | 0; 27300 } 27301 i5 = HEAP32[i2 + 12 >> 2] | 0; 27302 i6 = HEAP32[i5 + 56 >> 2] ^ i3; 27303 i7 = (i3 >>> 5) + 1 | 0; 27304 if (!(i7 >>> 0 > i3 >>> 0)) { 27305 i8 = i3; 27306 do { 27307 i6 = (i6 << 5) + (i6 >>> 2) + (HEAPU8[i4 + (i8 + -1) | 0] | 0) ^ i6; 27308 i8 = i8 - i7 | 0; 27309 } while (!(i8 >>> 0 < i7 >>> 0)); 27310 } 27311 i10 = i5 + 32 | 0; 27312 i9 = HEAP32[i10 >> 2] | 0; 27313 i7 = i5 + 24 | 0; 27314 i8 = HEAP32[i7 >> 2] | 0; 27315 i11 = HEAP32[i8 + ((i9 + -1 & i6) << 2) >> 2] | 0; 27316 L12 : do { 27317 if ((i11 | 0) != 0) { 27318 while (1) { 27319 if (((i6 | 0) == (HEAP32[i11 + 8 >> 2] | 0) ? (HEAP32[i11 + 12 >> 2] | 0) == (i3 | 0) : 0) ? (_memcmp(i4, i11 + 16 | 0, i3) | 0) == 0 : 0) { 27320 break; 27321 } 27322 i11 = HEAP32[i11 >> 2] | 0; 27323 if ((i11 | 0) == 0) { 27324 break L12; 27325 } 27326 } 27327 i2 = i11 + 5 | 0; 27328 i3 = (HEAPU8[i2] | 0) ^ 3; 27329 if ((((HEAPU8[i5 + 60 | 0] | 0) ^ 3) & i3 | 0) != 0) { 27330 STACKTOP = i1; 27331 return i11 | 0; 27332 } 27333 HEAP8[i2] = i3; 27334 STACKTOP = i1; 27335 return i11 | 0; 27336 } 27337 } while (0); 27338 i5 = i5 + 28 | 0; 27339 if ((HEAP32[i5 >> 2] | 0) >>> 0 >= i9 >>> 0 & (i9 | 0) < 1073741823) { 27340 _luaS_resize(i2, i9 << 1); 27341 i9 = HEAP32[i10 >> 2] | 0; 27342 i8 = HEAP32[i7 >> 2] | 0; 27343 } 27344 i11 = _luaC_newobj(i2, 4, i3 + 17 | 0, i8 + ((i9 + -1 & i6) << 2) | 0, 0) | 0; 27345 HEAP32[i11 + 12 >> 2] = i3; 27346 HEAP32[i11 + 8 >> 2] = i6; 27347 HEAP8[i11 + 6 | 0] = 0; 27348 i10 = i11 + 16 | 0; 27349 _memcpy(i10 | 0, i4 | 0, i3 | 0) | 0; 27350 HEAP8[i10 + i3 | 0] = 0; 27351 HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + 1; 27352 STACKTOP = i1; 27353 return i11 | 0; 27354 } 27355 function _lua_pcallk(i3, i7, i2, i9, i6, i5) { 27356 i3 = i3 | 0; 27357 i7 = i7 | 0; 27358 i2 = i2 | 0; 27359 i9 = i9 | 0; 27360 i6 = i6 | 0; 27361 i5 = i5 | 0; 27362 var i1 = 0, i4 = 0, i8 = 0, i10 = 0, i11 = 0; 27363 i1 = STACKTOP; 27364 STACKTOP = STACKTOP + 16 | 0; 27365 i4 = i1; 27366 if ((i9 | 0) == 0) { 27367 i9 = 0; 27368 } else { 27369 i10 = HEAP32[i3 + 16 >> 2] | 0; 27370 do { 27371 if ((i9 | 0) <= 0) { 27372 if (!((i9 | 0) < -1000999)) { 27373 i8 = (HEAP32[i3 + 8 >> 2] | 0) + (i9 << 4) | 0; 27374 break; 27375 } 27376 if ((i9 | 0) == -1001e3) { 27377 i8 = (HEAP32[i3 + 12 >> 2] | 0) + 40 | 0; 27378 break; 27379 } 27380 i9 = -1001e3 - i9 | 0; 27381 i10 = HEAP32[i10 >> 2] | 0; 27382 if ((HEAP32[i10 + 8 >> 2] | 0) != 22 ? (i8 = HEAP32[i10 >> 2] | 0, (i9 | 0) <= (HEAPU8[i8 + 6 | 0] | 0)) : 0) { 27383 i8 = i8 + (i9 + -1 << 4) + 16 | 0; 27384 } else { 27385 i8 = 5192; 27386 } 27387 } else { 27388 i8 = (HEAP32[i10 >> 2] | 0) + (i9 << 4) | 0; 27389 i8 = i8 >>> 0 < (HEAP32[i3 + 8 >> 2] | 0) >>> 0 ? i8 : 5192; 27390 } 27391 } while (0); 27392 i9 = i8 - (HEAP32[i3 + 28 >> 2] | 0) | 0; 27393 } 27394 i8 = i3 + 8 | 0; 27395 i7 = (HEAP32[i8 >> 2] | 0) + (~i7 << 4) | 0; 27396 HEAP32[i4 >> 2] = i7; 27397 if ((i5 | 0) != 0 ? (HEAP16[i3 + 36 >> 1] | 0) == 0 : 0) { 27398 i11 = HEAP32[i3 + 16 >> 2] | 0; 27399 HEAP32[i11 + 28 >> 2] = i5; 27400 HEAP32[i11 + 24 >> 2] = i6; 27401 HEAP32[i11 + 20 >> 2] = (HEAP32[i4 >> 2] | 0) - (HEAP32[i3 + 28 >> 2] | 0); 27402 HEAP8[i11 + 36 | 0] = HEAP8[i3 + 41 | 0] | 0; 27403 i10 = i3 + 68 | 0; 27404 i7 = i11 + 32 | 0; 27405 HEAP32[i7 >> 2] = HEAP32[i10 >> 2]; 27406 HEAP32[i10 >> 2] = i9; 27407 i9 = i11 + 18 | 0; 27408 HEAP8[i9] = HEAPU8[i9] | 16; 27409 _luaD_call(i3, HEAP32[i4 >> 2] | 0, i2, 1); 27410 HEAP8[i9] = HEAP8[i9] & 239; 27411 HEAP32[i10 >> 2] = HEAP32[i7 >> 2]; 27412 i4 = 0; 27413 } else { 27414 HEAP32[i4 + 4 >> 2] = i2; 27415 i4 = _luaD_pcall(i3, 3, i4, i7 - (HEAP32[i3 + 28 >> 2] | 0) | 0, i9) | 0; 27416 } 27417 if (!((i2 | 0) == -1)) { 27418 STACKTOP = i1; 27419 return i4 | 0; 27420 } 27421 i2 = (HEAP32[i3 + 16 >> 2] | 0) + 4 | 0; 27422 i3 = HEAP32[i8 >> 2] | 0; 27423 if (!((HEAP32[i2 >> 2] | 0) >>> 0 < i3 >>> 0)) { 27424 STACKTOP = i1; 27425 return i4 | 0; 27426 } 27427 HEAP32[i2 >> 2] = i3; 27428 STACKTOP = i1; 27429 return i4 | 0; 27430 } 27431 function _lua_getupvalue(i1, i6, i3) { 27432 i1 = i1 | 0; 27433 i6 = i6 | 0; 27434 i3 = i3 | 0; 27435 var i2 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0; 27436 i2 = STACKTOP; 27437 i5 = HEAP32[i1 + 16 >> 2] | 0; 27438 do { 27439 if ((i6 | 0) <= 0) { 27440 if (!((i6 | 0) < -1000999)) { 27441 i4 = (HEAP32[i1 + 8 >> 2] | 0) + (i6 << 4) | 0; 27442 break; 27443 } 27444 if ((i6 | 0) == -1001e3) { 27445 i4 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0; 27446 break; 27447 } 27448 i6 = -1001e3 - i6 | 0; 27449 i5 = HEAP32[i5 >> 2] | 0; 27450 if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i5 >> 2] | 0, (i6 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) { 27451 i4 = i4 + (i6 + -1 << 4) + 16 | 0; 27452 } else { 27453 i4 = 5192; 27454 } 27455 } else { 27456 i4 = (HEAP32[i5 >> 2] | 0) + (i6 << 4) | 0; 27457 i4 = i4 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i4 : 5192; 27458 } 27459 } while (0); 27460 i5 = HEAP32[i4 + 8 >> 2] & 63; 27461 do { 27462 if ((i5 | 0) == 38) { 27463 i5 = HEAP32[i4 >> 2] | 0; 27464 if ((i3 | 0) <= 0) { 27465 i6 = 0; 27466 STACKTOP = i2; 27467 return i6 | 0; 27468 } 27469 if ((HEAPU8[i5 + 6 | 0] | 0 | 0) < (i3 | 0)) { 27470 i6 = 0; 27471 STACKTOP = i2; 27472 return i6 | 0; 27473 } else { 27474 i4 = 936; 27475 i3 = i5 + (i3 + -1 << 4) + 16 | 0; 27476 break; 27477 } 27478 } else if ((i5 | 0) == 6) { 27479 i5 = HEAP32[i4 >> 2] | 0; 27480 i4 = HEAP32[i5 + 12 >> 2] | 0; 27481 if ((i3 | 0) <= 0) { 27482 i6 = 0; 27483 STACKTOP = i2; 27484 return i6 | 0; 27485 } 27486 if ((HEAP32[i4 + 40 >> 2] | 0) < (i3 | 0)) { 27487 i6 = 0; 27488 STACKTOP = i2; 27489 return i6 | 0; 27490 } 27491 i6 = i3 + -1 | 0; 27492 i3 = HEAP32[(HEAP32[i5 + 16 + (i6 << 2) >> 2] | 0) + 8 >> 2] | 0; 27493 i4 = HEAP32[(HEAP32[i4 + 28 >> 2] | 0) + (i6 << 3) >> 2] | 0; 27494 if ((i4 | 0) == 0) { 27495 i4 = 936; 27496 } else { 27497 i4 = i4 + 16 | 0; 27498 } 27499 } else { 27500 i6 = 0; 27501 STACKTOP = i2; 27502 return i6 | 0; 27503 } 27504 } while (0); 27505 i6 = i1 + 8 | 0; 27506 i5 = HEAP32[i6 >> 2] | 0; 27507 i8 = i3; 27508 i7 = HEAP32[i8 + 4 >> 2] | 0; 27509 i1 = i5; 27510 HEAP32[i1 >> 2] = HEAP32[i8 >> 2]; 27511 HEAP32[i1 + 4 >> 2] = i7; 27512 HEAP32[i5 + 8 >> 2] = HEAP32[i3 + 8 >> 2]; 27513 HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + 16; 27514 i6 = i4; 27515 STACKTOP = i2; 27516 return i6 | 0; 27517 } 27518 function _lua_copy(i1, i8, i4) { 27519 i1 = i1 | 0; 27520 i8 = i8 | 0; 27521 i4 = i4 | 0; 27522 var i2 = 0, i3 = 0, i5 = 0, i6 = 0, i7 = 0, i9 = 0; 27523 i2 = STACKTOP; 27524 i3 = i1 + 16 | 0; 27525 i6 = HEAP32[i3 >> 2] | 0; 27526 do { 27527 if ((i8 | 0) <= 0) { 27528 if (!((i8 | 0) < -1000999)) { 27529 i7 = (HEAP32[i1 + 8 >> 2] | 0) + (i8 << 4) | 0; 27530 break; 27531 } 27532 if ((i8 | 0) == -1001e3) { 27533 i7 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0; 27534 break; 27535 } 27536 i8 = -1001e3 - i8 | 0; 27537 i9 = HEAP32[i6 >> 2] | 0; 27538 if ((HEAP32[i9 + 8 >> 2] | 0) != 22 ? (i7 = HEAP32[i9 >> 2] | 0, (i8 | 0) <= (HEAPU8[i7 + 6 | 0] | 0 | 0)) : 0) { 27539 i7 = i7 + (i8 + -1 << 4) + 16 | 0; 27540 } else { 27541 i7 = 5192; 27542 } 27543 } else { 27544 i7 = (HEAP32[i6 >> 2] | 0) + (i8 << 4) | 0; 27545 i7 = i7 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i7 : 5192; 27546 } 27547 } while (0); 27548 do { 27549 if ((i4 | 0) <= 0) { 27550 if (!((i4 | 0) < -1000999)) { 27551 i5 = (HEAP32[i1 + 8 >> 2] | 0) + (i4 << 4) | 0; 27552 break; 27553 } 27554 if ((i4 | 0) == -1001e3) { 27555 i5 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0; 27556 break; 27557 } 27558 i8 = -1001e3 - i4 | 0; 27559 i6 = HEAP32[i6 >> 2] | 0; 27560 if ((HEAP32[i6 + 8 >> 2] | 0) != 22 ? (i5 = HEAP32[i6 >> 2] | 0, (i8 | 0) <= (HEAPU8[i5 + 6 | 0] | 0 | 0)) : 0) { 27561 i5 = i5 + (i8 + -1 << 4) + 16 | 0; 27562 } else { 27563 i5 = 5192; 27564 } 27565 } else { 27566 i5 = (HEAP32[i6 >> 2] | 0) + (i4 << 4) | 0; 27567 i5 = i5 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i5 : 5192; 27568 } 27569 } while (0); 27570 i8 = i7; 27571 i9 = HEAP32[i8 + 4 >> 2] | 0; 27572 i6 = i5; 27573 HEAP32[i6 >> 2] = HEAP32[i8 >> 2]; 27574 HEAP32[i6 + 4 >> 2] = i9; 27575 i6 = i7 + 8 | 0; 27576 HEAP32[i5 + 8 >> 2] = HEAP32[i6 >> 2]; 27577 if (!((i4 | 0) < -1001e3)) { 27578 STACKTOP = i2; 27579 return; 27580 } 27581 if ((HEAP32[i6 >> 2] & 64 | 0) == 0) { 27582 STACKTOP = i2; 27583 return; 27584 } 27585 i4 = HEAP32[i7 >> 2] | 0; 27586 if ((HEAP8[i4 + 5 | 0] & 3) == 0) { 27587 STACKTOP = i2; 27588 return; 27589 } 27590 i3 = HEAP32[HEAP32[HEAP32[i3 >> 2] >> 2] >> 2] | 0; 27591 if ((HEAP8[i3 + 5 | 0] & 4) == 0) { 27592 STACKTOP = i2; 27593 return; 27594 } 27595 _luaC_barrier_(i1, i3, i4); 27596 STACKTOP = i2; 27597 return; 27598 } 27599 function _lua_tolstring(i4, i5, i1) { 27600 i4 = i4 | 0; 27601 i5 = i5 | 0; 27602 i1 = i1 | 0; 27603 var i2 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0; 27604 i2 = STACKTOP; 27605 i7 = i4 + 16 | 0; 27606 i10 = HEAP32[i7 >> 2] | 0; 27607 i6 = (i5 | 0) > 0; 27608 do { 27609 if (!i6) { 27610 if (!((i5 | 0) < -1000999)) { 27611 i8 = (HEAP32[i4 + 8 >> 2] | 0) + (i5 << 4) | 0; 27612 break; 27613 } 27614 if ((i5 | 0) == -1001e3) { 27615 i8 = (HEAP32[i4 + 12 >> 2] | 0) + 40 | 0; 27616 break; 27617 } 27618 i9 = -1001e3 - i5 | 0; 27619 i10 = HEAP32[i10 >> 2] | 0; 27620 if ((HEAP32[i10 + 8 >> 2] | 0) != 22 ? (i8 = HEAP32[i10 >> 2] | 0, (i9 | 0) <= (HEAPU8[i8 + 6 | 0] | 0 | 0)) : 0) { 27621 i8 = i8 + (i9 + -1 << 4) + 16 | 0; 27622 } else { 27623 i8 = 5192; 27624 } 27625 } else { 27626 i8 = (HEAP32[i10 >> 2] | 0) + (i5 << 4) | 0; 27627 i8 = i8 >>> 0 < (HEAP32[i4 + 8 >> 2] | 0) >>> 0 ? i8 : 5192; 27628 } 27629 } while (0); 27630 do { 27631 if ((HEAP32[i8 + 8 >> 2] & 15 | 0) != 4) { 27632 if ((_luaV_tostring(i4, i8) | 0) == 0) { 27633 if ((i1 | 0) == 0) { 27634 i10 = 0; 27635 STACKTOP = i2; 27636 return i10 | 0; 27637 } 27638 HEAP32[i1 >> 2] = 0; 27639 i10 = 0; 27640 STACKTOP = i2; 27641 return i10 | 0; 27642 } 27643 i8 = i4 + 12 | 0; 27644 if ((HEAP32[(HEAP32[i8 >> 2] | 0) + 12 >> 2] | 0) > 0) { 27645 _luaC_step(i4); 27646 } 27647 i7 = HEAP32[i7 >> 2] | 0; 27648 if (i6) { 27649 i3 = (HEAP32[i7 >> 2] | 0) + (i5 << 4) | 0; 27650 i8 = i3 >>> 0 < (HEAP32[i4 + 8 >> 2] | 0) >>> 0 ? i3 : 5192; 27651 break; 27652 } 27653 if (!((i5 | 0) < -1000999)) { 27654 i8 = (HEAP32[i4 + 8 >> 2] | 0) + (i5 << 4) | 0; 27655 break; 27656 } 27657 if ((i5 | 0) == -1001e3) { 27658 i8 = (HEAP32[i8 >> 2] | 0) + 40 | 0; 27659 break; 27660 } 27661 i4 = -1001e3 - i5 | 0; 27662 i5 = HEAP32[i7 >> 2] | 0; 27663 if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i5 >> 2] | 0, (i4 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) { 27664 i8 = i3 + (i4 + -1 << 4) + 16 | 0; 27665 } else { 27666 i8 = 5192; 27667 } 27668 } 27669 } while (0); 27670 i3 = HEAP32[i8 >> 2] | 0; 27671 if ((i1 | 0) != 0) { 27672 HEAP32[i1 >> 2] = HEAP32[i3 + 12 >> 2]; 27673 } 27674 i10 = i3 + 16 | 0; 27675 STACKTOP = i2; 27676 return i10 | 0; 27677 } 27678 function _luaD_pcall(i3, i6, i5, i13, i14) { 27679 i3 = i3 | 0; 27680 i6 = i6 | 0; 27681 i5 = i5 | 0; 27682 i13 = i13 | 0; 27683 i14 = i14 | 0; 27684 var i1 = 0, i2 = 0, i4 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0; 27685 i1 = STACKTOP; 27686 i10 = i3 + 16 | 0; 27687 i11 = HEAP32[i10 >> 2] | 0; 27688 i12 = i3 + 41 | 0; 27689 i7 = HEAP8[i12] | 0; 27690 i9 = i3 + 36 | 0; 27691 i8 = HEAP16[i9 >> 1] | 0; 27692 i4 = i3 + 68 | 0; 27693 i2 = HEAP32[i4 >> 2] | 0; 27694 HEAP32[i4 >> 2] = i14; 27695 i5 = _luaD_rawrunprotected(i3, i6, i5) | 0; 27696 if ((i5 | 0) == 0) { 27697 HEAP32[i4 >> 2] = i2; 27698 STACKTOP = i1; 27699 return i5 | 0; 27700 } 27701 i6 = i3 + 28 | 0; 27702 i14 = HEAP32[i6 >> 2] | 0; 27703 i15 = i14 + i13 | 0; 27704 _luaF_close(i3, i15); 27705 if ((i5 | 0) == 6) { 27706 i16 = _luaS_newlstr(i3, 2424, 23) | 0; 27707 HEAP32[i15 >> 2] = i16; 27708 HEAP32[i14 + (i13 + 8) >> 2] = HEAPU8[i16 + 4 | 0] | 0 | 64; 27709 } else if ((i5 | 0) == 4) { 27710 i16 = HEAP32[(HEAP32[i3 + 12 >> 2] | 0) + 180 >> 2] | 0; 27711 HEAP32[i15 >> 2] = i16; 27712 HEAP32[i14 + (i13 + 8) >> 2] = HEAPU8[i16 + 4 | 0] | 0 | 64; 27713 } else { 27714 i16 = HEAP32[i3 + 8 >> 2] | 0; 27715 i18 = i16 + -16 | 0; 27716 i17 = HEAP32[i18 + 4 >> 2] | 0; 27717 HEAP32[i15 >> 2] = HEAP32[i18 >> 2]; 27718 HEAP32[i15 + 4 >> 2] = i17; 27719 HEAP32[i14 + (i13 + 8) >> 2] = HEAP32[i16 + -8 >> 2]; 27720 } 27721 i13 = i14 + (i13 + 16) | 0; 27722 HEAP32[i3 + 8 >> 2] = i13; 27723 HEAP32[i10 >> 2] = i11; 27724 HEAP8[i12] = i7; 27725 HEAP16[i9 >> 1] = i8; 27726 if ((i11 | 0) != 0) { 27727 do { 27728 i7 = HEAP32[i11 + 4 >> 2] | 0; 27729 i13 = i13 >>> 0 < i7 >>> 0 ? i7 : i13; 27730 i11 = HEAP32[i11 + 8 >> 2] | 0; 27731 } while ((i11 | 0) != 0); 27732 } 27733 i6 = i13 - (HEAP32[i6 >> 2] | 0) | 0; 27734 i7 = (i6 >> 4) + 1 | 0; 27735 i7 = ((i7 | 0) / 8 | 0) + 10 + i7 | 0; 27736 i7 = (i7 | 0) > 1e6 ? 1e6 : i7; 27737 if ((i6 | 0) > 15999984) { 27738 HEAP32[i4 >> 2] = i2; 27739 STACKTOP = i1; 27740 return i5 | 0; 27741 } 27742 if ((i7 | 0) >= (HEAP32[i3 + 32 >> 2] | 0)) { 27743 HEAP32[i4 >> 2] = i2; 27744 STACKTOP = i1; 27745 return i5 | 0; 27746 } 27747 _luaD_reallocstack(i3, i7); 27748 HEAP32[i4 >> 2] = i2; 27749 STACKTOP = i1; 27750 return i5 | 0; 27751 } 27752 function _luaH_resize(i1, i4, i6, i9) { 27753 i1 = i1 | 0; 27754 i4 = i4 | 0; 27755 i6 = i6 | 0; 27756 i9 = i9 | 0; 27757 var i2 = 0, i3 = 0, i5 = 0, i7 = 0, i8 = 0, i10 = 0, i11 = 0; 27758 i3 = STACKTOP; 27759 i8 = i4 + 28 | 0; 27760 i5 = HEAP32[i8 >> 2] | 0; 27761 i7 = HEAPU8[i4 + 7 | 0] | 0; 27762 i2 = HEAP32[i4 + 16 >> 2] | 0; 27763 if ((i5 | 0) < (i6 | 0)) { 27764 if ((i6 + 1 | 0) >>> 0 > 268435455) { 27765 _luaM_toobig(i1); 27766 } 27767 i11 = i4 + 12 | 0; 27768 i10 = _luaM_realloc_(i1, HEAP32[i11 >> 2] | 0, i5 << 4, i6 << 4) | 0; 27769 HEAP32[i11 >> 2] = i10; 27770 i11 = HEAP32[i8 >> 2] | 0; 27771 if ((i11 | 0) < (i6 | 0)) { 27772 do { 27773 HEAP32[i10 + (i11 << 4) + 8 >> 2] = 0; 27774 i11 = i11 + 1 | 0; 27775 } while ((i11 | 0) != (i6 | 0)); 27776 } 27777 HEAP32[i8 >> 2] = i6; 27778 } 27779 _setnodevector(i1, i4, i9); 27780 do { 27781 if ((i5 | 0) > (i6 | 0)) { 27782 HEAP32[i8 >> 2] = i6; 27783 i8 = i4 + 12 | 0; 27784 i9 = i6; 27785 do { 27786 i10 = HEAP32[i8 >> 2] | 0; 27787 if ((HEAP32[i10 + (i9 << 4) + 8 >> 2] | 0) == 0) { 27788 i9 = i9 + 1 | 0; 27789 } else { 27790 i11 = i9 + 1 | 0; 27791 _luaH_setint(i1, i4, i11, i10 + (i9 << 4) | 0); 27792 i9 = i11; 27793 } 27794 } while ((i9 | 0) != (i5 | 0)); 27795 if ((i6 + 1 | 0) >>> 0 > 268435455) { 27796 _luaM_toobig(i1); 27797 } else { 27798 i11 = i4 + 12 | 0; 27799 HEAP32[i11 >> 2] = _luaM_realloc_(i1, HEAP32[i11 >> 2] | 0, i5 << 4, i6 << 4) | 0; 27800 break; 27801 } 27802 } 27803 } while (0); 27804 i5 = 1 << i7; 27805 if ((i5 | 0) > 0) { 27806 i6 = i5; 27807 do { 27808 i6 = i6 + -1 | 0; 27809 i7 = i2 + (i6 << 5) + 8 | 0; 27810 if ((HEAP32[i7 >> 2] | 0) != 0) { 27811 i8 = i2 + (i6 << 5) + 16 | 0; 27812 i9 = _luaH_get(i4, i8) | 0; 27813 if ((i9 | 0) == 5192) { 27814 i9 = _luaH_newkey(i1, i4, i8) | 0; 27815 } 27816 i8 = i2 + (i6 << 5) | 0; 27817 i10 = HEAP32[i8 + 4 >> 2] | 0; 27818 i11 = i9; 27819 HEAP32[i11 >> 2] = HEAP32[i8 >> 2]; 27820 HEAP32[i11 + 4 >> 2] = i10; 27821 HEAP32[i9 + 8 >> 2] = HEAP32[i7 >> 2]; 27822 } 27823 } while ((i6 | 0) > 0); 27824 } 27825 if ((i2 | 0) == 8016) { 27826 STACKTOP = i3; 27827 return; 27828 } 27829 _luaM_realloc_(i1, i2, i5 << 5, 0) | 0; 27830 STACKTOP = i3; 27831 return; 27832 } 27833 function _codearith(i4, i3, i2, i6, i5) { 27834 i4 = i4 | 0; 27835 i3 = i3 | 0; 27836 i2 = i2 | 0; 27837 i6 = i6 | 0; 27838 i5 = i5 | 0; 27839 var i1 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, d13 = 0.0; 27840 i7 = STACKTOP; 27841 if (((((((HEAP32[i2 >> 2] | 0) == 5 ? (HEAP32[i2 + 16 >> 2] | 0) == -1 : 0) ? (HEAP32[i2 + 20 >> 2] | 0) == -1 : 0) ? (HEAP32[i6 >> 2] | 0) == 5 : 0) ? (HEAP32[i6 + 16 >> 2] | 0) == -1 : 0) ? (HEAP32[i6 + 20 >> 2] | 0) == -1 : 0) ? (d13 = +HEAPF64[i6 + 8 >> 3], !((i3 & -2 | 0) == 16 & d13 == 0.0)) : 0) { 27842 i12 = i2 + 8 | 0; 27843 HEAPF64[i12 >> 3] = +_luaO_arith(i3 + -13 | 0, +HEAPF64[i12 >> 3], d13); 27844 STACKTOP = i7; 27845 return; 27846 } 27847 if ((i3 | 0) == 19 | (i3 | 0) == 21) { 27848 i11 = 0; 27849 } else { 27850 i11 = _luaK_exp2RK(i4, i6) | 0; 27851 } 27852 i12 = _luaK_exp2RK(i4, i2) | 0; 27853 if ((i12 | 0) > (i11 | 0)) { 27854 if (((HEAP32[i2 >> 2] | 0) == 6 ? (i8 = HEAP32[i2 + 8 >> 2] | 0, (i8 & 256 | 0) == 0) : 0) ? (HEAPU8[i4 + 46 | 0] | 0 | 0) <= (i8 | 0) : 0) { 27855 i10 = i4 + 48 | 0; 27856 HEAP8[i10] = (HEAP8[i10] | 0) + -1 << 24 >> 24; 27857 } 27858 if (((HEAP32[i6 >> 2] | 0) == 6 ? (i1 = HEAP32[i6 + 8 >> 2] | 0, (i1 & 256 | 0) == 0) : 0) ? (HEAPU8[i4 + 46 | 0] | 0 | 0) <= (i1 | 0) : 0) { 27859 i10 = i4 + 48 | 0; 27860 HEAP8[i10] = (HEAP8[i10] | 0) + -1 << 24 >> 24; 27861 } 27862 } else { 27863 if (((HEAP32[i6 >> 2] | 0) == 6 ? (i10 = HEAP32[i6 + 8 >> 2] | 0, (i10 & 256 | 0) == 0) : 0) ? (HEAPU8[i4 + 46 | 0] | 0 | 0) <= (i10 | 0) : 0) { 27864 i10 = i4 + 48 | 0; 27865 HEAP8[i10] = (HEAP8[i10] | 0) + -1 << 24 >> 24; 27866 } 27867 if (((HEAP32[i2 >> 2] | 0) == 6 ? (i9 = HEAP32[i2 + 8 >> 2] | 0, (i9 & 256 | 0) == 0) : 0) ? (HEAPU8[i4 + 46 | 0] | 0 | 0) <= (i9 | 0) : 0) { 27868 i10 = i4 + 48 | 0; 27869 HEAP8[i10] = (HEAP8[i10] | 0) + -1 << 24 >> 24; 27870 } 27871 } 27872 HEAP32[i2 + 8 >> 2] = _luaK_code(i4, i11 << 14 | i3 | i12 << 23) | 0; 27873 HEAP32[i2 >> 2] = 11; 27874 HEAP32[(HEAP32[(HEAP32[i4 >> 2] | 0) + 20 >> 2] | 0) + ((HEAP32[i4 + 20 >> 2] | 0) + -1 << 2) >> 2] = i5; 27875 STACKTOP = i7; 27876 return; 27877 } 27878 function _GCTM(i1, i3) { 27879 i1 = i1 | 0; 27880 i3 = i3 | 0; 27881 var i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0; 27882 i4 = STACKTOP; 27883 STACKTOP = STACKTOP + 32 | 0; 27884 i2 = i4 + 16 | 0; 27885 i5 = i4; 27886 i6 = HEAP32[i1 + 12 >> 2] | 0; 27887 i9 = i6 + 104 | 0; 27888 i8 = HEAP32[i9 >> 2] | 0; 27889 HEAP32[i9 >> 2] = HEAP32[i8 >> 2]; 27890 i9 = i6 + 68 | 0; 27891 HEAP32[i8 >> 2] = HEAP32[i9 >> 2]; 27892 HEAP32[i9 >> 2] = i8; 27893 i9 = i8 + 5 | 0; 27894 i7 = HEAPU8[i9] | 0; 27895 HEAP8[i9] = i7 & 239; 27896 if ((HEAPU8[i6 + 61 | 0] | 0) >= 2) { 27897 HEAP8[i9] = HEAP8[i6 + 60 | 0] & 3 | i7 & 168; 27898 } 27899 HEAP32[i5 >> 2] = i8; 27900 i7 = i5 + 8 | 0; 27901 HEAP32[i7 >> 2] = HEAPU8[i8 + 4 | 0] | 0 | 64; 27902 i8 = _luaT_gettmbyobj(i1, i5, 2) | 0; 27903 if ((i8 | 0) == 0) { 27904 STACKTOP = i4; 27905 return; 27906 } 27907 i9 = i8 + 8 | 0; 27908 if ((HEAP32[i9 >> 2] & 15 | 0) != 6) { 27909 STACKTOP = i4; 27910 return; 27911 } 27912 i12 = i1 + 41 | 0; 27913 i13 = HEAP8[i12] | 0; 27914 i10 = i6 + 63 | 0; 27915 i11 = HEAP8[i10] | 0; 27916 HEAP8[i12] = 0; 27917 HEAP8[i10] = 0; 27918 i6 = i1 + 8 | 0; 27919 i14 = HEAP32[i6 >> 2] | 0; 27920 i16 = i8; 27921 i15 = HEAP32[i16 + 4 >> 2] | 0; 27922 i8 = i14; 27923 HEAP32[i8 >> 2] = HEAP32[i16 >> 2]; 27924 HEAP32[i8 + 4 >> 2] = i15; 27925 HEAP32[i14 + 8 >> 2] = HEAP32[i9 >> 2]; 27926 i9 = HEAP32[i6 >> 2] | 0; 27927 i14 = i5; 27928 i8 = HEAP32[i14 + 4 >> 2] | 0; 27929 i5 = i9 + 16 | 0; 27930 HEAP32[i5 >> 2] = HEAP32[i14 >> 2]; 27931 HEAP32[i5 + 4 >> 2] = i8; 27932 HEAP32[i9 + 24 >> 2] = HEAP32[i7 >> 2]; 27933 i5 = HEAP32[i6 >> 2] | 0; 27934 HEAP32[i6 >> 2] = i5 + 32; 27935 i5 = _luaD_pcall(i1, 7, 0, i5 - (HEAP32[i1 + 28 >> 2] | 0) | 0, 0) | 0; 27936 HEAP8[i12] = i13; 27937 HEAP8[i10] = i11; 27938 if ((i5 | 0) == 0 | (i3 | 0) == 0) { 27939 STACKTOP = i4; 27940 return; 27941 } 27942 if ((i5 | 0) != 2) { 27943 i16 = i5; 27944 _luaD_throw(i1, i16); 27945 } 27946 i3 = HEAP32[i6 >> 2] | 0; 27947 if ((HEAP32[i3 + -8 >> 2] & 15 | 0) == 4) { 27948 i3 = (HEAP32[i3 + -16 >> 2] | 0) + 16 | 0; 27949 } else { 27950 i3 = 2528; 27951 } 27952 HEAP32[i2 >> 2] = i3; 27953 _luaO_pushfstring(i1, 2544, i2) | 0; 27954 i16 = 5; 27955 _luaD_throw(i1, i16); 27956 } 27957 function _lua_gc(i3, i5, i4) { 27958 i3 = i3 | 0; 27959 i5 = i5 | 0; 27960 i4 = i4 | 0; 27961 var i1 = 0, i2 = 0; 27962 i1 = STACKTOP; 27963 i2 = HEAP32[i3 + 12 >> 2] | 0; 27964 L1 : do { 27965 switch (i5 | 0) { 27966 case 8: 27967 { 27968 i5 = i2 + 160 | 0; 27969 i2 = HEAP32[i5 >> 2] | 0; 27970 HEAP32[i5 >> 2] = i4; 27971 break; 27972 } 27973 case 11: 27974 { 27975 _luaC_changemode(i3, 0); 27976 i2 = 0; 27977 break; 27978 } 27979 case 2: 27980 { 27981 _luaC_fullgc(i3, 0); 27982 i2 = 0; 27983 break; 27984 } 27985 case 5: 27986 { 27987 if ((HEAP8[i2 + 62 | 0] | 0) == 2) { 27988 i2 = (HEAP32[i2 + 20 >> 2] | 0) == 0 | 0; 27989 _luaC_forcestep(i3); 27990 break L1; 27991 } 27992 i4 = (i4 << 10) + -1600 | 0; 27993 if ((HEAP8[i2 + 63 | 0] | 0) == 0) { 27994 i5 = i4; 27995 _luaE_setdebt(i2, i5); 27996 _luaC_forcestep(i3); 27997 i5 = i2 + 61 | 0; 27998 i5 = HEAP8[i5] | 0; 27999 i5 = i5 << 24 >> 24 == 5; 28000 i5 = i5 & 1; 28001 STACKTOP = i1; 28002 return i5 | 0; 28003 } 28004 i5 = (HEAP32[i2 + 12 >> 2] | 0) + i4 | 0; 28005 _luaE_setdebt(i2, i5); 28006 _luaC_forcestep(i3); 28007 i5 = i2 + 61 | 0; 28008 i5 = HEAP8[i5] | 0; 28009 i5 = i5 << 24 >> 24 == 5; 28010 i5 = i5 & 1; 28011 STACKTOP = i1; 28012 return i5 | 0; 28013 } 28014 case 4: 28015 { 28016 i2 = (HEAP32[i2 + 12 >> 2] | 0) + (HEAP32[i2 + 8 >> 2] | 0) & 1023; 28017 break; 28018 } 28019 case 1: 28020 { 28021 _luaE_setdebt(i2, 0); 28022 HEAP8[i2 + 63 | 0] = 1; 28023 i2 = 0; 28024 break; 28025 } 28026 case 3: 28027 { 28028 i2 = ((HEAP32[i2 + 12 >> 2] | 0) + (HEAP32[i2 + 8 >> 2] | 0) | 0) >>> 10; 28029 break; 28030 } 28031 case 7: 28032 { 28033 i5 = i2 + 164 | 0; 28034 i2 = HEAP32[i5 >> 2] | 0; 28035 HEAP32[i5 >> 2] = i4; 28036 break; 28037 } 28038 case 0: 28039 { 28040 HEAP8[i2 + 63 | 0] = 0; 28041 i2 = 0; 28042 break; 28043 } 28044 case 6: 28045 { 28046 i5 = i2 + 156 | 0; 28047 i2 = HEAP32[i5 >> 2] | 0; 28048 HEAP32[i5 >> 2] = i4; 28049 break; 28050 } 28051 case 9: 28052 { 28053 i2 = HEAPU8[i2 + 63 | 0] | 0; 28054 break; 28055 } 28056 case 10: 28057 { 28058 _luaC_changemode(i3, 2); 28059 i2 = 0; 28060 break; 28061 } 28062 default: 28063 { 28064 i2 = -1; 28065 } 28066 } 28067 } while (0); 28068 STACKTOP = i1; 28069 return i2 | 0; 28070 } 28071 function _os_time(i1) { 28072 i1 = i1 | 0; 28073 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0; 28074 i2 = STACKTOP; 28075 STACKTOP = STACKTOP + 64 | 0; 28076 i4 = i2; 28077 i5 = i2 + 48 | 0; 28078 i3 = i2 + 4 | 0; 28079 if ((_lua_type(i1, 1) | 0) < 1) { 28080 i3 = _time(0) | 0; 28081 } else { 28082 _luaL_checktype(i1, 1, 5); 28083 _lua_settop(i1, 1); 28084 _lua_getfield(i1, -1, 5864); 28085 i6 = _lua_tointegerx(i1, -1, i4) | 0; 28086 i6 = (HEAP32[i4 >> 2] | 0) == 0 ? 0 : i6; 28087 _lua_settop(i1, -2); 28088 HEAP32[i3 >> 2] = i6; 28089 _lua_getfield(i1, -1, 5872); 28090 i6 = _lua_tointegerx(i1, -1, i4) | 0; 28091 i6 = (HEAP32[i4 >> 2] | 0) == 0 ? 0 : i6; 28092 _lua_settop(i1, -2); 28093 HEAP32[i3 + 4 >> 2] = i6; 28094 _lua_getfield(i1, -1, 5880); 28095 i6 = _lua_tointegerx(i1, -1, i4) | 0; 28096 i6 = (HEAP32[i4 >> 2] | 0) == 0 ? 12 : i6; 28097 _lua_settop(i1, -2); 28098 HEAP32[i3 + 8 >> 2] = i6; 28099 _lua_getfield(i1, -1, 5888); 28100 i6 = _lua_tointegerx(i1, -1, i5) | 0; 28101 if ((HEAP32[i5 >> 2] | 0) == 0) { 28102 HEAP32[i4 >> 2] = 5888; 28103 i6 = _luaL_error(i1, 5920, i4) | 0; 28104 } else { 28105 _lua_settop(i1, -2); 28106 } 28107 HEAP32[i3 + 12 >> 2] = i6; 28108 _lua_getfield(i1, -1, 5896); 28109 i6 = _lua_tointegerx(i1, -1, i5) | 0; 28110 if ((HEAP32[i5 >> 2] | 0) == 0) { 28111 HEAP32[i4 >> 2] = 5896; 28112 i6 = _luaL_error(i1, 5920, i4) | 0; 28113 } else { 28114 _lua_settop(i1, -2); 28115 } 28116 HEAP32[i3 + 16 >> 2] = i6 + -1; 28117 _lua_getfield(i1, -1, 5904); 28118 i6 = _lua_tointegerx(i1, -1, i5) | 0; 28119 if ((HEAP32[i5 >> 2] | 0) == 0) { 28120 HEAP32[i4 >> 2] = 5904; 28121 i6 = _luaL_error(i1, 5920, i4) | 0; 28122 } else { 28123 _lua_settop(i1, -2); 28124 } 28125 HEAP32[i3 + 20 >> 2] = i6 + -1900; 28126 _lua_getfield(i1, -1, 5912); 28127 if ((_lua_type(i1, -1) | 0) == 0) { 28128 i4 = -1; 28129 } else { 28130 i4 = _lua_toboolean(i1, -1) | 0; 28131 } 28132 _lua_settop(i1, -2); 28133 HEAP32[i3 + 32 >> 2] = i4; 28134 i3 = _mktime(i3 | 0) | 0; 28135 } 28136 if ((i3 | 0) == -1) { 28137 _lua_pushnil(i1); 28138 STACKTOP = i2; 28139 return 1; 28140 } else { 28141 _lua_pushnumber(i1, +(i3 | 0)); 28142 STACKTOP = i2; 28143 return 1; 28144 } 28145 return 0; 28146 } 28147 function _addk(i6, i4, i3) { 28148 i6 = i6 | 0; 28149 i4 = i4 | 0; 28150 i3 = i3 | 0; 28151 var i1 = 0, i2 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0; 28152 i1 = STACKTOP; 28153 STACKTOP = STACKTOP + 16 | 0; 28154 i10 = i1; 28155 i2 = HEAP32[(HEAP32[i6 + 12 >> 2] | 0) + 52 >> 2] | 0; 28156 i8 = _luaH_set(i2, HEAP32[i6 + 4 >> 2] | 0, i4) | 0; 28157 i4 = HEAP32[i6 >> 2] | 0; 28158 i9 = i8 + 8 | 0; 28159 if (((HEAP32[i9 >> 2] | 0) == 3 ? (HEAPF64[i10 >> 3] = +HEAPF64[i8 >> 3] + 6755399441055744.0, i7 = HEAP32[i10 >> 2] | 0, i5 = HEAP32[i4 + 8 >> 2] | 0, (HEAP32[i5 + (i7 << 4) + 8 >> 2] | 0) == (HEAP32[i3 + 8 >> 2] | 0)) : 0) ? (_luaV_equalobj_(0, i5 + (i7 << 4) | 0, i3) | 0) != 0 : 0) { 28160 i10 = i7; 28161 STACKTOP = i1; 28162 return i10 | 0; 28163 } 28164 i5 = i4 + 44 | 0; 28165 i10 = HEAP32[i5 >> 2] | 0; 28166 i7 = i6 + 32 | 0; 28167 i6 = HEAP32[i7 >> 2] | 0; 28168 HEAPF64[i8 >> 3] = +(i6 | 0); 28169 HEAP32[i9 >> 2] = 3; 28170 i9 = HEAP32[i5 >> 2] | 0; 28171 if ((i6 | 0) >= (i9 | 0)) { 28172 i9 = i4 + 8 | 0; 28173 HEAP32[i9 >> 2] = _luaM_growaux_(i2, HEAP32[i9 >> 2] | 0, i5, 16, 67108863, 10600) | 0; 28174 i9 = HEAP32[i5 >> 2] | 0; 28175 } 28176 i8 = HEAP32[i4 + 8 >> 2] | 0; 28177 if ((i10 | 0) < (i9 | 0)) { 28178 while (1) { 28179 i9 = i10 + 1 | 0; 28180 HEAP32[i8 + (i10 << 4) + 8 >> 2] = 0; 28181 if ((i9 | 0) < (HEAP32[i5 >> 2] | 0)) { 28182 i10 = i9; 28183 } else { 28184 break; 28185 } 28186 } 28187 } 28188 i5 = i3; 28189 i9 = HEAP32[i5 + 4 >> 2] | 0; 28190 i10 = i8 + (i6 << 4) | 0; 28191 HEAP32[i10 >> 2] = HEAP32[i5 >> 2]; 28192 HEAP32[i10 + 4 >> 2] = i9; 28193 i10 = i3 + 8 | 0; 28194 HEAP32[i8 + (i6 << 4) + 8 >> 2] = HEAP32[i10 >> 2]; 28195 HEAP32[i7 >> 2] = (HEAP32[i7 >> 2] | 0) + 1; 28196 if ((HEAP32[i10 >> 2] & 64 | 0) == 0) { 28197 i10 = i6; 28198 STACKTOP = i1; 28199 return i10 | 0; 28200 } 28201 i3 = HEAP32[i3 >> 2] | 0; 28202 if ((HEAP8[i3 + 5 | 0] & 3) == 0) { 28203 i10 = i6; 28204 STACKTOP = i1; 28205 return i10 | 0; 28206 } 28207 if ((HEAP8[i4 + 5 | 0] & 4) == 0) { 28208 i10 = i6; 28209 STACKTOP = i1; 28210 return i10 | 0; 28211 } 28212 _luaC_barrier_(i2, i4, i3); 28213 i10 = i6; 28214 STACKTOP = i1; 28215 return i10 | 0; 28216 } 28217 function _singlevaraux(i5, i4, i2, i11) { 28218 i5 = i5 | 0; 28219 i4 = i4 | 0; 28220 i2 = i2 | 0; 28221 i11 = i11 | 0; 28222 var i1 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0; 28223 i1 = STACKTOP; 28224 if ((i5 | 0) == 0) { 28225 i11 = 0; 28226 STACKTOP = i1; 28227 return i11 | 0; 28228 } 28229 i7 = i5 + 12 | 0; 28230 i8 = i5 + 40 | 0; 28231 i9 = HEAPU8[i5 + 46 | 0] | 0; 28232 while (1) { 28233 i6 = i9 + -1 | 0; 28234 i10 = HEAP32[i5 >> 2] | 0; 28235 if ((i9 | 0) <= 0) { 28236 break; 28237 } 28238 if ((_luaS_eqstr(i4, HEAP32[(HEAP32[i10 + 24 >> 2] | 0) + ((HEAP16[(HEAP32[HEAP32[(HEAP32[i7 >> 2] | 0) + 64 >> 2] >> 2] | 0) + ((HEAP32[i8 >> 2] | 0) + i6 << 1) >> 1] | 0) * 12 | 0) >> 2] | 0) | 0) == 0) { 28239 i9 = i6; 28240 } else { 28241 i3 = 5; 28242 break; 28243 } 28244 } 28245 if ((i3 | 0) == 5) { 28246 HEAP32[i2 + 16 >> 2] = -1; 28247 HEAP32[i2 + 20 >> 2] = -1; 28248 HEAP32[i2 >> 2] = 7; 28249 HEAP32[i2 + 8 >> 2] = i6; 28250 if ((i11 | 0) != 0) { 28251 i11 = 7; 28252 STACKTOP = i1; 28253 return i11 | 0; 28254 } 28255 i2 = i5 + 16 | 0; 28256 do { 28257 i2 = HEAP32[i2 >> 2] | 0; 28258 } while ((HEAPU8[i2 + 8 | 0] | 0) > (i6 | 0)); 28259 HEAP8[i2 + 9 | 0] = 1; 28260 i11 = 7; 28261 STACKTOP = i1; 28262 return i11 | 0; 28263 } 28264 i7 = HEAP32[i10 + 28 >> 2] | 0; 28265 i6 = i5 + 47 | 0; 28266 L17 : do { 28267 if ((HEAP8[i6] | 0) != 0) { 28268 i8 = 0; 28269 while (1) { 28270 i9 = i8 + 1 | 0; 28271 if ((_luaS_eqstr(HEAP32[i7 + (i8 << 3) >> 2] | 0, i4) | 0) != 0) { 28272 break; 28273 } 28274 if ((i9 | 0) < (HEAPU8[i6] | 0)) { 28275 i8 = i9; 28276 } else { 28277 i3 = 13; 28278 break L17; 28279 } 28280 } 28281 if ((i8 | 0) < 0) { 28282 i3 = 13; 28283 } 28284 } else { 28285 i3 = 13; 28286 } 28287 } while (0); 28288 do { 28289 if ((i3 | 0) == 13) { 28290 if ((_singlevaraux(HEAP32[i5 + 8 >> 2] | 0, i4, i2, 0) | 0) == 0) { 28291 i11 = 0; 28292 STACKTOP = i1; 28293 return i11 | 0; 28294 } else { 28295 i8 = _newupvalue(i5, i4, i2) | 0; 28296 break; 28297 } 28298 } 28299 } while (0); 28300 HEAP32[i2 + 16 >> 2] = -1; 28301 HEAP32[i2 + 20 >> 2] = -1; 28302 HEAP32[i2 >> 2] = 8; 28303 HEAP32[i2 + 8 >> 2] = i8; 28304 i11 = 8; 28305 STACKTOP = i1; 28306 return i11 | 0; 28307 } 28308 function _mainposition(i1, i3) { 28309 i1 = i1 | 0; 28310 i3 = i3 | 0; 28311 var i2 = 0, i4 = 0, i5 = 0, i6 = 0; 28312 i2 = STACKTOP; 28313 STACKTOP = STACKTOP + 16 | 0; 28314 i4 = i2; 28315 switch (HEAP32[i3 + 8 >> 2] & 63 | 0) { 28316 case 3: 28317 { 28318 HEAPF64[i4 >> 3] = +HEAPF64[i3 >> 3] + 1.0; 28319 i3 = (HEAP32[i4 + 4 >> 2] | 0) + (HEAP32[i4 >> 2] | 0) | 0; 28320 if ((i3 | 0) < 0) { 28321 i4 = 0 - i3 | 0; 28322 i3 = (i3 | 0) == (i4 | 0) ? 0 : i4; 28323 } 28324 i5 = (HEAP32[i1 + 16 >> 2] | 0) + (((i3 | 0) % ((1 << HEAPU8[i1 + 7 | 0]) + -1 | 1 | 0) | 0) << 5) | 0; 28325 STACKTOP = i2; 28326 return i5 | 0; 28327 } 28328 case 2: 28329 { 28330 i5 = (HEAP32[i1 + 16 >> 2] | 0) + ((((HEAP32[i3 >> 2] | 0) >>> 0) % (((1 << HEAPU8[i1 + 7 | 0]) + -1 | 1) >>> 0) | 0) << 5) | 0; 28331 STACKTOP = i2; 28332 return i5 | 0; 28333 } 28334 case 20: 28335 { 28336 i5 = HEAP32[i3 >> 2] | 0; 28337 i4 = i5 + 6 | 0; 28338 if ((HEAP8[i4] | 0) == 0) { 28339 i6 = i5 + 8 | 0; 28340 HEAP32[i6 >> 2] = _luaS_hash(i5 + 16 | 0, HEAP32[i5 + 12 >> 2] | 0, HEAP32[i6 >> 2] | 0) | 0; 28341 HEAP8[i4] = 1; 28342 i5 = HEAP32[i3 >> 2] | 0; 28343 } 28344 i6 = (HEAP32[i1 + 16 >> 2] | 0) + (((1 << HEAPU8[i1 + 7 | 0]) + -1 & HEAP32[i5 + 8 >> 2]) << 5) | 0; 28345 STACKTOP = i2; 28346 return i6 | 0; 28347 } 28348 case 22: 28349 { 28350 i6 = (HEAP32[i1 + 16 >> 2] | 0) + ((((HEAP32[i3 >> 2] | 0) >>> 0) % (((1 << HEAPU8[i1 + 7 | 0]) + -1 | 1) >>> 0) | 0) << 5) | 0; 28351 STACKTOP = i2; 28352 return i6 | 0; 28353 } 28354 case 4: 28355 { 28356 i6 = (HEAP32[i1 + 16 >> 2] | 0) + (((1 << HEAPU8[i1 + 7 | 0]) + -1 & HEAP32[(HEAP32[i3 >> 2] | 0) + 8 >> 2]) << 5) | 0; 28357 STACKTOP = i2; 28358 return i6 | 0; 28359 } 28360 case 1: 28361 { 28362 i6 = (HEAP32[i1 + 16 >> 2] | 0) + (((1 << HEAPU8[i1 + 7 | 0]) + -1 & HEAP32[i3 >> 2]) << 5) | 0; 28363 STACKTOP = i2; 28364 return i6 | 0; 28365 } 28366 default: 28367 { 28368 i6 = (HEAP32[i1 + 16 >> 2] | 0) + ((((HEAP32[i3 >> 2] | 0) >>> 0) % (((1 << HEAPU8[i1 + 7 | 0]) + -1 | 1) >>> 0) | 0) << 5) | 0; 28369 STACKTOP = i2; 28370 return i6 | 0; 28371 } 28372 } 28373 return 0; 28374 } 28375 function _clearvalues(i2, i5, i1) { 28376 i2 = i2 | 0; 28377 i5 = i5 | 0; 28378 i1 = i1 | 0; 28379 var i3 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0; 28380 i4 = STACKTOP; 28381 if ((i5 | 0) == (i1 | 0)) { 28382 STACKTOP = i4; 28383 return; 28384 } 28385 do { 28386 i7 = i5 + 16 | 0; 28387 i9 = HEAP32[i7 >> 2] | 0; 28388 i6 = i9 + (1 << (HEAPU8[i5 + 7 | 0] | 0) << 5) | 0; 28389 i8 = i5 + 28 | 0; 28390 if ((HEAP32[i8 >> 2] | 0) > 0) { 28391 i11 = i5 + 12 | 0; 28392 i12 = 0; 28393 do { 28394 i13 = HEAP32[i11 >> 2] | 0; 28395 i10 = i13 + (i12 << 4) + 8 | 0; 28396 i9 = HEAP32[i10 >> 2] | 0; 28397 do { 28398 if ((i9 & 64 | 0) != 0) { 28399 i13 = HEAP32[i13 + (i12 << 4) >> 2] | 0; 28400 if ((i9 & 15 | 0) != 4) { 28401 if ((HEAP8[i13 + 5 | 0] & 3) == 0) { 28402 break; 28403 } 28404 HEAP32[i10 >> 2] = 0; 28405 break; 28406 } 28407 if ((i13 | 0) != 0 ? !((HEAP8[i13 + 5 | 0] & 3) == 0) : 0) { 28408 _reallymarkobject(i2, i13); 28409 } 28410 } 28411 } while (0); 28412 i12 = i12 + 1 | 0; 28413 } while ((i12 | 0) < (HEAP32[i8 >> 2] | 0)); 28414 i7 = HEAP32[i7 >> 2] | 0; 28415 } else { 28416 i7 = i9; 28417 } 28418 if (i7 >>> 0 < i6 >>> 0) { 28419 do { 28420 i8 = i7 + 8 | 0; 28421 i9 = HEAP32[i8 >> 2] | 0; 28422 do { 28423 if (!((i9 | 0) == 0 | (i9 & 64 | 0) == 0)) { 28424 i10 = HEAP32[i7 >> 2] | 0; 28425 if ((i9 & 15 | 0) == 4) { 28426 if ((i10 | 0) == 0) { 28427 break; 28428 } 28429 if ((HEAP8[i10 + 5 | 0] & 3) == 0) { 28430 break; 28431 } 28432 _reallymarkobject(i2, i10); 28433 break; 28434 } 28435 if ((!((HEAP8[i10 + 5 | 0] & 3) == 0) ? (HEAP32[i8 >> 2] = 0, i3 = i7 + 24 | 0, (HEAP32[i3 >> 2] & 64 | 0) != 0) : 0) ? !((HEAP8[(HEAP32[i7 + 16 >> 2] | 0) + 5 | 0] & 3) == 0) : 0) { 28436 HEAP32[i3 >> 2] = 11; 28437 } 28438 } 28439 } while (0); 28440 i7 = i7 + 32 | 0; 28441 } while (i7 >>> 0 < i6 >>> 0); 28442 } 28443 i5 = HEAP32[i5 + 24 >> 2] | 0; 28444 } while ((i5 | 0) != (i1 | 0)); 28445 STACKTOP = i4; 28446 return; 28447 } 28448 function _reallymarkobject(i1, i4) { 28449 i1 = i1 | 0; 28450 i4 = i4 | 0; 28451 var i2 = 0, i3 = 0, i5 = 0, i6 = 0, i7 = 0; 28452 i3 = STACKTOP; 28453 i2 = i4 + 5 | 0; 28454 HEAP8[i2] = HEAP8[i2] & 252; 28455 switch (HEAPU8[i4 + 4 | 0] | 0 | 0) { 28456 case 6: 28457 { 28458 i7 = i1 + 84 | 0; 28459 HEAP32[i4 + 8 >> 2] = HEAP32[i7 >> 2]; 28460 HEAP32[i7 >> 2] = i4; 28461 STACKTOP = i3; 28462 return; 28463 } 28464 case 20: 28465 case 4: 28466 { 28467 i4 = (HEAP32[i4 + 12 >> 2] | 0) + 17 | 0; 28468 break; 28469 } 28470 case 7: 28471 { 28472 i5 = HEAP32[i4 + 8 >> 2] | 0; 28473 if ((i5 | 0) != 0 ? !((HEAP8[i5 + 5 | 0] & 3) == 0) : 0) { 28474 _reallymarkobject(i1, i5); 28475 } 28476 i5 = HEAP32[i4 + 12 >> 2] | 0; 28477 if ((i5 | 0) != 0 ? !((HEAP8[i5 + 5 | 0] & 3) == 0) : 0) { 28478 _reallymarkobject(i1, i5); 28479 } 28480 i4 = (HEAP32[i4 + 16 >> 2] | 0) + 24 | 0; 28481 break; 28482 } 28483 case 8: 28484 { 28485 i7 = i1 + 84 | 0; 28486 HEAP32[i4 + 60 >> 2] = HEAP32[i7 >> 2]; 28487 HEAP32[i7 >> 2] = i4; 28488 STACKTOP = i3; 28489 return; 28490 } 28491 case 10: 28492 { 28493 i6 = i4 + 8 | 0; 28494 i7 = HEAP32[i6 >> 2] | 0; 28495 if ((HEAP32[i7 + 8 >> 2] & 64 | 0) != 0 ? (i5 = HEAP32[i7 >> 2] | 0, !((HEAP8[i5 + 5 | 0] & 3) == 0)) : 0) { 28496 _reallymarkobject(i1, i5); 28497 i7 = HEAP32[i6 >> 2] | 0; 28498 } 28499 if ((i7 | 0) == (i4 + 16 | 0)) { 28500 i4 = 32; 28501 } else { 28502 STACKTOP = i3; 28503 return; 28504 } 28505 break; 28506 } 28507 case 5: 28508 { 28509 i7 = i1 + 84 | 0; 28510 HEAP32[i4 + 24 >> 2] = HEAP32[i7 >> 2]; 28511 HEAP32[i7 >> 2] = i4; 28512 STACKTOP = i3; 28513 return; 28514 } 28515 case 38: 28516 { 28517 i7 = i1 + 84 | 0; 28518 HEAP32[i4 + 8 >> 2] = HEAP32[i7 >> 2]; 28519 HEAP32[i7 >> 2] = i4; 28520 STACKTOP = i3; 28521 return; 28522 } 28523 case 9: 28524 { 28525 i7 = i1 + 84 | 0; 28526 HEAP32[i4 + 72 >> 2] = HEAP32[i7 >> 2]; 28527 HEAP32[i7 >> 2] = i4; 28528 STACKTOP = i3; 28529 return; 28530 } 28531 default: 28532 { 28533 STACKTOP = i3; 28534 return; 28535 } 28536 } 28537 HEAP8[i2] = HEAPU8[i2] | 0 | 4; 28538 i7 = i1 + 16 | 0; 28539 HEAP32[i7 >> 2] = (HEAP32[i7 >> 2] | 0) + i4; 28540 STACKTOP = i3; 28541 return; 28542 } 28543 function _lua_upvaluejoin(i1, i9, i7, i6, i3) { 28544 i1 = i1 | 0; 28545 i9 = i9 | 0; 28546 i7 = i7 | 0; 28547 i6 = i6 | 0; 28548 i3 = i3 | 0; 28549 var i2 = 0, i4 = 0, i5 = 0, i8 = 0, i10 = 0; 28550 i2 = STACKTOP; 28551 i5 = HEAP32[i1 + 16 >> 2] | 0; 28552 do { 28553 if ((i9 | 0) <= 0) { 28554 if (!((i9 | 0) < -1000999)) { 28555 i8 = (HEAP32[i1 + 8 >> 2] | 0) + (i9 << 4) | 0; 28556 break; 28557 } 28558 if ((i9 | 0) == -1001e3) { 28559 i8 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0; 28560 break; 28561 } 28562 i10 = -1001e3 - i9 | 0; 28563 i9 = HEAP32[i5 >> 2] | 0; 28564 if ((HEAP32[i9 + 8 >> 2] | 0) != 22 ? (i8 = HEAP32[i9 >> 2] | 0, (i10 | 0) <= (HEAPU8[i8 + 6 | 0] | 0 | 0)) : 0) { 28565 i8 = i8 + (i10 + -1 << 4) + 16 | 0; 28566 } else { 28567 i8 = 5192; 28568 } 28569 } else { 28570 i8 = (HEAP32[i5 >> 2] | 0) + (i9 << 4) | 0; 28571 i8 = i8 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i8 : 5192; 28572 } 28573 } while (0); 28574 i8 = HEAP32[i8 >> 2] | 0; 28575 i7 = i8 + 16 + (i7 + -1 << 2) | 0; 28576 do { 28577 if ((i6 | 0) <= 0) { 28578 if (!((i6 | 0) < -1000999)) { 28579 i4 = (HEAP32[i1 + 8 >> 2] | 0) + (i6 << 4) | 0; 28580 break; 28581 } 28582 if ((i6 | 0) == -1001e3) { 28583 i4 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0; 28584 break; 28585 } 28586 i6 = -1001e3 - i6 | 0; 28587 i5 = HEAP32[i5 >> 2] | 0; 28588 if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i5 >> 2] | 0, (i6 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) { 28589 i4 = i4 + (i6 + -1 << 4) + 16 | 0; 28590 } else { 28591 i4 = 5192; 28592 } 28593 } else { 28594 i4 = (HEAP32[i5 >> 2] | 0) + (i6 << 4) | 0; 28595 i4 = i4 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i4 : 5192; 28596 } 28597 } while (0); 28598 i3 = (HEAP32[i4 >> 2] | 0) + 16 + (i3 + -1 << 2) | 0; 28599 HEAP32[i7 >> 2] = HEAP32[i3 >> 2]; 28600 i3 = HEAP32[i3 >> 2] | 0; 28601 if ((HEAP8[i3 + 5 | 0] & 3) == 0) { 28602 STACKTOP = i2; 28603 return; 28604 } 28605 if ((HEAP8[i8 + 5 | 0] & 4) == 0) { 28606 STACKTOP = i2; 28607 return; 28608 } 28609 _luaC_barrier_(i1, i8, i3); 28610 STACKTOP = i2; 28611 return; 28612 } 28613 function _lua_upvalueid(i5, i7, i1) { 28614 i5 = i5 | 0; 28615 i7 = i7 | 0; 28616 i1 = i1 | 0; 28617 var i2 = 0, i3 = 0, i4 = 0, i6 = 0, i8 = 0, i9 = 0, i10 = 0; 28618 i2 = STACKTOP; 28619 i4 = HEAP32[i5 + 16 >> 2] | 0; 28620 i6 = (i7 | 0) > 0; 28621 do { 28622 if (!i6) { 28623 if (!((i7 | 0) < -1000999)) { 28624 i8 = (HEAP32[i5 + 8 >> 2] | 0) + (i7 << 4) | 0; 28625 break; 28626 } 28627 if ((i7 | 0) == -1001e3) { 28628 i8 = (HEAP32[i5 + 12 >> 2] | 0) + 40 | 0; 28629 break; 28630 } 28631 i10 = -1001e3 - i7 | 0; 28632 i9 = HEAP32[i4 >> 2] | 0; 28633 if ((HEAP32[i9 + 8 >> 2] | 0) != 22 ? (i8 = HEAP32[i9 >> 2] | 0, (i10 | 0) <= (HEAPU8[i8 + 6 | 0] | 0 | 0)) : 0) { 28634 i8 = i8 + (i10 + -1 << 4) + 16 | 0; 28635 } else { 28636 i8 = 5192; 28637 } 28638 } else { 28639 i8 = (HEAP32[i4 >> 2] | 0) + (i7 << 4) | 0; 28640 i8 = i8 >>> 0 < (HEAP32[i5 + 8 >> 2] | 0) >>> 0 ? i8 : 5192; 28641 } 28642 } while (0); 28643 i9 = HEAP32[i8 + 8 >> 2] & 63; 28644 if ((i9 | 0) == 38) { 28645 i10 = (HEAP32[i8 >> 2] | 0) + (i1 + -1 << 4) + 16 | 0; 28646 STACKTOP = i2; 28647 return i10 | 0; 28648 } else if ((i9 | 0) == 6) { 28649 do { 28650 if (!i6) { 28651 if (!((i7 | 0) < -1000999)) { 28652 i3 = (HEAP32[i5 + 8 >> 2] | 0) + (i7 << 4) | 0; 28653 break; 28654 } 28655 if ((i7 | 0) == -1001e3) { 28656 i3 = (HEAP32[i5 + 12 >> 2] | 0) + 40 | 0; 28657 break; 28658 } 28659 i5 = -1001e3 - i7 | 0; 28660 i4 = HEAP32[i4 >> 2] | 0; 28661 if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i4 >> 2] | 0, (i5 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) { 28662 i3 = i3 + (i5 + -1 << 4) + 16 | 0; 28663 } else { 28664 i3 = 5192; 28665 } 28666 } else { 28667 i3 = (HEAP32[i4 >> 2] | 0) + (i7 << 4) | 0; 28668 i3 = i3 >>> 0 < (HEAP32[i5 + 8 >> 2] | 0) >>> 0 ? i3 : 5192; 28669 } 28670 } while (0); 28671 i10 = HEAP32[(HEAP32[i3 >> 2] | 0) + 16 + (i1 + -1 << 2) >> 2] | 0; 28672 STACKTOP = i2; 28673 return i10 | 0; 28674 } else { 28675 i10 = 0; 28676 STACKTOP = i2; 28677 return i10 | 0; 28678 } 28679 return 0; 28680 } 28681 function _lua_rawequal(i2, i6, i4) { 28682 i2 = i2 | 0; 28683 i6 = i6 | 0; 28684 i4 = i4 | 0; 28685 var i1 = 0, i3 = 0, i5 = 0, i7 = 0; 28686 i1 = STACKTOP; 28687 i3 = HEAP32[i2 + 16 >> 2] | 0; 28688 do { 28689 if ((i6 | 0) <= 0) { 28690 if (!((i6 | 0) < -1000999)) { 28691 i5 = (HEAP32[i2 + 8 >> 2] | 0) + (i6 << 4) | 0; 28692 break; 28693 } 28694 if ((i6 | 0) == -1001e3) { 28695 i5 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0; 28696 break; 28697 } 28698 i7 = -1001e3 - i6 | 0; 28699 i6 = HEAP32[i3 >> 2] | 0; 28700 if ((HEAP32[i6 + 8 >> 2] | 0) != 22 ? (i5 = HEAP32[i6 >> 2] | 0, (i7 | 0) <= (HEAPU8[i5 + 6 | 0] | 0 | 0)) : 0) { 28701 i5 = i5 + (i7 + -1 << 4) + 16 | 0; 28702 } else { 28703 i5 = 5192; 28704 } 28705 } else { 28706 i5 = (HEAP32[i3 >> 2] | 0) + (i6 << 4) | 0; 28707 i5 = i5 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i5 : 5192; 28708 } 28709 } while (0); 28710 do { 28711 if ((i4 | 0) <= 0) { 28712 if (!((i4 | 0) < -1000999)) { 28713 i2 = (HEAP32[i2 + 8 >> 2] | 0) + (i4 << 4) | 0; 28714 break; 28715 } 28716 if ((i4 | 0) == -1001e3) { 28717 i2 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0; 28718 break; 28719 } 28720 i2 = -1001e3 - i4 | 0; 28721 i3 = HEAP32[i3 >> 2] | 0; 28722 if ((HEAP32[i3 + 8 >> 2] | 0) == 22) { 28723 i7 = 0; 28724 STACKTOP = i1; 28725 return i7 | 0; 28726 } 28727 i3 = HEAP32[i3 >> 2] | 0; 28728 if ((i2 | 0) > (HEAPU8[i3 + 6 | 0] | 0 | 0)) { 28729 i7 = 0; 28730 STACKTOP = i1; 28731 return i7 | 0; 28732 } else { 28733 i2 = i3 + (i2 + -1 << 4) + 16 | 0; 28734 break; 28735 } 28736 } else { 28737 i3 = (HEAP32[i3 >> 2] | 0) + (i4 << 4) | 0; 28738 i2 = i3 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i3 : 5192; 28739 } 28740 } while (0); 28741 if ((i5 | 0) == 5192 | (i2 | 0) == 5192) { 28742 i7 = 0; 28743 STACKTOP = i1; 28744 return i7 | 0; 28745 } 28746 if ((HEAP32[i5 + 8 >> 2] | 0) == (HEAP32[i2 + 8 >> 2] | 0)) { 28747 i2 = (_luaV_equalobj_(0, i5, i2) | 0) != 0; 28748 } else { 28749 i2 = 0; 28750 } 28751 i7 = i2 & 1; 28752 STACKTOP = i1; 28753 return i7 | 0; 28754 } 28755 function _luaO_chunkid(i1, i4, i6) { 28756 i1 = i1 | 0; 28757 i4 = i4 | 0; 28758 i6 = i6 | 0; 28759 var i2 = 0, i3 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0; 28760 i2 = STACKTOP; 28761 i3 = _strlen(i4 | 0) | 0; 28762 i5 = HEAP8[i4] | 0; 28763 if (i5 << 24 >> 24 == 64) { 28764 if (i3 >>> 0 > i6 >>> 0) { 28765 HEAP8[i1 + 0 | 0] = HEAP8[5552 | 0] | 0; 28766 HEAP8[i1 + 1 | 0] = HEAP8[5553 | 0] | 0; 28767 HEAP8[i1 + 2 | 0] = HEAP8[5554 | 0] | 0; 28768 _memcpy(i1 + 3 | 0, i4 + (4 - i6 + i3) | 0, i6 + -3 | 0) | 0; 28769 STACKTOP = i2; 28770 return; 28771 } else { 28772 _memcpy(i1 | 0, i4 + 1 | 0, i3 | 0) | 0; 28773 STACKTOP = i2; 28774 return; 28775 } 28776 } else if (i5 << 24 >> 24 == 61) { 28777 i4 = i4 + 1 | 0; 28778 if (i3 >>> 0 > i6 >>> 0) { 28779 i9 = i6 + -1 | 0; 28780 _memcpy(i1 | 0, i4 | 0, i9 | 0) | 0; 28781 HEAP8[i1 + i9 | 0] = 0; 28782 STACKTOP = i2; 28783 return; 28784 } else { 28785 _memcpy(i1 | 0, i4 | 0, i3 | 0) | 0; 28786 STACKTOP = i2; 28787 return; 28788 } 28789 } else { 28790 i5 = _strchr(i4, 10) | 0; 28791 i9 = i1 + 0 | 0; 28792 i8 = 5560 | 0; 28793 i7 = i9 + 9 | 0; 28794 do { 28795 HEAP8[i9] = HEAP8[i8] | 0; 28796 i9 = i9 + 1 | 0; 28797 i8 = i8 + 1 | 0; 28798 } while ((i9 | 0) < (i7 | 0)); 28799 i7 = i1 + 9 | 0; 28800 i6 = i6 + -15 | 0; 28801 i8 = (i5 | 0) == 0; 28802 if (i3 >>> 0 < i6 >>> 0 & i8) { 28803 _memcpy(i7 | 0, i4 | 0, i3 | 0) | 0; 28804 i3 = i3 + 9 | 0; 28805 } else { 28806 if (!i8) { 28807 i3 = i5 - i4 | 0; 28808 } 28809 i3 = i3 >>> 0 > i6 >>> 0 ? i6 : i3; 28810 _memcpy(i7 | 0, i4 | 0, i3 | 0) | 0; 28811 i9 = i1 + (i3 + 9) | 0; 28812 HEAP8[i9 + 0 | 0] = HEAP8[5552 | 0] | 0; 28813 HEAP8[i9 + 1 | 0] = HEAP8[5553 | 0] | 0; 28814 HEAP8[i9 + 2 | 0] = HEAP8[5554 | 0] | 0; 28815 i3 = i3 + 12 | 0; 28816 } 28817 i9 = i1 + i3 | 0; 28818 HEAP8[i9 + 0 | 0] = HEAP8[5576 | 0] | 0; 28819 HEAP8[i9 + 1 | 0] = HEAP8[5577 | 0] | 0; 28820 HEAP8[i9 + 2 | 0] = HEAP8[5578 | 0] | 0; 28821 STACKTOP = i2; 28822 return; 28823 } 28824 } 28825 function _luaS_resize(i4, i1) { 28826 i4 = i4 | 0; 28827 i1 = i1 | 0; 28828 var i2 = 0, i3 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0; 28829 i3 = STACKTOP; 28830 i5 = HEAP32[i4 + 12 >> 2] | 0; 28831 i2 = i5 + 24 | 0; 28832 _luaC_runtilstate(i4, -5); 28833 i5 = i5 + 32 | 0; 28834 i8 = HEAP32[i5 >> 2] | 0; 28835 L1 : do { 28836 if ((i8 | 0) < (i1 | 0)) { 28837 if ((i1 + 1 | 0) >>> 0 > 1073741823) { 28838 _luaM_toobig(i4); 28839 } 28840 i7 = _luaM_realloc_(i4, HEAP32[i2 >> 2] | 0, i8 << 2, i1 << 2) | 0; 28841 HEAP32[i2 >> 2] = i7; 28842 i6 = HEAP32[i5 >> 2] | 0; 28843 if ((i6 | 0) < (i1 | 0)) { 28844 i8 = i6; 28845 while (1) { 28846 HEAP32[i7 + (i8 << 2) >> 2] = 0; 28847 i8 = i8 + 1 | 0; 28848 if ((i8 | 0) == (i1 | 0)) { 28849 i8 = i6; 28850 break L1; 28851 } 28852 i7 = HEAP32[i2 >> 2] | 0; 28853 } 28854 } else { 28855 i8 = i6; 28856 } 28857 } 28858 } while (0); 28859 if ((i8 | 0) > 0) { 28860 i6 = i1 + -1 | 0; 28861 i7 = 0; 28862 do { 28863 i10 = (HEAP32[i2 >> 2] | 0) + (i7 << 2) | 0; 28864 i9 = HEAP32[i10 >> 2] | 0; 28865 HEAP32[i10 >> 2] = 0; 28866 if ((i9 | 0) != 0) { 28867 while (1) { 28868 i8 = HEAP32[i9 >> 2] | 0; 28869 i10 = HEAP32[i9 + 8 >> 2] & i6; 28870 HEAP32[i9 >> 2] = HEAP32[(HEAP32[i2 >> 2] | 0) + (i10 << 2) >> 2]; 28871 HEAP32[(HEAP32[i2 >> 2] | 0) + (i10 << 2) >> 2] = i9; 28872 i10 = i9 + 5 | 0; 28873 HEAP8[i10] = HEAP8[i10] & 191; 28874 if ((i8 | 0) == 0) { 28875 break; 28876 } else { 28877 i9 = i8; 28878 } 28879 } 28880 i8 = HEAP32[i5 >> 2] | 0; 28881 } 28882 i7 = i7 + 1 | 0; 28883 } while ((i7 | 0) < (i8 | 0)); 28884 } 28885 if ((i8 | 0) <= (i1 | 0)) { 28886 HEAP32[i5 >> 2] = i1; 28887 STACKTOP = i3; 28888 return; 28889 } 28890 if ((i1 + 1 | 0) >>> 0 > 1073741823) { 28891 _luaM_toobig(i4); 28892 } 28893 HEAP32[i2 >> 2] = _luaM_realloc_(i4, HEAP32[i2 >> 2] | 0, i8 << 2, i1 << 2) | 0; 28894 HEAP32[i5 >> 2] = i1; 28895 STACKTOP = i3; 28896 return; 28897 } 28898 function _luaD_poscall(i6, i7) { 28899 i6 = i6 | 0; 28900 i7 = i7 | 0; 28901 var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0; 28902 i1 = STACKTOP; 28903 i4 = i6 + 16 | 0; 28904 i3 = HEAP32[i4 >> 2] | 0; 28905 i5 = HEAPU8[i6 + 40 | 0] | 0; 28906 if ((i5 & 6 | 0) == 0) { 28907 i8 = i3 + 8 | 0; 28908 } else { 28909 if ((i5 & 2 | 0) != 0) { 28910 i8 = i6 + 28 | 0; 28911 i7 = i7 - (HEAP32[i8 >> 2] | 0) | 0; 28912 _luaD_hook(i6, 1, -1); 28913 i7 = (HEAP32[i8 >> 2] | 0) + i7 | 0; 28914 } 28915 i8 = i3 + 8 | 0; 28916 HEAP32[i6 + 20 >> 2] = HEAP32[(HEAP32[i8 >> 2] | 0) + 28 >> 2]; 28917 } 28918 i5 = HEAP32[i3 >> 2] | 0; 28919 i9 = HEAP16[i3 + 16 >> 1] | 0; 28920 i3 = i9 << 16 >> 16; 28921 HEAP32[i4 >> 2] = HEAP32[i8 >> 2]; 28922 i4 = i6 + 8 | 0; 28923 if (i9 << 16 >> 16 == 0) { 28924 i9 = i5; 28925 HEAP32[i4 >> 2] = i9; 28926 i9 = i3 + 1 | 0; 28927 STACKTOP = i1; 28928 return i9 | 0; 28929 } else { 28930 i6 = i3; 28931 } 28932 while (1) { 28933 if (!(i7 >>> 0 < (HEAP32[i4 >> 2] | 0) >>> 0)) { 28934 break; 28935 } 28936 i8 = i5 + 16 | 0; 28937 i11 = i7; 28938 i10 = HEAP32[i11 + 4 >> 2] | 0; 28939 i9 = i5; 28940 HEAP32[i9 >> 2] = HEAP32[i11 >> 2]; 28941 HEAP32[i9 + 4 >> 2] = i10; 28942 HEAP32[i5 + 8 >> 2] = HEAP32[i7 + 8 >> 2]; 28943 i6 = i6 + -1 | 0; 28944 if ((i6 | 0) == 0) { 28945 i2 = 12; 28946 break; 28947 } else { 28948 i7 = i7 + 16 | 0; 28949 i5 = i8; 28950 } 28951 } 28952 if ((i2 | 0) == 12) { 28953 HEAP32[i4 >> 2] = i8; 28954 i11 = i3 + 1 | 0; 28955 STACKTOP = i1; 28956 return i11 | 0; 28957 } 28958 if ((i6 | 0) > 0) { 28959 i2 = i6; 28960 i7 = i5; 28961 } else { 28962 i11 = i5; 28963 HEAP32[i4 >> 2] = i11; 28964 i11 = i3 + 1 | 0; 28965 STACKTOP = i1; 28966 return i11 | 0; 28967 } 28968 while (1) { 28969 i2 = i2 + -1 | 0; 28970 HEAP32[i7 + 8 >> 2] = 0; 28971 if ((i2 | 0) <= 0) { 28972 break; 28973 } else { 28974 i7 = i7 + 16 | 0; 28975 } 28976 } 28977 i11 = i5 + (i6 << 4) | 0; 28978 HEAP32[i4 >> 2] = i11; 28979 i11 = i3 + 1 | 0; 28980 STACKTOP = i1; 28981 return i11 | 0; 28982 } 28983 function _lua_rawset(i1, i4) { 28984 i1 = i1 | 0; 28985 i4 = i4 | 0; 28986 var i2 = 0, i3 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0; 28987 i2 = STACKTOP; 28988 i5 = HEAP32[i1 + 16 >> 2] | 0; 28989 do { 28990 if ((i4 | 0) <= 0) { 28991 if (!((i4 | 0) < -1000999)) { 28992 i5 = (HEAP32[i1 + 8 >> 2] | 0) + (i4 << 4) | 0; 28993 break; 28994 } 28995 if ((i4 | 0) == -1001e3) { 28996 i5 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0; 28997 break; 28998 } 28999 i4 = -1001e3 - i4 | 0; 29000 i5 = HEAP32[i5 >> 2] | 0; 29001 if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i5 >> 2] | 0, (i4 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) { 29002 i5 = i3 + (i4 + -1 << 4) + 16 | 0; 29003 } else { 29004 i5 = 5192; 29005 } 29006 } else { 29007 i3 = (HEAP32[i5 >> 2] | 0) + (i4 << 4) | 0; 29008 i5 = i3 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i3 : 5192; 29009 } 29010 } while (0); 29011 i4 = i1 + 8 | 0; 29012 i6 = HEAP32[i4 >> 2] | 0; 29013 i3 = _luaH_set(i1, HEAP32[i5 >> 2] | 0, i6 + -32 | 0) | 0; 29014 i9 = i6 + -16 | 0; 29015 i8 = HEAP32[i9 + 4 >> 2] | 0; 29016 i7 = i3; 29017 HEAP32[i7 >> 2] = HEAP32[i9 >> 2]; 29018 HEAP32[i7 + 4 >> 2] = i8; 29019 HEAP32[i3 + 8 >> 2] = HEAP32[i6 + -8 >> 2]; 29020 HEAP8[(HEAP32[i5 >> 2] | 0) + 6 | 0] = 0; 29021 i3 = HEAP32[i4 >> 2] | 0; 29022 if ((HEAP32[i3 + -8 >> 2] & 64 | 0) == 0) { 29023 i9 = i3; 29024 i9 = i9 + -32 | 0; 29025 HEAP32[i4 >> 2] = i9; 29026 STACKTOP = i2; 29027 return; 29028 } 29029 if ((HEAP8[(HEAP32[i3 + -16 >> 2] | 0) + 5 | 0] & 3) == 0) { 29030 i9 = i3; 29031 i9 = i9 + -32 | 0; 29032 HEAP32[i4 >> 2] = i9; 29033 STACKTOP = i2; 29034 return; 29035 } 29036 i5 = HEAP32[i5 >> 2] | 0; 29037 if ((HEAP8[i5 + 5 | 0] & 4) == 0) { 29038 i9 = i3; 29039 i9 = i9 + -32 | 0; 29040 HEAP32[i4 >> 2] = i9; 29041 STACKTOP = i2; 29042 return; 29043 } 29044 _luaC_barrierback_(i1, i5); 29045 i9 = HEAP32[i4 >> 2] | 0; 29046 i9 = i9 + -32 | 0; 29047 HEAP32[i4 >> 2] = i9; 29048 STACKTOP = i2; 29049 return; 29050 } 29051 function _saveSetjmp(i4, i3, i1) { 29052 i4 = i4 | 0; 29053 i3 = i3 | 0; 29054 i1 = i1 | 0; 29055 var i2 = 0; 29056 setjmpId = setjmpId + 1 | 0; 29057 HEAP32[i4 >> 2] = setjmpId; 29058 while ((i2 | 0) < 40) { 29059 if ((HEAP32[i1 + (i2 << 2) >> 2] | 0) == 0) { 29060 HEAP32[i1 + (i2 << 2) >> 2] = setjmpId; 29061 HEAP32[i1 + ((i2 << 2) + 4) >> 2] = i3; 29062 HEAP32[i1 + ((i2 << 2) + 8) >> 2] = 0; 29063 return 0; 29064 } 29065 i2 = i2 + 2 | 0; 29066 } 29067 _putchar(116); 29068 _putchar(111); 29069 _putchar(111); 29070 _putchar(32); 29071 _putchar(109); 29072 _putchar(97); 29073 _putchar(110); 29074 _putchar(121); 29075 _putchar(32); 29076 _putchar(115); 29077 _putchar(101); 29078 _putchar(116); 29079 _putchar(106); 29080 _putchar(109); 29081 _putchar(112); 29082 _putchar(115); 29083 _putchar(32); 29084 _putchar(105); 29085 _putchar(110); 29086 _putchar(32); 29087 _putchar(97); 29088 _putchar(32); 29089 _putchar(102); 29090 _putchar(117); 29091 _putchar(110); 29092 _putchar(99); 29093 _putchar(116); 29094 _putchar(105); 29095 _putchar(111); 29096 _putchar(110); 29097 _putchar(32); 29098 _putchar(99); 29099 _putchar(97); 29100 _putchar(108); 29101 _putchar(108); 29102 _putchar(44); 29103 _putchar(32); 29104 _putchar(98); 29105 _putchar(117); 29106 _putchar(105); 29107 _putchar(108); 29108 _putchar(100); 29109 _putchar(32); 29110 _putchar(119); 29111 _putchar(105); 29112 _putchar(116); 29113 _putchar(104); 29114 _putchar(32); 29115 _putchar(97); 29116 _putchar(32); 29117 _putchar(104); 29118 _putchar(105); 29119 _putchar(103); 29120 _putchar(104); 29121 _putchar(101); 29122 _putchar(114); 29123 _putchar(32); 29124 _putchar(118); 29125 _putchar(97); 29126 _putchar(108); 29127 _putchar(117); 29128 _putchar(101); 29129 _putchar(32); 29130 _putchar(102); 29131 _putchar(111); 29132 _putchar(114); 29133 _putchar(32); 29134 _putchar(77); 29135 _putchar(65); 29136 _putchar(88); 29137 _putchar(95); 29138 _putchar(83); 29139 _putchar(69); 29140 _putchar(84); 29141 _putchar(74); 29142 _putchar(77); 29143 _putchar(80); 29144 _putchar(83); 29145 _putchar(10); 29146 abort(0); 29147 return 0; 29148 } 29149 function _lua_newthread(i5) { 29150 i5 = i5 | 0; 29151 var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0; 29152 i1 = STACKTOP; 29153 i3 = i5 + 12 | 0; 29154 if ((HEAP32[(HEAP32[i3 >> 2] | 0) + 12 >> 2] | 0) > 0) { 29155 _luaC_step(i5); 29156 } 29157 i2 = _luaC_newobj(i5, 8, 112, 0, 0) | 0; 29158 i6 = i5 + 8 | 0; 29159 i4 = HEAP32[i6 >> 2] | 0; 29160 HEAP32[i4 >> 2] = i2; 29161 HEAP32[i4 + 8 >> 2] = 72; 29162 HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + 16; 29163 HEAP32[i2 + 12 >> 2] = HEAP32[i3 >> 2]; 29164 i6 = i2 + 28 | 0; 29165 HEAP32[i6 >> 2] = 0; 29166 i4 = i2 + 16 | 0; 29167 HEAP32[i4 >> 2] = 0; 29168 i3 = i2 + 32 | 0; 29169 HEAP32[i3 >> 2] = 0; 29170 HEAP32[i2 + 64 >> 2] = 0; 29171 HEAP16[i2 + 38 >> 1] = 0; 29172 i9 = i2 + 52 | 0; 29173 HEAP32[i9 >> 2] = 0; 29174 i8 = i2 + 40 | 0; 29175 HEAP8[i8] = 0; 29176 i10 = i2 + 44 | 0; 29177 HEAP32[i10 >> 2] = 0; 29178 HEAP8[i2 + 41 | 0] = 1; 29179 i7 = i2 + 48 | 0; 29180 HEAP32[i7 >> 2] = 0; 29181 HEAP32[i2 + 56 >> 2] = 0; 29182 HEAP16[i2 + 36 >> 1] = 1; 29183 HEAP8[i2 + 6 | 0] = 0; 29184 HEAP32[i2 + 68 >> 2] = 0; 29185 HEAP8[i8] = HEAP8[i5 + 40 | 0] | 0; 29186 i8 = HEAP32[i5 + 44 >> 2] | 0; 29187 HEAP32[i10 >> 2] = i8; 29188 HEAP32[i9 >> 2] = HEAP32[i5 + 52 >> 2]; 29189 HEAP32[i7 >> 2] = i8; 29190 i5 = _luaM_realloc_(i5, 0, 0, 640) | 0; 29191 HEAP32[i6 >> 2] = i5; 29192 HEAP32[i3 >> 2] = 40; 29193 i6 = 0; 29194 do { 29195 HEAP32[i5 + (i6 << 4) + 8 >> 2] = 0; 29196 i6 = i6 + 1 | 0; 29197 } while ((i6 | 0) != 40); 29198 HEAP32[i2 + 24 >> 2] = i5 + ((HEAP32[i3 >> 2] | 0) + -5 << 4); 29199 i10 = i2 + 72 | 0; 29200 HEAP32[i2 + 80 >> 2] = 0; 29201 HEAP32[i2 + 84 >> 2] = 0; 29202 HEAP8[i2 + 90 | 0] = 0; 29203 HEAP32[i10 >> 2] = i5; 29204 HEAP32[i2 + 8 >> 2] = i5 + 16; 29205 HEAP32[i5 + 8 >> 2] = 0; 29206 HEAP32[i2 + 76 >> 2] = i5 + 336; 29207 HEAP32[i4 >> 2] = i10; 29208 STACKTOP = i1; 29209 return i2 | 0; 29210 } 29211 function _luaK_self(i2, i5, i3) { 29212 i2 = i2 | 0; 29213 i5 = i5 | 0; 29214 i3 = i3 | 0; 29215 var i1 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0; 29216 i1 = STACKTOP; 29217 _luaK_dischargevars(i2, i5); 29218 if ((HEAP32[i5 >> 2] | 0) == 6) { 29219 i6 = i5 + 8 | 0; 29220 i8 = HEAP32[i6 >> 2] | 0; 29221 if ((HEAP32[i5 + 16 >> 2] | 0) != (HEAP32[i5 + 20 >> 2] | 0)) { 29222 if ((i8 | 0) < (HEAPU8[i2 + 46 | 0] | 0 | 0)) { 29223 i7 = 6; 29224 } else { 29225 _exp2reg(i2, i5, i8); 29226 } 29227 } 29228 } else { 29229 i6 = i5 + 8 | 0; 29230 i7 = 6; 29231 } 29232 if ((i7 | 0) == 6) { 29233 _luaK_exp2nextreg(i2, i5); 29234 } 29235 i8 = HEAP32[i6 >> 2] | 0; 29236 if (((HEAP32[i5 >> 2] | 0) == 6 ? (i8 & 256 | 0) == 0 : 0) ? (HEAPU8[i2 + 46 | 0] | 0 | 0) <= (i8 | 0) : 0) { 29237 i10 = i2 + 48 | 0; 29238 HEAP8[i10] = (HEAP8[i10] | 0) + -1 << 24 >> 24; 29239 } 29240 i7 = i2 + 48 | 0; 29241 HEAP32[i6 >> 2] = HEAPU8[i7] | 0; 29242 HEAP32[i5 >> 2] = 6; 29243 i10 = HEAP8[i7] | 0; 29244 i5 = (i10 & 255) + 2 | 0; 29245 i9 = (HEAP32[i2 >> 2] | 0) + 78 | 0; 29246 do { 29247 if (i5 >>> 0 > (HEAPU8[i9] | 0) >>> 0) { 29248 if (i5 >>> 0 > 249) { 29249 _luaX_syntaxerror(HEAP32[i2 + 12 >> 2] | 0, 10536); 29250 } else { 29251 HEAP8[i9] = i5; 29252 i4 = HEAP8[i7] | 0; 29253 break; 29254 } 29255 } else { 29256 i4 = i10; 29257 } 29258 } while (0); 29259 HEAP8[i7] = (i4 & 255) + 2; 29260 i10 = HEAP32[i6 >> 2] | 0; 29261 _luaK_code(i2, i8 << 23 | i10 << 6 | (_luaK_exp2RK(i2, i3) | 0) << 14 | 12) | 0; 29262 if ((HEAP32[i3 >> 2] | 0) != 6) { 29263 STACKTOP = i1; 29264 return; 29265 } 29266 i3 = HEAP32[i3 + 8 >> 2] | 0; 29267 if ((i3 & 256 | 0) != 0) { 29268 STACKTOP = i1; 29269 return; 29270 } 29271 if ((HEAPU8[i2 + 46 | 0] | 0 | 0) > (i3 | 0)) { 29272 STACKTOP = i1; 29273 return; 29274 } 29275 HEAP8[i7] = (HEAP8[i7] | 0) + -1 << 24 >> 24; 29276 STACKTOP = i1; 29277 return; 29278 } 29279 function _luaD_rawrunprotected(i10, i9, i11) { 29280 i10 = i10 | 0; 29281 i9 = i9 | 0; 29282 i11 = i11 | 0; 29283 var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i12 = 0, i13 = 0; 29284 i7 = STACKTOP; 29285 STACKTOP = STACKTOP + 176 | 0; 29286 i8 = STACKTOP; 29287 STACKTOP = STACKTOP + 168 | 0; 29288 HEAP32[i8 >> 2] = 0; 29289 i6 = i7; 29290 i5 = i10 + 38 | 0; 29291 i4 = HEAP16[i5 >> 1] | 0; 29292 i1 = i6 + 160 | 0; 29293 HEAP32[i1 >> 2] = 0; 29294 i3 = i10 + 64 | 0; 29295 HEAP32[i6 >> 2] = HEAP32[i3 >> 2]; 29296 HEAP32[i3 >> 2] = i6; 29297 _saveSetjmp(i6 + 4 | 0, 1, i8 | 0) | 0; 29298 __THREW__ = 0; 29299 i13 = __THREW__; 29300 __THREW__ = 0; 29301 if ((i13 | 0) != 0 & (threwValue | 0) != 0) { 29302 i12 = _testSetjmp(HEAP32[i13 >> 2] | 0, i8) | 0; 29303 if ((i12 | 0) == 0) { 29304 _longjmp(i13 | 0, threwValue | 0); 29305 } 29306 tempRet0 = threwValue; 29307 } else { 29308 i12 = -1; 29309 } 29310 if ((i12 | 0) == 1) { 29311 i12 = tempRet0; 29312 } else { 29313 i12 = 0; 29314 } 29315 while (1) { 29316 if ((i12 | 0) != 0) { 29317 i2 = 6; 29318 break; 29319 } 29320 __THREW__ = 0; 29321 invoke_vii(i9 | 0, i10 | 0, i11 | 0); 29322 i13 = __THREW__; 29323 __THREW__ = 0; 29324 if ((i13 | 0) != 0 & (threwValue | 0) != 0) { 29325 i12 = _testSetjmp(HEAP32[i13 >> 2] | 0, i8) | 0; 29326 if ((i12 | 0) == 0) { 29327 _longjmp(i13 | 0, threwValue | 0); 29328 } 29329 tempRet0 = threwValue; 29330 } else { 29331 i12 = -1; 29332 } 29333 if ((i12 | 0) == 1) { 29334 i12 = tempRet0; 29335 } else { 29336 break; 29337 } 29338 } 29339 if ((i2 | 0) == 6) { 29340 i13 = HEAP32[i6 >> 2] | 0; 29341 HEAP32[i3 >> 2] = i13; 29342 HEAP16[i5 >> 1] = i4; 29343 i13 = HEAP32[i1 >> 2] | 0; 29344 STACKTOP = i7; 29345 return i13 | 0; 29346 } 29347 i13 = HEAP32[i6 >> 2] | 0; 29348 HEAP32[i3 >> 2] = i13; 29349 HEAP16[i5 >> 1] = i4; 29350 i13 = HEAP32[i1 >> 2] | 0; 29351 STACKTOP = i7; 29352 return i13 | 0; 29353 } 29354 function _luaB_tonumber(i1) { 29355 i1 = i1 | 0; 29356 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, d6 = 0.0, i7 = 0, d8 = 0.0, i9 = 0, i10 = 0; 29357 i2 = STACKTOP; 29358 STACKTOP = STACKTOP + 16 | 0; 29359 i3 = i2 + 4 | 0; 29360 i4 = i2; 29361 do { 29362 if ((_lua_type(i1, 2) | 0) >= 1) { 29363 i9 = _luaL_checklstring(i1, 1, i4) | 0; 29364 i3 = i9 + (HEAP32[i4 >> 2] | 0) | 0; 29365 i5 = _luaL_checkinteger(i1, 2) | 0; 29366 if (!((i5 + -2 | 0) >>> 0 < 35)) { 29367 _luaL_argerror(i1, 2, 9648) | 0; 29368 } 29369 i10 = _strspn(i9, 9672) | 0; 29370 i7 = i9 + i10 | 0; 29371 i4 = HEAP8[i7] | 0; 29372 if (i4 << 24 >> 24 == 43) { 29373 i4 = 0; 29374 i7 = i9 + (i10 + 1) | 0; 29375 } else if (i4 << 24 >> 24 == 45) { 29376 i4 = 1; 29377 i7 = i9 + (i10 + 1) | 0; 29378 } else { 29379 i4 = 0; 29380 } 29381 if ((_isalnum(HEAPU8[i7] | 0 | 0) | 0) != 0) { 29382 d6 = +(i5 | 0); 29383 d8 = 0.0; 29384 do { 29385 i9 = HEAP8[i7] | 0; 29386 i10 = i9 & 255; 29387 if ((i10 + -48 | 0) >>> 0 < 10) { 29388 i9 = (i9 << 24 >> 24) + -48 | 0; 29389 } else { 29390 i9 = (_toupper(i10 | 0) | 0) + -55 | 0; 29391 } 29392 if ((i9 | 0) >= (i5 | 0)) { 29393 break; 29394 } 29395 d8 = d6 * d8 + +(i9 | 0); 29396 i7 = i7 + 1 | 0; 29397 } while ((_isalnum(HEAPU8[i7] | 0 | 0) | 0) != 0); 29398 if ((i7 + (_strspn(i7, 9672) | 0) | 0) == (i3 | 0)) { 29399 if ((i4 | 0) != 0) { 29400 d8 = -d8; 29401 } 29402 _lua_pushnumber(i1, d8); 29403 STACKTOP = i2; 29404 return 1; 29405 } 29406 } 29407 } else { 29408 d6 = +_lua_tonumberx(i1, 1, i3); 29409 if ((HEAP32[i3 >> 2] | 0) == 0) { 29410 _luaL_checkany(i1, 1); 29411 break; 29412 } 29413 _lua_pushnumber(i1, d6); 29414 STACKTOP = i2; 29415 return 1; 29416 } 29417 } while (0); 29418 _lua_pushnil(i1); 29419 STACKTOP = i2; 29420 return 1; 29421 } 29422 function _luaK_storevar(i1, i5, i3) { 29423 i1 = i1 | 0; 29424 i5 = i5 | 0; 29425 i3 = i3 | 0; 29426 var i2 = 0, i4 = 0, i6 = 0, i7 = 0; 29427 i2 = STACKTOP; 29428 i7 = HEAP32[i5 >> 2] | 0; 29429 if ((i7 | 0) == 7) { 29430 if (((HEAP32[i3 >> 2] | 0) == 6 ? (i6 = HEAP32[i3 + 8 >> 2] | 0, (i6 & 256 | 0) == 0) : 0) ? (HEAPU8[i1 + 46 | 0] | 0) <= (i6 | 0) : 0) { 29431 i7 = i1 + 48 | 0; 29432 HEAP8[i7] = (HEAP8[i7] | 0) + -1 << 24 >> 24; 29433 } 29434 _exp2reg(i1, i3, HEAP32[i5 + 8 >> 2] | 0); 29435 STACKTOP = i2; 29436 return; 29437 } else if ((i7 | 0) == 9) { 29438 i4 = i5 + 8 | 0; 29439 i7 = (HEAP8[i4 + 3 | 0] | 0) == 7 ? 10 : 8; 29440 i6 = _luaK_exp2RK(i1, i3) | 0; 29441 _luaK_code(i1, i6 << 14 | i7 | HEAPU8[i4 + 2 | 0] << 6 | HEAPU16[i4 >> 1] << 23) | 0; 29442 } else if ((i7 | 0) == 8) { 29443 _luaK_dischargevars(i1, i3); 29444 if ((HEAP32[i3 >> 2] | 0) == 6) { 29445 i6 = i3 + 8 | 0; 29446 i7 = HEAP32[i6 >> 2] | 0; 29447 if ((HEAP32[i3 + 16 >> 2] | 0) != (HEAP32[i3 + 20 >> 2] | 0)) { 29448 if ((i7 | 0) < (HEAPU8[i1 + 46 | 0] | 0)) { 29449 i4 = 12; 29450 } else { 29451 _exp2reg(i1, i3, i7); 29452 i7 = HEAP32[i6 >> 2] | 0; 29453 } 29454 } 29455 } else { 29456 i6 = i3 + 8 | 0; 29457 i4 = 12; 29458 } 29459 if ((i4 | 0) == 12) { 29460 _luaK_exp2nextreg(i1, i3); 29461 i7 = HEAP32[i6 >> 2] | 0; 29462 } 29463 _luaK_code(i1, i7 << 6 | HEAP32[i5 + 8 >> 2] << 23 | 9) | 0; 29464 } 29465 if ((HEAP32[i3 >> 2] | 0) != 6) { 29466 STACKTOP = i2; 29467 return; 29468 } 29469 i3 = HEAP32[i3 + 8 >> 2] | 0; 29470 if ((i3 & 256 | 0) != 0) { 29471 STACKTOP = i2; 29472 return; 29473 } 29474 if ((HEAPU8[i1 + 46 | 0] | 0) > (i3 | 0)) { 29475 STACKTOP = i2; 29476 return; 29477 } 29478 i7 = i1 + 48 | 0; 29479 HEAP8[i7] = (HEAP8[i7] | 0) + -1 << 24 >> 24; 29480 STACKTOP = i2; 29481 return; 29482 } 29483 function _closegoto(i10, i3, i9) { 29484 i10 = i10 | 0; 29485 i3 = i3 | 0; 29486 i9 = i9 | 0; 29487 var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i11 = 0, i12 = 0; 29488 i1 = STACKTOP; 29489 STACKTOP = STACKTOP + 16 | 0; 29490 i7 = i1; 29491 i4 = HEAP32[i10 + 48 >> 2] | 0; 29492 i6 = HEAP32[i10 + 64 >> 2] | 0; 29493 i2 = i6 + 12 | 0; 29494 i5 = HEAP32[i2 >> 2] | 0; 29495 i8 = HEAP8[i5 + (i3 << 4) + 12 | 0] | 0; 29496 if ((i8 & 255) < (HEAPU8[i9 + 12 | 0] | 0)) { 29497 i11 = HEAP32[i10 + 52 >> 2] | 0; 29498 i12 = HEAP32[i5 + (i3 << 4) + 8 >> 2] | 0; 29499 i8 = (HEAP32[(HEAP32[(HEAP32[i4 >> 2] | 0) + 24 >> 2] | 0) + ((HEAP16[(HEAP32[HEAP32[(HEAP32[i4 + 12 >> 2] | 0) + 64 >> 2] >> 2] | 0) + ((HEAP32[i4 + 40 >> 2] | 0) + (i8 & 255) << 1) >> 1] | 0) * 12 | 0) >> 2] | 0) + 16 | 0; 29500 HEAP32[i7 >> 2] = (HEAP32[i5 + (i3 << 4) >> 2] | 0) + 16; 29501 HEAP32[i7 + 4 >> 2] = i12; 29502 HEAP32[i7 + 8 >> 2] = i8; 29503 _semerror(i10, _luaO_pushfstring(i11, 6248, i7) | 0); 29504 } 29505 _luaK_patchlist(i4, HEAP32[i5 + (i3 << 4) + 4 >> 2] | 0, HEAP32[i9 + 4 >> 2] | 0); 29506 i4 = i6 + 16 | 0; 29507 i5 = (HEAP32[i4 >> 2] | 0) + -1 | 0; 29508 if ((i5 | 0) <= (i3 | 0)) { 29509 i12 = i5; 29510 HEAP32[i4 >> 2] = i12; 29511 STACKTOP = i1; 29512 return; 29513 } 29514 do { 29515 i12 = HEAP32[i2 >> 2] | 0; 29516 i5 = i12 + (i3 << 4) | 0; 29517 i3 = i3 + 1 | 0; 29518 i12 = i12 + (i3 << 4) | 0; 29519 HEAP32[i5 + 0 >> 2] = HEAP32[i12 + 0 >> 2]; 29520 HEAP32[i5 + 4 >> 2] = HEAP32[i12 + 4 >> 2]; 29521 HEAP32[i5 + 8 >> 2] = HEAP32[i12 + 8 >> 2]; 29522 HEAP32[i5 + 12 >> 2] = HEAP32[i12 + 12 >> 2]; 29523 i5 = (HEAP32[i4 >> 2] | 0) + -1 | 0; 29524 } while ((i3 | 0) < (i5 | 0)); 29525 HEAP32[i4 >> 2] = i5; 29526 STACKTOP = i1; 29527 return; 29528 } 29529 function _luaM_growaux_(i4, i5, i1, i7, i8, i9) { 29530 i4 = i4 | 0; 29531 i5 = i5 | 0; 29532 i1 = i1 | 0; 29533 i7 = i7 | 0; 29534 i8 = i8 | 0; 29535 i9 = i9 | 0; 29536 var i2 = 0, i3 = 0, i6 = 0, i10 = 0, i11 = 0; 29537 i2 = STACKTOP; 29538 STACKTOP = STACKTOP + 16 | 0; 29539 i10 = i2; 29540 i6 = HEAP32[i1 >> 2] | 0; 29541 if ((i6 | 0) >= ((i8 | 0) / 2 | 0 | 0)) { 29542 if ((i6 | 0) < (i8 | 0)) { 29543 i3 = i8; 29544 } else { 29545 HEAP32[i10 >> 2] = i9; 29546 HEAP32[i10 + 4 >> 2] = i8; 29547 _luaG_runerror(i4, 4112, i10); 29548 } 29549 } else { 29550 i3 = i6 << 1; 29551 i3 = (i3 | 0) < 4 ? 4 : i3; 29552 } 29553 if ((i3 + 1 | 0) >>> 0 > (4294967293 / (i7 >>> 0) | 0) >>> 0) { 29554 _luaM_toobig(i4); 29555 } 29556 i6 = Math_imul(i6, i7) | 0; 29557 i8 = Math_imul(i3, i7) | 0; 29558 i9 = HEAP32[i4 + 12 >> 2] | 0; 29559 i7 = (i5 | 0) != 0; 29560 i11 = i9 + 4 | 0; 29561 i10 = FUNCTION_TABLE_iiiii[HEAP32[i9 >> 2] & 3](HEAP32[i11 >> 2] | 0, i5, i6, i8) | 0; 29562 if ((i10 | 0) != 0 | (i8 | 0) == 0) { 29563 i5 = i9 + 12 | 0; 29564 i4 = HEAP32[i5 >> 2] | 0; 29565 i6 = 0 - i6 | 0; 29566 i11 = i7 ? i6 : 0; 29567 i11 = i11 + i8 | 0; 29568 i11 = i11 + i4 | 0; 29569 HEAP32[i5 >> 2] = i11; 29570 HEAP32[i1 >> 2] = i3; 29571 STACKTOP = i2; 29572 return i10 | 0; 29573 } 29574 if ((HEAP8[i9 + 63 | 0] | 0) == 0) { 29575 _luaD_throw(i4, 4); 29576 } 29577 _luaC_fullgc(i4, 1); 29578 i10 = FUNCTION_TABLE_iiiii[HEAP32[i9 >> 2] & 3](HEAP32[i11 >> 2] | 0, i5, i6, i8) | 0; 29579 if ((i10 | 0) == 0) { 29580 _luaD_throw(i4, 4); 29581 } else { 29582 i5 = i9 + 12 | 0; 29583 i4 = HEAP32[i5 >> 2] | 0; 29584 i6 = 0 - i6 | 0; 29585 i11 = i7 ? i6 : 0; 29586 i11 = i11 + i8 | 0; 29587 i11 = i11 + i4 | 0; 29588 HEAP32[i5 >> 2] = i11; 29589 HEAP32[i1 >> 2] = i3; 29590 STACKTOP = i2; 29591 return i10 | 0; 29592 } 29593 return 0; 29594 } 29595 function _luaD_hook(i5, i14, i13) { 29596 i5 = i5 | 0; 29597 i14 = i14 | 0; 29598 i13 = i13 | 0; 29599 var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i15 = 0, i16 = 0; 29600 i11 = STACKTOP; 29601 STACKTOP = STACKTOP + 112 | 0; 29602 i4 = i11; 29603 i3 = HEAP32[i5 + 52 >> 2] | 0; 29604 if ((i3 | 0) == 0) { 29605 STACKTOP = i11; 29606 return; 29607 } 29608 i8 = i5 + 41 | 0; 29609 if ((HEAP8[i8] | 0) == 0) { 29610 STACKTOP = i11; 29611 return; 29612 } 29613 i10 = HEAP32[i5 + 16 >> 2] | 0; 29614 i6 = i5 + 8 | 0; 29615 i15 = HEAP32[i6 >> 2] | 0; 29616 i1 = i5 + 28 | 0; 29617 i16 = i15; 29618 i12 = HEAP32[i1 >> 2] | 0; 29619 i7 = i16 - i12 | 0; 29620 i9 = i10 + 4 | 0; 29621 i12 = (HEAP32[i9 >> 2] | 0) - i12 | 0; 29622 HEAP32[i4 >> 2] = i14; 29623 HEAP32[i4 + 20 >> 2] = i13; 29624 HEAP32[i4 + 96 >> 2] = i10; 29625 do { 29626 if (((HEAP32[i5 + 24 >> 2] | 0) - i16 | 0) < 336) { 29627 i14 = HEAP32[i5 + 32 >> 2] | 0; 29628 if ((i14 | 0) > 1e6) { 29629 _luaD_throw(i5, 6); 29630 } 29631 i13 = (i7 >> 4) + 25 | 0; 29632 i14 = i14 << 1; 29633 i14 = (i14 | 0) > 1e6 ? 1e6 : i14; 29634 i13 = (i14 | 0) < (i13 | 0) ? i13 : i14; 29635 if ((i13 | 0) > 1e6) { 29636 _luaD_reallocstack(i5, 1000200); 29637 _luaG_runerror(i5, 2224, i4); 29638 } else { 29639 _luaD_reallocstack(i5, i13); 29640 i2 = HEAP32[i6 >> 2] | 0; 29641 break; 29642 } 29643 } else { 29644 i2 = i15; 29645 } 29646 } while (0); 29647 HEAP32[i9 >> 2] = i2 + 320; 29648 HEAP8[i8] = 0; 29649 i16 = i10 + 18 | 0; 29650 HEAP8[i16] = HEAPU8[i16] | 2; 29651 FUNCTION_TABLE_vii[i3 & 15](i5, i4); 29652 HEAP8[i8] = 1; 29653 HEAP32[i9 >> 2] = (HEAP32[i1 >> 2] | 0) + i12; 29654 HEAP32[i6 >> 2] = (HEAP32[i1 >> 2] | 0) + i7; 29655 HEAP8[i16] = HEAP8[i16] & 253; 29656 STACKTOP = i11; 29657 return; 29658 } 29659 function _funcargs(i10, i2, i1) { 29660 i10 = i10 | 0; 29661 i2 = i2 | 0; 29662 i1 = i1 | 0; 29663 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0; 29664 i3 = STACKTOP; 29665 STACKTOP = STACKTOP + 32 | 0; 29666 i6 = i3; 29667 i9 = i10 + 48 | 0; 29668 i5 = HEAP32[i9 >> 2] | 0; 29669 i7 = i10 + 16 | 0; 29670 i8 = HEAP32[i7 >> 2] | 0; 29671 if ((i8 | 0) == 289) { 29672 i9 = _luaK_stringK(i5, HEAP32[i10 + 24 >> 2] | 0) | 0; 29673 HEAP32[i6 + 16 >> 2] = -1; 29674 HEAP32[i6 + 20 >> 2] = -1; 29675 HEAP32[i6 >> 2] = 4; 29676 HEAP32[i6 + 8 >> 2] = i9; 29677 _luaX_next(i10); 29678 } else if ((i8 | 0) == 40) { 29679 _luaX_next(i10); 29680 if ((HEAP32[i7 >> 2] | 0) == 41) { 29681 HEAP32[i6 >> 2] = 0; 29682 } else { 29683 _subexpr(i10, i6, 0) | 0; 29684 if ((HEAP32[i7 >> 2] | 0) == 44) { 29685 do { 29686 _luaX_next(i10); 29687 _luaK_exp2nextreg(HEAP32[i9 >> 2] | 0, i6); 29688 _subexpr(i10, i6, 0) | 0; 29689 } while ((HEAP32[i7 >> 2] | 0) == 44); 29690 } 29691 _luaK_setreturns(i5, i6, -1); 29692 } 29693 _check_match(i10, 41, 40, i1); 29694 } else if ((i8 | 0) == 123) { 29695 _constructor(i10, i6); 29696 } else { 29697 _luaX_syntaxerror(i10, 6624); 29698 } 29699 i8 = i2 + 8 | 0; 29700 i7 = HEAP32[i8 >> 2] | 0; 29701 i9 = HEAP32[i6 >> 2] | 0; 29702 if ((i9 | 0) == 0) { 29703 i4 = 13; 29704 } else if ((i9 | 0) == 13 | (i9 | 0) == 12) { 29705 i6 = 0; 29706 } else { 29707 _luaK_exp2nextreg(i5, i6); 29708 i4 = 13; 29709 } 29710 if ((i4 | 0) == 13) { 29711 i6 = (HEAPU8[i5 + 48 | 0] | 0) - i7 | 0; 29712 } 29713 i10 = _luaK_codeABC(i5, 29, i7, i6, 2) | 0; 29714 HEAP32[i2 + 16 >> 2] = -1; 29715 HEAP32[i2 + 20 >> 2] = -1; 29716 HEAP32[i2 >> 2] = 12; 29717 HEAP32[i8 >> 2] = i10; 29718 _luaK_fixline(i5, i1); 29719 HEAP8[i5 + 48 | 0] = i7 + 1; 29720 STACKTOP = i3; 29721 return; 29722 } 29723 function _luaD_reallocstack(i3, i6) { 29724 i3 = i3 | 0; 29725 i6 = i6 | 0; 29726 var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0; 29727 i1 = STACKTOP; 29728 i2 = i3 + 28 | 0; 29729 i8 = HEAP32[i2 >> 2] | 0; 29730 i7 = i3 + 32 | 0; 29731 i9 = HEAP32[i7 >> 2] | 0; 29732 if ((i6 + 1 | 0) >>> 0 > 268435455) { 29733 _luaM_toobig(i3); 29734 } 29735 i5 = _luaM_realloc_(i3, i8, i9 << 4, i6 << 4) | 0; 29736 HEAP32[i2 >> 2] = i5; 29737 if ((i9 | 0) < (i6 | 0)) { 29738 do { 29739 HEAP32[i5 + (i9 << 4) + 8 >> 2] = 0; 29740 i9 = i9 + 1 | 0; 29741 } while ((i9 | 0) != (i6 | 0)); 29742 } 29743 HEAP32[i7 >> 2] = i6; 29744 HEAP32[i3 + 24 >> 2] = i5 + (i6 + -5 << 4); 29745 i6 = i3 + 8 | 0; 29746 HEAP32[i6 >> 2] = i5 + ((HEAP32[i6 >> 2] | 0) - i8 >> 4 << 4); 29747 i6 = HEAP32[i3 + 56 >> 2] | 0; 29748 if ((i6 | 0) != 0 ? (i4 = i6 + 8 | 0, HEAP32[i4 >> 2] = i5 + ((HEAP32[i4 >> 2] | 0) - i8 >> 4 << 4), i4 = HEAP32[i6 >> 2] | 0, (i4 | 0) != 0) : 0) { 29749 do { 29750 i9 = i4 + 8 | 0; 29751 HEAP32[i9 >> 2] = (HEAP32[i2 >> 2] | 0) + ((HEAP32[i9 >> 2] | 0) - i8 >> 4 << 4); 29752 i4 = HEAP32[i4 >> 2] | 0; 29753 } while ((i4 | 0) != 0); 29754 } 29755 i3 = HEAP32[i3 + 16 >> 2] | 0; 29756 if ((i3 | 0) == 0) { 29757 STACKTOP = i1; 29758 return; 29759 } 29760 do { 29761 i9 = i3 + 4 | 0; 29762 HEAP32[i9 >> 2] = (HEAP32[i2 >> 2] | 0) + ((HEAP32[i9 >> 2] | 0) - i8 >> 4 << 4); 29763 HEAP32[i3 >> 2] = (HEAP32[i2 >> 2] | 0) + ((HEAP32[i3 >> 2] | 0) - i8 >> 4 << 4); 29764 if (!((HEAP8[i3 + 18 | 0] & 1) == 0)) { 29765 i9 = i3 + 24 | 0; 29766 HEAP32[i9 >> 2] = (HEAP32[i2 >> 2] | 0) + ((HEAP32[i9 >> 2] | 0) - i8 >> 4 << 4); 29767 } 29768 i3 = HEAP32[i3 + 8 >> 2] | 0; 29769 } while ((i3 | 0) != 0); 29770 STACKTOP = i1; 29771 return; 29772 } 29773 function _luaF_close(i7, i6) { 29774 i7 = i7 | 0; 29775 i6 = i6 | 0; 29776 var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0; 29777 i1 = STACKTOP; 29778 i4 = HEAP32[i7 + 12 >> 2] | 0; 29779 i3 = i7 + 56 | 0; 29780 i8 = HEAP32[i3 >> 2] | 0; 29781 if ((i8 | 0) == 0) { 29782 STACKTOP = i1; 29783 return; 29784 } 29785 i5 = i4 + 60 | 0; 29786 i2 = i4 + 68 | 0; 29787 while (1) { 29788 i9 = i8 + 8 | 0; 29789 if ((HEAP32[i9 >> 2] | 0) >>> 0 < i6 >>> 0) { 29790 i2 = 10; 29791 break; 29792 } 29793 HEAP32[i3 >> 2] = HEAP32[i8 >> 2]; 29794 if ((((HEAPU8[i5] | 0) ^ 3) & ((HEAPU8[i8 + 5 | 0] | 0) ^ 3) | 0) == 0) { 29795 if ((HEAP32[i9 >> 2] | 0) != (i8 + 16 | 0)) { 29796 i9 = i8 + 16 | 0; 29797 i10 = i9 + 4 | 0; 29798 HEAP32[(HEAP32[i10 >> 2] | 0) + 16 >> 2] = HEAP32[i9 >> 2]; 29799 HEAP32[(HEAP32[i9 >> 2] | 0) + 20 >> 2] = HEAP32[i10 >> 2]; 29800 } 29801 _luaM_realloc_(i7, i8, 32, 0) | 0; 29802 } else { 29803 i11 = i8 + 16 | 0; 29804 i10 = i11 + 4 | 0; 29805 HEAP32[(HEAP32[i10 >> 2] | 0) + 16 >> 2] = HEAP32[i11 >> 2]; 29806 HEAP32[(HEAP32[i11 >> 2] | 0) + 20 >> 2] = HEAP32[i10 >> 2]; 29807 i11 = HEAP32[i9 >> 2] | 0; 29808 i10 = i8 + 16 | 0; 29809 i14 = i11; 29810 i13 = HEAP32[i14 + 4 >> 2] | 0; 29811 i12 = i10; 29812 HEAP32[i12 >> 2] = HEAP32[i14 >> 2]; 29813 HEAP32[i12 + 4 >> 2] = i13; 29814 HEAP32[i8 + 24 >> 2] = HEAP32[i11 + 8 >> 2]; 29815 HEAP32[i9 >> 2] = i10; 29816 HEAP32[i8 >> 2] = HEAP32[i2 >> 2]; 29817 HEAP32[i2 >> 2] = i8; 29818 _luaC_checkupvalcolor(i4, i8); 29819 } 29820 i8 = HEAP32[i3 >> 2] | 0; 29821 if ((i8 | 0) == 0) { 29822 i2 = 10; 29823 break; 29824 } 29825 } 29826 if ((i2 | 0) == 10) { 29827 STACKTOP = i1; 29828 return; 29829 } 29830 } 29831 function _luaK_dischargevars(i3, i1) { 29832 i3 = i3 | 0; 29833 i1 = i1 | 0; 29834 var i2 = 0, i4 = 0, i5 = 0, i6 = 0; 29835 i2 = STACKTOP; 29836 switch (HEAP32[i1 >> 2] | 0) { 29837 case 12: 29838 { 29839 HEAP32[i1 >> 2] = 6; 29840 i6 = i1 + 8 | 0; 29841 HEAP32[i6 >> 2] = (HEAP32[(HEAP32[(HEAP32[i3 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i6 >> 2] << 2) >> 2] | 0) >>> 6 & 255; 29842 STACKTOP = i2; 29843 return; 29844 } 29845 case 13: 29846 { 29847 i6 = (HEAP32[(HEAP32[i3 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i1 + 8 >> 2] << 2) | 0; 29848 HEAP32[i6 >> 2] = HEAP32[i6 >> 2] & 8388607 | 16777216; 29849 HEAP32[i1 >> 2] = 11; 29850 STACKTOP = i2; 29851 return; 29852 } 29853 case 9: 29854 { 29855 i4 = i1 + 8 | 0; 29856 i5 = HEAP16[i4 >> 1] | 0; 29857 if ((i5 & 256 | 0) == 0 ? (HEAPU8[i3 + 46 | 0] | 0) <= (i5 | 0) : 0) { 29858 i6 = i3 + 48 | 0; 29859 HEAP8[i6] = (HEAP8[i6] | 0) + -1 << 24 >> 24; 29860 } 29861 i5 = i4 + 2 | 0; 29862 if ((HEAP8[i4 + 3 | 0] | 0) == 7) { 29863 if ((HEAPU8[i3 + 46 | 0] | 0) > (HEAPU8[i5] | 0)) { 29864 i6 = 7; 29865 } else { 29866 i6 = i3 + 48 | 0; 29867 HEAP8[i6] = (HEAP8[i6] | 0) + -1 << 24 >> 24; 29868 i6 = 7; 29869 } 29870 } else { 29871 i6 = 6; 29872 } 29873 HEAP32[i4 >> 2] = _luaK_code(i3, HEAPU8[i5] << 23 | i6 | HEAP16[i4 >> 1] << 14) | 0; 29874 HEAP32[i1 >> 2] = 11; 29875 STACKTOP = i2; 29876 return; 29877 } 29878 case 7: 29879 { 29880 HEAP32[i1 >> 2] = 6; 29881 STACKTOP = i2; 29882 return; 29883 } 29884 case 8: 29885 { 29886 i6 = i1 + 8 | 0; 29887 HEAP32[i6 >> 2] = _luaK_code(i3, HEAP32[i6 >> 2] << 23 | 5) | 0; 29888 HEAP32[i1 >> 2] = 11; 29889 STACKTOP = i2; 29890 return; 29891 } 29892 default: 29893 { 29894 STACKTOP = i2; 29895 return; 29896 } 29897 } 29898 } 29899 function _gmatch_aux(i10) { 29900 i10 = i10 | 0; 29901 var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i11 = 0, i12 = 0; 29902 i1 = STACKTOP; 29903 STACKTOP = STACKTOP + 288 | 0; 29904 i2 = i1 + 8 | 0; 29905 i12 = i1 + 4 | 0; 29906 i3 = i1; 29907 i8 = _lua_tolstring(i10, -1001001, i12) | 0; 29908 i7 = _lua_tolstring(i10, -1001002, i3) | 0; 29909 i5 = i2 + 16 | 0; 29910 HEAP32[i5 >> 2] = i10; 29911 HEAP32[i2 >> 2] = 200; 29912 HEAP32[i2 + 4 >> 2] = i8; 29913 i9 = i2 + 8 | 0; 29914 HEAP32[i9 >> 2] = i8 + (HEAP32[i12 >> 2] | 0); 29915 HEAP32[i2 + 12 >> 2] = i7 + (HEAP32[i3 >> 2] | 0); 29916 i3 = i8 + (_lua_tointegerx(i10, -1001003, 0) | 0) | 0; 29917 if (i3 >>> 0 > (HEAP32[i9 >> 2] | 0) >>> 0) { 29918 i12 = 0; 29919 STACKTOP = i1; 29920 return i12 | 0; 29921 } 29922 i11 = i2 + 20 | 0; 29923 while (1) { 29924 HEAP32[i11 >> 2] = 0; 29925 i4 = _match(i2, i3, i7) | 0; 29926 i12 = i3 + 1 | 0; 29927 if ((i4 | 0) != 0) { 29928 break; 29929 } 29930 if (i12 >>> 0 > (HEAP32[i9 >> 2] | 0) >>> 0) { 29931 i2 = 0; 29932 i6 = 7; 29933 break; 29934 } else { 29935 i3 = i12; 29936 } 29937 } 29938 if ((i6 | 0) == 7) { 29939 STACKTOP = i1; 29940 return i2 | 0; 29941 } 29942 _lua_pushinteger(i10, i4 - i8 + ((i4 | 0) == (i3 | 0)) | 0); 29943 _lua_replace(i10, -1001003); 29944 i7 = HEAP32[i11 >> 2] | 0; 29945 i6 = (i7 | 0) != 0 | (i3 | 0) == 0 ? i7 : 1; 29946 _luaL_checkstack(HEAP32[i5 >> 2] | 0, i6, 7200); 29947 if ((i6 | 0) > 0) { 29948 i5 = 0; 29949 } else { 29950 i12 = i7; 29951 STACKTOP = i1; 29952 return i12 | 0; 29953 } 29954 while (1) { 29955 _push_onecapture(i2, i5, i3, i4); 29956 i5 = i5 + 1 | 0; 29957 if ((i5 | 0) == (i6 | 0)) { 29958 i2 = i6; 29959 break; 29960 } 29961 } 29962 STACKTOP = i1; 29963 return i2 | 0; 29964 } 29965 function _lua_rawseti(i1, i5, i3) { 29966 i1 = i1 | 0; 29967 i5 = i5 | 0; 29968 i3 = i3 | 0; 29969 var i2 = 0, i4 = 0, i6 = 0; 29970 i2 = STACKTOP; 29971 i6 = HEAP32[i1 + 16 >> 2] | 0; 29972 do { 29973 if ((i5 | 0) <= 0) { 29974 if (!((i5 | 0) < -1000999)) { 29975 i5 = (HEAP32[i1 + 8 >> 2] | 0) + (i5 << 4) | 0; 29976 break; 29977 } 29978 if ((i5 | 0) == -1001e3) { 29979 i5 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0; 29980 break; 29981 } 29982 i5 = -1001e3 - i5 | 0; 29983 i6 = HEAP32[i6 >> 2] | 0; 29984 if ((HEAP32[i6 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i6 >> 2] | 0, (i5 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) { 29985 i5 = i4 + (i5 + -1 << 4) + 16 | 0; 29986 } else { 29987 i5 = 5192; 29988 } 29989 } else { 29990 i4 = (HEAP32[i6 >> 2] | 0) + (i5 << 4) | 0; 29991 i5 = i4 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i4 : 5192; 29992 } 29993 } while (0); 29994 i4 = i1 + 8 | 0; 29995 _luaH_setint(i1, HEAP32[i5 >> 2] | 0, i3, (HEAP32[i4 >> 2] | 0) + -16 | 0); 29996 i3 = HEAP32[i4 >> 2] | 0; 29997 if ((HEAP32[i3 + -8 >> 2] & 64 | 0) == 0) { 29998 i6 = i3; 29999 i6 = i6 + -16 | 0; 30000 HEAP32[i4 >> 2] = i6; 30001 STACKTOP = i2; 30002 return; 30003 } 30004 if ((HEAP8[(HEAP32[i3 + -16 >> 2] | 0) + 5 | 0] & 3) == 0) { 30005 i6 = i3; 30006 i6 = i6 + -16 | 0; 30007 HEAP32[i4 >> 2] = i6; 30008 STACKTOP = i2; 30009 return; 30010 } 30011 i5 = HEAP32[i5 >> 2] | 0; 30012 if ((HEAP8[i5 + 5 | 0] & 4) == 0) { 30013 i6 = i3; 30014 i6 = i6 + -16 | 0; 30015 HEAP32[i4 >> 2] = i6; 30016 STACKTOP = i2; 30017 return; 30018 } 30019 _luaC_barrierback_(i1, i5); 30020 i6 = HEAP32[i4 >> 2] | 0; 30021 i6 = i6 + -16 | 0; 30022 HEAP32[i4 >> 2] = i6; 30023 STACKTOP = i2; 30024 return; 30025 } 30026 function _ll_require(i1) { 30027 i1 = i1 | 0; 30028 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0; 30029 i2 = STACKTOP; 30030 STACKTOP = STACKTOP + 1056 | 0; 30031 i5 = i2; 30032 i4 = i2 + 8 | 0; 30033 i3 = _luaL_checklstring(i1, 1, 0) | 0; 30034 _lua_settop(i1, 1); 30035 _lua_getfield(i1, -1001e3, 4576); 30036 _lua_getfield(i1, 2, i3); 30037 if ((_lua_toboolean(i1, -1) | 0) != 0) { 30038 STACKTOP = i2; 30039 return 1; 30040 } 30041 _lua_settop(i1, -2); 30042 _luaL_buffinit(i1, i4); 30043 _lua_getfield(i1, -1001001, 4240); 30044 if ((_lua_type(i1, 3) | 0) == 5) { 30045 i6 = 1; 30046 } else { 30047 _luaL_error(i1, 4656, i5) | 0; 30048 i6 = 1; 30049 } 30050 while (1) { 30051 _lua_rawgeti(i1, 3, i6); 30052 if ((_lua_type(i1, -1) | 0) == 0) { 30053 _lua_settop(i1, -2); 30054 _luaL_pushresult(i4); 30055 i7 = _lua_tolstring(i1, -1, 0) | 0; 30056 HEAP32[i5 >> 2] = i3; 30057 HEAP32[i5 + 4 >> 2] = i7; 30058 _luaL_error(i1, 4696, i5) | 0; 30059 } 30060 _lua_pushstring(i1, i3) | 0; 30061 _lua_callk(i1, 1, 2, 0, 0); 30062 if ((_lua_type(i1, -2) | 0) == 6) { 30063 break; 30064 } 30065 if ((_lua_isstring(i1, -2) | 0) == 0) { 30066 _lua_settop(i1, -3); 30067 } else { 30068 _lua_settop(i1, -2); 30069 _luaL_addvalue(i4); 30070 } 30071 i6 = i6 + 1 | 0; 30072 } 30073 _lua_pushstring(i1, i3) | 0; 30074 _lua_insert(i1, -2); 30075 _lua_callk(i1, 2, 1, 0, 0); 30076 if ((_lua_type(i1, -1) | 0) != 0) { 30077 _lua_setfield(i1, 2, i3); 30078 } 30079 _lua_getfield(i1, 2, i3); 30080 if ((_lua_type(i1, -1) | 0) != 0) { 30081 STACKTOP = i2; 30082 return 1; 30083 } 30084 _lua_pushboolean(i1, 1); 30085 _lua_pushvalue(i1, -1); 30086 _lua_setfield(i1, 2, i3); 30087 STACKTOP = i2; 30088 return 1; 30089 } 30090 function _f_parser(i1, i3) { 30091 i1 = i1 | 0; 30092 i3 = i3 | 0; 30093 var i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0; 30094 i2 = STACKTOP; 30095 STACKTOP = STACKTOP + 16 | 0; 30096 i4 = i2; 30097 i5 = HEAP32[i3 >> 2] | 0; 30098 i8 = HEAP32[i5 >> 2] | 0; 30099 HEAP32[i5 >> 2] = i8 + -1; 30100 if ((i8 | 0) == 0) { 30101 i6 = _luaZ_fill(i5) | 0; 30102 } else { 30103 i8 = i5 + 4 | 0; 30104 i6 = HEAP32[i8 >> 2] | 0; 30105 HEAP32[i8 >> 2] = i6 + 1; 30106 i6 = HEAPU8[i6] | 0; 30107 } 30108 i5 = HEAP32[i3 + 52 >> 2] | 0; 30109 i7 = (i5 | 0) == 0; 30110 if ((i6 | 0) == 27) { 30111 if (!i7 ? (_strchr(i5, 98) | 0) == 0 : 0) { 30112 HEAP32[i4 >> 2] = 2360; 30113 HEAP32[i4 + 4 >> 2] = i5; 30114 _luaO_pushfstring(i1, 2376, i4) | 0; 30115 _luaD_throw(i1, 3); 30116 } 30117 i8 = _luaU_undump(i1, HEAP32[i3 >> 2] | 0, i3 + 4 | 0, HEAP32[i3 + 56 >> 2] | 0) | 0; 30118 } else { 30119 if (!i7 ? (_strchr(i5, 116) | 0) == 0 : 0) { 30120 HEAP32[i4 >> 2] = 2368; 30121 HEAP32[i4 + 4 >> 2] = i5; 30122 _luaO_pushfstring(i1, 2376, i4) | 0; 30123 _luaD_throw(i1, 3); 30124 } 30125 i8 = _luaY_parser(i1, HEAP32[i3 >> 2] | 0, i3 + 4 | 0, i3 + 16 | 0, HEAP32[i3 + 56 >> 2] | 0, i6) | 0; 30126 } 30127 i7 = i8 + 6 | 0; 30128 if ((HEAP8[i7] | 0) == 0) { 30129 STACKTOP = i2; 30130 return; 30131 } 30132 i5 = i8 + 16 | 0; 30133 i6 = i8 + 5 | 0; 30134 i4 = 0; 30135 do { 30136 i3 = _luaF_newupval(i1) | 0; 30137 HEAP32[i5 + (i4 << 2) >> 2] = i3; 30138 if (!((HEAP8[i3 + 5 | 0] & 3) == 0) ? !((HEAP8[i6] & 4) == 0) : 0) { 30139 _luaC_barrier_(i1, i8, i3); 30140 } 30141 i4 = i4 + 1 | 0; 30142 } while ((i4 | 0) < (HEAPU8[i7] | 0)); 30143 STACKTOP = i2; 30144 return; 30145 } 30146 function _str_rep(i9) { 30147 i9 = i9 | 0; 30148 var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i10 = 0, i11 = 0, i12 = 0; 30149 i6 = STACKTOP; 30150 STACKTOP = STACKTOP + 1056 | 0; 30151 i4 = i6; 30152 i2 = i6 + 1044 | 0; 30153 i3 = i6 + 1040 | 0; 30154 i1 = _luaL_checklstring(i9, 1, i2) | 0; 30155 i8 = _luaL_checkinteger(i9, 2) | 0; 30156 i5 = _luaL_optlstring(i9, 3, 7040, i3) | 0; 30157 if ((i8 | 0) < 1) { 30158 _lua_pushlstring(i9, 7040, 0) | 0; 30159 i12 = 1; 30160 STACKTOP = i6; 30161 return i12 | 0; 30162 } 30163 i7 = HEAP32[i2 >> 2] | 0; 30164 i10 = HEAP32[i3 >> 2] | 0; 30165 i11 = i10 + i7 | 0; 30166 if (!(i11 >>> 0 < i7 >>> 0) ? i11 >>> 0 < (2147483647 / (i8 >>> 0) | 0) >>> 0 : 0) { 30167 i7 = (Math_imul(i10, i8 + -1 | 0) | 0) + (Math_imul(i7, i8) | 0) | 0; 30168 i11 = _luaL_buffinitsize(i9, i4, i7) | 0; 30169 _memcpy(i11 | 0, i1 | 0, HEAP32[i2 >> 2] | 0) | 0; 30170 if ((i8 | 0) > 1) { 30171 while (1) { 30172 i8 = i8 + -1 | 0; 30173 i9 = HEAP32[i2 >> 2] | 0; 30174 i10 = i11 + i9 | 0; 30175 i12 = HEAP32[i3 >> 2] | 0; 30176 if ((i12 | 0) == 0) { 30177 i12 = i9; 30178 } else { 30179 _memcpy(i10 | 0, i5 | 0, i12 | 0) | 0; 30180 i12 = HEAP32[i2 >> 2] | 0; 30181 i10 = i11 + ((HEAP32[i3 >> 2] | 0) + i9) | 0; 30182 } 30183 _memcpy(i10 | 0, i1 | 0, i12 | 0) | 0; 30184 if ((i8 | 0) <= 1) { 30185 break; 30186 } else { 30187 i11 = i10; 30188 } 30189 } 30190 } 30191 _luaL_pushresultsize(i4, i7); 30192 i12 = 1; 30193 STACKTOP = i6; 30194 return i12 | 0; 30195 } 30196 i12 = _luaL_error(i9, 7168, i4) | 0; 30197 STACKTOP = i6; 30198 return i12 | 0; 30199 } 30200 function ___strchrnul(i6, i2) { 30201 i6 = i6 | 0; 30202 i2 = i2 | 0; 30203 var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0; 30204 i1 = STACKTOP; 30205 i3 = i2 & 255; 30206 if ((i3 | 0) == 0) { 30207 i7 = i6 + (_strlen(i6 | 0) | 0) | 0; 30208 STACKTOP = i1; 30209 return i7 | 0; 30210 } 30211 L5 : do { 30212 if ((i6 & 3 | 0) != 0) { 30213 i4 = i2 & 255; 30214 while (1) { 30215 i5 = HEAP8[i6] | 0; 30216 if (i5 << 24 >> 24 == 0) { 30217 i4 = i6; 30218 i5 = 13; 30219 break; 30220 } 30221 i7 = i6 + 1 | 0; 30222 if (i5 << 24 >> 24 == i4 << 24 >> 24) { 30223 i4 = i6; 30224 i5 = 13; 30225 break; 30226 } 30227 if ((i7 & 3 | 0) == 0) { 30228 i4 = i7; 30229 break L5; 30230 } else { 30231 i6 = i7; 30232 } 30233 } 30234 if ((i5 | 0) == 13) { 30235 STACKTOP = i1; 30236 return i4 | 0; 30237 } 30238 } else { 30239 i4 = i6; 30240 } 30241 } while (0); 30242 i3 = Math_imul(i3, 16843009) | 0; 30243 i6 = HEAP32[i4 >> 2] | 0; 30244 L15 : do { 30245 if (((i6 & -2139062144 ^ -2139062144) & i6 + -16843009 | 0) == 0) { 30246 while (1) { 30247 i7 = i6 ^ i3; 30248 i5 = i4 + 4 | 0; 30249 if (((i7 & -2139062144 ^ -2139062144) & i7 + -16843009 | 0) != 0) { 30250 break L15; 30251 } 30252 i6 = HEAP32[i5 >> 2] | 0; 30253 if (((i6 & -2139062144 ^ -2139062144) & i6 + -16843009 | 0) == 0) { 30254 i4 = i5; 30255 } else { 30256 i4 = i5; 30257 break; 30258 } 30259 } 30260 } 30261 } while (0); 30262 i2 = i2 & 255; 30263 while (1) { 30264 i7 = HEAP8[i4] | 0; 30265 if (i7 << 24 >> 24 == 0 | i7 << 24 >> 24 == i2 << 24 >> 24) { 30266 break; 30267 } else { 30268 i4 = i4 + 1 | 0; 30269 } 30270 } 30271 STACKTOP = i1; 30272 return i4 | 0; 30273 } 30274 function _lua_replace(i2, i6) { 30275 i2 = i2 | 0; 30276 i6 = i6 | 0; 30277 var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0; 30278 i3 = STACKTOP; 30279 i7 = i2 + 8 | 0; 30280 i9 = HEAP32[i7 >> 2] | 0; 30281 i5 = i9 + -16 | 0; 30282 i4 = i2 + 16 | 0; 30283 i12 = HEAP32[i4 >> 2] | 0; 30284 do { 30285 if ((i6 | 0) <= 0) { 30286 if (!((i6 | 0) < -1000999)) { 30287 i10 = i9 + (i6 << 4) | 0; 30288 break; 30289 } 30290 if ((i6 | 0) == -1001e3) { 30291 i10 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0; 30292 break; 30293 } 30294 i11 = -1001e3 - i6 | 0; 30295 i12 = HEAP32[i12 >> 2] | 0; 30296 if ((HEAP32[i12 + 8 >> 2] | 0) != 22 ? (i10 = HEAP32[i12 >> 2] | 0, (i11 | 0) <= (HEAPU8[i10 + 6 | 0] | 0 | 0)) : 0) { 30297 i10 = i10 + (i11 + -1 << 4) + 16 | 0; 30298 } else { 30299 i10 = 5192; 30300 } 30301 } else { 30302 i10 = (HEAP32[i12 >> 2] | 0) + (i6 << 4) | 0; 30303 i10 = i10 >>> 0 < i9 >>> 0 ? i10 : 5192; 30304 } 30305 } while (0); 30306 i13 = i5; 30307 i11 = HEAP32[i13 + 4 >> 2] | 0; 30308 i12 = i10; 30309 HEAP32[i12 >> 2] = HEAP32[i13 >> 2]; 30310 HEAP32[i12 + 4 >> 2] = i11; 30311 i9 = i9 + -8 | 0; 30312 HEAP32[i10 + 8 >> 2] = HEAP32[i9 >> 2]; 30313 if ((((i6 | 0) < -1001e3 ? (HEAP32[i9 >> 2] & 64 | 0) != 0 : 0) ? (i1 = HEAP32[i5 >> 2] | 0, !((HEAP8[i1 + 5 | 0] & 3) == 0)) : 0) ? (i8 = HEAP32[HEAP32[HEAP32[i4 >> 2] >> 2] >> 2] | 0, !((HEAP8[i8 + 5 | 0] & 4) == 0)) : 0) { 30314 _luaC_barrier_(i2, i8, i1); 30315 } 30316 HEAP32[i7 >> 2] = (HEAP32[i7 >> 2] | 0) + -16; 30317 STACKTOP = i3; 30318 return; 30319 } 30320 function _memchr(i4, i3, i6) { 30321 i4 = i4 | 0; 30322 i3 = i3 | 0; 30323 i6 = i6 | 0; 30324 var i1 = 0, i2 = 0, i5 = 0, i7 = 0; 30325 i1 = STACKTOP; 30326 i2 = i3 & 255; 30327 i7 = (i6 | 0) == 0; 30328 L1 : do { 30329 if ((i4 & 3 | 0) == 0 | i7) { 30330 i5 = i6; 30331 i6 = 5; 30332 } else { 30333 i5 = i3 & 255; 30334 while (1) { 30335 if ((HEAP8[i4] | 0) == i5 << 24 >> 24) { 30336 i5 = i6; 30337 i6 = 6; 30338 break L1; 30339 } 30340 i4 = i4 + 1 | 0; 30341 i6 = i6 + -1 | 0; 30342 i7 = (i6 | 0) == 0; 30343 if ((i4 & 3 | 0) == 0 | i7) { 30344 i5 = i6; 30345 i6 = 5; 30346 break; 30347 } 30348 } 30349 } 30350 } while (0); 30351 if ((i6 | 0) == 5) { 30352 if (i7) { 30353 i5 = 0; 30354 } else { 30355 i6 = 6; 30356 } 30357 } 30358 L8 : do { 30359 if ((i6 | 0) == 6) { 30360 i3 = i3 & 255; 30361 if (!((HEAP8[i4] | 0) == i3 << 24 >> 24)) { 30362 i2 = Math_imul(i2, 16843009) | 0; 30363 L11 : do { 30364 if (i5 >>> 0 > 3) { 30365 do { 30366 i7 = HEAP32[i4 >> 2] ^ i2; 30367 if (((i7 & -2139062144 ^ -2139062144) & i7 + -16843009 | 0) != 0) { 30368 break L11; 30369 } 30370 i4 = i4 + 4 | 0; 30371 i5 = i5 + -4 | 0; 30372 } while (i5 >>> 0 > 3); 30373 } 30374 } while (0); 30375 if ((i5 | 0) == 0) { 30376 i5 = 0; 30377 } else { 30378 while (1) { 30379 if ((HEAP8[i4] | 0) == i3 << 24 >> 24) { 30380 break L8; 30381 } 30382 i4 = i4 + 1 | 0; 30383 i5 = i5 + -1 | 0; 30384 if ((i5 | 0) == 0) { 30385 i5 = 0; 30386 break; 30387 } 30388 } 30389 } 30390 } 30391 } 30392 } while (0); 30393 STACKTOP = i1; 30394 return ((i5 | 0) != 0 ? i4 : 0) | 0; 30395 } 30396 function _lua_insert(i2, i5) { 30397 i2 = i2 | 0; 30398 i5 = i5 | 0; 30399 var i1 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0; 30400 i1 = STACKTOP; 30401 i4 = HEAP32[i2 + 16 >> 2] | 0; 30402 do { 30403 if ((i5 | 0) <= 0) { 30404 if (!((i5 | 0) < -1000999)) { 30405 i3 = (HEAP32[i2 + 8 >> 2] | 0) + (i5 << 4) | 0; 30406 break; 30407 } 30408 if ((i5 | 0) == -1001e3) { 30409 i3 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0; 30410 break; 30411 } 30412 i5 = -1001e3 - i5 | 0; 30413 i4 = HEAP32[i4 >> 2] | 0; 30414 if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i4 >> 2] | 0, (i5 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) { 30415 i3 = i3 + (i5 + -1 << 4) + 16 | 0; 30416 } else { 30417 i3 = 5192; 30418 } 30419 } else { 30420 i3 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0; 30421 i3 = i3 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i3 : 5192; 30422 } 30423 } while (0); 30424 i2 = i2 + 8 | 0; 30425 i4 = HEAP32[i2 >> 2] | 0; 30426 if (i4 >>> 0 > i3 >>> 0) { 30427 while (1) { 30428 i5 = i4 + -16 | 0; 30429 i8 = i5; 30430 i7 = HEAP32[i8 + 4 >> 2] | 0; 30431 i6 = i4; 30432 HEAP32[i6 >> 2] = HEAP32[i8 >> 2]; 30433 HEAP32[i6 + 4 >> 2] = i7; 30434 HEAP32[i4 + 8 >> 2] = HEAP32[i4 + -8 >> 2]; 30435 if (i5 >>> 0 > i3 >>> 0) { 30436 i4 = i5; 30437 } else { 30438 break; 30439 } 30440 } 30441 i4 = HEAP32[i2 >> 2] | 0; 30442 } 30443 i6 = i4; 30444 i7 = HEAP32[i6 + 4 >> 2] | 0; 30445 i8 = i3; 30446 HEAP32[i8 >> 2] = HEAP32[i6 >> 2]; 30447 HEAP32[i8 + 4 >> 2] = i7; 30448 HEAP32[i3 + 8 >> 2] = HEAP32[i4 + 8 >> 2]; 30449 STACKTOP = i1; 30450 return; 30451 } 30452 function _findlocal(i6, i4, i1, i2) { 30453 i6 = i6 | 0; 30454 i4 = i4 | 0; 30455 i1 = i1 | 0; 30456 i2 = i2 | 0; 30457 var i3 = 0, i5 = 0, i7 = 0, i8 = 0; 30458 i3 = STACKTOP; 30459 do { 30460 if ((HEAP8[i4 + 18 | 0] & 1) == 0) { 30461 i7 = (HEAP32[i4 >> 2] | 0) + 16 | 0; 30462 i5 = 7; 30463 } else { 30464 if ((i1 | 0) >= 0) { 30465 i8 = HEAP32[i4 + 24 >> 2] | 0; 30466 i7 = HEAP32[(HEAP32[HEAP32[i4 >> 2] >> 2] | 0) + 12 >> 2] | 0; 30467 i7 = _luaF_getlocalname(i7, i1, ((HEAP32[i4 + 28 >> 2] | 0) - (HEAP32[i7 + 12 >> 2] | 0) >> 2) + -1 | 0) | 0; 30468 if ((i7 | 0) == 0) { 30469 i7 = i8; 30470 i5 = 7; 30471 break; 30472 } else { 30473 break; 30474 } 30475 } 30476 i5 = HEAP32[i4 >> 2] | 0; 30477 i6 = HEAPU8[(HEAP32[(HEAP32[i5 >> 2] | 0) + 12 >> 2] | 0) + 76 | 0] | 0; 30478 if ((((HEAP32[i4 + 24 >> 2] | 0) - i5 >> 4) - i6 | 0) <= (0 - i1 | 0)) { 30479 i8 = 0; 30480 STACKTOP = i3; 30481 return i8 | 0; 30482 } 30483 HEAP32[i2 >> 2] = i5 + (i6 - i1 << 4); 30484 i8 = 2208; 30485 STACKTOP = i3; 30486 return i8 | 0; 30487 } 30488 } while (0); 30489 if ((i5 | 0) == 7) { 30490 if ((HEAP32[i6 + 16 >> 2] | 0) == (i4 | 0)) { 30491 i4 = i6 + 8 | 0; 30492 } else { 30493 i4 = HEAP32[i4 + 12 >> 2] | 0; 30494 } 30495 if (((HEAP32[i4 >> 2] | 0) - i7 >> 4 | 0) >= (i1 | 0) & (i1 | 0) > 0) { 30496 i8 = i7; 30497 i7 = 2192; 30498 } else { 30499 i8 = 0; 30500 STACKTOP = i3; 30501 return i8 | 0; 30502 } 30503 } 30504 HEAP32[i2 >> 2] = i8 + (i1 + -1 << 4); 30505 i8 = i7; 30506 STACKTOP = i3; 30507 return i8 | 0; 30508 } 30509 function _luaH_setint(i4, i5, i6, i1) { 30510 i4 = i4 | 0; 30511 i5 = i5 | 0; 30512 i6 = i6 | 0; 30513 i1 = i1 | 0; 30514 var i2 = 0, i3 = 0, d7 = 0.0, i8 = 0, i9 = 0; 30515 i2 = STACKTOP; 30516 STACKTOP = STACKTOP + 32 | 0; 30517 i8 = i2 + 16 | 0; 30518 i3 = i2; 30519 i9 = i6 + -1 | 0; 30520 L1 : do { 30521 if (i9 >>> 0 < (HEAP32[i5 + 28 >> 2] | 0) >>> 0) { 30522 i9 = (HEAP32[i5 + 12 >> 2] | 0) + (i9 << 4) | 0; 30523 i8 = 10; 30524 } else { 30525 d7 = +(i6 | 0); 30526 HEAPF64[i8 >> 3] = d7 + 1.0; 30527 i8 = (HEAP32[i8 + 4 >> 2] | 0) + (HEAP32[i8 >> 2] | 0) | 0; 30528 if ((i8 | 0) < 0) { 30529 i9 = 0 - i8 | 0; 30530 i8 = (i8 | 0) == (i9 | 0) ? 0 : i9; 30531 } 30532 i9 = (HEAP32[i5 + 16 >> 2] | 0) + (((i8 | 0) % ((1 << (HEAPU8[i5 + 7 | 0] | 0)) + -1 | 1 | 0) | 0) << 5) | 0; 30533 while (1) { 30534 if ((HEAP32[i9 + 24 >> 2] | 0) == 3 ? +HEAPF64[i9 + 16 >> 3] == d7 : 0) { 30535 break; 30536 } 30537 i9 = HEAP32[i9 + 28 >> 2] | 0; 30538 if ((i9 | 0) == 0) { 30539 i8 = 12; 30540 break L1; 30541 } 30542 } 30543 i8 = 10; 30544 } 30545 } while (0); 30546 if ((i8 | 0) == 10) { 30547 if ((i9 | 0) == 5192) { 30548 d7 = +(i6 | 0); 30549 i8 = 12; 30550 } 30551 } 30552 if ((i8 | 0) == 12) { 30553 HEAPF64[i3 >> 3] = d7; 30554 HEAP32[i3 + 8 >> 2] = 3; 30555 i9 = _luaH_newkey(i4, i5, i3) | 0; 30556 } 30557 i5 = i1; 30558 i6 = HEAP32[i5 + 4 >> 2] | 0; 30559 i8 = i9; 30560 HEAP32[i8 >> 2] = HEAP32[i5 >> 2]; 30561 HEAP32[i8 + 4 >> 2] = i6; 30562 HEAP32[i9 + 8 >> 2] = HEAP32[i1 + 8 >> 2]; 30563 STACKTOP = i2; 30564 return; 30565 } 30566 function _lua_tounsignedx(i6, i8, i1) { 30567 i6 = i6 | 0; 30568 i8 = i8 | 0; 30569 i1 = i1 | 0; 30570 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0; 30571 i2 = STACKTOP; 30572 STACKTOP = STACKTOP + 32 | 0; 30573 i4 = i2 + 8 | 0; 30574 i3 = i2; 30575 i7 = HEAP32[i6 + 16 >> 2] | 0; 30576 do { 30577 if ((i8 | 0) <= 0) { 30578 if (!((i8 | 0) < -1000999)) { 30579 i5 = (HEAP32[i6 + 8 >> 2] | 0) + (i8 << 4) | 0; 30580 break; 30581 } 30582 if ((i8 | 0) == -1001e3) { 30583 i5 = (HEAP32[i6 + 12 >> 2] | 0) + 40 | 0; 30584 break; 30585 } 30586 i6 = -1001e3 - i8 | 0; 30587 i7 = HEAP32[i7 >> 2] | 0; 30588 if ((HEAP32[i7 + 8 >> 2] | 0) != 22 ? (i5 = HEAP32[i7 >> 2] | 0, (i6 | 0) <= (HEAPU8[i5 + 6 | 0] | 0 | 0)) : 0) { 30589 i5 = i5 + (i6 + -1 << 4) + 16 | 0; 30590 } else { 30591 i5 = 5192; 30592 } 30593 } else { 30594 i5 = (HEAP32[i7 >> 2] | 0) + (i8 << 4) | 0; 30595 i5 = i5 >>> 0 < (HEAP32[i6 + 8 >> 2] | 0) >>> 0 ? i5 : 5192; 30596 } 30597 } while (0); 30598 if ((HEAP32[i5 + 8 >> 2] | 0) != 3) { 30599 i5 = _luaV_tonumber(i5, i4) | 0; 30600 if ((i5 | 0) == 0) { 30601 if ((i1 | 0) == 0) { 30602 i8 = 0; 30603 STACKTOP = i2; 30604 return i8 | 0; 30605 } 30606 HEAP32[i1 >> 2] = 0; 30607 i8 = 0; 30608 STACKTOP = i2; 30609 return i8 | 0; 30610 } 30611 } 30612 HEAPF64[i3 >> 3] = +HEAPF64[i5 >> 3] + 6755399441055744.0; 30613 i3 = HEAP32[i3 >> 2] | 0; 30614 if ((i1 | 0) == 0) { 30615 i8 = i3; 30616 STACKTOP = i2; 30617 return i8 | 0; 30618 } 30619 HEAP32[i1 >> 2] = 1; 30620 i8 = i3; 30621 STACKTOP = i2; 30622 return i8 | 0; 30623 } 30624 function _luaC_freeallobjects(i1) { 30625 i1 = i1 | 0; 30626 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0; 30627 i2 = STACKTOP; 30628 i5 = i1 + 12 | 0; 30629 i3 = HEAP32[i5 >> 2] | 0; 30630 i7 = i3 + 104 | 0; 30631 while (1) { 30632 i4 = HEAP32[i7 >> 2] | 0; 30633 if ((i4 | 0) == 0) { 30634 break; 30635 } else { 30636 i7 = i4; 30637 } 30638 } 30639 i4 = i3 + 72 | 0; 30640 i6 = HEAP32[i4 >> 2] | 0; 30641 if ((i6 | 0) == 0) { 30642 i5 = i3; 30643 } else { 30644 while (1) { 30645 i8 = i6 + 5 | 0; 30646 HEAP8[i8] = HEAPU8[i8] | 0 | 8; 30647 HEAP32[i4 >> 2] = HEAP32[i6 >> 2]; 30648 HEAP32[i6 >> 2] = HEAP32[i7 >> 2]; 30649 HEAP32[i7 >> 2] = i6; 30650 i7 = HEAP32[i4 >> 2] | 0; 30651 if ((i7 | 0) == 0) { 30652 break; 30653 } else { 30654 i8 = i6; 30655 i6 = i7; 30656 i7 = i8; 30657 } 30658 } 30659 i5 = HEAP32[i5 >> 2] | 0; 30660 } 30661 i5 = i5 + 104 | 0; 30662 i6 = HEAP32[i5 >> 2] | 0; 30663 if ((i6 | 0) != 0) { 30664 do { 30665 i8 = i6 + 5 | 0; 30666 HEAP8[i8] = HEAP8[i8] & 191; 30667 _GCTM(i1, 0); 30668 i6 = HEAP32[i5 >> 2] | 0; 30669 } while ((i6 | 0) != 0); 30670 } 30671 HEAP8[i3 + 60 | 0] = 3; 30672 HEAP8[i3 + 62 | 0] = 0; 30673 _sweeplist(i1, i4, -3) | 0; 30674 _sweeplist(i1, i3 + 68 | 0, -3) | 0; 30675 i4 = i3 + 32 | 0; 30676 if ((HEAP32[i4 >> 2] | 0) <= 0) { 30677 STACKTOP = i2; 30678 return; 30679 } 30680 i3 = i3 + 24 | 0; 30681 i5 = 0; 30682 do { 30683 _sweeplist(i1, (HEAP32[i3 >> 2] | 0) + (i5 << 2) | 0, -3) | 0; 30684 i5 = i5 + 1 | 0; 30685 } while ((i5 | 0) < (HEAP32[i4 >> 2] | 0)); 30686 STACKTOP = i2; 30687 return; 30688 } 30689 function _strspn(i1, i5) { 30690 i1 = i1 | 0; 30691 i5 = i5 | 0; 30692 var i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0; 30693 i2 = STACKTOP; 30694 STACKTOP = STACKTOP + 32 | 0; 30695 i3 = i2; 30696 HEAP32[i3 + 0 >> 2] = 0; 30697 HEAP32[i3 + 4 >> 2] = 0; 30698 HEAP32[i3 + 8 >> 2] = 0; 30699 HEAP32[i3 + 12 >> 2] = 0; 30700 HEAP32[i3 + 16 >> 2] = 0; 30701 HEAP32[i3 + 20 >> 2] = 0; 30702 HEAP32[i3 + 24 >> 2] = 0; 30703 HEAP32[i3 + 28 >> 2] = 0; 30704 i4 = HEAP8[i5] | 0; 30705 if (i4 << 24 >> 24 == 0) { 30706 i6 = 0; 30707 STACKTOP = i2; 30708 return i6 | 0; 30709 } 30710 if ((HEAP8[i5 + 1 | 0] | 0) == 0) { 30711 i3 = i1; 30712 while (1) { 30713 if ((HEAP8[i3] | 0) == i4 << 24 >> 24) { 30714 i3 = i3 + 1 | 0; 30715 } else { 30716 break; 30717 } 30718 } 30719 i6 = i3 - i1 | 0; 30720 STACKTOP = i2; 30721 return i6 | 0; 30722 } 30723 do { 30724 i7 = i4 & 255; 30725 i6 = i3 + (i7 >>> 5 << 2) | 0; 30726 HEAP32[i6 >> 2] = HEAP32[i6 >> 2] | 1 << (i7 & 31); 30727 i5 = i5 + 1 | 0; 30728 i4 = HEAP8[i5] | 0; 30729 } while (!(i4 << 24 >> 24 == 0)); 30730 i5 = HEAP8[i1] | 0; 30731 L12 : do { 30732 if (i5 << 24 >> 24 == 0) { 30733 i4 = i1; 30734 } else { 30735 i4 = i1; 30736 while (1) { 30737 i7 = i5 & 255; 30738 i6 = i4 + 1 | 0; 30739 if ((HEAP32[i3 + (i7 >>> 5 << 2) >> 2] & 1 << (i7 & 31) | 0) == 0) { 30740 break L12; 30741 } 30742 i5 = HEAP8[i6] | 0; 30743 if (i5 << 24 >> 24 == 0) { 30744 i4 = i6; 30745 break; 30746 } else { 30747 i4 = i6; 30748 } 30749 } 30750 } 30751 } while (0); 30752 i7 = i4 - i1 | 0; 30753 STACKTOP = i2; 30754 return i7 | 0; 30755 } 30756 function _lua_remove(i2, i4) { 30757 i2 = i2 | 0; 30758 i4 = i4 | 0; 30759 var i1 = 0, i3 = 0, i5 = 0, i6 = 0, i7 = 0; 30760 i1 = STACKTOP; 30761 i5 = HEAP32[i2 + 16 >> 2] | 0; 30762 do { 30763 if ((i4 | 0) <= 0) { 30764 if (!((i4 | 0) < -1000999)) { 30765 i3 = (HEAP32[i2 + 8 >> 2] | 0) + (i4 << 4) | 0; 30766 break; 30767 } 30768 if ((i4 | 0) == -1001e3) { 30769 i3 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0; 30770 break; 30771 } 30772 i4 = -1001e3 - i4 | 0; 30773 i5 = HEAP32[i5 >> 2] | 0; 30774 if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i5 >> 2] | 0, (i4 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) { 30775 i3 = i3 + (i4 + -1 << 4) + 16 | 0; 30776 } else { 30777 i3 = 5192; 30778 } 30779 } else { 30780 i3 = (HEAP32[i5 >> 2] | 0) + (i4 << 4) | 0; 30781 i3 = i3 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i3 : 5192; 30782 } 30783 } while (0); 30784 i4 = i3 + 16 | 0; 30785 i2 = i2 + 8 | 0; 30786 i5 = HEAP32[i2 >> 2] | 0; 30787 if (!(i4 >>> 0 < i5 >>> 0)) { 30788 i5 = i5 + -16 | 0; 30789 HEAP32[i2 >> 2] = i5; 30790 STACKTOP = i1; 30791 return; 30792 } 30793 while (1) { 30794 i7 = i4; 30795 i6 = HEAP32[i7 + 4 >> 2] | 0; 30796 i5 = i3; 30797 HEAP32[i5 >> 2] = HEAP32[i7 >> 2]; 30798 HEAP32[i5 + 4 >> 2] = i6; 30799 HEAP32[i3 + 8 >> 2] = HEAP32[i3 + 24 >> 2]; 30800 i5 = i4 + 16 | 0; 30801 i3 = HEAP32[i2 >> 2] | 0; 30802 if (i5 >>> 0 < i3 >>> 0) { 30803 i3 = i4; 30804 i4 = i5; 30805 } else { 30806 break; 30807 } 30808 } 30809 i7 = i3 + -16 | 0; 30810 HEAP32[i2 >> 2] = i7; 30811 STACKTOP = i1; 30812 return; 30813 } 30814 function _luaD_protectedparser(i1, i4, i3, i2) { 30815 i1 = i1 | 0; 30816 i4 = i4 | 0; 30817 i3 = i3 | 0; 30818 i2 = i2 | 0; 30819 var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0; 30820 i5 = STACKTOP; 30821 STACKTOP = STACKTOP + 64 | 0; 30822 i13 = i5; 30823 i6 = i1 + 36 | 0; 30824 HEAP16[i6 >> 1] = (HEAP16[i6 >> 1] | 0) + 1 << 16 >> 16; 30825 HEAP32[i13 >> 2] = i4; 30826 HEAP32[i13 + 56 >> 2] = i3; 30827 HEAP32[i13 + 52 >> 2] = i2; 30828 i10 = i13 + 16 | 0; 30829 HEAP32[i10 >> 2] = 0; 30830 i9 = i13 + 24 | 0; 30831 HEAP32[i9 >> 2] = 0; 30832 i8 = i13 + 28 | 0; 30833 HEAP32[i8 >> 2] = 0; 30834 i7 = i13 + 36 | 0; 30835 HEAP32[i7 >> 2] = 0; 30836 i2 = i13 + 40 | 0; 30837 HEAP32[i2 >> 2] = 0; 30838 i3 = i13 + 48 | 0; 30839 HEAP32[i3 >> 2] = 0; 30840 i12 = i13 + 4 | 0; 30841 HEAP32[i12 >> 2] = 0; 30842 i11 = i13 + 12 | 0; 30843 HEAP32[i11 >> 2] = 0; 30844 i4 = _luaD_pcall(i1, 6, i13, (HEAP32[i1 + 8 >> 2] | 0) - (HEAP32[i1 + 28 >> 2] | 0) | 0, HEAP32[i1 + 68 >> 2] | 0) | 0; 30845 HEAP32[i12 >> 2] = _luaM_realloc_(i1, HEAP32[i12 >> 2] | 0, HEAP32[i11 >> 2] | 0, 0) | 0; 30846 HEAP32[i11 >> 2] = 0; 30847 _luaM_realloc_(i1, HEAP32[i10 >> 2] | 0, HEAP32[i9 >> 2] << 1, 0) | 0; 30848 _luaM_realloc_(i1, HEAP32[i8 >> 2] | 0, HEAP32[i7 >> 2] << 4, 0) | 0; 30849 _luaM_realloc_(i1, HEAP32[i2 >> 2] | 0, HEAP32[i3 >> 2] << 4, 0) | 0; 30850 HEAP16[i6 >> 1] = (HEAP16[i6 >> 1] | 0) + -1 << 16 >> 16; 30851 STACKTOP = i5; 30852 return i4 | 0; 30853 } 30854 function _markmt(i1) { 30855 i1 = i1 | 0; 30856 var i2 = 0, i3 = 0; 30857 i2 = STACKTOP; 30858 i3 = HEAP32[i1 + 252 >> 2] | 0; 30859 if ((i3 | 0) != 0 ? !((HEAP8[i3 + 5 | 0] & 3) == 0) : 0) { 30860 _reallymarkobject(i1, i3); 30861 } 30862 i3 = HEAP32[i1 + 256 >> 2] | 0; 30863 if ((i3 | 0) != 0 ? !((HEAP8[i3 + 5 | 0] & 3) == 0) : 0) { 30864 _reallymarkobject(i1, i3); 30865 } 30866 i3 = HEAP32[i1 + 260 >> 2] | 0; 30867 if ((i3 | 0) != 0 ? !((HEAP8[i3 + 5 | 0] & 3) == 0) : 0) { 30868 _reallymarkobject(i1, i3); 30869 } 30870 i3 = HEAP32[i1 + 264 >> 2] | 0; 30871 if ((i3 | 0) != 0 ? !((HEAP8[i3 + 5 | 0] & 3) == 0) : 0) { 30872 _reallymarkobject(i1, i3); 30873 } 30874 i3 = HEAP32[i1 + 268 >> 2] | 0; 30875 if ((i3 | 0) != 0 ? !((HEAP8[i3 + 5 | 0] & 3) == 0) : 0) { 30876 _reallymarkobject(i1, i3); 30877 } 30878 i3 = HEAP32[i1 + 272 >> 2] | 0; 30879 if ((i3 | 0) != 0 ? !((HEAP8[i3 + 5 | 0] & 3) == 0) : 0) { 30880 _reallymarkobject(i1, i3); 30881 } 30882 i3 = HEAP32[i1 + 276 >> 2] | 0; 30883 if ((i3 | 0) != 0 ? !((HEAP8[i3 + 5 | 0] & 3) == 0) : 0) { 30884 _reallymarkobject(i1, i3); 30885 } 30886 i3 = HEAP32[i1 + 280 >> 2] | 0; 30887 if ((i3 | 0) != 0 ? !((HEAP8[i3 + 5 | 0] & 3) == 0) : 0) { 30888 _reallymarkobject(i1, i3); 30889 } 30890 i3 = HEAP32[i1 + 284 >> 2] | 0; 30891 if ((i3 | 0) == 0) { 30892 STACKTOP = i2; 30893 return; 30894 } 30895 if ((HEAP8[i3 + 5 | 0] & 3) == 0) { 30896 STACKTOP = i2; 30897 return; 30898 } 30899 _reallymarkobject(i1, i3); 30900 STACKTOP = i2; 30901 return; 30902 } 30903 function _findlabel(i9, i2) { 30904 i9 = i9 | 0; 30905 i2 = i2 | 0; 30906 var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0; 30907 i1 = STACKTOP; 30908 i3 = i9 + 48 | 0; 30909 i7 = HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] | 0; 30910 i10 = HEAP32[i9 + 64 >> 2] | 0; 30911 i4 = HEAP32[i10 + 12 >> 2] | 0; 30912 i6 = i7 + 4 | 0; 30913 i13 = HEAP16[i6 >> 1] | 0; 30914 i5 = i10 + 28 | 0; 30915 if ((i13 | 0) >= (HEAP32[i5 >> 2] | 0)) { 30916 i15 = 0; 30917 STACKTOP = i1; 30918 return i15 | 0; 30919 } 30920 i10 = i10 + 24 | 0; 30921 i11 = i4 + (i2 << 4) | 0; 30922 while (1) { 30923 i14 = HEAP32[i10 >> 2] | 0; 30924 i12 = i14 + (i13 << 4) | 0; 30925 i15 = i13 + 1 | 0; 30926 if ((_luaS_eqstr(HEAP32[i12 >> 2] | 0, HEAP32[i11 >> 2] | 0) | 0) != 0) { 30927 break; 30928 } 30929 if ((i15 | 0) < (HEAP32[i5 >> 2] | 0)) { 30930 i13 = i15; 30931 } else { 30932 i2 = 0; 30933 i8 = 10; 30934 break; 30935 } 30936 } 30937 if ((i8 | 0) == 10) { 30938 STACKTOP = i1; 30939 return i2 | 0; 30940 } 30941 i8 = HEAP8[i14 + (i13 << 4) + 12 | 0] | 0; 30942 do { 30943 if ((HEAPU8[i4 + (i2 << 4) + 12 | 0] | 0) > (i8 & 255)) { 30944 if ((HEAP8[i7 + 9 | 0] | 0) == 0 ? (HEAP32[i5 >> 2] | 0) <= (HEAP16[i6 >> 1] | 0) : 0) { 30945 break; 30946 } 30947 _luaK_patchclose(HEAP32[i3 >> 2] | 0, HEAP32[i4 + (i2 << 4) + 4 >> 2] | 0, i8 & 255); 30948 } 30949 } while (0); 30950 _closegoto(i9, i2, i12); 30951 i15 = 1; 30952 STACKTOP = i1; 30953 return i15 | 0; 30954 } 30955 function _lua_getmetatable(i1, i5) { 30956 i1 = i1 | 0; 30957 i5 = i5 | 0; 30958 var i2 = 0, i3 = 0, i4 = 0; 30959 i2 = STACKTOP; 30960 i4 = HEAP32[i1 + 16 >> 2] | 0; 30961 do { 30962 if ((i5 | 0) <= 0) { 30963 if (!((i5 | 0) < -1000999)) { 30964 i4 = (HEAP32[i1 + 8 >> 2] | 0) + (i5 << 4) | 0; 30965 break; 30966 } 30967 if ((i5 | 0) == -1001e3) { 30968 i4 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0; 30969 break; 30970 } 30971 i5 = -1001e3 - i5 | 0; 30972 i4 = HEAP32[i4 >> 2] | 0; 30973 if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i4 >> 2] | 0, (i5 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) { 30974 i4 = i3 + (i5 + -1 << 4) + 16 | 0; 30975 } else { 30976 i4 = 5192; 30977 } 30978 } else { 30979 i3 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0; 30980 i4 = i3 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i3 : 5192; 30981 } 30982 } while (0); 30983 i3 = HEAP32[i4 + 8 >> 2] & 15; 30984 if ((i3 | 0) == 7) { 30985 i3 = HEAP32[(HEAP32[i4 >> 2] | 0) + 8 >> 2] | 0; 30986 } else if ((i3 | 0) == 5) { 30987 i3 = HEAP32[(HEAP32[i4 >> 2] | 0) + 8 >> 2] | 0; 30988 } else { 30989 i3 = HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + (i3 << 2) + 252 >> 2] | 0; 30990 } 30991 if ((i3 | 0) == 0) { 30992 i5 = 0; 30993 STACKTOP = i2; 30994 return i5 | 0; 30995 } 30996 i5 = i1 + 8 | 0; 30997 i4 = HEAP32[i5 >> 2] | 0; 30998 HEAP32[i4 >> 2] = i3; 30999 HEAP32[i4 + 8 >> 2] = 69; 31000 HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + 16; 31001 i5 = 1; 31002 STACKTOP = i2; 31003 return i5 | 0; 31004 } 31005 function _str_byte(i2) { 31006 i2 = i2 | 0; 31007 var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0; 31008 i1 = STACKTOP; 31009 STACKTOP = STACKTOP + 16 | 0; 31010 i6 = i1; 31011 i4 = i1 + 4 | 0; 31012 i3 = _luaL_checklstring(i2, 1, i4) | 0; 31013 i5 = _luaL_optinteger(i2, 2, 1) | 0; 31014 i7 = HEAP32[i4 >> 2] | 0; 31015 if (!((i5 | 0) > -1)) { 31016 if (i7 >>> 0 < (0 - i5 | 0) >>> 0) { 31017 i5 = 0; 31018 } else { 31019 i5 = i5 + 1 + i7 | 0; 31020 } 31021 } 31022 i8 = _luaL_optinteger(i2, 3, i5) | 0; 31023 i7 = HEAP32[i4 >> 2] | 0; 31024 if (!((i8 | 0) > -1)) { 31025 if (i7 >>> 0 < (0 - i8 | 0) >>> 0) { 31026 i8 = 0; 31027 } else { 31028 i8 = i8 + 1 + i7 | 0; 31029 } 31030 } 31031 i9 = (i5 | 0) == 0 ? 1 : i5; 31032 i10 = i8 >>> 0 > i7 >>> 0 ? i7 : i8; 31033 if (i9 >>> 0 > i10 >>> 0) { 31034 i10 = 0; 31035 STACKTOP = i1; 31036 return i10 | 0; 31037 } 31038 i4 = i10 - i9 + 1 | 0; 31039 if ((i10 | 0) == -1) { 31040 i10 = _luaL_error(i2, 7944, i6) | 0; 31041 STACKTOP = i1; 31042 return i10 | 0; 31043 } 31044 _luaL_checkstack(i2, i4, 7944); 31045 if ((i4 | 0) <= 0) { 31046 i10 = i4; 31047 STACKTOP = i1; 31048 return i10 | 0; 31049 } 31050 i6 = i9 + -1 | 0; 31051 i8 = ~i8; 31052 i7 = ~i7; 31053 i5 = 0 - (i8 >>> 0 > i7 >>> 0 ? i8 : i7) - (i5 >>> 0 > 1 ? i5 : 1) | 0; 31054 i7 = 0; 31055 do { 31056 _lua_pushinteger(i2, HEAPU8[i3 + (i6 + i7) | 0] | 0); 31057 i7 = i7 + 1 | 0; 31058 } while ((i7 | 0) != (i5 | 0)); 31059 STACKTOP = i1; 31060 return i4 | 0; 31061 } 31062 function _lua_setuservalue(i1, i5) { 31063 i1 = i1 | 0; 31064 i5 = i5 | 0; 31065 var i2 = 0, i3 = 0, i4 = 0, i6 = 0; 31066 i3 = STACKTOP; 31067 i6 = HEAP32[i1 + 16 >> 2] | 0; 31068 do { 31069 if ((i5 | 0) <= 0) { 31070 if (!((i5 | 0) < -1000999)) { 31071 i5 = (HEAP32[i1 + 8 >> 2] | 0) + (i5 << 4) | 0; 31072 break; 31073 } 31074 if ((i5 | 0) == -1001e3) { 31075 i5 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0; 31076 break; 31077 } 31078 i5 = -1001e3 - i5 | 0; 31079 i6 = HEAP32[i6 >> 2] | 0; 31080 if ((HEAP32[i6 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i6 >> 2] | 0, (i5 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) { 31081 i5 = i4 + (i5 + -1 << 4) + 16 | 0; 31082 } else { 31083 i5 = 5192; 31084 } 31085 } else { 31086 i4 = (HEAP32[i6 >> 2] | 0) + (i5 << 4) | 0; 31087 i5 = i4 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i4 : 5192; 31088 } 31089 } while (0); 31090 i4 = i1 + 8 | 0; 31091 i6 = HEAP32[i4 >> 2] | 0; 31092 if ((HEAP32[i6 + -8 >> 2] | 0) != 0) { 31093 HEAP32[(HEAP32[i5 >> 2] | 0) + 12 >> 2] = HEAP32[i6 + -16 >> 2]; 31094 i6 = HEAP32[(HEAP32[i4 >> 2] | 0) + -16 >> 2] | 0; 31095 if (!((HEAP8[i6 + 5 | 0] & 3) == 0) ? (i2 = HEAP32[i5 >> 2] | 0, !((HEAP8[i2 + 5 | 0] & 4) == 0)) : 0) { 31096 _luaC_barrier_(i1, i2, i6); 31097 } 31098 } else { 31099 HEAP32[(HEAP32[i5 >> 2] | 0) + 12 >> 2] = 0; 31100 } 31101 HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + -16; 31102 STACKTOP = i3; 31103 return; 31104 } 31105 function _f_luaopen(i1, i2) { 31106 i1 = i1 | 0; 31107 i2 = i2 | 0; 31108 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0; 31109 i6 = STACKTOP; 31110 STACKTOP = STACKTOP + 16 | 0; 31111 i5 = i6; 31112 i4 = HEAP32[i1 + 12 >> 2] | 0; 31113 i2 = _luaM_realloc_(i1, 0, 0, 640) | 0; 31114 HEAP32[i1 + 28 >> 2] = i2; 31115 i3 = i1 + 32 | 0; 31116 HEAP32[i3 >> 2] = 40; 31117 i7 = 0; 31118 do { 31119 HEAP32[i2 + (i7 << 4) + 8 >> 2] = 0; 31120 i7 = i7 + 1 | 0; 31121 } while ((i7 | 0) != 40); 31122 HEAP32[i1 + 24 >> 2] = i2 + ((HEAP32[i3 >> 2] | 0) + -5 << 4); 31123 i7 = i1 + 72 | 0; 31124 HEAP32[i1 + 80 >> 2] = 0; 31125 HEAP32[i1 + 84 >> 2] = 0; 31126 HEAP8[i1 + 90 | 0] = 0; 31127 HEAP32[i7 >> 2] = i2; 31128 HEAP32[i1 + 8 >> 2] = i2 + 16; 31129 HEAP32[i2 + 8 >> 2] = 0; 31130 HEAP32[i1 + 76 >> 2] = i2 + 336; 31131 HEAP32[i1 + 16 >> 2] = i7; 31132 i7 = _luaH_new(i1) | 0; 31133 HEAP32[i4 + 40 >> 2] = i7; 31134 HEAP32[i4 + 48 >> 2] = 69; 31135 _luaH_resize(i1, i7, 2, 0); 31136 HEAP32[i5 >> 2] = i1; 31137 i3 = i5 + 8 | 0; 31138 HEAP32[i3 >> 2] = 72; 31139 _luaH_setint(i1, i7, 1, i5); 31140 HEAP32[i5 >> 2] = _luaH_new(i1) | 0; 31141 HEAP32[i3 >> 2] = 69; 31142 _luaH_setint(i1, i7, 2, i5); 31143 _luaS_resize(i1, 32); 31144 _luaT_init(i1); 31145 _luaX_init(i1); 31146 i7 = _luaS_newlstr(i1, 6896, 17) | 0; 31147 HEAP32[i4 + 180 >> 2] = i7; 31148 i7 = i7 + 5 | 0; 31149 HEAP8[i7] = HEAPU8[i7] | 0 | 32; 31150 HEAP8[i4 + 63 | 0] = 1; 31151 STACKTOP = i6; 31152 return; 31153 } 31154 function _lua_tointegerx(i6, i7, i1) { 31155 i6 = i6 | 0; 31156 i7 = i7 | 0; 31157 i1 = i1 | 0; 31158 var i2 = 0, i3 = 0, i4 = 0, i5 = 0; 31159 i2 = STACKTOP; 31160 STACKTOP = STACKTOP + 16 | 0; 31161 i3 = i2; 31162 i5 = HEAP32[i6 + 16 >> 2] | 0; 31163 do { 31164 if ((i7 | 0) <= 0) { 31165 if (!((i7 | 0) < -1000999)) { 31166 i4 = (HEAP32[i6 + 8 >> 2] | 0) + (i7 << 4) | 0; 31167 break; 31168 } 31169 if ((i7 | 0) == -1001e3) { 31170 i4 = (HEAP32[i6 + 12 >> 2] | 0) + 40 | 0; 31171 break; 31172 } 31173 i6 = -1001e3 - i7 | 0; 31174 i5 = HEAP32[i5 >> 2] | 0; 31175 if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i5 >> 2] | 0, (i6 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) { 31176 i4 = i4 + (i6 + -1 << 4) + 16 | 0; 31177 } else { 31178 i4 = 5192; 31179 } 31180 } else { 31181 i4 = (HEAP32[i5 >> 2] | 0) + (i7 << 4) | 0; 31182 i4 = i4 >>> 0 < (HEAP32[i6 + 8 >> 2] | 0) >>> 0 ? i4 : 5192; 31183 } 31184 } while (0); 31185 if ((HEAP32[i4 + 8 >> 2] | 0) != 3) { 31186 i4 = _luaV_tonumber(i4, i3) | 0; 31187 if ((i4 | 0) == 0) { 31188 if ((i1 | 0) == 0) { 31189 i7 = 0; 31190 STACKTOP = i2; 31191 return i7 | 0; 31192 } 31193 HEAP32[i1 >> 2] = 0; 31194 i7 = 0; 31195 STACKTOP = i2; 31196 return i7 | 0; 31197 } 31198 } 31199 i3 = ~~+HEAPF64[i4 >> 3]; 31200 if ((i1 | 0) == 0) { 31201 i7 = i3; 31202 STACKTOP = i2; 31203 return i7 | 0; 31204 } 31205 HEAP32[i1 >> 2] = 1; 31206 i7 = i3; 31207 STACKTOP = i2; 31208 return i7 | 0; 31209 } 31210 function _close_state(i1) { 31211 i1 = i1 | 0; 31212 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0; 31213 i2 = STACKTOP; 31214 i6 = i1 + 12 | 0; 31215 i3 = HEAP32[i6 >> 2] | 0; 31216 i4 = i1 + 28 | 0; 31217 _luaF_close(i1, HEAP32[i4 >> 2] | 0); 31218 _luaC_freeallobjects(i1); 31219 i6 = HEAP32[i6 >> 2] | 0; 31220 _luaM_realloc_(i1, HEAP32[i6 + 24 >> 2] | 0, HEAP32[i6 + 32 >> 2] << 2, 0) | 0; 31221 i6 = i3 + 144 | 0; 31222 i5 = i3 + 152 | 0; 31223 HEAP32[i6 >> 2] = _luaM_realloc_(i1, HEAP32[i6 >> 2] | 0, HEAP32[i5 >> 2] | 0, 0) | 0; 31224 HEAP32[i5 >> 2] = 0; 31225 i5 = HEAP32[i4 >> 2] | 0; 31226 if ((i5 | 0) == 0) { 31227 i5 = HEAP32[i3 >> 2] | 0; 31228 i6 = i3 + 4 | 0; 31229 i6 = HEAP32[i6 >> 2] | 0; 31230 FUNCTION_TABLE_iiiii[i5 & 3](i6, i1, 400, 0) | 0; 31231 STACKTOP = i2; 31232 return; 31233 } 31234 HEAP32[i1 + 16 >> 2] = i1 + 72; 31235 i7 = i1 + 84 | 0; 31236 i6 = HEAP32[i7 >> 2] | 0; 31237 HEAP32[i7 >> 2] = 0; 31238 if ((i6 | 0) != 0) { 31239 while (1) { 31240 i5 = HEAP32[i6 + 12 >> 2] | 0; 31241 _luaM_realloc_(i1, i6, 40, 0) | 0; 31242 if ((i5 | 0) == 0) { 31243 break; 31244 } else { 31245 i6 = i5; 31246 } 31247 } 31248 i5 = HEAP32[i4 >> 2] | 0; 31249 } 31250 _luaM_realloc_(i1, i5, HEAP32[i1 + 32 >> 2] << 4, 0) | 0; 31251 i6 = HEAP32[i3 >> 2] | 0; 31252 i7 = i3 + 4 | 0; 31253 i7 = HEAP32[i7 >> 2] | 0; 31254 FUNCTION_TABLE_iiiii[i6 & 3](i7, i1, 400, 0) | 0; 31255 STACKTOP = i2; 31256 return; 31257 } 31258 function _ll_module(i1) { 31259 i1 = i1 | 0; 31260 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0; 31261 i2 = STACKTOP; 31262 STACKTOP = STACKTOP + 112 | 0; 31263 i4 = i2; 31264 i5 = i2 + 4 | 0; 31265 i6 = _luaL_checklstring(i1, 1, 0) | 0; 31266 i3 = _lua_gettop(i1) | 0; 31267 _luaL_pushmodule(i1, i6, 1); 31268 _lua_getfield(i1, -1, 4728); 31269 i7 = (_lua_type(i1, -1) | 0) == 0; 31270 _lua_settop(i1, -2); 31271 if (i7) { 31272 _lua_pushvalue(i1, -1); 31273 _lua_setfield(i1, -2, 4784); 31274 _lua_pushstring(i1, i6) | 0; 31275 _lua_setfield(i1, -2, 4728); 31276 i7 = _strrchr(i6, 46) | 0; 31277 _lua_pushlstring(i1, i6, ((i7 | 0) == 0 ? i6 : i7 + 1 | 0) - i6 | 0) | 0; 31278 _lua_setfield(i1, -2, 4792); 31279 } 31280 _lua_pushvalue(i1, -1); 31281 if (!(((_lua_getstack(i1, 1, i5) | 0) != 0 ? (_lua_getinfo(i1, 4736, i5) | 0) != 0 : 0) ? (_lua_iscfunction(i1, -1) | 0) == 0 : 0)) { 31282 _luaL_error(i1, 4744, i4) | 0; 31283 } 31284 _lua_pushvalue(i1, -2); 31285 _lua_setupvalue(i1, -2, 1) | 0; 31286 _lua_settop(i1, -2); 31287 if ((i3 | 0) < 2) { 31288 STACKTOP = i2; 31289 return 1; 31290 } else { 31291 i4 = 2; 31292 } 31293 while (1) { 31294 if ((_lua_type(i1, i4) | 0) == 6) { 31295 _lua_pushvalue(i1, i4); 31296 _lua_pushvalue(i1, -2); 31297 _lua_callk(i1, 1, 0, 0, 0); 31298 } 31299 if ((i4 | 0) == (i3 | 0)) { 31300 break; 31301 } else { 31302 i4 = i4 + 1 | 0; 31303 } 31304 } 31305 STACKTOP = i2; 31306 return 1; 31307 } 31308 function _strcspn(i2, i5) { 31309 i2 = i2 | 0; 31310 i5 = i5 | 0; 31311 var i1 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0; 31312 i1 = STACKTOP; 31313 STACKTOP = STACKTOP + 32 | 0; 31314 i3 = i1; 31315 i4 = HEAP8[i5] | 0; 31316 if (!(i4 << 24 >> 24 == 0) ? (HEAP8[i5 + 1 | 0] | 0) != 0 : 0) { 31317 HEAP32[i3 + 0 >> 2] = 0; 31318 HEAP32[i3 + 4 >> 2] = 0; 31319 HEAP32[i3 + 8 >> 2] = 0; 31320 HEAP32[i3 + 12 >> 2] = 0; 31321 HEAP32[i3 + 16 >> 2] = 0; 31322 HEAP32[i3 + 20 >> 2] = 0; 31323 HEAP32[i3 + 24 >> 2] = 0; 31324 HEAP32[i3 + 28 >> 2] = 0; 31325 do { 31326 i7 = i4 & 255; 31327 i6 = i3 + (i7 >>> 5 << 2) | 0; 31328 HEAP32[i6 >> 2] = HEAP32[i6 >> 2] | 1 << (i7 & 31); 31329 i5 = i5 + 1 | 0; 31330 i4 = HEAP8[i5] | 0; 31331 } while (!(i4 << 24 >> 24 == 0)); 31332 i5 = HEAP8[i2] | 0; 31333 L7 : do { 31334 if (i5 << 24 >> 24 == 0) { 31335 i4 = i2; 31336 } else { 31337 i4 = i2; 31338 while (1) { 31339 i7 = i5 & 255; 31340 i6 = i4 + 1 | 0; 31341 if ((HEAP32[i3 + (i7 >>> 5 << 2) >> 2] & 1 << (i7 & 31) | 0) != 0) { 31342 break L7; 31343 } 31344 i5 = HEAP8[i6] | 0; 31345 if (i5 << 24 >> 24 == 0) { 31346 i4 = i6; 31347 break; 31348 } else { 31349 i4 = i6; 31350 } 31351 } 31352 } 31353 } while (0); 31354 i7 = i4 - i2 | 0; 31355 STACKTOP = i1; 31356 return i7 | 0; 31357 } 31358 i7 = (___strchrnul(i2, i4 << 24 >> 24) | 0) - i2 | 0; 31359 STACKTOP = i1; 31360 return i7 | 0; 31361 } 31362 function _main(i4, i5) { 31363 i4 = i4 | 0; 31364 i5 = i5 | 0; 31365 var i1 = 0, i2 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0; 31366 i1 = STACKTOP; 31367 STACKTOP = STACKTOP + 16 | 0; 31368 i2 = i1; 31369 i3 = _luaL_newstate() | 0; 31370 if ((i3 | 0) == 0) { 31371 i4 = HEAP32[i5 >> 2] | 0; 31372 i3 = HEAP32[_stderr >> 2] | 0; 31373 if ((i4 | 0) != 0) { 31374 HEAP32[i2 >> 2] = i4; 31375 _fprintf(i3 | 0, 496, i2 | 0) | 0; 31376 _fflush(i3 | 0) | 0; 31377 } 31378 HEAP32[i2 >> 2] = 8; 31379 _fprintf(i3 | 0, 912, i2 | 0) | 0; 31380 _fflush(i3 | 0) | 0; 31381 i8 = 1; 31382 STACKTOP = i1; 31383 return i8 | 0; 31384 } 31385 _lua_pushcclosure(i3, 141, 0); 31386 _lua_pushinteger(i3, i4); 31387 _lua_pushlightuserdata(i3, i5); 31388 i6 = _lua_pcallk(i3, 2, 1, 0, 0, 0) | 0; 31389 i7 = _lua_toboolean(i3, -1) | 0; 31390 i6 = (i6 | 0) == 0; 31391 if (!i6) { 31392 if ((_lua_type(i3, -1) | 0) == 4) { 31393 i8 = _lua_tolstring(i3, -1, 0) | 0; 31394 } else { 31395 i8 = 0; 31396 } 31397 i4 = HEAP32[20] | 0; 31398 i5 = HEAP32[_stderr >> 2] | 0; 31399 if ((i4 | 0) != 0) { 31400 HEAP32[i2 >> 2] = i4; 31401 _fprintf(i5 | 0, 496, i2 | 0) | 0; 31402 _fflush(i5 | 0) | 0; 31403 } 31404 HEAP32[i2 >> 2] = (i8 | 0) == 0 ? 48 : i8; 31405 _fprintf(i5 | 0, 912, i2 | 0) | 0; 31406 _fflush(i5 | 0) | 0; 31407 _lua_settop(i3, -2); 31408 } 31409 _lua_close(i3); 31410 i8 = i6 & (i7 | 0) != 0 & 1 ^ 1; 31411 STACKTOP = i1; 31412 return i8 | 0; 31413 } 31414 function _db_sethook(i1) { 31415 i1 = i1 | 0; 31416 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0; 31417 i4 = STACKTOP; 31418 if ((_lua_type(i1, 1) | 0) == 8) { 31419 i2 = _lua_tothread(i1, 1) | 0; 31420 i5 = 1; 31421 } else { 31422 i2 = i1; 31423 i5 = 0; 31424 } 31425 i3 = i5 + 1 | 0; 31426 if ((_lua_type(i1, i3) | 0) < 1) { 31427 _lua_settop(i1, i3); 31428 i6 = 0; 31429 i7 = 0; 31430 i5 = 0; 31431 } else { 31432 i6 = _luaL_checklstring(i1, i5 | 2, 0) | 0; 31433 _luaL_checktype(i1, i3, 6); 31434 i5 = _luaL_optinteger(i1, i5 + 3 | 0, 0) | 0; 31435 i7 = (_strchr(i6, 99) | 0) != 0 | 0; 31436 i8 = (_strchr(i6, 114) | 0) == 0; 31437 i7 = i8 ? i7 : i7 | 2; 31438 i8 = (_strchr(i6, 108) | 0) == 0; 31439 i8 = i8 ? i7 : i7 | 4; 31440 i6 = i5; 31441 i7 = 9; 31442 i5 = (i5 | 0) > 0 ? i8 | 8 : i8; 31443 } 31444 if ((_luaL_getsubtable(i1, -1001e3, 11584) | 0) != 0) { 31445 _lua_pushthread(i2) | 0; 31446 _lua_xmove(i2, i1, 1); 31447 _lua_pushvalue(i1, i3); 31448 _lua_rawset(i1, -3); 31449 _lua_sethook(i2, i7, i5, i6) | 0; 31450 STACKTOP = i4; 31451 return 0; 31452 } 31453 _lua_pushstring(i1, 11592) | 0; 31454 _lua_setfield(i1, -2, 11600); 31455 _lua_pushvalue(i1, -1); 31456 _lua_setmetatable(i1, -2) | 0; 31457 _lua_pushthread(i2) | 0; 31458 _lua_xmove(i2, i1, 1); 31459 _lua_pushvalue(i1, i3); 31460 _lua_rawset(i1, -3); 31461 _lua_sethook(i2, i7, i5, i6) | 0; 31462 STACKTOP = i4; 31463 return 0; 31464 } 31465 function _tconcat(i1) { 31466 i1 = i1 | 0; 31467 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0; 31468 i3 = STACKTOP; 31469 STACKTOP = STACKTOP + 1056 | 0; 31470 i6 = i3; 31471 i2 = i3 + 16 | 0; 31472 i5 = i3 + 8 | 0; 31473 i4 = _luaL_optlstring(i1, 2, 8208, i5) | 0; 31474 _luaL_checktype(i1, 1, 5); 31475 i8 = _luaL_optinteger(i1, 3, 1) | 0; 31476 if ((_lua_type(i1, 4) | 0) < 1) { 31477 i7 = _luaL_len(i1, 1) | 0; 31478 } else { 31479 i7 = _luaL_checkinteger(i1, 4) | 0; 31480 } 31481 _luaL_buffinit(i1, i2); 31482 if ((i8 | 0) >= (i7 | 0)) { 31483 if ((i8 | 0) != (i7 | 0)) { 31484 _luaL_pushresult(i2); 31485 STACKTOP = i3; 31486 return 1; 31487 } 31488 } else { 31489 do { 31490 _lua_rawgeti(i1, 1, i8); 31491 if ((_lua_isstring(i1, -1) | 0) == 0) { 31492 HEAP32[i6 >> 2] = _lua_typename(i1, _lua_type(i1, -1) | 0) | 0; 31493 HEAP32[i6 + 4 >> 2] = i8; 31494 _luaL_error(i1, 8360, i6) | 0; 31495 } 31496 _luaL_addvalue(i2); 31497 _luaL_addlstring(i2, i4, HEAP32[i5 >> 2] | 0); 31498 i8 = i8 + 1 | 0; 31499 } while ((i8 | 0) != (i7 | 0)); 31500 } 31501 _lua_rawgeti(i1, 1, i7); 31502 if ((_lua_isstring(i1, -1) | 0) == 0) { 31503 HEAP32[i6 >> 2] = _lua_typename(i1, _lua_type(i1, -1) | 0) | 0; 31504 HEAP32[i6 + 4 >> 2] = i7; 31505 _luaL_error(i1, 8360, i6) | 0; 31506 } 31507 _luaL_addvalue(i2); 31508 _luaL_pushresult(i2); 31509 STACKTOP = i3; 31510 return 1; 31511 } 31512 function _searcher_Croot(i1) { 31513 i1 = i1 | 0; 31514 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0; 31515 i2 = STACKTOP; 31516 STACKTOP = STACKTOP + 16 | 0; 31517 i3 = i2; 31518 i4 = _luaL_checklstring(i1, 1, 0) | 0; 31519 i5 = _strchr(i4, 46) | 0; 31520 if ((i5 | 0) == 0) { 31521 i6 = 0; 31522 STACKTOP = i2; 31523 return i6 | 0; 31524 } 31525 _lua_pushlstring(i1, i4, i5 - i4 | 0) | 0; 31526 i5 = _lua_tolstring(i1, -1, 0) | 0; 31527 _lua_getfield(i1, -1001001, 4440); 31528 i6 = _lua_tolstring(i1, -1, 0) | 0; 31529 if ((i6 | 0) == 0) { 31530 HEAP32[i3 >> 2] = 4440; 31531 _luaL_error(i1, 5032, i3) | 0; 31532 } 31533 i5 = _searchpath(i1, i5, i6, 4936, 4848) | 0; 31534 if ((i5 | 0) == 0) { 31535 i6 = 1; 31536 STACKTOP = i2; 31537 return i6 | 0; 31538 } 31539 i6 = _loadfunc(i1, i5, i4) | 0; 31540 if ((i6 | 0) == 2) { 31541 HEAP32[i3 >> 2] = i4; 31542 HEAP32[i3 + 4 >> 2] = i5; 31543 _lua_pushfstring(i1, 4856, i3) | 0; 31544 i6 = 1; 31545 STACKTOP = i2; 31546 return i6 | 0; 31547 } else if ((i6 | 0) == 0) { 31548 _lua_pushstring(i1, i5) | 0; 31549 i6 = 2; 31550 STACKTOP = i2; 31551 return i6 | 0; 31552 } else { 31553 i4 = _lua_tolstring(i1, 1, 0) | 0; 31554 i6 = _lua_tolstring(i1, -1, 0) | 0; 31555 HEAP32[i3 >> 2] = i4; 31556 HEAP32[i3 + 4 >> 2] = i5; 31557 HEAP32[i3 + 8 >> 2] = i6; 31558 i6 = _luaL_error(i1, 4888, i3) | 0; 31559 STACKTOP = i2; 31560 return i6 | 0; 31561 } 31562 return 0; 31563 } 31564 function _lua_tonumberx(i5, i7, i1) { 31565 i5 = i5 | 0; 31566 i7 = i7 | 0; 31567 i1 = i1 | 0; 31568 var i2 = 0, i3 = 0, i4 = 0, i6 = 0, d8 = 0.0; 31569 i2 = STACKTOP; 31570 STACKTOP = STACKTOP + 16 | 0; 31571 i3 = i2; 31572 i6 = HEAP32[i5 + 16 >> 2] | 0; 31573 do { 31574 if ((i7 | 0) <= 0) { 31575 if (!((i7 | 0) < -1000999)) { 31576 i4 = (HEAP32[i5 + 8 >> 2] | 0) + (i7 << 4) | 0; 31577 break; 31578 } 31579 if ((i7 | 0) == -1001e3) { 31580 i4 = (HEAP32[i5 + 12 >> 2] | 0) + 40 | 0; 31581 break; 31582 } 31583 i5 = -1001e3 - i7 | 0; 31584 i6 = HEAP32[i6 >> 2] | 0; 31585 if ((HEAP32[i6 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i6 >> 2] | 0, (i5 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) { 31586 i4 = i4 + (i5 + -1 << 4) + 16 | 0; 31587 } else { 31588 i4 = 5192; 31589 } 31590 } else { 31591 i4 = (HEAP32[i6 >> 2] | 0) + (i7 << 4) | 0; 31592 i4 = i4 >>> 0 < (HEAP32[i5 + 8 >> 2] | 0) >>> 0 ? i4 : 5192; 31593 } 31594 } while (0); 31595 if ((HEAP32[i4 + 8 >> 2] | 0) != 3) { 31596 i4 = _luaV_tonumber(i4, i3) | 0; 31597 if ((i4 | 0) == 0) { 31598 if ((i1 | 0) == 0) { 31599 d8 = 0.0; 31600 STACKTOP = i2; 31601 return +d8; 31602 } 31603 HEAP32[i1 >> 2] = 0; 31604 d8 = 0.0; 31605 STACKTOP = i2; 31606 return +d8; 31607 } 31608 } 31609 if ((i1 | 0) != 0) { 31610 HEAP32[i1 >> 2] = 1; 31611 } 31612 d8 = +HEAPF64[i4 >> 3]; 31613 STACKTOP = i2; 31614 return +d8; 31615 } 31616 function _luaopen_package(i1) { 31617 i1 = i1 | 0; 31618 var i2 = 0; 31619 i2 = STACKTOP; 31620 _luaL_getsubtable(i1, -1001e3, 4184) | 0; 31621 _lua_createtable(i1, 0, 1); 31622 _lua_pushcclosure(i1, 158, 0); 31623 _lua_setfield(i1, -2, 4192); 31624 _lua_setmetatable(i1, -2) | 0; 31625 _lua_createtable(i1, 0, 3); 31626 _luaL_setfuncs(i1, 4200, 0); 31627 _lua_createtable(i1, 4, 0); 31628 _lua_pushvalue(i1, -2); 31629 _lua_pushcclosure(i1, 159, 1); 31630 _lua_rawseti(i1, -2, 1); 31631 _lua_pushvalue(i1, -2); 31632 _lua_pushcclosure(i1, 160, 1); 31633 _lua_rawseti(i1, -2, 2); 31634 _lua_pushvalue(i1, -2); 31635 _lua_pushcclosure(i1, 161, 1); 31636 _lua_rawseti(i1, -2, 3); 31637 _lua_pushvalue(i1, -2); 31638 _lua_pushcclosure(i1, 162, 1); 31639 _lua_rawseti(i1, -2, 4); 31640 _lua_pushvalue(i1, -1); 31641 _lua_setfield(i1, -3, 4232); 31642 _lua_setfield(i1, -2, 4240); 31643 _setpath(i1, 4256, 4264, 4280, 4296); 31644 _setpath(i1, 4440, 4448, 4464, 4480); 31645 _lua_pushlstring(i1, 4552, 10) | 0; 31646 _lua_setfield(i1, -2, 4568); 31647 _luaL_getsubtable(i1, -1001e3, 4576) | 0; 31648 _lua_setfield(i1, -2, 4584); 31649 _luaL_getsubtable(i1, -1001e3, 4592) | 0; 31650 _lua_setfield(i1, -2, 4608); 31651 _lua_rawgeti(i1, -1001e3, 2); 31652 _lua_pushvalue(i1, -2); 31653 _luaL_setfuncs(i1, 4616, 1); 31654 _lua_settop(i1, -2); 31655 STACKTOP = i2; 31656 return 1; 31657 } 31658 function _lua_rawlen(i3, i5) { 31659 i3 = i3 | 0; 31660 i5 = i5 | 0; 31661 var i1 = 0, i2 = 0, i4 = 0; 31662 i1 = STACKTOP; 31663 i4 = HEAP32[i3 + 16 >> 2] | 0; 31664 do { 31665 if ((i5 | 0) <= 0) { 31666 if (!((i5 | 0) < -1000999)) { 31667 i2 = (HEAP32[i3 + 8 >> 2] | 0) + (i5 << 4) | 0; 31668 break; 31669 } 31670 if ((i5 | 0) == -1001e3) { 31671 i2 = (HEAP32[i3 + 12 >> 2] | 0) + 40 | 0; 31672 break; 31673 } 31674 i3 = -1001e3 - i5 | 0; 31675 i4 = HEAP32[i4 >> 2] | 0; 31676 if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i2 = HEAP32[i4 >> 2] | 0, (i3 | 0) <= (HEAPU8[i2 + 6 | 0] | 0 | 0)) : 0) { 31677 i2 = i2 + (i3 + -1 << 4) + 16 | 0; 31678 } else { 31679 i2 = 5192; 31680 } 31681 } else { 31682 i2 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0; 31683 i2 = i2 >>> 0 < (HEAP32[i3 + 8 >> 2] | 0) >>> 0 ? i2 : 5192; 31684 } 31685 } while (0); 31686 i3 = HEAP32[i2 + 8 >> 2] & 15; 31687 if ((i3 | 0) == 5) { 31688 i5 = _luaH_getn(HEAP32[i2 >> 2] | 0) | 0; 31689 STACKTOP = i1; 31690 return i5 | 0; 31691 } else if ((i3 | 0) == 4) { 31692 i5 = HEAP32[(HEAP32[i2 >> 2] | 0) + 12 >> 2] | 0; 31693 STACKTOP = i1; 31694 return i5 | 0; 31695 } else if ((i3 | 0) == 7) { 31696 i5 = HEAP32[(HEAP32[i2 >> 2] | 0) + 16 >> 2] | 0; 31697 STACKTOP = i1; 31698 return i5 | 0; 31699 } else { 31700 i5 = 0; 31701 STACKTOP = i1; 31702 return i5 | 0; 31703 } 31704 return 0; 31705 } 31706 function _searchpath(i3, i5, i6, i7, i8) { 31707 i3 = i3 | 0; 31708 i5 = i5 | 0; 31709 i6 = i6 | 0; 31710 i7 = i7 | 0; 31711 i8 = i8 | 0; 31712 var i1 = 0, i2 = 0, i4 = 0; 31713 i2 = STACKTOP; 31714 STACKTOP = STACKTOP + 1056 | 0; 31715 i4 = i2; 31716 i1 = i2 + 8 | 0; 31717 _luaL_buffinit(i3, i1); 31718 if ((HEAP8[i7] | 0) != 0) { 31719 i5 = _luaL_gsub(i3, i5, i7, i8) | 0; 31720 } 31721 while (1) { 31722 i7 = HEAP8[i6] | 0; 31723 if (i7 << 24 >> 24 == 59) { 31724 i6 = i6 + 1 | 0; 31725 continue; 31726 } else if (i7 << 24 >> 24 == 0) { 31727 i3 = 12; 31728 break; 31729 } 31730 i8 = _strchr(i6, 59) | 0; 31731 if ((i8 | 0) == 0) { 31732 i8 = i6 + (_strlen(i6 | 0) | 0) | 0; 31733 } 31734 _lua_pushlstring(i3, i6, i8 - i6 | 0) | 0; 31735 if ((i8 | 0) == 0) { 31736 i3 = 12; 31737 break; 31738 } 31739 i6 = _luaL_gsub(i3, _lua_tolstring(i3, -1, 0) | 0, 5064, i5) | 0; 31740 _lua_remove(i3, -2); 31741 i7 = _fopen(i6 | 0, 5088) | 0; 31742 if ((i7 | 0) != 0) { 31743 i3 = 10; 31744 break; 31745 } 31746 HEAP32[i4 >> 2] = i6; 31747 _lua_pushfstring(i3, 5072, i4) | 0; 31748 _lua_remove(i3, -2); 31749 _luaL_addvalue(i1); 31750 i6 = i8; 31751 } 31752 if ((i3 | 0) == 10) { 31753 _fclose(i7 | 0) | 0; 31754 i8 = i6; 31755 STACKTOP = i2; 31756 return i8 | 0; 31757 } else if ((i3 | 0) == 12) { 31758 _luaL_pushresult(i1); 31759 i8 = 0; 31760 STACKTOP = i2; 31761 return i8 | 0; 31762 } 31763 return 0; 31764 } 31765 function _io_readline(i1) { 31766 i1 = i1 | 0; 31767 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0; 31768 i2 = STACKTOP; 31769 STACKTOP = STACKTOP + 16 | 0; 31770 i3 = i2; 31771 i4 = _lua_touserdata(i1, -1001001) | 0; 31772 i5 = _lua_tointegerx(i1, -1001002, 0) | 0; 31773 if ((HEAP32[i4 + 4 >> 2] | 0) == 0) { 31774 i6 = _luaL_error(i1, 3344, i3) | 0; 31775 STACKTOP = i2; 31776 return i6 | 0; 31777 } 31778 _lua_settop(i1, 1); 31779 if ((i5 | 0) >= 1) { 31780 i6 = 1; 31781 while (1) { 31782 _lua_pushvalue(i1, -1001003 - i6 | 0); 31783 if ((i6 | 0) == (i5 | 0)) { 31784 break; 31785 } else { 31786 i6 = i6 + 1 | 0; 31787 } 31788 } 31789 } 31790 i4 = _g_read(i1, HEAP32[i4 >> 2] | 0, 2) | 0; 31791 if ((_lua_type(i1, 0 - i4 | 0) | 0) != 0) { 31792 i6 = i4; 31793 STACKTOP = i2; 31794 return i6 | 0; 31795 } 31796 if ((i4 | 0) > 1) { 31797 HEAP32[i3 >> 2] = _lua_tolstring(i1, 1 - i4 | 0, 0) | 0; 31798 i6 = _luaL_error(i1, 3368, i3) | 0; 31799 STACKTOP = i2; 31800 return i6 | 0; 31801 } 31802 if ((_lua_toboolean(i1, -1001003) | 0) == 0) { 31803 i6 = 0; 31804 STACKTOP = i2; 31805 return i6 | 0; 31806 } 31807 _lua_settop(i1, 0); 31808 _lua_pushvalue(i1, -1001001); 31809 i5 = (_luaL_checkudata(i1, 1, 2832) | 0) + 4 | 0; 31810 i6 = HEAP32[i5 >> 2] | 0; 31811 HEAP32[i5 >> 2] = 0; 31812 FUNCTION_TABLE_ii[i6 & 255](i1) | 0; 31813 i6 = 0; 31814 STACKTOP = i2; 31815 return i6 | 0; 31816 } 31817 function _luaK_setreturns(i3, i5, i6) { 31818 i3 = i3 | 0; 31819 i5 = i5 | 0; 31820 i6 = i6 | 0; 31821 var i1 = 0, i2 = 0, i4 = 0, i7 = 0, i8 = 0; 31822 i2 = STACKTOP; 31823 i4 = HEAP32[i5 >> 2] | 0; 31824 if ((i4 | 0) == 13) { 31825 i7 = i5 + 8 | 0; 31826 i8 = HEAP32[i3 >> 2] | 0; 31827 i4 = HEAP32[i8 + 12 >> 2] | 0; 31828 i5 = i4 + (HEAP32[i7 >> 2] << 2) | 0; 31829 HEAP32[i5 >> 2] = HEAP32[i5 >> 2] & 8388607 | (i6 << 23) + 8388608; 31830 i7 = i4 + (HEAP32[i7 >> 2] << 2) | 0; 31831 i4 = i3 + 48 | 0; 31832 HEAP32[i7 >> 2] = (HEAPU8[i4] | 0) << 6 | HEAP32[i7 >> 2] & -16321; 31833 i7 = HEAP8[i4] | 0; 31834 i5 = (i7 & 255) + 1 | 0; 31835 i6 = i8 + 78 | 0; 31836 do { 31837 if (i5 >>> 0 > (HEAPU8[i6] | 0) >>> 0) { 31838 if (i5 >>> 0 > 249) { 31839 _luaX_syntaxerror(HEAP32[i3 + 12 >> 2] | 0, 10536); 31840 } else { 31841 HEAP8[i6] = i5; 31842 i1 = HEAP8[i4] | 0; 31843 break; 31844 } 31845 } else { 31846 i1 = i7; 31847 } 31848 } while (0); 31849 HEAP8[i4] = (i1 & 255) + 1; 31850 STACKTOP = i2; 31851 return; 31852 } else if ((i4 | 0) == 12) { 31853 i8 = (HEAP32[(HEAP32[i3 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i5 + 8 >> 2] << 2) | 0; 31854 HEAP32[i8 >> 2] = HEAP32[i8 >> 2] & -8372225 | (i6 << 14) + 16384 & 8372224; 31855 STACKTOP = i2; 31856 return; 31857 } else { 31858 STACKTOP = i2; 31859 return; 31860 } 31861 } 31862 function _luaZ_read(i2, i9, i8) { 31863 i2 = i2 | 0; 31864 i9 = i9 | 0; 31865 i8 = i8 | 0; 31866 var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i10 = 0, i11 = 0; 31867 i1 = STACKTOP; 31868 STACKTOP = STACKTOP + 16 | 0; 31869 i3 = i1; 31870 if ((i8 | 0) == 0) { 31871 i11 = 0; 31872 STACKTOP = i1; 31873 return i11 | 0; 31874 } 31875 i7 = i2 + 16 | 0; 31876 i6 = i2 + 8 | 0; 31877 i4 = i2 + 12 | 0; 31878 i5 = i2 + 4 | 0; 31879 i11 = HEAP32[i2 >> 2] | 0; 31880 while (1) { 31881 if ((i11 | 0) == 0) { 31882 i10 = FUNCTION_TABLE_iiii[HEAP32[i6 >> 2] & 3](HEAP32[i7 >> 2] | 0, HEAP32[i4 >> 2] | 0, i3) | 0; 31883 if ((i10 | 0) == 0) { 31884 i2 = 9; 31885 break; 31886 } 31887 i11 = HEAP32[i3 >> 2] | 0; 31888 if ((i11 | 0) == 0) { 31889 i2 = 9; 31890 break; 31891 } 31892 HEAP32[i2 >> 2] = i11; 31893 HEAP32[i5 >> 2] = i10; 31894 } else { 31895 i10 = HEAP32[i5 >> 2] | 0; 31896 } 31897 i11 = i8 >>> 0 > i11 >>> 0 ? i11 : i8; 31898 _memcpy(i9 | 0, i10 | 0, i11 | 0) | 0; 31899 i10 = (HEAP32[i2 >> 2] | 0) - i11 | 0; 31900 HEAP32[i2 >> 2] = i10; 31901 HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + i11; 31902 if ((i8 | 0) == (i11 | 0)) { 31903 i8 = 0; 31904 i2 = 9; 31905 break; 31906 } else { 31907 i8 = i8 - i11 | 0; 31908 i9 = i9 + i11 | 0; 31909 i11 = i10; 31910 } 31911 } 31912 if ((i2 | 0) == 9) { 31913 STACKTOP = i1; 31914 return i8 | 0; 31915 } 31916 return 0; 31917 } 31918 function _lua_load(i1, i5, i4, i3, i6) { 31919 i1 = i1 | 0; 31920 i5 = i5 | 0; 31921 i4 = i4 | 0; 31922 i3 = i3 | 0; 31923 i6 = i6 | 0; 31924 var i2 = 0, i7 = 0, i8 = 0, i9 = 0; 31925 i2 = STACKTOP; 31926 STACKTOP = STACKTOP + 32 | 0; 31927 i7 = i2; 31928 _luaZ_init(i1, i7, i5, i4); 31929 i3 = _luaD_protectedparser(i1, i7, (i3 | 0) == 0 ? 928 : i3, i6) | 0; 31930 if ((i3 | 0) != 0) { 31931 STACKTOP = i2; 31932 return i3 | 0; 31933 } 31934 i4 = HEAP32[(HEAP32[i1 + 8 >> 2] | 0) + -16 >> 2] | 0; 31935 if ((HEAP8[i4 + 6 | 0] | 0) != 1) { 31936 STACKTOP = i2; 31937 return i3 | 0; 31938 } 31939 i5 = _luaH_getint(HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 40 >> 2] | 0, 2) | 0; 31940 i4 = i4 + 16 | 0; 31941 i6 = HEAP32[(HEAP32[i4 >> 2] | 0) + 8 >> 2] | 0; 31942 i9 = i5; 31943 i8 = HEAP32[i9 + 4 >> 2] | 0; 31944 i7 = i6; 31945 HEAP32[i7 >> 2] = HEAP32[i9 >> 2]; 31946 HEAP32[i7 + 4 >> 2] = i8; 31947 i7 = i5 + 8 | 0; 31948 HEAP32[i6 + 8 >> 2] = HEAP32[i7 >> 2]; 31949 if ((HEAP32[i7 >> 2] & 64 | 0) == 0) { 31950 STACKTOP = i2; 31951 return i3 | 0; 31952 } 31953 i5 = HEAP32[i5 >> 2] | 0; 31954 if ((HEAP8[i5 + 5 | 0] & 3) == 0) { 31955 STACKTOP = i2; 31956 return i3 | 0; 31957 } 31958 i4 = HEAP32[i4 >> 2] | 0; 31959 if ((HEAP8[i4 + 5 | 0] & 4) == 0) { 31960 STACKTOP = i2; 31961 return i3 | 0; 31962 } 31963 _luaC_barrier_(i1, i4, i5); 31964 STACKTOP = i2; 31965 return i3 | 0; 31966 } 31967 function _g_write(i1, i4, i8) { 31968 i1 = i1 | 0; 31969 i4 = i4 | 0; 31970 i8 = i8 | 0; 31971 var i2 = 0, i3 = 0, i5 = 0, i6 = 0, i7 = 0, i9 = 0, d10 = 0.0; 31972 i5 = STACKTOP; 31973 STACKTOP = STACKTOP + 16 | 0; 31974 i2 = i5; 31975 i3 = i5 + 8 | 0; 31976 i7 = _lua_gettop(i1) | 0; 31977 if ((i7 | 0) == (i8 | 0)) { 31978 i9 = 1; 31979 STACKTOP = i5; 31980 return i9 | 0; 31981 } 31982 i6 = i8; 31983 i7 = i7 - i8 | 0; 31984 i9 = 1; 31985 while (1) { 31986 i7 = i7 + -1 | 0; 31987 if ((_lua_type(i1, i6) | 0) == 3) { 31988 if ((i9 | 0) == 0) { 31989 i8 = 0; 31990 } else { 31991 d10 = +_lua_tonumberx(i1, i6, 0); 31992 HEAPF64[tempDoublePtr >> 3] = d10; 31993 HEAP32[i2 >> 2] = HEAP32[tempDoublePtr >> 2]; 31994 HEAP32[i2 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2]; 31995 i8 = (_fprintf(i4 | 0, 3072, i2 | 0) | 0) > 0; 31996 } 31997 } else { 31998 i8 = _luaL_checklstring(i1, i6, i3) | 0; 31999 if ((i9 | 0) == 0) { 32000 i8 = 0; 32001 } else { 32002 i8 = _fwrite(i8 | 0, 1, HEAP32[i3 >> 2] | 0, i4 | 0) | 0; 32003 i8 = (i8 | 0) == (HEAP32[i3 >> 2] | 0); 32004 } 32005 } 32006 if ((i7 | 0) == 0) { 32007 break; 32008 } else { 32009 i6 = i6 + 1 | 0; 32010 i9 = i8 & 1; 32011 } 32012 } 32013 if (i8) { 32014 i9 = 1; 32015 STACKTOP = i5; 32016 return i9 | 0; 32017 } 32018 i9 = _luaL_fileresult(i1, 0, 0) | 0; 32019 STACKTOP = i5; 32020 return i9 | 0; 32021 } 32022 function _lua_getuservalue(i2, i5) { 32023 i2 = i2 | 0; 32024 i5 = i5 | 0; 32025 var i1 = 0, i3 = 0, i4 = 0; 32026 i1 = STACKTOP; 32027 i4 = HEAP32[i2 + 16 >> 2] | 0; 32028 do { 32029 if ((i5 | 0) <= 0) { 32030 if (!((i5 | 0) < -1000999)) { 32031 i3 = (HEAP32[i2 + 8 >> 2] | 0) + (i5 << 4) | 0; 32032 break; 32033 } 32034 if ((i5 | 0) == -1001e3) { 32035 i3 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0; 32036 break; 32037 } 32038 i5 = -1001e3 - i5 | 0; 32039 i4 = HEAP32[i4 >> 2] | 0; 32040 if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i4 >> 2] | 0, (i5 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) { 32041 i3 = i3 + (i5 + -1 << 4) + 16 | 0; 32042 } else { 32043 i3 = 5192; 32044 } 32045 } else { 32046 i3 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0; 32047 i3 = i3 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i3 : 5192; 32048 } 32049 } while (0); 32050 i3 = HEAP32[(HEAP32[i3 >> 2] | 0) + 12 >> 2] | 0; 32051 i2 = i2 + 8 | 0; 32052 i4 = HEAP32[i2 >> 2] | 0; 32053 if ((i3 | 0) == 0) { 32054 HEAP32[i4 + 8 >> 2] = 0; 32055 i5 = i4; 32056 i5 = i5 + 16 | 0; 32057 HEAP32[i2 >> 2] = i5; 32058 STACKTOP = i1; 32059 return; 32060 } else { 32061 HEAP32[i4 >> 2] = i3; 32062 HEAP32[i4 + 8 >> 2] = 69; 32063 i5 = HEAP32[i2 >> 2] | 0; 32064 i5 = i5 + 16 | 0; 32065 HEAP32[i2 >> 2] = i5; 32066 STACKTOP = i1; 32067 return; 32068 } 32069 } 32070 function _luaL_addlstring(i7, i6, i1) { 32071 i7 = i7 | 0; 32072 i6 = i6 | 0; 32073 i1 = i1 | 0; 32074 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i8 = 0, i9 = 0; 32075 i5 = STACKTOP; 32076 STACKTOP = STACKTOP + 16 | 0; 32077 i4 = HEAP32[i7 + 12 >> 2] | 0; 32078 i3 = i7 + 4 | 0; 32079 i9 = HEAP32[i3 >> 2] | 0; 32080 i2 = i7 + 8 | 0; 32081 i8 = HEAP32[i2 >> 2] | 0; 32082 if (!((i9 - i8 | 0) >>> 0 < i1 >>> 0)) { 32083 i7 = HEAP32[i7 >> 2] | 0; 32084 i9 = i8; 32085 i9 = i7 + i9 | 0; 32086 _memcpy(i9 | 0, i6 | 0, i1 | 0) | 0; 32087 i9 = HEAP32[i2 >> 2] | 0; 32088 i9 = i9 + i1 | 0; 32089 HEAP32[i2 >> 2] = i9; 32090 STACKTOP = i5; 32091 return; 32092 } 32093 i9 = i9 << 1; 32094 i9 = (i9 - i8 | 0) >>> 0 < i1 >>> 0 ? i8 + i1 | 0 : i9; 32095 if (i9 >>> 0 < i8 >>> 0 | (i9 - i8 | 0) >>> 0 < i1 >>> 0) { 32096 _luaL_error(i4, 1272, i5) | 0; 32097 } 32098 i8 = _lua_newuserdata(i4, i9) | 0; 32099 _memcpy(i8 | 0, HEAP32[i7 >> 2] | 0, HEAP32[i2 >> 2] | 0) | 0; 32100 if ((HEAP32[i7 >> 2] | 0) != (i7 + 16 | 0)) { 32101 _lua_remove(i4, -2); 32102 } 32103 HEAP32[i7 >> 2] = i8; 32104 HEAP32[i3 >> 2] = i9; 32105 i9 = HEAP32[i2 >> 2] | 0; 32106 i9 = i8 + i9 | 0; 32107 _memcpy(i9 | 0, i6 | 0, i1 | 0) | 0; 32108 i9 = HEAP32[i2 >> 2] | 0; 32109 i9 = i9 + i1 | 0; 32110 HEAP32[i2 >> 2] = i9; 32111 STACKTOP = i5; 32112 return; 32113 } 32114 function _lua_rawgeti(i3, i6, i1) { 32115 i3 = i3 | 0; 32116 i6 = i6 | 0; 32117 i1 = i1 | 0; 32118 var i2 = 0, i4 = 0, i5 = 0, i7 = 0; 32119 i2 = STACKTOP; 32120 i5 = HEAP32[i3 + 16 >> 2] | 0; 32121 do { 32122 if ((i6 | 0) <= 0) { 32123 if (!((i6 | 0) < -1000999)) { 32124 i4 = (HEAP32[i3 + 8 >> 2] | 0) + (i6 << 4) | 0; 32125 break; 32126 } 32127 if ((i6 | 0) == -1001e3) { 32128 i4 = (HEAP32[i3 + 12 >> 2] | 0) + 40 | 0; 32129 break; 32130 } 32131 i6 = -1001e3 - i6 | 0; 32132 i5 = HEAP32[i5 >> 2] | 0; 32133 if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i5 >> 2] | 0, (i6 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) { 32134 i4 = i4 + (i6 + -1 << 4) + 16 | 0; 32135 } else { 32136 i4 = 5192; 32137 } 32138 } else { 32139 i4 = (HEAP32[i5 >> 2] | 0) + (i6 << 4) | 0; 32140 i4 = i4 >>> 0 < (HEAP32[i3 + 8 >> 2] | 0) >>> 0 ? i4 : 5192; 32141 } 32142 } while (0); 32143 i4 = _luaH_getint(HEAP32[i4 >> 2] | 0, i1) | 0; 32144 i6 = i3 + 8 | 0; 32145 i5 = HEAP32[i6 >> 2] | 0; 32146 i7 = i4; 32147 i1 = HEAP32[i7 + 4 >> 2] | 0; 32148 i3 = i5; 32149 HEAP32[i3 >> 2] = HEAP32[i7 >> 2]; 32150 HEAP32[i3 + 4 >> 2] = i1; 32151 HEAP32[i5 + 8 >> 2] = HEAP32[i4 + 8 >> 2]; 32152 HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + 16; 32153 STACKTOP = i2; 32154 return; 32155 } 32156 function _lua_setfield(i1, i6, i3) { 32157 i1 = i1 | 0; 32158 i6 = i6 | 0; 32159 i3 = i3 | 0; 32160 var i2 = 0, i4 = 0, i5 = 0; 32161 i2 = STACKTOP; 32162 i5 = HEAP32[i1 + 16 >> 2] | 0; 32163 do { 32164 if ((i6 | 0) <= 0) { 32165 if (!((i6 | 0) < -1000999)) { 32166 i4 = (HEAP32[i1 + 8 >> 2] | 0) + (i6 << 4) | 0; 32167 break; 32168 } 32169 if ((i6 | 0) == -1001e3) { 32170 i4 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0; 32171 break; 32172 } 32173 i6 = -1001e3 - i6 | 0; 32174 i5 = HEAP32[i5 >> 2] | 0; 32175 if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i5 >> 2] | 0, (i6 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) { 32176 i4 = i4 + (i6 + -1 << 4) + 16 | 0; 32177 } else { 32178 i4 = 5192; 32179 } 32180 } else { 32181 i4 = (HEAP32[i5 >> 2] | 0) + (i6 << 4) | 0; 32182 i4 = i4 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i4 : 5192; 32183 } 32184 } while (0); 32185 i6 = i1 + 8 | 0; 32186 i5 = HEAP32[i6 >> 2] | 0; 32187 HEAP32[i6 >> 2] = i5 + 16; 32188 i3 = _luaS_new(i1, i3) | 0; 32189 HEAP32[i5 >> 2] = i3; 32190 HEAP32[i5 + 8 >> 2] = HEAPU8[i3 + 4 | 0] | 0 | 64; 32191 i5 = HEAP32[i6 >> 2] | 0; 32192 _luaV_settable(i1, i4, i5 + -16 | 0, i5 + -32 | 0); 32193 HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + -32; 32194 STACKTOP = i2; 32195 return; 32196 } 32197 function _luaopen_io(i1) { 32198 i1 = i1 | 0; 32199 var i2 = 0, i3 = 0, i4 = 0, i5 = 0; 32200 i2 = STACKTOP; 32201 _lua_createtable(i1, 0, 11); 32202 _luaL_setfuncs(i1, 2680, 0); 32203 _luaL_newmetatable(i1, 2832) | 0; 32204 _lua_pushvalue(i1, -1); 32205 _lua_setfield(i1, -2, 2872); 32206 _luaL_setfuncs(i1, 2880, 0); 32207 _lua_settop(i1, -2); 32208 i5 = HEAP32[_stdin >> 2] | 0; 32209 i4 = _lua_newuserdata(i1, 8) | 0; 32210 i3 = i4 + 4 | 0; 32211 HEAP32[i3 >> 2] = 0; 32212 _luaL_setmetatable(i1, 2832); 32213 HEAP32[i4 >> 2] = i5; 32214 HEAP32[i3 >> 2] = 154; 32215 _lua_pushvalue(i1, -1); 32216 _lua_setfield(i1, -1001e3, 2776); 32217 _lua_setfield(i1, -2, 2792); 32218 i3 = HEAP32[_stdout >> 2] | 0; 32219 i4 = _lua_newuserdata(i1, 8) | 0; 32220 i5 = i4 + 4 | 0; 32221 HEAP32[i5 >> 2] = 0; 32222 _luaL_setmetatable(i1, 2832); 32223 HEAP32[i4 >> 2] = i3; 32224 HEAP32[i5 >> 2] = 154; 32225 _lua_pushvalue(i1, -1); 32226 _lua_setfield(i1, -1001e3, 2800); 32227 _lua_setfield(i1, -2, 2816); 32228 i5 = HEAP32[_stderr >> 2] | 0; 32229 i4 = _lua_newuserdata(i1, 8) | 0; 32230 i3 = i4 + 4 | 0; 32231 HEAP32[i3 >> 2] = 0; 32232 _luaL_setmetatable(i1, 2832); 32233 HEAP32[i4 >> 2] = i5; 32234 HEAP32[i3 >> 2] = 154; 32235 _lua_setfield(i1, -2, 2824); 32236 STACKTOP = i2; 32237 return 1; 32238 } 32239 function _lua_pushcclosure(i1, i4, i5) { 32240 i1 = i1 | 0; 32241 i4 = i4 | 0; 32242 i5 = i5 | 0; 32243 var i2 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0; 32244 i2 = STACKTOP; 32245 if ((i5 | 0) == 0) { 32246 i6 = HEAP32[i1 + 8 >> 2] | 0; 32247 HEAP32[i6 >> 2] = i4; 32248 HEAP32[i6 + 8 >> 2] = 22; 32249 i6 = i1 + 8 | 0; 32250 i5 = HEAP32[i6 >> 2] | 0; 32251 i5 = i5 + 16 | 0; 32252 HEAP32[i6 >> 2] = i5; 32253 STACKTOP = i2; 32254 return; 32255 } 32256 if ((HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) { 32257 _luaC_step(i1); 32258 } 32259 i3 = _luaF_newCclosure(i1, i5) | 0; 32260 HEAP32[i3 + 12 >> 2] = i4; 32261 i4 = i1 + 8 | 0; 32262 i6 = (HEAP32[i4 >> 2] | 0) + (0 - i5 << 4) | 0; 32263 HEAP32[i4 >> 2] = i6; 32264 do { 32265 i5 = i5 + -1 | 0; 32266 i9 = i6 + (i5 << 4) | 0; 32267 i8 = HEAP32[i9 + 4 >> 2] | 0; 32268 i7 = i3 + (i5 << 4) + 16 | 0; 32269 HEAP32[i7 >> 2] = HEAP32[i9 >> 2]; 32270 HEAP32[i7 + 4 >> 2] = i8; 32271 HEAP32[i3 + (i5 << 4) + 24 >> 2] = HEAP32[i6 + (i5 << 4) + 8 >> 2]; 32272 i6 = HEAP32[i4 >> 2] | 0; 32273 } while ((i5 | 0) != 0); 32274 HEAP32[i6 >> 2] = i3; 32275 HEAP32[i6 + 8 >> 2] = 102; 32276 i9 = i1 + 8 | 0; 32277 i8 = HEAP32[i9 >> 2] | 0; 32278 i8 = i8 + 16 | 0; 32279 HEAP32[i9 >> 2] = i8; 32280 STACKTOP = i2; 32281 return; 32282 } 32283 function _luaF_findupval(i3, i4) { 32284 i3 = i3 | 0; 32285 i4 = i4 | 0; 32286 var i1 = 0, i2 = 0, i5 = 0, i6 = 0, i7 = 0; 32287 i1 = STACKTOP; 32288 i2 = HEAP32[i3 + 12 >> 2] | 0; 32289 i6 = i3 + 56 | 0; 32290 i5 = HEAP32[i6 >> 2] | 0; 32291 L1 : do { 32292 if ((i5 | 0) == 0) { 32293 i5 = i6; 32294 } else { 32295 while (1) { 32296 i7 = HEAP32[i5 + 8 >> 2] | 0; 32297 if (i7 >>> 0 < i4 >>> 0) { 32298 i5 = i6; 32299 break L1; 32300 } 32301 if ((i7 | 0) == (i4 | 0)) { 32302 break; 32303 } 32304 i6 = HEAP32[i5 >> 2] | 0; 32305 if ((i6 | 0) == 0) { 32306 break L1; 32307 } else { 32308 i7 = i5; 32309 i5 = i6; 32310 i6 = i7; 32311 } 32312 } 32313 i4 = i5 + 5 | 0; 32314 i3 = (HEAPU8[i4] | 0) ^ 3; 32315 if ((((HEAPU8[i2 + 60 | 0] | 0) ^ 3) & i3 | 0) != 0) { 32316 i7 = i5; 32317 STACKTOP = i1; 32318 return i7 | 0; 32319 } 32320 HEAP8[i4] = i3; 32321 i7 = i5; 32322 STACKTOP = i1; 32323 return i7 | 0; 32324 } 32325 } while (0); 32326 i7 = _luaC_newobj(i3, 10, 32, i5, 0) | 0; 32327 HEAP32[i7 + 8 >> 2] = i4; 32328 i4 = i7 + 16 | 0; 32329 HEAP32[i4 >> 2] = i2 + 112; 32330 i6 = i2 + 132 | 0; 32331 i5 = HEAP32[i6 >> 2] | 0; 32332 HEAP32[i4 + 4 >> 2] = i5; 32333 HEAP32[i5 + 16 >> 2] = i7; 32334 HEAP32[i6 >> 2] = i7; 32335 STACKTOP = i1; 32336 return i7 | 0; 32337 } 32338 function _luaC_checkfinalizer(i5, i4, i6) { 32339 i5 = i5 | 0; 32340 i4 = i4 | 0; 32341 i6 = i6 | 0; 32342 var i1 = 0, i2 = 0, i3 = 0, i7 = 0, i8 = 0; 32343 i3 = STACKTOP; 32344 i1 = HEAP32[i5 + 12 >> 2] | 0; 32345 i2 = i4 + 5 | 0; 32346 if ((HEAP8[i2] & 24) != 0 | (i6 | 0) == 0) { 32347 STACKTOP = i3; 32348 return; 32349 } 32350 if (!((HEAP8[i6 + 6 | 0] & 4) == 0)) { 32351 STACKTOP = i3; 32352 return; 32353 } 32354 if ((_luaT_gettm(i6, 2, HEAP32[i1 + 192 >> 2] | 0) | 0) == 0) { 32355 STACKTOP = i3; 32356 return; 32357 } 32358 i7 = i1 + 76 | 0; 32359 i8 = HEAP32[i7 >> 2] | 0; 32360 if ((i8 | 0) == (i4 | 0)) { 32361 do { 32362 i6 = _sweeplist(i5, i8, 1) | 0; 32363 } while ((i6 | 0) == (i8 | 0)); 32364 HEAP32[i7 >> 2] = i6; 32365 } 32366 i5 = i1 + 68 | 0; 32367 while (1) { 32368 i6 = HEAP32[i5 >> 2] | 0; 32369 if ((i6 | 0) == (i4 | 0)) { 32370 break; 32371 } else { 32372 i5 = i6; 32373 } 32374 } 32375 HEAP32[i5 >> 2] = HEAP32[i4 >> 2]; 32376 i8 = i1 + 72 | 0; 32377 HEAP32[i4 >> 2] = HEAP32[i8 >> 2]; 32378 HEAP32[i8 >> 2] = i4; 32379 i4 = HEAPU8[i2] | 0 | 16; 32380 HEAP8[i2] = i4; 32381 if ((HEAPU8[i1 + 61 | 0] | 0) < 2) { 32382 HEAP8[i2] = i4 & 191; 32383 STACKTOP = i3; 32384 return; 32385 } else { 32386 HEAP8[i2] = HEAP8[i1 + 60 | 0] & 3 | i4 & 184; 32387 STACKTOP = i3; 32388 return; 32389 } 32390 } 32391 function _io_lines(i1) { 32392 i1 = i1 | 0; 32393 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0; 32394 i2 = STACKTOP; 32395 STACKTOP = STACKTOP + 16 | 0; 32396 i3 = i2; 32397 if ((_lua_type(i1, 1) | 0) == -1) { 32398 _lua_pushnil(i1); 32399 } 32400 if ((_lua_type(i1, 1) | 0) == 0) { 32401 _lua_getfield(i1, -1001e3, 2776); 32402 _lua_replace(i1, 1); 32403 if ((HEAP32[(_luaL_checkudata(i1, 1, 2832) | 0) + 4 >> 2] | 0) != 0) { 32404 i4 = 0; 32405 _aux_lines(i1, i4); 32406 STACKTOP = i2; 32407 return 1; 32408 } 32409 _luaL_error(i1, 3080, i3) | 0; 32410 i4 = 0; 32411 _aux_lines(i1, i4); 32412 STACKTOP = i2; 32413 return 1; 32414 } else { 32415 i4 = _luaL_checklstring(i1, 1, 0) | 0; 32416 i6 = _lua_newuserdata(i1, 8) | 0; 32417 i5 = i6 + 4 | 0; 32418 HEAP32[i5 >> 2] = 0; 32419 _luaL_setmetatable(i1, 2832); 32420 HEAP32[i6 >> 2] = 0; 32421 HEAP32[i5 >> 2] = 156; 32422 i5 = _fopen(i4 | 0, 3480) | 0; 32423 HEAP32[i6 >> 2] = i5; 32424 if ((i5 | 0) == 0) { 32425 i6 = _strerror(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0; 32426 HEAP32[i3 >> 2] = i4; 32427 HEAP32[i3 + 4 >> 2] = i6; 32428 _luaL_error(i1, 3520, i3) | 0; 32429 } 32430 _lua_replace(i1, 1); 32431 i6 = 1; 32432 _aux_lines(i1, i6); 32433 STACKTOP = i2; 32434 return 1; 32435 } 32436 return 0; 32437 } 32438 function _luaC_changemode(i2, i6) { 32439 i2 = i2 | 0; 32440 i6 = i6 | 0; 32441 var i1 = 0, i3 = 0, i4 = 0, i5 = 0; 32442 i1 = STACKTOP; 32443 i3 = i2 + 12 | 0; 32444 i5 = HEAP32[i3 >> 2] | 0; 32445 i4 = i5 + 62 | 0; 32446 if ((HEAPU8[i4] | 0) == (i6 | 0)) { 32447 STACKTOP = i1; 32448 return; 32449 } 32450 if ((i6 | 0) == 2) { 32451 i3 = i5 + 61 | 0; 32452 if ((HEAP8[i3] | 0) != 0) { 32453 do { 32454 _singlestep(i2) | 0; 32455 } while ((HEAP8[i3] | 0) != 0); 32456 } 32457 HEAP32[i5 + 20 >> 2] = (HEAP32[i5 + 12 >> 2] | 0) + (HEAP32[i5 + 8 >> 2] | 0); 32458 HEAP8[i4] = 2; 32459 STACKTOP = i1; 32460 return; 32461 } 32462 HEAP8[i4] = 0; 32463 i4 = HEAP32[i3 >> 2] | 0; 32464 HEAP8[i4 + 61 | 0] = 2; 32465 HEAP32[i4 + 64 >> 2] = 0; 32466 i5 = i4 + 72 | 0; 32467 do { 32468 i6 = _sweeplist(i2, i5, 1) | 0; 32469 } while ((i6 | 0) == (i5 | 0)); 32470 HEAP32[i4 + 80 >> 2] = i6; 32471 i5 = i4 + 68 | 0; 32472 do { 32473 i6 = _sweeplist(i2, i5, 1) | 0; 32474 } while ((i6 | 0) == (i5 | 0)); 32475 HEAP32[i4 + 76 >> 2] = i6; 32476 i3 = (HEAP32[i3 >> 2] | 0) + 61 | 0; 32477 if ((1 << HEAPU8[i3] & -29 | 0) != 0) { 32478 STACKTOP = i1; 32479 return; 32480 } 32481 do { 32482 _singlestep(i2) | 0; 32483 } while ((1 << HEAPU8[i3] & -29 | 0) == 0); 32484 STACKTOP = i1; 32485 return; 32486 } 32487 function _lua_rawget(i1, i5) { 32488 i1 = i1 | 0; 32489 i5 = i5 | 0; 32490 var i2 = 0, i3 = 0, i4 = 0, i6 = 0; 32491 i2 = STACKTOP; 32492 i4 = HEAP32[i1 + 16 >> 2] | 0; 32493 do { 32494 if ((i5 | 0) <= 0) { 32495 if (!((i5 | 0) < -1000999)) { 32496 i3 = (HEAP32[i1 + 8 >> 2] | 0) + (i5 << 4) | 0; 32497 break; 32498 } 32499 if ((i5 | 0) == -1001e3) { 32500 i3 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0; 32501 break; 32502 } 32503 i5 = -1001e3 - i5 | 0; 32504 i4 = HEAP32[i4 >> 2] | 0; 32505 if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i4 >> 2] | 0, (i5 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) { 32506 i3 = i3 + (i5 + -1 << 4) + 16 | 0; 32507 } else { 32508 i3 = 5192; 32509 } 32510 } else { 32511 i3 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0; 32512 i3 = i3 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i3 : 5192; 32513 } 32514 } while (0); 32515 i5 = i1 + 8 | 0; 32516 i4 = _luaH_get(HEAP32[i3 >> 2] | 0, (HEAP32[i5 >> 2] | 0) + -16 | 0) | 0; 32517 i5 = HEAP32[i5 >> 2] | 0; 32518 i6 = i4; 32519 i1 = HEAP32[i6 + 4 >> 2] | 0; 32520 i3 = i5 + -16 | 0; 32521 HEAP32[i3 >> 2] = HEAP32[i6 >> 2]; 32522 HEAP32[i3 + 4 >> 2] = i1; 32523 HEAP32[i5 + -8 >> 2] = HEAP32[i4 + 8 >> 2]; 32524 STACKTOP = i2; 32525 return; 32526 } 32527 function _lua_isstring(i2, i4) { 32528 i2 = i2 | 0; 32529 i4 = i4 | 0; 32530 var i1 = 0, i3 = 0; 32531 i1 = STACKTOP; 32532 i3 = HEAP32[i2 + 16 >> 2] | 0; 32533 do { 32534 if ((i4 | 0) <= 0) { 32535 if (!((i4 | 0) < -1000999)) { 32536 i2 = (HEAP32[i2 + 8 >> 2] | 0) + (i4 << 4) | 0; 32537 break; 32538 } 32539 if ((i4 | 0) == -1001e3) { 32540 i2 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0; 32541 break; 32542 } 32543 i2 = -1001e3 - i4 | 0; 32544 i3 = HEAP32[i3 >> 2] | 0; 32545 if ((HEAP32[i3 + 8 >> 2] | 0) == 22) { 32546 i4 = 0; 32547 i4 = i4 & 1; 32548 STACKTOP = i1; 32549 return i4 | 0; 32550 } 32551 i3 = HEAP32[i3 >> 2] | 0; 32552 if ((i2 | 0) > (HEAPU8[i3 + 6 | 0] | 0 | 0)) { 32553 i4 = 0; 32554 i4 = i4 & 1; 32555 STACKTOP = i1; 32556 return i4 | 0; 32557 } else { 32558 i2 = i3 + (i2 + -1 << 4) + 16 | 0; 32559 break; 32560 } 32561 } else { 32562 i3 = (HEAP32[i3 >> 2] | 0) + (i4 << 4) | 0; 32563 i2 = i3 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i3 : 5192; 32564 } 32565 } while (0); 32566 if ((i2 | 0) == 5192) { 32567 i4 = 0; 32568 i4 = i4 & 1; 32569 STACKTOP = i1; 32570 return i4 | 0; 32571 } 32572 i4 = ((HEAP32[i2 + 8 >> 2] & 15) + -3 | 0) >>> 0 < 2; 32573 i4 = i4 & 1; 32574 STACKTOP = i1; 32575 return i4 | 0; 32576 } 32577 function _setnodevector(i5, i1, i3) { 32578 i5 = i5 | 0; 32579 i1 = i1 | 0; 32580 i3 = i3 | 0; 32581 var i2 = 0, i4 = 0, i6 = 0, i7 = 0; 32582 i2 = STACKTOP; 32583 STACKTOP = STACKTOP + 16 | 0; 32584 if ((i3 | 0) == 0) { 32585 HEAP32[i1 + 16 >> 2] = 8016; 32586 i6 = 0; 32587 i7 = 8016; 32588 i4 = 0; 32589 i5 = i1 + 7 | 0; 32590 HEAP8[i5] = i4; 32591 i6 = i7 + (i6 << 5) | 0; 32592 i7 = i1 + 20 | 0; 32593 HEAP32[i7 >> 2] = i6; 32594 STACKTOP = i2; 32595 return; 32596 } 32597 i4 = _luaO_ceillog2(i3) | 0; 32598 if ((i4 | 0) > 30) { 32599 _luaG_runerror(i5, 8048, i2); 32600 } 32601 i3 = 1 << i4; 32602 if ((i3 + 1 | 0) >>> 0 > 134217727) { 32603 _luaM_toobig(i5); 32604 } 32605 i6 = _luaM_realloc_(i5, 0, 0, i3 << 5) | 0; 32606 i5 = i1 + 16 | 0; 32607 HEAP32[i5 >> 2] = i6; 32608 if ((i3 | 0) > 0) { 32609 i7 = 0; 32610 do { 32611 HEAP32[i6 + (i7 << 5) + 28 >> 2] = 0; 32612 HEAP32[i6 + (i7 << 5) + 24 >> 2] = 0; 32613 HEAP32[i6 + (i7 << 5) + 8 >> 2] = 0; 32614 i7 = i7 + 1 | 0; 32615 i6 = HEAP32[i5 >> 2] | 0; 32616 } while ((i7 | 0) != (i3 | 0)); 32617 } 32618 i7 = i3; 32619 i4 = i4 & 255; 32620 i5 = i1 + 7 | 0; 32621 HEAP8[i5] = i4; 32622 i6 = i6 + (i7 << 5) | 0; 32623 i7 = i1 + 20 | 0; 32624 HEAP32[i7 >> 2] = i6; 32625 STACKTOP = i2; 32626 return; 32627 } 32628 function _lua_pushvalue(i1, i5) { 32629 i1 = i1 | 0; 32630 i5 = i5 | 0; 32631 var i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0; 32632 i2 = STACKTOP; 32633 i4 = HEAP32[i1 + 16 >> 2] | 0; 32634 do { 32635 if ((i5 | 0) <= 0) { 32636 if (!((i5 | 0) < -1000999)) { 32637 i3 = (HEAP32[i1 + 8 >> 2] | 0) + (i5 << 4) | 0; 32638 break; 32639 } 32640 if ((i5 | 0) == -1001e3) { 32641 i3 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0; 32642 break; 32643 } 32644 i5 = -1001e3 - i5 | 0; 32645 i4 = HEAP32[i4 >> 2] | 0; 32646 if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i4 >> 2] | 0, (i5 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) { 32647 i3 = i3 + (i5 + -1 << 4) + 16 | 0; 32648 } else { 32649 i3 = 5192; 32650 } 32651 } else { 32652 i3 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0; 32653 i3 = i3 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i3 : 5192; 32654 } 32655 } while (0); 32656 i5 = i1 + 8 | 0; 32657 i4 = HEAP32[i5 >> 2] | 0; 32658 i7 = i3; 32659 i6 = HEAP32[i7 + 4 >> 2] | 0; 32660 i1 = i4; 32661 HEAP32[i1 >> 2] = HEAP32[i7 >> 2]; 32662 HEAP32[i1 + 4 >> 2] = i6; 32663 HEAP32[i4 + 8 >> 2] = HEAP32[i3 + 8 >> 2]; 32664 HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + 16; 32665 STACKTOP = i2; 32666 return; 32667 } 32668 function _luaL_setfuncs(i3, i6, i1) { 32669 i3 = i3 | 0; 32670 i6 = i6 | 0; 32671 i1 = i1 | 0; 32672 var i2 = 0, i4 = 0, i5 = 0, i7 = 0; 32673 i2 = STACKTOP; 32674 STACKTOP = STACKTOP + 16 | 0; 32675 i4 = i2; 32676 _luaL_checkversion_(i3, 502.0); 32677 if ((_lua_checkstack(i3, i1 + 20 | 0) | 0) == 0) { 32678 HEAP32[i4 >> 2] = 1472; 32679 _luaL_error(i3, 1216, i4) | 0; 32680 } 32681 if ((HEAP32[i6 >> 2] | 0) == 0) { 32682 i7 = ~i1; 32683 _lua_settop(i3, i7); 32684 STACKTOP = i2; 32685 return; 32686 } 32687 i4 = -2 - i1 | 0; 32688 i5 = 0 - i1 | 0; 32689 if ((i1 | 0) <= 0) { 32690 do { 32691 _lua_pushcclosure(i3, HEAP32[i6 + 4 >> 2] | 0, i1); 32692 _lua_setfield(i3, i4, HEAP32[i6 >> 2] | 0); 32693 i6 = i6 + 8 | 0; 32694 } while ((HEAP32[i6 >> 2] | 0) != 0); 32695 i7 = ~i1; 32696 _lua_settop(i3, i7); 32697 STACKTOP = i2; 32698 return; 32699 } 32700 do { 32701 i7 = 0; 32702 do { 32703 _lua_pushvalue(i3, i5); 32704 i7 = i7 + 1 | 0; 32705 } while ((i7 | 0) != (i1 | 0)); 32706 _lua_pushcclosure(i3, HEAP32[i6 + 4 >> 2] | 0, i1); 32707 _lua_setfield(i3, i4, HEAP32[i6 >> 2] | 0); 32708 i6 = i6 + 8 | 0; 32709 } while ((HEAP32[i6 >> 2] | 0) != 0); 32710 i7 = ~i1; 32711 _lua_settop(i3, i7); 32712 STACKTOP = i2; 32713 return; 32714 } 32715 function _lua_touserdata(i3, i5) { 32716 i3 = i3 | 0; 32717 i5 = i5 | 0; 32718 var i1 = 0, i2 = 0, i4 = 0; 32719 i1 = STACKTOP; 32720 i4 = HEAP32[i3 + 16 >> 2] | 0; 32721 do { 32722 if ((i5 | 0) <= 0) { 32723 if (!((i5 | 0) < -1000999)) { 32724 i2 = (HEAP32[i3 + 8 >> 2] | 0) + (i5 << 4) | 0; 32725 break; 32726 } 32727 if ((i5 | 0) == -1001e3) { 32728 i2 = (HEAP32[i3 + 12 >> 2] | 0) + 40 | 0; 32729 break; 32730 } 32731 i3 = -1001e3 - i5 | 0; 32732 i4 = HEAP32[i4 >> 2] | 0; 32733 if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i2 = HEAP32[i4 >> 2] | 0, (i3 | 0) <= (HEAPU8[i2 + 6 | 0] | 0 | 0)) : 0) { 32734 i2 = i2 + (i3 + -1 << 4) + 16 | 0; 32735 } else { 32736 i2 = 5192; 32737 } 32738 } else { 32739 i2 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0; 32740 i2 = i2 >>> 0 < (HEAP32[i3 + 8 >> 2] | 0) >>> 0 ? i2 : 5192; 32741 } 32742 } while (0); 32743 i3 = HEAP32[i2 + 8 >> 2] & 15; 32744 if ((i3 | 0) == 2) { 32745 i5 = HEAP32[i2 >> 2] | 0; 32746 STACKTOP = i1; 32747 return i5 | 0; 32748 } else if ((i3 | 0) == 7) { 32749 i5 = (HEAP32[i2 >> 2] | 0) + 24 | 0; 32750 STACKTOP = i1; 32751 return i5 | 0; 32752 } else { 32753 i5 = 0; 32754 STACKTOP = i1; 32755 return i5 | 0; 32756 } 32757 return 0; 32758 } 32759 function _luaL_checkoption(i2, i3, i6, i4) { 32760 i2 = i2 | 0; 32761 i3 = i3 | 0; 32762 i6 = i6 | 0; 32763 i4 = i4 | 0; 32764 var i1 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0; 32765 i1 = STACKTOP; 32766 STACKTOP = STACKTOP + 16 | 0; 32767 i5 = i1; 32768 if ((i6 | 0) == 0) { 32769 i6 = _lua_tolstring(i2, i3, 0) | 0; 32770 if ((i6 | 0) == 0) { 32771 i9 = _lua_typename(i2, 4) | 0; 32772 i6 = _lua_typename(i2, _lua_type(i2, i3) | 0) | 0; 32773 HEAP32[i5 >> 2] = i9; 32774 HEAP32[i5 + 4 >> 2] = i6; 32775 _luaL_argerror(i2, i3, _lua_pushfstring(i2, 1744, i5) | 0) | 0; 32776 i6 = 0; 32777 } 32778 } else { 32779 i6 = _luaL_optlstring(i2, i3, i6, 0) | 0; 32780 } 32781 i9 = HEAP32[i4 >> 2] | 0; 32782 L6 : do { 32783 if ((i9 | 0) != 0) { 32784 i8 = 0; 32785 while (1) { 32786 i7 = i8 + 1 | 0; 32787 if ((_strcmp(i9, i6) | 0) == 0) { 32788 break; 32789 } 32790 i9 = HEAP32[i4 + (i7 << 2) >> 2] | 0; 32791 if ((i9 | 0) == 0) { 32792 break L6; 32793 } else { 32794 i8 = i7; 32795 } 32796 } 32797 STACKTOP = i1; 32798 return i8 | 0; 32799 } 32800 } while (0); 32801 HEAP32[i5 >> 2] = i6; 32802 i9 = _luaL_argerror(i2, i3, _lua_pushfstring(i2, 1192, i5) | 0) | 0; 32803 STACKTOP = i1; 32804 return i9 | 0; 32805 } 32806 function _lua_toboolean(i3, i5) { 32807 i3 = i3 | 0; 32808 i5 = i5 | 0; 32809 var i1 = 0, i2 = 0, i4 = 0; 32810 i1 = STACKTOP; 32811 i4 = HEAP32[i3 + 16 >> 2] | 0; 32812 do { 32813 if ((i5 | 0) <= 0) { 32814 if (!((i5 | 0) < -1000999)) { 32815 i3 = (HEAP32[i3 + 8 >> 2] | 0) + (i5 << 4) | 0; 32816 break; 32817 } 32818 if ((i5 | 0) == -1001e3) { 32819 i3 = (HEAP32[i3 + 12 >> 2] | 0) + 40 | 0; 32820 break; 32821 } 32822 i3 = -1001e3 - i5 | 0; 32823 i4 = HEAP32[i4 >> 2] | 0; 32824 if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i2 = HEAP32[i4 >> 2] | 0, (i3 | 0) <= (HEAPU8[i2 + 6 | 0] | 0 | 0)) : 0) { 32825 i3 = i2 + (i3 + -1 << 4) + 16 | 0; 32826 } else { 32827 i3 = 5192; 32828 } 32829 } else { 32830 i2 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0; 32831 i3 = i2 >>> 0 < (HEAP32[i3 + 8 >> 2] | 0) >>> 0 ? i2 : 5192; 32832 } 32833 } while (0); 32834 i2 = HEAP32[i3 + 8 >> 2] | 0; 32835 if ((i2 | 0) == 0) { 32836 i5 = 0; 32837 i5 = i5 & 1; 32838 STACKTOP = i1; 32839 return i5 | 0; 32840 } 32841 if ((i2 | 0) != 1) { 32842 i5 = 1; 32843 i5 = i5 & 1; 32844 STACKTOP = i1; 32845 return i5 | 0; 32846 } 32847 i5 = (HEAP32[i3 >> 2] | 0) != 0; 32848 i5 = i5 & 1; 32849 STACKTOP = i1; 32850 return i5 | 0; 32851 } 32852 function _lua_getfield(i1, i6, i3) { 32853 i1 = i1 | 0; 32854 i6 = i6 | 0; 32855 i3 = i3 | 0; 32856 var i2 = 0, i4 = 0, i5 = 0; 32857 i2 = STACKTOP; 32858 i5 = HEAP32[i1 + 16 >> 2] | 0; 32859 do { 32860 if ((i6 | 0) <= 0) { 32861 if (!((i6 | 0) < -1000999)) { 32862 i4 = (HEAP32[i1 + 8 >> 2] | 0) + (i6 << 4) | 0; 32863 break; 32864 } 32865 if ((i6 | 0) == -1001e3) { 32866 i4 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0; 32867 break; 32868 } 32869 i6 = -1001e3 - i6 | 0; 32870 i5 = HEAP32[i5 >> 2] | 0; 32871 if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i5 >> 2] | 0, (i6 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) { 32872 i4 = i4 + (i6 + -1 << 4) + 16 | 0; 32873 } else { 32874 i4 = 5192; 32875 } 32876 } else { 32877 i4 = (HEAP32[i5 >> 2] | 0) + (i6 << 4) | 0; 32878 i4 = i4 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i4 : 5192; 32879 } 32880 } while (0); 32881 i5 = i1 + 8 | 0; 32882 i6 = HEAP32[i5 >> 2] | 0; 32883 i3 = _luaS_new(i1, i3) | 0; 32884 HEAP32[i6 >> 2] = i3; 32885 HEAP32[i6 + 8 >> 2] = HEAPU8[i3 + 4 | 0] | 0 | 64; 32886 i6 = HEAP32[i5 >> 2] | 0; 32887 HEAP32[i5 >> 2] = i6 + 16; 32888 _luaV_gettable(i1, i4, i6, i6); 32889 STACKTOP = i2; 32890 return; 32891 } 32892 function _luaL_argerror(i1, i6, i3) { 32893 i1 = i1 | 0; 32894 i6 = i6 | 0; 32895 i3 = i3 | 0; 32896 var i2 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0; 32897 i4 = STACKTOP; 32898 STACKTOP = STACKTOP + 112 | 0; 32899 i2 = i4; 32900 i5 = i4 + 12 | 0; 32901 if ((_lua_getstack(i1, 0, i5) | 0) == 0) { 32902 HEAP32[i2 >> 2] = i6; 32903 HEAP32[i2 + 4 >> 2] = i3; 32904 i8 = _luaL_error(i1, 1040, i2) | 0; 32905 STACKTOP = i4; 32906 return i8 | 0; 32907 } 32908 _lua_getinfo(i1, 1064, i5) | 0; 32909 if ((_strcmp(HEAP32[i5 + 8 >> 2] | 0, 1072) | 0) == 0) { 32910 i6 = i6 + -1 | 0; 32911 if ((i6 | 0) == 0) { 32912 HEAP32[i2 >> 2] = HEAP32[i5 + 4 >> 2]; 32913 HEAP32[i2 + 4 >> 2] = i3; 32914 i8 = _luaL_error(i1, 1080, i2) | 0; 32915 STACKTOP = i4; 32916 return i8 | 0; 32917 } 32918 } 32919 i7 = i5 + 4 | 0; 32920 i8 = HEAP32[i7 >> 2] | 0; 32921 if ((i8 | 0) == 0) { 32922 if ((_pushglobalfuncname(i1, i5) | 0) == 0) { 32923 i8 = 1112; 32924 } else { 32925 i8 = _lua_tolstring(i1, -1, 0) | 0; 32926 } 32927 HEAP32[i7 >> 2] = i8; 32928 } 32929 HEAP32[i2 >> 2] = i6; 32930 HEAP32[i2 + 4 >> 2] = i8; 32931 HEAP32[i2 + 8 >> 2] = i3; 32932 i8 = _luaL_error(i1, 1120, i2) | 0; 32933 STACKTOP = i4; 32934 return i8 | 0; 32935 } 32936 function _match_class(i3, i2) { 32937 i3 = i3 | 0; 32938 i2 = i2 | 0; 32939 var i1 = 0; 32940 i1 = STACKTOP; 32941 switch (_tolower(i2 | 0) | 0) { 32942 case 117: 32943 { 32944 i3 = _isupper(i3 | 0) | 0; 32945 break; 32946 } 32947 case 97: 32948 { 32949 i3 = _isalpha(i3 | 0) | 0; 32950 break; 32951 } 32952 case 99: 32953 { 32954 i3 = _iscntrl(i3 | 0) | 0; 32955 break; 32956 } 32957 case 120: 32958 { 32959 i3 = _isxdigit(i3 | 0) | 0; 32960 break; 32961 } 32962 case 119: 32963 { 32964 i3 = _isalnum(i3 | 0) | 0; 32965 break; 32966 } 32967 case 112: 32968 { 32969 i3 = _ispunct(i3 | 0) | 0; 32970 break; 32971 } 32972 case 100: 32973 { 32974 i3 = (i3 + -48 | 0) >>> 0 < 10 | 0; 32975 break; 32976 } 32977 case 108: 32978 { 32979 i3 = _islower(i3 | 0) | 0; 32980 break; 32981 } 32982 case 122: 32983 { 32984 i3 = (i3 | 0) == 0 | 0; 32985 break; 32986 } 32987 case 103: 32988 { 32989 i3 = _isgraph(i3 | 0) | 0; 32990 break; 32991 } 32992 case 115: 32993 { 32994 i3 = _isspace(i3 | 0) | 0; 32995 break; 32996 } 32997 default: 32998 { 32999 i3 = (i2 | 0) == (i3 | 0) | 0; 33000 STACKTOP = i1; 33001 return i3 | 0; 33002 } 33003 } 33004 if ((_islower(i2 | 0) | 0) != 0) { 33005 STACKTOP = i1; 33006 return i3 | 0; 33007 } 33008 i3 = (i3 | 0) == 0 | 0; 33009 STACKTOP = i1; 33010 return i3 | 0; 33011 } 33012 function _condjump(i1, i3, i6, i4, i5) { 33013 i1 = i1 | 0; 33014 i3 = i3 | 0; 33015 i6 = i6 | 0; 33016 i4 = i4 | 0; 33017 i5 = i5 | 0; 33018 var i2 = 0, i7 = 0, i8 = 0, i9 = 0; 33019 i2 = STACKTOP; 33020 _luaK_code(i1, i6 << 6 | i3 | i4 << 23 | i5 << 14) | 0; 33021 i3 = i1 + 28 | 0; 33022 i6 = HEAP32[i3 >> 2] | 0; 33023 HEAP32[i3 >> 2] = -1; 33024 i3 = _luaK_code(i1, 2147450903) | 0; 33025 if ((i6 | 0) == -1) { 33026 i9 = i3; 33027 STACKTOP = i2; 33028 return i9 | 0; 33029 } 33030 if ((i3 | 0) == -1) { 33031 i9 = i6; 33032 STACKTOP = i2; 33033 return i9 | 0; 33034 } 33035 i8 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0; 33036 i7 = i3; 33037 while (1) { 33038 i4 = i8 + (i7 << 2) | 0; 33039 i5 = HEAP32[i4 >> 2] | 0; 33040 i9 = (i5 >>> 14) + -131071 | 0; 33041 if ((i9 | 0) == -1) { 33042 break; 33043 } 33044 i9 = i7 + 1 + i9 | 0; 33045 if ((i9 | 0) == -1) { 33046 break; 33047 } else { 33048 i7 = i9; 33049 } 33050 } 33051 i6 = i6 + ~i7 | 0; 33052 if ((((i6 | 0) > -1 ? i6 : 0 - i6 | 0) | 0) > 131071) { 33053 _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10624); 33054 } 33055 HEAP32[i4 >> 2] = (i6 << 14) + 2147467264 | i5 & 16383; 33056 i9 = i3; 33057 STACKTOP = i2; 33058 return i9 | 0; 33059 } 33060 function _skipcomment(i6, i1) { 33061 i6 = i6 | 0; 33062 i1 = i1 | 0; 33063 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0; 33064 i2 = STACKTOP; 33065 HEAP32[i6 >> 2] = 0; 33066 i3 = i6 + 4 | 0; 33067 i5 = 1712; 33068 while (1) { 33069 i7 = _fgetc(HEAP32[i3 >> 2] | 0) | 0; 33070 if ((i7 | 0) == -1) { 33071 i4 = 3; 33072 break; 33073 } 33074 i8 = i5 + 1 | 0; 33075 if ((i7 | 0) != (HEAPU8[i5] | 0)) { 33076 break; 33077 } 33078 i5 = HEAP32[i6 >> 2] | 0; 33079 HEAP32[i6 >> 2] = i5 + 1; 33080 HEAP8[i6 + i5 + 8 | 0] = i7; 33081 if ((HEAP8[i8] | 0) == 0) { 33082 i4 = 6; 33083 break; 33084 } else { 33085 i5 = i8; 33086 } 33087 } 33088 if ((i4 | 0) == 3) { 33089 HEAP32[i1 >> 2] = -1; 33090 i8 = 0; 33091 STACKTOP = i2; 33092 return i8 | 0; 33093 } else if ((i4 | 0) == 6) { 33094 HEAP32[i6 >> 2] = 0; 33095 i7 = _fgetc(HEAP32[i3 >> 2] | 0) | 0; 33096 } 33097 HEAP32[i1 >> 2] = i7; 33098 if ((i7 | 0) != 35) { 33099 i8 = 0; 33100 STACKTOP = i2; 33101 return i8 | 0; 33102 } 33103 do { 33104 i8 = _fgetc(HEAP32[i3 >> 2] | 0) | 0; 33105 } while (!((i8 | 0) == 10 | (i8 | 0) == -1)); 33106 HEAP32[i1 >> 2] = _fgetc(HEAP32[i3 >> 2] | 0) | 0; 33107 i8 = 1; 33108 STACKTOP = i2; 33109 return i8 | 0; 33110 } 33111 function _lua_isnumber(i4, i6) { 33112 i4 = i4 | 0; 33113 i6 = i6 | 0; 33114 var i1 = 0, i2 = 0, i3 = 0, i5 = 0; 33115 i1 = STACKTOP; 33116 STACKTOP = STACKTOP + 16 | 0; 33117 i2 = i1; 33118 i5 = HEAP32[i4 + 16 >> 2] | 0; 33119 do { 33120 if ((i6 | 0) <= 0) { 33121 if (!((i6 | 0) < -1000999)) { 33122 i3 = (HEAP32[i4 + 8 >> 2] | 0) + (i6 << 4) | 0; 33123 break; 33124 } 33125 if ((i6 | 0) == -1001e3) { 33126 i3 = (HEAP32[i4 + 12 >> 2] | 0) + 40 | 0; 33127 break; 33128 } 33129 i4 = -1001e3 - i6 | 0; 33130 i5 = HEAP32[i5 >> 2] | 0; 33131 if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i5 >> 2] | 0, (i4 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) { 33132 i3 = i3 + (i4 + -1 << 4) + 16 | 0; 33133 } else { 33134 i3 = 5192; 33135 } 33136 } else { 33137 i3 = (HEAP32[i5 >> 2] | 0) + (i6 << 4) | 0; 33138 i3 = i3 >>> 0 < (HEAP32[i4 + 8 >> 2] | 0) >>> 0 ? i3 : 5192; 33139 } 33140 } while (0); 33141 if ((HEAP32[i3 + 8 >> 2] | 0) == 3) { 33142 i6 = 1; 33143 i6 = i6 & 1; 33144 STACKTOP = i1; 33145 return i6 | 0; 33146 } 33147 i6 = (_luaV_tonumber(i3, i2) | 0) != 0; 33148 i6 = i6 & 1; 33149 STACKTOP = i1; 33150 return i6 | 0; 33151 } 33152 function ___shgetc(i3) { 33153 i3 = i3 | 0; 33154 var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0; 33155 i2 = STACKTOP; 33156 i7 = i3 + 104 | 0; 33157 i6 = HEAP32[i7 >> 2] | 0; 33158 if (!((i6 | 0) != 0 ? (HEAP32[i3 + 108 >> 2] | 0) >= (i6 | 0) : 0)) { 33159 i8 = 3; 33160 } 33161 if ((i8 | 0) == 3 ? (i1 = ___uflow(i3) | 0, (i1 | 0) >= 0) : 0) { 33162 i7 = HEAP32[i7 >> 2] | 0; 33163 i6 = HEAP32[i3 + 8 >> 2] | 0; 33164 if ((i7 | 0) != 0 ? (i4 = HEAP32[i3 + 4 >> 2] | 0, i5 = i7 - (HEAP32[i3 + 108 >> 2] | 0) + -1 | 0, (i6 - i4 | 0) > (i5 | 0)) : 0) { 33165 HEAP32[i3 + 100 >> 2] = i4 + i5; 33166 } else { 33167 HEAP32[i3 + 100 >> 2] = i6; 33168 } 33169 i4 = HEAP32[i3 + 4 >> 2] | 0; 33170 if ((i6 | 0) != 0) { 33171 i8 = i3 + 108 | 0; 33172 HEAP32[i8 >> 2] = i6 + 1 - i4 + (HEAP32[i8 >> 2] | 0); 33173 } 33174 i3 = i4 + -1 | 0; 33175 if ((HEAPU8[i3] | 0 | 0) == (i1 | 0)) { 33176 i8 = i1; 33177 STACKTOP = i2; 33178 return i8 | 0; 33179 } 33180 HEAP8[i3] = i1; 33181 i8 = i1; 33182 STACKTOP = i2; 33183 return i8 | 0; 33184 } 33185 HEAP32[i3 + 100 >> 2] = 0; 33186 i8 = -1; 33187 STACKTOP = i2; 33188 return i8 | 0; 33189 } 33190 function _lua_type(i2, i4) { 33191 i2 = i2 | 0; 33192 i4 = i4 | 0; 33193 var i1 = 0, i3 = 0; 33194 i1 = STACKTOP; 33195 i3 = HEAP32[i2 + 16 >> 2] | 0; 33196 do { 33197 if ((i4 | 0) <= 0) { 33198 if (!((i4 | 0) < -1000999)) { 33199 i2 = (HEAP32[i2 + 8 >> 2] | 0) + (i4 << 4) | 0; 33200 break; 33201 } 33202 if ((i4 | 0) == -1001e3) { 33203 i2 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0; 33204 break; 33205 } 33206 i2 = -1001e3 - i4 | 0; 33207 i3 = HEAP32[i3 >> 2] | 0; 33208 if ((HEAP32[i3 + 8 >> 2] | 0) == 22) { 33209 i4 = -1; 33210 STACKTOP = i1; 33211 return i4 | 0; 33212 } 33213 i3 = HEAP32[i3 >> 2] | 0; 33214 if ((i2 | 0) > (HEAPU8[i3 + 6 | 0] | 0 | 0)) { 33215 i4 = -1; 33216 STACKTOP = i1; 33217 return i4 | 0; 33218 } else { 33219 i2 = i3 + (i2 + -1 << 4) + 16 | 0; 33220 break; 33221 } 33222 } else { 33223 i3 = (HEAP32[i3 >> 2] | 0) + (i4 << 4) | 0; 33224 i2 = i3 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i3 : 5192; 33225 } 33226 } while (0); 33227 if ((i2 | 0) == 5192) { 33228 i4 = -1; 33229 STACKTOP = i1; 33230 return i4 | 0; 33231 } 33232 i4 = HEAP32[i2 + 8 >> 2] & 15; 33233 STACKTOP = i1; 33234 return i4 | 0; 33235 } 33236 function _g_iofile(i4, i1, i5) { 33237 i4 = i4 | 0; 33238 i1 = i1 | 0; 33239 i5 = i5 | 0; 33240 var i2 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0; 33241 i2 = STACKTOP; 33242 STACKTOP = STACKTOP + 16 | 0; 33243 i3 = i2; 33244 if ((_lua_type(i4, 1) | 0) < 1) { 33245 _lua_getfield(i4, -1001e3, i1); 33246 STACKTOP = i2; 33247 return; 33248 } 33249 i6 = _lua_tolstring(i4, 1, 0) | 0; 33250 if ((i6 | 0) != 0) { 33251 i7 = _lua_newuserdata(i4, 8) | 0; 33252 i8 = i7 + 4 | 0; 33253 HEAP32[i8 >> 2] = 0; 33254 _luaL_setmetatable(i4, 2832); 33255 HEAP32[i7 >> 2] = 0; 33256 HEAP32[i8 >> 2] = 156; 33257 i5 = _fopen(i6 | 0, i5 | 0) | 0; 33258 HEAP32[i7 >> 2] = i5; 33259 if ((i5 | 0) == 0) { 33260 i8 = _strerror(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0; 33261 HEAP32[i3 >> 2] = i6; 33262 HEAP32[i3 + 4 >> 2] = i8; 33263 _luaL_error(i4, 3520, i3) | 0; 33264 } 33265 } else { 33266 if ((HEAP32[(_luaL_checkudata(i4, 1, 2832) | 0) + 4 >> 2] | 0) == 0) { 33267 _luaL_error(i4, 3080, i3) | 0; 33268 } 33269 _lua_pushvalue(i4, 1); 33270 } 33271 _lua_setfield(i4, -1001e3, i1); 33272 _lua_getfield(i4, -1001e3, i1); 33273 STACKTOP = i2; 33274 return; 33275 } 33276 function _lua_getlocal(i4, i5, i2) { 33277 i4 = i4 | 0; 33278 i5 = i5 | 0; 33279 i2 = i2 | 0; 33280 var i1 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0; 33281 i1 = STACKTOP; 33282 STACKTOP = STACKTOP + 16 | 0; 33283 i3 = i1; 33284 if ((i5 | 0) == 0) { 33285 i3 = HEAP32[i4 + 8 >> 2] | 0; 33286 if ((HEAP32[i3 + -8 >> 2] | 0) != 70) { 33287 i5 = 0; 33288 STACKTOP = i1; 33289 return i5 | 0; 33290 } 33291 i5 = _luaF_getlocalname(HEAP32[(HEAP32[i3 + -16 >> 2] | 0) + 12 >> 2] | 0, i2, 0) | 0; 33292 STACKTOP = i1; 33293 return i5 | 0; 33294 } else { 33295 HEAP32[i3 >> 2] = 0; 33296 i2 = _findlocal(i4, HEAP32[i5 + 96 >> 2] | 0, i2, i3) | 0; 33297 if ((i2 | 0) == 0) { 33298 i5 = 0; 33299 STACKTOP = i1; 33300 return i5 | 0; 33301 } 33302 i3 = HEAP32[i3 >> 2] | 0; 33303 i5 = i4 + 8 | 0; 33304 i4 = HEAP32[i5 >> 2] | 0; 33305 i8 = i3; 33306 i7 = HEAP32[i8 + 4 >> 2] | 0; 33307 i6 = i4; 33308 HEAP32[i6 >> 2] = HEAP32[i8 >> 2]; 33309 HEAP32[i6 + 4 >> 2] = i7; 33310 HEAP32[i4 + 8 >> 2] = HEAP32[i3 + 8 >> 2]; 33311 HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + 16; 33312 i5 = i2; 33313 STACKTOP = i1; 33314 return i5 | 0; 33315 } 33316 return 0; 33317 } 33318 function _lua_checkstack(i7, i4) { 33319 i7 = i7 | 0; 33320 i4 = i4 | 0; 33321 var i1 = 0, i2 = 0, i3 = 0, i5 = 0, i6 = 0, i8 = 0; 33322 i1 = STACKTOP; 33323 STACKTOP = STACKTOP + 16 | 0; 33324 i3 = i1; 33325 HEAP32[i3 >> 2] = i4; 33326 i2 = HEAP32[i7 + 16 >> 2] | 0; 33327 i5 = i7 + 8 | 0; 33328 i6 = HEAP32[i5 >> 2] | 0; 33329 i8 = i6; 33330 do { 33331 if (((HEAP32[i7 + 24 >> 2] | 0) - i8 >> 4 | 0) <= (i4 | 0)) { 33332 if (((i8 - (HEAP32[i7 + 28 >> 2] | 0) >> 4) + 5 | 0) > (1e6 - i4 | 0)) { 33333 i8 = 0; 33334 STACKTOP = i1; 33335 return i8 | 0; 33336 } 33337 i6 = (_luaD_rawrunprotected(i7, 2, i3) | 0) == 0; 33338 if (i6) { 33339 i5 = HEAP32[i5 >> 2] | 0; 33340 i4 = HEAP32[i3 >> 2] | 0; 33341 i3 = i6 & 1; 33342 break; 33343 } else { 33344 i8 = 0; 33345 STACKTOP = i1; 33346 return i8 | 0; 33347 } 33348 } else { 33349 i5 = i6; 33350 i3 = 1; 33351 } 33352 } while (0); 33353 i2 = i2 + 4 | 0; 33354 i4 = i5 + (i4 << 4) | 0; 33355 if (!((HEAP32[i2 >> 2] | 0) >>> 0 < i4 >>> 0)) { 33356 i8 = i3; 33357 STACKTOP = i1; 33358 return i8 | 0; 33359 } 33360 HEAP32[i2 >> 2] = i4; 33361 i8 = i3; 33362 STACKTOP = i1; 33363 return i8 | 0; 33364 } 33365 function _luaK_exp2nextreg(i1, i3) { 33366 i1 = i1 | 0; 33367 i3 = i3 | 0; 33368 var i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0; 33369 i2 = STACKTOP; 33370 _luaK_dischargevars(i1, i3); 33371 if (((HEAP32[i3 >> 2] | 0) == 6 ? (i4 = HEAP32[i3 + 8 >> 2] | 0, (i4 & 256 | 0) == 0) : 0) ? (HEAPU8[i1 + 46 | 0] | 0 | 0) <= (i4 | 0) : 0) { 33372 i7 = i1 + 48 | 0; 33373 HEAP8[i7] = (HEAP8[i7] | 0) + -1 << 24 >> 24; 33374 } 33375 i4 = i1 + 48 | 0; 33376 i5 = HEAP8[i4] | 0; 33377 i6 = (i5 & 255) + 1 | 0; 33378 i7 = (HEAP32[i1 >> 2] | 0) + 78 | 0; 33379 if (!(i6 >>> 0 > (HEAPU8[i7] | 0) >>> 0)) { 33380 i7 = i5; 33381 i7 = i7 & 255; 33382 i7 = i7 + 1 | 0; 33383 i6 = i7 & 255; 33384 HEAP8[i4] = i6; 33385 i7 = i7 & 255; 33386 i7 = i7 + -1 | 0; 33387 _exp2reg(i1, i3, i7); 33388 STACKTOP = i2; 33389 return; 33390 } 33391 if (i6 >>> 0 > 249) { 33392 _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10536); 33393 } 33394 HEAP8[i7] = i6; 33395 i7 = HEAP8[i4] | 0; 33396 i7 = i7 & 255; 33397 i7 = i7 + 1 | 0; 33398 i6 = i7 & 255; 33399 HEAP8[i4] = i6; 33400 i7 = i7 & 255; 33401 i7 = i7 + -1 | 0; 33402 _exp2reg(i1, i3, i7); 33403 STACKTOP = i2; 33404 return; 33405 } 33406 function _lua_next(i2, i4) { 33407 i2 = i2 | 0; 33408 i4 = i4 | 0; 33409 var i1 = 0, i3 = 0, i5 = 0; 33410 i1 = STACKTOP; 33411 i5 = HEAP32[i2 + 16 >> 2] | 0; 33412 do { 33413 if ((i4 | 0) <= 0) { 33414 if (!((i4 | 0) < -1000999)) { 33415 i4 = (HEAP32[i2 + 8 >> 2] | 0) + (i4 << 4) | 0; 33416 break; 33417 } 33418 if ((i4 | 0) == -1001e3) { 33419 i4 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0; 33420 break; 33421 } 33422 i4 = -1001e3 - i4 | 0; 33423 i5 = HEAP32[i5 >> 2] | 0; 33424 if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i5 >> 2] | 0, (i4 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) { 33425 i4 = i3 + (i4 + -1 << 4) + 16 | 0; 33426 } else { 33427 i4 = 5192; 33428 } 33429 } else { 33430 i3 = (HEAP32[i5 >> 2] | 0) + (i4 << 4) | 0; 33431 i4 = i3 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i3 : 5192; 33432 } 33433 } while (0); 33434 i3 = i2 + 8 | 0; 33435 i2 = _luaH_next(i2, HEAP32[i4 >> 2] | 0, (HEAP32[i3 >> 2] | 0) + -16 | 0) | 0; 33436 i4 = HEAP32[i3 >> 2] | 0; 33437 HEAP32[i3 >> 2] = (i2 | 0) == 0 ? i4 + -16 | 0 : i4 + 16 | 0; 33438 STACKTOP = i1; 33439 return i2 | 0; 33440 } 33441 function _inclinenumber(i1) { 33442 i1 = i1 | 0; 33443 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0; 33444 i2 = STACKTOP; 33445 i4 = HEAP32[i1 >> 2] | 0; 33446 i3 = i1 + 56 | 0; 33447 i5 = HEAP32[i3 >> 2] | 0; 33448 i6 = HEAP32[i5 >> 2] | 0; 33449 HEAP32[i5 >> 2] = i6 + -1; 33450 if ((i6 | 0) == 0) { 33451 i5 = _luaZ_fill(i5) | 0; 33452 } else { 33453 i6 = i5 + 4 | 0; 33454 i5 = HEAP32[i6 >> 2] | 0; 33455 HEAP32[i6 >> 2] = i5 + 1; 33456 i5 = HEAPU8[i5] | 0; 33457 } 33458 HEAP32[i1 >> 2] = i5; 33459 if ((i5 | 0) == 13 | (i5 | 0) == 10 ? (i5 | 0) != (i4 | 0) : 0) { 33460 i3 = HEAP32[i3 >> 2] | 0; 33461 i6 = HEAP32[i3 >> 2] | 0; 33462 HEAP32[i3 >> 2] = i6 + -1; 33463 if ((i6 | 0) == 0) { 33464 i3 = _luaZ_fill(i3) | 0; 33465 } else { 33466 i6 = i3 + 4 | 0; 33467 i3 = HEAP32[i6 >> 2] | 0; 33468 HEAP32[i6 >> 2] = i3 + 1; 33469 i3 = HEAPU8[i3] | 0; 33470 } 33471 HEAP32[i1 >> 2] = i3; 33472 } 33473 i5 = i1 + 4 | 0; 33474 i6 = HEAP32[i5 >> 2] | 0; 33475 HEAP32[i5 >> 2] = i6 + 1; 33476 if ((i6 | 0) > 2147483643) { 33477 _luaX_syntaxerror(i1, 12560); 33478 } else { 33479 STACKTOP = i2; 33480 return; 33481 } 33482 } 33483 function _lua_yieldk(i5, i6, i1, i7) { 33484 i5 = i5 | 0; 33485 i6 = i6 | 0; 33486 i1 = i1 | 0; 33487 i7 = i7 | 0; 33488 var i2 = 0, i3 = 0, i4 = 0; 33489 i2 = STACKTOP; 33490 STACKTOP = STACKTOP + 16 | 0; 33491 i4 = i2; 33492 i3 = HEAP32[i5 + 16 >> 2] | 0; 33493 if ((HEAP16[i5 + 36 >> 1] | 0) != 0) { 33494 if ((HEAP32[(HEAP32[i5 + 12 >> 2] | 0) + 172 >> 2] | 0) == (i5 | 0)) { 33495 _luaG_runerror(i5, 2312, i4); 33496 } else { 33497 _luaG_runerror(i5, 2264, i4); 33498 } 33499 } 33500 HEAP8[i5 + 6 | 0] = 1; 33501 HEAP32[i3 + 20 >> 2] = (HEAP32[i3 >> 2] | 0) - (HEAP32[i5 + 28 >> 2] | 0); 33502 if (!((HEAP8[i3 + 18 | 0] & 1) == 0)) { 33503 STACKTOP = i2; 33504 return 0; 33505 } 33506 HEAP32[i3 + 28 >> 2] = i7; 33507 if ((i7 | 0) == 0) { 33508 i4 = i5 + 8 | 0; 33509 i4 = HEAP32[i4 >> 2] | 0; 33510 i7 = ~i6; 33511 i7 = i4 + (i7 << 4) | 0; 33512 HEAP32[i3 >> 2] = i7; 33513 _luaD_throw(i5, 1); 33514 } 33515 HEAP32[i3 + 24 >> 2] = i1; 33516 i4 = i5 + 8 | 0; 33517 i4 = HEAP32[i4 >> 2] | 0; 33518 i7 = ~i6; 33519 i7 = i4 + (i7 << 4) | 0; 33520 HEAP32[i3 >> 2] = i7; 33521 _luaD_throw(i5, 1); 33522 return 0; 33523 } 33524 function _luaH_getint(i4, i6) { 33525 i4 = i4 | 0; 33526 i6 = i6 | 0; 33527 var i1 = 0, i2 = 0, d3 = 0.0, i5 = 0, i7 = 0; 33528 i1 = STACKTOP; 33529 STACKTOP = STACKTOP + 16 | 0; 33530 i5 = i1; 33531 i7 = i6 + -1 | 0; 33532 if (i7 >>> 0 < (HEAP32[i4 + 28 >> 2] | 0) >>> 0) { 33533 i7 = (HEAP32[i4 + 12 >> 2] | 0) + (i7 << 4) | 0; 33534 STACKTOP = i1; 33535 return i7 | 0; 33536 } 33537 d3 = +(i6 | 0); 33538 HEAPF64[i5 >> 3] = d3 + 1.0; 33539 i5 = (HEAP32[i5 + 4 >> 2] | 0) + (HEAP32[i5 >> 2] | 0) | 0; 33540 if ((i5 | 0) < 0) { 33541 i6 = 0 - i5 | 0; 33542 i5 = (i5 | 0) == (i6 | 0) ? 0 : i6; 33543 } 33544 i4 = (HEAP32[i4 + 16 >> 2] | 0) + (((i5 | 0) % ((1 << (HEAPU8[i4 + 7 | 0] | 0)) + -1 | 1 | 0) | 0) << 5) | 0; 33545 while (1) { 33546 if ((HEAP32[i4 + 24 >> 2] | 0) == 3 ? +HEAPF64[i4 + 16 >> 3] == d3 : 0) { 33547 break; 33548 } 33549 i4 = HEAP32[i4 + 28 >> 2] | 0; 33550 if ((i4 | 0) == 0) { 33551 i4 = 5192; 33552 i2 = 10; 33553 break; 33554 } 33555 } 33556 if ((i2 | 0) == 10) { 33557 STACKTOP = i1; 33558 return i4 | 0; 33559 } 33560 i7 = i4; 33561 STACKTOP = i1; 33562 return i7 | 0; 33563 } 33564 function _luaL_checkversion_(i1, d4) { 33565 i1 = i1 | 0; 33566 d4 = +d4; 33567 var i2 = 0, i3 = 0, i5 = 0, d6 = 0.0; 33568 i2 = STACKTOP; 33569 STACKTOP = STACKTOP + 16 | 0; 33570 i3 = i2; 33571 i5 = _lua_version(i1) | 0; 33572 if ((i5 | 0) == (_lua_version(0) | 0)) { 33573 d6 = +HEAPF64[i5 >> 3]; 33574 if (d6 != d4) { 33575 HEAPF64[tempDoublePtr >> 3] = d4; 33576 HEAP32[i3 >> 2] = HEAP32[tempDoublePtr >> 2]; 33577 HEAP32[i3 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2]; 33578 i5 = i3 + 8 | 0; 33579 HEAPF64[tempDoublePtr >> 3] = d6; 33580 HEAP32[i5 >> 2] = HEAP32[tempDoublePtr >> 2]; 33581 HEAP32[i5 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2]; 33582 _luaL_error(i1, 1528, i3) | 0; 33583 } 33584 } else { 33585 _luaL_error(i1, 1496, i3) | 0; 33586 } 33587 _lua_pushnumber(i1, -4660.0); 33588 if ((_lua_tointegerx(i1, -1, 0) | 0) == -4660 ? (_lua_tounsignedx(i1, -1, 0) | 0) == -4660 : 0) { 33589 _lua_settop(i1, -2); 33590 STACKTOP = i2; 33591 return; 33592 } 33593 _luaL_error(i1, 1584, i3) | 0; 33594 _lua_settop(i1, -2); 33595 STACKTOP = i2; 33596 return; 33597 } 33598 function _math_random(i1) { 33599 i1 = i1 | 0; 33600 var i2 = 0, d3 = 0.0, i4 = 0, i5 = 0, d6 = 0.0, d7 = 0.0; 33601 i2 = STACKTOP; 33602 STACKTOP = STACKTOP + 16 | 0; 33603 i4 = i2; 33604 d3 = +((_rand() | 0) % 2147483647 | 0 | 0) / 2147483647.0; 33605 i5 = _lua_gettop(i1) | 0; 33606 if ((i5 | 0) == 0) { 33607 _lua_pushnumber(i1, d3); 33608 i5 = 1; 33609 STACKTOP = i2; 33610 return i5 | 0; 33611 } else if ((i5 | 0) == 1) { 33612 d6 = +_luaL_checknumber(i1, 1); 33613 if (!(d6 >= 1.0)) { 33614 _luaL_argerror(i1, 1, 4056) | 0; 33615 } 33616 _lua_pushnumber(i1, +Math_floor(+(d3 * d6)) + 1.0); 33617 i5 = 1; 33618 STACKTOP = i2; 33619 return i5 | 0; 33620 } else if ((i5 | 0) == 2) { 33621 d6 = +_luaL_checknumber(i1, 1); 33622 d7 = +_luaL_checknumber(i1, 2); 33623 if (!(d6 <= d7)) { 33624 _luaL_argerror(i1, 2, 4056) | 0; 33625 } 33626 _lua_pushnumber(i1, d6 + +Math_floor(+(d3 * (d7 - d6 + 1.0)))); 33627 i5 = 1; 33628 STACKTOP = i2; 33629 return i5 | 0; 33630 } else { 33631 i5 = _luaL_error(i1, 4080, i4) | 0; 33632 STACKTOP = i2; 33633 return i5 | 0; 33634 } 33635 return 0; 33636 } 33637 function _push_onecapture(i2, i3, i4, i6) { 33638 i2 = i2 | 0; 33639 i3 = i3 | 0; 33640 i4 = i4 | 0; 33641 i6 = i6 | 0; 33642 var i1 = 0, i5 = 0; 33643 i1 = STACKTOP; 33644 STACKTOP = STACKTOP + 16 | 0; 33645 i5 = i1; 33646 if ((HEAP32[i2 + 20 >> 2] | 0) <= (i3 | 0)) { 33647 i2 = HEAP32[i2 + 16 >> 2] | 0; 33648 if ((i3 | 0) == 0) { 33649 _lua_pushlstring(i2, i4, i6 - i4 | 0) | 0; 33650 STACKTOP = i1; 33651 return; 33652 } else { 33653 _luaL_error(i2, 7224, i5) | 0; 33654 STACKTOP = i1; 33655 return; 33656 } 33657 } 33658 i4 = HEAP32[i2 + (i3 << 3) + 28 >> 2] | 0; 33659 if (!((i4 | 0) == -1)) { 33660 i5 = HEAP32[i2 + 16 >> 2] | 0; 33661 i3 = HEAP32[i2 + (i3 << 3) + 24 >> 2] | 0; 33662 if ((i4 | 0) == -2) { 33663 _lua_pushinteger(i5, i3 + 1 - (HEAP32[i2 + 4 >> 2] | 0) | 0); 33664 STACKTOP = i1; 33665 return; 33666 } 33667 } else { 33668 i6 = i2 + 16 | 0; 33669 _luaL_error(HEAP32[i6 >> 2] | 0, 7248, i5) | 0; 33670 i5 = HEAP32[i6 >> 2] | 0; 33671 i3 = HEAP32[i2 + (i3 << 3) + 24 >> 2] | 0; 33672 } 33673 _lua_pushlstring(i5, i3, i4) | 0; 33674 STACKTOP = i1; 33675 return; 33676 } 33677 function _luaK_nil(i7, i6, i5) { 33678 i7 = i7 | 0; 33679 i6 = i6 | 0; 33680 i5 = i5 | 0; 33681 var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0; 33682 i2 = STACKTOP; 33683 i9 = i5 + i6 | 0; 33684 i1 = i9 + -1 | 0; 33685 i10 = HEAP32[i7 + 20 >> 2] | 0; 33686 do { 33687 if ((i10 | 0) > (HEAP32[i7 + 24 >> 2] | 0) ? (i4 = (HEAP32[(HEAP32[i7 >> 2] | 0) + 12 >> 2] | 0) + (i10 + -1 << 2) | 0, i3 = HEAP32[i4 >> 2] | 0, (i3 & 63 | 0) == 4) : 0) { 33688 i11 = i3 >>> 6 & 255; 33689 i10 = i11 + (i3 >>> 23) | 0; 33690 if (!((i11 | 0) <= (i6 | 0) ? (i10 + 1 | 0) >= (i6 | 0) : 0)) { 33691 i8 = 5; 33692 } 33693 if ((i8 | 0) == 5 ? (i11 | 0) < (i6 | 0) | (i11 | 0) > (i9 | 0) : 0) { 33694 break; 33695 } 33696 i5 = (i11 | 0) < (i6 | 0) ? i11 : i6; 33697 HEAP32[i4 >> 2] = ((i10 | 0) > (i1 | 0) ? i10 : i1) - i5 << 23 | i5 << 6 & 16320 | i3 & 8372287; 33698 STACKTOP = i2; 33699 return; 33700 } 33701 } while (0); 33702 _luaK_code(i7, i6 << 6 | (i5 << 23) + -8388608 | 4) | 0; 33703 STACKTOP = i2; 33704 return; 33705 } 33706 function _lua_settable(i1, i5) { 33707 i1 = i1 | 0; 33708 i5 = i5 | 0; 33709 var i2 = 0, i3 = 0, i4 = 0; 33710 i2 = STACKTOP; 33711 i4 = HEAP32[i1 + 16 >> 2] | 0; 33712 do { 33713 if ((i5 | 0) <= 0) { 33714 if (!((i5 | 0) < -1000999)) { 33715 i3 = (HEAP32[i1 + 8 >> 2] | 0) + (i5 << 4) | 0; 33716 break; 33717 } 33718 if ((i5 | 0) == -1001e3) { 33719 i3 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0; 33720 break; 33721 } 33722 i5 = -1001e3 - i5 | 0; 33723 i4 = HEAP32[i4 >> 2] | 0; 33724 if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i4 >> 2] | 0, (i5 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) { 33725 i3 = i3 + (i5 + -1 << 4) + 16 | 0; 33726 } else { 33727 i3 = 5192; 33728 } 33729 } else { 33730 i3 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0; 33731 i3 = i3 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i3 : 5192; 33732 } 33733 } while (0); 33734 i5 = i1 + 8 | 0; 33735 i4 = HEAP32[i5 >> 2] | 0; 33736 _luaV_settable(i1, i3, i4 + -32 | 0, i4 + -16 | 0); 33737 HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + -32; 33738 STACKTOP = i2; 33739 return; 33740 } 33741 function _luaL_findtable(i3, i6, i5, i4) { 33742 i3 = i3 | 0; 33743 i6 = i6 | 0; 33744 i5 = i5 | 0; 33745 i4 = i4 | 0; 33746 var i1 = 0, i2 = 0, i7 = 0; 33747 i2 = STACKTOP; 33748 if ((i6 | 0) != 0) { 33749 _lua_pushvalue(i3, i6); 33750 } 33751 while (1) { 33752 i6 = _strchr(i5, 46) | 0; 33753 if ((i6 | 0) == 0) { 33754 i6 = i5 + (_strlen(i5 | 0) | 0) | 0; 33755 } 33756 i7 = i6 - i5 | 0; 33757 _lua_pushlstring(i3, i5, i7) | 0; 33758 _lua_rawget(i3, -2); 33759 if ((_lua_type(i3, -1) | 0) != 0) { 33760 if ((_lua_type(i3, -1) | 0) != 5) { 33761 break; 33762 } 33763 } else { 33764 _lua_settop(i3, -2); 33765 _lua_createtable(i3, 0, (HEAP8[i6] | 0) == 46 ? 1 : i4); 33766 _lua_pushlstring(i3, i5, i7) | 0; 33767 _lua_pushvalue(i3, -2); 33768 _lua_settable(i3, -4); 33769 } 33770 _lua_remove(i3, -2); 33771 if ((HEAP8[i6] | 0) == 46) { 33772 i5 = i6 + 1 | 0; 33773 } else { 33774 i3 = 0; 33775 i1 = 10; 33776 break; 33777 } 33778 } 33779 if ((i1 | 0) == 10) { 33780 STACKTOP = i2; 33781 return i3 | 0; 33782 } 33783 _lua_settop(i3, -3); 33784 i7 = i5; 33785 STACKTOP = i2; 33786 return i7 | 0; 33787 } 33788 function _luaD_call(i1, i4, i5, i8) { 33789 i1 = i1 | 0; 33790 i4 = i4 | 0; 33791 i5 = i5 | 0; 33792 i8 = i8 | 0; 33793 var i2 = 0, i3 = 0, i6 = 0, i7 = 0; 33794 i3 = STACKTOP; 33795 STACKTOP = STACKTOP + 16 | 0; 33796 i7 = i3; 33797 i2 = i1 + 38 | 0; 33798 i6 = (HEAP16[i2 >> 1] | 0) + 1 << 16 >> 16; 33799 HEAP16[i2 >> 1] = i6; 33800 if ((i6 & 65535) > 199) { 33801 if (i6 << 16 >> 16 == 200) { 33802 _luaG_runerror(i1, 2240, i7); 33803 } 33804 if ((i6 & 65535) > 224) { 33805 _luaD_throw(i1, 6); 33806 } 33807 } 33808 i6 = (i8 | 0) != 0; 33809 if (!i6) { 33810 i8 = i1 + 36 | 0; 33811 HEAP16[i8 >> 1] = (HEAP16[i8 >> 1] | 0) + 1 << 16 >> 16; 33812 } 33813 if ((_luaD_precall(i1, i4, i5) | 0) == 0) { 33814 _luaV_execute(i1); 33815 } 33816 if (i6) { 33817 i8 = HEAP16[i2 >> 1] | 0; 33818 i8 = i8 + -1 << 16 >> 16; 33819 HEAP16[i2 >> 1] = i8; 33820 STACKTOP = i3; 33821 return; 33822 } 33823 i8 = i1 + 36 | 0; 33824 HEAP16[i8 >> 1] = (HEAP16[i8 >> 1] | 0) + -1 << 16 >> 16; 33825 i8 = HEAP16[i2 >> 1] | 0; 33826 i8 = i8 + -1 << 16 >> 16; 33827 HEAP16[i2 >> 1] = i8; 33828 STACKTOP = i3; 33829 return; 33830 } 33831 function _pushline(i6, i1) { 33832 i6 = i6 | 0; 33833 i1 = i1 | 0; 33834 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0; 33835 i2 = STACKTOP; 33836 STACKTOP = STACKTOP + 528 | 0; 33837 i4 = i2; 33838 i3 = i2 + 8 | 0; 33839 i7 = (i1 | 0) != 0; 33840 _lua_getglobal(i6, i7 ? 288 : 296); 33841 i8 = _lua_tolstring(i6, -1, 0) | 0; 33842 if ((i8 | 0) == 0) { 33843 i8 = i7 ? 312 : 320; 33844 } 33845 i7 = HEAP32[_stdout >> 2] | 0; 33846 _fputs(i8 | 0, i7 | 0) | 0; 33847 _fflush(i7 | 0) | 0; 33848 i8 = (_fgets(i3 | 0, 512, HEAP32[_stdin >> 2] | 0) | 0) == 0; 33849 _lua_settop(i6, -2); 33850 if (i8) { 33851 i8 = 0; 33852 STACKTOP = i2; 33853 return i8 | 0; 33854 } 33855 i7 = _strlen(i3 | 0) | 0; 33856 if ((i7 | 0) != 0 ? (i5 = i3 + (i7 + -1) | 0, (HEAP8[i5] | 0) == 10) : 0) { 33857 HEAP8[i5] = 0; 33858 } 33859 if ((i1 | 0) != 0 ? (HEAP8[i3] | 0) == 61 : 0) { 33860 HEAP32[i4 >> 2] = i3 + 1; 33861 _lua_pushfstring(i6, 272, i4) | 0; 33862 i8 = 1; 33863 STACKTOP = i2; 33864 return i8 | 0; 33865 } 33866 _lua_pushstring(i6, i3) | 0; 33867 i8 = 1; 33868 STACKTOP = i2; 33869 return i8 | 0; 33870 } 33871 function _db_getlocal(i1) { 33872 i1 = i1 | 0; 33873 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0; 33874 i2 = STACKTOP; 33875 STACKTOP = STACKTOP + 112 | 0; 33876 i4 = i2; 33877 if ((_lua_type(i1, 1) | 0) == 8) { 33878 i3 = _lua_tothread(i1, 1) | 0; 33879 i6 = 1; 33880 } else { 33881 i3 = i1; 33882 i6 = 0; 33883 } 33884 i5 = _luaL_checkinteger(i1, i6 | 2) | 0; 33885 i6 = i6 + 1 | 0; 33886 if ((_lua_type(i1, i6) | 0) == 6) { 33887 _lua_pushvalue(i1, i6); 33888 _lua_pushstring(i1, _lua_getlocal(i1, 0, i5) | 0) | 0; 33889 i6 = 1; 33890 STACKTOP = i2; 33891 return i6 | 0; 33892 } 33893 if ((_lua_getstack(i3, _luaL_checkinteger(i1, i6) | 0, i4) | 0) == 0) { 33894 i6 = _luaL_argerror(i1, i6, 11560) | 0; 33895 STACKTOP = i2; 33896 return i6 | 0; 33897 } 33898 i4 = _lua_getlocal(i3, i4, i5) | 0; 33899 if ((i4 | 0) == 0) { 33900 _lua_pushnil(i1); 33901 i6 = 1; 33902 STACKTOP = i2; 33903 return i6 | 0; 33904 } else { 33905 _lua_xmove(i3, i1, 1); 33906 _lua_pushstring(i1, i4) | 0; 33907 _lua_pushvalue(i1, -2); 33908 i6 = 2; 33909 STACKTOP = i2; 33910 return i6 | 0; 33911 } 33912 return 0; 33913 } 33914 function _luaB_print(i1) { 33915 i1 = i1 | 0; 33916 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0; 33917 i3 = STACKTOP; 33918 STACKTOP = STACKTOP + 16 | 0; 33919 i2 = i3; 33920 i4 = i3 + 4 | 0; 33921 i6 = _lua_gettop(i1) | 0; 33922 _lua_getglobal(i1, 9584); 33923 i5 = HEAP32[_stdout >> 2] | 0; 33924 L1 : do { 33925 if ((i6 | 0) >= 1) { 33926 i7 = 1; 33927 while (1) { 33928 _lua_pushvalue(i1, -1); 33929 _lua_pushvalue(i1, i7); 33930 _lua_callk(i1, 1, 1, 0, 0); 33931 i8 = _lua_tolstring(i1, -1, i4) | 0; 33932 if ((i8 | 0) == 0) { 33933 break; 33934 } 33935 if ((i7 | 0) > 1) { 33936 _fputc(9, i5 | 0) | 0; 33937 } 33938 _fwrite(i8 | 0, 1, HEAP32[i4 >> 2] | 0, i5 | 0) | 0; 33939 _lua_settop(i1, -2); 33940 if ((i7 | 0) < (i6 | 0)) { 33941 i7 = i7 + 1 | 0; 33942 } else { 33943 break L1; 33944 } 33945 } 33946 i8 = _luaL_error(i1, 9816, i2) | 0; 33947 STACKTOP = i3; 33948 return i8 | 0; 33949 } 33950 } while (0); 33951 _fputc(10, i5 | 0) | 0; 33952 _fflush(i5 | 0) | 0; 33953 i8 = 0; 33954 STACKTOP = i3; 33955 return i8 | 0; 33956 } 33957 function _luaB_load(i1) { 33958 i1 = i1 | 0; 33959 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0; 33960 i2 = STACKTOP; 33961 STACKTOP = STACKTOP + 16 | 0; 33962 i5 = i2; 33963 i6 = _lua_tolstring(i1, 1, i5) | 0; 33964 i4 = _luaL_optlstring(i1, 3, 9872, 0) | 0; 33965 i3 = (_lua_type(i1, 4) | 0) != -1; 33966 if ((i6 | 0) == 0) { 33967 i6 = _luaL_optlstring(i1, 2, 9880, 0) | 0; 33968 _luaL_checktype(i1, 1, 6); 33969 _lua_settop(i1, 5); 33970 i4 = _lua_load(i1, 3, 0, i6, i4) | 0; 33971 } else { 33972 i7 = _luaL_optlstring(i1, 2, i6, 0) | 0; 33973 i4 = _luaL_loadbufferx(i1, i6, HEAP32[i5 >> 2] | 0, i7, i4) | 0; 33974 } 33975 if ((i4 | 0) != 0) { 33976 _lua_pushnil(i1); 33977 _lua_insert(i1, -2); 33978 i7 = 2; 33979 STACKTOP = i2; 33980 return i7 | 0; 33981 } 33982 if (!i3) { 33983 i7 = 1; 33984 STACKTOP = i2; 33985 return i7 | 0; 33986 } 33987 _lua_pushvalue(i1, i3 ? 4 : 0); 33988 if ((_lua_setupvalue(i1, -2, 1) | 0) != 0) { 33989 i7 = 1; 33990 STACKTOP = i2; 33991 return i7 | 0; 33992 } 33993 _lua_settop(i1, -2); 33994 i7 = 1; 33995 STACKTOP = i2; 33996 return i7 | 0; 33997 } 33998 function _db_debug(i2) { 33999 i2 = i2 | 0; 34000 var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0; 34001 i1 = STACKTOP; 34002 STACKTOP = STACKTOP + 256 | 0; 34003 i6 = i1; 34004 i4 = i1 + 4 | 0; 34005 i3 = HEAP32[_stderr >> 2] | 0; 34006 _fwrite(12040, 11, 1, i3 | 0) | 0; 34007 _fflush(i3 | 0) | 0; 34008 i5 = HEAP32[_stdin >> 2] | 0; 34009 if ((_fgets(i4 | 0, 250, i5 | 0) | 0) == 0) { 34010 STACKTOP = i1; 34011 return 0; 34012 } 34013 while (1) { 34014 if ((_strcmp(i4, 12056) | 0) == 0) { 34015 i2 = 7; 34016 break; 34017 } 34018 if (!((_luaL_loadbufferx(i2, i4, _strlen(i4 | 0) | 0, 12064, 0) | 0) == 0 ? (_lua_pcallk(i2, 0, 0, 0, 0, 0) | 0) == 0 : 0)) { 34019 HEAP32[i6 >> 2] = _lua_tolstring(i2, -1, 0) | 0; 34020 _fprintf(i3 | 0, 12088, i6 | 0) | 0; 34021 _fflush(i3 | 0) | 0; 34022 } 34023 _lua_settop(i2, 0); 34024 _fwrite(12040, 11, 1, i3 | 0) | 0; 34025 _fflush(i3 | 0) | 0; 34026 if ((_fgets(i4 | 0, 250, i5 | 0) | 0) == 0) { 34027 i2 = 7; 34028 break; 34029 } 34030 } 34031 if ((i2 | 0) == 7) { 34032 STACKTOP = i1; 34033 return 0; 34034 } 34035 return 0; 34036 } 34037 function _luaL_prepbuffsize(i2, i7) { 34038 i2 = i2 | 0; 34039 i7 = i7 | 0; 34040 var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0; 34041 i3 = STACKTOP; 34042 STACKTOP = STACKTOP + 16 | 0; 34043 i1 = HEAP32[i2 + 12 >> 2] | 0; 34044 i4 = i2 + 4 | 0; 34045 i8 = HEAP32[i4 >> 2] | 0; 34046 i5 = i2 + 8 | 0; 34047 i6 = HEAP32[i5 >> 2] | 0; 34048 if (!((i8 - i6 | 0) >>> 0 < i7 >>> 0)) { 34049 i7 = HEAP32[i2 >> 2] | 0; 34050 i8 = i6; 34051 i8 = i7 + i8 | 0; 34052 STACKTOP = i3; 34053 return i8 | 0; 34054 } 34055 i8 = i8 << 1; 34056 i8 = (i8 - i6 | 0) >>> 0 < i7 >>> 0 ? i6 + i7 | 0 : i8; 34057 if (i8 >>> 0 < i6 >>> 0 | (i8 - i6 | 0) >>> 0 < i7 >>> 0) { 34058 _luaL_error(i1, 1272, i3) | 0; 34059 } 34060 i6 = _lua_newuserdata(i1, i8) | 0; 34061 _memcpy(i6 | 0, HEAP32[i2 >> 2] | 0, HEAP32[i5 >> 2] | 0) | 0; 34062 if ((HEAP32[i2 >> 2] | 0) != (i2 + 16 | 0)) { 34063 _lua_remove(i1, -2); 34064 } 34065 HEAP32[i2 >> 2] = i6; 34066 HEAP32[i4 >> 2] = i8; 34067 i7 = i6; 34068 i8 = HEAP32[i5 >> 2] | 0; 34069 i8 = i7 + i8 | 0; 34070 STACKTOP = i3; 34071 return i8 | 0; 34072 } 34073 function _luaG_runerror(i1, i5, i4) { 34074 i1 = i1 | 0; 34075 i5 = i5 | 0; 34076 i4 = i4 | 0; 34077 var i2 = 0, i3 = 0, i6 = 0, i7 = 0; 34078 i6 = STACKTOP; 34079 STACKTOP = STACKTOP + 96 | 0; 34080 i2 = i6; 34081 i3 = i6 + 32 | 0; 34082 i6 = i6 + 16 | 0; 34083 HEAP32[i6 >> 2] = i4; 34084 i4 = _luaO_pushvfstring(i1, i5, i6) | 0; 34085 i6 = HEAP32[i1 + 16 >> 2] | 0; 34086 if ((HEAP8[i6 + 18 | 0] & 1) == 0) { 34087 _luaG_errormsg(i1); 34088 } 34089 i5 = HEAP32[(HEAP32[HEAP32[i6 >> 2] >> 2] | 0) + 12 >> 2] | 0; 34090 i7 = HEAP32[i5 + 20 >> 2] | 0; 34091 if ((i7 | 0) == 0) { 34092 i6 = 0; 34093 } else { 34094 i6 = HEAP32[i7 + (((HEAP32[i6 + 28 >> 2] | 0) - (HEAP32[i5 + 12 >> 2] | 0) >> 2) + -1 << 2) >> 2] | 0; 34095 } 34096 i5 = HEAP32[i5 + 36 >> 2] | 0; 34097 if ((i5 | 0) == 0) { 34098 HEAP8[i3] = 63; 34099 HEAP8[i3 + 1 | 0] = 0; 34100 } else { 34101 _luaO_chunkid(i3, i5 + 16 | 0, 60); 34102 } 34103 HEAP32[i2 >> 2] = i3; 34104 HEAP32[i2 + 4 >> 2] = i6; 34105 HEAP32[i2 + 8 >> 2] = i4; 34106 _luaO_pushfstring(i1, 2024, i2) | 0; 34107 _luaG_errormsg(i1); 34108 } 34109 function _db_upvaluejoin(i1) { 34110 i1 = i1 | 0; 34111 var i2 = 0, i3 = 0, i4 = 0, i5 = 0; 34112 i3 = STACKTOP; 34113 STACKTOP = STACKTOP + 112 | 0; 34114 i4 = i3; 34115 i2 = _luaL_checkinteger(i1, 2) | 0; 34116 _luaL_checktype(i1, 1, 6); 34117 _lua_pushvalue(i1, 1); 34118 _lua_getinfo(i1, 11728, i4) | 0; 34119 if (!((i2 | 0) > 0 ? (i2 | 0) <= (HEAPU8[i4 + 32 | 0] | 0 | 0) : 0)) { 34120 _luaL_argerror(i1, 2, 11736) | 0; 34121 } 34122 i5 = _luaL_checkinteger(i1, 4) | 0; 34123 _luaL_checktype(i1, 3, 6); 34124 _lua_pushvalue(i1, 3); 34125 _lua_getinfo(i1, 11728, i4) | 0; 34126 if (!((i5 | 0) > 0 ? (i5 | 0) <= (HEAPU8[i4 + 32 | 0] | 0 | 0) : 0)) { 34127 _luaL_argerror(i1, 4, 11736) | 0; 34128 } 34129 if ((_lua_iscfunction(i1, 1) | 0) != 0) { 34130 _luaL_argerror(i1, 1, 11760) | 0; 34131 } 34132 if ((_lua_iscfunction(i1, 3) | 0) == 0) { 34133 _lua_upvaluejoin(i1, 1, i2, 3, i5); 34134 STACKTOP = i3; 34135 return 0; 34136 } 34137 _luaL_argerror(i1, 3, 11760) | 0; 34138 _lua_upvaluejoin(i1, 1, i2, 3, i5); 34139 STACKTOP = i3; 34140 return 0; 34141 } 34142 function _luaK_jump(i1) { 34143 i1 = i1 | 0; 34144 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0; 34145 i3 = STACKTOP; 34146 i2 = i1 + 28 | 0; 34147 i7 = HEAP32[i2 >> 2] | 0; 34148 HEAP32[i2 >> 2] = -1; 34149 i2 = _luaK_code(i1, 2147450903) | 0; 34150 if ((i7 | 0) == -1) { 34151 i9 = i2; 34152 STACKTOP = i3; 34153 return i9 | 0; 34154 } 34155 if ((i2 | 0) == -1) { 34156 i9 = i7; 34157 STACKTOP = i3; 34158 return i9 | 0; 34159 } 34160 i6 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0; 34161 i8 = i2; 34162 while (1) { 34163 i5 = i6 + (i8 << 2) | 0; 34164 i4 = HEAP32[i5 >> 2] | 0; 34165 i9 = (i4 >>> 14) + -131071 | 0; 34166 if ((i9 | 0) == -1) { 34167 break; 34168 } 34169 i9 = i8 + 1 + i9 | 0; 34170 if ((i9 | 0) == -1) { 34171 break; 34172 } else { 34173 i8 = i9; 34174 } 34175 } 34176 i6 = i7 + ~i8 | 0; 34177 if ((((i6 | 0) > -1 ? i6 : 0 - i6 | 0) | 0) > 131071) { 34178 _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10624); 34179 } 34180 HEAP32[i5 >> 2] = (i6 << 14) + 2147467264 | i4 & 16383; 34181 i9 = i2; 34182 STACKTOP = i3; 34183 return i9 | 0; 34184 } 34185 function _findfield(i2, i3, i4) { 34186 i2 = i2 | 0; 34187 i3 = i3 | 0; 34188 i4 = i4 | 0; 34189 var i1 = 0; 34190 i1 = STACKTOP; 34191 L1 : do { 34192 if (((i4 | 0) != 0 ? (_lua_type(i2, -1) | 0) == 5 : 0) ? (_lua_pushnil(i2), (_lua_next(i2, -2) | 0) != 0) : 0) { 34193 i4 = i4 + -1 | 0; 34194 while (1) { 34195 if ((_lua_type(i2, -2) | 0) == 4) { 34196 if ((_lua_rawequal(i2, i3, -1) | 0) != 0) { 34197 i3 = 7; 34198 break; 34199 } 34200 if ((_findfield(i2, i3, i4) | 0) != 0) { 34201 i3 = 9; 34202 break; 34203 } 34204 } 34205 _lua_settop(i2, -2); 34206 if ((_lua_next(i2, -2) | 0) == 0) { 34207 i2 = 0; 34208 break L1; 34209 } 34210 } 34211 if ((i3 | 0) == 7) { 34212 _lua_settop(i2, -2); 34213 i2 = 1; 34214 break; 34215 } else if ((i3 | 0) == 9) { 34216 _lua_remove(i2, -2); 34217 _lua_pushlstring(i2, 1776, 1) | 0; 34218 _lua_insert(i2, -2); 34219 _lua_concat(i2, 3); 34220 i2 = 1; 34221 break; 34222 } 34223 } else { 34224 i2 = 0; 34225 } 34226 } while (0); 34227 STACKTOP = i1; 34228 return i2 | 0; 34229 } 34230 function _db_gethook(i1) { 34231 i1 = i1 | 0; 34232 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0; 34233 i3 = STACKTOP; 34234 STACKTOP = STACKTOP + 16 | 0; 34235 i2 = i3; 34236 if ((_lua_type(i1, 1) | 0) == 8) { 34237 i4 = _lua_tothread(i1, 1) | 0; 34238 } else { 34239 i4 = i1; 34240 } 34241 i5 = _lua_gethookmask(i4) | 0; 34242 i6 = _lua_gethook(i4) | 0; 34243 if ((i6 | 0) != 0 & (i6 | 0) != 9) { 34244 _lua_pushlstring(i1, 12024, 13) | 0; 34245 } else { 34246 _luaL_getsubtable(i1, -1001e3, 11584) | 0; 34247 _lua_pushthread(i4) | 0; 34248 _lua_xmove(i4, i1, 1); 34249 _lua_rawget(i1, -2); 34250 _lua_remove(i1, -2); 34251 } 34252 if ((i5 & 1 | 0) == 0) { 34253 i6 = 0; 34254 } else { 34255 HEAP8[i2] = 99; 34256 i6 = 1; 34257 } 34258 if ((i5 & 2 | 0) != 0) { 34259 HEAP8[i2 + i6 | 0] = 114; 34260 i6 = i6 + 1 | 0; 34261 } 34262 if ((i5 & 4 | 0) != 0) { 34263 HEAP8[i2 + i6 | 0] = 108; 34264 i6 = i6 + 1 | 0; 34265 } 34266 HEAP8[i2 + i6 | 0] = 0; 34267 _lua_pushstring(i1, i2) | 0; 34268 _lua_pushinteger(i1, _lua_gethookcount(i4) | 0); 34269 STACKTOP = i3; 34270 return 3; 34271 } 34272 function _lua_tothread(i3, i5) { 34273 i3 = i3 | 0; 34274 i5 = i5 | 0; 34275 var i1 = 0, i2 = 0, i4 = 0; 34276 i1 = STACKTOP; 34277 i4 = HEAP32[i3 + 16 >> 2] | 0; 34278 do { 34279 if ((i5 | 0) <= 0) { 34280 if (!((i5 | 0) < -1000999)) { 34281 i2 = (HEAP32[i3 + 8 >> 2] | 0) + (i5 << 4) | 0; 34282 break; 34283 } 34284 if ((i5 | 0) == -1001e3) { 34285 i2 = (HEAP32[i3 + 12 >> 2] | 0) + 40 | 0; 34286 break; 34287 } 34288 i3 = -1001e3 - i5 | 0; 34289 i4 = HEAP32[i4 >> 2] | 0; 34290 if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i2 = HEAP32[i4 >> 2] | 0, (i3 | 0) <= (HEAPU8[i2 + 6 | 0] | 0 | 0)) : 0) { 34291 i2 = i2 + (i3 + -1 << 4) + 16 | 0; 34292 } else { 34293 i2 = 5192; 34294 } 34295 } else { 34296 i2 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0; 34297 i2 = i2 >>> 0 < (HEAP32[i3 + 8 >> 2] | 0) >>> 0 ? i2 : 5192; 34298 } 34299 } while (0); 34300 if ((HEAP32[i2 + 8 >> 2] | 0) != 72) { 34301 i5 = 0; 34302 STACKTOP = i1; 34303 return i5 | 0; 34304 } 34305 i5 = HEAP32[i2 >> 2] | 0; 34306 STACKTOP = i1; 34307 return i5 | 0; 34308 } 34309 function _luaD_throw(i1, i2) { 34310 i1 = i1 | 0; 34311 i2 = i2 | 0; 34312 var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0; 34313 i3 = i1 + 64 | 0; 34314 i4 = HEAP32[i3 >> 2] | 0; 34315 if ((i4 | 0) != 0) { 34316 HEAP32[i4 + 160 >> 2] = i2; 34317 _longjmp((HEAP32[i3 >> 2] | 0) + 4 | 0, 1); 34318 } 34319 HEAP8[i1 + 6 | 0] = i2; 34320 i4 = i1 + 12 | 0; 34321 i3 = HEAP32[i4 >> 2] | 0; 34322 i5 = HEAP32[i3 + 172 >> 2] | 0; 34323 if ((HEAP32[i5 + 64 >> 2] | 0) != 0) { 34324 i6 = HEAP32[i1 + 8 >> 2] | 0; 34325 i9 = i5 + 8 | 0; 34326 i5 = HEAP32[i9 >> 2] | 0; 34327 HEAP32[i9 >> 2] = i5 + 16; 34328 i9 = i6 + -16 | 0; 34329 i8 = HEAP32[i9 + 4 >> 2] | 0; 34330 i7 = i5; 34331 HEAP32[i7 >> 2] = HEAP32[i9 >> 2]; 34332 HEAP32[i7 + 4 >> 2] = i8; 34333 HEAP32[i5 + 8 >> 2] = HEAP32[i6 + -8 >> 2]; 34334 _luaD_throw(HEAP32[(HEAP32[i4 >> 2] | 0) + 172 >> 2] | 0, i2); 34335 } 34336 i2 = HEAP32[i3 + 168 >> 2] | 0; 34337 if ((i2 | 0) == 0) { 34338 _abort(); 34339 } 34340 FUNCTION_TABLE_ii[i2 & 255](i1) | 0; 34341 _abort(); 34342 } 34343 function _lua_len(i1, i5) { 34344 i1 = i1 | 0; 34345 i5 = i5 | 0; 34346 var i2 = 0, i3 = 0, i4 = 0; 34347 i2 = STACKTOP; 34348 i4 = HEAP32[i1 + 16 >> 2] | 0; 34349 do { 34350 if ((i5 | 0) <= 0) { 34351 if (!((i5 | 0) < -1000999)) { 34352 i3 = (HEAP32[i1 + 8 >> 2] | 0) + (i5 << 4) | 0; 34353 break; 34354 } 34355 if ((i5 | 0) == -1001e3) { 34356 i3 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0; 34357 break; 34358 } 34359 i5 = -1001e3 - i5 | 0; 34360 i4 = HEAP32[i4 >> 2] | 0; 34361 if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i4 >> 2] | 0, (i5 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) { 34362 i3 = i3 + (i5 + -1 << 4) + 16 | 0; 34363 } else { 34364 i3 = 5192; 34365 } 34366 } else { 34367 i3 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0; 34368 i3 = i3 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i3 : 5192; 34369 } 34370 } while (0); 34371 i5 = i1 + 8 | 0; 34372 _luaV_objlen(i1, HEAP32[i5 >> 2] | 0, i3); 34373 HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + 16; 34374 STACKTOP = i2; 34375 return; 34376 } 34377 function _read_line(i4, i5, i1) { 34378 i4 = i4 | 0; 34379 i5 = i5 | 0; 34380 i1 = i1 | 0; 34381 var i2 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0; 34382 i3 = STACKTOP; 34383 STACKTOP = STACKTOP + 1040 | 0; 34384 i2 = i3; 34385 _luaL_buffinit(i4, i2); 34386 i7 = _luaL_prepbuffsize(i2, 1024) | 0; 34387 L1 : do { 34388 if ((_fgets(i7 | 0, 1024, i5 | 0) | 0) != 0) { 34389 i6 = i2 + 8 | 0; 34390 while (1) { 34391 i8 = _strlen(i7 | 0) | 0; 34392 if ((i8 | 0) != 0 ? (HEAP8[i7 + (i8 + -1) | 0] | 0) == 10 : 0) { 34393 break; 34394 } 34395 HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + i8; 34396 i7 = _luaL_prepbuffsize(i2, 1024) | 0; 34397 if ((_fgets(i7 | 0, 1024, i5 | 0) | 0) == 0) { 34398 break L1; 34399 } 34400 } 34401 HEAP32[i6 >> 2] = i8 - i1 + (HEAP32[i6 >> 2] | 0); 34402 _luaL_pushresult(i2); 34403 i8 = 1; 34404 STACKTOP = i3; 34405 return i8 | 0; 34406 } 34407 } while (0); 34408 _luaL_pushresult(i2); 34409 i8 = (_lua_rawlen(i4, -1) | 0) != 0 | 0; 34410 STACKTOP = i3; 34411 return i8 | 0; 34412 } 34413 function _luaL_tolstring(i1, i5, i4) { 34414 i1 = i1 | 0; 34415 i5 = i5 | 0; 34416 i4 = i4 | 0; 34417 var i2 = 0, i3 = 0, i6 = 0, i7 = 0; 34418 i2 = STACKTOP; 34419 STACKTOP = STACKTOP + 16 | 0; 34420 i3 = i2; 34421 do { 34422 if ((_luaL_callmeta(i1, i5, 1384) | 0) == 0) { 34423 i6 = _lua_type(i1, i5) | 0; 34424 if ((i6 | 0) == 0) { 34425 _lua_pushlstring(i1, 1416, 3) | 0; 34426 break; 34427 } else if ((i6 | 0) == 1) { 34428 i6 = (_lua_toboolean(i1, i5) | 0) != 0; 34429 _lua_pushstring(i1, i6 ? 1400 : 1408) | 0; 34430 break; 34431 } else if ((i6 | 0) == 4 | (i6 | 0) == 3) { 34432 _lua_pushvalue(i1, i5); 34433 break; 34434 } else { 34435 i7 = _lua_typename(i1, _lua_type(i1, i5) | 0) | 0; 34436 i6 = _lua_topointer(i1, i5) | 0; 34437 HEAP32[i3 >> 2] = i7; 34438 HEAP32[i3 + 4 >> 2] = i6; 34439 _lua_pushfstring(i1, 1424, i3) | 0; 34440 break; 34441 } 34442 } 34443 } while (0); 34444 i7 = _lua_tolstring(i1, -1, i4) | 0; 34445 STACKTOP = i2; 34446 return i7 | 0; 34447 } 34448 function _save(i7, i1) { 34449 i7 = i7 | 0; 34450 i1 = i1 | 0; 34451 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0; 34452 i2 = STACKTOP; 34453 i4 = HEAP32[i7 + 60 >> 2] | 0; 34454 i3 = i4 + 4 | 0; 34455 i8 = HEAP32[i3 >> 2] | 0; 34456 i6 = i4 + 8 | 0; 34457 i5 = HEAP32[i6 >> 2] | 0; 34458 if (!((i8 + 1 | 0) >>> 0 > i5 >>> 0)) { 34459 i6 = HEAP32[i4 >> 2] | 0; 34460 i7 = i1 & 255; 34461 i5 = i8 + 1 | 0; 34462 HEAP32[i3 >> 2] = i5; 34463 i8 = i6 + i8 | 0; 34464 HEAP8[i8] = i7; 34465 STACKTOP = i2; 34466 return; 34467 } 34468 if (i5 >>> 0 > 2147483645) { 34469 _lexerror(i7, 12368, 0); 34470 } 34471 i8 = i5 << 1; 34472 i7 = HEAP32[i7 + 52 >> 2] | 0; 34473 if ((i8 | 0) == -2) { 34474 _luaM_toobig(i7); 34475 } 34476 i7 = _luaM_realloc_(i7, HEAP32[i4 >> 2] | 0, i5, i8) | 0; 34477 HEAP32[i4 >> 2] = i7; 34478 HEAP32[i6 >> 2] = i8; 34479 i8 = HEAP32[i3 >> 2] | 0; 34480 i6 = i7; 34481 i7 = i1 & 255; 34482 i5 = i8 + 1 | 0; 34483 HEAP32[i3 >> 2] = i5; 34484 i8 = i6 + i8 | 0; 34485 HEAP8[i8] = i7; 34486 STACKTOP = i2; 34487 return; 34488 } 34489 function _luaK_patchtohere(i1, i3) { 34490 i1 = i1 | 0; 34491 i3 = i3 | 0; 34492 var i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0; 34493 i2 = STACKTOP; 34494 HEAP32[i1 + 24 >> 2] = HEAP32[i1 + 20 >> 2]; 34495 i4 = i1 + 28 | 0; 34496 if ((i3 | 0) == -1) { 34497 STACKTOP = i2; 34498 return; 34499 } 34500 i7 = HEAP32[i4 >> 2] | 0; 34501 if ((i7 | 0) == -1) { 34502 HEAP32[i4 >> 2] = i3; 34503 STACKTOP = i2; 34504 return; 34505 } 34506 i4 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0; 34507 while (1) { 34508 i6 = i4 + (i7 << 2) | 0; 34509 i5 = HEAP32[i6 >> 2] | 0; 34510 i8 = (i5 >>> 14) + -131071 | 0; 34511 if ((i8 | 0) == -1) { 34512 break; 34513 } 34514 i8 = i7 + 1 + i8 | 0; 34515 if ((i8 | 0) == -1) { 34516 break; 34517 } else { 34518 i7 = i8; 34519 } 34520 } 34521 i3 = ~i7 + i3 | 0; 34522 if ((((i3 | 0) > -1 ? i3 : 0 - i3 | 0) | 0) > 131071) { 34523 _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10624); 34524 } 34525 HEAP32[i6 >> 2] = (i3 << 14) + 2147467264 | i5 & 16383; 34526 STACKTOP = i2; 34527 return; 34528 } 34529 function _tinsert(i1) { 34530 i1 = i1 | 0; 34531 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0; 34532 i2 = STACKTOP; 34533 STACKTOP = STACKTOP + 16 | 0; 34534 i7 = i2; 34535 _luaL_checktype(i1, 1, 5); 34536 i4 = _luaL_len(i1, 1) | 0; 34537 i3 = i4 + 1 | 0; 34538 i6 = _lua_gettop(i1) | 0; 34539 if ((i6 | 0) == 3) { 34540 i5 = 2; 34541 } else if ((i6 | 0) != 2) { 34542 i7 = _luaL_error(i1, 8320, i7) | 0; 34543 STACKTOP = i2; 34544 return i7 | 0; 34545 } 34546 if ((i5 | 0) == 2) { 34547 i5 = _luaL_checkinteger(i1, 2) | 0; 34548 if ((i5 | 0) < 1 | (i5 | 0) > (i3 | 0)) { 34549 _luaL_argerror(i1, 2, 8256) | 0; 34550 } 34551 if ((i4 | 0) < (i5 | 0)) { 34552 i3 = i5; 34553 } else { 34554 while (1) { 34555 i4 = i3 + -1 | 0; 34556 _lua_rawgeti(i1, 1, i4); 34557 _lua_rawseti(i1, 1, i3); 34558 if ((i4 | 0) > (i5 | 0)) { 34559 i3 = i4; 34560 } else { 34561 i3 = i5; 34562 break; 34563 } 34564 } 34565 } 34566 } 34567 _lua_rawseti(i1, 1, i3); 34568 i7 = 0; 34569 STACKTOP = i2; 34570 return i7 | 0; 34571 } 34572 function _lua_iscfunction(i3, i5) { 34573 i3 = i3 | 0; 34574 i5 = i5 | 0; 34575 var i1 = 0, i2 = 0, i4 = 0; 34576 i1 = STACKTOP; 34577 i4 = HEAP32[i3 + 16 >> 2] | 0; 34578 do { 34579 if ((i5 | 0) <= 0) { 34580 if (!((i5 | 0) < -1000999)) { 34581 i2 = (HEAP32[i3 + 8 >> 2] | 0) + (i5 << 4) | 0; 34582 break; 34583 } 34584 if ((i5 | 0) == -1001e3) { 34585 i2 = (HEAP32[i3 + 12 >> 2] | 0) + 40 | 0; 34586 break; 34587 } 34588 i3 = -1001e3 - i5 | 0; 34589 i4 = HEAP32[i4 >> 2] | 0; 34590 if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i2 = HEAP32[i4 >> 2] | 0, (i3 | 0) <= (HEAPU8[i2 + 6 | 0] | 0 | 0)) : 0) { 34591 i2 = i2 + (i3 + -1 << 4) + 16 | 0; 34592 } else { 34593 i2 = 5192; 34594 } 34595 } else { 34596 i2 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0; 34597 i2 = i2 >>> 0 < (HEAP32[i3 + 8 >> 2] | 0) >>> 0 ? i2 : 5192; 34598 } 34599 } while (0); 34600 i5 = HEAP32[i2 + 8 >> 2] | 0; 34601 STACKTOP = i1; 34602 return ((i5 | 0) == 22 | (i5 | 0) == 102) & 1 | 0; 34603 } 34604 function _lua_gettable(i1, i5) { 34605 i1 = i1 | 0; 34606 i5 = i5 | 0; 34607 var i2 = 0, i3 = 0, i4 = 0; 34608 i2 = STACKTOP; 34609 i4 = HEAP32[i1 + 16 >> 2] | 0; 34610 do { 34611 if ((i5 | 0) <= 0) { 34612 if (!((i5 | 0) < -1000999)) { 34613 i3 = (HEAP32[i1 + 8 >> 2] | 0) + (i5 << 4) | 0; 34614 break; 34615 } 34616 if ((i5 | 0) == -1001e3) { 34617 i3 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0; 34618 break; 34619 } 34620 i5 = -1001e3 - i5 | 0; 34621 i4 = HEAP32[i4 >> 2] | 0; 34622 if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i4 >> 2] | 0, (i5 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) { 34623 i3 = i3 + (i5 + -1 << 4) + 16 | 0; 34624 } else { 34625 i3 = 5192; 34626 } 34627 } else { 34628 i3 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0; 34629 i3 = i3 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i3 : 5192; 34630 } 34631 } while (0); 34632 i5 = (HEAP32[i1 + 8 >> 2] | 0) + -16 | 0; 34633 _luaV_gettable(i1, i3, i5, i5); 34634 STACKTOP = i2; 34635 return; 34636 } 34637 function _luaG_errormsg(i1) { 34638 i1 = i1 | 0; 34639 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0; 34640 i2 = HEAP32[i1 + 68 >> 2] | 0; 34641 if ((i2 | 0) == 0) { 34642 _luaD_throw(i1, 2); 34643 } 34644 i4 = HEAP32[i1 + 28 >> 2] | 0; 34645 i3 = i4 + (i2 + 8) | 0; 34646 if ((HEAP32[i3 >> 2] & 15 | 0) != 6) { 34647 _luaD_throw(i1, 6); 34648 } 34649 i5 = i1 + 8 | 0; 34650 i6 = HEAP32[i5 >> 2] | 0; 34651 i9 = i6 + -16 | 0; 34652 i8 = HEAP32[i9 + 4 >> 2] | 0; 34653 i7 = i6; 34654 HEAP32[i7 >> 2] = HEAP32[i9 >> 2]; 34655 HEAP32[i7 + 4 >> 2] = i8; 34656 HEAP32[i6 + 8 >> 2] = HEAP32[i6 + -8 >> 2]; 34657 i6 = HEAP32[i5 >> 2] | 0; 34658 i7 = i4 + i2 | 0; 34659 i2 = HEAP32[i7 + 4 >> 2] | 0; 34660 i4 = i6 + -16 | 0; 34661 HEAP32[i4 >> 2] = HEAP32[i7 >> 2]; 34662 HEAP32[i4 + 4 >> 2] = i2; 34663 HEAP32[i6 + -8 >> 2] = HEAP32[i3 >> 2]; 34664 i4 = HEAP32[i5 >> 2] | 0; 34665 HEAP32[i5 >> 2] = i4 + 16; 34666 _luaD_call(i1, i4 + -16 | 0, 1, 0); 34667 _luaD_throw(i1, 2); 34668 } 34669 function _luaB_costatus(i1) { 34670 i1 = i1 | 0; 34671 var i2 = 0, i3 = 0, i4 = 0, i5 = 0; 34672 i4 = STACKTOP; 34673 STACKTOP = STACKTOP + 112 | 0; 34674 i3 = i4; 34675 i2 = _lua_tothread(i1, 1) | 0; 34676 if ((i2 | 0) == 0) { 34677 _luaL_argerror(i1, 1, 10856) | 0; 34678 } 34679 do { 34680 if ((i2 | 0) != (i1 | 0)) { 34681 i5 = _lua_status(i2) | 0; 34682 if ((i5 | 0) == 0) { 34683 if ((_lua_getstack(i2, 0, i3) | 0) > 0) { 34684 _lua_pushlstring(i1, 10896, 6) | 0; 34685 break; 34686 } 34687 if ((_lua_gettop(i2) | 0) == 0) { 34688 _lua_pushlstring(i1, 10904, 4) | 0; 34689 break; 34690 } else { 34691 _lua_pushlstring(i1, 10880, 9) | 0; 34692 break; 34693 } 34694 } else if ((i5 | 0) == 1) { 34695 _lua_pushlstring(i1, 10880, 9) | 0; 34696 break; 34697 } else { 34698 _lua_pushlstring(i1, 10904, 4) | 0; 34699 break; 34700 } 34701 } else { 34702 _lua_pushlstring(i1, 10728, 7) | 0; 34703 } 34704 } while (0); 34705 STACKTOP = i4; 34706 return 1; 34707 } 34708 function _searcher_Lua(i1) { 34709 i1 = i1 | 0; 34710 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0; 34711 i2 = STACKTOP; 34712 STACKTOP = STACKTOP + 16 | 0; 34713 i3 = i2; 34714 i4 = _luaL_checklstring(i1, 1, 0) | 0; 34715 _lua_getfield(i1, -1001001, 4256); 34716 i5 = _lua_tolstring(i1, -1, 0) | 0; 34717 if ((i5 | 0) == 0) { 34718 HEAP32[i3 >> 2] = 4256; 34719 _luaL_error(i1, 5032, i3) | 0; 34720 } 34721 i4 = _searchpath(i1, i4, i5, 4936, 4848) | 0; 34722 if ((i4 | 0) == 0) { 34723 i5 = 1; 34724 STACKTOP = i2; 34725 return i5 | 0; 34726 } 34727 if ((_luaL_loadfilex(i1, i4, 0) | 0) == 0) { 34728 _lua_pushstring(i1, i4) | 0; 34729 i5 = 2; 34730 STACKTOP = i2; 34731 return i5 | 0; 34732 } else { 34733 i6 = _lua_tolstring(i1, 1, 0) | 0; 34734 i5 = _lua_tolstring(i1, -1, 0) | 0; 34735 HEAP32[i3 >> 2] = i6; 34736 HEAP32[i3 + 4 >> 2] = i4; 34737 HEAP32[i3 + 8 >> 2] = i5; 34738 i5 = _luaL_error(i1, 4888, i3) | 0; 34739 STACKTOP = i2; 34740 return i5 | 0; 34741 } 34742 return 0; 34743 } 34744 function _str_sub(i1) { 34745 i1 = i1 | 0; 34746 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0; 34747 i3 = STACKTOP; 34748 STACKTOP = STACKTOP + 16 | 0; 34749 i4 = i3; 34750 i2 = _luaL_checklstring(i1, 1, i4) | 0; 34751 i5 = _luaL_checkinteger(i1, 2) | 0; 34752 i6 = HEAP32[i4 >> 2] | 0; 34753 if (!((i5 | 0) > -1)) { 34754 if (i6 >>> 0 < (0 - i5 | 0) >>> 0) { 34755 i5 = 0; 34756 } else { 34757 i5 = i5 + 1 + i6 | 0; 34758 } 34759 } 34760 i6 = _luaL_optinteger(i1, 3, -1) | 0; 34761 i4 = HEAP32[i4 >> 2] | 0; 34762 if (!((i6 | 0) > -1)) { 34763 if (i4 >>> 0 < (0 - i6 | 0) >>> 0) { 34764 i6 = 0; 34765 } else { 34766 i6 = i6 + 1 + i4 | 0; 34767 } 34768 } 34769 i5 = (i5 | 0) == 0 ? 1 : i5; 34770 i4 = i6 >>> 0 > i4 >>> 0 ? i4 : i6; 34771 if (i5 >>> 0 > i4 >>> 0) { 34772 _lua_pushlstring(i1, 7040, 0) | 0; 34773 STACKTOP = i3; 34774 return 1; 34775 } else { 34776 _lua_pushlstring(i1, i2 + (i5 + -1) | 0, 1 - i5 + i4 | 0) | 0; 34777 STACKTOP = i3; 34778 return 1; 34779 } 34780 return 0; 34781 } 34782 function _searcher_C(i1) { 34783 i1 = i1 | 0; 34784 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0; 34785 i2 = STACKTOP; 34786 STACKTOP = STACKTOP + 16 | 0; 34787 i3 = i2; 34788 i4 = _luaL_checklstring(i1, 1, 0) | 0; 34789 _lua_getfield(i1, -1001001, 4440); 34790 i5 = _lua_tolstring(i1, -1, 0) | 0; 34791 if ((i5 | 0) == 0) { 34792 HEAP32[i3 >> 2] = 4440; 34793 _luaL_error(i1, 5032, i3) | 0; 34794 } 34795 i5 = _searchpath(i1, i4, i5, 4936, 4848) | 0; 34796 if ((i5 | 0) == 0) { 34797 i5 = 1; 34798 STACKTOP = i2; 34799 return i5 | 0; 34800 } 34801 if ((_loadfunc(i1, i5, i4) | 0) == 0) { 34802 _lua_pushstring(i1, i5) | 0; 34803 i5 = 2; 34804 STACKTOP = i2; 34805 return i5 | 0; 34806 } else { 34807 i6 = _lua_tolstring(i1, 1, 0) | 0; 34808 i4 = _lua_tolstring(i1, -1, 0) | 0; 34809 HEAP32[i3 >> 2] = i6; 34810 HEAP32[i3 + 4 >> 2] = i5; 34811 HEAP32[i3 + 8 >> 2] = i4; 34812 i5 = _luaL_error(i1, 4888, i3) | 0; 34813 STACKTOP = i2; 34814 return i5 | 0; 34815 } 34816 return 0; 34817 } 34818 function _io_open(i1) { 34819 i1 = i1 | 0; 34820 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0; 34821 i5 = STACKTOP; 34822 i2 = _luaL_checklstring(i1, 1, 0) | 0; 34823 i3 = _luaL_optlstring(i1, 2, 3480, 0) | 0; 34824 i4 = _lua_newuserdata(i1, 8) | 0; 34825 i6 = i4 + 4 | 0; 34826 HEAP32[i6 >> 2] = 0; 34827 _luaL_setmetatable(i1, 2832); 34828 HEAP32[i4 >> 2] = 0; 34829 HEAP32[i6 >> 2] = 156; 34830 i6 = HEAP8[i3] | 0; 34831 if (!((!(i6 << 24 >> 24 == 0) ? (i7 = i3 + 1 | 0, (_memchr(3552, i6 << 24 >> 24, 4) | 0) != 0) : 0) ? (i6 = (HEAP8[i7] | 0) == 43 ? i3 + 2 | 0 : i7, (HEAP8[(HEAP8[i6] | 0) == 98 ? i6 + 1 | 0 : i6] | 0) == 0) : 0)) { 34832 _luaL_argerror(i1, 2, 3560) | 0; 34833 } 34834 i7 = _fopen(i2 | 0, i3 | 0) | 0; 34835 HEAP32[i4 >> 2] = i7; 34836 if ((i7 | 0) != 0) { 34837 i7 = 1; 34838 STACKTOP = i5; 34839 return i7 | 0; 34840 } 34841 i7 = _luaL_fileresult(i1, 0, i2) | 0; 34842 STACKTOP = i5; 34843 return i7 | 0; 34844 } 34845 function _unpack(i2) { 34846 i2 = i2 | 0; 34847 var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0; 34848 i1 = STACKTOP; 34849 STACKTOP = STACKTOP + 16 | 0; 34850 i6 = i1; 34851 _luaL_checktype(i2, 1, 5); 34852 i5 = _luaL_optinteger(i2, 2, 1) | 0; 34853 if ((_lua_type(i2, 3) | 0) < 1) { 34854 i3 = _luaL_len(i2, 1) | 0; 34855 } else { 34856 i3 = _luaL_checkinteger(i2, 3) | 0; 34857 } 34858 if ((i5 | 0) > (i3 | 0)) { 34859 i6 = 0; 34860 STACKTOP = i1; 34861 return i6 | 0; 34862 } 34863 i7 = i3 - i5 | 0; 34864 i4 = i7 + 1 | 0; 34865 if ((i7 | 0) >= 0 ? (_lua_checkstack(i2, i4) | 0) != 0 : 0) { 34866 _lua_rawgeti(i2, 1, i5); 34867 if ((i5 | 0) >= (i3 | 0)) { 34868 i7 = i4; 34869 STACKTOP = i1; 34870 return i7 | 0; 34871 } 34872 do { 34873 i5 = i5 + 1 | 0; 34874 _lua_rawgeti(i2, 1, i5); 34875 } while ((i5 | 0) != (i3 | 0)); 34876 STACKTOP = i1; 34877 return i4 | 0; 34878 } 34879 i7 = _luaL_error(i2, 8280, i6) | 0; 34880 STACKTOP = i1; 34881 return i7 | 0; 34882 } 34883 function _luaF_getlocalname(i4, i6, i2) { 34884 i4 = i4 | 0; 34885 i6 = i6 | 0; 34886 i2 = i2 | 0; 34887 var i1 = 0, i3 = 0, i5 = 0; 34888 i1 = STACKTOP; 34889 i3 = HEAP32[i4 + 60 >> 2] | 0; 34890 if ((i3 | 0) <= 0) { 34891 i6 = 0; 34892 STACKTOP = i1; 34893 return i6 | 0; 34894 } 34895 i4 = HEAP32[i4 + 24 >> 2] | 0; 34896 i5 = 0; 34897 while (1) { 34898 if ((HEAP32[i4 + (i5 * 12 | 0) + 4 >> 2] | 0) > (i2 | 0)) { 34899 i3 = 0; 34900 i2 = 8; 34901 break; 34902 } 34903 if ((HEAP32[i4 + (i5 * 12 | 0) + 8 >> 2] | 0) > (i2 | 0)) { 34904 i6 = i6 + -1 | 0; 34905 if ((i6 | 0) == 0) { 34906 i2 = 6; 34907 break; 34908 } 34909 } 34910 i5 = i5 + 1 | 0; 34911 if ((i5 | 0) >= (i3 | 0)) { 34912 i3 = 0; 34913 i2 = 8; 34914 break; 34915 } 34916 } 34917 if ((i2 | 0) == 6) { 34918 i6 = (HEAP32[i4 + (i5 * 12 | 0) >> 2] | 0) + 16 | 0; 34919 STACKTOP = i1; 34920 return i6 | 0; 34921 } else if ((i2 | 0) == 8) { 34922 STACKTOP = i1; 34923 return i3 | 0; 34924 } 34925 return 0; 34926 } 34927 function _luaK_concat(i1, i4, i3) { 34928 i1 = i1 | 0; 34929 i4 = i4 | 0; 34930 i3 = i3 | 0; 34931 var i2 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0; 34932 i2 = STACKTOP; 34933 if ((i3 | 0) == -1) { 34934 STACKTOP = i2; 34935 return; 34936 } 34937 i7 = HEAP32[i4 >> 2] | 0; 34938 if ((i7 | 0) == -1) { 34939 HEAP32[i4 >> 2] = i3; 34940 STACKTOP = i2; 34941 return; 34942 } 34943 i4 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0; 34944 while (1) { 34945 i6 = i4 + (i7 << 2) | 0; 34946 i5 = HEAP32[i6 >> 2] | 0; 34947 i8 = (i5 >>> 14) + -131071 | 0; 34948 if ((i8 | 0) == -1) { 34949 break; 34950 } 34951 i8 = i7 + 1 + i8 | 0; 34952 if ((i8 | 0) == -1) { 34953 break; 34954 } else { 34955 i7 = i8; 34956 } 34957 } 34958 i3 = ~i7 + i3 | 0; 34959 if ((((i3 | 0) > -1 ? i3 : 0 - i3 | 0) | 0) > 131071) { 34960 _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10624); 34961 } 34962 HEAP32[i6 >> 2] = i5 & 16383 | (i3 << 14) + 2147467264; 34963 STACKTOP = i2; 34964 return; 34965 } 34966 function _scalbn(d3, i2) { 34967 d3 = +d3; 34968 i2 = i2 | 0; 34969 var i1 = 0, i4 = 0; 34970 i1 = STACKTOP; 34971 if ((i2 | 0) > 1023) { 34972 d3 = d3 * 8.98846567431158e+307; 34973 i4 = i2 + -1023 | 0; 34974 if ((i4 | 0) > 1023) { 34975 i2 = i2 + -2046 | 0; 34976 i2 = (i2 | 0) > 1023 ? 1023 : i2; 34977 d3 = d3 * 8.98846567431158e+307; 34978 } else { 34979 i2 = i4; 34980 } 34981 } else { 34982 if ((i2 | 0) < -1022) { 34983 d3 = d3 * 2.2250738585072014e-308; 34984 i4 = i2 + 1022 | 0; 34985 if ((i4 | 0) < -1022) { 34986 i2 = i2 + 2044 | 0; 34987 i2 = (i2 | 0) < -1022 ? -1022 : i2; 34988 d3 = d3 * 2.2250738585072014e-308; 34989 } else { 34990 i2 = i4; 34991 } 34992 } 34993 } 34994 i2 = _bitshift64Shl(i2 + 1023 | 0, 0, 52) | 0; 34995 i4 = tempRet0; 34996 HEAP32[tempDoublePtr >> 2] = i2; 34997 HEAP32[tempDoublePtr + 4 >> 2] = i4; 34998 d3 = d3 * +HEAPF64[tempDoublePtr >> 3]; 34999 STACKTOP = i1; 35000 return +d3; 35001 } 35002 function _luaK_numberK(i1, d6) { 35003 i1 = i1 | 0; 35004 d6 = +d6; 35005 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0; 35006 i2 = STACKTOP; 35007 STACKTOP = STACKTOP + 32 | 0; 35008 i4 = i2 + 16 | 0; 35009 i3 = i2; 35010 HEAPF64[i4 >> 3] = d6; 35011 i5 = HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 52 >> 2] | 0; 35012 HEAPF64[i3 >> 3] = d6; 35013 HEAP32[i3 + 8 >> 2] = 3; 35014 if (d6 != d6 | 0.0 != 0.0 | d6 == 0.0) { 35015 i7 = i5 + 8 | 0; 35016 i8 = HEAP32[i7 >> 2] | 0; 35017 HEAP32[i7 >> 2] = i8 + 16; 35018 i5 = _luaS_newlstr(i5, i4, 8) | 0; 35019 HEAP32[i8 >> 2] = i5; 35020 HEAP32[i8 + 8 >> 2] = HEAPU8[i5 + 4 | 0] | 0 | 64; 35021 i5 = _addk(i1, (HEAP32[i7 >> 2] | 0) + -16 | 0, i3) | 0; 35022 HEAP32[i7 >> 2] = (HEAP32[i7 >> 2] | 0) + -16; 35023 STACKTOP = i2; 35024 return i5 | 0; 35025 } else { 35026 i8 = _addk(i1, i3, i3) | 0; 35027 STACKTOP = i2; 35028 return i8 | 0; 35029 } 35030 return 0; 35031 } 35032 function _auxresume(i2, i3, i4) { 35033 i2 = i2 | 0; 35034 i3 = i3 | 0; 35035 i4 = i4 | 0; 35036 var i1 = 0; 35037 i1 = STACKTOP; 35038 do { 35039 if ((_lua_checkstack(i3, i4) | 0) != 0) { 35040 if ((_lua_status(i3) | 0) == 0 ? (_lua_gettop(i3) | 0) == 0 : 0) { 35041 _lua_pushlstring(i2, 10792, 28) | 0; 35042 i4 = -1; 35043 break; 35044 } 35045 _lua_xmove(i2, i3, i4); 35046 if (!((_lua_resume(i3, i2, i4) | 0) >>> 0 < 2)) { 35047 _lua_xmove(i3, i2, 1); 35048 i4 = -1; 35049 break; 35050 } 35051 i4 = _lua_gettop(i3) | 0; 35052 if ((_lua_checkstack(i2, i4 + 1 | 0) | 0) == 0) { 35053 _lua_settop(i3, ~i4); 35054 _lua_pushlstring(i2, 10824, 26) | 0; 35055 i4 = -1; 35056 break; 35057 } else { 35058 _lua_xmove(i3, i2, i4); 35059 break; 35060 } 35061 } else { 35062 _lua_pushlstring(i2, 10760, 28) | 0; 35063 i4 = -1; 35064 } 35065 } while (0); 35066 STACKTOP = i1; 35067 return i4 | 0; 35068 } 35069 function _luaX_setinput(i2, i1, i4, i3, i5) { 35070 i2 = i2 | 0; 35071 i1 = i1 | 0; 35072 i4 = i4 | 0; 35073 i3 = i3 | 0; 35074 i5 = i5 | 0; 35075 var i6 = 0, i7 = 0; 35076 i6 = STACKTOP; 35077 HEAP8[i1 + 76 | 0] = 46; 35078 i7 = i1 + 52 | 0; 35079 HEAP32[i7 >> 2] = i2; 35080 HEAP32[i1 >> 2] = i5; 35081 HEAP32[i1 + 32 >> 2] = 286; 35082 HEAP32[i1 + 56 >> 2] = i4; 35083 HEAP32[i1 + 48 >> 2] = 0; 35084 HEAP32[i1 + 4 >> 2] = 1; 35085 HEAP32[i1 + 8 >> 2] = 1; 35086 HEAP32[i1 + 68 >> 2] = i3; 35087 i5 = _luaS_new(i2, 12264) | 0; 35088 HEAP32[i1 + 72 >> 2] = i5; 35089 i5 = i5 + 5 | 0; 35090 HEAP8[i5] = HEAPU8[i5] | 0 | 32; 35091 i5 = i1 + 60 | 0; 35092 i4 = HEAP32[i5 >> 2] | 0; 35093 i4 = _luaM_realloc_(HEAP32[i7 >> 2] | 0, HEAP32[i4 >> 2] | 0, HEAP32[i4 + 8 >> 2] | 0, 32) | 0; 35094 HEAP32[HEAP32[i5 >> 2] >> 2] = i4; 35095 HEAP32[(HEAP32[i5 >> 2] | 0) + 8 >> 2] = 32; 35096 STACKTOP = i6; 35097 return; 35098 } 35099 function _luaL_optlstring(i2, i4, i6, i5) { 35100 i2 = i2 | 0; 35101 i4 = i4 | 0; 35102 i6 = i6 | 0; 35103 i5 = i5 | 0; 35104 var i1 = 0, i3 = 0; 35105 i1 = STACKTOP; 35106 STACKTOP = STACKTOP + 16 | 0; 35107 i3 = i1; 35108 if ((_lua_type(i2, i4) | 0) >= 1) { 35109 i5 = _lua_tolstring(i2, i4, i5) | 0; 35110 if ((i5 | 0) != 0) { 35111 i6 = i5; 35112 STACKTOP = i1; 35113 return i6 | 0; 35114 } 35115 i5 = _lua_typename(i2, 4) | 0; 35116 i6 = _lua_typename(i2, _lua_type(i2, i4) | 0) | 0; 35117 HEAP32[i3 >> 2] = i5; 35118 HEAP32[i3 + 4 >> 2] = i6; 35119 _luaL_argerror(i2, i4, _lua_pushfstring(i2, 1744, i3) | 0) | 0; 35120 i6 = 0; 35121 STACKTOP = i1; 35122 return i6 | 0; 35123 } 35124 if ((i5 | 0) == 0) { 35125 STACKTOP = i1; 35126 return i6 | 0; 35127 } 35128 if ((i6 | 0) == 0) { 35129 i2 = 0; 35130 } else { 35131 i2 = _strlen(i6 | 0) | 0; 35132 } 35133 HEAP32[i5 >> 2] = i2; 35134 STACKTOP = i1; 35135 return i6 | 0; 35136 } 35137 function _lua_xmove(i3, i4, i1) { 35138 i3 = i3 | 0; 35139 i4 = i4 | 0; 35140 i1 = i1 | 0; 35141 var i2 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0; 35142 i2 = STACKTOP; 35143 if ((i3 | 0) == (i4 | 0)) { 35144 STACKTOP = i2; 35145 return; 35146 } 35147 i3 = i3 + 8 | 0; 35148 i5 = (HEAP32[i3 >> 2] | 0) + (0 - i1 << 4) | 0; 35149 HEAP32[i3 >> 2] = i5; 35150 if ((i1 | 0) <= 0) { 35151 STACKTOP = i2; 35152 return; 35153 } 35154 i4 = i4 + 8 | 0; 35155 i6 = 0; 35156 while (1) { 35157 i7 = HEAP32[i4 >> 2] | 0; 35158 HEAP32[i4 >> 2] = i7 + 16; 35159 i10 = i5 + (i6 << 4) | 0; 35160 i9 = HEAP32[i10 + 4 >> 2] | 0; 35161 i8 = i7; 35162 HEAP32[i8 >> 2] = HEAP32[i10 >> 2]; 35163 HEAP32[i8 + 4 >> 2] = i9; 35164 HEAP32[i7 + 8 >> 2] = HEAP32[i5 + (i6 << 4) + 8 >> 2]; 35165 i6 = i6 + 1 | 0; 35166 if ((i6 | 0) == (i1 | 0)) { 35167 break; 35168 } 35169 i5 = HEAP32[i3 >> 2] | 0; 35170 } 35171 STACKTOP = i2; 35172 return; 35173 } 35174 function _luaM_realloc_(i7, i10, i3, i2) { 35175 i7 = i7 | 0; 35176 i10 = i10 | 0; 35177 i3 = i3 | 0; 35178 i2 = i2 | 0; 35179 var i1 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0, i9 = 0; 35180 i5 = STACKTOP; 35181 i6 = HEAP32[i7 + 12 >> 2] | 0; 35182 i4 = (i10 | 0) != 0; 35183 i9 = i6 + 4 | 0; 35184 i8 = FUNCTION_TABLE_iiiii[HEAP32[i6 >> 2] & 3](HEAP32[i9 >> 2] | 0, i10, i3, i2) | 0; 35185 if (!((i8 | 0) != 0 | (i2 | 0) == 0)) { 35186 if ((HEAP8[i6 + 63 | 0] | 0) == 0) { 35187 _luaD_throw(i7, 4); 35188 } 35189 _luaC_fullgc(i7, 1); 35190 i8 = FUNCTION_TABLE_iiiii[HEAP32[i6 >> 2] & 3](HEAP32[i9 >> 2] | 0, i10, i3, i2) | 0; 35191 if ((i8 | 0) == 0) { 35192 _luaD_throw(i7, 4); 35193 } else { 35194 i1 = i8; 35195 } 35196 } else { 35197 i1 = i8; 35198 } 35199 i6 = i6 + 12 | 0; 35200 HEAP32[i6 >> 2] = (i4 ? 0 - i3 | 0 : 0) + i2 + (HEAP32[i6 >> 2] | 0); 35201 STACKTOP = i5; 35202 return i1 | 0; 35203 } 35204 function _realloc(i2, i3) { 35205 i2 = i2 | 0; 35206 i3 = i3 | 0; 35207 var i1 = 0, i4 = 0, i5 = 0; 35208 i1 = STACKTOP; 35209 do { 35210 if ((i2 | 0) != 0) { 35211 if (i3 >>> 0 > 4294967231) { 35212 HEAP32[(___errno_location() | 0) >> 2] = 12; 35213 i4 = 0; 35214 break; 35215 } 35216 if (i3 >>> 0 < 11) { 35217 i4 = 16; 35218 } else { 35219 i4 = i3 + 11 & -8; 35220 } 35221 i4 = _try_realloc_chunk(i2 + -8 | 0, i4) | 0; 35222 if ((i4 | 0) != 0) { 35223 i4 = i4 + 8 | 0; 35224 break; 35225 } 35226 i4 = _malloc(i3) | 0; 35227 if ((i4 | 0) == 0) { 35228 i4 = 0; 35229 } else { 35230 i5 = HEAP32[i2 + -4 >> 2] | 0; 35231 i5 = (i5 & -8) - ((i5 & 3 | 0) == 0 ? 8 : 4) | 0; 35232 _memcpy(i4 | 0, i2 | 0, (i5 >>> 0 < i3 >>> 0 ? i5 : i3) | 0) | 0; 35233 _free(i2); 35234 } 35235 } else { 35236 i4 = _malloc(i3) | 0; 35237 } 35238 } while (0); 35239 STACKTOP = i1; 35240 return i4 | 0; 35241 } 35242 function _lua_setlocal(i3, i5, i4) { 35243 i3 = i3 | 0; 35244 i5 = i5 | 0; 35245 i4 = i4 | 0; 35246 var i1 = 0, i2 = 0, i6 = 0, i7 = 0, i8 = 0; 35247 i1 = STACKTOP; 35248 STACKTOP = STACKTOP + 16 | 0; 35249 i2 = i1; 35250 HEAP32[i2 >> 2] = 0; 35251 i4 = _findlocal(i3, HEAP32[i5 + 96 >> 2] | 0, i4, i2) | 0; 35252 i3 = i3 + 8 | 0; 35253 if ((i4 | 0) == 0) { 35254 i5 = HEAP32[i3 >> 2] | 0; 35255 i5 = i5 + -16 | 0; 35256 HEAP32[i3 >> 2] = i5; 35257 STACKTOP = i1; 35258 return i4 | 0; 35259 } 35260 i6 = HEAP32[i3 >> 2] | 0; 35261 i5 = HEAP32[i2 >> 2] | 0; 35262 i8 = i6 + -16 | 0; 35263 i7 = HEAP32[i8 + 4 >> 2] | 0; 35264 i2 = i5; 35265 HEAP32[i2 >> 2] = HEAP32[i8 >> 2]; 35266 HEAP32[i2 + 4 >> 2] = i7; 35267 HEAP32[i5 + 8 >> 2] = HEAP32[i6 + -8 >> 2]; 35268 i5 = HEAP32[i3 >> 2] | 0; 35269 i5 = i5 + -16 | 0; 35270 HEAP32[i3 >> 2] = i5; 35271 STACKTOP = i1; 35272 return i4 | 0; 35273 } 35274 function ___remdi3(i1, i4, i5, i6) { 35275 i1 = i1 | 0; 35276 i4 = i4 | 0; 35277 i5 = i5 | 0; 35278 i6 = i6 | 0; 35279 var i2 = 0, i3 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0; 35280 i3 = STACKTOP; 35281 STACKTOP = STACKTOP + 8 | 0; 35282 i2 = i3 | 0; 35283 i7 = i4 >> 31 | ((i4 | 0) < 0 ? -1 : 0) << 1; 35284 i8 = ((i4 | 0) < 0 ? -1 : 0) >> 31 | ((i4 | 0) < 0 ? -1 : 0) << 1; 35285 i9 = i6 >> 31 | ((i6 | 0) < 0 ? -1 : 0) << 1; 35286 i10 = ((i6 | 0) < 0 ? -1 : 0) >> 31 | ((i6 | 0) < 0 ? -1 : 0) << 1; 35287 i1 = _i64Subtract(i7 ^ i1, i8 ^ i4, i7, i8) | 0; 35288 i4 = tempRet0; 35289 ___udivmoddi4(i1, i4, _i64Subtract(i9 ^ i5, i10 ^ i6, i9, i10) | 0, tempRet0, i2) | 0; 35290 i9 = _i64Subtract(HEAP32[i2 >> 2] ^ i7, HEAP32[i2 + 4 >> 2] ^ i8, i7, i8) | 0; 35291 i8 = tempRet0; 35292 STACKTOP = i3; 35293 return (tempRet0 = i8, i9) | 0; 35294 } 35295 function _luaC_barrierproto_(i3, i4, i2) { 35296 i3 = i3 | 0; 35297 i4 = i4 | 0; 35298 i2 = i2 | 0; 35299 var i1 = 0, i5 = 0; 35300 i1 = STACKTOP; 35301 if ((HEAP32[i4 + 32 >> 2] | 0) != 0) { 35302 i5 = HEAP32[i3 + 12 >> 2] | 0; 35303 i3 = i4 + 5 | 0; 35304 HEAP8[i3] = HEAP8[i3] & 251; 35305 i5 = i5 + 88 | 0; 35306 HEAP32[i4 + 72 >> 2] = HEAP32[i5 >> 2]; 35307 HEAP32[i5 >> 2] = i4; 35308 STACKTOP = i1; 35309 return; 35310 } 35311 if ((HEAP8[i2 + 5 | 0] & 3) == 0) { 35312 STACKTOP = i1; 35313 return; 35314 } 35315 i5 = i4 + 5 | 0; 35316 i4 = HEAP8[i5] | 0; 35317 if ((i4 & 4) == 0) { 35318 STACKTOP = i1; 35319 return; 35320 } 35321 i3 = HEAP32[i3 + 12 >> 2] | 0; 35322 if ((HEAPU8[i3 + 61 | 0] | 0) < 2) { 35323 _reallymarkobject(i3, i2); 35324 STACKTOP = i1; 35325 return; 35326 } else { 35327 HEAP8[i5] = HEAP8[i3 + 60 | 0] & 3 | i4 & 184; 35328 STACKTOP = i1; 35329 return; 35330 } 35331 } 35332 function _luaL_openlibs(i1) { 35333 i1 = i1 | 0; 35334 var i2 = 0; 35335 i2 = STACKTOP; 35336 _luaL_requiref(i1, 2592, 144, 1); 35337 _lua_settop(i1, -2); 35338 _luaL_requiref(i1, 2600, 145, 1); 35339 _lua_settop(i1, -2); 35340 _luaL_requiref(i1, 2608, 146, 1); 35341 _lua_settop(i1, -2); 35342 _luaL_requiref(i1, 2624, 147, 1); 35343 _lua_settop(i1, -2); 35344 _luaL_requiref(i1, 2632, 148, 1); 35345 _lua_settop(i1, -2); 35346 _luaL_requiref(i1, 2640, 149, 1); 35347 _lua_settop(i1, -2); 35348 _luaL_requiref(i1, 2648, 150, 1); 35349 _lua_settop(i1, -2); 35350 _luaL_requiref(i1, 2656, 151, 1); 35351 _lua_settop(i1, -2); 35352 _luaL_requiref(i1, 2664, 152, 1); 35353 _lua_settop(i1, -2); 35354 _luaL_requiref(i1, 2672, 153, 1); 35355 _lua_settop(i1, -2); 35356 _luaL_getsubtable(i1, -1001e3, 2576) | 0; 35357 _lua_settop(i1, -2); 35358 STACKTOP = i2; 35359 return; 35360 } 35361 function _luaX_token2str(i4, i3) { 35362 i4 = i4 | 0; 35363 i3 = i3 | 0; 35364 var i1 = 0, i2 = 0, i5 = 0; 35365 i1 = STACKTOP; 35366 STACKTOP = STACKTOP + 16 | 0; 35367 i2 = i1; 35368 if ((i3 | 0) >= 257) { 35369 i5 = HEAP32[12096 + (i3 + -257 << 2) >> 2] | 0; 35370 if ((i3 | 0) >= 286) { 35371 STACKTOP = i1; 35372 return i5 | 0; 35373 } 35374 i4 = HEAP32[i4 + 52 >> 2] | 0; 35375 HEAP32[i2 >> 2] = i5; 35376 i5 = _luaO_pushfstring(i4, 12256, i2) | 0; 35377 STACKTOP = i1; 35378 return i5 | 0; 35379 } 35380 i4 = HEAP32[i4 + 52 >> 2] | 0; 35381 if ((HEAP8[i3 + 10913 | 0] & 4) == 0) { 35382 HEAP32[i2 >> 2] = i3; 35383 i5 = _luaO_pushfstring(i4, 12240, i2) | 0; 35384 STACKTOP = i1; 35385 return i5 | 0; 35386 } else { 35387 HEAP32[i2 >> 2] = i3; 35388 i5 = _luaO_pushfstring(i4, 12232, i2) | 0; 35389 STACKTOP = i1; 35390 return i5 | 0; 35391 } 35392 return 0; 35393 } 35394 function _luaL_buffinitsize(i6, i1, i7) { 35395 i6 = i6 | 0; 35396 i1 = i1 | 0; 35397 i7 = i7 | 0; 35398 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i8 = 0; 35399 i2 = STACKTOP; 35400 HEAP32[i1 + 12 >> 2] = i6; 35401 i3 = i1 + 16 | 0; 35402 HEAP32[i1 >> 2] = i3; 35403 i5 = i1 + 8 | 0; 35404 HEAP32[i5 >> 2] = 0; 35405 i4 = i1 + 4 | 0; 35406 HEAP32[i4 >> 2] = 1024; 35407 if (!(i7 >>> 0 > 1024)) { 35408 i7 = i3; 35409 i8 = 0; 35410 i8 = i7 + i8 | 0; 35411 STACKTOP = i2; 35412 return i8 | 0; 35413 } 35414 i8 = i7 >>> 0 > 2048 ? i7 : 2048; 35415 i7 = _lua_newuserdata(i6, i8) | 0; 35416 _memcpy(i7 | 0, HEAP32[i1 >> 2] | 0, HEAP32[i5 >> 2] | 0) | 0; 35417 if ((HEAP32[i1 >> 2] | 0) != (i3 | 0)) { 35418 _lua_remove(i6, -2); 35419 } 35420 HEAP32[i1 >> 2] = i7; 35421 HEAP32[i4 >> 2] = i8; 35422 i8 = HEAP32[i5 >> 2] | 0; 35423 i8 = i7 + i8 | 0; 35424 STACKTOP = i2; 35425 return i8 | 0; 35426 } 35427 function _luaE_freethread(i1, i3) { 35428 i1 = i1 | 0; 35429 i3 = i3 | 0; 35430 var i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0; 35431 i2 = STACKTOP; 35432 i4 = i3 + 28 | 0; 35433 _luaF_close(i3, HEAP32[i4 >> 2] | 0); 35434 i5 = HEAP32[i4 >> 2] | 0; 35435 if ((i5 | 0) == 0) { 35436 _luaM_realloc_(i1, i3, 112, 0) | 0; 35437 STACKTOP = i2; 35438 return; 35439 } 35440 HEAP32[i3 + 16 >> 2] = i3 + 72; 35441 i7 = i3 + 84 | 0; 35442 i6 = HEAP32[i7 >> 2] | 0; 35443 HEAP32[i7 >> 2] = 0; 35444 if ((i6 | 0) != 0) { 35445 while (1) { 35446 i5 = HEAP32[i6 + 12 >> 2] | 0; 35447 _luaM_realloc_(i3, i6, 40, 0) | 0; 35448 if ((i5 | 0) == 0) { 35449 break; 35450 } else { 35451 i6 = i5; 35452 } 35453 } 35454 i5 = HEAP32[i4 >> 2] | 0; 35455 } 35456 _luaM_realloc_(i3, i5, HEAP32[i3 + 32 >> 2] << 4, 0) | 0; 35457 _luaM_realloc_(i1, i3, 112, 0) | 0; 35458 STACKTOP = i2; 35459 return; 35460 } 35461 function ___toread(i1) { 35462 i1 = i1 | 0; 35463 var i2 = 0, i3 = 0, i4 = 0; 35464 i3 = STACKTOP; 35465 i4 = i1 + 74 | 0; 35466 i2 = HEAP8[i4] | 0; 35467 HEAP8[i4] = i2 + 255 | i2; 35468 i4 = i1 + 20 | 0; 35469 i2 = i1 + 44 | 0; 35470 if ((HEAP32[i4 >> 2] | 0) >>> 0 > (HEAP32[i2 >> 2] | 0) >>> 0) { 35471 FUNCTION_TABLE_iiii[HEAP32[i1 + 36 >> 2] & 3](i1, 0, 0) | 0; 35472 } 35473 HEAP32[i1 + 16 >> 2] = 0; 35474 HEAP32[i1 + 28 >> 2] = 0; 35475 HEAP32[i4 >> 2] = 0; 35476 i4 = HEAP32[i1 >> 2] | 0; 35477 if ((i4 & 20 | 0) == 0) { 35478 i4 = HEAP32[i2 >> 2] | 0; 35479 HEAP32[i1 + 8 >> 2] = i4; 35480 HEAP32[i1 + 4 >> 2] = i4; 35481 i4 = 0; 35482 STACKTOP = i3; 35483 return i4 | 0; 35484 } 35485 if ((i4 & 4 | 0) == 0) { 35486 i4 = -1; 35487 STACKTOP = i3; 35488 return i4 | 0; 35489 } 35490 HEAP32[i1 >> 2] = i4 | 32; 35491 i4 = -1; 35492 STACKTOP = i3; 35493 return i4 | 0; 35494 } 35495 function _lua_callk(i3, i7, i4, i6, i5) { 35496 i3 = i3 | 0; 35497 i7 = i7 | 0; 35498 i4 = i4 | 0; 35499 i6 = i6 | 0; 35500 i5 = i5 | 0; 35501 var i1 = 0, i2 = 0, i8 = 0; 35502 i1 = STACKTOP; 35503 i2 = i3 + 8 | 0; 35504 i7 = (HEAP32[i2 >> 2] | 0) + (~i7 << 4) | 0; 35505 if ((i5 | 0) != 0 ? (HEAP16[i3 + 36 >> 1] | 0) == 0 : 0) { 35506 i8 = i3 + 16 | 0; 35507 HEAP32[(HEAP32[i8 >> 2] | 0) + 28 >> 2] = i5; 35508 HEAP32[(HEAP32[i8 >> 2] | 0) + 24 >> 2] = i6; 35509 _luaD_call(i3, i7, i4, 1); 35510 } else { 35511 _luaD_call(i3, i7, i4, 0); 35512 } 35513 if (!((i4 | 0) == -1)) { 35514 STACKTOP = i1; 35515 return; 35516 } 35517 i3 = (HEAP32[i3 + 16 >> 2] | 0) + 4 | 0; 35518 i2 = HEAP32[i2 >> 2] | 0; 35519 if (!((HEAP32[i3 >> 2] | 0) >>> 0 < i2 >>> 0)) { 35520 STACKTOP = i1; 35521 return; 35522 } 35523 HEAP32[i3 >> 2] = i2; 35524 STACKTOP = i1; 35525 return; 35526 } 35527 function _luaX_newstring(i3, i5, i4) { 35528 i3 = i3 | 0; 35529 i5 = i5 | 0; 35530 i4 = i4 | 0; 35531 var i1 = 0, i2 = 0, i6 = 0; 35532 i1 = STACKTOP; 35533 i2 = HEAP32[i3 + 52 >> 2] | 0; 35534 i5 = _luaS_newlstr(i2, i5, i4) | 0; 35535 i4 = i2 + 8 | 0; 35536 i6 = HEAP32[i4 >> 2] | 0; 35537 HEAP32[i4 >> 2] = i6 + 16; 35538 HEAP32[i6 >> 2] = i5; 35539 HEAP32[i6 + 8 >> 2] = HEAPU8[i5 + 4 | 0] | 0 | 64; 35540 i6 = _luaH_set(i2, HEAP32[(HEAP32[i3 + 48 >> 2] | 0) + 4 >> 2] | 0, (HEAP32[i4 >> 2] | 0) + -16 | 0) | 0; 35541 i3 = i6 + 8 | 0; 35542 if ((HEAP32[i3 >> 2] | 0) == 0 ? (HEAP32[i6 >> 2] = 1, HEAP32[i3 >> 2] = 1, (HEAP32[(HEAP32[i2 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) : 0) { 35543 _luaC_step(i2); 35544 } 35545 HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + -16; 35546 STACKTOP = i1; 35547 return i5 | 0; 35548 } 35549 function _strtod(i3, i2) { 35550 i3 = i3 | 0; 35551 i2 = i2 | 0; 35552 var i1 = 0, i4 = 0, d5 = 0.0, i6 = 0, i7 = 0; 35553 i1 = STACKTOP; 35554 STACKTOP = STACKTOP + 112 | 0; 35555 i4 = i1; 35556 i7 = i4 + 0 | 0; 35557 i6 = i7 + 112 | 0; 35558 do { 35559 HEAP32[i7 >> 2] = 0; 35560 i7 = i7 + 4 | 0; 35561 } while ((i7 | 0) < (i6 | 0)); 35562 i6 = i4 + 4 | 0; 35563 HEAP32[i6 >> 2] = i3; 35564 i7 = i4 + 8 | 0; 35565 HEAP32[i7 >> 2] = -1; 35566 HEAP32[i4 + 44 >> 2] = i3; 35567 HEAP32[i4 + 76 >> 2] = -1; 35568 ___shlim(i4, 0); 35569 d5 = +___floatscan(i4, 1, 1); 35570 i4 = (HEAP32[i6 >> 2] | 0) - (HEAP32[i7 >> 2] | 0) + (HEAP32[i4 + 108 >> 2] | 0) | 0; 35571 if ((i2 | 0) == 0) { 35572 STACKTOP = i1; 35573 return +d5; 35574 } 35575 if ((i4 | 0) != 0) { 35576 i3 = i3 + i4 | 0; 35577 } 35578 HEAP32[i2 >> 2] = i3; 35579 STACKTOP = i1; 35580 return +d5; 35581 } 35582 function _f_seek(i1) { 35583 i1 = i1 | 0; 35584 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, d6 = 0.0; 35585 i2 = STACKTOP; 35586 STACKTOP = STACKTOP + 16 | 0; 35587 i3 = _luaL_checkudata(i1, 1, 2832) | 0; 35588 if ((HEAP32[i3 + 4 >> 2] | 0) == 0) { 35589 _luaL_error(i1, 3080, i2) | 0; 35590 } 35591 i3 = HEAP32[i3 >> 2] | 0; 35592 i5 = _luaL_checkoption(i1, 2, 3208, 3184) | 0; 35593 d6 = +_luaL_optnumber(i1, 3, 0.0); 35594 i4 = ~~d6; 35595 if (!(+(i4 | 0) == d6)) { 35596 _luaL_argerror(i1, 3, 3224) | 0; 35597 } 35598 if ((_fseek(i3 | 0, i4 | 0, HEAP32[3168 + (i5 << 2) >> 2] | 0) | 0) == 0) { 35599 _lua_pushnumber(i1, +(_ftell(i3 | 0) | 0)); 35600 i5 = 1; 35601 STACKTOP = i2; 35602 return i5 | 0; 35603 } else { 35604 i5 = _luaL_fileresult(i1, 0, 0) | 0; 35605 STACKTOP = i2; 35606 return i5 | 0; 35607 } 35608 return 0; 35609 } 35610 function _setpath(i1, i4, i8, i7, i3) { 35611 i1 = i1 | 0; 35612 i4 = i4 | 0; 35613 i8 = i8 | 0; 35614 i7 = i7 | 0; 35615 i3 = i3 | 0; 35616 var i2 = 0, i5 = 0, i6 = 0; 35617 i2 = STACKTOP; 35618 i8 = _getenv(i8 | 0) | 0; 35619 if ((i8 | 0) == 0) { 35620 i7 = _getenv(i7 | 0) | 0; 35621 if ((i7 | 0) != 0) { 35622 i5 = i7; 35623 i6 = 3; 35624 } 35625 } else { 35626 i5 = i8; 35627 i6 = 3; 35628 } 35629 if ((i6 | 0) == 3 ? (_lua_getfield(i1, -1001e3, 4832), i8 = _lua_toboolean(i1, -1) | 0, _lua_settop(i1, -2), (i8 | 0) == 0) : 0) { 35630 _luaL_gsub(i1, _luaL_gsub(i1, i5, 4808, 4816) | 0, 4824, i3) | 0; 35631 _lua_remove(i1, -2); 35632 _lua_setfield(i1, -2, i4); 35633 STACKTOP = i2; 35634 return; 35635 } 35636 _lua_pushstring(i1, i3) | 0; 35637 _lua_setfield(i1, -2, i4); 35638 STACKTOP = i2; 35639 return; 35640 } 35641 function _luaU_header(i1) { 35642 i1 = i1 | 0; 35643 var i2 = 0, i3 = 0; 35644 i2 = STACKTOP; 35645 HEAP8[i1] = 1635077147; 35646 HEAP8[i1 + 1 | 0] = 6387020; 35647 HEAP8[i1 + 2 | 0] = 24949; 35648 HEAP8[i1 + 3 | 0] = 97; 35649 HEAP8[i1 + 4 | 0] = 82; 35650 HEAP8[i1 + 5 | 0] = 0; 35651 HEAP8[i1 + 6 | 0] = 1; 35652 HEAP8[i1 + 7 | 0] = 4; 35653 HEAP8[i1 + 8 | 0] = 4; 35654 HEAP8[i1 + 9 | 0] = 4; 35655 HEAP8[i1 + 10 | 0] = 8; 35656 i3 = i1 + 12 | 0; 35657 HEAP8[i1 + 11 | 0] = 0; 35658 HEAP8[i3 + 0 | 0] = HEAP8[8816 | 0] | 0; 35659 HEAP8[i3 + 1 | 0] = HEAP8[8817 | 0] | 0; 35660 HEAP8[i3 + 2 | 0] = HEAP8[8818 | 0] | 0; 35661 HEAP8[i3 + 3 | 0] = HEAP8[8819 | 0] | 0; 35662 HEAP8[i3 + 4 | 0] = HEAP8[8820 | 0] | 0; 35663 HEAP8[i3 + 5 | 0] = HEAP8[8821 | 0] | 0; 35664 STACKTOP = i2; 35665 return; 35666 } 35667 function _db_setlocal(i1) { 35668 i1 = i1 | 0; 35669 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0; 35670 i2 = STACKTOP; 35671 STACKTOP = STACKTOP + 112 | 0; 35672 i3 = i2; 35673 if ((_lua_type(i1, 1) | 0) == 8) { 35674 i5 = _lua_tothread(i1, 1) | 0; 35675 i4 = 1; 35676 } else { 35677 i5 = i1; 35678 i4 = 0; 35679 } 35680 i6 = i4 + 1 | 0; 35681 if ((_lua_getstack(i5, _luaL_checkinteger(i1, i6) | 0, i3) | 0) == 0) { 35682 i6 = _luaL_argerror(i1, i6, 11560) | 0; 35683 STACKTOP = i2; 35684 return i6 | 0; 35685 } else { 35686 i6 = i4 + 3 | 0; 35687 _luaL_checkany(i1, i6); 35688 _lua_settop(i1, i6); 35689 _lua_xmove(i1, i5, 1); 35690 _lua_pushstring(i1, _lua_setlocal(i5, i3, _luaL_checkinteger(i1, i4 | 2) | 0) | 0) | 0; 35691 i6 = 1; 35692 STACKTOP = i2; 35693 return i6 | 0; 35694 } 35695 return 0; 35696 } 35697 function _tremove(i1) { 35698 i1 = i1 | 0; 35699 var i2 = 0, i3 = 0, i4 = 0, i5 = 0; 35700 i2 = STACKTOP; 35701 _luaL_checktype(i1, 1, 5); 35702 i3 = _luaL_len(i1, 1) | 0; 35703 i4 = _luaL_optinteger(i1, 2, i3) | 0; 35704 if ((i4 | 0) != (i3 | 0) ? (i4 | 0) < 1 | (i4 | 0) > (i3 + 1 | 0) : 0) { 35705 _luaL_argerror(i1, 1, 8256) | 0; 35706 } 35707 _lua_rawgeti(i1, 1, i4); 35708 if ((i4 | 0) >= (i3 | 0)) { 35709 i5 = i4; 35710 _lua_pushnil(i1); 35711 _lua_rawseti(i1, 1, i5); 35712 STACKTOP = i2; 35713 return 1; 35714 } 35715 while (1) { 35716 i5 = i4 + 1 | 0; 35717 _lua_rawgeti(i1, 1, i5); 35718 _lua_rawseti(i1, 1, i4); 35719 if ((i5 | 0) == (i3 | 0)) { 35720 break; 35721 } else { 35722 i4 = i5; 35723 } 35724 } 35725 _lua_pushnil(i1); 35726 _lua_rawseti(i1, 1, i3); 35727 STACKTOP = i2; 35728 return 1; 35729 } 35730 function _luaL_checkudata(i1, i7, i5) { 35731 i1 = i1 | 0; 35732 i7 = i7 | 0; 35733 i5 = i5 | 0; 35734 var i2 = 0, i3 = 0, i4 = 0, i6 = 0; 35735 i2 = STACKTOP; 35736 STACKTOP = STACKTOP + 16 | 0; 35737 i4 = i2; 35738 i3 = _lua_touserdata(i1, i7) | 0; 35739 if (((i3 | 0) != 0 ? (_lua_getmetatable(i1, i7) | 0) != 0 : 0) ? (_lua_getfield(i1, -1001e3, i5), i6 = (_lua_rawequal(i1, -1, -2) | 0) == 0, i6 = i6 ? 0 : i3, _lua_settop(i1, -3), (i6 | 0) != 0) : 0) { 35740 i7 = i6; 35741 STACKTOP = i2; 35742 return i7 | 0; 35743 } 35744 i6 = _lua_typename(i1, _lua_type(i1, i7) | 0) | 0; 35745 HEAP32[i4 >> 2] = i5; 35746 HEAP32[i4 + 4 >> 2] = i6; 35747 _luaL_argerror(i1, i7, _lua_pushfstring(i1, 1744, i4) | 0) | 0; 35748 i7 = 0; 35749 STACKTOP = i2; 35750 return i7 | 0; 35751 } 35752 function _luaL_error(i1, i5, i7) { 35753 i1 = i1 | 0; 35754 i5 = i5 | 0; 35755 i7 = i7 | 0; 35756 var i2 = 0, i3 = 0, i4 = 0, i6 = 0; 35757 i4 = STACKTOP; 35758 STACKTOP = STACKTOP + 128 | 0; 35759 i3 = i4; 35760 i2 = i4 + 24 | 0; 35761 i4 = i4 + 8 | 0; 35762 HEAP32[i4 >> 2] = i7; 35763 if ((_lua_getstack(i1, 1, i2) | 0) != 0 ? (_lua_getinfo(i1, 1152, i2) | 0, i6 = HEAP32[i2 + 20 >> 2] | 0, (i6 | 0) > 0) : 0) { 35764 HEAP32[i3 >> 2] = i2 + 36; 35765 HEAP32[i3 + 4 >> 2] = i6; 35766 _lua_pushfstring(i1, 1160, i3) | 0; 35767 _lua_pushvfstring(i1, i5, i4) | 0; 35768 _lua_concat(i1, 2); 35769 _lua_error(i1) | 0; 35770 } 35771 _lua_pushlstring(i1, 1168, 0) | 0; 35772 _lua_pushvfstring(i1, i5, i4) | 0; 35773 _lua_concat(i1, 2); 35774 _lua_error(i1) | 0; 35775 return 0; 35776 } 35777 function _luaK_infix(i1, i4, i3) { 35778 i1 = i1 | 0; 35779 i4 = i4 | 0; 35780 i3 = i3 | 0; 35781 var i2 = 0; 35782 i2 = STACKTOP; 35783 L1 : do { 35784 switch (i4 | 0) { 35785 case 6: 35786 { 35787 _luaK_exp2nextreg(i1, i3); 35788 break; 35789 } 35790 case 5: 35791 case 4: 35792 case 3: 35793 case 2: 35794 case 1: 35795 case 0: 35796 { 35797 if (((HEAP32[i3 >> 2] | 0) == 5 ? (HEAP32[i3 + 16 >> 2] | 0) == -1 : 0) ? (HEAP32[i3 + 20 >> 2] | 0) == -1 : 0) { 35798 break L1; 35799 } 35800 _luaK_exp2RK(i1, i3) | 0; 35801 break; 35802 } 35803 case 13: 35804 { 35805 _luaK_goiftrue(i1, i3); 35806 break; 35807 } 35808 case 14: 35809 { 35810 _luaK_goiffalse(i1, i3); 35811 break; 35812 } 35813 default: 35814 { 35815 _luaK_exp2RK(i1, i3) | 0; 35816 } 35817 } 35818 } while (0); 35819 STACKTOP = i2; 35820 return; 35821 } 35822 function _luaD_shrinkstack(i1) { 35823 i1 = i1 | 0; 35824 var i2 = 0, i3 = 0, i4 = 0, i5 = 0; 35825 i2 = STACKTOP; 35826 i4 = HEAP32[i1 + 8 >> 2] | 0; 35827 i3 = HEAP32[i1 + 16 >> 2] | 0; 35828 if ((i3 | 0) != 0) { 35829 do { 35830 i5 = HEAP32[i3 + 4 >> 2] | 0; 35831 i4 = i4 >>> 0 < i5 >>> 0 ? i5 : i4; 35832 i3 = HEAP32[i3 + 8 >> 2] | 0; 35833 } while ((i3 | 0) != 0); 35834 } 35835 i3 = i4 - (HEAP32[i1 + 28 >> 2] | 0) | 0; 35836 i4 = (i3 >> 4) + 1 | 0; 35837 i4 = ((i4 | 0) / 8 | 0) + 10 + i4 | 0; 35838 i4 = (i4 | 0) > 1e6 ? 1e6 : i4; 35839 if ((i3 | 0) > 15999984) { 35840 STACKTOP = i2; 35841 return; 35842 } 35843 if ((i4 | 0) >= (HEAP32[i1 + 32 >> 2] | 0)) { 35844 STACKTOP = i2; 35845 return; 35846 } 35847 _luaD_reallocstack(i1, i4); 35848 STACKTOP = i2; 35849 return; 35850 } 35851 function _luaF_newproto(i1) { 35852 i1 = i1 | 0; 35853 var i2 = 0; 35854 i2 = STACKTOP; 35855 i1 = _luaC_newobj(i1, 9, 80, 0, 0) | 0; 35856 HEAP32[i1 + 8 >> 2] = 0; 35857 HEAP32[i1 + 44 >> 2] = 0; 35858 HEAP32[i1 + 16 >> 2] = 0; 35859 HEAP32[i1 + 56 >> 2] = 0; 35860 HEAP32[i1 + 12 >> 2] = 0; 35861 HEAP32[i1 + 32 >> 2] = 0; 35862 HEAP32[i1 + 48 >> 2] = 0; 35863 HEAP32[i1 + 20 >> 2] = 0; 35864 HEAP32[i1 + 52 >> 2] = 0; 35865 HEAP32[i1 + 28 >> 2] = 0; 35866 HEAP32[i1 + 40 >> 2] = 0; 35867 HEAP8[i1 + 76 | 0] = 0; 35868 HEAP8[i1 + 77 | 0] = 0; 35869 HEAP8[i1 + 78 | 0] = 0; 35870 HEAP32[i1 + 24 >> 2] = 0; 35871 HEAP32[i1 + 60 >> 2] = 0; 35872 HEAP32[i1 + 64 >> 2] = 0; 35873 HEAP32[i1 + 68 >> 2] = 0; 35874 HEAP32[i1 + 36 >> 2] = 0; 35875 STACKTOP = i2; 35876 return i1 | 0; 35877 } 35878 function _luaF_freeproto(i2, i1) { 35879 i2 = i2 | 0; 35880 i1 = i1 | 0; 35881 var i3 = 0; 35882 i3 = STACKTOP; 35883 _luaM_realloc_(i2, HEAP32[i1 + 12 >> 2] | 0, HEAP32[i1 + 48 >> 2] << 2, 0) | 0; 35884 _luaM_realloc_(i2, HEAP32[i1 + 16 >> 2] | 0, HEAP32[i1 + 56 >> 2] << 2, 0) | 0; 35885 _luaM_realloc_(i2, HEAP32[i1 + 8 >> 2] | 0, HEAP32[i1 + 44 >> 2] << 4, 0) | 0; 35886 _luaM_realloc_(i2, HEAP32[i1 + 20 >> 2] | 0, HEAP32[i1 + 52 >> 2] << 2, 0) | 0; 35887 _luaM_realloc_(i2, HEAP32[i1 + 24 >> 2] | 0, (HEAP32[i1 + 60 >> 2] | 0) * 12 | 0, 0) | 0; 35888 _luaM_realloc_(i2, HEAP32[i1 + 28 >> 2] | 0, HEAP32[i1 + 40 >> 2] << 3, 0) | 0; 35889 _luaM_realloc_(i2, i1, 80, 0) | 0; 35890 STACKTOP = i3; 35891 return; 35892 } 35893 function _luaK_patchclose(i3, i7, i4) { 35894 i3 = i3 | 0; 35895 i7 = i7 | 0; 35896 i4 = i4 | 0; 35897 var i1 = 0, i2 = 0, i5 = 0, i6 = 0, i8 = 0; 35898 i2 = STACKTOP; 35899 if ((i7 | 0) == -1) { 35900 STACKTOP = i2; 35901 return; 35902 } 35903 i3 = HEAP32[(HEAP32[i3 >> 2] | 0) + 12 >> 2] | 0; 35904 i4 = (i4 << 6) + 64 & 16320; 35905 while (1) { 35906 i6 = i3 + (i7 << 2) | 0; 35907 i5 = HEAP32[i6 >> 2] | 0; 35908 i8 = (i5 >>> 14) + -131071 | 0; 35909 if ((i8 | 0) == -1) { 35910 break; 35911 } 35912 i7 = i7 + 1 + i8 | 0; 35913 HEAP32[i6 >> 2] = i5 & -16321 | i4; 35914 if ((i7 | 0) == -1) { 35915 i1 = 6; 35916 break; 35917 } 35918 } 35919 if ((i1 | 0) == 6) { 35920 STACKTOP = i2; 35921 return; 35922 } 35923 HEAP32[i6 >> 2] = i5 & -16321 | i4; 35924 STACKTOP = i2; 35925 return; 35926 } 35927 function _loadfunc(i1, i4, i5) { 35928 i1 = i1 | 0; 35929 i4 = i4 | 0; 35930 i5 = i5 | 0; 35931 var i2 = 0, i3 = 0, i6 = 0; 35932 i2 = STACKTOP; 35933 STACKTOP = STACKTOP + 16 | 0; 35934 i3 = i2; 35935 i6 = _luaL_gsub(i1, i5, 4936, 4944) | 0; 35936 i5 = _strchr(i6, 45) | 0; 35937 do { 35938 if ((i5 | 0) != 0) { 35939 HEAP32[i3 >> 2] = _lua_pushlstring(i1, i6, i5 - i6 | 0) | 0; 35940 i6 = _ll_loadfunc(i1, i4, _lua_pushfstring(i1, 4952, i3) | 0) | 0; 35941 if ((i6 | 0) == 2) { 35942 i6 = i5 + 1 | 0; 35943 break; 35944 } else { 35945 STACKTOP = i2; 35946 return i6 | 0; 35947 } 35948 } 35949 } while (0); 35950 HEAP32[i3 >> 2] = i6; 35951 i6 = _ll_loadfunc(i1, i4, _lua_pushfstring(i1, 4952, i3) | 0) | 0; 35952 STACKTOP = i2; 35953 return i6 | 0; 35954 } 35955 function _luaK_setlist(i1, i3, i4, i5) { 35956 i1 = i1 | 0; 35957 i3 = i3 | 0; 35958 i4 = i4 | 0; 35959 i5 = i5 | 0; 35960 var i2 = 0; 35961 i2 = STACKTOP; 35962 i4 = ((i4 + -1 | 0) / 50 | 0) + 1 | 0; 35963 i5 = (i5 | 0) == -1 ? 0 : i5; 35964 if ((i4 | 0) < 512) { 35965 _luaK_code(i1, i3 << 6 | i5 << 23 | i4 << 14 | 36) | 0; 35966 i4 = i3 + 1 | 0; 35967 i4 = i4 & 255; 35968 i5 = i1 + 48 | 0; 35969 HEAP8[i5] = i4; 35970 STACKTOP = i2; 35971 return; 35972 } 35973 if ((i4 | 0) >= 67108864) { 35974 _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10576); 35975 } 35976 _luaK_code(i1, i3 << 6 | i5 << 23 | 36) | 0; 35977 _luaK_code(i1, i4 << 6 | 39) | 0; 35978 i4 = i3 + 1 | 0; 35979 i4 = i4 & 255; 35980 i5 = i1 + 48 | 0; 35981 HEAP8[i5] = i4; 35982 STACKTOP = i2; 35983 return; 35984 } 35985 function _lua_getstack(i2, i6, i3) { 35986 i2 = i2 | 0; 35987 i6 = i6 | 0; 35988 i3 = i3 | 0; 35989 var i1 = 0, i4 = 0, i5 = 0; 35990 i1 = STACKTOP; 35991 L1 : do { 35992 if ((i6 | 0) >= 0) { 35993 i5 = HEAP32[i2 + 16 >> 2] | 0; 35994 if ((i6 | 0) > 0) { 35995 i4 = i2 + 72 | 0; 35996 do { 35997 if ((i5 | 0) == (i4 | 0)) { 35998 i2 = 0; 35999 break L1; 36000 } 36001 i6 = i6 + -1 | 0; 36002 i5 = HEAP32[i5 + 8 >> 2] | 0; 36003 } while ((i6 | 0) > 0); 36004 if ((i6 | 0) != 0) { 36005 i2 = 0; 36006 break; 36007 } 36008 } 36009 if ((i5 | 0) != (i2 + 72 | 0)) { 36010 HEAP32[i3 + 96 >> 2] = i5; 36011 i2 = 1; 36012 } else { 36013 i2 = 0; 36014 } 36015 } else { 36016 i2 = 0; 36017 } 36018 } while (0); 36019 STACKTOP = i1; 36020 return i2 | 0; 36021 } 36022 function _luaC_checkupvalcolor(i1, i5) { 36023 i1 = i1 | 0; 36024 i5 = i5 | 0; 36025 var i2 = 0, i3 = 0, i4 = 0; 36026 i2 = STACKTOP; 36027 i4 = i5 + 5 | 0; 36028 i3 = HEAPU8[i4] | 0; 36029 if ((i3 & 7 | 0) != 0) { 36030 STACKTOP = i2; 36031 return; 36032 } 36033 if ((HEAP8[i1 + 62 | 0] | 0) != 2 ? (HEAPU8[i1 + 61 | 0] | 0) >= 2 : 0) { 36034 HEAP8[i4] = HEAP8[i1 + 60 | 0] & 3 | i3 & 184; 36035 STACKTOP = i2; 36036 return; 36037 } 36038 HEAP8[i4] = i3 & 187 | 4; 36039 i3 = HEAP32[i5 + 8 >> 2] | 0; 36040 if ((HEAP32[i3 + 8 >> 2] & 64 | 0) == 0) { 36041 STACKTOP = i2; 36042 return; 36043 } 36044 i3 = HEAP32[i3 >> 2] | 0; 36045 if ((HEAP8[i3 + 5 | 0] & 3) == 0) { 36046 STACKTOP = i2; 36047 return; 36048 } 36049 _reallymarkobject(i1, i3); 36050 STACKTOP = i2; 36051 return; 36052 } 36053 function _luaB_collectgarbage(i1) { 36054 i1 = i1 | 0; 36055 var i2 = 0, i3 = 0, i4 = 0; 36056 i2 = STACKTOP; 36057 i4 = HEAP32[10160 + ((_luaL_checkoption(i1, 1, 10040, 9976) | 0) << 2) >> 2] | 0; 36058 i3 = _lua_gc(i1, i4, _luaL_optinteger(i1, 2, 0) | 0) | 0; 36059 if ((i4 | 0) == 3) { 36060 i4 = _lua_gc(i1, 4, 0) | 0; 36061 _lua_pushnumber(i1, +(i3 | 0) + +(i4 | 0) * .0009765625); 36062 _lua_pushinteger(i1, i4); 36063 i4 = 2; 36064 STACKTOP = i2; 36065 return i4 | 0; 36066 } else if ((i4 | 0) == 9 | (i4 | 0) == 5) { 36067 _lua_pushboolean(i1, i3); 36068 i4 = 1; 36069 STACKTOP = i2; 36070 return i4 | 0; 36071 } else { 36072 _lua_pushinteger(i1, i3); 36073 i4 = 1; 36074 STACKTOP = i2; 36075 return i4 | 0; 36076 } 36077 return 0; 36078 } 36079 function _maxn(i1) { 36080 i1 = i1 | 0; 36081 var i2 = 0, d3 = 0.0, d4 = 0.0; 36082 i2 = STACKTOP; 36083 _luaL_checktype(i1, 1, 5); 36084 _lua_pushnil(i1); 36085 L1 : do { 36086 if ((_lua_next(i1, 1) | 0) == 0) { 36087 d3 = 0.0; 36088 } else { 36089 d4 = 0.0; 36090 while (1) { 36091 while (1) { 36092 _lua_settop(i1, -2); 36093 if ((_lua_type(i1, -1) | 0) == 3 ? (d3 = +_lua_tonumberx(i1, -1, 0), d3 > d4) : 0) { 36094 break; 36095 } 36096 if ((_lua_next(i1, 1) | 0) == 0) { 36097 d3 = d4; 36098 break L1; 36099 } 36100 } 36101 if ((_lua_next(i1, 1) | 0) == 0) { 36102 break; 36103 } else { 36104 d4 = d3; 36105 } 36106 } 36107 } 36108 } while (0); 36109 _lua_pushnumber(i1, d3); 36110 STACKTOP = i2; 36111 return 1; 36112 } 36113 function _str_char(i1) { 36114 i1 = i1 | 0; 36115 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0; 36116 i2 = STACKTOP; 36117 STACKTOP = STACKTOP + 1040 | 0; 36118 i4 = i2; 36119 i3 = _lua_gettop(i1) | 0; 36120 i5 = _luaL_buffinitsize(i1, i4, i3) | 0; 36121 if ((i3 | 0) < 1) { 36122 _luaL_pushresultsize(i4, i3); 36123 STACKTOP = i2; 36124 return 1; 36125 } else { 36126 i6 = 1; 36127 } 36128 while (1) { 36129 i7 = _luaL_checkinteger(i1, i6) | 0; 36130 if ((i7 & 255 | 0) != (i7 | 0)) { 36131 _luaL_argerror(i1, i6, 7920) | 0; 36132 } 36133 HEAP8[i5 + (i6 + -1) | 0] = i7; 36134 if ((i6 | 0) == (i3 | 0)) { 36135 break; 36136 } else { 36137 i6 = i6 + 1 | 0; 36138 } 36139 } 36140 _luaL_pushresultsize(i4, i3); 36141 STACKTOP = i2; 36142 return 1; 36143 } 36144 function _memcpy(i3, i2, i1) { 36145 i3 = i3 | 0; 36146 i2 = i2 | 0; 36147 i1 = i1 | 0; 36148 var i4 = 0; 36149 if ((i1 | 0) >= 4096) return _emscripten_memcpy_big(i3 | 0, i2 | 0, i1 | 0) | 0; 36150 i4 = i3 | 0; 36151 if ((i3 & 3) == (i2 & 3)) { 36152 while (i3 & 3) { 36153 if ((i1 | 0) == 0) return i4 | 0; 36154 HEAP8[i3] = HEAP8[i2] | 0; 36155 i3 = i3 + 1 | 0; 36156 i2 = i2 + 1 | 0; 36157 i1 = i1 - 1 | 0; 36158 } 36159 while ((i1 | 0) >= 4) { 36160 HEAP32[i3 >> 2] = HEAP32[i2 >> 2]; 36161 i3 = i3 + 4 | 0; 36162 i2 = i2 + 4 | 0; 36163 i1 = i1 - 4 | 0; 36164 } 36165 } 36166 while ((i1 | 0) > 0) { 36167 HEAP8[i3] = HEAP8[i2] | 0; 36168 i3 = i3 + 1 | 0; 36169 i2 = i2 + 1 | 0; 36170 i1 = i1 - 1 | 0; 36171 } 36172 return i4 | 0; 36173 } 36174 function _luaK_exp2val(i1, i5) { 36175 i1 = i1 | 0; 36176 i5 = i5 | 0; 36177 var i2 = 0, i3 = 0, i4 = 0, i6 = 0; 36178 i2 = STACKTOP; 36179 i3 = i5 + 16 | 0; 36180 i4 = i5 + 20 | 0; 36181 if ((HEAP32[i3 >> 2] | 0) == (HEAP32[i4 >> 2] | 0)) { 36182 _luaK_dischargevars(i1, i5); 36183 STACKTOP = i2; 36184 return; 36185 } 36186 _luaK_dischargevars(i1, i5); 36187 if ((HEAP32[i5 >> 2] | 0) == 6) { 36188 i6 = HEAP32[i5 + 8 >> 2] | 0; 36189 if ((HEAP32[i3 >> 2] | 0) == (HEAP32[i4 >> 2] | 0)) { 36190 STACKTOP = i2; 36191 return; 36192 } 36193 if ((i6 | 0) >= (HEAPU8[i1 + 46 | 0] | 0 | 0)) { 36194 _exp2reg(i1, i5, i6); 36195 STACKTOP = i2; 36196 return; 36197 } 36198 } 36199 _luaK_exp2nextreg(i1, i5); 36200 STACKTOP = i2; 36201 return; 36202 } 36203 function _str_reverse(i5) { 36204 i5 = i5 | 0; 36205 var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0; 36206 i2 = STACKTOP; 36207 STACKTOP = STACKTOP + 1056 | 0; 36208 i4 = i2 + 1040 | 0; 36209 i1 = i2; 36210 i3 = _luaL_checklstring(i5, 1, i4) | 0; 36211 i5 = _luaL_buffinitsize(i5, i1, HEAP32[i4 >> 2] | 0) | 0; 36212 i6 = HEAP32[i4 >> 2] | 0; 36213 if ((i6 | 0) == 0) { 36214 i7 = 0; 36215 _luaL_pushresultsize(i1, i7); 36216 STACKTOP = i2; 36217 return 1; 36218 } else { 36219 i7 = 0; 36220 } 36221 do { 36222 HEAP8[i5 + i7 | 0] = HEAP8[i3 + (i6 + ~i7) | 0] | 0; 36223 i7 = i7 + 1 | 0; 36224 i6 = HEAP32[i4 >> 2] | 0; 36225 } while (i7 >>> 0 < i6 >>> 0); 36226 _luaL_pushresultsize(i1, i6); 36227 STACKTOP = i2; 36228 return 1; 36229 } 36230 function _str_upper(i5) { 36231 i5 = i5 | 0; 36232 var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0; 36233 i1 = STACKTOP; 36234 STACKTOP = STACKTOP + 1056 | 0; 36235 i4 = i1 + 1040 | 0; 36236 i2 = i1; 36237 i3 = _luaL_checklstring(i5, 1, i4) | 0; 36238 i5 = _luaL_buffinitsize(i5, i2, HEAP32[i4 >> 2] | 0) | 0; 36239 if ((HEAP32[i4 >> 2] | 0) == 0) { 36240 i7 = 0; 36241 _luaL_pushresultsize(i2, i7); 36242 STACKTOP = i1; 36243 return 1; 36244 } else { 36245 i6 = 0; 36246 } 36247 do { 36248 HEAP8[i5 + i6 | 0] = _toupper(HEAPU8[i3 + i6 | 0] | 0 | 0) | 0; 36249 i6 = i6 + 1 | 0; 36250 i7 = HEAP32[i4 >> 2] | 0; 36251 } while (i6 >>> 0 < i7 >>> 0); 36252 _luaL_pushresultsize(i2, i7); 36253 STACKTOP = i1; 36254 return 1; 36255 } 36256 function _str_lower(i5) { 36257 i5 = i5 | 0; 36258 var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0; 36259 i1 = STACKTOP; 36260 STACKTOP = STACKTOP + 1056 | 0; 36261 i4 = i1 + 1040 | 0; 36262 i2 = i1; 36263 i3 = _luaL_checklstring(i5, 1, i4) | 0; 36264 i5 = _luaL_buffinitsize(i5, i2, HEAP32[i4 >> 2] | 0) | 0; 36265 if ((HEAP32[i4 >> 2] | 0) == 0) { 36266 i7 = 0; 36267 _luaL_pushresultsize(i2, i7); 36268 STACKTOP = i1; 36269 return 1; 36270 } else { 36271 i6 = 0; 36272 } 36273 do { 36274 HEAP8[i5 + i6 | 0] = _tolower(HEAPU8[i3 + i6 | 0] | 0 | 0) | 0; 36275 i6 = i6 + 1 | 0; 36276 i7 = HEAP32[i4 >> 2] | 0; 36277 } while (i6 >>> 0 < i7 >>> 0); 36278 _luaL_pushresultsize(i2, i7); 36279 STACKTOP = i1; 36280 return 1; 36281 } 36282 function ___divdi3(i1, i2, i3, i4) { 36283 i1 = i1 | 0; 36284 i2 = i2 | 0; 36285 i3 = i3 | 0; 36286 i4 = i4 | 0; 36287 var i5 = 0, i6 = 0, i7 = 0, i8 = 0; 36288 i5 = i2 >> 31 | ((i2 | 0) < 0 ? -1 : 0) << 1; 36289 i6 = ((i2 | 0) < 0 ? -1 : 0) >> 31 | ((i2 | 0) < 0 ? -1 : 0) << 1; 36290 i7 = i4 >> 31 | ((i4 | 0) < 0 ? -1 : 0) << 1; 36291 i8 = ((i4 | 0) < 0 ? -1 : 0) >> 31 | ((i4 | 0) < 0 ? -1 : 0) << 1; 36292 i1 = _i64Subtract(i5 ^ i1, i6 ^ i2, i5, i6) | 0; 36293 i2 = tempRet0; 36294 i5 = i7 ^ i5; 36295 i6 = i8 ^ i6; 36296 i7 = _i64Subtract((___udivmoddi4(i1, i2, _i64Subtract(i7 ^ i3, i8 ^ i4, i7, i8) | 0, tempRet0, 0) | 0) ^ i5, tempRet0 ^ i6, i5, i6) | 0; 36297 return i7 | 0; 36298 } 36299 function _luaK_setoneret(i1, i4) { 36300 i1 = i1 | 0; 36301 i4 = i4 | 0; 36302 var i2 = 0, i3 = 0; 36303 i2 = STACKTOP; 36304 i3 = HEAP32[i4 >> 2] | 0; 36305 if ((i3 | 0) == 13) { 36306 i3 = (HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i4 + 8 >> 2] << 2) | 0; 36307 HEAP32[i3 >> 2] = HEAP32[i3 >> 2] & 8388607 | 16777216; 36308 HEAP32[i4 >> 2] = 11; 36309 STACKTOP = i2; 36310 return; 36311 } else if ((i3 | 0) == 12) { 36312 HEAP32[i4 >> 2] = 6; 36313 i4 = i4 + 8 | 0; 36314 HEAP32[i4 >> 2] = (HEAP32[(HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i4 >> 2] << 2) >> 2] | 0) >>> 6 & 255; 36315 STACKTOP = i2; 36316 return; 36317 } else { 36318 STACKTOP = i2; 36319 return; 36320 } 36321 } 36322 function _luaV_tostring(i6, i1) { 36323 i6 = i6 | 0; 36324 i1 = i1 | 0; 36325 var i2 = 0, i3 = 0, i4 = 0, i5 = 0; 36326 i2 = STACKTOP; 36327 STACKTOP = STACKTOP + 48 | 0; 36328 i3 = i2; 36329 i4 = i2 + 8 | 0; 36330 i5 = i1 + 8 | 0; 36331 if ((HEAP32[i5 >> 2] | 0) != 3) { 36332 i6 = 0; 36333 STACKTOP = i2; 36334 return i6 | 0; 36335 } 36336 HEAPF64[tempDoublePtr >> 3] = +HEAPF64[i1 >> 3]; 36337 HEAP32[i3 >> 2] = HEAP32[tempDoublePtr >> 2]; 36338 HEAP32[i3 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2]; 36339 i6 = _luaS_newlstr(i6, i4, _sprintf(i4 | 0, 8936, i3 | 0) | 0) | 0; 36340 HEAP32[i1 >> 2] = i6; 36341 HEAP32[i5 >> 2] = HEAPU8[i6 + 4 | 0] | 0 | 64; 36342 i6 = 1; 36343 STACKTOP = i2; 36344 return i6 | 0; 36345 } 36346 function _strcmp(i4, i2) { 36347 i4 = i4 | 0; 36348 i2 = i2 | 0; 36349 var i1 = 0, i3 = 0, i5 = 0; 36350 i1 = STACKTOP; 36351 i5 = HEAP8[i4] | 0; 36352 i3 = HEAP8[i2] | 0; 36353 if (i5 << 24 >> 24 != i3 << 24 >> 24 | i5 << 24 >> 24 == 0 | i3 << 24 >> 24 == 0) { 36354 i4 = i5; 36355 i5 = i3; 36356 i4 = i4 & 255; 36357 i5 = i5 & 255; 36358 i5 = i4 - i5 | 0; 36359 STACKTOP = i1; 36360 return i5 | 0; 36361 } 36362 do { 36363 i4 = i4 + 1 | 0; 36364 i2 = i2 + 1 | 0; 36365 i5 = HEAP8[i4] | 0; 36366 i3 = HEAP8[i2] | 0; 36367 } while (!(i5 << 24 >> 24 != i3 << 24 >> 24 | i5 << 24 >> 24 == 0 | i3 << 24 >> 24 == 0)); 36368 i4 = i5 & 255; 36369 i5 = i3 & 255; 36370 i5 = i4 - i5 | 0; 36371 STACKTOP = i1; 36372 return i5 | 0; 36373 } 36374 function _lua_pushstring(i1, i3) { 36375 i1 = i1 | 0; 36376 i3 = i3 | 0; 36377 var i2 = 0, i4 = 0; 36378 i2 = STACKTOP; 36379 if ((i3 | 0) == 0) { 36380 i3 = i1 + 8 | 0; 36381 i1 = HEAP32[i3 >> 2] | 0; 36382 HEAP32[i1 + 8 >> 2] = 0; 36383 HEAP32[i3 >> 2] = i1 + 16; 36384 i3 = 0; 36385 STACKTOP = i2; 36386 return i3 | 0; 36387 } 36388 if ((HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) { 36389 _luaC_step(i1); 36390 } 36391 i3 = _luaS_new(i1, i3) | 0; 36392 i1 = i1 + 8 | 0; 36393 i4 = HEAP32[i1 >> 2] | 0; 36394 HEAP32[i4 >> 2] = i3; 36395 HEAP32[i4 + 8 >> 2] = HEAPU8[i3 + 4 | 0] | 0 | 64; 36396 HEAP32[i1 >> 2] = (HEAP32[i1 >> 2] | 0) + 16; 36397 i3 = i3 + 16 | 0; 36398 STACKTOP = i2; 36399 return i3 | 0; 36400 } 36401 function _luaK_exp2anyreg(i1, i3) { 36402 i1 = i1 | 0; 36403 i3 = i3 | 0; 36404 var i2 = 0, i4 = 0, i5 = 0; 36405 i2 = STACKTOP; 36406 _luaK_dischargevars(i1, i3); 36407 if ((HEAP32[i3 >> 2] | 0) == 6) { 36408 i5 = i3 + 8 | 0; 36409 i4 = HEAP32[i5 >> 2] | 0; 36410 if ((HEAP32[i3 + 16 >> 2] | 0) == (HEAP32[i3 + 20 >> 2] | 0)) { 36411 i5 = i4; 36412 STACKTOP = i2; 36413 return i5 | 0; 36414 } 36415 if ((i4 | 0) >= (HEAPU8[i1 + 46 | 0] | 0 | 0)) { 36416 _exp2reg(i1, i3, i4); 36417 i5 = HEAP32[i5 >> 2] | 0; 36418 STACKTOP = i2; 36419 return i5 | 0; 36420 } 36421 } else { 36422 i5 = i3 + 8 | 0; 36423 } 36424 _luaK_exp2nextreg(i1, i3); 36425 i5 = HEAP32[i5 >> 2] | 0; 36426 STACKTOP = i2; 36427 return i5 | 0; 36428 } 36429 function _check_match(i1, i4, i5, i6) { 36430 i1 = i1 | 0; 36431 i4 = i4 | 0; 36432 i5 = i5 | 0; 36433 i6 = i6 | 0; 36434 var i2 = 0, i3 = 0; 36435 i2 = STACKTOP; 36436 STACKTOP = STACKTOP + 16 | 0; 36437 i3 = i2; 36438 if ((HEAP32[i1 + 16 >> 2] | 0) == (i4 | 0)) { 36439 _luaX_next(i1); 36440 STACKTOP = i2; 36441 return; 36442 } 36443 if ((HEAP32[i1 + 4 >> 2] | 0) == (i6 | 0)) { 36444 _error_expected(i1, i4); 36445 } else { 36446 i2 = HEAP32[i1 + 52 >> 2] | 0; 36447 i4 = _luaX_token2str(i1, i4) | 0; 36448 i5 = _luaX_token2str(i1, i5) | 0; 36449 HEAP32[i3 >> 2] = i4; 36450 HEAP32[i3 + 4 >> 2] = i5; 36451 HEAP32[i3 + 8 >> 2] = i6; 36452 _luaX_syntaxerror(i1, _luaO_pushfstring(i2, 6840, i3) | 0); 36453 } 36454 } 36455 function _fieldsel(i1, i6) { 36456 i1 = i1 | 0; 36457 i6 = i6 | 0; 36458 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0; 36459 i2 = STACKTOP; 36460 STACKTOP = STACKTOP + 32 | 0; 36461 i3 = i2; 36462 i5 = i1 + 48 | 0; 36463 i4 = HEAP32[i5 >> 2] | 0; 36464 _luaK_exp2anyregup(i4, i6); 36465 _luaX_next(i1); 36466 if ((HEAP32[i1 + 16 >> 2] | 0) == 288) { 36467 i7 = HEAP32[i1 + 24 >> 2] | 0; 36468 _luaX_next(i1); 36469 i5 = _luaK_stringK(HEAP32[i5 >> 2] | 0, i7) | 0; 36470 HEAP32[i3 + 16 >> 2] = -1; 36471 HEAP32[i3 + 20 >> 2] = -1; 36472 HEAP32[i3 >> 2] = 4; 36473 HEAP32[i3 + 8 >> 2] = i5; 36474 _luaK_indexed(i4, i6, i3); 36475 STACKTOP = i2; 36476 return; 36477 } else { 36478 _error_expected(i1, 288); 36479 } 36480 } 36481 function _luaK_exp2anyregup(i1, i3) { 36482 i1 = i1 | 0; 36483 i3 = i3 | 0; 36484 var i2 = 0, i4 = 0; 36485 i2 = STACKTOP; 36486 if ((HEAP32[i3 >> 2] | 0) == 8 ? (HEAP32[i3 + 16 >> 2] | 0) == (HEAP32[i3 + 20 >> 2] | 0) : 0) { 36487 STACKTOP = i2; 36488 return; 36489 } 36490 _luaK_dischargevars(i1, i3); 36491 if ((HEAP32[i3 >> 2] | 0) == 6) { 36492 i4 = HEAP32[i3 + 8 >> 2] | 0; 36493 if ((HEAP32[i3 + 16 >> 2] | 0) == (HEAP32[i3 + 20 >> 2] | 0)) { 36494 STACKTOP = i2; 36495 return; 36496 } 36497 if ((i4 | 0) >= (HEAPU8[i1 + 46 | 0] | 0 | 0)) { 36498 _exp2reg(i1, i3, i4); 36499 STACKTOP = i2; 36500 return; 36501 } 36502 } 36503 _luaK_exp2nextreg(i1, i3); 36504 STACKTOP = i2; 36505 return; 36506 } 36507 function _lua_settop(i3, i5) { 36508 i3 = i3 | 0; 36509 i5 = i5 | 0; 36510 var i1 = 0, i2 = 0, i4 = 0; 36511 i1 = STACKTOP; 36512 if (!((i5 | 0) > -1)) { 36513 i4 = i3 + 8 | 0; 36514 HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + (i5 + 1 << 4); 36515 STACKTOP = i1; 36516 return; 36517 } 36518 i2 = i3 + 8 | 0; 36519 i4 = HEAP32[i2 >> 2] | 0; 36520 i3 = (HEAP32[HEAP32[i3 + 16 >> 2] >> 2] | 0) + (i5 + 1 << 4) | 0; 36521 if (i4 >>> 0 < i3 >>> 0) { 36522 while (1) { 36523 i5 = i4 + 16 | 0; 36524 HEAP32[i4 + 8 >> 2] = 0; 36525 if (i5 >>> 0 < i3 >>> 0) { 36526 i4 = i5; 36527 } else { 36528 break; 36529 } 36530 } 36531 HEAP32[i2 >> 2] = i5; 36532 } 36533 HEAP32[i2 >> 2] = i3; 36534 STACKTOP = i1; 36535 return; 36536 } 36537 function _luaL_fileresult(i1, i6, i5) { 36538 i1 = i1 | 0; 36539 i6 = i6 | 0; 36540 i5 = i5 | 0; 36541 var i2 = 0, i3 = 0, i4 = 0; 36542 i2 = STACKTOP; 36543 STACKTOP = STACKTOP + 16 | 0; 36544 i4 = i2; 36545 i3 = HEAP32[(___errno_location() | 0) >> 2] | 0; 36546 if ((i6 | 0) != 0) { 36547 _lua_pushboolean(i1, 1); 36548 i6 = 1; 36549 STACKTOP = i2; 36550 return i6 | 0; 36551 } 36552 _lua_pushnil(i1); 36553 i6 = _strerror(i3 | 0) | 0; 36554 if ((i5 | 0) == 0) { 36555 _lua_pushstring(i1, i6) | 0; 36556 } else { 36557 HEAP32[i4 >> 2] = i5; 36558 HEAP32[i4 + 4 >> 2] = i6; 36559 _lua_pushfstring(i1, 1176, i4) | 0; 36560 } 36561 _lua_pushinteger(i1, i3); 36562 i6 = 3; 36563 STACKTOP = i2; 36564 return i6 | 0; 36565 } 36566 function _luaL_pushmodule(i1, i4, i5) { 36567 i1 = i1 | 0; 36568 i4 = i4 | 0; 36569 i5 = i5 | 0; 36570 var i2 = 0, i3 = 0; 36571 i2 = STACKTOP; 36572 STACKTOP = STACKTOP + 16 | 0; 36573 i3 = i2; 36574 _luaL_findtable(i1, -1001e3, 1432, 1) | 0; 36575 _lua_getfield(i1, -1, i4); 36576 if ((_lua_type(i1, -1) | 0) == 5) { 36577 _lua_remove(i1, -2); 36578 STACKTOP = i2; 36579 return; 36580 } 36581 _lua_settop(i1, -2); 36582 _lua_rawgeti(i1, -1001e3, 2); 36583 if ((_luaL_findtable(i1, 0, i4, i5) | 0) != 0) { 36584 HEAP32[i3 >> 2] = i4; 36585 _luaL_error(i1, 1440, i3) | 0; 36586 } 36587 _lua_pushvalue(i1, -1); 36588 _lua_setfield(i1, -3, i4); 36589 _lua_remove(i1, -2); 36590 STACKTOP = i2; 36591 return; 36592 } 36593 function _b_replace(i1) { 36594 i1 = i1 | 0; 36595 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0; 36596 i6 = STACKTOP; 36597 STACKTOP = STACKTOP + 16 | 0; 36598 i3 = _luaL_checkunsigned(i1, 1) | 0; 36599 i5 = _luaL_checkunsigned(i1, 2) | 0; 36600 i4 = _luaL_checkinteger(i1, 3) | 0; 36601 i2 = _luaL_optinteger(i1, 4, 1) | 0; 36602 if (!((i4 | 0) > -1)) { 36603 _luaL_argerror(i1, 3, 10440) | 0; 36604 } 36605 if ((i2 | 0) <= 0) { 36606 _luaL_argerror(i1, 4, 10472) | 0; 36607 } 36608 if ((i2 + i4 | 0) > 32) { 36609 _luaL_error(i1, 10496, i6) | 0; 36610 } 36611 i2 = ~(-2 << i2 + -1); 36612 _lua_pushunsigned(i1, i3 & ~(i2 << i4) | (i5 & i2) << i4); 36613 STACKTOP = i6; 36614 return 1; 36615 } 36616 function _luaT_gettmbyobj(i1, i5, i3) { 36617 i1 = i1 | 0; 36618 i5 = i5 | 0; 36619 i3 = i3 | 0; 36620 var i2 = 0, i4 = 0; 36621 i2 = STACKTOP; 36622 i4 = HEAP32[i5 + 8 >> 2] & 15; 36623 if ((i4 | 0) == 5) { 36624 i4 = HEAP32[(HEAP32[i5 >> 2] | 0) + 8 >> 2] | 0; 36625 } else if ((i4 | 0) == 7) { 36626 i4 = HEAP32[(HEAP32[i5 >> 2] | 0) + 8 >> 2] | 0; 36627 } else { 36628 i4 = HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + (i4 << 2) + 252 >> 2] | 0; 36629 } 36630 if ((i4 | 0) == 0) { 36631 i5 = 5192; 36632 STACKTOP = i2; 36633 return i5 | 0; 36634 } 36635 i5 = _luaH_getstr(i4, HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + (i3 << 2) + 184 >> 2] | 0) | 0; 36636 STACKTOP = i2; 36637 return i5 | 0; 36638 } 36639 function _luaS_eqstr(i2, i3) { 36640 i2 = i2 | 0; 36641 i3 = i3 | 0; 36642 var i1 = 0, i4 = 0; 36643 i1 = STACKTOP; 36644 i4 = HEAP8[i2 + 4 | 0] | 0; 36645 do { 36646 if (i4 << 24 >> 24 == (HEAP8[i3 + 4 | 0] | 0)) { 36647 if (i4 << 24 >> 24 == 4) { 36648 i2 = (i2 | 0) == (i3 | 0); 36649 break; 36650 } 36651 i4 = HEAP32[i2 + 12 >> 2] | 0; 36652 if ((i2 | 0) != (i3 | 0)) { 36653 if ((i4 | 0) == (HEAP32[i3 + 12 >> 2] | 0)) { 36654 i2 = (_memcmp(i2 + 16 | 0, i3 + 16 | 0, i4) | 0) == 0; 36655 } else { 36656 i2 = 0; 36657 } 36658 } else { 36659 i2 = 1; 36660 } 36661 } else { 36662 i2 = 0; 36663 } 36664 } while (0); 36665 STACKTOP = i1; 36666 return i2 & 1 | 0; 36667 } 36668 function _lua_concat(i1, i3) { 36669 i1 = i1 | 0; 36670 i3 = i3 | 0; 36671 var i2 = 0, i4 = 0; 36672 i2 = STACKTOP; 36673 if ((i3 | 0) > 1) { 36674 if ((HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) { 36675 _luaC_step(i1); 36676 } 36677 _luaV_concat(i1, i3); 36678 STACKTOP = i2; 36679 return; 36680 } else { 36681 if ((i3 | 0) != 0) { 36682 STACKTOP = i2; 36683 return; 36684 } 36685 i3 = i1 + 8 | 0; 36686 i4 = HEAP32[i3 >> 2] | 0; 36687 i1 = _luaS_newlstr(i1, 936, 0) | 0; 36688 HEAP32[i4 >> 2] = i1; 36689 HEAP32[i4 + 8 >> 2] = HEAPU8[i1 + 4 | 0] | 0 | 64; 36690 HEAP32[i3 >> 2] = (HEAP32[i3 >> 2] | 0) + 16; 36691 STACKTOP = i2; 36692 return; 36693 } 36694 } 36695 function _ll_loadfunc(i1, i4, i3) { 36696 i1 = i1 | 0; 36697 i4 = i4 | 0; 36698 i3 = i3 | 0; 36699 var i2 = 0; 36700 i2 = STACKTOP; 36701 _lua_getfield(i1, -1001e3, 4184); 36702 _lua_getfield(i1, -1, i4); 36703 i4 = _lua_touserdata(i1, -1) | 0; 36704 _lua_settop(i1, -3); 36705 if ((i4 | 0) == 0) { 36706 _lua_pushlstring(i1, 4968, 58) | 0; 36707 i4 = 1; 36708 STACKTOP = i2; 36709 return i4 | 0; 36710 } 36711 if ((HEAP8[i3] | 0) == 42) { 36712 _lua_pushboolean(i1, 1); 36713 i4 = 0; 36714 STACKTOP = i2; 36715 return i4 | 0; 36716 } else { 36717 _lua_pushlstring(i1, 4968, 58) | 0; 36718 i4 = 2; 36719 STACKTOP = i2; 36720 return i4 | 0; 36721 } 36722 return 0; 36723 } 36724 function _memset(i1, i4, i3) { 36725 i1 = i1 | 0; 36726 i4 = i4 | 0; 36727 i3 = i3 | 0; 36728 var i2 = 0, i5 = 0, i6 = 0, i7 = 0; 36729 i2 = i1 + i3 | 0; 36730 if ((i3 | 0) >= 20) { 36731 i4 = i4 & 255; 36732 i7 = i1 & 3; 36733 i6 = i4 | i4 << 8 | i4 << 16 | i4 << 24; 36734 i5 = i2 & ~3; 36735 if (i7) { 36736 i7 = i1 + 4 - i7 | 0; 36737 while ((i1 | 0) < (i7 | 0)) { 36738 HEAP8[i1] = i4; 36739 i1 = i1 + 1 | 0; 36740 } 36741 } 36742 while ((i1 | 0) < (i5 | 0)) { 36743 HEAP32[i1 >> 2] = i6; 36744 i1 = i1 + 4 | 0; 36745 } 36746 } 36747 while ((i1 | 0) < (i2 | 0)) { 36748 HEAP8[i1] = i4; 36749 i1 = i1 + 1 | 0; 36750 } 36751 return i1 - i3 | 0; 36752 } 36753 function _luaD_growstack(i1, i3) { 36754 i1 = i1 | 0; 36755 i3 = i3 | 0; 36756 var i2 = 0, i4 = 0; 36757 i2 = STACKTOP; 36758 STACKTOP = STACKTOP + 16 | 0; 36759 i4 = HEAP32[i1 + 32 >> 2] | 0; 36760 if ((i4 | 0) > 1e6) { 36761 _luaD_throw(i1, 6); 36762 } 36763 i3 = i3 + 5 + ((HEAP32[i1 + 8 >> 2] | 0) - (HEAP32[i1 + 28 >> 2] | 0) >> 4) | 0; 36764 i4 = i4 << 1; 36765 i4 = (i4 | 0) > 1e6 ? 1e6 : i4; 36766 i3 = (i4 | 0) < (i3 | 0) ? i3 : i4; 36767 if ((i3 | 0) > 1e6) { 36768 _luaD_reallocstack(i1, 1000200); 36769 _luaG_runerror(i1, 2224, i2); 36770 } else { 36771 _luaD_reallocstack(i1, i3); 36772 STACKTOP = i2; 36773 return; 36774 } 36775 } 36776 function _luaL_callmeta(i1, i4, i3) { 36777 i1 = i1 | 0; 36778 i4 = i4 | 0; 36779 i3 = i3 | 0; 36780 var i2 = 0; 36781 i2 = STACKTOP; 36782 i4 = _lua_absindex(i1, i4) | 0; 36783 if ((_lua_getmetatable(i1, i4) | 0) == 0) { 36784 i4 = 0; 36785 STACKTOP = i2; 36786 return i4 | 0; 36787 } 36788 _lua_pushstring(i1, i3) | 0; 36789 _lua_rawget(i1, -2); 36790 if ((_lua_type(i1, -1) | 0) == 0) { 36791 _lua_settop(i1, -3); 36792 i4 = 0; 36793 STACKTOP = i2; 36794 return i4 | 0; 36795 } else { 36796 _lua_remove(i1, -2); 36797 _lua_pushvalue(i1, i4); 36798 _lua_callk(i1, 1, 1, 0, 0); 36799 i4 = 1; 36800 STACKTOP = i2; 36801 return i4 | 0; 36802 } 36803 return 0; 36804 } 36805 function _luaK_reserveregs(i8, i7) { 36806 i8 = i8 | 0; 36807 i7 = i7 | 0; 36808 var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0; 36809 i3 = STACKTOP; 36810 i2 = i8 + 48 | 0; 36811 i6 = HEAP8[i2] | 0; 36812 i4 = (i6 & 255) + i7 | 0; 36813 i5 = (HEAP32[i8 >> 2] | 0) + 78 | 0; 36814 do { 36815 if ((i4 | 0) > (HEAPU8[i5] | 0 | 0)) { 36816 if ((i4 | 0) > 249) { 36817 _luaX_syntaxerror(HEAP32[i8 + 12 >> 2] | 0, 10536); 36818 } else { 36819 HEAP8[i5] = i4; 36820 i1 = HEAP8[i2] | 0; 36821 break; 36822 } 36823 } else { 36824 i1 = i6; 36825 } 36826 } while (0); 36827 HEAP8[i2] = (i1 & 255) + i7; 36828 STACKTOP = i3; 36829 return; 36830 } 36831 function _aux_lines(i1, i5) { 36832 i1 = i1 | 0; 36833 i5 = i5 | 0; 36834 var i2 = 0, i3 = 0, i4 = 0, i6 = 0; 36835 i4 = STACKTOP; 36836 i3 = _lua_gettop(i1) | 0; 36837 i2 = i3 + -1 | 0; 36838 if ((i3 | 0) >= 19) { 36839 _luaL_argerror(i1, 17, 3320) | 0; 36840 } 36841 _lua_pushvalue(i1, 1); 36842 _lua_pushinteger(i1, i2); 36843 _lua_pushboolean(i1, i5); 36844 if ((i3 | 0) >= 2) { 36845 i5 = 1; 36846 while (1) { 36847 i6 = i5 + 1 | 0; 36848 _lua_pushvalue(i1, i6); 36849 if ((i5 | 0) < (i2 | 0)) { 36850 i5 = i6; 36851 } else { 36852 break; 36853 } 36854 } 36855 } 36856 _lua_pushcclosure(i1, 155, i3 + 2 | 0); 36857 STACKTOP = i4; 36858 return; 36859 } 36860 function _memcmp(i2, i4, i3) { 36861 i2 = i2 | 0; 36862 i4 = i4 | 0; 36863 i3 = i3 | 0; 36864 var i1 = 0, i5 = 0, i6 = 0; 36865 i1 = STACKTOP; 36866 L1 : do { 36867 if ((i3 | 0) == 0) { 36868 i2 = 0; 36869 } else { 36870 while (1) { 36871 i6 = HEAP8[i2] | 0; 36872 i5 = HEAP8[i4] | 0; 36873 if (!(i6 << 24 >> 24 == i5 << 24 >> 24)) { 36874 break; 36875 } 36876 i3 = i3 + -1 | 0; 36877 if ((i3 | 0) == 0) { 36878 i2 = 0; 36879 break L1; 36880 } else { 36881 i2 = i2 + 1 | 0; 36882 i4 = i4 + 1 | 0; 36883 } 36884 } 36885 i2 = (i6 & 255) - (i5 & 255) | 0; 36886 } 36887 } while (0); 36888 STACKTOP = i1; 36889 return i2 | 0; 36890 } 36891 function _b_arshift(i1) { 36892 i1 = i1 | 0; 36893 var i2 = 0, i3 = 0, i4 = 0, i5 = 0; 36894 i2 = STACKTOP; 36895 i3 = _luaL_checkunsigned(i1, 1) | 0; 36896 i4 = _luaL_checkinteger(i1, 2) | 0; 36897 if ((i4 | 0) > -1 & (i3 | 0) < 0) { 36898 if ((i4 | 0) > 31) { 36899 i3 = -1; 36900 } else { 36901 i3 = i3 >>> i4 | ~(-1 >>> i4); 36902 } 36903 _lua_pushunsigned(i1, i3); 36904 STACKTOP = i2; 36905 return 1; 36906 } 36907 i5 = 0 - i4 | 0; 36908 if ((i4 | 0) > 0) { 36909 i3 = (i4 | 0) > 31 ? 0 : i3 >>> i4; 36910 } else { 36911 i3 = (i5 | 0) > 31 ? 0 : i3 << i5; 36912 } 36913 _lua_pushunsigned(i1, i3); 36914 STACKTOP = i2; 36915 return 1; 36916 } 36917 function _luaL_checkunsigned(i1, i5) { 36918 i1 = i1 | 0; 36919 i5 = i5 | 0; 36920 var i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0; 36921 i3 = STACKTOP; 36922 STACKTOP = STACKTOP + 16 | 0; 36923 i4 = i3; 36924 i6 = i3 + 8 | 0; 36925 i2 = _lua_tounsignedx(i1, i5, i6) | 0; 36926 if ((HEAP32[i6 >> 2] | 0) != 0) { 36927 STACKTOP = i3; 36928 return i2 | 0; 36929 } 36930 i7 = _lua_typename(i1, 3) | 0; 36931 i6 = _lua_typename(i1, _lua_type(i1, i5) | 0) | 0; 36932 HEAP32[i4 >> 2] = i7; 36933 HEAP32[i4 + 4 >> 2] = i6; 36934 _luaL_argerror(i1, i5, _lua_pushfstring(i1, 1744, i4) | 0) | 0; 36935 STACKTOP = i3; 36936 return i2 | 0; 36937 } 36938 function _luaB_loadfile(i2) { 36939 i2 = i2 | 0; 36940 var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0; 36941 i1 = STACKTOP; 36942 i4 = _luaL_optlstring(i2, 1, 0, 0) | 0; 36943 i5 = _luaL_optlstring(i2, 2, 0, 0) | 0; 36944 i3 = (_lua_type(i2, 3) | 0) != -1; 36945 i6 = i3 ? 3 : 0; 36946 if ((_luaL_loadfilex(i2, i4, i5) | 0) == 0) { 36947 if (i3 ? (_lua_pushvalue(i2, i6), (_lua_setupvalue(i2, -2, 1) | 0) == 0) : 0) { 36948 _lua_settop(i2, -2); 36949 i2 = 1; 36950 } else { 36951 i2 = 1; 36952 } 36953 } else { 36954 _lua_pushnil(i2); 36955 _lua_insert(i2, -2); 36956 i2 = 2; 36957 } 36958 STACKTOP = i1; 36959 return i2 | 0; 36960 } 36961 function _luaL_checkinteger(i1, i5) { 36962 i1 = i1 | 0; 36963 i5 = i5 | 0; 36964 var i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0; 36965 i3 = STACKTOP; 36966 STACKTOP = STACKTOP + 16 | 0; 36967 i4 = i3; 36968 i6 = i3 + 8 | 0; 36969 i2 = _lua_tointegerx(i1, i5, i6) | 0; 36970 if ((HEAP32[i6 >> 2] | 0) != 0) { 36971 STACKTOP = i3; 36972 return i2 | 0; 36973 } 36974 i7 = _lua_typename(i1, 3) | 0; 36975 i6 = _lua_typename(i1, _lua_type(i1, i5) | 0) | 0; 36976 HEAP32[i4 >> 2] = i7; 36977 HEAP32[i4 + 4 >> 2] = i6; 36978 _luaL_argerror(i1, i5, _lua_pushfstring(i1, 1744, i4) | 0) | 0; 36979 STACKTOP = i3; 36980 return i2 | 0; 36981 } 36982 function _luaB_select(i1) { 36983 i1 = i1 | 0; 36984 var i2 = 0, i3 = 0, i4 = 0; 36985 i3 = STACKTOP; 36986 i2 = _lua_gettop(i1) | 0; 36987 if ((_lua_type(i1, 1) | 0) == 4 ? (HEAP8[_lua_tolstring(i1, 1, 0) | 0] | 0) == 35 : 0) { 36988 _lua_pushinteger(i1, i2 + -1 | 0); 36989 i4 = 1; 36990 STACKTOP = i3; 36991 return i4 | 0; 36992 } 36993 i4 = _luaL_checkinteger(i1, 1) | 0; 36994 if ((i4 | 0) < 0) { 36995 i4 = i4 + i2 | 0; 36996 } else { 36997 i4 = (i4 | 0) > (i2 | 0) ? i2 : i4; 36998 } 36999 if ((i4 | 0) <= 0) { 37000 _luaL_argerror(i1, 1, 9760) | 0; 37001 } 37002 i4 = i2 - i4 | 0; 37003 STACKTOP = i3; 37004 return i4 | 0; 37005 } 37006 function _luaX_next(i1) { 37007 i1 = i1 | 0; 37008 var i2 = 0, i3 = 0; 37009 i2 = STACKTOP; 37010 HEAP32[i1 + 8 >> 2] = HEAP32[i1 + 4 >> 2]; 37011 i3 = i1 + 32 | 0; 37012 if ((HEAP32[i3 >> 2] | 0) == 286) { 37013 HEAP32[i1 + 16 >> 2] = _llex(i1, i1 + 24 | 0) | 0; 37014 STACKTOP = i2; 37015 return; 37016 } else { 37017 i1 = i1 + 16 | 0; 37018 HEAP32[i1 + 0 >> 2] = HEAP32[i3 + 0 >> 2]; 37019 HEAP32[i1 + 4 >> 2] = HEAP32[i3 + 4 >> 2]; 37020 HEAP32[i1 + 8 >> 2] = HEAP32[i3 + 8 >> 2]; 37021 HEAP32[i1 + 12 >> 2] = HEAP32[i3 + 12 >> 2]; 37022 HEAP32[i3 >> 2] = 286; 37023 STACKTOP = i2; 37024 return; 37025 } 37026 } 37027 function _lua_setglobal(i1, i2) { 37028 i1 = i1 | 0; 37029 i2 = i2 | 0; 37030 var i3 = 0, i4 = 0, i5 = 0, i6 = 0; 37031 i3 = STACKTOP; 37032 i5 = _luaH_getint(HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 40 >> 2] | 0, 2) | 0; 37033 i4 = i1 + 8 | 0; 37034 i6 = HEAP32[i4 >> 2] | 0; 37035 HEAP32[i4 >> 2] = i6 + 16; 37036 i2 = _luaS_new(i1, i2) | 0; 37037 HEAP32[i6 >> 2] = i2; 37038 HEAP32[i6 + 8 >> 2] = HEAPU8[i2 + 4 | 0] | 0 | 64; 37039 i2 = HEAP32[i4 >> 2] | 0; 37040 _luaV_settable(i1, i5, i2 + -16 | 0, i2 + -32 | 0); 37041 HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + -32; 37042 STACKTOP = i3; 37043 return; 37044 } 37045 function _luaL_checknumber(i1, i5) { 37046 i1 = i1 | 0; 37047 i5 = i5 | 0; 37048 var d2 = 0.0, i3 = 0, i4 = 0, i6 = 0, i7 = 0; 37049 i3 = STACKTOP; 37050 STACKTOP = STACKTOP + 16 | 0; 37051 i4 = i3; 37052 i6 = i3 + 8 | 0; 37053 d2 = +_lua_tonumberx(i1, i5, i6); 37054 if ((HEAP32[i6 >> 2] | 0) != 0) { 37055 STACKTOP = i3; 37056 return +d2; 37057 } 37058 i7 = _lua_typename(i1, 3) | 0; 37059 i6 = _lua_typename(i1, _lua_type(i1, i5) | 0) | 0; 37060 HEAP32[i4 >> 2] = i7; 37061 HEAP32[i4 + 4 >> 2] = i6; 37062 _luaL_argerror(i1, i5, _lua_pushfstring(i1, 1744, i4) | 0) | 0; 37063 STACKTOP = i3; 37064 return +d2; 37065 } 37066 function _luaZ_fill(i1) { 37067 i1 = i1 | 0; 37068 var i2 = 0, i3 = 0, i4 = 0; 37069 i2 = STACKTOP; 37070 STACKTOP = STACKTOP + 16 | 0; 37071 i4 = i2; 37072 i3 = FUNCTION_TABLE_iiii[HEAP32[i1 + 8 >> 2] & 3](HEAP32[i1 + 16 >> 2] | 0, HEAP32[i1 + 12 >> 2] | 0, i4) | 0; 37073 if ((i3 | 0) == 0) { 37074 i4 = -1; 37075 STACKTOP = i2; 37076 return i4 | 0; 37077 } 37078 i4 = HEAP32[i4 >> 2] | 0; 37079 if ((i4 | 0) == 0) { 37080 i4 = -1; 37081 STACKTOP = i2; 37082 return i4 | 0; 37083 } 37084 HEAP32[i1 >> 2] = i4 + -1; 37085 HEAP32[i1 + 4 >> 2] = i3 + 1; 37086 i4 = HEAPU8[i3] | 0; 37087 STACKTOP = i2; 37088 return i4 | 0; 37089 } 37090 function _lua_createtable(i1, i3, i4) { 37091 i1 = i1 | 0; 37092 i3 = i3 | 0; 37093 i4 = i4 | 0; 37094 var i2 = 0, i5 = 0, i6 = 0, i7 = 0; 37095 i2 = STACKTOP; 37096 if ((HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) { 37097 _luaC_step(i1); 37098 } 37099 i5 = _luaH_new(i1) | 0; 37100 i6 = i1 + 8 | 0; 37101 i7 = HEAP32[i6 >> 2] | 0; 37102 HEAP32[i7 >> 2] = i5; 37103 HEAP32[i7 + 8 >> 2] = 69; 37104 HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + 16; 37105 if (!((i3 | 0) > 0 | (i4 | 0) > 0)) { 37106 STACKTOP = i2; 37107 return; 37108 } 37109 _luaH_resize(i1, i5, i3, i4); 37110 STACKTOP = i2; 37111 return; 37112 } 37113 function _generic_reader(i1, i3, i2) { 37114 i1 = i1 | 0; 37115 i3 = i3 | 0; 37116 i2 = i2 | 0; 37117 i3 = STACKTOP; 37118 STACKTOP = STACKTOP + 16 | 0; 37119 _luaL_checkstack(i1, 2, 9888); 37120 _lua_pushvalue(i1, 1); 37121 _lua_callk(i1, 0, 1, 0, 0); 37122 if ((_lua_type(i1, -1) | 0) == 0) { 37123 _lua_settop(i1, -2); 37124 HEAP32[i2 >> 2] = 0; 37125 i2 = 0; 37126 STACKTOP = i3; 37127 return i2 | 0; 37128 } 37129 if ((_lua_isstring(i1, -1) | 0) == 0) { 37130 _luaL_error(i1, 9920, i3) | 0; 37131 } 37132 _lua_replace(i1, 5); 37133 i2 = _lua_tolstring(i1, 5, i2) | 0; 37134 STACKTOP = i3; 37135 return i2 | 0; 37136 } 37137 function _luaZ_openspace(i5, i1, i6) { 37138 i5 = i5 | 0; 37139 i1 = i1 | 0; 37140 i6 = i6 | 0; 37141 var i2 = 0, i3 = 0, i4 = 0; 37142 i2 = STACKTOP; 37143 i4 = i1 + 8 | 0; 37144 i3 = HEAP32[i4 >> 2] | 0; 37145 if (!(i3 >>> 0 < i6 >>> 0)) { 37146 i6 = HEAP32[i1 >> 2] | 0; 37147 STACKTOP = i2; 37148 return i6 | 0; 37149 } 37150 i6 = i6 >>> 0 < 32 ? 32 : i6; 37151 if ((i6 + 1 | 0) >>> 0 > 4294967293) { 37152 _luaM_toobig(i5); 37153 } 37154 i5 = _luaM_realloc_(i5, HEAP32[i1 >> 2] | 0, i3, i6) | 0; 37155 HEAP32[i1 >> 2] = i5; 37156 HEAP32[i4 >> 2] = i6; 37157 i6 = i5; 37158 STACKTOP = i2; 37159 return i6 | 0; 37160 } 37161 function _luaH_getstr(i4, i3) { 37162 i4 = i4 | 0; 37163 i3 = i3 | 0; 37164 var i1 = 0, i2 = 0; 37165 i2 = STACKTOP; 37166 i4 = (HEAP32[i4 + 16 >> 2] | 0) + (((1 << (HEAPU8[i4 + 7 | 0] | 0)) + -1 & HEAP32[i3 + 8 >> 2]) << 5) | 0; 37167 while (1) { 37168 if ((HEAP32[i4 + 24 >> 2] | 0) == 68 ? (HEAP32[i4 + 16 >> 2] | 0) == (i3 | 0) : 0) { 37169 break; 37170 } 37171 i4 = HEAP32[i4 + 28 >> 2] | 0; 37172 if ((i4 | 0) == 0) { 37173 i3 = 5192; 37174 i1 = 6; 37175 break; 37176 } 37177 } 37178 if ((i1 | 0) == 6) { 37179 STACKTOP = i2; 37180 return i3 | 0; 37181 } 37182 STACKTOP = i2; 37183 return i4 | 0; 37184 } 37185 function _b_extract(i1) { 37186 i1 = i1 | 0; 37187 var i2 = 0, i3 = 0, i4 = 0, i5 = 0; 37188 i5 = STACKTOP; 37189 STACKTOP = STACKTOP + 16 | 0; 37190 i2 = _luaL_checkunsigned(i1, 1) | 0; 37191 i3 = _luaL_checkinteger(i1, 2) | 0; 37192 i4 = _luaL_optinteger(i1, 3, 1) | 0; 37193 if (!((i3 | 0) > -1)) { 37194 _luaL_argerror(i1, 2, 10440) | 0; 37195 } 37196 if ((i4 | 0) <= 0) { 37197 _luaL_argerror(i1, 3, 10472) | 0; 37198 } 37199 if ((i4 + i3 | 0) > 32) { 37200 _luaL_error(i1, 10496, i5) | 0; 37201 } 37202 _lua_pushunsigned(i1, i2 >>> i3 & ~(-2 << i4 + -1)); 37203 STACKTOP = i5; 37204 return 1; 37205 } 37206 function _luaL_checklstring(i1, i4, i5) { 37207 i1 = i1 | 0; 37208 i4 = i4 | 0; 37209 i5 = i5 | 0; 37210 var i2 = 0, i3 = 0, i6 = 0, i7 = 0; 37211 i2 = STACKTOP; 37212 STACKTOP = STACKTOP + 16 | 0; 37213 i3 = i2; 37214 i5 = _lua_tolstring(i1, i4, i5) | 0; 37215 if ((i5 | 0) != 0) { 37216 STACKTOP = i2; 37217 return i5 | 0; 37218 } 37219 i7 = _lua_typename(i1, 4) | 0; 37220 i6 = _lua_typename(i1, _lua_type(i1, i4) | 0) | 0; 37221 HEAP32[i3 >> 2] = i7; 37222 HEAP32[i3 + 4 >> 2] = i6; 37223 _luaL_argerror(i1, i4, _lua_pushfstring(i1, 1744, i3) | 0) | 0; 37224 STACKTOP = i2; 37225 return i5 | 0; 37226 } 37227 function _db_traceback(i1) { 37228 i1 = i1 | 0; 37229 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0; 37230 i2 = STACKTOP; 37231 if ((_lua_type(i1, 1) | 0) == 8) { 37232 i3 = _lua_tothread(i1, 1) | 0; 37233 i4 = 1; 37234 } else { 37235 i3 = i1; 37236 i4 = 0; 37237 } 37238 i5 = i4 + 1 | 0; 37239 i6 = _lua_tolstring(i1, i5, 0) | 0; 37240 if ((i6 | 0) == 0 ? (_lua_type(i1, i5) | 0) >= 1 : 0) { 37241 _lua_pushvalue(i1, i5); 37242 STACKTOP = i2; 37243 return 1; 37244 } 37245 _luaL_traceback(i1, i3, i6, _luaL_optinteger(i1, i4 | 2, (i3 | 0) == (i1 | 0) | 0) | 0); 37246 STACKTOP = i2; 37247 return 1; 37248 } 37249 function _f_setvbuf(i1) { 37250 i1 = i1 | 0; 37251 var i2 = 0, i3 = 0, i4 = 0, i5 = 0; 37252 i2 = STACKTOP; 37253 STACKTOP = STACKTOP + 16 | 0; 37254 i3 = _luaL_checkudata(i1, 1, 2832) | 0; 37255 if ((HEAP32[i3 + 4 >> 2] | 0) == 0) { 37256 _luaL_error(i1, 3080, i2) | 0; 37257 } 37258 i5 = HEAP32[i3 >> 2] | 0; 37259 i4 = _luaL_checkoption(i1, 2, 0, 3128) | 0; 37260 i3 = _luaL_optinteger(i1, 3, 1024) | 0; 37261 i3 = _luaL_fileresult(i1, (_setvbuf(i5 | 0, 0, HEAP32[3112 + (i4 << 2) >> 2] | 0, i3 | 0) | 0) == 0 | 0, 0) | 0; 37262 STACKTOP = i2; 37263 return i3 | 0; 37264 } 37265 function _luaU_dump(i3, i1, i4, i2, i5) { 37266 i3 = i3 | 0; 37267 i1 = i1 | 0; 37268 i4 = i4 | 0; 37269 i2 = i2 | 0; 37270 i5 = i5 | 0; 37271 var i6 = 0, i7 = 0, i8 = 0; 37272 i6 = STACKTOP; 37273 STACKTOP = STACKTOP + 48 | 0; 37274 i8 = i6 + 20 | 0; 37275 i7 = i6; 37276 HEAP32[i7 >> 2] = i3; 37277 HEAP32[i7 + 4 >> 2] = i4; 37278 HEAP32[i7 + 8 >> 2] = i2; 37279 HEAP32[i7 + 12 >> 2] = i5; 37280 i5 = i7 + 16 | 0; 37281 _luaU_header(i8); 37282 HEAP32[i5 >> 2] = FUNCTION_TABLE_iiiii[i4 & 3](i3, i8, 18, i2) | 0; 37283 _DumpFunction(i1, i7); 37284 STACKTOP = i6; 37285 return HEAP32[i5 >> 2] | 0; 37286 } 37287 function _luaB_setmetatable(i1) { 37288 i1 = i1 | 0; 37289 var i2 = 0, i3 = 0; 37290 i2 = STACKTOP; 37291 STACKTOP = STACKTOP + 16 | 0; 37292 i3 = _lua_type(i1, 2) | 0; 37293 _luaL_checktype(i1, 1, 5); 37294 if (!((i3 | 0) == 0 | (i3 | 0) == 5)) { 37295 _luaL_argerror(i1, 2, 9680) | 0; 37296 } 37297 if ((_luaL_getmetafield(i1, 1, 9704) | 0) == 0) { 37298 _lua_settop(i1, 2); 37299 _lua_setmetatable(i1, 1) | 0; 37300 i3 = 1; 37301 STACKTOP = i2; 37302 return i3 | 0; 37303 } else { 37304 i3 = _luaL_error(i1, 9720, i2) | 0; 37305 STACKTOP = i2; 37306 return i3 | 0; 37307 } 37308 return 0; 37309 } 37310 function _getF(i3, i2, i1) { 37311 i3 = i3 | 0; 37312 i2 = i2 | 0; 37313 i1 = i1 | 0; 37314 var i4 = 0; 37315 i3 = STACKTOP; 37316 i4 = HEAP32[i2 >> 2] | 0; 37317 if ((i4 | 0) > 0) { 37318 HEAP32[i1 >> 2] = i4; 37319 HEAP32[i2 >> 2] = 0; 37320 i4 = i2 + 8 | 0; 37321 STACKTOP = i3; 37322 return i4 | 0; 37323 } 37324 i4 = i2 + 4 | 0; 37325 if ((_feof(HEAP32[i4 >> 2] | 0) | 0) != 0) { 37326 i4 = 0; 37327 STACKTOP = i3; 37328 return i4 | 0; 37329 } 37330 i2 = i2 + 8 | 0; 37331 HEAP32[i1 >> 2] = _fread(i2 | 0, 1, 1024, HEAP32[i4 >> 2] | 0) | 0; 37332 i4 = i2; 37333 STACKTOP = i3; 37334 return i4 | 0; 37335 } 37336 function _luaL_where(i1, i6) { 37337 i1 = i1 | 0; 37338 i6 = i6 | 0; 37339 var i2 = 0, i3 = 0, i4 = 0, i5 = 0; 37340 i4 = STACKTOP; 37341 STACKTOP = STACKTOP + 112 | 0; 37342 i3 = i4; 37343 i2 = i4 + 8 | 0; 37344 if ((_lua_getstack(i1, i6, i2) | 0) != 0 ? (_lua_getinfo(i1, 1152, i2) | 0, i5 = HEAP32[i2 + 20 >> 2] | 0, (i5 | 0) > 0) : 0) { 37345 HEAP32[i3 >> 2] = i2 + 36; 37346 HEAP32[i3 + 4 >> 2] = i5; 37347 _lua_pushfstring(i1, 1160, i3) | 0; 37348 STACKTOP = i4; 37349 return; 37350 } 37351 _lua_pushlstring(i1, 1168, 0) | 0; 37352 STACKTOP = i4; 37353 return; 37354 } 37355 function _hookf(i1, i3) { 37356 i1 = i1 | 0; 37357 i3 = i3 | 0; 37358 var i2 = 0; 37359 i2 = STACKTOP; 37360 _luaL_getsubtable(i1, -1001e3, 11584) | 0; 37361 _lua_pushthread(i1) | 0; 37362 _lua_rawget(i1, -2); 37363 if ((_lua_type(i1, -1) | 0) != 6) { 37364 STACKTOP = i2; 37365 return; 37366 } 37367 _lua_pushstring(i1, HEAP32[11608 + (HEAP32[i3 >> 2] << 2) >> 2] | 0) | 0; 37368 i3 = HEAP32[i3 + 20 >> 2] | 0; 37369 if ((i3 | 0) > -1) { 37370 _lua_pushinteger(i1, i3); 37371 } else { 37372 _lua_pushnil(i1); 37373 } 37374 _lua_callk(i1, 2, 0, 0, 0); 37375 STACKTOP = i2; 37376 return; 37377 } 37378 function _luaV_tonumber(i5, i2) { 37379 i5 = i5 | 0; 37380 i2 = i2 | 0; 37381 var i1 = 0, i3 = 0, i4 = 0; 37382 i1 = STACKTOP; 37383 STACKTOP = STACKTOP + 16 | 0; 37384 i3 = i1; 37385 i4 = HEAP32[i5 + 8 >> 2] | 0; 37386 if ((i4 | 0) != 3) { 37387 if ((i4 & 15 | 0) == 4 ? (i5 = HEAP32[i5 >> 2] | 0, (_luaO_str2d(i5 + 16 | 0, HEAP32[i5 + 12 >> 2] | 0, i3) | 0) != 0) : 0) { 37388 HEAPF64[i2 >> 3] = +HEAPF64[i3 >> 3]; 37389 HEAP32[i2 + 8 >> 2] = 3; 37390 } else { 37391 i2 = 0; 37392 } 37393 } else { 37394 i2 = i5; 37395 } 37396 STACKTOP = i1; 37397 return i2 | 0; 37398 } 37399 function _luaO_arith(i3, d1, d2) { 37400 i3 = i3 | 0; 37401 d1 = +d1; 37402 d2 = +d2; 37403 switch (i3 | 0) { 37404 case 4: 37405 { 37406 d1 = d1 - +Math_floor(+(d1 / d2)) * d2; 37407 break; 37408 } 37409 case 6: 37410 { 37411 d1 = -d1; 37412 break; 37413 } 37414 case 0: 37415 { 37416 d1 = d1 + d2; 37417 break; 37418 } 37419 case 1: 37420 { 37421 d1 = d1 - d2; 37422 break; 37423 } 37424 case 5: 37425 { 37426 d1 = +Math_pow(+d1, +d2); 37427 break; 37428 } 37429 case 3: 37430 { 37431 d1 = d1 / d2; 37432 break; 37433 } 37434 case 2: 37435 { 37436 d1 = d1 * d2; 37437 break; 37438 } 37439 default: 37440 { 37441 d1 = 0.0; 37442 } 37443 } 37444 return +d1; 37445 } 37446 function _luaB_coresume(i1) { 37447 i1 = i1 | 0; 37448 var i2 = 0, i3 = 0; 37449 i2 = STACKTOP; 37450 i3 = _lua_tothread(i1, 1) | 0; 37451 if ((i3 | 0) == 0) { 37452 _luaL_argerror(i1, 1, 10856) | 0; 37453 } 37454 i3 = _auxresume(i1, i3, (_lua_gettop(i1) | 0) + -1 | 0) | 0; 37455 if ((i3 | 0) < 0) { 37456 _lua_pushboolean(i1, 0); 37457 _lua_insert(i1, -2); 37458 i3 = 2; 37459 STACKTOP = i2; 37460 return i3 | 0; 37461 } else { 37462 _lua_pushboolean(i1, 1); 37463 _lua_insert(i1, ~i3); 37464 i3 = i3 + 1 | 0; 37465 STACKTOP = i2; 37466 return i3 | 0; 37467 } 37468 return 0; 37469 } 37470 function _pairsmeta(i1, i5, i4, i3) { 37471 i1 = i1 | 0; 37472 i5 = i5 | 0; 37473 i4 = i4 | 0; 37474 i3 = i3 | 0; 37475 var i2 = 0; 37476 i2 = STACKTOP; 37477 if ((_luaL_getmetafield(i1, 1, i5) | 0) != 0) { 37478 _lua_pushvalue(i1, 1); 37479 _lua_callk(i1, 1, 3, 0, 0); 37480 STACKTOP = i2; 37481 return; 37482 } 37483 _luaL_checktype(i1, 1, 5); 37484 _lua_pushcclosure(i1, i3, 0); 37485 _lua_pushvalue(i1, 1); 37486 if ((i4 | 0) == 0) { 37487 _lua_pushnil(i1); 37488 STACKTOP = i2; 37489 return; 37490 } else { 37491 _lua_pushinteger(i1, 0); 37492 STACKTOP = i2; 37493 return; 37494 } 37495 } 37496 function _io_close(i1) { 37497 i1 = i1 | 0; 37498 var i2 = 0, i3 = 0, i4 = 0; 37499 i2 = STACKTOP; 37500 STACKTOP = STACKTOP + 16 | 0; 37501 if ((_lua_type(i1, 1) | 0) == -1) { 37502 _lua_getfield(i1, -1001e3, 2800); 37503 } 37504 if ((HEAP32[(_luaL_checkudata(i1, 1, 2832) | 0) + 4 >> 2] | 0) == 0) { 37505 _luaL_error(i1, 3080, i2) | 0; 37506 } 37507 i4 = (_luaL_checkudata(i1, 1, 2832) | 0) + 4 | 0; 37508 i3 = HEAP32[i4 >> 2] | 0; 37509 HEAP32[i4 >> 2] = 0; 37510 i1 = FUNCTION_TABLE_ii[i3 & 255](i1) | 0; 37511 STACKTOP = i2; 37512 return i1 | 0; 37513 } 37514 function _pack(i1) { 37515 i1 = i1 | 0; 37516 var i2 = 0, i3 = 0; 37517 i2 = STACKTOP; 37518 i3 = _lua_gettop(i1) | 0; 37519 _lua_createtable(i1, i3, 1); 37520 _lua_pushinteger(i1, i3); 37521 _lua_setfield(i1, -2, 8312); 37522 if ((i3 | 0) <= 0) { 37523 STACKTOP = i2; 37524 return 1; 37525 } 37526 _lua_pushvalue(i1, 1); 37527 _lua_rawseti(i1, -2, 1); 37528 _lua_replace(i1, 1); 37529 if ((i3 | 0) <= 1) { 37530 STACKTOP = i2; 37531 return 1; 37532 } 37533 do { 37534 _lua_rawseti(i1, 1, i3); 37535 i3 = i3 + -1 | 0; 37536 } while ((i3 | 0) > 1); 37537 STACKTOP = i2; 37538 return 1; 37539 } 37540 function _luaL_execresult(i1, i3) { 37541 i1 = i1 | 0; 37542 i3 = i3 | 0; 37543 var i2 = 0; 37544 i2 = STACKTOP; 37545 if ((i3 | 0) == -1) { 37546 i3 = HEAP32[(___errno_location() | 0) >> 2] | 0; 37547 _lua_pushnil(i1); 37548 _lua_pushstring(i1, _strerror(i3 | 0) | 0) | 0; 37549 _lua_pushinteger(i1, i3); 37550 STACKTOP = i2; 37551 return 3; 37552 } else if ((i3 | 0) == 0) { 37553 _lua_pushboolean(i1, 1); 37554 } else { 37555 _lua_pushnil(i1); 37556 } 37557 _lua_pushstring(i1, 1184) | 0; 37558 _lua_pushinteger(i1, i3); 37559 STACKTOP = i2; 37560 return 3; 37561 } 37562 function _lua_getglobal(i1, i2) { 37563 i1 = i1 | 0; 37564 i2 = i2 | 0; 37565 var i3 = 0, i4 = 0, i5 = 0, i6 = 0; 37566 i3 = STACKTOP; 37567 i4 = _luaH_getint(HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 40 >> 2] | 0, 2) | 0; 37568 i5 = i1 + 8 | 0; 37569 i6 = HEAP32[i5 >> 2] | 0; 37570 HEAP32[i5 >> 2] = i6 + 16; 37571 i2 = _luaS_new(i1, i2) | 0; 37572 HEAP32[i6 >> 2] = i2; 37573 HEAP32[i6 + 8 >> 2] = HEAPU8[i2 + 4 | 0] | 0 | 64; 37574 i2 = (HEAP32[i5 >> 2] | 0) + -16 | 0; 37575 _luaV_gettable(i1, i4, i2, i2); 37576 STACKTOP = i3; 37577 return; 37578 } 37579 function _luaL_checktype(i1, i5, i4) { 37580 i1 = i1 | 0; 37581 i5 = i5 | 0; 37582 i4 = i4 | 0; 37583 var i2 = 0, i3 = 0, i6 = 0; 37584 i2 = STACKTOP; 37585 STACKTOP = STACKTOP + 16 | 0; 37586 i3 = i2; 37587 if ((_lua_type(i1, i5) | 0) == (i4 | 0)) { 37588 STACKTOP = i2; 37589 return; 37590 } 37591 i6 = _lua_typename(i1, i4) | 0; 37592 i4 = _lua_typename(i1, _lua_type(i1, i5) | 0) | 0; 37593 HEAP32[i3 >> 2] = i6; 37594 HEAP32[i3 + 4 >> 2] = i4; 37595 _luaL_argerror(i1, i5, _lua_pushfstring(i1, 1744, i3) | 0) | 0; 37596 STACKTOP = i2; 37597 return; 37598 } 37599 function _luaC_newobj(i7, i4, i6, i5, i1) { 37600 i7 = i7 | 0; 37601 i4 = i4 | 0; 37602 i6 = i6 | 0; 37603 i5 = i5 | 0; 37604 i1 = i1 | 0; 37605 var i2 = 0, i3 = 0; 37606 i2 = STACKTOP; 37607 i3 = HEAP32[i7 + 12 >> 2] | 0; 37608 i7 = _luaM_realloc_(i7, 0, i4 & 15, i6) | 0; 37609 i6 = i7 + i1 | 0; 37610 i5 = (i5 | 0) == 0 ? i3 + 68 | 0 : i5; 37611 HEAP8[i7 + (i1 + 5) | 0] = HEAP8[i3 + 60 | 0] & 3; 37612 HEAP8[i7 + (i1 + 4) | 0] = i4; 37613 HEAP32[i6 >> 2] = HEAP32[i5 >> 2]; 37614 HEAP32[i5 >> 2] = i6; 37615 STACKTOP = i2; 37616 return i6 | 0; 37617 } 37618 function _luaL_requiref(i1, i3, i5, i4) { 37619 i1 = i1 | 0; 37620 i3 = i3 | 0; 37621 i5 = i5 | 0; 37622 i4 = i4 | 0; 37623 var i2 = 0; 37624 i2 = STACKTOP; 37625 _lua_pushcclosure(i1, i5, 0); 37626 _lua_pushstring(i1, i3) | 0; 37627 _lua_callk(i1, 1, 1, 0, 0); 37628 _luaL_getsubtable(i1, -1001e3, 1432) | 0; 37629 _lua_pushvalue(i1, -2); 37630 _lua_setfield(i1, -2, i3); 37631 _lua_settop(i1, -2); 37632 if ((i4 | 0) == 0) { 37633 STACKTOP = i2; 37634 return; 37635 } 37636 _lua_pushvalue(i1, -1); 37637 _lua_setglobal(i1, i3); 37638 STACKTOP = i2; 37639 return; 37640 } 37641 function _luaG_ordererror(i1, i3, i4) { 37642 i1 = i1 | 0; 37643 i3 = i3 | 0; 37644 i4 = i4 | 0; 37645 var i2 = 0; 37646 i2 = STACKTOP; 37647 STACKTOP = STACKTOP + 16 | 0; 37648 i3 = HEAP32[8528 + ((HEAP32[i3 + 8 >> 2] & 15) + 1 << 2) >> 2] | 0; 37649 i4 = HEAP32[8528 + ((HEAP32[i4 + 8 >> 2] & 15) + 1 << 2) >> 2] | 0; 37650 if ((i3 | 0) == (i4 | 0)) { 37651 HEAP32[i2 >> 2] = i3; 37652 _luaG_runerror(i1, 1952, i2); 37653 } else { 37654 HEAP32[i2 >> 2] = i3; 37655 HEAP32[i2 + 4 >> 2] = i4; 37656 _luaG_runerror(i1, 1992, i2); 37657 } 37658 } 37659 function _io_popen(i1) { 37660 i1 = i1 | 0; 37661 var i2 = 0, i3 = 0, i4 = 0, i5 = 0; 37662 i2 = STACKTOP; 37663 STACKTOP = STACKTOP + 16 | 0; 37664 i3 = _luaL_checklstring(i1, 1, 0) | 0; 37665 _luaL_optlstring(i1, 2, 3480, 0) | 0; 37666 i5 = _lua_newuserdata(i1, 8) | 0; 37667 i4 = i5 + 4 | 0; 37668 HEAP32[i4 >> 2] = 0; 37669 _luaL_setmetatable(i1, 2832); 37670 _luaL_error(i1, 3488, i2) | 0; 37671 HEAP32[i5 >> 2] = 0; 37672 HEAP32[i4 >> 2] = 157; 37673 i1 = _luaL_fileresult(i1, 0, i3) | 0; 37674 STACKTOP = i2; 37675 return i1 | 0; 37676 } 37677 function _sort_comp(i1, i3, i4) { 37678 i1 = i1 | 0; 37679 i3 = i3 | 0; 37680 i4 = i4 | 0; 37681 var i2 = 0; 37682 i2 = STACKTOP; 37683 if ((_lua_type(i1, 2) | 0) == 0) { 37684 i4 = _lua_compare(i1, i3, i4, 1) | 0; 37685 STACKTOP = i2; 37686 return i4 | 0; 37687 } else { 37688 _lua_pushvalue(i1, 2); 37689 _lua_pushvalue(i1, i3 + -1 | 0); 37690 _lua_pushvalue(i1, i4 + -2 | 0); 37691 _lua_callk(i1, 2, 1, 0, 0); 37692 i4 = _lua_toboolean(i1, -1) | 0; 37693 _lua_settop(i1, -2); 37694 STACKTOP = i2; 37695 return i4 | 0; 37696 } 37697 return 0; 37698 } 37699 function _db_upvalueid(i1) { 37700 i1 = i1 | 0; 37701 var i2 = 0, i3 = 0, i4 = 0; 37702 i3 = STACKTOP; 37703 STACKTOP = STACKTOP + 112 | 0; 37704 i4 = i3; 37705 i2 = _luaL_checkinteger(i1, 2) | 0; 37706 _luaL_checktype(i1, 1, 6); 37707 _lua_pushvalue(i1, 1); 37708 _lua_getinfo(i1, 11728, i4) | 0; 37709 if (!((i2 | 0) > 0 ? (i2 | 0) <= (HEAPU8[i4 + 32 | 0] | 0 | 0) : 0)) { 37710 _luaL_argerror(i1, 2, 11736) | 0; 37711 } 37712 _lua_pushlightuserdata(i1, _lua_upvalueid(i1, 1, i2) | 0); 37713 STACKTOP = i3; 37714 return 1; 37715 } 37716 function _luaL_getmetafield(i2, i4, i3) { 37717 i2 = i2 | 0; 37718 i4 = i4 | 0; 37719 i3 = i3 | 0; 37720 var i1 = 0; 37721 i1 = STACKTOP; 37722 do { 37723 if ((_lua_getmetatable(i2, i4) | 0) != 0) { 37724 _lua_pushstring(i2, i3) | 0; 37725 _lua_rawget(i2, -2); 37726 if ((_lua_type(i2, -1) | 0) == 0) { 37727 _lua_settop(i2, -3); 37728 i2 = 0; 37729 break; 37730 } else { 37731 _lua_remove(i2, -2); 37732 i2 = 1; 37733 break; 37734 } 37735 } else { 37736 i2 = 0; 37737 } 37738 } while (0); 37739 STACKTOP = i1; 37740 return i2 | 0; 37741 } 37742 function _luaF_freeupval(i1, i3) { 37743 i1 = i1 | 0; 37744 i3 = i3 | 0; 37745 var i2 = 0, i4 = 0, i5 = 0; 37746 i2 = STACKTOP; 37747 if ((HEAP32[i3 + 8 >> 2] | 0) == (i3 + 16 | 0)) { 37748 _luaM_realloc_(i1, i3, 32, 0) | 0; 37749 STACKTOP = i2; 37750 return; 37751 } 37752 i4 = i3 + 16 | 0; 37753 i5 = i4 + 4 | 0; 37754 HEAP32[(HEAP32[i5 >> 2] | 0) + 16 >> 2] = HEAP32[i4 >> 2]; 37755 HEAP32[(HEAP32[i4 >> 2] | 0) + 20 >> 2] = HEAP32[i5 >> 2]; 37756 _luaM_realloc_(i1, i3, 32, 0) | 0; 37757 STACKTOP = i2; 37758 return; 37759 } 37760 function _luaL_addvalue(i1) { 37761 i1 = i1 | 0; 37762 var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0; 37763 i2 = STACKTOP; 37764 STACKTOP = STACKTOP + 16 | 0; 37765 i4 = i2; 37766 i5 = HEAP32[i1 + 12 >> 2] | 0; 37767 i3 = _lua_tolstring(i5, -1, i4) | 0; 37768 i6 = i1 + 16 | 0; 37769 if ((HEAP32[i1 >> 2] | 0) != (i6 | 0)) { 37770 _lua_insert(i5, -2); 37771 } 37772 _luaL_addlstring(i1, i3, HEAP32[i4 >> 2] | 0); 37773 _lua_remove(i5, (HEAP32[i1 >> 2] | 0) != (i6 | 0) ? -2 : -1); 37774 STACKTOP = i2; 37775 return; 37776 } 37777 function _escerror(i1, i4, i3, i2) { 37778 i1 = i1 | 0; 37779 i4 = i4 | 0; 37780 i3 = i3 | 0; 37781 i2 = i2 | 0; 37782 var i5 = 0, i6 = 0; 37783 HEAP32[(HEAP32[i1 + 60 >> 2] | 0) + 4 >> 2] = 0; 37784 _save(i1, 92); 37785 L1 : do { 37786 if ((i3 | 0) > 0) { 37787 i5 = 0; 37788 do { 37789 i6 = HEAP32[i4 + (i5 << 2) >> 2] | 0; 37790 if ((i6 | 0) == -1) { 37791 break L1; 37792 } 37793 _save(i1, i6); 37794 i5 = i5 + 1 | 0; 37795 } while ((i5 | 0) < (i3 | 0)); 37796 } 37797 } while (0); 37798 _lexerror(i1, i2, 289); 37799 } 37800 function _pushglobalfuncname(i1, i4) { 37801 i1 = i1 | 0; 37802 i4 = i4 | 0; 37803 var i2 = 0, i3 = 0; 37804 i2 = STACKTOP; 37805 i3 = _lua_gettop(i1) | 0; 37806 _lua_getinfo(i1, 1768, i4) | 0; 37807 _lua_rawgeti(i1, -1001e3, 2); 37808 i4 = i3 + 1 | 0; 37809 if ((_findfield(i1, i4, 2) | 0) == 0) { 37810 _lua_settop(i1, i3); 37811 i4 = 0; 37812 STACKTOP = i2; 37813 return i4 | 0; 37814 } else { 37815 _lua_copy(i1, -1, i4); 37816 _lua_settop(i1, -3); 37817 i4 = 1; 37818 STACKTOP = i2; 37819 return i4 | 0; 37820 } 37821 return 0; 37822 } 37823 function copyTempDouble(i1) { 37824 i1 = i1 | 0; 37825 HEAP8[tempDoublePtr] = HEAP8[i1]; 37826 HEAP8[tempDoublePtr + 1 | 0] = HEAP8[i1 + 1 | 0]; 37827 HEAP8[tempDoublePtr + 2 | 0] = HEAP8[i1 + 2 | 0]; 37828 HEAP8[tempDoublePtr + 3 | 0] = HEAP8[i1 + 3 | 0]; 37829 HEAP8[tempDoublePtr + 4 | 0] = HEAP8[i1 + 4 | 0]; 37830 HEAP8[tempDoublePtr + 5 | 0] = HEAP8[i1 + 5 | 0]; 37831 HEAP8[tempDoublePtr + 6 | 0] = HEAP8[i1 + 6 | 0]; 37832 HEAP8[tempDoublePtr + 7 | 0] = HEAP8[i1 + 7 | 0]; 37833 } 37834 function _lua_pushlstring(i1, i3, i4) { 37835 i1 = i1 | 0; 37836 i3 = i3 | 0; 37837 i4 = i4 | 0; 37838 var i2 = 0; 37839 i2 = STACKTOP; 37840 if ((HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) { 37841 _luaC_step(i1); 37842 } 37843 i4 = _luaS_newlstr(i1, i3, i4) | 0; 37844 i3 = i1 + 8 | 0; 37845 i1 = HEAP32[i3 >> 2] | 0; 37846 HEAP32[i1 >> 2] = i4; 37847 HEAP32[i1 + 8 >> 2] = HEAPU8[i4 + 4 | 0] | 0 | 64; 37848 HEAP32[i3 >> 2] = (HEAP32[i3 >> 2] | 0) + 16; 37849 STACKTOP = i2; 37850 return i4 + 16 | 0; 37851 } 37852 function _ll_searchpath(i1) { 37853 i1 = i1 | 0; 37854 var i2 = 0, i3 = 0, i4 = 0, i5 = 0; 37855 i2 = STACKTOP; 37856 i5 = _luaL_checklstring(i1, 1, 0) | 0; 37857 i4 = _luaL_checklstring(i1, 2, 0) | 0; 37858 i3 = _luaL_optlstring(i1, 3, 4936, 0) | 0; 37859 if ((_searchpath(i1, i5, i4, i3, _luaL_optlstring(i1, 4, 4848, 0) | 0) | 0) != 0) { 37860 i5 = 1; 37861 STACKTOP = i2; 37862 return i5 | 0; 37863 } 37864 _lua_pushnil(i1); 37865 _lua_insert(i1, -2); 37866 i5 = 2; 37867 STACKTOP = i2; 37868 return i5 | 0; 37869 } 37870 function _math_log(i1) { 37871 i1 = i1 | 0; 37872 var i2 = 0, d3 = 0.0, d4 = 0.0; 37873 i2 = STACKTOP; 37874 d3 = +_luaL_checknumber(i1, 1); 37875 do { 37876 if ((_lua_type(i1, 2) | 0) >= 1) { 37877 d4 = +_luaL_checknumber(i1, 2); 37878 if (d4 == 10.0) { 37879 d3 = +_log10(+d3); 37880 break; 37881 } else { 37882 d3 = +Math_log(+d3) / +Math_log(+d4); 37883 break; 37884 } 37885 } else { 37886 d3 = +Math_log(+d3); 37887 } 37888 } while (0); 37889 _lua_pushnumber(i1, d3); 37890 STACKTOP = i2; 37891 return 1; 37892 } 37893 function _luaT_init(i1) { 37894 i1 = i1 | 0; 37895 var i2 = 0, i3 = 0, i4 = 0, i5 = 0; 37896 i2 = STACKTOP; 37897 i3 = i1 + 12 | 0; 37898 i4 = 0; 37899 do { 37900 i5 = _luaS_new(i1, HEAP32[8576 + (i4 << 2) >> 2] | 0) | 0; 37901 HEAP32[(HEAP32[i3 >> 2] | 0) + (i4 << 2) + 184 >> 2] = i5; 37902 i5 = (HEAP32[(HEAP32[i3 >> 2] | 0) + (i4 << 2) + 184 >> 2] | 0) + 5 | 0; 37903 HEAP8[i5] = HEAPU8[i5] | 0 | 32; 37904 i4 = i4 + 1 | 0; 37905 } while ((i4 | 0) != 17); 37906 STACKTOP = i2; 37907 return; 37908 } 37909 function _f_gc(i1) { 37910 i1 = i1 | 0; 37911 var i2 = 0, i3 = 0, i4 = 0; 37912 i2 = STACKTOP; 37913 i3 = _luaL_checkudata(i1, 1, 2832) | 0; 37914 if ((HEAP32[i3 + 4 >> 2] | 0) == 0) { 37915 STACKTOP = i2; 37916 return 0; 37917 } 37918 if ((HEAP32[i3 >> 2] | 0) == 0) { 37919 STACKTOP = i2; 37920 return 0; 37921 } 37922 i4 = (_luaL_checkudata(i1, 1, 2832) | 0) + 4 | 0; 37923 i3 = HEAP32[i4 >> 2] | 0; 37924 HEAP32[i4 >> 2] = 0; 37925 FUNCTION_TABLE_ii[i3 & 255](i1) | 0; 37926 STACKTOP = i2; 37927 return 0; 37928 } 37929 function ___shlim(i1, i5) { 37930 i1 = i1 | 0; 37931 i5 = i5 | 0; 37932 var i2 = 0, i3 = 0, i4 = 0, i6 = 0; 37933 i2 = STACKTOP; 37934 HEAP32[i1 + 104 >> 2] = i5; 37935 i4 = HEAP32[i1 + 8 >> 2] | 0; 37936 i3 = HEAP32[i1 + 4 >> 2] | 0; 37937 i6 = i4 - i3 | 0; 37938 HEAP32[i1 + 108 >> 2] = i6; 37939 if ((i5 | 0) != 0 & (i6 | 0) > (i5 | 0)) { 37940 HEAP32[i1 + 100 >> 2] = i3 + i5; 37941 STACKTOP = i2; 37942 return; 37943 } else { 37944 HEAP32[i1 + 100 >> 2] = i4; 37945 STACKTOP = i2; 37946 return; 37947 } 37948 } 37949 function _lua_sethook(i4, i6, i1, i5) { 37950 i4 = i4 | 0; 37951 i6 = i6 | 0; 37952 i1 = i1 | 0; 37953 i5 = i5 | 0; 37954 var i2 = 0, i3 = 0; 37955 i2 = (i6 | 0) == 0 | (i1 | 0) == 0; 37956 i3 = HEAP32[i4 + 16 >> 2] | 0; 37957 if (!((HEAP8[i3 + 18 | 0] & 1) == 0)) { 37958 HEAP32[i4 + 20 >> 2] = HEAP32[i3 + 28 >> 2]; 37959 } 37960 HEAP32[i4 + 52 >> 2] = i2 ? 0 : i6; 37961 HEAP32[i4 + 44 >> 2] = i5; 37962 HEAP32[i4 + 48 >> 2] = i5; 37963 HEAP8[i4 + 40 | 0] = i2 ? 0 : i1 & 255; 37964 return 1; 37965 } 37966 function _io_tmpfile(i1) { 37967 i1 = i1 | 0; 37968 var i2 = 0, i3 = 0, i4 = 0; 37969 i2 = STACKTOP; 37970 i4 = _lua_newuserdata(i1, 8) | 0; 37971 i3 = i4 + 4 | 0; 37972 HEAP32[i3 >> 2] = 0; 37973 _luaL_setmetatable(i1, 2832); 37974 HEAP32[i4 >> 2] = 0; 37975 HEAP32[i3 >> 2] = 156; 37976 i3 = _tmpfile() | 0; 37977 HEAP32[i4 >> 2] = i3; 37978 if ((i3 | 0) != 0) { 37979 i4 = 1; 37980 STACKTOP = i2; 37981 return i4 | 0; 37982 } 37983 i4 = _luaL_fileresult(i1, 0, 0) | 0; 37984 STACKTOP = i2; 37985 return i4 | 0; 37986 } 37987 function _luaL_checkstack(i1, i5, i4) { 37988 i1 = i1 | 0; 37989 i5 = i5 | 0; 37990 i4 = i4 | 0; 37991 var i2 = 0, i3 = 0; 37992 i2 = STACKTOP; 37993 STACKTOP = STACKTOP + 16 | 0; 37994 i3 = i2; 37995 if ((_lua_checkstack(i1, i5 + 20 | 0) | 0) != 0) { 37996 STACKTOP = i2; 37997 return; 37998 } 37999 if ((i4 | 0) == 0) { 38000 _luaL_error(i1, 1240, i3) | 0; 38001 STACKTOP = i2; 38002 return; 38003 } else { 38004 HEAP32[i3 >> 2] = i4; 38005 _luaL_error(i1, 1216, i3) | 0; 38006 STACKTOP = i2; 38007 return; 38008 } 38009 } 38010 function _b_rshift(i1) { 38011 i1 = i1 | 0; 38012 var i2 = 0, i3 = 0, i4 = 0, i5 = 0; 38013 i2 = STACKTOP; 38014 i4 = _luaL_checkunsigned(i1, 1) | 0; 38015 i3 = _luaL_checkinteger(i1, 2) | 0; 38016 i5 = 0 - i3 | 0; 38017 if ((i3 | 0) > 0) { 38018 i5 = (i3 | 0) > 31 ? 0 : i4 >>> i3; 38019 _lua_pushunsigned(i1, i5); 38020 STACKTOP = i2; 38021 return 1; 38022 } else { 38023 i5 = (i5 | 0) > 31 ? 0 : i4 << i5; 38024 _lua_pushunsigned(i1, i5); 38025 STACKTOP = i2; 38026 return 1; 38027 } 38028 return 0; 38029 } 38030 function _b_lshift(i1) { 38031 i1 = i1 | 0; 38032 var i2 = 0, i3 = 0, i4 = 0; 38033 i2 = STACKTOP; 38034 i3 = _luaL_checkunsigned(i1, 1) | 0; 38035 i4 = _luaL_checkinteger(i1, 2) | 0; 38036 if ((i4 | 0) < 0) { 38037 i4 = 0 - i4 | 0; 38038 i4 = (i4 | 0) > 31 ? 0 : i3 >>> i4; 38039 _lua_pushunsigned(i1, i4); 38040 STACKTOP = i2; 38041 return 1; 38042 } else { 38043 i4 = (i4 | 0) > 31 ? 0 : i3 << i4; 38044 _lua_pushunsigned(i1, i4); 38045 STACKTOP = i2; 38046 return 1; 38047 } 38048 return 0; 38049 } 38050 function _math_min(i1) { 38051 i1 = i1 | 0; 38052 var i2 = 0, i3 = 0, i4 = 0, d5 = 0.0, d6 = 0.0; 38053 i2 = STACKTOP; 38054 i3 = _lua_gettop(i1) | 0; 38055 d5 = +_luaL_checknumber(i1, 1); 38056 if ((i3 | 0) >= 2) { 38057 i4 = 2; 38058 while (1) { 38059 d6 = +_luaL_checknumber(i1, i4); 38060 d5 = d6 < d5 ? d6 : d5; 38061 if ((i4 | 0) == (i3 | 0)) { 38062 break; 38063 } else { 38064 i4 = i4 + 1 | 0; 38065 } 38066 } 38067 } 38068 _lua_pushnumber(i1, d5); 38069 STACKTOP = i2; 38070 return 1; 38071 } 38072 function _math_max(i1) { 38073 i1 = i1 | 0; 38074 var i2 = 0, i3 = 0, i4 = 0, d5 = 0.0, d6 = 0.0; 38075 i2 = STACKTOP; 38076 i3 = _lua_gettop(i1) | 0; 38077 d5 = +_luaL_checknumber(i1, 1); 38078 if ((i3 | 0) >= 2) { 38079 i4 = 2; 38080 while (1) { 38081 d6 = +_luaL_checknumber(i1, i4); 38082 d5 = d6 > d5 ? d6 : d5; 38083 if ((i4 | 0) == (i3 | 0)) { 38084 break; 38085 } else { 38086 i4 = i4 + 1 | 0; 38087 } 38088 } 38089 } 38090 _lua_pushnumber(i1, d5); 38091 STACKTOP = i2; 38092 return 1; 38093 } 38094 function _io_type(i1) { 38095 i1 = i1 | 0; 38096 var i2 = 0, i3 = 0; 38097 i2 = STACKTOP; 38098 _luaL_checkany(i1, 1); 38099 i3 = _luaL_testudata(i1, 1, 2832) | 0; 38100 if ((i3 | 0) == 0) { 38101 _lua_pushnil(i1); 38102 STACKTOP = i2; 38103 return 1; 38104 } 38105 if ((HEAP32[i3 + 4 >> 2] | 0) == 0) { 38106 _lua_pushlstring(i1, 3456, 11) | 0; 38107 STACKTOP = i2; 38108 return 1; 38109 } else { 38110 _lua_pushlstring(i1, 3472, 4) | 0; 38111 STACKTOP = i2; 38112 return 1; 38113 } 38114 return 0; 38115 } 38116 function _luaF_newLclosure(i3, i2) { 38117 i3 = i3 | 0; 38118 i2 = i2 | 0; 38119 var i1 = 0, i4 = 0; 38120 i1 = STACKTOP; 38121 i3 = _luaC_newobj(i3, 6, (i2 << 2) + 16 | 0, 0, 0) | 0; 38122 HEAP32[i3 + 12 >> 2] = 0; 38123 HEAP8[i3 + 6 | 0] = i2; 38124 if ((i2 | 0) == 0) { 38125 STACKTOP = i1; 38126 return i3 | 0; 38127 } 38128 i4 = i3 + 16 | 0; 38129 do { 38130 i2 = i2 + -1 | 0; 38131 HEAP32[i4 + (i2 << 2) >> 2] = 0; 38132 } while ((i2 | 0) != 0); 38133 STACKTOP = i1; 38134 return i3 | 0; 38135 } 38136 function _io_flush(i1) { 38137 i1 = i1 | 0; 38138 var i2 = 0, i3 = 0, i4 = 0; 38139 i2 = STACKTOP; 38140 STACKTOP = STACKTOP + 16 | 0; 38141 i4 = i2; 38142 _lua_getfield(i1, -1001e3, 2800); 38143 i3 = _lua_touserdata(i1, -1) | 0; 38144 if ((HEAP32[i3 + 4 >> 2] | 0) == 0) { 38145 HEAP32[i4 >> 2] = 2804; 38146 _luaL_error(i1, 3424, i4) | 0; 38147 } 38148 i4 = _luaL_fileresult(i1, (_fflush(HEAP32[i3 >> 2] | 0) | 0) == 0 | 0, 0) | 0; 38149 STACKTOP = i2; 38150 return i4 | 0; 38151 } 38152 function _b_test(i1) { 38153 i1 = i1 | 0; 38154 var i2 = 0, i3 = 0, i4 = 0, i5 = 0; 38155 i2 = STACKTOP; 38156 i3 = _lua_gettop(i1) | 0; 38157 if ((i3 | 0) < 1) { 38158 i3 = 1; 38159 } else { 38160 i4 = 1; 38161 i5 = -1; 38162 while (1) { 38163 i5 = (_luaL_checkunsigned(i1, i4) | 0) & i5; 38164 if ((i4 | 0) == (i3 | 0)) { 38165 break; 38166 } else { 38167 i4 = i4 + 1 | 0; 38168 } 38169 } 38170 i3 = (i5 | 0) != 0; 38171 } 38172 _lua_pushboolean(i1, i3 & 1); 38173 STACKTOP = i2; 38174 return 1; 38175 } 38176 function ___muldsi3(i2, i1) { 38177 i2 = i2 | 0; 38178 i1 = i1 | 0; 38179 var i3 = 0, i4 = 0, i5 = 0, i6 = 0; 38180 i6 = i2 & 65535; 38181 i4 = i1 & 65535; 38182 i3 = Math_imul(i4, i6) | 0; 38183 i5 = i2 >>> 16; 38184 i4 = (i3 >>> 16) + (Math_imul(i4, i5) | 0) | 0; 38185 i1 = i1 >>> 16; 38186 i2 = Math_imul(i1, i6) | 0; 38187 return (tempRet0 = (i4 >>> 16) + (Math_imul(i1, i5) | 0) + (((i4 & 65535) + i2 | 0) >>> 16) | 0, i4 + i2 << 16 | i3 & 65535 | 0) | 0; 38188 } 38189 function _str_dump(i1) { 38190 i1 = i1 | 0; 38191 var i2 = 0, i3 = 0; 38192 i2 = STACKTOP; 38193 STACKTOP = STACKTOP + 1056 | 0; 38194 i3 = i2 + 8 | 0; 38195 _luaL_checktype(i1, 1, 6); 38196 _lua_settop(i1, 1); 38197 _luaL_buffinit(i1, i3); 38198 if ((_lua_dump(i1, 2, i3) | 0) == 0) { 38199 _luaL_pushresult(i3); 38200 i3 = 1; 38201 STACKTOP = i2; 38202 return i3 | 0; 38203 } else { 38204 i3 = _luaL_error(i1, 7888, i2) | 0; 38205 STACKTOP = i2; 38206 return i3 | 0; 38207 } 38208 return 0; 38209 } 38210 function ___memrchr(i2, i3, i5) { 38211 i2 = i2 | 0; 38212 i3 = i3 | 0; 38213 i5 = i5 | 0; 38214 var i1 = 0, i4 = 0; 38215 i1 = STACKTOP; 38216 i3 = i3 & 255; 38217 while (1) { 38218 i4 = i5 + -1 | 0; 38219 if ((i5 | 0) == 0) { 38220 i5 = 0; 38221 i2 = 4; 38222 break; 38223 } 38224 i5 = i2 + i4 | 0; 38225 if ((HEAP8[i5] | 0) == i3 << 24 >> 24) { 38226 i2 = 4; 38227 break; 38228 } else { 38229 i5 = i4; 38230 } 38231 } 38232 if ((i2 | 0) == 4) { 38233 STACKTOP = i1; 38234 return i5 | 0; 38235 } 38236 return 0; 38237 } 38238 function _luaL_getsubtable(i1, i3, i4) { 38239 i1 = i1 | 0; 38240 i3 = i3 | 0; 38241 i4 = i4 | 0; 38242 var i2 = 0; 38243 i2 = STACKTOP; 38244 _lua_getfield(i1, i3, i4); 38245 if ((_lua_type(i1, -1) | 0) == 5) { 38246 i4 = 1; 38247 STACKTOP = i2; 38248 return i4 | 0; 38249 } 38250 _lua_settop(i1, -2); 38251 i3 = _lua_absindex(i1, i3) | 0; 38252 _lua_createtable(i1, 0, 0); 38253 _lua_pushvalue(i1, -1); 38254 _lua_setfield(i1, i3, i4); 38255 i4 = 0; 38256 STACKTOP = i2; 38257 return i4 | 0; 38258 } 38259 function _luaE_freeCI(i1) { 38260 i1 = i1 | 0; 38261 var i2 = 0, i3 = 0, i4 = 0; 38262 i2 = STACKTOP; 38263 i4 = (HEAP32[i1 + 16 >> 2] | 0) + 12 | 0; 38264 i3 = HEAP32[i4 >> 2] | 0; 38265 HEAP32[i4 >> 2] = 0; 38266 if ((i3 | 0) == 0) { 38267 STACKTOP = i2; 38268 return; 38269 } 38270 while (1) { 38271 i4 = HEAP32[i3 + 12 >> 2] | 0; 38272 _luaM_realloc_(i1, i3, 40, 0) | 0; 38273 if ((i4 | 0) == 0) { 38274 break; 38275 } else { 38276 i3 = i4; 38277 } 38278 } 38279 STACKTOP = i2; 38280 return; 38281 } 38282 function _f_tostring(i1) { 38283 i1 = i1 | 0; 38284 var i2 = 0, i3 = 0, i4 = 0; 38285 i2 = STACKTOP; 38286 STACKTOP = STACKTOP + 16 | 0; 38287 i3 = i2; 38288 i4 = _luaL_checkudata(i1, 1, 2832) | 0; 38289 if ((HEAP32[i4 + 4 >> 2] | 0) == 0) { 38290 _lua_pushlstring(i1, 3040, 13) | 0; 38291 STACKTOP = i2; 38292 return 1; 38293 } else { 38294 HEAP32[i3 >> 2] = HEAP32[i4 >> 2]; 38295 _lua_pushfstring(i1, 3056, i3) | 0; 38296 STACKTOP = i2; 38297 return 1; 38298 } 38299 return 0; 38300 } 38301 function _lua_newuserdata(i1, i3) { 38302 i1 = i1 | 0; 38303 i3 = i3 | 0; 38304 var i2 = 0, i4 = 0; 38305 i2 = STACKTOP; 38306 if ((HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) { 38307 _luaC_step(i1); 38308 } 38309 i3 = _luaS_newudata(i1, i3, 0) | 0; 38310 i1 = i1 + 8 | 0; 38311 i4 = HEAP32[i1 >> 2] | 0; 38312 HEAP32[i4 >> 2] = i3; 38313 HEAP32[i4 + 8 >> 2] = 71; 38314 HEAP32[i1 >> 2] = (HEAP32[i1 >> 2] | 0) + 16; 38315 STACKTOP = i2; 38316 return i3 + 24 | 0; 38317 } 38318 function _luaL_pushresultsize(i1, i3) { 38319 i1 = i1 | 0; 38320 i3 = i3 | 0; 38321 var i2 = 0, i4 = 0, i5 = 0; 38322 i2 = STACKTOP; 38323 i5 = i1 + 8 | 0; 38324 i4 = (HEAP32[i5 >> 2] | 0) + i3 | 0; 38325 HEAP32[i5 >> 2] = i4; 38326 i3 = HEAP32[i1 + 12 >> 2] | 0; 38327 _lua_pushlstring(i3, HEAP32[i1 >> 2] | 0, i4) | 0; 38328 if ((HEAP32[i1 >> 2] | 0) == (i1 + 16 | 0)) { 38329 STACKTOP = i2; 38330 return; 38331 } 38332 _lua_remove(i3, -2); 38333 STACKTOP = i2; 38334 return; 38335 } 38336 function _luaL_testudata(i2, i5, i4) { 38337 i2 = i2 | 0; 38338 i5 = i5 | 0; 38339 i4 = i4 | 0; 38340 var i1 = 0, i3 = 0; 38341 i1 = STACKTOP; 38342 i3 = _lua_touserdata(i2, i5) | 0; 38343 if ((i3 | 0) != 0 ? (_lua_getmetatable(i2, i5) | 0) != 0 : 0) { 38344 _lua_getfield(i2, -1001e3, i4); 38345 i5 = (_lua_rawequal(i2, -1, -2) | 0) == 0; 38346 _lua_settop(i2, -3); 38347 i2 = i5 ? 0 : i3; 38348 } else { 38349 i2 = 0; 38350 } 38351 STACKTOP = i1; 38352 return i2 | 0; 38353 } 38354 function _finishpcall(i1, i3) { 38355 i1 = i1 | 0; 38356 i3 = i3 | 0; 38357 var i2 = 0; 38358 i2 = STACKTOP; 38359 if ((_lua_checkstack(i1, 1) | 0) == 0) { 38360 _lua_settop(i1, 0); 38361 _lua_pushboolean(i1, 0); 38362 _lua_pushstring(i1, 9632) | 0; 38363 i3 = 2; 38364 STACKTOP = i2; 38365 return i3 | 0; 38366 } else { 38367 _lua_pushboolean(i1, i3); 38368 _lua_replace(i1, 1); 38369 i3 = _lua_gettop(i1) | 0; 38370 STACKTOP = i2; 38371 return i3 | 0; 38372 } 38373 return 0; 38374 } 38375 function _searcher_preload(i1) { 38376 i1 = i1 | 0; 38377 var i2 = 0, i3 = 0, i4 = 0; 38378 i2 = STACKTOP; 38379 STACKTOP = STACKTOP + 16 | 0; 38380 i4 = i2; 38381 i3 = _luaL_checklstring(i1, 1, 0) | 0; 38382 _lua_getfield(i1, -1001e3, 4592); 38383 _lua_getfield(i1, -1, i3); 38384 if ((_lua_type(i1, -1) | 0) != 0) { 38385 STACKTOP = i2; 38386 return 1; 38387 } 38388 HEAP32[i4 >> 2] = i3; 38389 _lua_pushfstring(i1, 5096, i4) | 0; 38390 STACKTOP = i2; 38391 return 1; 38392 } 38393 function _luaB_auxwrap(i1) { 38394 i1 = i1 | 0; 38395 var i2 = 0, i3 = 0; 38396 i3 = STACKTOP; 38397 i2 = _lua_tothread(i1, -1001001) | 0; 38398 i2 = _auxresume(i1, i2, _lua_gettop(i1) | 0) | 0; 38399 if ((i2 | 0) >= 0) { 38400 STACKTOP = i3; 38401 return i2 | 0; 38402 } 38403 if ((_lua_isstring(i1, -1) | 0) == 0) { 38404 _lua_error(i1) | 0; 38405 } 38406 _luaL_where(i1, 1); 38407 _lua_insert(i1, -2); 38408 _lua_concat(i1, 2); 38409 _lua_error(i1) | 0; 38410 return 0; 38411 } 38412 function _ll_loadlib(i1) { 38413 i1 = i1 | 0; 38414 var i2 = 0, i3 = 0; 38415 i2 = STACKTOP; 38416 i3 = _luaL_checklstring(i1, 1, 0) | 0; 38417 i3 = _ll_loadfunc(i1, i3, _luaL_checklstring(i1, 2, 0) | 0) | 0; 38418 if ((i3 | 0) == 0) { 38419 i3 = 1; 38420 STACKTOP = i2; 38421 return i3 | 0; 38422 } 38423 _lua_pushnil(i1); 38424 _lua_insert(i1, -2); 38425 _lua_pushstring(i1, (i3 | 0) == 1 ? 5176 : 5184) | 0; 38426 i3 = 3; 38427 STACKTOP = i2; 38428 return i3 | 0; 38429 } 38430 function _luaS_hash(i2, i4, i3) { 38431 i2 = i2 | 0; 38432 i4 = i4 | 0; 38433 i3 = i3 | 0; 38434 var i1 = 0, i5 = 0; 38435 i1 = STACKTOP; 38436 i5 = i3 ^ i4; 38437 i3 = (i4 >>> 5) + 1 | 0; 38438 if (i3 >>> 0 > i4 >>> 0) { 38439 STACKTOP = i1; 38440 return i5 | 0; 38441 } 38442 do { 38443 i5 = (i5 << 5) + (i5 >>> 2) + (HEAPU8[i2 + (i4 + -1) | 0] | 0) ^ i5; 38444 i4 = i4 - i3 | 0; 38445 } while (!(i4 >>> 0 < i3 >>> 0)); 38446 STACKTOP = i1; 38447 return i5 | 0; 38448 } 38449 function _b_and(i1) { 38450 i1 = i1 | 0; 38451 var i2 = 0, i3 = 0, i4 = 0, i5 = 0; 38452 i2 = STACKTOP; 38453 i3 = _lua_gettop(i1) | 0; 38454 if ((i3 | 0) < 1) { 38455 i5 = -1; 38456 } else { 38457 i4 = 1; 38458 i5 = -1; 38459 while (1) { 38460 i5 = (_luaL_checkunsigned(i1, i4) | 0) & i5; 38461 if ((i4 | 0) == (i3 | 0)) { 38462 break; 38463 } else { 38464 i4 = i4 + 1 | 0; 38465 } 38466 } 38467 } 38468 _lua_pushunsigned(i1, i5); 38469 STACKTOP = i2; 38470 return 1; 38471 } 38472 function _luaopen_string(i1) { 38473 i1 = i1 | 0; 38474 var i2 = 0; 38475 i2 = STACKTOP; 38476 _lua_createtable(i1, 0, 14); 38477 _luaL_setfuncs(i1, 6920, 0); 38478 _lua_createtable(i1, 0, 1); 38479 _lua_pushlstring(i1, 7040, 0) | 0; 38480 _lua_pushvalue(i1, -2); 38481 _lua_setmetatable(i1, -2) | 0; 38482 _lua_settop(i1, -2); 38483 _lua_pushvalue(i1, -2); 38484 _lua_setfield(i1, -2, 7048); 38485 _lua_settop(i1, -2); 38486 STACKTOP = i2; 38487 return 1; 38488 } 38489 function _b_xor(i1) { 38490 i1 = i1 | 0; 38491 var i2 = 0, i3 = 0, i4 = 0, i5 = 0; 38492 i2 = STACKTOP; 38493 i3 = _lua_gettop(i1) | 0; 38494 if ((i3 | 0) < 1) { 38495 i5 = 0; 38496 } else { 38497 i4 = 1; 38498 i5 = 0; 38499 while (1) { 38500 i5 = (_luaL_checkunsigned(i1, i4) | 0) ^ i5; 38501 if ((i4 | 0) == (i3 | 0)) { 38502 break; 38503 } else { 38504 i4 = i4 + 1 | 0; 38505 } 38506 } 38507 } 38508 _lua_pushunsigned(i1, i5); 38509 STACKTOP = i2; 38510 return 1; 38511 } 38512 function _luaB_assert(i1) { 38513 i1 = i1 | 0; 38514 var i2 = 0, i3 = 0; 38515 i2 = STACKTOP; 38516 STACKTOP = STACKTOP + 16 | 0; 38517 i3 = i2; 38518 if ((_lua_toboolean(i1, 1) | 0) == 0) { 38519 HEAP32[i3 >> 2] = _luaL_optlstring(i1, 2, 10216, 0) | 0; 38520 i3 = _luaL_error(i1, 10208, i3) | 0; 38521 STACKTOP = i2; 38522 return i3 | 0; 38523 } else { 38524 i3 = _lua_gettop(i1) | 0; 38525 STACKTOP = i2; 38526 return i3 | 0; 38527 } 38528 return 0; 38529 } 38530 function _b_or(i1) { 38531 i1 = i1 | 0; 38532 var i2 = 0, i3 = 0, i4 = 0, i5 = 0; 38533 i2 = STACKTOP; 38534 i3 = _lua_gettop(i1) | 0; 38535 if ((i3 | 0) < 1) { 38536 i5 = 0; 38537 } else { 38538 i4 = 1; 38539 i5 = 0; 38540 while (1) { 38541 i5 = _luaL_checkunsigned(i1, i4) | 0 | i5; 38542 if ((i4 | 0) == (i3 | 0)) { 38543 break; 38544 } else { 38545 i4 = i4 + 1 | 0; 38546 } 38547 } 38548 } 38549 _lua_pushunsigned(i1, i5); 38550 STACKTOP = i2; 38551 return 1; 38552 } 38553 function _io_write(i1) { 38554 i1 = i1 | 0; 38555 var i2 = 0, i3 = 0, i4 = 0; 38556 i2 = STACKTOP; 38557 STACKTOP = STACKTOP + 16 | 0; 38558 i4 = i2; 38559 _lua_getfield(i1, -1001e3, 2800); 38560 i3 = _lua_touserdata(i1, -1) | 0; 38561 if ((HEAP32[i3 + 4 >> 2] | 0) == 0) { 38562 HEAP32[i4 >> 2] = 2804; 38563 _luaL_error(i1, 3424, i4) | 0; 38564 } 38565 i4 = _g_write(i1, HEAP32[i3 >> 2] | 0, 1) | 0; 38566 STACKTOP = i2; 38567 return i4 | 0; 38568 } 38569 function _luaK_checkstack(i1, i3) { 38570 i1 = i1 | 0; 38571 i3 = i3 | 0; 38572 var i2 = 0, i4 = 0; 38573 i2 = STACKTOP; 38574 i3 = (HEAPU8[i1 + 48 | 0] | 0) + i3 | 0; 38575 i4 = (HEAP32[i1 >> 2] | 0) + 78 | 0; 38576 if ((i3 | 0) <= (HEAPU8[i4] | 0 | 0)) { 38577 STACKTOP = i2; 38578 return; 38579 } 38580 if ((i3 | 0) > 249) { 38581 _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10536); 38582 } 38583 HEAP8[i4] = i3; 38584 STACKTOP = i2; 38585 return; 38586 } 38587 function _io_read(i1) { 38588 i1 = i1 | 0; 38589 var i2 = 0, i3 = 0, i4 = 0; 38590 i2 = STACKTOP; 38591 STACKTOP = STACKTOP + 16 | 0; 38592 i4 = i2; 38593 _lua_getfield(i1, -1001e3, 2776); 38594 i3 = _lua_touserdata(i1, -1) | 0; 38595 if ((HEAP32[i3 + 4 >> 2] | 0) == 0) { 38596 HEAP32[i4 >> 2] = 2780; 38597 _luaL_error(i1, 3424, i4) | 0; 38598 } 38599 i4 = _g_read(i1, HEAP32[i3 >> 2] | 0, 1) | 0; 38600 STACKTOP = i2; 38601 return i4 | 0; 38602 } 38603 function _db_setupvalue(i1) { 38604 i1 = i1 | 0; 38605 var i2 = 0, i3 = 0; 38606 i2 = STACKTOP; 38607 _luaL_checkany(i1, 3); 38608 i3 = _luaL_checkinteger(i1, 2) | 0; 38609 _luaL_checktype(i1, 1, 6); 38610 i3 = _lua_setupvalue(i1, 1, i3) | 0; 38611 if ((i3 | 0) == 0) { 38612 i3 = 0; 38613 STACKTOP = i2; 38614 return i3 | 0; 38615 } 38616 _lua_pushstring(i1, i3) | 0; 38617 _lua_insert(i1, -1); 38618 i3 = 1; 38619 STACKTOP = i2; 38620 return i3 | 0; 38621 } 38622 function ___uflow(i2) { 38623 i2 = i2 | 0; 38624 var i1 = 0, i3 = 0; 38625 i1 = STACKTOP; 38626 STACKTOP = STACKTOP + 16 | 0; 38627 i3 = i1; 38628 if ((HEAP32[i2 + 8 >> 2] | 0) == 0 ? (___toread(i2) | 0) != 0 : 0) { 38629 i2 = -1; 38630 } else { 38631 if ((FUNCTION_TABLE_iiii[HEAP32[i2 + 32 >> 2] & 3](i2, i3, 1) | 0) == 1) { 38632 i2 = HEAPU8[i3] | 0; 38633 } else { 38634 i2 = -1; 38635 } 38636 } 38637 STACKTOP = i1; 38638 return i2 | 0; 38639 } 38640 function _llvm_cttz_i32(i1) { 38641 i1 = i1 | 0; 38642 var i2 = 0; 38643 i2 = HEAP8[cttz_i8 + (i1 & 255) | 0] | 0; 38644 if ((i2 | 0) < 8) return i2 | 0; 38645 i2 = HEAP8[cttz_i8 + (i1 >> 8 & 255) | 0] | 0; 38646 if ((i2 | 0) < 8) return i2 + 8 | 0; 38647 i2 = HEAP8[cttz_i8 + (i1 >> 16 & 255) | 0] | 0; 38648 if ((i2 | 0) < 8) return i2 + 16 | 0; 38649 return (HEAP8[cttz_i8 + (i1 >>> 24) | 0] | 0) + 24 | 0; 38650 } 38651 function _llvm_ctlz_i32(i1) { 38652 i1 = i1 | 0; 38653 var i2 = 0; 38654 i2 = HEAP8[ctlz_i8 + (i1 >>> 24) | 0] | 0; 38655 if ((i2 | 0) < 8) return i2 | 0; 38656 i2 = HEAP8[ctlz_i8 + (i1 >> 16 & 255) | 0] | 0; 38657 if ((i2 | 0) < 8) return i2 + 8 | 0; 38658 i2 = HEAP8[ctlz_i8 + (i1 >> 8 & 255) | 0] | 0; 38659 if ((i2 | 0) < 8) return i2 + 16 | 0; 38660 return (HEAP8[ctlz_i8 + (i1 & 255) | 0] | 0) + 24 | 0; 38661 } 38662 function _luaO_ceillog2(i2) { 38663 i2 = i2 | 0; 38664 var i1 = 0, i3 = 0, i4 = 0; 38665 i1 = STACKTOP; 38666 i2 = i2 + -1 | 0; 38667 if (i2 >>> 0 > 255) { 38668 i3 = 0; 38669 while (1) { 38670 i3 = i3 + 8 | 0; 38671 i4 = i2 >>> 8; 38672 if (i2 >>> 0 > 65535) { 38673 i2 = i4; 38674 } else { 38675 i2 = i4; 38676 break; 38677 } 38678 } 38679 } else { 38680 i3 = 0; 38681 } 38682 STACKTOP = i1; 38683 return (HEAPU8[5208 + i2 | 0] | 0) + i3 | 0; 38684 } 38685 function _os_exit(i1) { 38686 i1 = i1 | 0; 38687 var i2 = 0, i3 = 0; 38688 i2 = STACKTOP; 38689 if ((_lua_type(i1, 1) | 0) == 1) { 38690 i3 = (_lua_toboolean(i1, 1) | 0) == 0 | 0; 38691 } else { 38692 i3 = _luaL_optinteger(i1, 1, 0) | 0; 38693 } 38694 if ((_lua_toboolean(i1, 2) | 0) != 0) { 38695 _lua_close(i1); 38696 } 38697 if ((i1 | 0) == 0) { 38698 STACKTOP = i2; 38699 return 0; 38700 } else { 38701 _exit(i3 | 0); 38702 } 38703 return 0; 38704 } 38705 function _luaL_newmetatable(i1, i3) { 38706 i1 = i1 | 0; 38707 i3 = i3 | 0; 38708 var i2 = 0; 38709 i2 = STACKTOP; 38710 _lua_getfield(i1, -1001e3, i3); 38711 if ((_lua_type(i1, -1) | 0) != 0) { 38712 i3 = 0; 38713 STACKTOP = i2; 38714 return i3 | 0; 38715 } 38716 _lua_settop(i1, -2); 38717 _lua_createtable(i1, 0, 0); 38718 _lua_pushvalue(i1, -1); 38719 _lua_setfield(i1, -1001e3, i3); 38720 i3 = 1; 38721 STACKTOP = i2; 38722 return i3 | 0; 38723 } 38724 function _luaH_free(i1, i4) { 38725 i1 = i1 | 0; 38726 i4 = i4 | 0; 38727 var i2 = 0, i3 = 0; 38728 i2 = STACKTOP; 38729 i3 = HEAP32[i4 + 16 >> 2] | 0; 38730 if ((i3 | 0) != 8016) { 38731 _luaM_realloc_(i1, i3, 32 << (HEAPU8[i4 + 7 | 0] | 0), 0) | 0; 38732 } 38733 _luaM_realloc_(i1, HEAP32[i4 + 12 >> 2] | 0, HEAP32[i4 + 28 >> 2] << 4, 0) | 0; 38734 _luaM_realloc_(i1, i4, 32, 0) | 0; 38735 STACKTOP = i2; 38736 return; 38737 } 38738 function _luaO_int2fb(i3) { 38739 i3 = i3 | 0; 38740 var i1 = 0, i2 = 0, i4 = 0; 38741 i1 = STACKTOP; 38742 if (i3 >>> 0 < 8) { 38743 STACKTOP = i1; 38744 return i3 | 0; 38745 } 38746 if (i3 >>> 0 > 15) { 38747 i2 = 1; 38748 do { 38749 i4 = i3 + 1 | 0; 38750 i3 = i4 >>> 1; 38751 i2 = i2 + 1 | 0; 38752 } while (i4 >>> 0 > 31); 38753 i2 = i2 << 3; 38754 } else { 38755 i2 = 8; 38756 } 38757 i4 = i2 | i3 + -8; 38758 STACKTOP = i1; 38759 return i4 | 0; 38760 } 38761 function _luaK_codek(i3, i4, i1) { 38762 i3 = i3 | 0; 38763 i4 = i4 | 0; 38764 i1 = i1 | 0; 38765 var i2 = 0; 38766 i2 = STACKTOP; 38767 i4 = i4 << 6; 38768 if ((i1 | 0) < 262144) { 38769 i4 = _luaK_code(i3, i4 | i1 << 14 | 1) | 0; 38770 STACKTOP = i2; 38771 return i4 | 0; 38772 } else { 38773 i4 = _luaK_code(i3, i4 | 2) | 0; 38774 _luaK_code(i3, i1 << 6 | 39) | 0; 38775 STACKTOP = i2; 38776 return i4 | 0; 38777 } 38778 return 0; 38779 } 38780 function _luaB_xpcall(i1) { 38781 i1 = i1 | 0; 38782 var i2 = 0, i3 = 0; 38783 i2 = STACKTOP; 38784 i3 = _lua_gettop(i1) | 0; 38785 if ((i3 | 0) <= 1) { 38786 _luaL_argerror(i1, 2, 9616) | 0; 38787 } 38788 _lua_pushvalue(i1, 1); 38789 _lua_copy(i1, 2, 1); 38790 _lua_replace(i1, 2); 38791 i3 = _finishpcall(i1, (_lua_pcallk(i1, i3 + -2 | 0, -1, 1, 0, 166) | 0) == 0 | 0) | 0; 38792 STACKTOP = i2; 38793 return i3 | 0; 38794 } 38795 function _luaS_newudata(i1, i3, i4) { 38796 i1 = i1 | 0; 38797 i3 = i3 | 0; 38798 i4 = i4 | 0; 38799 var i2 = 0; 38800 i2 = STACKTOP; 38801 if (i3 >>> 0 > 4294967269) { 38802 _luaM_toobig(i1); 38803 } else { 38804 i1 = _luaC_newobj(i1, 7, i3 + 24 | 0, 0, 0) | 0; 38805 HEAP32[i1 + 16 >> 2] = i3; 38806 HEAP32[i1 + 8 >> 2] = 0; 38807 HEAP32[i1 + 12 >> 2] = i4; 38808 STACKTOP = i2; 38809 return i1 | 0; 38810 } 38811 return 0; 38812 } 38813 function _lua_dump(i1, i4, i5) { 38814 i1 = i1 | 0; 38815 i4 = i4 | 0; 38816 i5 = i5 | 0; 38817 var i2 = 0, i3 = 0; 38818 i2 = STACKTOP; 38819 i3 = HEAP32[i1 + 8 >> 2] | 0; 38820 if ((HEAP32[i3 + -8 >> 2] | 0) != 70) { 38821 i5 = 1; 38822 STACKTOP = i2; 38823 return i5 | 0; 38824 } 38825 i5 = _luaU_dump(i1, HEAP32[(HEAP32[i3 + -16 >> 2] | 0) + 12 >> 2] | 0, i4, i5, 0) | 0; 38826 STACKTOP = i2; 38827 return i5 | 0; 38828 } 38829 function _luaS_eqlngstr(i2, i4) { 38830 i2 = i2 | 0; 38831 i4 = i4 | 0; 38832 var i1 = 0, i3 = 0; 38833 i1 = STACKTOP; 38834 i3 = HEAP32[i2 + 12 >> 2] | 0; 38835 if ((i2 | 0) != (i4 | 0)) { 38836 if ((i3 | 0) == (HEAP32[i4 + 12 >> 2] | 0)) { 38837 i2 = (_memcmp(i2 + 16 | 0, i4 + 16 | 0, i3) | 0) == 0; 38838 } else { 38839 i2 = 0; 38840 } 38841 } else { 38842 i2 = 1; 38843 } 38844 STACKTOP = i1; 38845 return i2 & 1 | 0; 38846 } 38847 function _luaC_barrier_(i4, i3, i1) { 38848 i4 = i4 | 0; 38849 i3 = i3 | 0; 38850 i1 = i1 | 0; 38851 var i2 = 0; 38852 i2 = STACKTOP; 38853 i4 = HEAP32[i4 + 12 >> 2] | 0; 38854 if ((HEAPU8[i4 + 61 | 0] | 0) < 2) { 38855 _reallymarkobject(i4, i1); 38856 STACKTOP = i2; 38857 return; 38858 } else { 38859 i3 = i3 + 5 | 0; 38860 HEAP8[i3] = HEAP8[i4 + 60 | 0] & 3 | HEAP8[i3] & 184; 38861 STACKTOP = i2; 38862 return; 38863 } 38864 } 38865 function _db_getupvalue(i1) { 38866 i1 = i1 | 0; 38867 var i2 = 0, i3 = 0; 38868 i2 = STACKTOP; 38869 i3 = _luaL_checkinteger(i1, 2) | 0; 38870 _luaL_checktype(i1, 1, 6); 38871 i3 = _lua_getupvalue(i1, 1, i3) | 0; 38872 if ((i3 | 0) == 0) { 38873 i3 = 0; 38874 STACKTOP = i2; 38875 return i3 | 0; 38876 } 38877 _lua_pushstring(i1, i3) | 0; 38878 _lua_insert(i1, -2); 38879 i3 = 2; 38880 STACKTOP = i2; 38881 return i3 | 0; 38882 } 38883 function _os_execute(i1) { 38884 i1 = i1 | 0; 38885 var i2 = 0, i3 = 0, i4 = 0; 38886 i2 = STACKTOP; 38887 i4 = _luaL_optlstring(i1, 1, 0, 0) | 0; 38888 i3 = _system(i4 | 0) | 0; 38889 if ((i4 | 0) == 0) { 38890 _lua_pushboolean(i1, i3); 38891 i4 = 1; 38892 STACKTOP = i2; 38893 return i4 | 0; 38894 } else { 38895 i4 = _luaL_execresult(i1, i3) | 0; 38896 STACKTOP = i2; 38897 return i4 | 0; 38898 } 38899 return 0; 38900 } 38901 function _lua_pushfstring(i4, i5, i1) { 38902 i4 = i4 | 0; 38903 i5 = i5 | 0; 38904 i1 = i1 | 0; 38905 var i2 = 0, i3 = 0; 38906 i2 = STACKTOP; 38907 STACKTOP = STACKTOP + 16 | 0; 38908 i3 = i2; 38909 if ((HEAP32[(HEAP32[i4 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) { 38910 _luaC_step(i4); 38911 } 38912 HEAP32[i3 >> 2] = i1; 38913 i5 = _luaO_pushvfstring(i4, i5, i3) | 0; 38914 STACKTOP = i2; 38915 return i5 | 0; 38916 } 38917 function _luaB_dofile(i1) { 38918 i1 = i1 | 0; 38919 var i2 = 0, i3 = 0; 38920 i2 = STACKTOP; 38921 i3 = _luaL_optlstring(i1, 1, 0, 0) | 0; 38922 _lua_settop(i1, 1); 38923 if ((_luaL_loadfilex(i1, i3, 0) | 0) == 0) { 38924 _lua_callk(i1, 0, -1, 0, 164); 38925 i3 = (_lua_gettop(i1) | 0) + -1 | 0; 38926 STACKTOP = i2; 38927 return i3 | 0; 38928 } else { 38929 _lua_error(i1) | 0; 38930 } 38931 return 0; 38932 } 38933 function _f_write(i1) { 38934 i1 = i1 | 0; 38935 var i2 = 0, i3 = 0; 38936 i2 = STACKTOP; 38937 STACKTOP = STACKTOP + 16 | 0; 38938 i3 = _luaL_checkudata(i1, 1, 2832) | 0; 38939 if ((HEAP32[i3 + 4 >> 2] | 0) == 0) { 38940 _luaL_error(i1, 3080, i2) | 0; 38941 } 38942 i3 = HEAP32[i3 >> 2] | 0; 38943 _lua_pushvalue(i1, 1); 38944 i3 = _g_write(i1, i3, 2) | 0; 38945 STACKTOP = i2; 38946 return i3 | 0; 38947 } 38948 function _lua_getctx(i3, i1) { 38949 i3 = i3 | 0; 38950 i1 = i1 | 0; 38951 var i2 = 0; 38952 i2 = STACKTOP; 38953 i3 = HEAP32[i3 + 16 >> 2] | 0; 38954 if ((HEAP8[i3 + 18 | 0] & 8) == 0) { 38955 i3 = 0; 38956 STACKTOP = i2; 38957 return i3 | 0; 38958 } 38959 if ((i1 | 0) != 0) { 38960 HEAP32[i1 >> 2] = HEAP32[i3 + 24 >> 2]; 38961 } 38962 i3 = HEAPU8[i3 + 37 | 0] | 0; 38963 STACKTOP = i2; 38964 return i3 | 0; 38965 } 38966 function _f_flush(i1) { 38967 i1 = i1 | 0; 38968 var i2 = 0, i3 = 0; 38969 i2 = STACKTOP; 38970 STACKTOP = STACKTOP + 16 | 0; 38971 i3 = _luaL_checkudata(i1, 1, 2832) | 0; 38972 if ((HEAP32[i3 + 4 >> 2] | 0) == 0) { 38973 _luaL_error(i1, 3080, i2) | 0; 38974 } 38975 i3 = _luaL_fileresult(i1, (_fflush(HEAP32[i3 >> 2] | 0) | 0) == 0 | 0, 0) | 0; 38976 STACKTOP = i2; 38977 return i3 | 0; 38978 } 38979 function _os_tmpname(i1) { 38980 i1 = i1 | 0; 38981 var i2 = 0, i3 = 0; 38982 i2 = STACKTOP; 38983 STACKTOP = STACKTOP + 32 | 0; 38984 i3 = i2 + 4 | 0; 38985 if ((_tmpnam(i3 | 0) | 0) == 0) { 38986 i3 = _luaL_error(i1, 5824, i2) | 0; 38987 STACKTOP = i2; 38988 return i3 | 0; 38989 } else { 38990 _lua_pushstring(i1, i3) | 0; 38991 i3 = 1; 38992 STACKTOP = i2; 38993 return i3 | 0; 38994 } 38995 return 0; 38996 } 38997 function _traceback(i1) { 38998 i1 = i1 | 0; 38999 var i2 = 0, i3 = 0; 39000 i2 = STACKTOP; 39001 i3 = _lua_tolstring(i1, 1, 0) | 0; 39002 if ((i3 | 0) == 0) { 39003 if ((_lua_type(i1, 1) | 0) >= 1 ? (_luaL_callmeta(i1, 1, 216) | 0) == 0 : 0) { 39004 _lua_pushlstring(i1, 232, 18) | 0; 39005 } 39006 } else { 39007 _luaL_traceback(i1, i1, i3, 1); 39008 } 39009 STACKTOP = i2; 39010 return 1; 39011 } 39012 function _luaH_new(i1) { 39013 i1 = i1 | 0; 39014 var i2 = 0; 39015 i2 = STACKTOP; 39016 i1 = _luaC_newobj(i1, 5, 32, 0, 0) | 0; 39017 HEAP32[i1 + 8 >> 2] = 0; 39018 HEAP8[i1 + 6 | 0] = -1; 39019 HEAP32[i1 + 12 >> 2] = 0; 39020 HEAP32[i1 + 28 >> 2] = 0; 39021 HEAP32[i1 + 16 >> 2] = 8016; 39022 HEAP8[i1 + 7 | 0] = 0; 39023 HEAP32[i1 + 20 >> 2] = 8016; 39024 STACKTOP = i2; 39025 return i1 | 0; 39026 } 39027 function _luaL_len(i1, i3) { 39028 i1 = i1 | 0; 39029 i3 = i3 | 0; 39030 var i2 = 0, i4 = 0; 39031 i2 = STACKTOP; 39032 STACKTOP = STACKTOP + 16 | 0; 39033 i4 = i2 + 4 | 0; 39034 _lua_len(i1, i3); 39035 i3 = _lua_tointegerx(i1, -1, i4) | 0; 39036 if ((HEAP32[i4 >> 2] | 0) == 0) { 39037 _luaL_error(i1, 1352, i2) | 0; 39038 } 39039 _lua_settop(i1, -2); 39040 STACKTOP = i2; 39041 return i3 | 0; 39042 } 39043 function _getS(i3, i2, i1) { 39044 i3 = i3 | 0; 39045 i2 = i2 | 0; 39046 i1 = i1 | 0; 39047 var i4 = 0, i5 = 0; 39048 i3 = STACKTOP; 39049 i5 = i2 + 4 | 0; 39050 i4 = HEAP32[i5 >> 2] | 0; 39051 if ((i4 | 0) == 0) { 39052 i5 = 0; 39053 STACKTOP = i3; 39054 return i5 | 0; 39055 } 39056 HEAP32[i1 >> 2] = i4; 39057 HEAP32[i5 >> 2] = 0; 39058 i5 = HEAP32[i2 >> 2] | 0; 39059 STACKTOP = i3; 39060 return i5 | 0; 39061 } 39062 function _luaC_runtilstate(i1, i4) { 39063 i1 = i1 | 0; 39064 i4 = i4 | 0; 39065 var i2 = 0, i3 = 0; 39066 i2 = STACKTOP; 39067 i3 = (HEAP32[i1 + 12 >> 2] | 0) + 61 | 0; 39068 if ((1 << (HEAPU8[i3] | 0) & i4 | 0) != 0) { 39069 STACKTOP = i2; 39070 return; 39071 } 39072 do { 39073 _singlestep(i1) | 0; 39074 } while ((1 << (HEAPU8[i3] | 0) & i4 | 0) == 0); 39075 STACKTOP = i2; 39076 return; 39077 } 39078 function _luaX_init(i1) { 39079 i1 = i1 | 0; 39080 var i2 = 0, i3 = 0, i4 = 0, i5 = 0; 39081 i2 = STACKTOP; 39082 i3 = 0; 39083 do { 39084 i4 = _luaS_new(i1, HEAP32[12096 + (i3 << 2) >> 2] | 0) | 0; 39085 i5 = i4 + 5 | 0; 39086 HEAP8[i5] = HEAPU8[i5] | 0 | 32; 39087 i3 = i3 + 1 | 0; 39088 HEAP8[i4 + 6 | 0] = i3; 39089 } while ((i3 | 0) != 22); 39090 STACKTOP = i2; 39091 return; 39092 } 39093 function _luaK_indexed(i5, i1, i4) { 39094 i5 = i5 | 0; 39095 i1 = i1 | 0; 39096 i4 = i4 | 0; 39097 var i2 = 0, i3 = 0; 39098 i3 = STACKTOP; 39099 i2 = i1 + 8 | 0; 39100 HEAP8[i2 + 2 | 0] = HEAP32[i2 >> 2]; 39101 HEAP16[i2 >> 1] = _luaK_exp2RK(i5, i4) | 0; 39102 HEAP8[i2 + 3 | 0] = (HEAP32[i1 >> 2] | 0) == 8 ? 8 : 7; 39103 HEAP32[i1 >> 2] = 9; 39104 STACKTOP = i3; 39105 return; 39106 } 39107 function _db_setuservalue(i1) { 39108 i1 = i1 | 0; 39109 var i2 = 0; 39110 i2 = STACKTOP; 39111 if ((_lua_type(i1, 1) | 0) == 2) { 39112 _luaL_argerror(i1, 1, 11680) | 0; 39113 } 39114 _luaL_checktype(i1, 1, 7); 39115 if ((_lua_type(i1, 2) | 0) >= 1) { 39116 _luaL_checktype(i1, 2, 5); 39117 } 39118 _lua_settop(i1, 2); 39119 _lua_setuservalue(i1, 1); 39120 STACKTOP = i2; 39121 return 1; 39122 } 39123 function _ll_seeall(i1) { 39124 i1 = i1 | 0; 39125 var i2 = 0; 39126 i2 = STACKTOP; 39127 _luaL_checktype(i1, 1, 5); 39128 if ((_lua_getmetatable(i1, 1) | 0) == 0) { 39129 _lua_createtable(i1, 0, 1); 39130 _lua_pushvalue(i1, -1); 39131 _lua_setmetatable(i1, 1) | 0; 39132 } 39133 _lua_rawgeti(i1, -1001e3, 2); 39134 _lua_setfield(i1, -2, 5168); 39135 STACKTOP = i2; 39136 return 0; 39137 } 39138 function _luaL_loadbufferx(i3, i5, i4, i2, i1) { 39139 i3 = i3 | 0; 39140 i5 = i5 | 0; 39141 i4 = i4 | 0; 39142 i2 = i2 | 0; 39143 i1 = i1 | 0; 39144 var i6 = 0, i7 = 0; 39145 i6 = STACKTOP; 39146 STACKTOP = STACKTOP + 16 | 0; 39147 i7 = i6; 39148 HEAP32[i7 >> 2] = i5; 39149 HEAP32[i7 + 4 >> 2] = i4; 39150 i5 = _lua_load(i3, 2, i7, i2, i1) | 0; 39151 STACKTOP = i6; 39152 return i5 | 0; 39153 } 39154 function _luaT_gettm(i1, i3, i4) { 39155 i1 = i1 | 0; 39156 i3 = i3 | 0; 39157 i4 = i4 | 0; 39158 var i2 = 0; 39159 i2 = STACKTOP; 39160 i4 = _luaH_getstr(i1, i4) | 0; 39161 if ((HEAP32[i4 + 8 >> 2] | 0) != 0) { 39162 STACKTOP = i2; 39163 return i4 | 0; 39164 } 39165 i4 = i1 + 6 | 0; 39166 HEAP8[i4] = HEAPU8[i4] | 0 | 1 << i3; 39167 i4 = 0; 39168 STACKTOP = i2; 39169 return i4 | 0; 39170 } 39171 function _luaL_pushresult(i1) { 39172 i1 = i1 | 0; 39173 var i2 = 0, i3 = 0; 39174 i2 = STACKTOP; 39175 i3 = HEAP32[i1 + 12 >> 2] | 0; 39176 _lua_pushlstring(i3, HEAP32[i1 >> 2] | 0, HEAP32[i1 + 8 >> 2] | 0) | 0; 39177 if ((HEAP32[i1 >> 2] | 0) == (i1 + 16 | 0)) { 39178 STACKTOP = i2; 39179 return; 39180 } 39181 _lua_remove(i3, -2); 39182 STACKTOP = i2; 39183 return; 39184 } 39185 function _resume_error(i1, i3, i2) { 39186 i1 = i1 | 0; 39187 i3 = i3 | 0; 39188 i2 = i2 | 0; 39189 var i4 = 0; 39190 i4 = i1 + 8 | 0; 39191 HEAP32[i4 >> 2] = i2; 39192 i3 = _luaS_new(i1, i3) | 0; 39193 HEAP32[i2 >> 2] = i3; 39194 HEAP32[i2 + 8 >> 2] = HEAPU8[i3 + 4 | 0] | 0 | 64; 39195 HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + 16; 39196 _luaD_throw(i1, -1); 39197 } 39198 function _lua_absindex(i3, i1) { 39199 i3 = i3 | 0; 39200 i1 = i1 | 0; 39201 var i2 = 0; 39202 i2 = STACKTOP; 39203 if ((i1 + 1000999 | 0) >>> 0 > 1000999) { 39204 i3 = i1; 39205 STACKTOP = i2; 39206 return i3 | 0; 39207 } 39208 i3 = ((HEAP32[i3 + 8 >> 2] | 0) - (HEAP32[HEAP32[i3 + 16 >> 2] >> 2] | 0) >> 4) + i1 | 0; 39209 STACKTOP = i2; 39210 return i3 | 0; 39211 } 39212 function ___uremdi3(i4, i3, i2, i1) { 39213 i4 = i4 | 0; 39214 i3 = i3 | 0; 39215 i2 = i2 | 0; 39216 i1 = i1 | 0; 39217 var i5 = 0, i6 = 0; 39218 i6 = STACKTOP; 39219 STACKTOP = STACKTOP + 8 | 0; 39220 i5 = i6 | 0; 39221 ___udivmoddi4(i4, i3, i2, i1, i5) | 0; 39222 STACKTOP = i6; 39223 return (tempRet0 = HEAP32[i5 + 4 >> 2] | 0, HEAP32[i5 >> 2] | 0) | 0; 39224 } 39225 function _f_read(i1) { 39226 i1 = i1 | 0; 39227 var i2 = 0, i3 = 0; 39228 i2 = STACKTOP; 39229 STACKTOP = STACKTOP + 16 | 0; 39230 i3 = _luaL_checkudata(i1, 1, 2832) | 0; 39231 if ((HEAP32[i3 + 4 >> 2] | 0) == 0) { 39232 _luaL_error(i1, 3080, i2) | 0; 39233 } 39234 i3 = _g_read(i1, HEAP32[i3 >> 2] | 0, 2) | 0; 39235 STACKTOP = i2; 39236 return i3 | 0; 39237 } 39238 function _sort(i1) { 39239 i1 = i1 | 0; 39240 var i2 = 0, i3 = 0; 39241 i2 = STACKTOP; 39242 _luaL_checktype(i1, 1, 5); 39243 i3 = _luaL_len(i1, 1) | 0; 39244 _luaL_checkstack(i1, 40, 8208); 39245 if ((_lua_type(i1, 2) | 0) >= 1) { 39246 _luaL_checktype(i1, 2, 6); 39247 } 39248 _lua_settop(i1, 2); 39249 _auxsort(i1, 1, i3); 39250 STACKTOP = i2; 39251 return 0; 39252 } 39253 function _luaB_error(i1) { 39254 i1 = i1 | 0; 39255 var i2 = 0; 39256 i2 = _luaL_optinteger(i1, 2, 1) | 0; 39257 _lua_settop(i1, 1); 39258 if (!((_lua_isstring(i1, 1) | 0) != 0 & (i2 | 0) > 0)) { 39259 _lua_error(i1) | 0; 39260 } 39261 _luaL_where(i1, i2); 39262 _lua_pushvalue(i1, 1); 39263 _lua_concat(i1, 2); 39264 _lua_error(i1) | 0; 39265 return 0; 39266 } 39267 function _error(i1, i2) { 39268 i1 = i1 | 0; 39269 i2 = i2 | 0; 39270 var i3 = 0, i4 = 0; 39271 i3 = STACKTOP; 39272 STACKTOP = STACKTOP + 16 | 0; 39273 i4 = HEAP32[i1 >> 2] | 0; 39274 HEAP32[i3 >> 2] = HEAP32[i1 + 12 >> 2]; 39275 HEAP32[i3 + 4 >> 2] = i2; 39276 _luaO_pushfstring(i4, 8840, i3) | 0; 39277 _luaD_throw(HEAP32[i1 >> 2] | 0, 3); 39278 } 39279 function _ipairsaux(i1) { 39280 i1 = i1 | 0; 39281 var i2 = 0, i3 = 0; 39282 i2 = STACKTOP; 39283 i3 = _luaL_checkinteger(i1, 2) | 0; 39284 _luaL_checktype(i1, 1, 5); 39285 i3 = i3 + 1 | 0; 39286 _lua_pushinteger(i1, i3); 39287 _lua_rawgeti(i1, 1, i3); 39288 i1 = (_lua_type(i1, -1) | 0) == 0; 39289 STACKTOP = i2; 39290 return (i1 ? 1 : 2) | 0; 39291 } 39292 function _panic(i1) { 39293 i1 = i1 | 0; 39294 var i2 = 0, i3 = 0, i4 = 0; 39295 i2 = STACKTOP; 39296 STACKTOP = STACKTOP + 16 | 0; 39297 i4 = i2; 39298 i3 = HEAP32[_stderr >> 2] | 0; 39299 HEAP32[i4 >> 2] = _lua_tolstring(i1, -1, 0) | 0; 39300 _fprintf(i3 | 0, 1656, i4 | 0) | 0; 39301 _fflush(i3 | 0) | 0; 39302 STACKTOP = i2; 39303 return 0; 39304 } 39305 function _testSetjmp(i1, i2) { 39306 i1 = i1 | 0; 39307 i2 = i2 | 0; 39308 var i3 = 0, i4 = 0; 39309 while ((i3 | 0) < 20) { 39310 i4 = HEAP32[i2 + (i3 << 2) >> 2] | 0; 39311 if ((i4 | 0) == 0) break; 39312 if ((i4 | 0) == (i1 | 0)) { 39313 return HEAP32[i2 + ((i3 << 2) + 4) >> 2] | 0; 39314 } 39315 i3 = i3 + 2 | 0; 39316 } 39317 return 0; 39318 } 39319 function _luaopen_math(i1) { 39320 i1 = i1 | 0; 39321 var i2 = 0; 39322 i2 = STACKTOP; 39323 _lua_createtable(i1, 0, 28); 39324 _luaL_setfuncs(i1, 3576, 0); 39325 _lua_pushnumber(i1, 3.141592653589793); 39326 _lua_setfield(i1, -2, 3808); 39327 _lua_pushnumber(i1, inf); 39328 _lua_setfield(i1, -2, 3816); 39329 STACKTOP = i2; 39330 return 1; 39331 } 39332 function _luaopen_base(i1) { 39333 i1 = i1 | 0; 39334 var i2 = 0; 39335 i2 = STACKTOP; 39336 _lua_rawgeti(i1, -1001e3, 2); 39337 _lua_rawgeti(i1, -1001e3, 2); 39338 _lua_setfield(i1, -2, 9144); 39339 _luaL_setfuncs(i1, 9152, 0); 39340 _lua_pushlstring(i1, 9344, 7) | 0; 39341 _lua_setfield(i1, -2, 9352); 39342 STACKTOP = i2; 39343 return 1; 39344 } 39345 function _luaE_extendCI(i1) { 39346 i1 = i1 | 0; 39347 var i2 = 0, i3 = 0; 39348 i3 = STACKTOP; 39349 i2 = _luaM_realloc_(i1, 0, 0, 40) | 0; 39350 i1 = i1 + 16 | 0; 39351 HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] = i2; 39352 HEAP32[i2 + 8 >> 2] = HEAP32[i1 >> 2]; 39353 HEAP32[i2 + 12 >> 2] = 0; 39354 STACKTOP = i3; 39355 return i2 | 0; 39356 } 39357 function _luaB_getmetatable(i1) { 39358 i1 = i1 | 0; 39359 var i2 = 0; 39360 i2 = STACKTOP; 39361 _luaL_checkany(i1, 1); 39362 if ((_lua_getmetatable(i1, 1) | 0) == 0) { 39363 _lua_pushnil(i1); 39364 STACKTOP = i2; 39365 return 1; 39366 } else { 39367 _luaL_getmetafield(i1, 1, 9704) | 0; 39368 STACKTOP = i2; 39369 return 1; 39370 } 39371 return 0; 39372 } 39373 function _lua_pushunsigned(i1, i2) { 39374 i1 = i1 | 0; 39375 i2 = i2 | 0; 39376 var d3 = 0.0; 39377 if ((i2 | 0) > -1) { 39378 d3 = +(i2 | 0); 39379 } else { 39380 d3 = +(i2 >>> 0); 39381 } 39382 i2 = i1 + 8 | 0; 39383 i1 = HEAP32[i2 >> 2] | 0; 39384 HEAPF64[i1 >> 3] = d3; 39385 HEAP32[i1 + 8 >> 2] = 3; 39386 HEAP32[i2 >> 2] = i1 + 16; 39387 return; 39388 } 39389 function _lua_pushthread(i1) { 39390 i1 = i1 | 0; 39391 var i2 = 0, i3 = 0; 39392 i2 = i1 + 8 | 0; 39393 i3 = HEAP32[i2 >> 2] | 0; 39394 HEAP32[i3 >> 2] = i1; 39395 HEAP32[i3 + 8 >> 2] = 72; 39396 HEAP32[i2 >> 2] = (HEAP32[i2 >> 2] | 0) + 16; 39397 return (HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 172 >> 2] | 0) == (i1 | 0) | 0; 39398 } 39399 function _gctm(i1) { 39400 i1 = i1 | 0; 39401 var i2 = 0, i3 = 0; 39402 i2 = STACKTOP; 39403 i3 = _luaL_len(i1, 1) | 0; 39404 if ((i3 | 0) <= 0) { 39405 STACKTOP = i2; 39406 return 0; 39407 } 39408 do { 39409 _lua_rawgeti(i1, 1, i3); 39410 _lua_settop(i1, -2); 39411 i3 = i3 + -1 | 0; 39412 } while ((i3 | 0) > 0); 39413 STACKTOP = i2; 39414 return 0; 39415 } 39416 function ___muldi3(i4, i2, i3, i1) { 39417 i4 = i4 | 0; 39418 i2 = i2 | 0; 39419 i3 = i3 | 0; 39420 i1 = i1 | 0; 39421 var i5 = 0, i6 = 0; 39422 i5 = i4; 39423 i6 = i3; 39424 i4 = ___muldsi3(i5, i6) | 0; 39425 i3 = tempRet0; 39426 return (tempRet0 = (Math_imul(i2, i6) | 0) + (Math_imul(i1, i5) | 0) + i3 | i3 & 0, i4 | 0 | 0) | 0; 39427 } 39428 function _luaH_resizearray(i1, i3, i4) { 39429 i1 = i1 | 0; 39430 i3 = i3 | 0; 39431 i4 = i4 | 0; 39432 var i2 = 0, i5 = 0; 39433 i2 = STACKTOP; 39434 if ((HEAP32[i3 + 16 >> 2] | 0) == 8016) { 39435 i5 = 0; 39436 } else { 39437 i5 = 1 << (HEAPU8[i3 + 7 | 0] | 0); 39438 } 39439 _luaH_resize(i1, i3, i4, i5); 39440 STACKTOP = i2; 39441 return; 39442 } 39443 function _luaK_stringK(i1, i2) { 39444 i1 = i1 | 0; 39445 i2 = i2 | 0; 39446 var i3 = 0, i4 = 0; 39447 i3 = STACKTOP; 39448 STACKTOP = STACKTOP + 16 | 0; 39449 i4 = i3; 39450 HEAP32[i4 >> 2] = i2; 39451 HEAP32[i4 + 8 >> 2] = HEAPU8[i2 + 4 | 0] | 0 | 64; 39452 i2 = _addk(i1, i4, i4) | 0; 39453 STACKTOP = i3; 39454 return i2 | 0; 39455 } 39456 function _math_modf(i1) { 39457 i1 = i1 | 0; 39458 var i2 = 0, d3 = 0.0, i4 = 0; 39459 i2 = STACKTOP; 39460 STACKTOP = STACKTOP + 16 | 0; 39461 i4 = i2; 39462 d3 = +_modf(+(+_luaL_checknumber(i1, 1)), i4 | 0); 39463 _lua_pushnumber(i1, +HEAPF64[i4 >> 3]); 39464 _lua_pushnumber(i1, d3); 39465 STACKTOP = i2; 39466 return 2; 39467 } 39468 function _os_setlocale(i1) { 39469 i1 = i1 | 0; 39470 var i2 = 0, i3 = 0; 39471 i2 = STACKTOP; 39472 i3 = _luaL_optlstring(i1, 1, 0, 0) | 0; 39473 _lua_pushstring(i1, _setlocale(HEAP32[5960 + ((_luaL_checkoption(i1, 2, 6016, 5984) | 0) << 2) >> 2] | 0, i3 | 0) | 0) | 0; 39474 STACKTOP = i2; 39475 return 1; 39476 } 39477 function _luaB_pcall(i1) { 39478 i1 = i1 | 0; 39479 var i2 = 0; 39480 i2 = STACKTOP; 39481 _luaL_checkany(i1, 1); 39482 _lua_pushnil(i1); 39483 _lua_insert(i1, 1); 39484 i1 = _finishpcall(i1, (_lua_pcallk(i1, (_lua_gettop(i1) | 0) + -2 | 0, -1, 0, 0, 166) | 0) == 0 | 0) | 0; 39485 STACKTOP = i2; 39486 return i1 | 0; 39487 } 39488 function _error_expected(i1, i2) { 39489 i1 = i1 | 0; 39490 i2 = i2 | 0; 39491 var i3 = 0, i4 = 0; 39492 i3 = STACKTOP; 39493 STACKTOP = STACKTOP + 16 | 0; 39494 i4 = HEAP32[i1 + 52 >> 2] | 0; 39495 HEAP32[i3 >> 2] = _luaX_token2str(i1, i2) | 0; 39496 _luaX_syntaxerror(i1, _luaO_pushfstring(i4, 6328, i3) | 0); 39497 } 39498 function _lua_pushvfstring(i1, i3, i4) { 39499 i1 = i1 | 0; 39500 i3 = i3 | 0; 39501 i4 = i4 | 0; 39502 var i2 = 0; 39503 i2 = STACKTOP; 39504 if ((HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) { 39505 _luaC_step(i1); 39506 } 39507 i4 = _luaO_pushvfstring(i1, i3, i4) | 0; 39508 STACKTOP = i2; 39509 return i4 | 0; 39510 } 39511 function _db_setmetatable(i1) { 39512 i1 = i1 | 0; 39513 var i2 = 0, i3 = 0; 39514 i2 = STACKTOP; 39515 i3 = _lua_type(i1, 2) | 0; 39516 if (!((i3 | 0) == 0 | (i3 | 0) == 5)) { 39517 _luaL_argerror(i1, 2, 11536) | 0; 39518 } 39519 _lua_settop(i1, 2); 39520 _lua_setmetatable(i1, 1) | 0; 39521 STACKTOP = i2; 39522 return 1; 39523 } 39524 function _b_rrot(i1) { 39525 i1 = i1 | 0; 39526 var i2 = 0, i3 = 0, i4 = 0; 39527 i2 = STACKTOP; 39528 i3 = 0 - (_luaL_checkinteger(i1, 2) | 0) | 0; 39529 i4 = _luaL_checkunsigned(i1, 1) | 0; 39530 i3 = i3 & 31; 39531 _lua_pushunsigned(i1, i4 >>> (32 - i3 | 0) | i4 << i3); 39532 STACKTOP = i2; 39533 return 1; 39534 } 39535 function _luaC_step(i1) { 39536 i1 = i1 | 0; 39537 var i2 = 0, i3 = 0; 39538 i2 = STACKTOP; 39539 i3 = HEAP32[i1 + 12 >> 2] | 0; 39540 if ((HEAP8[i3 + 63 | 0] | 0) == 0) { 39541 _luaE_setdebt(i3, -1600); 39542 STACKTOP = i2; 39543 return; 39544 } else { 39545 _luaC_forcestep(i1); 39546 STACKTOP = i2; 39547 return; 39548 } 39549 } 39550 function _math_frexp(i1) { 39551 i1 = i1 | 0; 39552 var i2 = 0, i3 = 0; 39553 i2 = STACKTOP; 39554 STACKTOP = STACKTOP + 16 | 0; 39555 i3 = i2; 39556 _lua_pushnumber(i1, +_frexp(+(+_luaL_checknumber(i1, 1)), i3 | 0)); 39557 _lua_pushinteger(i1, HEAP32[i3 >> 2] | 0); 39558 STACKTOP = i2; 39559 return 2; 39560 } 39561 function _luaO_pushfstring(i2, i1, i3) { 39562 i2 = i2 | 0; 39563 i1 = i1 | 0; 39564 i3 = i3 | 0; 39565 var i4 = 0, i5 = 0; 39566 i4 = STACKTOP; 39567 STACKTOP = STACKTOP + 16 | 0; 39568 i5 = i4; 39569 HEAP32[i5 >> 2] = i3; 39570 i3 = _luaO_pushvfstring(i2, i1, i5) | 0; 39571 STACKTOP = i4; 39572 return i3 | 0; 39573 } 39574 function _luaO_hexavalue(i1) { 39575 i1 = i1 | 0; 39576 var i2 = 0; 39577 i2 = STACKTOP; 39578 if ((HEAP8[i1 + 10913 | 0] & 2) == 0) { 39579 i1 = (i1 | 32) + -87 | 0; 39580 STACKTOP = i2; 39581 return i1 | 0; 39582 } else { 39583 i1 = i1 + -48 | 0; 39584 STACKTOP = i2; 39585 return i1 | 0; 39586 } 39587 return 0; 39588 } 39589 function _b_lrot(i1) { 39590 i1 = i1 | 0; 39591 var i2 = 0, i3 = 0, i4 = 0; 39592 i2 = STACKTOP; 39593 i3 = _luaL_checkinteger(i1, 2) | 0; 39594 i4 = _luaL_checkunsigned(i1, 1) | 0; 39595 i3 = i3 & 31; 39596 _lua_pushunsigned(i1, i4 >>> (32 - i3 | 0) | i4 << i3); 39597 STACKTOP = i2; 39598 return 1; 39599 } 39600 function _f_lines(i1) { 39601 i1 = i1 | 0; 39602 var i2 = 0; 39603 i2 = STACKTOP; 39604 STACKTOP = STACKTOP + 16 | 0; 39605 if ((HEAP32[(_luaL_checkudata(i1, 1, 2832) | 0) + 4 >> 2] | 0) == 0) { 39606 _luaL_error(i1, 3080, i2) | 0; 39607 } 39608 _aux_lines(i1, 0); 39609 STACKTOP = i2; 39610 return 1; 39611 } 39612 function _luaC_barrierback_(i2, i1) { 39613 i2 = i2 | 0; 39614 i1 = i1 | 0; 39615 var i3 = 0; 39616 i2 = HEAP32[i2 + 12 >> 2] | 0; 39617 i3 = i1 + 5 | 0; 39618 HEAP8[i3] = HEAP8[i3] & 251; 39619 i2 = i2 + 88 | 0; 39620 HEAP32[i1 + 24 >> 2] = HEAP32[i2 >> 2]; 39621 HEAP32[i2 >> 2] = i1; 39622 return; 39623 } 39624 function _os_rename(i1) { 39625 i1 = i1 | 0; 39626 var i2 = 0, i3 = 0; 39627 i2 = STACKTOP; 39628 i3 = _luaL_checklstring(i1, 1, 0) | 0; 39629 i1 = _luaL_fileresult(i1, (_rename(i3 | 0, _luaL_checklstring(i1, 2, 0) | 0) | 0) == 0 | 0, 0) | 0; 39630 STACKTOP = i2; 39631 return i1 | 0; 39632 } 39633 function _bitshift64Ashr(i3, i2, i1) { 39634 i3 = i3 | 0; 39635 i2 = i2 | 0; 39636 i1 = i1 | 0; 39637 if ((i1 | 0) < 32) { 39638 tempRet0 = i2 >> i1; 39639 return i3 >>> i1 | (i2 & (1 << i1) - 1) << 32 - i1; 39640 } 39641 tempRet0 = (i2 | 0) < 0 ? -1 : 0; 39642 return i2 >> i1 - 32 | 0; 39643 } 39644 function _luaB_cowrap(i1) { 39645 i1 = i1 | 0; 39646 var i2 = 0, i3 = 0; 39647 i2 = STACKTOP; 39648 _luaL_checktype(i1, 1, 6); 39649 i3 = _lua_newthread(i1) | 0; 39650 _lua_pushvalue(i1, 1); 39651 _lua_xmove(i1, i3, 1); 39652 _lua_pushcclosure(i1, 167, 1); 39653 STACKTOP = i2; 39654 return 1; 39655 } 39656 function _gmatch(i1) { 39657 i1 = i1 | 0; 39658 var i2 = 0; 39659 i2 = STACKTOP; 39660 _luaL_checklstring(i1, 1, 0) | 0; 39661 _luaL_checklstring(i1, 2, 0) | 0; 39662 _lua_settop(i1, 2); 39663 _lua_pushinteger(i1, 0); 39664 _lua_pushcclosure(i1, 163, 3); 39665 STACKTOP = i2; 39666 return 1; 39667 } 39668 function _luaB_next(i2) { 39669 i2 = i2 | 0; 39670 var i1 = 0; 39671 i1 = STACKTOP; 39672 _luaL_checktype(i2, 1, 5); 39673 _lua_settop(i2, 2); 39674 if ((_lua_next(i2, 1) | 0) == 0) { 39675 _lua_pushnil(i2); 39676 i2 = 1; 39677 } else { 39678 i2 = 2; 39679 } 39680 STACKTOP = i1; 39681 return i2 | 0; 39682 } 39683 function _luaK_codeABC(i5, i3, i4, i2, i1) { 39684 i5 = i5 | 0; 39685 i3 = i3 | 0; 39686 i4 = i4 | 0; 39687 i2 = i2 | 0; 39688 i1 = i1 | 0; 39689 var i6 = 0; 39690 i6 = STACKTOP; 39691 i5 = _luaK_code(i5, i4 << 6 | i3 | i2 << 23 | i1 << 14) | 0; 39692 STACKTOP = i6; 39693 return i5 | 0; 39694 } 39695 function _luaH_set(i2, i4, i5) { 39696 i2 = i2 | 0; 39697 i4 = i4 | 0; 39698 i5 = i5 | 0; 39699 var i1 = 0, i3 = 0; 39700 i1 = STACKTOP; 39701 i3 = _luaH_get(i4, i5) | 0; 39702 if ((i3 | 0) == 5192) { 39703 i3 = _luaH_newkey(i2, i4, i5) | 0; 39704 } 39705 STACKTOP = i1; 39706 return i3 | 0; 39707 } 39708 function _luaZ_init(i4, i1, i3, i2) { 39709 i4 = i4 | 0; 39710 i1 = i1 | 0; 39711 i3 = i3 | 0; 39712 i2 = i2 | 0; 39713 HEAP32[i1 + 16 >> 2] = i4; 39714 HEAP32[i1 + 8 >> 2] = i3; 39715 HEAP32[i1 + 12 >> 2] = i2; 39716 HEAP32[i1 >> 2] = 0; 39717 HEAP32[i1 + 4 >> 2] = 0; 39718 return; 39719 } 39720 function _lua_pushlightuserdata(i2, i1) { 39721 i2 = i2 | 0; 39722 i1 = i1 | 0; 39723 var i3 = 0; 39724 i2 = i2 + 8 | 0; 39725 i3 = HEAP32[i2 >> 2] | 0; 39726 HEAP32[i3 >> 2] = i1; 39727 HEAP32[i3 + 8 >> 2] = 2; 39728 HEAP32[i2 >> 2] = (HEAP32[i2 >> 2] | 0) + 16; 39729 return; 39730 } 39731 function copyTempFloat(i1) { 39732 i1 = i1 | 0; 39733 HEAP8[tempDoublePtr] = HEAP8[i1]; 39734 HEAP8[tempDoublePtr + 1 | 0] = HEAP8[i1 + 1 | 0]; 39735 HEAP8[tempDoublePtr + 2 | 0] = HEAP8[i1 + 2 | 0]; 39736 HEAP8[tempDoublePtr + 3 | 0] = HEAP8[i1 + 3 | 0]; 39737 } 39738 function _bitshift64Shl(i2, i3, i1) { 39739 i2 = i2 | 0; 39740 i3 = i3 | 0; 39741 i1 = i1 | 0; 39742 if ((i1 | 0) < 32) { 39743 tempRet0 = i3 << i1 | (i2 & (1 << i1) - 1 << 32 - i1) >>> 32 - i1; 39744 return i2 << i1; 39745 } 39746 tempRet0 = i2 << i1 - 32; 39747 return 0; 39748 } 39749 function _luaB_rawlen(i1) { 39750 i1 = i1 | 0; 39751 var i2 = 0; 39752 i2 = STACKTOP; 39753 if (((_lua_type(i1, 1) | 0) & -2 | 0) != 4) { 39754 _luaL_argerror(i1, 1, 9784) | 0; 39755 } 39756 _lua_pushinteger(i1, _lua_rawlen(i1, 1) | 0); 39757 STACKTOP = i2; 39758 return 1; 39759 } 39760 function _l_alloc(i3, i1, i4, i2) { 39761 i3 = i3 | 0; 39762 i1 = i1 | 0; 39763 i4 = i4 | 0; 39764 i2 = i2 | 0; 39765 i3 = STACKTOP; 39766 if ((i2 | 0) == 0) { 39767 _free(i1); 39768 i1 = 0; 39769 } else { 39770 i1 = _realloc(i1, i2) | 0; 39771 } 39772 STACKTOP = i3; 39773 return i1 | 0; 39774 } 39775 function _bitshift64Lshr(i3, i2, i1) { 39776 i3 = i3 | 0; 39777 i2 = i2 | 0; 39778 i1 = i1 | 0; 39779 if ((i1 | 0) < 32) { 39780 tempRet0 = i2 >>> i1; 39781 return i3 >>> i1 | (i2 & (1 << i1) - 1) << 32 - i1; 39782 } 39783 tempRet0 = 0; 39784 return i2 >>> i1 - 32 | 0; 39785 } 39786 function _luaG_aritherror(i3, i1, i2) { 39787 i3 = i3 | 0; 39788 i1 = i1 | 0; 39789 i2 = i2 | 0; 39790 var i4 = 0; 39791 i4 = STACKTOP; 39792 STACKTOP = STACKTOP + 16 | 0; 39793 i4 = (_luaV_tonumber(i1, i4) | 0) == 0; 39794 _luaG_typeerror(i3, i4 ? i1 : i2, 1928); 39795 } 39796 function _str_len(i1) { 39797 i1 = i1 | 0; 39798 var i2 = 0, i3 = 0; 39799 i2 = STACKTOP; 39800 STACKTOP = STACKTOP + 16 | 0; 39801 i3 = i2; 39802 _luaL_checklstring(i1, 1, i3) | 0; 39803 _lua_pushinteger(i1, HEAP32[i3 >> 2] | 0); 39804 STACKTOP = i2; 39805 return 1; 39806 } 39807 function _luaL_optinteger(i3, i4, i2) { 39808 i3 = i3 | 0; 39809 i4 = i4 | 0; 39810 i2 = i2 | 0; 39811 var i1 = 0; 39812 i1 = STACKTOP; 39813 if ((_lua_type(i3, i4) | 0) >= 1) { 39814 i2 = _luaL_checkinteger(i3, i4) | 0; 39815 } 39816 STACKTOP = i1; 39817 return i2 | 0; 39818 } 39819 function _os_difftime(i1) { 39820 i1 = i1 | 0; 39821 var i2 = 0, i3 = 0; 39822 i2 = STACKTOP; 39823 i3 = ~~+_luaL_checknumber(i1, 1); 39824 _lua_pushnumber(i1, +_difftime(i3 | 0, ~~+_luaL_optnumber(i1, 2, 0.0) | 0)); 39825 STACKTOP = i2; 39826 return 1; 39827 } 39828 function _lua_pushboolean(i2, i1) { 39829 i2 = i2 | 0; 39830 i1 = i1 | 0; 39831 var i3 = 0; 39832 i2 = i2 + 8 | 0; 39833 i3 = HEAP32[i2 >> 2] | 0; 39834 HEAP32[i3 >> 2] = (i1 | 0) != 0; 39835 HEAP32[i3 + 8 >> 2] = 1; 39836 HEAP32[i2 >> 2] = i3 + 16; 39837 return; 39838 } 39839 function _os_remove(i1) { 39840 i1 = i1 | 0; 39841 var i2 = 0, i3 = 0; 39842 i2 = STACKTOP; 39843 i3 = _luaL_checklstring(i1, 1, 0) | 0; 39844 i1 = _luaL_fileresult(i1, (_remove(i3 | 0) | 0) == 0 | 0, i3) | 0; 39845 STACKTOP = i2; 39846 return i1 | 0; 39847 } 39848 function _luaopen_table(i1) { 39849 i1 = i1 | 0; 39850 var i2 = 0; 39851 i2 = STACKTOP; 39852 _lua_createtable(i1, 0, 7); 39853 _luaL_setfuncs(i1, 8088, 0); 39854 _lua_getfield(i1, -1, 8152); 39855 _lua_setglobal(i1, 8152); 39856 STACKTOP = i2; 39857 return 1; 39858 } 39859 function _lua_pushinteger(i2, i1) { 39860 i2 = i2 | 0; 39861 i1 = i1 | 0; 39862 var i3 = 0; 39863 i2 = i2 + 8 | 0; 39864 i3 = HEAP32[i2 >> 2] | 0; 39865 HEAPF64[i3 >> 3] = +(i1 | 0); 39866 HEAP32[i3 + 8 >> 2] = 3; 39867 HEAP32[i2 >> 2] = i3 + 16; 39868 return; 39869 } 39870 function _luaB_rawset(i1) { 39871 i1 = i1 | 0; 39872 var i2 = 0; 39873 i2 = STACKTOP; 39874 _luaL_checktype(i1, 1, 5); 39875 _luaL_checkany(i1, 2); 39876 _luaL_checkany(i1, 3); 39877 _lua_settop(i1, 3); 39878 _lua_rawset(i1, 1); 39879 STACKTOP = i2; 39880 return 1; 39881 } 39882 function _luaE_setdebt(i2, i1) { 39883 i2 = i2 | 0; 39884 i1 = i1 | 0; 39885 var i3 = 0; 39886 i3 = i2 + 12 | 0; 39887 i2 = i2 + 8 | 0; 39888 HEAP32[i2 >> 2] = (HEAP32[i3 >> 2] | 0) - i1 + (HEAP32[i2 >> 2] | 0); 39889 HEAP32[i3 >> 2] = i1; 39890 return; 39891 } 39892 function _luaB_cocreate(i1) { 39893 i1 = i1 | 0; 39894 var i2 = 0, i3 = 0; 39895 i2 = STACKTOP; 39896 _luaL_checktype(i1, 1, 6); 39897 i3 = _lua_newthread(i1) | 0; 39898 _lua_pushvalue(i1, 1); 39899 _lua_xmove(i1, i3, 1); 39900 STACKTOP = i2; 39901 return 1; 39902 } 39903 function _io_noclose(i1) { 39904 i1 = i1 | 0; 39905 var i2 = 0; 39906 i2 = STACKTOP; 39907 HEAP32[(_luaL_checkudata(i1, 1, 2832) | 0) + 4 >> 2] = 154; 39908 _lua_pushnil(i1); 39909 _lua_pushlstring(i1, 2840, 26) | 0; 39910 STACKTOP = i2; 39911 return 2; 39912 } 39913 function _io_fclose(i1) { 39914 i1 = i1 | 0; 39915 var i2 = 0; 39916 i2 = STACKTOP; 39917 i1 = _luaL_fileresult(i1, (_fclose(HEAP32[(_luaL_checkudata(i1, 1, 2832) | 0) >> 2] | 0) | 0) == 0 | 0, 0) | 0; 39918 STACKTOP = i2; 39919 return i1 | 0; 39920 } 39921 function _luaL_optnumber(i3, i4, d2) { 39922 i3 = i3 | 0; 39923 i4 = i4 | 0; 39924 d2 = +d2; 39925 var i1 = 0; 39926 i1 = STACKTOP; 39927 if ((_lua_type(i3, i4) | 0) >= 1) { 39928 d2 = +_luaL_checknumber(i3, i4); 39929 } 39930 STACKTOP = i1; 39931 return +d2; 39932 } 39933 function _math_atan2(i1) { 39934 i1 = i1 | 0; 39935 var i2 = 0, d3 = 0.0; 39936 i2 = STACKTOP; 39937 d3 = +_luaL_checknumber(i1, 1); 39938 _lua_pushnumber(i1, +Math_atan2(+d3, +(+_luaL_checknumber(i1, 2)))); 39939 STACKTOP = i2; 39940 return 1; 39941 } 39942 function _luaK_codeABx(i4, i2, i3, i1) { 39943 i4 = i4 | 0; 39944 i2 = i2 | 0; 39945 i3 = i3 | 0; 39946 i1 = i1 | 0; 39947 var i5 = 0; 39948 i5 = STACKTOP; 39949 i4 = _luaK_code(i4, i3 << 6 | i2 | i1 << 14) | 0; 39950 STACKTOP = i5; 39951 return i4 | 0; 39952 } 39953 function _luaF_newCclosure(i2, i1) { 39954 i2 = i2 | 0; 39955 i1 = i1 | 0; 39956 var i3 = 0; 39957 i3 = STACKTOP; 39958 i2 = _luaC_newobj(i2, 38, (i1 << 4) + 16 | 0, 0, 0) | 0; 39959 HEAP8[i2 + 6 | 0] = i1; 39960 STACKTOP = i3; 39961 return i2 | 0; 39962 } 39963 function _math_pow(i1) { 39964 i1 = i1 | 0; 39965 var i2 = 0, d3 = 0.0; 39966 i2 = STACKTOP; 39967 d3 = +_luaL_checknumber(i1, 1); 39968 _lua_pushnumber(i1, +Math_pow(+d3, +(+_luaL_checknumber(i1, 2)))); 39969 STACKTOP = i2; 39970 return 1; 39971 } 39972 function _math_ldexp(i1) { 39973 i1 = i1 | 0; 39974 var i2 = 0, d3 = 0.0; 39975 i2 = STACKTOP; 39976 d3 = +_luaL_checknumber(i1, 1); 39977 _lua_pushnumber(i1, +_ldexp(d3, _luaL_checkinteger(i1, 2) | 0)); 39978 STACKTOP = i2; 39979 return 1; 39980 } 39981 function _luaF_newupval(i1) { 39982 i1 = i1 | 0; 39983 var i2 = 0; 39984 i2 = STACKTOP; 39985 i1 = _luaC_newobj(i1, 10, 32, 0, 0) | 0; 39986 HEAP32[i1 + 8 >> 2] = i1 + 16; 39987 HEAP32[i1 + 24 >> 2] = 0; 39988 STACKTOP = i2; 39989 return i1 | 0; 39990 } 39991 function _lua_pushnumber(i2, d1) { 39992 i2 = i2 | 0; 39993 d1 = +d1; 39994 var i3 = 0; 39995 i2 = i2 + 8 | 0; 39996 i3 = HEAP32[i2 >> 2] | 0; 39997 HEAPF64[i3 >> 3] = d1; 39998 HEAP32[i3 + 8 >> 2] = 3; 39999 HEAP32[i2 >> 2] = i3 + 16; 40000 return; 40001 } 40002 function _math_fmod(i1) { 40003 i1 = i1 | 0; 40004 var i2 = 0, d3 = 0.0; 40005 i2 = STACKTOP; 40006 d3 = +_luaL_checknumber(i1, 1); 40007 _lua_pushnumber(i1, +_fmod(+d3, +(+_luaL_checknumber(i1, 2)))); 40008 STACKTOP = i2; 40009 return 1; 40010 } 40011 function _luaG_concaterror(i3, i2, i1) { 40012 i3 = i3 | 0; 40013 i2 = i2 | 0; 40014 i1 = i1 | 0; 40015 var i4 = 0; 40016 i4 = HEAP32[i2 + 8 >> 2] | 0; 40017 _luaG_typeerror(i3, (i4 & 15 | 0) == 4 | (i4 | 0) == 3 ? i1 : i2, 1912); 40018 } 40019 function _luaB_rawequal(i1) { 40020 i1 = i1 | 0; 40021 var i2 = 0; 40022 i2 = STACKTOP; 40023 _luaL_checkany(i1, 1); 40024 _luaL_checkany(i1, 2); 40025 _lua_pushboolean(i1, _lua_rawequal(i1, 1, 2) | 0); 40026 STACKTOP = i2; 40027 return 1; 40028 } 40029 function _db_getuservalue(i1) { 40030 i1 = i1 | 0; 40031 var i2 = 0; 40032 i2 = STACKTOP; 40033 if ((_lua_type(i1, 1) | 0) == 7) { 40034 _lua_getuservalue(i1, 1); 40035 } else { 40036 _lua_pushnil(i1); 40037 } 40038 STACKTOP = i2; 40039 return 1; 40040 } 40041 function _strchr(i2, i1) { 40042 i2 = i2 | 0; 40043 i1 = i1 | 0; 40044 var i3 = 0; 40045 i3 = STACKTOP; 40046 i2 = ___strchrnul(i2, i1) | 0; 40047 STACKTOP = i3; 40048 return ((HEAP8[i2] | 0) == (i1 & 255) << 24 >> 24 ? i2 : 0) | 0; 40049 } 40050 function runPostSets() {} 40051 function _rand_r(i1) { 40052 i1 = i1 | 0; 40053 var i2 = 0; 40054 i2 = (Math_imul(HEAP32[i1 >> 2] | 0, 31010991) | 0) + 1735287159 & 2147483647; 40055 HEAP32[i1 >> 2] = i2; 40056 return i2 | 0; 40057 } 40058 function _luaL_checkany(i1, i3) { 40059 i1 = i1 | 0; 40060 i3 = i3 | 0; 40061 var i2 = 0; 40062 i2 = STACKTOP; 40063 if ((_lua_type(i1, i3) | 0) == -1) { 40064 _luaL_argerror(i1, i3, 1256) | 0; 40065 } 40066 STACKTOP = i2; 40067 return; 40068 } 40069 function _i64Subtract(i2, i4, i1, i3) { 40070 i2 = i2 | 0; 40071 i4 = i4 | 0; 40072 i1 = i1 | 0; 40073 i3 = i3 | 0; 40074 i4 = i4 - i3 - (i1 >>> 0 > i2 >>> 0 | 0) >>> 0; 40075 return (tempRet0 = i4, i2 - i1 >>> 0 | 0) | 0; 40076 } 40077 function _db_getmetatable(i1) { 40078 i1 = i1 | 0; 40079 var i2 = 0; 40080 i2 = STACKTOP; 40081 _luaL_checkany(i1, 1); 40082 if ((_lua_getmetatable(i1, 1) | 0) == 0) { 40083 _lua_pushnil(i1); 40084 } 40085 STACKTOP = i2; 40086 return 1; 40087 } 40088 function _luaB_rawget(i1) { 40089 i1 = i1 | 0; 40090 var i2 = 0; 40091 i2 = STACKTOP; 40092 _luaL_checktype(i1, 1, 5); 40093 _luaL_checkany(i1, 2); 40094 _lua_settop(i1, 2); 40095 _lua_rawget(i1, 1); 40096 STACKTOP = i2; 40097 return 1; 40098 } 40099 function _luaB_type(i1) { 40100 i1 = i1 | 0; 40101 var i2 = 0; 40102 i2 = STACKTOP; 40103 _luaL_checkany(i1, 1); 40104 _lua_pushstring(i1, _lua_typename(i1, _lua_type(i1, 1) | 0) | 0) | 0; 40105 STACKTOP = i2; 40106 return 1; 40107 } 40108 function dynCall_iiiii(i5, i4, i3, i2, i1) { 40109 i5 = i5 | 0; 40110 i4 = i4 | 0; 40111 i3 = i3 | 0; 40112 i2 = i2 | 0; 40113 i1 = i1 | 0; 40114 return FUNCTION_TABLE_iiiii[i5 & 3](i4 | 0, i3 | 0, i2 | 0, i1 | 0) | 0; 40115 } 40116 function _lstop(i1, i2) { 40117 i1 = i1 | 0; 40118 i2 = i2 | 0; 40119 i2 = STACKTOP; 40120 STACKTOP = STACKTOP + 16 | 0; 40121 _lua_sethook(i1, 0, 0, 0) | 0; 40122 _luaL_error(i1, 200, i2) | 0; 40123 STACKTOP = i2; 40124 return; 40125 } 40126 function _i64Add(i1, i3, i4, i2) { 40127 i1 = i1 | 0; 40128 i3 = i3 | 0; 40129 i4 = i4 | 0; 40130 i2 = i2 | 0; 40131 i4 = i1 + i4 >>> 0; 40132 return (tempRet0 = i3 + i2 + (i4 >>> 0 < i1 >>> 0 | 0) >>> 0, i4 | 0) | 0; 40133 } 40134 function _luaK_ret(i3, i2, i1) { 40135 i3 = i3 | 0; 40136 i2 = i2 | 0; 40137 i1 = i1 | 0; 40138 var i4 = 0; 40139 i4 = STACKTOP; 40140 _luaK_code(i3, i2 << 6 | (i1 << 23) + 8388608 | 31) | 0; 40141 STACKTOP = i4; 40142 return; 40143 } 40144 function _strpbrk(i2, i1) { 40145 i2 = i2 | 0; 40146 i1 = i1 | 0; 40147 var i3 = 0; 40148 i3 = STACKTOP; 40149 i1 = i2 + (_strcspn(i2, i1) | 0) | 0; 40150 STACKTOP = i3; 40151 return ((HEAP8[i1] | 0) != 0 ? i1 : 0) | 0; 40152 } 40153 function _luaL_setmetatable(i1, i2) { 40154 i1 = i1 | 0; 40155 i2 = i2 | 0; 40156 var i3 = 0; 40157 i3 = STACKTOP; 40158 _lua_getfield(i1, -1001e3, i2); 40159 _lua_setmetatable(i1, -2) | 0; 40160 STACKTOP = i3; 40161 return; 40162 } 40163 function _lua_atpanic(i2, i1) { 40164 i2 = i2 | 0; 40165 i1 = i1 | 0; 40166 var i3 = 0; 40167 i3 = (HEAP32[i2 + 12 >> 2] | 0) + 168 | 0; 40168 i2 = HEAP32[i3 >> 2] | 0; 40169 HEAP32[i3 >> 2] = i1; 40170 return i2 | 0; 40171 } 40172 function _luaL_newstate() { 40173 var i1 = 0, i2 = 0; 40174 i2 = STACKTOP; 40175 i1 = _lua_newstate(1, 0) | 0; 40176 if ((i1 | 0) != 0) { 40177 _lua_atpanic(i1, 143) | 0; 40178 } 40179 STACKTOP = i2; 40180 return i1 | 0; 40181 } 40182 function _luaL_buffinit(i2, i1) { 40183 i2 = i2 | 0; 40184 i1 = i1 | 0; 40185 HEAP32[i1 + 12 >> 2] = i2; 40186 HEAP32[i1 >> 2] = i1 + 16; 40187 HEAP32[i1 + 8 >> 2] = 0; 40188 HEAP32[i1 + 4 >> 2] = 1024; 40189 return; 40190 } 40191 function _strrchr(i1, i2) { 40192 i1 = i1 | 0; 40193 i2 = i2 | 0; 40194 var i3 = 0; 40195 i3 = STACKTOP; 40196 i2 = ___memrchr(i1, i2, (_strlen(i1 | 0) | 0) + 1 | 0) | 0; 40197 STACKTOP = i3; 40198 return i2 | 0; 40199 } 40200 function _luaK_fixline(i1, i2) { 40201 i1 = i1 | 0; 40202 i2 = i2 | 0; 40203 HEAP32[(HEAP32[(HEAP32[i1 >> 2] | 0) + 20 >> 2] | 0) + ((HEAP32[i1 + 20 >> 2] | 0) + -1 << 2) >> 2] = i2; 40204 return; 40205 } 40206 function _luaX_lookahead(i1) { 40207 i1 = i1 | 0; 40208 var i2 = 0, i3 = 0; 40209 i3 = STACKTOP; 40210 i2 = _llex(i1, i1 + 40 | 0) | 0; 40211 HEAP32[i1 + 32 >> 2] = i2; 40212 STACKTOP = i3; 40213 return i2 | 0; 40214 } 40215 function _f_call(i2, i1) { 40216 i2 = i2 | 0; 40217 i1 = i1 | 0; 40218 var i3 = 0; 40219 i3 = STACKTOP; 40220 _luaD_call(i2, HEAP32[i1 >> 2] | 0, HEAP32[i1 + 4 >> 2] | 0, 0); 40221 STACKTOP = i3; 40222 return; 40223 } 40224 function _io_pclose(i1) { 40225 i1 = i1 | 0; 40226 var i2 = 0; 40227 i2 = STACKTOP; 40228 _luaL_checkudata(i1, 1, 2832) | 0; 40229 i1 = _luaL_execresult(i1, -1) | 0; 40230 STACKTOP = i2; 40231 return i1 | 0; 40232 } 40233 function _luaS_new(i2, i1) { 40234 i2 = i2 | 0; 40235 i1 = i1 | 0; 40236 var i3 = 0; 40237 i3 = STACKTOP; 40238 i2 = _luaS_newlstr(i2, i1, _strlen(i1 | 0) | 0) | 0; 40239 STACKTOP = i3; 40240 return i2 | 0; 40241 } 40242 function _os_getenv(i1) { 40243 i1 = i1 | 0; 40244 var i2 = 0; 40245 i2 = STACKTOP; 40246 _lua_pushstring(i1, _getenv(_luaL_checklstring(i1, 1, 0) | 0) | 0) | 0; 40247 STACKTOP = i2; 40248 return 1; 40249 } 40250 function _math_rad(i1) { 40251 i1 = i1 | 0; 40252 var i2 = 0; 40253 i2 = STACKTOP; 40254 _lua_pushnumber(i1, +_luaL_checknumber(i1, 1) * .017453292519943295); 40255 STACKTOP = i2; 40256 return 1; 40257 } 40258 function _math_deg(i1) { 40259 i1 = i1 | 0; 40260 var i2 = 0; 40261 i2 = STACKTOP; 40262 _lua_pushnumber(i1, +_luaL_checknumber(i1, 1) / .017453292519943295); 40263 STACKTOP = i2; 40264 return 1; 40265 } 40266 function _writer(i4, i2, i1, i3) { 40267 i4 = i4 | 0; 40268 i2 = i2 | 0; 40269 i1 = i1 | 0; 40270 i3 = i3 | 0; 40271 i4 = STACKTOP; 40272 _luaL_addlstring(i3, i2, i1); 40273 STACKTOP = i4; 40274 return 0; 40275 } 40276 function _luaL_addstring(i2, i1) { 40277 i2 = i2 | 0; 40278 i1 = i1 | 0; 40279 var i3 = 0; 40280 i3 = STACKTOP; 40281 _luaL_addlstring(i2, i1, _strlen(i1 | 0) | 0); 40282 STACKTOP = i3; 40283 return; 40284 } 40285 function _pcallcont(i1) { 40286 i1 = i1 | 0; 40287 var i2 = 0; 40288 i2 = STACKTOP; 40289 i1 = _finishpcall(i1, (_lua_getctx(i1, 0) | 0) == 1 | 0) | 0; 40290 STACKTOP = i2; 40291 return i1 | 0; 40292 } 40293 function _luaopen_coroutine(i1) { 40294 i1 = i1 | 0; 40295 var i2 = 0; 40296 i2 = STACKTOP; 40297 _lua_createtable(i1, 0, 6); 40298 _luaL_setfuncs(i1, 10656, 0); 40299 STACKTOP = i2; 40300 return 1; 40301 } 40302 function _lua_version(i1) { 40303 i1 = i1 | 0; 40304 if ((i1 | 0) == 0) { 40305 i1 = 920; 40306 } else { 40307 i1 = HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 176 >> 2] | 0; 40308 } 40309 return i1 | 0; 40310 } 40311 function _lua_pushnil(i1) { 40312 i1 = i1 | 0; 40313 var i2 = 0; 40314 i1 = i1 + 8 | 0; 40315 i2 = HEAP32[i1 >> 2] | 0; 40316 HEAP32[i2 + 8 >> 2] = 0; 40317 HEAP32[i1 >> 2] = i2 + 16; 40318 return; 40319 } 40320 function _math_floor(i1) { 40321 i1 = i1 | 0; 40322 var i2 = 0; 40323 i2 = STACKTOP; 40324 _lua_pushnumber(i1, +Math_floor(+(+_luaL_checknumber(i1, 1)))); 40325 STACKTOP = i2; 40326 return 1; 40327 } 40328 function _laction(i1) { 40329 i1 = i1 | 0; 40330 var i2 = 0; 40331 i2 = STACKTOP; 40332 _signal(i1 | 0, 0) | 0; 40333 _lua_sethook(HEAP32[48] | 0, 1, 11, 1) | 0; 40334 STACKTOP = i2; 40335 return; 40336 } 40337 function dynCall_iiii(i4, i3, i2, i1) { 40338 i4 = i4 | 0; 40339 i3 = i3 | 0; 40340 i2 = i2 | 0; 40341 i1 = i1 | 0; 40342 return FUNCTION_TABLE_iiii[i4 & 3](i3 | 0, i2 | 0, i1 | 0) | 0; 40343 } 40344 function _luaopen_debug(i1) { 40345 i1 = i1 | 0; 40346 var i2 = 0; 40347 i2 = STACKTOP; 40348 _lua_createtable(i1, 0, 16); 40349 _luaL_setfuncs(i1, 11176, 0); 40350 STACKTOP = i2; 40351 return 1; 40352 } 40353 function _luaopen_bit32(i1) { 40354 i1 = i1 | 0; 40355 var i2 = 0; 40356 i2 = STACKTOP; 40357 _lua_createtable(i1, 0, 12); 40358 _luaL_setfuncs(i1, 10240, 0); 40359 STACKTOP = i2; 40360 return 1; 40361 } 40362 function _math_sqrt(i1) { 40363 i1 = i1 | 0; 40364 var i2 = 0; 40365 i2 = STACKTOP; 40366 _lua_pushnumber(i1, +Math_sqrt(+(+_luaL_checknumber(i1, 1)))); 40367 STACKTOP = i2; 40368 return 1; 40369 } 40370 function _math_ceil(i1) { 40371 i1 = i1 | 0; 40372 var i2 = 0; 40373 i2 = STACKTOP; 40374 _lua_pushnumber(i1, +Math_ceil(+(+_luaL_checknumber(i1, 1)))); 40375 STACKTOP = i2; 40376 return 1; 40377 } 40378 function _math_atan(i1) { 40379 i1 = i1 | 0; 40380 var i2 = 0; 40381 i2 = STACKTOP; 40382 _lua_pushnumber(i1, +Math_atan(+(+_luaL_checknumber(i1, 1)))); 40383 STACKTOP = i2; 40384 return 1; 40385 } 40386 function _math_asin(i1) { 40387 i1 = i1 | 0; 40388 var i2 = 0; 40389 i2 = STACKTOP; 40390 _lua_pushnumber(i1, +Math_asin(+(+_luaL_checknumber(i1, 1)))); 40391 STACKTOP = i2; 40392 return 1; 40393 } 40394 function _math_acos(i1) { 40395 i1 = i1 | 0; 40396 var i2 = 0; 40397 i2 = STACKTOP; 40398 _lua_pushnumber(i1, +Math_acos(+(+_luaL_checknumber(i1, 1)))); 40399 STACKTOP = i2; 40400 return 1; 40401 } 40402 function _lua_close(i1) { 40403 i1 = i1 | 0; 40404 var i2 = 0; 40405 i2 = STACKTOP; 40406 _close_state(HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 172 >> 2] | 0); 40407 STACKTOP = i2; 40408 return; 40409 } 40410 function _dothecall(i1, i2) { 40411 i1 = i1 | 0; 40412 i2 = i2 | 0; 40413 i2 = STACKTOP; 40414 _luaD_call(i1, (HEAP32[i1 + 8 >> 2] | 0) + -32 | 0, 0, 0); 40415 STACKTOP = i2; 40416 return; 40417 } 40418 function _math_tan(i1) { 40419 i1 = i1 | 0; 40420 var i2 = 0; 40421 i2 = STACKTOP; 40422 _lua_pushnumber(i1, +Math_tan(+(+_luaL_checknumber(i1, 1)))); 40423 STACKTOP = i2; 40424 return 1; 40425 } 40426 function _math_sin(i1) { 40427 i1 = i1 | 0; 40428 var i2 = 0; 40429 i2 = STACKTOP; 40430 _lua_pushnumber(i1, +Math_sin(+(+_luaL_checknumber(i1, 1)))); 40431 STACKTOP = i2; 40432 return 1; 40433 } 40434 function _math_log10(i1) { 40435 i1 = i1 | 0; 40436 var i2 = 0; 40437 i2 = STACKTOP; 40438 _lua_pushnumber(i1, +_log10(+(+_luaL_checknumber(i1, 1)))); 40439 STACKTOP = i2; 40440 return 1; 40441 } 40442 function _math_exp(i1) { 40443 i1 = i1 | 0; 40444 var i2 = 0; 40445 i2 = STACKTOP; 40446 _lua_pushnumber(i1, +Math_exp(+(+_luaL_checknumber(i1, 1)))); 40447 STACKTOP = i2; 40448 return 1; 40449 } 40450 function _math_cos(i1) { 40451 i1 = i1 | 0; 40452 var i2 = 0; 40453 i2 = STACKTOP; 40454 _lua_pushnumber(i1, +Math_cos(+(+_luaL_checknumber(i1, 1)))); 40455 STACKTOP = i2; 40456 return 1; 40457 } 40458 function _math_abs(i1) { 40459 i1 = i1 | 0; 40460 var i2 = 0; 40461 i2 = STACKTOP; 40462 _lua_pushnumber(i1, +Math_abs(+(+_luaL_checknumber(i1, 1)))); 40463 STACKTOP = i2; 40464 return 1; 40465 } 40466 function _math_randomseed(i1) { 40467 i1 = i1 | 0; 40468 var i2 = 0; 40469 i2 = STACKTOP; 40470 _srand(_luaL_checkunsigned(i1, 1) | 0); 40471 _rand() | 0; 40472 STACKTOP = i2; 40473 return 0; 40474 } 40475 function _luaopen_os(i1) { 40476 i1 = i1 | 0; 40477 var i2 = 0; 40478 i2 = STACKTOP; 40479 _lua_createtable(i1, 0, 11); 40480 _luaL_setfuncs(i1, 5624, 0); 40481 STACKTOP = i2; 40482 return 1; 40483 } 40484 function _math_tanh(i1) { 40485 i1 = i1 | 0; 40486 var i2 = 0; 40487 i2 = STACKTOP; 40488 _lua_pushnumber(i1, +_tanh(+(+_luaL_checknumber(i1, 1)))); 40489 STACKTOP = i2; 40490 return 1; 40491 } 40492 function _math_sinh(i1) { 40493 i1 = i1 | 0; 40494 var i2 = 0; 40495 i2 = STACKTOP; 40496 _lua_pushnumber(i1, +_sinh(+(+_luaL_checknumber(i1, 1)))); 40497 STACKTOP = i2; 40498 return 1; 40499 } 40500 function _math_cosh(i1) { 40501 i1 = i1 | 0; 40502 var i2 = 0; 40503 i2 = STACKTOP; 40504 _lua_pushnumber(i1, +_cosh(+(+_luaL_checknumber(i1, 1)))); 40505 STACKTOP = i2; 40506 return 1; 40507 } 40508 function _luaB_yield(i1) { 40509 i1 = i1 | 0; 40510 var i2 = 0; 40511 i2 = STACKTOP; 40512 i1 = _lua_yieldk(i1, _lua_gettop(i1) | 0, 0, 0) | 0; 40513 STACKTOP = i2; 40514 return i1 | 0; 40515 } 40516 function _luaB_tostring(i1) { 40517 i1 = i1 | 0; 40518 var i2 = 0; 40519 i2 = STACKTOP; 40520 _luaL_checkany(i1, 1); 40521 _luaL_tolstring(i1, 1, 0) | 0; 40522 STACKTOP = i2; 40523 return 1; 40524 } 40525 function _growstack(i2, i1) { 40526 i2 = i2 | 0; 40527 i1 = i1 | 0; 40528 var i3 = 0; 40529 i3 = STACKTOP; 40530 _luaD_growstack(i2, HEAP32[i1 >> 2] | 0); 40531 STACKTOP = i3; 40532 return; 40533 } 40534 function ___udivdi3(i4, i3, i2, i1) { 40535 i4 = i4 | 0; 40536 i3 = i3 | 0; 40537 i2 = i2 | 0; 40538 i1 = i1 | 0; 40539 i4 = ___udivmoddi4(i4, i3, i2, i1, 0) | 0; 40540 return i4 | 0; 40541 } 40542 function _b_not(i1) { 40543 i1 = i1 | 0; 40544 var i2 = 0; 40545 i2 = STACKTOP; 40546 _lua_pushunsigned(i1, ~(_luaL_checkunsigned(i1, 1) | 0)); 40547 STACKTOP = i2; 40548 return 1; 40549 } 40550 function _luaO_fb2int(i1) { 40551 i1 = i1 | 0; 40552 var i2 = 0; 40553 i2 = i1 >>> 3 & 31; 40554 if ((i2 | 0) != 0) { 40555 i1 = (i1 & 7 | 8) << i2 + -1; 40556 } 40557 return i1 | 0; 40558 } 40559 function _luaB_corunning(i1) { 40560 i1 = i1 | 0; 40561 var i2 = 0; 40562 i2 = STACKTOP; 40563 _lua_pushboolean(i1, _lua_pushthread(i1) | 0); 40564 STACKTOP = i2; 40565 return 2; 40566 } 40567 function stackAlloc(i1) { 40568 i1 = i1 | 0; 40569 var i2 = 0; 40570 i2 = STACKTOP; 40571 STACKTOP = STACKTOP + i1 | 0; 40572 STACKTOP = STACKTOP + 7 & -8; 40573 return i2 | 0; 40574 } 40575 function _strcoll(i2, i1) { 40576 i2 = i2 | 0; 40577 i1 = i1 | 0; 40578 var i3 = 0; 40579 i3 = STACKTOP; 40580 i2 = _strcmp(i2, i1) | 0; 40581 STACKTOP = i3; 40582 return i2 | 0; 40583 } 40584 function _os_clock(i1) { 40585 i1 = i1 | 0; 40586 var i2 = 0; 40587 i2 = STACKTOP; 40588 _lua_pushnumber(i1, +(_clock() | 0) / 1.0e6); 40589 STACKTOP = i2; 40590 return 1; 40591 } 40592 function _dofilecont(i1) { 40593 i1 = i1 | 0; 40594 var i2 = 0; 40595 i2 = STACKTOP; 40596 i1 = (_lua_gettop(i1) | 0) + -1 | 0; 40597 STACKTOP = i2; 40598 return i1 | 0; 40599 } 40600 function _scalbnl(d2, i1) { 40601 d2 = +d2; 40602 i1 = i1 | 0; 40603 var i3 = 0; 40604 i3 = STACKTOP; 40605 d2 = +_scalbn(d2, i1); 40606 STACKTOP = i3; 40607 return +d2; 40608 } 40609 function _tolower(i1) { 40610 i1 = i1 | 0; 40611 if ((i1 | 0) < 65) return i1 | 0; 40612 if ((i1 | 0) > 90) return i1 | 0; 40613 return i1 - 65 + 97 | 0; 40614 } 40615 function _lua_gettop(i1) { 40616 i1 = i1 | 0; 40617 return (HEAP32[i1 + 8 >> 2] | 0) - ((HEAP32[HEAP32[i1 + 16 >> 2] >> 2] | 0) + 16) >> 4 | 0; 40618 } 40619 function dynCall_iii(i3, i2, i1) { 40620 i3 = i3 | 0; 40621 i2 = i2 | 0; 40622 i1 = i1 | 0; 40623 return FUNCTION_TABLE_iii[i3 & 1](i2 | 0, i1 | 0) | 0; 40624 } 40625 function _str_match(i1) { 40626 i1 = i1 | 0; 40627 var i2 = 0; 40628 i2 = STACKTOP; 40629 i1 = _str_find_aux(i1, 0) | 0; 40630 STACKTOP = i2; 40631 return i1 | 0; 40632 } 40633 function _luaM_toobig(i1) { 40634 i1 = i1 | 0; 40635 var i2 = 0; 40636 i2 = STACKTOP; 40637 STACKTOP = STACKTOP + 16 | 0; 40638 _luaG_runerror(i1, 4144, i2); 40639 } 40640 function _luaK_getlabel(i1) { 40641 i1 = i1 | 0; 40642 var i2 = 0; 40643 i2 = HEAP32[i1 + 20 >> 2] | 0; 40644 HEAP32[i1 + 24 >> 2] = i2; 40645 return i2 | 0; 40646 } 40647 function _ldexp(d2, i1) { 40648 d2 = +d2; 40649 i1 = i1 | 0; 40650 var i3 = 0; 40651 i3 = STACKTOP; 40652 d2 = +_scalbn(d2, i1); 40653 STACKTOP = i3; 40654 return +d2; 40655 } 40656 function _str_find(i1) { 40657 i1 = i1 | 0; 40658 var i2 = 0; 40659 i2 = STACKTOP; 40660 i1 = _str_find_aux(i1, 1) | 0; 40661 STACKTOP = i2; 40662 return i1 | 0; 40663 } 40664 function _db_getregistry(i1) { 40665 i1 = i1 | 0; 40666 var i2 = 0; 40667 i2 = STACKTOP; 40668 _lua_pushvalue(i1, -1001e3); 40669 STACKTOP = i2; 40670 return 1; 40671 } 40672 function _luaB_ipairs(i1) { 40673 i1 = i1 | 0; 40674 var i2 = 0; 40675 i2 = STACKTOP; 40676 _pairsmeta(i1, 9960, 1, 165); 40677 STACKTOP = i2; 40678 return 3; 40679 } 40680 function _strlen(i1) { 40681 i1 = i1 | 0; 40682 var i2 = 0; 40683 i2 = i1; 40684 while (HEAP8[i2] | 0) { 40685 i2 = i2 + 1 | 0; 40686 } 40687 return i2 - i1 | 0; 40688 } 40689 function _luaB_pairs(i1) { 40690 i1 = i1 | 0; 40691 var i2 = 0; 40692 i2 = STACKTOP; 40693 _pairsmeta(i1, 9864, 0, 93); 40694 STACKTOP = i2; 40695 return 3; 40696 } 40697 function setThrew(i1, i2) { 40698 i1 = i1 | 0; 40699 i2 = i2 | 0; 40700 if ((__THREW__ | 0) == 0) { 40701 __THREW__ = i1; 40702 threwValue = i2; 40703 } 40704 } 40705 function _io_output(i1) { 40706 i1 = i1 | 0; 40707 var i2 = 0; 40708 i2 = STACKTOP; 40709 _g_iofile(i1, 2800, 3512); 40710 STACKTOP = i2; 40711 return 1; 40712 } 40713 function dynCall_vii(i3, i2, i1) { 40714 i3 = i3 | 0; 40715 i2 = i2 | 0; 40716 i1 = i1 | 0; 40717 FUNCTION_TABLE_vii[i3 & 15](i2 | 0, i1 | 0); 40718 } 40719 function _io_input(i1) { 40720 i1 = i1 | 0; 40721 var i2 = 0; 40722 i2 = STACKTOP; 40723 _g_iofile(i1, 2776, 3480); 40724 STACKTOP = i2; 40725 return 1; 40726 } 40727 function _semerror(i2, i1) { 40728 i2 = i2 | 0; 40729 i1 = i1 | 0; 40730 HEAP32[i2 + 16 >> 2] = 0; 40731 _luaX_syntaxerror(i2, i1); 40732 } 40733 function _luaX_syntaxerror(i1, i2) { 40734 i1 = i1 | 0; 40735 i2 = i2 | 0; 40736 _lexerror(i1, i2, HEAP32[i1 + 16 >> 2] | 0); 40737 } 40738 function b4(i1, i2, i3, i4) { 40739 i1 = i1 | 0; 40740 i2 = i2 | 0; 40741 i3 = i3 | 0; 40742 i4 = i4 | 0; 40743 abort(4); 40744 return 0; 40745 } 40746 function _lua_typename(i2, i1) { 40747 i2 = i2 | 0; 40748 i1 = i1 | 0; 40749 return HEAP32[8528 + (i1 + 1 << 2) >> 2] | 0; 40750 } 40751 function dynCall_ii(i2, i1) { 40752 i2 = i2 | 0; 40753 i1 = i1 | 0; 40754 return FUNCTION_TABLE_ii[i2 & 255](i1 | 0) | 0; 40755 } 40756 function dynCall_vi(i2, i1) { 40757 i2 = i2 | 0; 40758 i1 = i1 | 0; 40759 FUNCTION_TABLE_vi[i2 & 1](i1 | 0); 40760 } 40761 function b0(i1, i2, i3) { 40762 i1 = i1 | 0; 40763 i2 = i2 | 0; 40764 i3 = i3 | 0; 40765 abort(0); 40766 return 0; 40767 } 40768 function _lua_gethookmask(i1) { 40769 i1 = i1 | 0; 40770 return HEAPU8[i1 + 40 | 0] | 0 | 0; 40771 } 40772 function _lua_gethookcount(i1) { 40773 i1 = i1 | 0; 40774 return HEAP32[i1 + 44 >> 2] | 0; 40775 } 40776 function _lua_status(i1) { 40777 i1 = i1 | 0; 40778 return HEAPU8[i1 + 6 | 0] | 0 | 0; 40779 } 40780 function _lua_gethook(i1) { 40781 i1 = i1 | 0; 40782 return HEAP32[i1 + 52 >> 2] | 0; 40783 } 40784 function b5(i1, i2) { 40785 i1 = i1 | 0; 40786 i2 = i2 | 0; 40787 abort(5); 40788 return 0; 40789 } 40790 function _lua_error(i1) { 40791 i1 = i1 | 0; 40792 _luaG_errormsg(i1); 40793 return 0; 40794 } 40795 function b2(i1, i2) { 40796 i1 = i1 | 0; 40797 i2 = i2 | 0; 40798 abort(2); 40799 } 40800 function stackRestore(i1) { 40801 i1 = i1 | 0; 40802 STACKTOP = i1; 40803 } 40804 function setTempRet9(i1) { 40805 i1 = i1 | 0; 40806 tempRet9 = i1; 40807 } 40808 function setTempRet8(i1) { 40809 i1 = i1 | 0; 40810 tempRet8 = i1; 40811 } 40812 function setTempRet7(i1) { 40813 i1 = i1 | 0; 40814 tempRet7 = i1; 40815 } 40816 function setTempRet6(i1) { 40817 i1 = i1 | 0; 40818 tempRet6 = i1; 40819 } 40820 function setTempRet5(i1) { 40821 i1 = i1 | 0; 40822 tempRet5 = i1; 40823 } 40824 function setTempRet4(i1) { 40825 i1 = i1 | 0; 40826 tempRet4 = i1; 40827 } 40828 function setTempRet3(i1) { 40829 i1 = i1 | 0; 40830 tempRet3 = i1; 40831 } 40832 function setTempRet2(i1) { 40833 i1 = i1 | 0; 40834 tempRet2 = i1; 40835 } 40836 function setTempRet1(i1) { 40837 i1 = i1 | 0; 40838 tempRet1 = i1; 40839 } 40840 function setTempRet0(i1) { 40841 i1 = i1 | 0; 40842 tempRet0 = i1; 40843 } 40844 function b3(i1) { 40845 i1 = i1 | 0; 40846 abort(3); 40847 return 0; 40848 } 40849 function _rand() { 40850 return _rand_r(___rand_seed) | 0; 40851 } 40852 function stackSave() { 40853 return STACKTOP | 0; 40854 } 40855 function b1(i1) { 40856 i1 = i1 | 0; 40857 abort(1); 40858 } 40859 40860 // EMSCRIPTEN_END_FUNCS 40861 var FUNCTION_TABLE_iiii = [b0,_getF,_getS,_generic_reader]; 40862 var FUNCTION_TABLE_vi = [b1,_laction]; 40863 var FUNCTION_TABLE_vii = [b2,_lstop,_growstack,_f_call,_resume,_unroll,_f_parser,_dothecall,_f_luaopen,_hookf,b2,b2,b2,b2,b2,b2]; 40864 var FUNCTION_TABLE_ii = [b3,_io_close,_io_flush,_io_input,_io_lines,_io_open,_io_output,_io_popen,_io_read,_io_tmpfile,_io_type,_io_write,_f_flush,_f_lines,_f_read,_f_seek,_f_setvbuf,_f_write,_f_gc,_f_tostring,_math_abs,_math_acos,_math_asin,_math_atan2,_math_atan,_math_ceil,_math_cosh,_math_cos,_math_deg 40865 ,_math_exp,_math_floor,_math_fmod,_math_frexp,_math_ldexp,_math_log10,_math_log,_math_max,_math_min,_math_modf,_math_pow,_math_rad,_math_random,_math_randomseed,_math_sinh,_math_sin,_math_sqrt,_math_tanh,_math_tan,_ll_loadlib,_ll_searchpath,_ll_seeall,_ll_module,_ll_require,_os_clock,_os_date,_os_difftime,_os_execute,_os_exit,_os_getenv 40866 ,_os_remove,_os_rename,_os_setlocale,_os_time,_os_tmpname,_str_byte,_str_char,_str_dump,_str_find,_str_format,_gmatch,_str_gsub,_str_len,_str_lower,_str_match,_str_rep,_str_reverse,_str_sub,_str_upper,_tconcat,_maxn,_tinsert,_pack,_unpack,_tremove,_sort,_luaB_assert,_luaB_collectgarbage,_luaB_dofile,_luaB_error 40867 ,_luaB_getmetatable,_luaB_ipairs,_luaB_loadfile,_luaB_load,_luaB_next,_luaB_pairs,_luaB_pcall,_luaB_print,_luaB_rawequal,_luaB_rawlen,_luaB_rawget,_luaB_rawset,_luaB_select,_luaB_setmetatable,_luaB_tonumber,_luaB_tostring,_luaB_type,_luaB_xpcall,_b_arshift,_b_and,_b_not,_b_or,_b_xor,_b_test,_b_extract,_b_lrot,_b_lshift,_b_replace,_b_rrot,_b_rshift 40868 ,_luaB_cocreate,_luaB_coresume,_luaB_corunning,_luaB_costatus,_luaB_cowrap,_luaB_yield,_db_debug,_db_getuservalue,_db_gethook,_db_getinfo,_db_getlocal,_db_getregistry,_db_getmetatable,_db_getupvalue,_db_upvaluejoin,_db_upvalueid,_db_setuservalue,_db_sethook,_db_setlocal,_db_setmetatable,_db_setupvalue,_db_traceback,_pmain,_traceback,_panic,_luaopen_base,_luaopen_package,_luaopen_coroutine,_luaopen_table,_luaopen_io 40869 ,_luaopen_os,_luaopen_string,_luaopen_bit32,_luaopen_math,_luaopen_debug,_io_noclose,_io_readline,_io_fclose,_io_pclose,_gctm,_searcher_preload,_searcher_Lua,_searcher_C,_searcher_Croot,_gmatch_aux,_dofilecont,_ipairsaux,_pcallcont,_luaB_auxwrap,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3 40870 ,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3 40871 ,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3 40872 ,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3]; 40873 var FUNCTION_TABLE_iiiii = [b4,_l_alloc,_writer,b4]; 40874 var FUNCTION_TABLE_iii = [b5,_lua_newstate]; 40875 40876 return { _testSetjmp: _testSetjmp, _i64Subtract: _i64Subtract, _free: _free, _main: _main, _rand_r: _rand_r, _realloc: _realloc, _i64Add: _i64Add, _tolower: _tolower, _saveSetjmp: _saveSetjmp, _memset: _memset, _malloc: _malloc, _memcpy: _memcpy, _strlen: _strlen, _rand: _rand, _bitshift64Shl: _bitshift64Shl, runPostSets: runPostSets, stackAlloc: stackAlloc, stackSave: stackSave, stackRestore: stackRestore, setThrew: setThrew, setTempRet0: setTempRet0, setTempRet1: setTempRet1, setTempRet2: setTempRet2, setTempRet3: setTempRet3, setTempRet4: setTempRet4, setTempRet5: setTempRet5, setTempRet6: setTempRet6, setTempRet7: setTempRet7, setTempRet8: setTempRet8, setTempRet9: setTempRet9, dynCall_iiii: dynCall_iiii, dynCall_vi: dynCall_vi, dynCall_vii: dynCall_vii, dynCall_ii: dynCall_ii, dynCall_iiiii: dynCall_iiiii, dynCall_iii: dynCall_iii }; 40877 }) 40878 // EMSCRIPTEN_END_ASM 40879 ({ "Math": Math, "Int8Array": Int8Array, "Int16Array": Int16Array, "Int32Array": Int32Array, "Uint8Array": Uint8Array, "Uint16Array": Uint16Array, "Uint32Array": Uint32Array, "Float32Array": Float32Array, "Float64Array": Float64Array }, { "abort": abort, "assert": assert, "asmPrintInt": asmPrintInt, "asmPrintFloat": asmPrintFloat, "min": Math_min, "invoke_iiii": invoke_iiii, "invoke_vi": invoke_vi, "invoke_vii": invoke_vii, "invoke_ii": invoke_ii, "invoke_iiiii": invoke_iiiii, "invoke_iii": invoke_iii, "_isalnum": _isalnum, "_fabs": _fabs, "_frexp": _frexp, "_exp": _exp, "_fread": _fread, "__reallyNegative": __reallyNegative, "_longjmp": _longjmp, "__addDays": __addDays, "_fsync": _fsync, "_signal": _signal, "_rename": _rename, "_sbrk": _sbrk, "_emscripten_memcpy_big": _emscripten_memcpy_big, "_sinh": _sinh, "_sysconf": _sysconf, "_close": _close, "_ferror": _ferror, "_clock": _clock, "_cos": _cos, "_tanh": _tanh, "_unlink": _unlink, "_write": _write, "__isLeapYear": __isLeapYear, "_ftell": _ftell, "_isupper": _isupper, "_gmtime_r": _gmtime_r, "_islower": _islower, "_tmpnam": _tmpnam, "_tmpfile": _tmpfile, "_send": _send, "_abort": _abort, "_setvbuf": _setvbuf, "_atan2": _atan2, "_setlocale": _setlocale, "_isgraph": _isgraph, "_modf": _modf, "_strerror_r": _strerror_r, "_fscanf": _fscanf, "___setErrNo": ___setErrNo, "_isalpha": _isalpha, "_srand": _srand, "_mktime": _mktime, "_putchar": _putchar, "_gmtime": _gmtime, "_localeconv": _localeconv, "_sprintf": _sprintf, "_localtime": _localtime, "_read": _read, "_fwrite": _fwrite, "_time": _time, "_fprintf": _fprintf, "_exit": _exit, "_freopen": _freopen, "_llvm_pow_f64": _llvm_pow_f64, "_fgetc": _fgetc, "_fmod": _fmod, "_lseek": _lseek, "_rmdir": _rmdir, "_asin": _asin, "_floor": _floor, "_pwrite": _pwrite, "_localtime_r": _localtime_r, "_tzset": _tzset, "_open": _open, "_remove": _remove, "_snprintf": _snprintf, "__scanString": __scanString, "_strftime": _strftime, "_fseek": _fseek, "_iscntrl": _iscntrl, "_isxdigit": _isxdigit, "_fclose": _fclose, "_log": _log, "_recv": _recv, "_tan": _tan, "_copysign": _copysign, "__getFloat": __getFloat, "_fputc": _fputc, "_ispunct": _ispunct, "_ceil": _ceil, "_isspace": _isspace, "_fopen": _fopen, "_sin": _sin, "_acos": _acos, "_cosh": _cosh, "___buildEnvironment": ___buildEnvironment, "_difftime": _difftime, "_ungetc": _ungetc, "_system": _system, "_fflush": _fflush, "_log10": _log10, "_fileno": _fileno, "__exit": __exit, "__arraySum": __arraySum, "_fgets": _fgets, "_atan": _atan, "_pread": _pread, "_mkport": _mkport, "_toupper": _toupper, "_feof": _feof, "___errno_location": ___errno_location, "_clearerr": _clearerr, "_getenv": _getenv, "_strerror": _strerror, "_emscripten_longjmp": _emscripten_longjmp, "__formatString": __formatString, "_fputs": _fputs, "_sqrt": _sqrt, "STACKTOP": STACKTOP, "STACK_MAX": STACK_MAX, "tempDoublePtr": tempDoublePtr, "ABORT": ABORT, "cttz_i8": cttz_i8, "ctlz_i8": ctlz_i8, "___rand_seed": ___rand_seed, "NaN": NaN, "Infinity": Infinity, "_stderr": _stderr, "_stdin": _stdin, "_stdout": _stdout }, buffer); 40880 var _testSetjmp = Module["_testSetjmp"] = asm["_testSetjmp"]; 40881 var _i64Subtract = Module["_i64Subtract"] = asm["_i64Subtract"]; 40882 var _free = Module["_free"] = asm["_free"]; 40883 var _main = Module["_main"] = asm["_main"]; 40884 var _rand_r = Module["_rand_r"] = asm["_rand_r"]; 40885 var _realloc = Module["_realloc"] = asm["_realloc"]; 40886 var _i64Add = Module["_i64Add"] = asm["_i64Add"]; 40887 var _tolower = Module["_tolower"] = asm["_tolower"]; 40888 var _saveSetjmp = Module["_saveSetjmp"] = asm["_saveSetjmp"]; 40889 var _memset = Module["_memset"] = asm["_memset"]; 40890 var _malloc = Module["_malloc"] = asm["_malloc"]; 40891 var _memcpy = Module["_memcpy"] = asm["_memcpy"]; 40892 var _strlen = Module["_strlen"] = asm["_strlen"]; 40893 var _rand = Module["_rand"] = asm["_rand"]; 40894 var _bitshift64Shl = Module["_bitshift64Shl"] = asm["_bitshift64Shl"]; 40895 var runPostSets = Module["runPostSets"] = asm["runPostSets"]; 40896 var dynCall_iiii = Module["dynCall_iiii"] = asm["dynCall_iiii"]; 40897 var dynCall_vi = Module["dynCall_vi"] = asm["dynCall_vi"]; 40898 var dynCall_vii = Module["dynCall_vii"] = asm["dynCall_vii"]; 40899 var dynCall_ii = Module["dynCall_ii"] = asm["dynCall_ii"]; 40900 var dynCall_iiiii = Module["dynCall_iiiii"] = asm["dynCall_iiiii"]; 40901 var dynCall_iii = Module["dynCall_iii"] = asm["dynCall_iii"]; 40902 40903 Runtime.stackAlloc = function(size) { return asm['stackAlloc'](size) }; 40904 Runtime.stackSave = function() { return asm['stackSave']() }; 40905 Runtime.stackRestore = function(top) { asm['stackRestore'](top) }; 40906 40907 40908 // TODO: strip out parts of this we do not need 40909 40910 //======= begin closure i64 code ======= 40911 40912 // Copyright 2009 The Closure Library Authors. All Rights Reserved. 40913 // 40914 // Licensed under the Apache License, Version 2.0 (the "License"); 40915 // you may not use this file except in compliance with the License. 40916 // You may obtain a copy of the License at 40917 // 40918 // http://www.apache.org/licenses/LICENSE-2.0 40919 // 40920 // Unless required by applicable law or agreed to in writing, software 40921 // distributed under the License is distributed on an "AS-IS" BASIS, 40922 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 40923 // See the License for the specific language governing permissions and 40924 // limitations under the License. 40925 40926 /** 40927 * @fileoverview Defines a Long class for representing a 64-bit two's-complement 40928 * integer value, which faithfully simulates the behavior of a Java "long". This 40929 * implementation is derived from LongLib in GWT. 40930 * 40931 */ 40932 40933 var i64Math = (function() { // Emscripten wrapper 40934 var goog = { math: {} }; 40935 40936 40937 /** 40938 * Constructs a 64-bit two's-complement integer, given its low and high 32-bit 40939 * values as *signed* integers. See the from* functions below for more 40940 * convenient ways of constructing Longs. 40941 * 40942 * The internal representation of a long is the two given signed, 32-bit values. 40943 * We use 32-bit pieces because these are the size of integers on which 40944 * Javascript performs bit-operations. For operations like addition and 40945 * multiplication, we split each number into 16-bit pieces, which can easily be 40946 * multiplied within Javascript's floating-point representation without overflow 40947 * or change in sign. 40948 * 40949 * In the algorithms below, we frequently reduce the negative case to the 40950 * positive case by negating the input(s) and then post-processing the result. 40951 * Note that we must ALWAYS check specially whether those values are MIN_VALUE 40952 * (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as 40953 * a positive number, it overflows back into a negative). Not handling this 40954 * case would often result in infinite recursion. 40955 * 40956 * @param {number} low The low (signed) 32 bits of the long. 40957 * @param {number} high The high (signed) 32 bits of the long. 40958 * @constructor 40959 */ 40960 goog.math.Long = function(low, high) { 40961 /** 40962 * @type {number} 40963 * @private 40964 */ 40965 this.low_ = low | 0; // force into 32 signed bits. 40966 40967 /** 40968 * @type {number} 40969 * @private 40970 */ 40971 this.high_ = high | 0; // force into 32 signed bits. 40972 }; 40973 40974 40975 // NOTE: Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the 40976 // from* methods on which they depend. 40977 40978 40979 /** 40980 * A cache of the Long representations of small integer values. 40981 * @type {!Object} 40982 * @private 40983 */ 40984 goog.math.Long.IntCache_ = {}; 40985 40986 40987 /** 40988 * Returns a Long representing the given (32-bit) integer value. 40989 * @param {number} value The 32-bit integer in question. 40990 * @return {!goog.math.Long} The corresponding Long value. 40991 */ 40992 goog.math.Long.fromInt = function(value) { 40993 if (-128 <= value && value < 128) { 40994 var cachedObj = goog.math.Long.IntCache_[value]; 40995 if (cachedObj) { 40996 return cachedObj; 40997 } 40998 } 40999 41000 var obj = new goog.math.Long(value | 0, value < 0 ? -1 : 0); 41001 if (-128 <= value && value < 128) { 41002 goog.math.Long.IntCache_[value] = obj; 41003 } 41004 return obj; 41005 }; 41006 41007 41008 /** 41009 * Returns a Long representing the given value, provided that it is a finite 41010 * number. Otherwise, zero is returned. 41011 * @param {number} value The number in question. 41012 * @return {!goog.math.Long} The corresponding Long value. 41013 */ 41014 goog.math.Long.fromNumber = function(value) { 41015 if (isNaN(value) || !isFinite(value)) { 41016 return goog.math.Long.ZERO; 41017 } else if (value <= -goog.math.Long.TWO_PWR_63_DBL_) { 41018 return goog.math.Long.MIN_VALUE; 41019 } else if (value + 1 >= goog.math.Long.TWO_PWR_63_DBL_) { 41020 return goog.math.Long.MAX_VALUE; 41021 } else if (value < 0) { 41022 return goog.math.Long.fromNumber(-value).negate(); 41023 } else { 41024 return new goog.math.Long( 41025 (value % goog.math.Long.TWO_PWR_32_DBL_) | 0, 41026 (value / goog.math.Long.TWO_PWR_32_DBL_) | 0); 41027 } 41028 }; 41029 41030 41031 /** 41032 * Returns a Long representing the 64-bit integer that comes by concatenating 41033 * the given high and low bits. Each is assumed to use 32 bits. 41034 * @param {number} lowBits The low 32-bits. 41035 * @param {number} highBits The high 32-bits. 41036 * @return {!goog.math.Long} The corresponding Long value. 41037 */ 41038 goog.math.Long.fromBits = function(lowBits, highBits) { 41039 return new goog.math.Long(lowBits, highBits); 41040 }; 41041 41042 41043 /** 41044 * Returns a Long representation of the given string, written using the given 41045 * radix. 41046 * @param {string} str The textual representation of the Long. 41047 * @param {number=} opt_radix The radix in which the text is written. 41048 * @return {!goog.math.Long} The corresponding Long value. 41049 */ 41050 goog.math.Long.fromString = function(str, opt_radix) { 41051 if (str.length == 0) { 41052 throw Error('number format error: empty string'); 41053 } 41054 41055 var radix = opt_radix || 10; 41056 if (radix < 2 || 36 < radix) { 41057 throw Error('radix out of range: ' + radix); 41058 } 41059 41060 if (str.charAt(0) == '-') { 41061 return goog.math.Long.fromString(str.substring(1), radix).negate(); 41062 } else if (str.indexOf('-') >= 0) { 41063 throw Error('number format error: interior "-" character: ' + str); 41064 } 41065 41066 // Do several (8) digits each time through the loop, so as to 41067 // minimize the calls to the very expensive emulated div. 41068 var radixToPower = goog.math.Long.fromNumber(Math.pow(radix, 8)); 41069 41070 var result = goog.math.Long.ZERO; 41071 for (var i = 0; i < str.length; i += 8) { 41072 var size = Math.min(8, str.length - i); 41073 var value = parseInt(str.substring(i, i + size), radix); 41074 if (size < 8) { 41075 var power = goog.math.Long.fromNumber(Math.pow(radix, size)); 41076 result = result.multiply(power).add(goog.math.Long.fromNumber(value)); 41077 } else { 41078 result = result.multiply(radixToPower); 41079 result = result.add(goog.math.Long.fromNumber(value)); 41080 } 41081 } 41082 return result; 41083 }; 41084 41085 41086 // NOTE: the compiler should inline these constant values below and then remove 41087 // these variables, so there should be no runtime penalty for these. 41088 41089 41090 /** 41091 * Number used repeated below in calculations. This must appear before the 41092 * first call to any from* function below. 41093 * @type {number} 41094 * @private 41095 */ 41096 goog.math.Long.TWO_PWR_16_DBL_ = 1 << 16; 41097 41098 41099 /** 41100 * @type {number} 41101 * @private 41102 */ 41103 goog.math.Long.TWO_PWR_24_DBL_ = 1 << 24; 41104 41105 41106 /** 41107 * @type {number} 41108 * @private 41109 */ 41110 goog.math.Long.TWO_PWR_32_DBL_ = 41111 goog.math.Long.TWO_PWR_16_DBL_ * goog.math.Long.TWO_PWR_16_DBL_; 41112 41113 41114 /** 41115 * @type {number} 41116 * @private 41117 */ 41118 goog.math.Long.TWO_PWR_31_DBL_ = 41119 goog.math.Long.TWO_PWR_32_DBL_ / 2; 41120 41121 41122 /** 41123 * @type {number} 41124 * @private 41125 */ 41126 goog.math.Long.TWO_PWR_48_DBL_ = 41127 goog.math.Long.TWO_PWR_32_DBL_ * goog.math.Long.TWO_PWR_16_DBL_; 41128 41129 41130 /** 41131 * @type {number} 41132 * @private 41133 */ 41134 goog.math.Long.TWO_PWR_64_DBL_ = 41135 goog.math.Long.TWO_PWR_32_DBL_ * goog.math.Long.TWO_PWR_32_DBL_; 41136 41137 41138 /** 41139 * @type {number} 41140 * @private 41141 */ 41142 goog.math.Long.TWO_PWR_63_DBL_ = 41143 goog.math.Long.TWO_PWR_64_DBL_ / 2; 41144 41145 41146 /** @type {!goog.math.Long} */ 41147 goog.math.Long.ZERO = goog.math.Long.fromInt(0); 41148 41149 41150 /** @type {!goog.math.Long} */ 41151 goog.math.Long.ONE = goog.math.Long.fromInt(1); 41152 41153 41154 /** @type {!goog.math.Long} */ 41155 goog.math.Long.NEG_ONE = goog.math.Long.fromInt(-1); 41156 41157 41158 /** @type {!goog.math.Long} */ 41159 goog.math.Long.MAX_VALUE = 41160 goog.math.Long.fromBits(0xFFFFFFFF | 0, 0x7FFFFFFF | 0); 41161 41162 41163 /** @type {!goog.math.Long} */ 41164 goog.math.Long.MIN_VALUE = goog.math.Long.fromBits(0, 0x80000000 | 0); 41165 41166 41167 /** 41168 * @type {!goog.math.Long} 41169 * @private 41170 */ 41171 goog.math.Long.TWO_PWR_24_ = goog.math.Long.fromInt(1 << 24); 41172 41173 41174 /** @return {number} The value, assuming it is a 32-bit integer. */ 41175 goog.math.Long.prototype.toInt = function() { 41176 return this.low_; 41177 }; 41178 41179 41180 /** @return {number} The closest floating-point representation to this value. */ 41181 goog.math.Long.prototype.toNumber = function() { 41182 return this.high_ * goog.math.Long.TWO_PWR_32_DBL_ + 41183 this.getLowBitsUnsigned(); 41184 }; 41185 41186 41187 /** 41188 * @param {number=} opt_radix The radix in which the text should be written. 41189 * @return {string} The textual representation of this value. 41190 */ 41191 goog.math.Long.prototype.toString = function(opt_radix) { 41192 var radix = opt_radix || 10; 41193 if (radix < 2 || 36 < radix) { 41194 throw Error('radix out of range: ' + radix); 41195 } 41196 41197 if (this.isZero()) { 41198 return '0'; 41199 } 41200 41201 if (this.isNegative()) { 41202 if (this.equals(goog.math.Long.MIN_VALUE)) { 41203 // We need to change the Long value before it can be negated, so we remove 41204 // the bottom-most digit in this base and then recurse to do the rest. 41205 var radixLong = goog.math.Long.fromNumber(radix); 41206 var div = this.div(radixLong); 41207 var rem = div.multiply(radixLong).subtract(this); 41208 return div.toString(radix) + rem.toInt().toString(radix); 41209 } else { 41210 return '-' + this.negate().toString(radix); 41211 } 41212 } 41213 41214 // Do several (6) digits each time through the loop, so as to 41215 // minimize the calls to the very expensive emulated div. 41216 var radixToPower = goog.math.Long.fromNumber(Math.pow(radix, 6)); 41217 41218 var rem = this; 41219 var result = ''; 41220 while (true) { 41221 var remDiv = rem.div(radixToPower); 41222 var intval = rem.subtract(remDiv.multiply(radixToPower)).toInt(); 41223 var digits = intval.toString(radix); 41224 41225 rem = remDiv; 41226 if (rem.isZero()) { 41227 return digits + result; 41228 } else { 41229 while (digits.length < 6) { 41230 digits = '0' + digits; 41231 } 41232 result = '' + digits + result; 41233 } 41234 } 41235 }; 41236 41237 41238 /** @return {number} The high 32-bits as a signed value. */ 41239 goog.math.Long.prototype.getHighBits = function() { 41240 return this.high_; 41241 }; 41242 41243 41244 /** @return {number} The low 32-bits as a signed value. */ 41245 goog.math.Long.prototype.getLowBits = function() { 41246 return this.low_; 41247 }; 41248 41249 41250 /** @return {number} The low 32-bits as an unsigned value. */ 41251 goog.math.Long.prototype.getLowBitsUnsigned = function() { 41252 return (this.low_ >= 0) ? 41253 this.low_ : goog.math.Long.TWO_PWR_32_DBL_ + this.low_; 41254 }; 41255 41256 41257 /** 41258 * @return {number} Returns the number of bits needed to represent the absolute 41259 * value of this Long. 41260 */ 41261 goog.math.Long.prototype.getNumBitsAbs = function() { 41262 if (this.isNegative()) { 41263 if (this.equals(goog.math.Long.MIN_VALUE)) { 41264 return 64; 41265 } else { 41266 return this.negate().getNumBitsAbs(); 41267 } 41268 } else { 41269 var val = this.high_ != 0 ? this.high_ : this.low_; 41270 for (var bit = 31; bit > 0; bit--) { 41271 if ((val & (1 << bit)) != 0) { 41272 break; 41273 } 41274 } 41275 return this.high_ != 0 ? bit + 33 : bit + 1; 41276 } 41277 }; 41278 41279 41280 /** @return {boolean} Whether this value is zero. */ 41281 goog.math.Long.prototype.isZero = function() { 41282 return this.high_ == 0 && this.low_ == 0; 41283 }; 41284 41285 41286 /** @return {boolean} Whether this value is negative. */ 41287 goog.math.Long.prototype.isNegative = function() { 41288 return this.high_ < 0; 41289 }; 41290 41291 41292 /** @return {boolean} Whether this value is odd. */ 41293 goog.math.Long.prototype.isOdd = function() { 41294 return (this.low_ & 1) == 1; 41295 }; 41296 41297 41298 /** 41299 * @param {goog.math.Long} other Long to compare against. 41300 * @return {boolean} Whether this Long equals the other. 41301 */ 41302 goog.math.Long.prototype.equals = function(other) { 41303 return (this.high_ == other.high_) && (this.low_ == other.low_); 41304 }; 41305 41306 41307 /** 41308 * @param {goog.math.Long} other Long to compare against. 41309 * @return {boolean} Whether this Long does not equal the other. 41310 */ 41311 goog.math.Long.prototype.notEquals = function(other) { 41312 return (this.high_ != other.high_) || (this.low_ != other.low_); 41313 }; 41314 41315 41316 /** 41317 * @param {goog.math.Long} other Long to compare against. 41318 * @return {boolean} Whether this Long is less than the other. 41319 */ 41320 goog.math.Long.prototype.lessThan = function(other) { 41321 return this.compare(other) < 0; 41322 }; 41323 41324 41325 /** 41326 * @param {goog.math.Long} other Long to compare against. 41327 * @return {boolean} Whether this Long is less than or equal to the other. 41328 */ 41329 goog.math.Long.prototype.lessThanOrEqual = function(other) { 41330 return this.compare(other) <= 0; 41331 }; 41332 41333 41334 /** 41335 * @param {goog.math.Long} other Long to compare against. 41336 * @return {boolean} Whether this Long is greater than the other. 41337 */ 41338 goog.math.Long.prototype.greaterThan = function(other) { 41339 return this.compare(other) > 0; 41340 }; 41341 41342 41343 /** 41344 * @param {goog.math.Long} other Long to compare against. 41345 * @return {boolean} Whether this Long is greater than or equal to the other. 41346 */ 41347 goog.math.Long.prototype.greaterThanOrEqual = function(other) { 41348 return this.compare(other) >= 0; 41349 }; 41350 41351 41352 /** 41353 * Compares this Long with the given one. 41354 * @param {goog.math.Long} other Long to compare against. 41355 * @return {number} 0 if they are the same, 1 if the this is greater, and -1 41356 * if the given one is greater. 41357 */ 41358 goog.math.Long.prototype.compare = function(other) { 41359 if (this.equals(other)) { 41360 return 0; 41361 } 41362 41363 var thisNeg = this.isNegative(); 41364 var otherNeg = other.isNegative(); 41365 if (thisNeg && !otherNeg) { 41366 return -1; 41367 } 41368 if (!thisNeg && otherNeg) { 41369 return 1; 41370 } 41371 41372 // at this point, the signs are the same, so subtraction will not overflow 41373 if (this.subtract(other).isNegative()) { 41374 return -1; 41375 } else { 41376 return 1; 41377 } 41378 }; 41379 41380 41381 /** @return {!goog.math.Long} The negation of this value. */ 41382 goog.math.Long.prototype.negate = function() { 41383 if (this.equals(goog.math.Long.MIN_VALUE)) { 41384 return goog.math.Long.MIN_VALUE; 41385 } else { 41386 return this.not().add(goog.math.Long.ONE); 41387 } 41388 }; 41389 41390 41391 /** 41392 * Returns the sum of this and the given Long. 41393 * @param {goog.math.Long} other Long to add to this one. 41394 * @return {!goog.math.Long} The sum of this and the given Long. 41395 */ 41396 goog.math.Long.prototype.add = function(other) { 41397 // Divide each number into 4 chunks of 16 bits, and then sum the chunks. 41398 41399 var a48 = this.high_ >>> 16; 41400 var a32 = this.high_ & 0xFFFF; 41401 var a16 = this.low_ >>> 16; 41402 var a00 = this.low_ & 0xFFFF; 41403 41404 var b48 = other.high_ >>> 16; 41405 var b32 = other.high_ & 0xFFFF; 41406 var b16 = other.low_ >>> 16; 41407 var b00 = other.low_ & 0xFFFF; 41408 41409 var c48 = 0, c32 = 0, c16 = 0, c00 = 0; 41410 c00 += a00 + b00; 41411 c16 += c00 >>> 16; 41412 c00 &= 0xFFFF; 41413 c16 += a16 + b16; 41414 c32 += c16 >>> 16; 41415 c16 &= 0xFFFF; 41416 c32 += a32 + b32; 41417 c48 += c32 >>> 16; 41418 c32 &= 0xFFFF; 41419 c48 += a48 + b48; 41420 c48 &= 0xFFFF; 41421 return goog.math.Long.fromBits((c16 << 16) | c00, (c48 << 16) | c32); 41422 }; 41423 41424 41425 /** 41426 * Returns the difference of this and the given Long. 41427 * @param {goog.math.Long} other Long to subtract from this. 41428 * @return {!goog.math.Long} The difference of this and the given Long. 41429 */ 41430 goog.math.Long.prototype.subtract = function(other) { 41431 return this.add(other.negate()); 41432 }; 41433 41434 41435 /** 41436 * Returns the product of this and the given long. 41437 * @param {goog.math.Long} other Long to multiply with this. 41438 * @return {!goog.math.Long} The product of this and the other. 41439 */ 41440 goog.math.Long.prototype.multiply = function(other) { 41441 if (this.isZero()) { 41442 return goog.math.Long.ZERO; 41443 } else if (other.isZero()) { 41444 return goog.math.Long.ZERO; 41445 } 41446 41447 if (this.equals(goog.math.Long.MIN_VALUE)) { 41448 return other.isOdd() ? goog.math.Long.MIN_VALUE : goog.math.Long.ZERO; 41449 } else if (other.equals(goog.math.Long.MIN_VALUE)) { 41450 return this.isOdd() ? goog.math.Long.MIN_VALUE : goog.math.Long.ZERO; 41451 } 41452 41453 if (this.isNegative()) { 41454 if (other.isNegative()) { 41455 return this.negate().multiply(other.negate()); 41456 } else { 41457 return this.negate().multiply(other).negate(); 41458 } 41459 } else if (other.isNegative()) { 41460 return this.multiply(other.negate()).negate(); 41461 } 41462 41463 // If both longs are small, use float multiplication 41464 if (this.lessThan(goog.math.Long.TWO_PWR_24_) && 41465 other.lessThan(goog.math.Long.TWO_PWR_24_)) { 41466 return goog.math.Long.fromNumber(this.toNumber() * other.toNumber()); 41467 } 41468 41469 // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products. 41470 // We can skip products that would overflow. 41471 41472 var a48 = this.high_ >>> 16; 41473 var a32 = this.high_ & 0xFFFF; 41474 var a16 = this.low_ >>> 16; 41475 var a00 = this.low_ & 0xFFFF; 41476 41477 var b48 = other.high_ >>> 16; 41478 var b32 = other.high_ & 0xFFFF; 41479 var b16 = other.low_ >>> 16; 41480 var b00 = other.low_ & 0xFFFF; 41481 41482 var c48 = 0, c32 = 0, c16 = 0, c00 = 0; 41483 c00 += a00 * b00; 41484 c16 += c00 >>> 16; 41485 c00 &= 0xFFFF; 41486 c16 += a16 * b00; 41487 c32 += c16 >>> 16; 41488 c16 &= 0xFFFF; 41489 c16 += a00 * b16; 41490 c32 += c16 >>> 16; 41491 c16 &= 0xFFFF; 41492 c32 += a32 * b00; 41493 c48 += c32 >>> 16; 41494 c32 &= 0xFFFF; 41495 c32 += a16 * b16; 41496 c48 += c32 >>> 16; 41497 c32 &= 0xFFFF; 41498 c32 += a00 * b32; 41499 c48 += c32 >>> 16; 41500 c32 &= 0xFFFF; 41501 c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48; 41502 c48 &= 0xFFFF; 41503 return goog.math.Long.fromBits((c16 << 16) | c00, (c48 << 16) | c32); 41504 }; 41505 41506 41507 /** 41508 * Returns this Long divided by the given one. 41509 * @param {goog.math.Long} other Long by which to divide. 41510 * @return {!goog.math.Long} This Long divided by the given one. 41511 */ 41512 goog.math.Long.prototype.div = function(other) { 41513 if (other.isZero()) { 41514 throw Error('division by zero'); 41515 } else if (this.isZero()) { 41516 return goog.math.Long.ZERO; 41517 } 41518 41519 if (this.equals(goog.math.Long.MIN_VALUE)) { 41520 if (other.equals(goog.math.Long.ONE) || 41521 other.equals(goog.math.Long.NEG_ONE)) { 41522 return goog.math.Long.MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE 41523 } else if (other.equals(goog.math.Long.MIN_VALUE)) { 41524 return goog.math.Long.ONE; 41525 } else { 41526 // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|. 41527 var halfThis = this.shiftRight(1); 41528 var approx = halfThis.div(other).shiftLeft(1); 41529 if (approx.equals(goog.math.Long.ZERO)) { 41530 return other.isNegative() ? goog.math.Long.ONE : goog.math.Long.NEG_ONE; 41531 } else { 41532 var rem = this.subtract(other.multiply(approx)); 41533 var result = approx.add(rem.div(other)); 41534 return result; 41535 } 41536 } 41537 } else if (other.equals(goog.math.Long.MIN_VALUE)) { 41538 return goog.math.Long.ZERO; 41539 } 41540 41541 if (this.isNegative()) { 41542 if (other.isNegative()) { 41543 return this.negate().div(other.negate()); 41544 } else { 41545 return this.negate().div(other).negate(); 41546 } 41547 } else if (other.isNegative()) { 41548 return this.div(other.negate()).negate(); 41549 } 41550 41551 // Repeat the following until the remainder is less than other: find a 41552 // floating-point that approximates remainder / other *from below*, add this 41553 // into the result, and subtract it from the remainder. It is critical that 41554 // the approximate value is less than or equal to the real value so that the 41555 // remainder never becomes negative. 41556 var res = goog.math.Long.ZERO; 41557 var rem = this; 41558 while (rem.greaterThanOrEqual(other)) { 41559 // Approximate the result of division. This may be a little greater or 41560 // smaller than the actual value. 41561 var approx = Math.max(1, Math.floor(rem.toNumber() / other.toNumber())); 41562 41563 // We will tweak the approximate result by changing it in the 48-th digit or 41564 // the smallest non-fractional digit, whichever is larger. 41565 var log2 = Math.ceil(Math.log(approx) / Math.LN2); 41566 var delta = (log2 <= 48) ? 1 : Math.pow(2, log2 - 48); 41567 41568 // Decrease the approximation until it is smaller than the remainder. Note 41569 // that if it is too large, the product overflows and is negative. 41570 var approxRes = goog.math.Long.fromNumber(approx); 41571 var approxRem = approxRes.multiply(other); 41572 while (approxRem.isNegative() || approxRem.greaterThan(rem)) { 41573 approx -= delta; 41574 approxRes = goog.math.Long.fromNumber(approx); 41575 approxRem = approxRes.multiply(other); 41576 } 41577 41578 // We know the answer can't be zero... and actually, zero would cause 41579 // infinite recursion since we would make no progress. 41580 if (approxRes.isZero()) { 41581 approxRes = goog.math.Long.ONE; 41582 } 41583 41584 res = res.add(approxRes); 41585 rem = rem.subtract(approxRem); 41586 } 41587 return res; 41588 }; 41589 41590 41591 /** 41592 * Returns this Long modulo the given one. 41593 * @param {goog.math.Long} other Long by which to mod. 41594 * @return {!goog.math.Long} This Long modulo the given one. 41595 */ 41596 goog.math.Long.prototype.modulo = function(other) { 41597 return this.subtract(this.div(other).multiply(other)); 41598 }; 41599 41600 41601 /** @return {!goog.math.Long} The bitwise-NOT of this value. */ 41602 goog.math.Long.prototype.not = function() { 41603 return goog.math.Long.fromBits(~this.low_, ~this.high_); 41604 }; 41605 41606 41607 /** 41608 * Returns the bitwise-AND of this Long and the given one. 41609 * @param {goog.math.Long} other The Long with which to AND. 41610 * @return {!goog.math.Long} The bitwise-AND of this and the other. 41611 */ 41612 goog.math.Long.prototype.and = function(other) { 41613 return goog.math.Long.fromBits(this.low_ & other.low_, 41614 this.high_ & other.high_); 41615 }; 41616 41617 41618 /** 41619 * Returns the bitwise-OR of this Long and the given one. 41620 * @param {goog.math.Long} other The Long with which to OR. 41621 * @return {!goog.math.Long} The bitwise-OR of this and the other. 41622 */ 41623 goog.math.Long.prototype.or = function(other) { 41624 return goog.math.Long.fromBits(this.low_ | other.low_, 41625 this.high_ | other.high_); 41626 }; 41627 41628 41629 /** 41630 * Returns the bitwise-XOR of this Long and the given one. 41631 * @param {goog.math.Long} other The Long with which to XOR. 41632 * @return {!goog.math.Long} The bitwise-XOR of this and the other. 41633 */ 41634 goog.math.Long.prototype.xor = function(other) { 41635 return goog.math.Long.fromBits(this.low_ ^ other.low_, 41636 this.high_ ^ other.high_); 41637 }; 41638 41639 41640 /** 41641 * Returns this Long with bits shifted to the left by the given amount. 41642 * @param {number} numBits The number of bits by which to shift. 41643 * @return {!goog.math.Long} This shifted to the left by the given amount. 41644 */ 41645 goog.math.Long.prototype.shiftLeft = function(numBits) { 41646 numBits &= 63; 41647 if (numBits == 0) { 41648 return this; 41649 } else { 41650 var low = this.low_; 41651 if (numBits < 32) { 41652 var high = this.high_; 41653 return goog.math.Long.fromBits( 41654 low << numBits, 41655 (high << numBits) | (low >>> (32 - numBits))); 41656 } else { 41657 return goog.math.Long.fromBits(0, low << (numBits - 32)); 41658 } 41659 } 41660 }; 41661 41662 41663 /** 41664 * Returns this Long with bits shifted to the right by the given amount. 41665 * @param {number} numBits The number of bits by which to shift. 41666 * @return {!goog.math.Long} This shifted to the right by the given amount. 41667 */ 41668 goog.math.Long.prototype.shiftRight = function(numBits) { 41669 numBits &= 63; 41670 if (numBits == 0) { 41671 return this; 41672 } else { 41673 var high = this.high_; 41674 if (numBits < 32) { 41675 var low = this.low_; 41676 return goog.math.Long.fromBits( 41677 (low >>> numBits) | (high << (32 - numBits)), 41678 high >> numBits); 41679 } else { 41680 return goog.math.Long.fromBits( 41681 high >> (numBits - 32), 41682 high >= 0 ? 0 : -1); 41683 } 41684 } 41685 }; 41686 41687 41688 /** 41689 * Returns this Long with bits shifted to the right by the given amount, with 41690 * the new top bits matching the current sign bit. 41691 * @param {number} numBits The number of bits by which to shift. 41692 * @return {!goog.math.Long} This shifted to the right by the given amount, with 41693 * zeros placed into the new leading bits. 41694 */ 41695 goog.math.Long.prototype.shiftRightUnsigned = function(numBits) { 41696 numBits &= 63; 41697 if (numBits == 0) { 41698 return this; 41699 } else { 41700 var high = this.high_; 41701 if (numBits < 32) { 41702 var low = this.low_; 41703 return goog.math.Long.fromBits( 41704 (low >>> numBits) | (high << (32 - numBits)), 41705 high >>> numBits); 41706 } else if (numBits == 32) { 41707 return goog.math.Long.fromBits(high, 0); 41708 } else { 41709 return goog.math.Long.fromBits(high >>> (numBits - 32), 0); 41710 } 41711 } 41712 }; 41713 41714 //======= begin jsbn ======= 41715 41716 var navigator = { appName: 'Modern Browser' }; // polyfill a little 41717 41718 // Copyright (c) 2005 Tom Wu 41719 // All Rights Reserved. 41720 // http://www-cs-students.stanford.edu/~tjw/jsbn/ 41721 41722 /* 41723 * Copyright (c) 2003-2005 Tom Wu 41724 * All Rights Reserved. 41725 * 41726 * Permission is hereby granted, free of charge, to any person obtaining 41727 * a copy of this software and associated documentation files (the 41728 * "Software"), to deal in the Software without restriction, including 41729 * without limitation the rights to use, copy, modify, merge, publish, 41730 * distribute, sublicense, and/or sell copies of the Software, and to 41731 * permit persons to whom the Software is furnished to do so, subject to 41732 * the following conditions: 41733 * 41734 * The above copyright notice and this permission notice shall be 41735 * included in all copies or substantial portions of the Software. 41736 * 41737 * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 41738 * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 41739 * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 41740 * 41741 * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL, 41742 * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER 41743 * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF 41744 * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT 41745 * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 41746 * 41747 * In addition, the following condition applies: 41748 * 41749 * All redistributions must retain an intact copy of this copyright notice 41750 * and disclaimer. 41751 */ 41752 41753 // Basic JavaScript BN library - subset useful for RSA encryption. 41754 41755 // Bits per digit 41756 var dbits; 41757 41758 // JavaScript engine analysis 41759 var canary = 0xdeadbeefcafe; 41760 var j_lm = ((canary&0xffffff)==0xefcafe); 41761 41762 // (public) Constructor 41763 function BigInteger(a,b,c) { 41764 if(a != null) 41765 if("number" == typeof a) this.fromNumber(a,b,c); 41766 else if(b == null && "string" != typeof a) this.fromString(a,256); 41767 else this.fromString(a,b); 41768 } 41769 41770 // return new, unset BigInteger 41771 function nbi() { return new BigInteger(null); } 41772 41773 // am: Compute w_j += (x*this_i), propagate carries, 41774 // c is initial carry, returns final carry. 41775 // c < 3*dvalue, x < 2*dvalue, this_i < dvalue 41776 // We need to select the fastest one that works in this environment. 41777 41778 // am1: use a single mult and divide to get the high bits, 41779 // max digit bits should be 26 because 41780 // max internal value = 2*dvalue^2-2*dvalue (< 2^53) 41781 function am1(i,x,w,j,c,n) { 41782 while(--n >= 0) { 41783 var v = x*this[i++]+w[j]+c; 41784 c = Math.floor(v/0x4000000); 41785 w[j++] = v&0x3ffffff; 41786 } 41787 return c; 41788 } 41789 // am2 avoids a big mult-and-extract completely. 41790 // Max digit bits should be <= 30 because we do bitwise ops 41791 // on values up to 2*hdvalue^2-hdvalue-1 (< 2^31) 41792 function am2(i,x,w,j,c,n) { 41793 var xl = x&0x7fff, xh = x>>15; 41794 while(--n >= 0) { 41795 var l = this[i]&0x7fff; 41796 var h = this[i++]>>15; 41797 var m = xh*l+h*xl; 41798 l = xl*l+((m&0x7fff)<<15)+w[j]+(c&0x3fffffff); 41799 c = (l>>>30)+(m>>>15)+xh*h+(c>>>30); 41800 w[j++] = l&0x3fffffff; 41801 } 41802 return c; 41803 } 41804 // Alternately, set max digit bits to 28 since some 41805 // browsers slow down when dealing with 32-bit numbers. 41806 function am3(i,x,w,j,c,n) { 41807 var xl = x&0x3fff, xh = x>>14; 41808 while(--n >= 0) { 41809 var l = this[i]&0x3fff; 41810 var h = this[i++]>>14; 41811 var m = xh*l+h*xl; 41812 l = xl*l+((m&0x3fff)<<14)+w[j]+c; 41813 c = (l>>28)+(m>>14)+xh*h; 41814 w[j++] = l&0xfffffff; 41815 } 41816 return c; 41817 } 41818 if(j_lm && (navigator.appName == "Microsoft Internet Explorer")) { 41819 BigInteger.prototype.am = am2; 41820 dbits = 30; 41821 } 41822 else if(j_lm && (navigator.appName != "Netscape")) { 41823 BigInteger.prototype.am = am1; 41824 dbits = 26; 41825 } 41826 else { // Mozilla/Netscape seems to prefer am3 41827 BigInteger.prototype.am = am3; 41828 dbits = 28; 41829 } 41830 41831 BigInteger.prototype.DB = dbits; 41832 BigInteger.prototype.DM = ((1<<dbits)-1); 41833 BigInteger.prototype.DV = (1<<dbits); 41834 41835 var BI_FP = 52; 41836 BigInteger.prototype.FV = Math.pow(2,BI_FP); 41837 BigInteger.prototype.F1 = BI_FP-dbits; 41838 BigInteger.prototype.F2 = 2*dbits-BI_FP; 41839 41840 // Digit conversions 41841 var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz"; 41842 var BI_RC = new Array(); 41843 var rr,vv; 41844 rr = "0".charCodeAt(0); 41845 for(vv = 0; vv <= 9; ++vv) BI_RC[rr++] = vv; 41846 rr = "a".charCodeAt(0); 41847 for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv; 41848 rr = "A".charCodeAt(0); 41849 for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv; 41850 41851 function int2char(n) { return BI_RM.charAt(n); } 41852 function intAt(s,i) { 41853 var c = BI_RC[s.charCodeAt(i)]; 41854 return (c==null)?-1:c; 41855 } 41856 41857 // (protected) copy this to r 41858 function bnpCopyTo(r) { 41859 for(var i = this.t-1; i >= 0; --i) r[i] = this[i]; 41860 r.t = this.t; 41861 r.s = this.s; 41862 } 41863 41864 // (protected) set from integer value x, -DV <= x < DV 41865 function bnpFromInt(x) { 41866 this.t = 1; 41867 this.s = (x<0)?-1:0; 41868 if(x > 0) this[0] = x; 41869 else if(x < -1) this[0] = x+DV; 41870 else this.t = 0; 41871 } 41872 41873 // return bigint initialized to value 41874 function nbv(i) { var r = nbi(); r.fromInt(i); return r; } 41875 41876 // (protected) set from string and radix 41877 function bnpFromString(s,b) { 41878 var k; 41879 if(b == 16) k = 4; 41880 else if(b == 8) k = 3; 41881 else if(b == 256) k = 8; // byte array 41882 else if(b == 2) k = 1; 41883 else if(b == 32) k = 5; 41884 else if(b == 4) k = 2; 41885 else { this.fromRadix(s,b); return; } 41886 this.t = 0; 41887 this.s = 0; 41888 var i = s.length, mi = false, sh = 0; 41889 while(--i >= 0) { 41890 var x = (k==8)?s[i]&0xff:intAt(s,i); 41891 if(x < 0) { 41892 if(s.charAt(i) == "-") mi = true; 41893 continue; 41894 } 41895 mi = false; 41896 if(sh == 0) 41897 this[this.t++] = x; 41898 else if(sh+k > this.DB) { 41899 this[this.t-1] |= (x&((1<<(this.DB-sh))-1))<<sh; 41900 this[this.t++] = (x>>(this.DB-sh)); 41901 } 41902 else 41903 this[this.t-1] |= x<<sh; 41904 sh += k; 41905 if(sh >= this.DB) sh -= this.DB; 41906 } 41907 if(k == 8 && (s[0]&0x80) != 0) { 41908 this.s = -1; 41909 if(sh > 0) this[this.t-1] |= ((1<<(this.DB-sh))-1)<<sh; 41910 } 41911 this.clamp(); 41912 if(mi) BigInteger.ZERO.subTo(this,this); 41913 } 41914 41915 // (protected) clamp off excess high words 41916 function bnpClamp() { 41917 var c = this.s&this.DM; 41918 while(this.t > 0 && this[this.t-1] == c) --this.t; 41919 } 41920 41921 // (public) return string representation in given radix 41922 function bnToString(b) { 41923 if(this.s < 0) return "-"+this.negate().toString(b); 41924 var k; 41925 if(b == 16) k = 4; 41926 else if(b == 8) k = 3; 41927 else if(b == 2) k = 1; 41928 else if(b == 32) k = 5; 41929 else if(b == 4) k = 2; 41930 else return this.toRadix(b); 41931 var km = (1<<k)-1, d, m = false, r = "", i = this.t; 41932 var p = this.DB-(i*this.DB)%k; 41933 if(i-- > 0) { 41934 if(p < this.DB && (d = this[i]>>p) > 0) { m = true; r = int2char(d); } 41935 while(i >= 0) { 41936 if(p < k) { 41937 d = (this[i]&((1<<p)-1))<<(k-p); 41938 d |= this[--i]>>(p+=this.DB-k); 41939 } 41940 else { 41941 d = (this[i]>>(p-=k))&km; 41942 if(p <= 0) { p += this.DB; --i; } 41943 } 41944 if(d > 0) m = true; 41945 if(m) r += int2char(d); 41946 } 41947 } 41948 return m?r:"0"; 41949 } 41950 41951 // (public) -this 41952 function bnNegate() { var r = nbi(); BigInteger.ZERO.subTo(this,r); return r; } 41953 41954 // (public) |this| 41955 function bnAbs() { return (this.s<0)?this.negate():this; } 41956 41957 // (public) return + if this > a, - if this < a, 0 if equal 41958 function bnCompareTo(a) { 41959 var r = this.s-a.s; 41960 if(r != 0) return r; 41961 var i = this.t; 41962 r = i-a.t; 41963 if(r != 0) return (this.s<0)?-r:r; 41964 while(--i >= 0) if((r=this[i]-a[i]) != 0) return r; 41965 return 0; 41966 } 41967 41968 // returns bit length of the integer x 41969 function nbits(x) { 41970 var r = 1, t; 41971 if((t=x>>>16) != 0) { x = t; r += 16; } 41972 if((t=x>>8) != 0) { x = t; r += 8; } 41973 if((t=x>>4) != 0) { x = t; r += 4; } 41974 if((t=x>>2) != 0) { x = t; r += 2; } 41975 if((t=x>>1) != 0) { x = t; r += 1; } 41976 return r; 41977 } 41978 41979 // (public) return the number of bits in "this" 41980 function bnBitLength() { 41981 if(this.t <= 0) return 0; 41982 return this.DB*(this.t-1)+nbits(this[this.t-1]^(this.s&this.DM)); 41983 } 41984 41985 // (protected) r = this << n*DB 41986 function bnpDLShiftTo(n,r) { 41987 var i; 41988 for(i = this.t-1; i >= 0; --i) r[i+n] = this[i]; 41989 for(i = n-1; i >= 0; --i) r[i] = 0; 41990 r.t = this.t+n; 41991 r.s = this.s; 41992 } 41993 41994 // (protected) r = this >> n*DB 41995 function bnpDRShiftTo(n,r) { 41996 for(var i = n; i < this.t; ++i) r[i-n] = this[i]; 41997 r.t = Math.max(this.t-n,0); 41998 r.s = this.s; 41999 } 42000 42001 // (protected) r = this << n 42002 function bnpLShiftTo(n,r) { 42003 var bs = n%this.DB; 42004 var cbs = this.DB-bs; 42005 var bm = (1<<cbs)-1; 42006 var ds = Math.floor(n/this.DB), c = (this.s<<bs)&this.DM, i; 42007 for(i = this.t-1; i >= 0; --i) { 42008 r[i+ds+1] = (this[i]>>cbs)|c; 42009 c = (this[i]&bm)<<bs; 42010 } 42011 for(i = ds-1; i >= 0; --i) r[i] = 0; 42012 r[ds] = c; 42013 r.t = this.t+ds+1; 42014 r.s = this.s; 42015 r.clamp(); 42016 } 42017 42018 // (protected) r = this >> n 42019 function bnpRShiftTo(n,r) { 42020 r.s = this.s; 42021 var ds = Math.floor(n/this.DB); 42022 if(ds >= this.t) { r.t = 0; return; } 42023 var bs = n%this.DB; 42024 var cbs = this.DB-bs; 42025 var bm = (1<<bs)-1; 42026 r[0] = this[ds]>>bs; 42027 for(var i = ds+1; i < this.t; ++i) { 42028 r[i-ds-1] |= (this[i]&bm)<<cbs; 42029 r[i-ds] = this[i]>>bs; 42030 } 42031 if(bs > 0) r[this.t-ds-1] |= (this.s&bm)<<cbs; 42032 r.t = this.t-ds; 42033 r.clamp(); 42034 } 42035 42036 // (protected) r = this - a 42037 function bnpSubTo(a,r) { 42038 var i = 0, c = 0, m = Math.min(a.t,this.t); 42039 while(i < m) { 42040 c += this[i]-a[i]; 42041 r[i++] = c&this.DM; 42042 c >>= this.DB; 42043 } 42044 if(a.t < this.t) { 42045 c -= a.s; 42046 while(i < this.t) { 42047 c += this[i]; 42048 r[i++] = c&this.DM; 42049 c >>= this.DB; 42050 } 42051 c += this.s; 42052 } 42053 else { 42054 c += this.s; 42055 while(i < a.t) { 42056 c -= a[i]; 42057 r[i++] = c&this.DM; 42058 c >>= this.DB; 42059 } 42060 c -= a.s; 42061 } 42062 r.s = (c<0)?-1:0; 42063 if(c < -1) r[i++] = this.DV+c; 42064 else if(c > 0) r[i++] = c; 42065 r.t = i; 42066 r.clamp(); 42067 } 42068 42069 // (protected) r = this * a, r != this,a (HAC 14.12) 42070 // "this" should be the larger one if appropriate. 42071 function bnpMultiplyTo(a,r) { 42072 var x = this.abs(), y = a.abs(); 42073 var i = x.t; 42074 r.t = i+y.t; 42075 while(--i >= 0) r[i] = 0; 42076 for(i = 0; i < y.t; ++i) r[i+x.t] = x.am(0,y[i],r,i,0,x.t); 42077 r.s = 0; 42078 r.clamp(); 42079 if(this.s != a.s) BigInteger.ZERO.subTo(r,r); 42080 } 42081 42082 // (protected) r = this^2, r != this (HAC 14.16) 42083 function bnpSquareTo(r) { 42084 var x = this.abs(); 42085 var i = r.t = 2*x.t; 42086 while(--i >= 0) r[i] = 0; 42087 for(i = 0; i < x.t-1; ++i) { 42088 var c = x.am(i,x[i],r,2*i,0,1); 42089 if((r[i+x.t]+=x.am(i+1,2*x[i],r,2*i+1,c,x.t-i-1)) >= x.DV) { 42090 r[i+x.t] -= x.DV; 42091 r[i+x.t+1] = 1; 42092 } 42093 } 42094 if(r.t > 0) r[r.t-1] += x.am(i,x[i],r,2*i,0,1); 42095 r.s = 0; 42096 r.clamp(); 42097 } 42098 42099 // (protected) divide this by m, quotient and remainder to q, r (HAC 14.20) 42100 // r != q, this != m. q or r may be null. 42101 function bnpDivRemTo(m,q,r) { 42102 var pm = m.abs(); 42103 if(pm.t <= 0) return; 42104 var pt = this.abs(); 42105 if(pt.t < pm.t) { 42106 if(q != null) q.fromInt(0); 42107 if(r != null) this.copyTo(r); 42108 return; 42109 } 42110 if(r == null) r = nbi(); 42111 var y = nbi(), ts = this.s, ms = m.s; 42112 var nsh = this.DB-nbits(pm[pm.t-1]); // normalize modulus 42113 if(nsh > 0) { pm.lShiftTo(nsh,y); pt.lShiftTo(nsh,r); } 42114 else { pm.copyTo(y); pt.copyTo(r); } 42115 var ys = y.t; 42116 var y0 = y[ys-1]; 42117 if(y0 == 0) return; 42118 var yt = y0*(1<<this.F1)+((ys>1)?y[ys-2]>>this.F2:0); 42119 var d1 = this.FV/yt, d2 = (1<<this.F1)/yt, e = 1<<this.F2; 42120 var i = r.t, j = i-ys, t = (q==null)?nbi():q; 42121 y.dlShiftTo(j,t); 42122 if(r.compareTo(t) >= 0) { 42123 r[r.t++] = 1; 42124 r.subTo(t,r); 42125 } 42126 BigInteger.ONE.dlShiftTo(ys,t); 42127 t.subTo(y,y); // "negative" y so we can replace sub with am later 42128 while(y.t < ys) y[y.t++] = 0; 42129 while(--j >= 0) { 42130 // Estimate quotient digit 42131 var qd = (r[--i]==y0)?this.DM:Math.floor(r[i]*d1+(r[i-1]+e)*d2); 42132 if((r[i]+=y.am(0,qd,r,j,0,ys)) < qd) { // Try it out 42133 y.dlShiftTo(j,t); 42134 r.subTo(t,r); 42135 while(r[i] < --qd) r.subTo(t,r); 42136 } 42137 } 42138 if(q != null) { 42139 r.drShiftTo(ys,q); 42140 if(ts != ms) BigInteger.ZERO.subTo(q,q); 42141 } 42142 r.t = ys; 42143 r.clamp(); 42144 if(nsh > 0) r.rShiftTo(nsh,r); // Denormalize remainder 42145 if(ts < 0) BigInteger.ZERO.subTo(r,r); 42146 } 42147 42148 // (public) this mod a 42149 function bnMod(a) { 42150 var r = nbi(); 42151 this.abs().divRemTo(a,null,r); 42152 if(this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r,r); 42153 return r; 42154 } 42155 42156 // Modular reduction using "classic" algorithm 42157 function Classic(m) { this.m = m; } 42158 function cConvert(x) { 42159 if(x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m); 42160 else return x; 42161 } 42162 function cRevert(x) { return x; } 42163 function cReduce(x) { x.divRemTo(this.m,null,x); } 42164 function cMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); } 42165 function cSqrTo(x,r) { x.squareTo(r); this.reduce(r); } 42166 42167 Classic.prototype.convert = cConvert; 42168 Classic.prototype.revert = cRevert; 42169 Classic.prototype.reduce = cReduce; 42170 Classic.prototype.mulTo = cMulTo; 42171 Classic.prototype.sqrTo = cSqrTo; 42172 42173 // (protected) return "-1/this % 2^DB"; useful for Mont. reduction 42174 // justification: 42175 // xy == 1 (mod m) 42176 // xy = 1+km 42177 // xy(2-xy) = (1+km)(1-km) 42178 // x[y(2-xy)] = 1-k^2m^2 42179 // x[y(2-xy)] == 1 (mod m^2) 42180 // if y is 1/x mod m, then y(2-xy) is 1/x mod m^2 42181 // should reduce x and y(2-xy) by m^2 at each step to keep size bounded. 42182 // JS multiply "overflows" differently from C/C++, so care is needed here. 42183 function bnpInvDigit() { 42184 if(this.t < 1) return 0; 42185 var x = this[0]; 42186 if((x&1) == 0) return 0; 42187 var y = x&3; // y == 1/x mod 2^2 42188 y = (y*(2-(x&0xf)*y))&0xf; // y == 1/x mod 2^4 42189 y = (y*(2-(x&0xff)*y))&0xff; // y == 1/x mod 2^8 42190 y = (y*(2-(((x&0xffff)*y)&0xffff)))&0xffff; // y == 1/x mod 2^16 42191 // last step - calculate inverse mod DV directly; 42192 // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints 42193 y = (y*(2-x*y%this.DV))%this.DV; // y == 1/x mod 2^dbits 42194 // we really want the negative inverse, and -DV < y < DV 42195 return (y>0)?this.DV-y:-y; 42196 } 42197 42198 // Montgomery reduction 42199 function Montgomery(m) { 42200 this.m = m; 42201 this.mp = m.invDigit(); 42202 this.mpl = this.mp&0x7fff; 42203 this.mph = this.mp>>15; 42204 this.um = (1<<(m.DB-15))-1; 42205 this.mt2 = 2*m.t; 42206 } 42207 42208 // xR mod m 42209 function montConvert(x) { 42210 var r = nbi(); 42211 x.abs().dlShiftTo(this.m.t,r); 42212 r.divRemTo(this.m,null,r); 42213 if(x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r,r); 42214 return r; 42215 } 42216 42217 // x/R mod m 42218 function montRevert(x) { 42219 var r = nbi(); 42220 x.copyTo(r); 42221 this.reduce(r); 42222 return r; 42223 } 42224 42225 // x = x/R mod m (HAC 14.32) 42226 function montReduce(x) { 42227 while(x.t <= this.mt2) // pad x so am has enough room later 42228 x[x.t++] = 0; 42229 for(var i = 0; i < this.m.t; ++i) { 42230 // faster way of calculating u0 = x[i]*mp mod DV 42231 var j = x[i]&0x7fff; 42232 var u0 = (j*this.mpl+(((j*this.mph+(x[i]>>15)*this.mpl)&this.um)<<15))&x.DM; 42233 // use am to combine the multiply-shift-add into one call 42234 j = i+this.m.t; 42235 x[j] += this.m.am(0,u0,x,i,0,this.m.t); 42236 // propagate carry 42237 while(x[j] >= x.DV) { x[j] -= x.DV; x[++j]++; } 42238 } 42239 x.clamp(); 42240 x.drShiftTo(this.m.t,x); 42241 if(x.compareTo(this.m) >= 0) x.subTo(this.m,x); 42242 } 42243 42244 // r = "x^2/R mod m"; x != r 42245 function montSqrTo(x,r) { x.squareTo(r); this.reduce(r); } 42246 42247 // r = "xy/R mod m"; x,y != r 42248 function montMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); } 42249 42250 Montgomery.prototype.convert = montConvert; 42251 Montgomery.prototype.revert = montRevert; 42252 Montgomery.prototype.reduce = montReduce; 42253 Montgomery.prototype.mulTo = montMulTo; 42254 Montgomery.prototype.sqrTo = montSqrTo; 42255 42256 // (protected) true iff this is even 42257 function bnpIsEven() { return ((this.t>0)?(this[0]&1):this.s) == 0; } 42258 42259 // (protected) this^e, e < 2^32, doing sqr and mul with "r" (HAC 14.79) 42260 function bnpExp(e,z) { 42261 if(e > 0xffffffff || e < 1) return BigInteger.ONE; 42262 var r = nbi(), r2 = nbi(), g = z.convert(this), i = nbits(e)-1; 42263 g.copyTo(r); 42264 while(--i >= 0) { 42265 z.sqrTo(r,r2); 42266 if((e&(1<<i)) > 0) z.mulTo(r2,g,r); 42267 else { var t = r; r = r2; r2 = t; } 42268 } 42269 return z.revert(r); 42270 } 42271 42272 // (public) this^e % m, 0 <= e < 2^32 42273 function bnModPowInt(e,m) { 42274 var z; 42275 if(e < 256 || m.isEven()) z = new Classic(m); else z = new Montgomery(m); 42276 return this.exp(e,z); 42277 } 42278 42279 // protected 42280 BigInteger.prototype.copyTo = bnpCopyTo; 42281 BigInteger.prototype.fromInt = bnpFromInt; 42282 BigInteger.prototype.fromString = bnpFromString; 42283 BigInteger.prototype.clamp = bnpClamp; 42284 BigInteger.prototype.dlShiftTo = bnpDLShiftTo; 42285 BigInteger.prototype.drShiftTo = bnpDRShiftTo; 42286 BigInteger.prototype.lShiftTo = bnpLShiftTo; 42287 BigInteger.prototype.rShiftTo = bnpRShiftTo; 42288 BigInteger.prototype.subTo = bnpSubTo; 42289 BigInteger.prototype.multiplyTo = bnpMultiplyTo; 42290 BigInteger.prototype.squareTo = bnpSquareTo; 42291 BigInteger.prototype.divRemTo = bnpDivRemTo; 42292 BigInteger.prototype.invDigit = bnpInvDigit; 42293 BigInteger.prototype.isEven = bnpIsEven; 42294 BigInteger.prototype.exp = bnpExp; 42295 42296 // public 42297 BigInteger.prototype.toString = bnToString; 42298 BigInteger.prototype.negate = bnNegate; 42299 BigInteger.prototype.abs = bnAbs; 42300 BigInteger.prototype.compareTo = bnCompareTo; 42301 BigInteger.prototype.bitLength = bnBitLength; 42302 BigInteger.prototype.mod = bnMod; 42303 BigInteger.prototype.modPowInt = bnModPowInt; 42304 42305 // "constants" 42306 BigInteger.ZERO = nbv(0); 42307 BigInteger.ONE = nbv(1); 42308 42309 // jsbn2 stuff 42310 42311 // (protected) convert from radix string 42312 function bnpFromRadix(s,b) { 42313 this.fromInt(0); 42314 if(b == null) b = 10; 42315 var cs = this.chunkSize(b); 42316 var d = Math.pow(b,cs), mi = false, j = 0, w = 0; 42317 for(var i = 0; i < s.length; ++i) { 42318 var x = intAt(s,i); 42319 if(x < 0) { 42320 if(s.charAt(i) == "-" && this.signum() == 0) mi = true; 42321 continue; 42322 } 42323 w = b*w+x; 42324 if(++j >= cs) { 42325 this.dMultiply(d); 42326 this.dAddOffset(w,0); 42327 j = 0; 42328 w = 0; 42329 } 42330 } 42331 if(j > 0) { 42332 this.dMultiply(Math.pow(b,j)); 42333 this.dAddOffset(w,0); 42334 } 42335 if(mi) BigInteger.ZERO.subTo(this,this); 42336 } 42337 42338 // (protected) return x s.t. r^x < DV 42339 function bnpChunkSize(r) { return Math.floor(Math.LN2*this.DB/Math.log(r)); } 42340 42341 // (public) 0 if this == 0, 1 if this > 0 42342 function bnSigNum() { 42343 if(this.s < 0) return -1; 42344 else if(this.t <= 0 || (this.t == 1 && this[0] <= 0)) return 0; 42345 else return 1; 42346 } 42347 42348 // (protected) this *= n, this >= 0, 1 < n < DV 42349 function bnpDMultiply(n) { 42350 this[this.t] = this.am(0,n-1,this,0,0,this.t); 42351 ++this.t; 42352 this.clamp(); 42353 } 42354 42355 // (protected) this += n << w words, this >= 0 42356 function bnpDAddOffset(n,w) { 42357 if(n == 0) return; 42358 while(this.t <= w) this[this.t++] = 0; 42359 this[w] += n; 42360 while(this[w] >= this.DV) { 42361 this[w] -= this.DV; 42362 if(++w >= this.t) this[this.t++] = 0; 42363 ++this[w]; 42364 } 42365 } 42366 42367 // (protected) convert to radix string 42368 function bnpToRadix(b) { 42369 if(b == null) b = 10; 42370 if(this.signum() == 0 || b < 2 || b > 36) return "0"; 42371 var cs = this.chunkSize(b); 42372 var a = Math.pow(b,cs); 42373 var d = nbv(a), y = nbi(), z = nbi(), r = ""; 42374 this.divRemTo(d,y,z); 42375 while(y.signum() > 0) { 42376 r = (a+z.intValue()).toString(b).substr(1) + r; 42377 y.divRemTo(d,y,z); 42378 } 42379 return z.intValue().toString(b) + r; 42380 } 42381 42382 // (public) return value as integer 42383 function bnIntValue() { 42384 if(this.s < 0) { 42385 if(this.t == 1) return this[0]-this.DV; 42386 else if(this.t == 0) return -1; 42387 } 42388 else if(this.t == 1) return this[0]; 42389 else if(this.t == 0) return 0; 42390 // assumes 16 < DB < 32 42391 return ((this[1]&((1<<(32-this.DB))-1))<<this.DB)|this[0]; 42392 } 42393 42394 // (protected) r = this + a 42395 function bnpAddTo(a,r) { 42396 var i = 0, c = 0, m = Math.min(a.t,this.t); 42397 while(i < m) { 42398 c += this[i]+a[i]; 42399 r[i++] = c&this.DM; 42400 c >>= this.DB; 42401 } 42402 if(a.t < this.t) { 42403 c += a.s; 42404 while(i < this.t) { 42405 c += this[i]; 42406 r[i++] = c&this.DM; 42407 c >>= this.DB; 42408 } 42409 c += this.s; 42410 } 42411 else { 42412 c += this.s; 42413 while(i < a.t) { 42414 c += a[i]; 42415 r[i++] = c&this.DM; 42416 c >>= this.DB; 42417 } 42418 c += a.s; 42419 } 42420 r.s = (c<0)?-1:0; 42421 if(c > 0) r[i++] = c; 42422 else if(c < -1) r[i++] = this.DV+c; 42423 r.t = i; 42424 r.clamp(); 42425 } 42426 42427 BigInteger.prototype.fromRadix = bnpFromRadix; 42428 BigInteger.prototype.chunkSize = bnpChunkSize; 42429 BigInteger.prototype.signum = bnSigNum; 42430 BigInteger.prototype.dMultiply = bnpDMultiply; 42431 BigInteger.prototype.dAddOffset = bnpDAddOffset; 42432 BigInteger.prototype.toRadix = bnpToRadix; 42433 BigInteger.prototype.intValue = bnIntValue; 42434 BigInteger.prototype.addTo = bnpAddTo; 42435 42436 //======= end jsbn ======= 42437 42438 // Emscripten wrapper 42439 var Wrapper = { 42440 abs: function(l, h) { 42441 var x = new goog.math.Long(l, h); 42442 var ret; 42443 if (x.isNegative()) { 42444 ret = x.negate(); 42445 } else { 42446 ret = x; 42447 } 42448 HEAP32[tempDoublePtr>>2] = ret.low_; 42449 HEAP32[tempDoublePtr+4>>2] = ret.high_; 42450 }, 42451 ensureTemps: function() { 42452 if (Wrapper.ensuredTemps) return; 42453 Wrapper.ensuredTemps = true; 42454 Wrapper.two32 = new BigInteger(); 42455 Wrapper.two32.fromString('4294967296', 10); 42456 Wrapper.two64 = new BigInteger(); 42457 Wrapper.two64.fromString('18446744073709551616', 10); 42458 Wrapper.temp1 = new BigInteger(); 42459 Wrapper.temp2 = new BigInteger(); 42460 }, 42461 lh2bignum: function(l, h) { 42462 var a = new BigInteger(); 42463 a.fromString(h.toString(), 10); 42464 var b = new BigInteger(); 42465 a.multiplyTo(Wrapper.two32, b); 42466 var c = new BigInteger(); 42467 c.fromString(l.toString(), 10); 42468 var d = new BigInteger(); 42469 c.addTo(b, d); 42470 return d; 42471 }, 42472 stringify: function(l, h, unsigned) { 42473 var ret = new goog.math.Long(l, h).toString(); 42474 if (unsigned && ret[0] == '-') { 42475 // unsign slowly using jsbn bignums 42476 Wrapper.ensureTemps(); 42477 var bignum = new BigInteger(); 42478 bignum.fromString(ret, 10); 42479 ret = new BigInteger(); 42480 Wrapper.two64.addTo(bignum, ret); 42481 ret = ret.toString(10); 42482 } 42483 return ret; 42484 }, 42485 fromString: function(str, base, min, max, unsigned) { 42486 Wrapper.ensureTemps(); 42487 var bignum = new BigInteger(); 42488 bignum.fromString(str, base); 42489 var bigmin = new BigInteger(); 42490 bigmin.fromString(min, 10); 42491 var bigmax = new BigInteger(); 42492 bigmax.fromString(max, 10); 42493 if (unsigned && bignum.compareTo(BigInteger.ZERO) < 0) { 42494 var temp = new BigInteger(); 42495 bignum.addTo(Wrapper.two64, temp); 42496 bignum = temp; 42497 } 42498 var error = false; 42499 if (bignum.compareTo(bigmin) < 0) { 42500 bignum = bigmin; 42501 error = true; 42502 } else if (bignum.compareTo(bigmax) > 0) { 42503 bignum = bigmax; 42504 error = true; 42505 } 42506 var ret = goog.math.Long.fromString(bignum.toString()); // min-max checks should have clamped this to a range goog.math.Long can handle well 42507 HEAP32[tempDoublePtr>>2] = ret.low_; 42508 HEAP32[tempDoublePtr+4>>2] = ret.high_; 42509 if (error) throw 'range error'; 42510 } 42511 }; 42512 return Wrapper; 42513 })(); 42514 42515 //======= end closure i64 code ======= 42516 42517 42518 42519 // === Auto-generated postamble setup entry stuff === 42520 42521 if (memoryInitializer) { 42522 if (ENVIRONMENT_IS_NODE || ENVIRONMENT_IS_SHELL) { 42523 var data = Module['readBinary'](memoryInitializer); 42524 HEAPU8.set(data, STATIC_BASE); 42525 } else { 42526 addRunDependency('memory initializer'); 42527 Browser.asyncLoad(memoryInitializer, function(data) { 42528 HEAPU8.set(data, STATIC_BASE); 42529 removeRunDependency('memory initializer'); 42530 }, function(data) { 42531 throw 'could not load memory initializer ' + memoryInitializer; 42532 }); 42533 } 42534 } 42535 42536 function ExitStatus(status) { 42537 this.name = "ExitStatus"; 42538 this.message = "Program terminated with exit(" + status + ")"; 42539 this.status = status; 42540 }; 42541 ExitStatus.prototype = new Error(); 42542 ExitStatus.prototype.constructor = ExitStatus; 42543 42544 var initialStackTop; 42545 var preloadStartTime = null; 42546 var calledMain = false; 42547 42548 dependenciesFulfilled = function runCaller() { 42549 // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false) 42550 if (!Module['calledRun'] && shouldRunNow) run(['binarytrees.lua'].concat(Module["arguments"])); 42551 if (!Module['calledRun']) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled 42552 } 42553 42554 Module['callMain'] = Module.callMain = function callMain(args) { 42555 assert(runDependencies == 0, 'cannot call main when async dependencies remain! (listen on __ATMAIN__)'); 42556 assert(__ATPRERUN__.length == 0, 'cannot call main when preRun functions remain to be called'); 42557 42558 args = args || []; 42559 42560 ensureInitRuntime(); 42561 42562 var argc = args.length+1; 42563 function pad() { 42564 for (var i = 0; i < 4-1; i++) { 42565 argv.push(0); 42566 } 42567 } 42568 var argv = [allocate(intArrayFromString("/bin/this.program"), 'i8', ALLOC_NORMAL) ]; 42569 pad(); 42570 for (var i = 0; i < argc-1; i = i + 1) { 42571 argv.push(allocate(intArrayFromString(args[i]), 'i8', ALLOC_NORMAL)); 42572 pad(); 42573 } 42574 argv.push(0); 42575 argv = allocate(argv, 'i32', ALLOC_NORMAL); 42576 42577 initialStackTop = STACKTOP; 42578 42579 try { 42580 42581 var ret = Module['_main'](argc, argv, 0); 42582 42583 42584 // if we're not running an evented main loop, it's time to exit 42585 if (!Module['noExitRuntime']) { 42586 exit(ret); 42587 } 42588 } 42589 catch(e) { 42590 if (e instanceof ExitStatus) { 42591 // exit() throws this once it's done to make sure execution 42592 // has been stopped completely 42593 return; 42594 } else if (e == 'SimulateInfiniteLoop') { 42595 // running an evented main loop, don't immediately exit 42596 Module['noExitRuntime'] = true; 42597 return; 42598 } else { 42599 if (e && typeof e === 'object' && e.stack) Module.printErr('exception thrown: ' + [e, e.stack]); 42600 throw e; 42601 } 42602 } finally { 42603 calledMain = true; 42604 } 42605 } 42606 42607 42608 42609 42610 function run(args) { 42611 args = args || Module['arguments']; 42612 42613 if (preloadStartTime === null) preloadStartTime = Date.now(); 42614 42615 if (runDependencies > 0) { 42616 Module.printErr('run() called, but dependencies remain, so not running'); 42617 return; 42618 } 42619 42620 preRun(); 42621 42622 if (runDependencies > 0) return; // a preRun added a dependency, run will be called later 42623 if (Module['calledRun']) return; // run may have just been called through dependencies being fulfilled just in this very frame 42624 42625 function doRun() { 42626 if (Module['calledRun']) return; // run may have just been called while the async setStatus time below was happening 42627 Module['calledRun'] = true; 42628 42629 ensureInitRuntime(); 42630 42631 preMain(); 42632 42633 if (ENVIRONMENT_IS_WEB && preloadStartTime !== null) { 42634 Module.printErr('pre-main prep time: ' + (Date.now() - preloadStartTime) + ' ms'); 42635 } 42636 42637 if (Module['_main'] && shouldRunNow) { 42638 Module['callMain'](args); 42639 } 42640 42641 postRun(); 42642 } 42643 42644 if (Module['setStatus']) { 42645 Module['setStatus']('Running...'); 42646 setTimeout(function() { 42647 setTimeout(function() { 42648 Module['setStatus'](''); 42649 }, 1); 42650 if (!ABORT) doRun(); 42651 }, 1); 42652 } else { 42653 doRun(); 42654 } 42655 } 42656 Module['run'] = Module.run = run; 42657 42658 function exit(status) { 42659 ABORT = true; 42660 EXITSTATUS = status; 42661 STACKTOP = initialStackTop; 42662 42663 // exit the runtime 42664 exitRuntime(); 42665 42666 // TODO We should handle this differently based on environment. 42667 // In the browser, the best we can do is throw an exception 42668 // to halt execution, but in node we could process.exit and 42669 // I'd imagine SM shell would have something equivalent. 42670 // This would let us set a proper exit status (which 42671 // would be great for checking test exit statuses). 42672 // https://github.com/kripken/emscripten/issues/1371 42673 42674 // throw an exception to halt the current execution 42675 throw new ExitStatus(status); 42676 } 42677 Module['exit'] = Module.exit = exit; 42678 42679 function abort(text) { 42680 if (text) { 42681 Module.print(text); 42682 Module.printErr(text); 42683 } 42684 42685 ABORT = true; 42686 EXITSTATUS = 1; 42687 42688 var extra = '\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.'; 42689 42690 throw 'abort() at ' + stackTrace() + extra; 42691 } 42692 Module['abort'] = Module.abort = abort; 42693 42694 // {{PRE_RUN_ADDITIONS}} 42695 42696 if (Module['preInit']) { 42697 if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']]; 42698 while (Module['preInit'].length > 0) { 42699 Module['preInit'].pop()(); 42700 } 42701 } 42702 42703 // shouldRunNow refers to calling main(), not run(). 42704 var shouldRunNow = true; 42705 if (Module['noInitialRun']) { 42706 shouldRunNow = false; 42707 } 42708 42709 42710 run(['binarytrees.lua'].concat(Module["arguments"])); 42711