function SUPPORTS _SHARED _MEMORY ( ) {
return typeof ( SharedArrayBuffer ) !== 'undefined' ;
}
// Support for growable heap + pthreads, where the buffer may change, so JS views
// must be updated.
function GROWABLE _HEAP _STORE _I8 ( ptr , value ) {
if ( wasmMemory . buffer != buffer ) {
updateGlobalBufferAndViews ( wasmMemory . buffer ) ;
}
HEAP8 [ ptr ] = value ;
}
function GROWABLE _HEAP _STORE _I16 ( ptr , value ) {
if ( wasmMemory . buffer != buffer ) {
updateGlobalBufferAndViews ( wasmMemory . buffer ) ;
}
HEAP16 [ ptr >> 1 ] = value ;
}
function GROWABLE _HEAP _STORE _I32 ( ptr , value ) {
if ( wasmMemory . buffer != buffer ) {
updateGlobalBufferAndViews ( wasmMemory . buffer ) ;
}
HEAP32 [ ptr >> 2 ] = value ;
}
function GROWABLE _HEAP _STORE _F32 ( ptr , value ) {
if ( wasmMemory . buffer != buffer ) {
updateGlobalBufferAndViews ( wasmMemory . buffer ) ;
}
HEAPF32 [ ptr >> 2 ] = value ;
}
function GROWABLE _HEAP _STORE _F64 ( ptr , value ) {
if ( wasmMemory . buffer != buffer ) {
updateGlobalBufferAndViews ( wasmMemory . buffer ) ;
}
HEAPF64 [ ptr >> 3 ] = value ;
}
function GROWABLE _HEAP _LOAD _I8 ( ptr ) {
if ( wasmMemory . buffer != buffer ) {
updateGlobalBufferAndViews ( wasmMemory . buffer ) ;
}
return HEAP8 [ ptr ] ;
}
function GROWABLE _HEAP _LOAD _U8 ( ptr ) {
if ( wasmMemory . buffer != buffer ) {
updateGlobalBufferAndViews ( wasmMemory . buffer ) ;
}
return HEAPU8 [ ptr ] ;
}
function GROWABLE _HEAP _LOAD _I16 ( ptr ) {
if ( wasmMemory . buffer != buffer ) {
updateGlobalBufferAndViews ( wasmMemory . buffer ) ;
}
return HEAP16 [ ptr >> 1 ] ;
}
function GROWABLE _HEAP _LOAD _U16 ( ptr ) {
if ( wasmMemory . buffer != buffer ) {
updateGlobalBufferAndViews ( wasmMemory . buffer ) ;
}
return HEAPU16 [ ptr >> 1 ] ;
}
function GROWABLE _HEAP _LOAD _I32 ( ptr ) {
if ( wasmMemory . buffer != buffer ) {
updateGlobalBufferAndViews ( wasmMemory . buffer ) ;
}
return HEAP32 [ ptr >> 2 ] ;
}
function GROWABLE _HEAP _LOAD _U32 ( ptr ) {
if ( wasmMemory . buffer != buffer ) {
updateGlobalBufferAndViews ( wasmMemory . buffer ) ;
}
return HEAPU32 [ ptr >> 2 ] ;
}
function GROWABLE _HEAP _LOAD _F32 ( ptr ) {
if ( wasmMemory . buffer != buffer ) {
updateGlobalBufferAndViews ( wasmMemory . buffer ) ;
}
return HEAPF32 [ ptr >> 2 ] ;
}
function GROWABLE _HEAP _LOAD _F64 ( ptr ) {
if ( wasmMemory . buffer != buffer ) {
updateGlobalBufferAndViews ( wasmMemory . buffer ) ;
}
return HEAPF64 [ ptr >> 3 ] ;
}
function GROWABLE _HEAP _VIEW _I8 ( start , end ) {
return new Int8Array ( wasmMemory . buffer , start , end - start ) ;
}
function GROWABLE _HEAP _VIEW _U8 ( start , end ) {
return new Uint8Array ( wasmMemory . buffer , start , end - start ) ;
}
function GROWABLE _HEAP _VIEW _I16 ( start , end ) {
return new Int16Array ( wasmMemory . buffer , start >> 1 , end - start >> 1 ) ;
}
function GROWABLE _HEAP _VIEW _U16 ( start , end ) {
return new Uint16Array ( wasmMemory . buffer , start >> 1 , end - start >> 1 ) ;
}
function GROWABLE _HEAP _VIEW _I32 ( start , end ) {
return new Int32Array ( wasmMemory . buffer , start >> 2 , end - start >> 2 ) ;
}
function GROWABLE _HEAP _VIEW _U32 ( start , end ) {
return new Uint32Array ( wasmMemory . buffer , start >> 2 , end - start >> 2 ) ;
}
function GROWABLE _HEAP _VIEW _F32 ( start , end ) {
return new Float32Array ( wasmMemory . buffer , start >> 2 , end - start >> 2 ) ;
}
function GROWABLE _HEAP _VIEW _F64 ( start , end ) {
return new Float64Array ( wasmMemory . buffer , start >> 3 , end - start >> 3 ) ;
}
var Module = typeof Module !== "undefined" ? Module : { } ;
var moduleOverrides = { } ;
var key ;
for ( key in Module ) {
if ( Module . hasOwnProperty ( key ) ) {
moduleOverrides [ key ] = Module [ key ] ;
}
}
var arguments _ = [ ] ;
var thisProgram = "./this.program" ;
var quit _ = ( function ( status , toThrow ) {
throw toThrow ;
} ) ;
var ENVIRONMENT _IS _WEB = false ;
var ENVIRONMENT _IS _WORKER = false ;
var ENVIRONMENT _IS _NODE = false ;
var ENVIRONMENT _HAS _NODE = false ;
var ENVIRONMENT _IS _SHELL = false ;
ENVIRONMENT _IS _WEB = typeof window === "object" ;
ENVIRONMENT _IS _WORKER = typeof importScripts === "function" ;
ENVIRONMENT _HAS _NODE = typeof process === "object" && typeof process . versions === "object" && typeof process . versions . node === "string" ;
ENVIRONMENT _IS _NODE = ENVIRONMENT _HAS _NODE && ! ENVIRONMENT _IS _WEB && ! ENVIRONMENT _IS _WORKER ;
ENVIRONMENT _IS _SHELL = ! ENVIRONMENT _IS _WEB && ! ENVIRONMENT _IS _NODE && ! ENVIRONMENT _IS _WORKER ;
if ( Module [ "ENVIRONMENT" ] ) {
throw new Error ( "Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -s ENVIRONMENT=web or -s ENVIRONMENT=node)" ) ;
}
var ENVIRONMENT _IS _PTHREAD = Module [ "ENVIRONMENT_IS_PTHREAD" ] || false ;
if ( ENVIRONMENT _IS _PTHREAD ) {
buffer = Module [ "buffer" ] ;
tempDoublePtr = Module [ "tempDoublePtr" ] ;
DYNAMIC _BASE = Module [ "DYNAMIC_BASE" ] ;
DYNAMICTOP _PTR = Module [ "DYNAMICTOP_PTR" ] ;
}
var _scriptDir = typeof document !== "undefined" && document . currentScript ? document . currentScript . src : undefined ;
if ( ENVIRONMENT _IS _NODE ) {
_scriptDir = _ _filename ;
}
var scriptDirectory = "" ;
function locateFile ( path ) {
if ( Module [ "locateFile" ] ) {
return Module [ "locateFile" ] ( path , scriptDirectory ) ;
}
return scriptDirectory + path ;
}
var read _ , readAsync , readBinary , setWindowTitle ;
var nodeFS ;
var nodePath ;
if ( ENVIRONMENT _IS _NODE ) {
scriptDirectory = _ _dirname + "/" ;
read _ = function shell _read ( filename , binary ) {
if ( ! nodeFS ) nodeFS = require ( "fs" ) ;
if ( ! nodePath ) nodePath = require ( "path" ) ;
filename = nodePath [ "normalize" ] ( filename ) ;
return nodeFS [ "readFileSync" ] ( filename , binary ? null : "utf8" ) ;
} ;
readBinary = function readBinary ( filename ) {
var ret = read _ ( filename , true ) ;
if ( ! ret . buffer ) {
ret = new Uint8Array ( ret ) ;
}
assert ( ret . buffer ) ;
return ret ;
} ;
if ( process [ "argv" ] . length > 1 ) {
thisProgram = process [ "argv" ] [ 1 ] . replace ( /\\/g , "/" ) ;
}
arguments _ = process [ "argv" ] . slice ( 2 ) ;
if ( typeof module !== "undefined" ) {
module [ "exports" ] = Module ;
}
process [ "on" ] ( "uncaughtException" , ( function ( ex ) {
if ( ! ( ex instanceof ExitStatus ) ) {
throw ex ;
}
} ) ) ;
process [ "on" ] ( "unhandledRejection" , abort ) ;
quit _ = ( function ( status ) {
process [ "exit" ] ( status ) ;
} ) ;
Module [ "inspect" ] = ( function ( ) {
return "[Emscripten Module object]" ;
} ) ;
var nodeWorkerThreads ;
try {
nodeWorkerThreads = require ( "worker_threads" ) ;
} catch ( e ) {
console . error ( 'The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?' ) ;
throw e ;
}
Worker = nodeWorkerThreads . Worker ;
} else if ( ENVIRONMENT _IS _SHELL ) {
if ( typeof read != "undefined" ) {
read _ = function shell _read ( f ) {
return read ( f ) ;
} ;
}
readBinary = function readBinary ( f ) {
var data ;
if ( typeof readbuffer === "function" ) {
return new Uint8Array ( readbuffer ( f ) ) ;
}
data = read ( f , "binary" ) ;
assert ( typeof data === "object" ) ;
return data ;
} ;
if ( typeof scriptArgs != "undefined" ) {
arguments _ = scriptArgs ;
} else if ( typeof arguments != "undefined" ) {
arguments _ = arguments ;
}
if ( typeof quit === "function" ) {
quit _ = ( function ( status ) {
quit ( status ) ;
} ) ;
}
if ( typeof print !== "undefined" ) {
if ( typeof console === "undefined" ) console = { } ;
console . log = print ;
console . warn = console . error = typeof printErr !== "undefined" ? printErr : print ;
}
} else if ( ENVIRONMENT _IS _WEB || ENVIRONMENT _IS _WORKER ) {
if ( ENVIRONMENT _IS _WORKER ) {
scriptDirectory = self . location . href ;
} else if ( document . currentScript ) {
scriptDirectory = document . currentScript . src ;
}
if ( scriptDirectory . indexOf ( "blob:" ) !== 0 ) {
scriptDirectory = scriptDirectory . substr ( 0 , scriptDirectory . lastIndexOf ( "/" ) + 1 ) ;
} else {
scriptDirectory = "" ;
}
if ( ENVIRONMENT _HAS _NODE ) {
read _ = function shell _read ( filename , binary ) {
if ( ! nodeFS ) nodeFS = require ( "fs" ) ;
if ( ! nodePath ) nodePath = require ( "path" ) ;
filename = nodePath [ "normalize" ] ( filename ) ;
return nodeFS [ "readFileSync" ] ( filename , binary ? null : "utf8" ) ;
} ;
readBinary = function readBinary ( filename ) {
var ret = read _ ( filename , true ) ;
if ( ! ret . buffer ) {
ret = new Uint8Array ( ret ) ;
}
assert ( ret . buffer ) ;
return ret ;
} ;
} else {
read _ = function shell _read ( url ) {
var xhr = new XMLHttpRequest ;
xhr . open ( "GET" , url , false ) ;
xhr . send ( null ) ;
return xhr . responseText ;
} ;
if ( ENVIRONMENT _IS _WORKER ) {
readBinary = function readBinary ( url ) {
var xhr = new XMLHttpRequest ;
xhr . open ( "GET" , url , false ) ;
xhr . responseType = "arraybuffer" ;
xhr . send ( null ) ;
return new Uint8Array ( xhr . response ) ;
} ;
}
readAsync = function readAsync ( url , onload , onerror ) {
var xhr = new XMLHttpRequest ;
xhr . open ( "GET" , url , true ) ;
xhr . responseType = "arraybuffer" ;
xhr . onload = function xhr _onload ( ) {
if ( xhr . status == 200 || xhr . status == 0 && xhr . response ) {
onload ( xhr . response ) ;
return ;
}
onerror ( ) ;
} ;
xhr . onerror = onerror ;
xhr . send ( null ) ;
} ;
}
setWindowTitle = ( function ( title ) {
document . title = title ;
} ) ;
} else {
throw new Error ( "environment detection error" ) ;
}
if ( ENVIRONMENT _HAS _NODE ) {
if ( typeof performance === "undefined" ) {
performance = require ( "perf_hooks" ) . performance ;
}
}
var out = Module [ "print" ] || console . log . bind ( console ) ;
var err = Module [ "printErr" ] || console . warn . bind ( console ) ;
for ( key in moduleOverrides ) {
if ( moduleOverrides . hasOwnProperty ( key ) ) {
Module [ key ] = moduleOverrides [ key ] ;
}
}
moduleOverrides = null ;
if ( Module [ "arguments" ] ) arguments _ = Module [ "arguments" ] ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "arguments" ) ) Object . defineProperty ( Module , "arguments" , {
configurable : true ,
get : ( function ( ) {
abort ( "Module.arguments has been replaced with plain arguments_" ) ;
} )
} ) ;
if ( Module [ "thisProgram" ] ) thisProgram = Module [ "thisProgram" ] ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "thisProgram" ) ) Object . defineProperty ( Module , "thisProgram" , {
configurable : true ,
get : ( function ( ) {
abort ( "Module.thisProgram has been replaced with plain thisProgram" ) ;
} )
} ) ;
if ( Module [ "quit" ] ) quit _ = Module [ "quit" ] ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "quit" ) ) Object . defineProperty ( Module , "quit" , {
configurable : true ,
get : ( function ( ) {
abort ( "Module.quit has been replaced with plain quit_" ) ;
} )
} ) ;
assert ( typeof Module [ "memoryInitializerPrefixURL" ] === "undefined" , "Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead" ) ;
assert ( typeof Module [ "pthreadMainPrefixURL" ] === "undefined" , "Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead" ) ;
assert ( typeof Module [ "cdInitializerPrefixURL" ] === "undefined" , "Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead" ) ;
assert ( typeof Module [ "filePackagePrefixURL" ] === "undefined" , "Module.filePackagePrefixURL option was removed, use Module.locateFile instead" ) ;
assert ( typeof Module [ "read" ] === "undefined" , "Module.read option was removed (modify read_ in JS)" ) ;
assert ( typeof Module [ "readAsync" ] === "undefined" , "Module.readAsync option was removed (modify readAsync in JS)" ) ;
assert ( typeof Module [ "readBinary" ] === "undefined" , "Module.readBinary option was removed (modify readBinary in JS)" ) ;
assert ( typeof Module [ "setWindowTitle" ] === "undefined" , "Module.setWindowTitle option was removed (modify setWindowTitle in JS)" ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "read" ) ) Object . defineProperty ( Module , "read" , {
configurable : true ,
get : ( function ( ) {
abort ( "Module.read has been replaced with plain read_" ) ;
} )
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "readAsync" ) ) Object . defineProperty ( Module , "readAsync" , {
configurable : true ,
get : ( function ( ) {
abort ( "Module.readAsync has been replaced with plain readAsync" ) ;
} )
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "readBinary" ) ) Object . defineProperty ( Module , "readBinary" , {
configurable : true ,
get : ( function ( ) {
abort ( "Module.readBinary has been replaced with plain readBinary" ) ;
} )
} ) ;
var IDBFS = "IDBFS is no longer included by default; build with -lidbfs.js" ;
var PROXYFS = "PROXYFS is no longer included by default; build with -lproxyfs.js" ;
var WORKERFS = "WORKERFS is no longer included by default; build with -lworkerfs.js" ;
assert ( ENVIRONMENT _IS _WEB || ENVIRONMENT _IS _WORKER || ENVIRONMENT _IS _NODE , "Pthreads do not work in this environment yet (need Web Workers, or an alternative to them)" ) ;
var STACK _ALIGN = 16 ;
stackSave = stackRestore = stackAlloc = ( function ( ) {
abort ( "cannot use the stack before compiled code is ready to run, and has provided stack access" ) ;
} ) ;
function staticAlloc ( size ) {
abort ( "staticAlloc is no longer available at runtime; instead, perform static allocations at compile time (using makeStaticAlloc)" ) ;
}
function dynamicAlloc ( size ) {
assert ( DYNAMICTOP _PTR ) ;
assert ( ! ENVIRONMENT _IS _PTHREAD ) ;
var ret = GROWABLE _HEAP _LOAD _I32 ( DYNAMICTOP _PTR | 0 ) ;
var end = ret + size + 15 & - 16 ;
if ( end > _emscripten _get _heap _size ( ) ) {
abort ( "failure to dynamicAlloc - memory growth etc. is not supported there, call malloc/sbrk directly" ) ;
}
GROWABLE _HEAP _STORE _I32 ( DYNAMICTOP _PTR | 0 , end ) ;
return ret ;
}
function alignMemory ( size , factor ) {
if ( ! factor ) factor = STACK _ALIGN ;
return Math . ceil ( size / factor ) * factor ;
}
function getNativeTypeSize ( type ) {
switch ( type ) {
case "i1" :
case "i8" :
return 1 ;
case "i16" :
return 2 ;
case "i32" :
return 4 ;
case "i64" :
return 8 ;
case "float" :
return 4 ;
case "double" :
return 8 ;
default :
{
if ( type [ type . length - 1 ] === "*" ) {
return 4 ;
} else if ( type [ 0 ] === "i" ) {
var bits = parseInt ( type . substr ( 1 ) ) ;
assert ( bits % 8 === 0 , "getNativeTypeSize invalid bits " + bits + ", type " + type ) ;
return bits / 8 ;
} else {
return 0 ;
}
}
}
}
function warnOnce ( text ) {
if ( ! warnOnce . shown ) warnOnce . shown = { } ;
if ( ! warnOnce . shown [ text ] ) {
warnOnce . shown [ text ] = 1 ;
err ( text ) ;
}
}
var asm2wasmImports = {
"f64-rem" : ( function ( x , y ) {
return x % y ;
} ) ,
"debugger" : ( function ( ) {
debugger ;
} )
} ;
function convertJsFunctionToWasm ( func , sig ) {
if ( typeof WebAssembly . Function === "function" ) {
var typeNames = {
"i" : "i32" ,
"j" : "i64" ,
"f" : "f32" ,
"d" : "f64"
} ;
var type = {
parameters : [ ] ,
results : sig [ 0 ] == "v" ? [ ] : [ typeNames [ sig [ 0 ] ] ]
} ;
for ( var i = 1 ; i < sig . length ; ++ i ) {
type . parameters . push ( typeNames [ sig [ i ] ] ) ;
}
return new WebAssembly . Function ( type , func ) ;
}
var typeSection = [ 1 , 0 , 1 , 96 ] ;
var sigRet = sig . slice ( 0 , 1 ) ;
var sigParam = sig . slice ( 1 ) ;
var typeCodes = {
"i" : 127 ,
"j" : 126 ,
"f" : 125 ,
"d" : 124
} ;
typeSection . push ( sigParam . length ) ;
for ( var i = 0 ; i < sigParam . length ; ++ i ) {
typeSection . push ( typeCodes [ sigParam [ i ] ] ) ;
}
if ( sigRet == "v" ) {
typeSection . push ( 0 ) ;
} else {
typeSection = typeSection . concat ( [ 1 , typeCodes [ sigRet ] ] ) ;
}
typeSection [ 1 ] = typeSection . length - 2 ;
var bytes = new Uint8Array ( [ 0 , 97 , 115 , 109 , 1 , 0 , 0 , 0 ] . concat ( typeSection , [ 2 , 7 , 1 , 1 , 101 , 1 , 102 , 0 , 0 , 7 , 5 , 1 , 1 , 102 , 0 , 0 ] ) ) ;
var module = new WebAssembly . Module ( bytes ) ;
var instance = new WebAssembly . Instance ( module , {
"e" : {
"f" : func
}
} ) ;
var wrappedFunc = instance . exports [ "f" ] ;
return wrappedFunc ;
}
function addFunctionWasm ( func , sig ) {
var table = wasmTable ;
var ret = table . length ;
try {
table . grow ( 1 ) ;
} catch ( err ) {
if ( ! err instanceof RangeError ) {
throw err ;
}
throw "Unable to grow wasm table. Use a higher value for RESERVED_FUNCTION_POINTERS or set ALLOW_TABLE_GROWTH." ;
}
try {
table . set ( ret , func ) ;
} catch ( err ) {
if ( ! err instanceof TypeError ) {
throw err ;
}
assert ( typeof sig !== "undefined" , "Missing signature argument to addFunction" ) ;
var wrapped = convertJsFunctionToWasm ( func , sig ) ;
table . set ( ret , wrapped ) ;
}
return ret ;
}
function removeFunctionWasm ( index ) { }
function addFunction ( func , sig ) {
assert ( typeof func !== "undefined" ) ;
return addFunctionWasm ( func , sig ) ;
}
function removeFunction ( index ) {
removeFunctionWasm ( index ) ;
}
var funcWrappers = { } ;
function getFuncWrapper ( func , sig ) {
if ( ! func ) return ;
assert ( sig ) ;
if ( ! funcWrappers [ sig ] ) {
funcWrappers [ sig ] = { } ;
}
var sigCache = funcWrappers [ sig ] ;
if ( ! sigCache [ func ] ) {
if ( sig . length === 1 ) {
sigCache [ func ] = function dynCall _wrapper ( ) {
return dynCall ( sig , func ) ;
} ;
} else if ( sig . length === 2 ) {
sigCache [ func ] = function dynCall _wrapper ( arg ) {
return dynCall ( sig , func , [ arg ] ) ;
} ;
} else {
sigCache [ func ] = function dynCall _wrapper ( ) {
return dynCall ( sig , func , Array . prototype . slice . call ( arguments ) ) ;
} ;
}
}
return sigCache [ func ] ;
}
function makeBigInt ( low , high , unsigned ) {
return unsigned ? + ( low >>> 0 ) + + ( high >>> 0 ) * 4294967296 : + ( low >>> 0 ) + + ( high | 0 ) * 4294967296 ;
}
function dynCall ( sig , ptr , args ) {
if ( args && args . length ) {
assert ( args . length == sig . length - 1 ) ;
assert ( "dynCall_" + sig in Module , "bad function pointer type - no table for sig '" + sig + "'" ) ;
return Module [ "dynCall_" + sig ] . apply ( null , [ ptr ] . concat ( args ) ) ;
} else {
assert ( sig . length == 1 ) ;
assert ( "dynCall_" + sig in Module , "bad function pointer type - no table for sig '" + sig + "'" ) ;
return Module [ "dynCall_" + sig ] . call ( null , ptr ) ;
}
}
var tempRet0 = 0 ;
var setTempRet0 = ( function ( value ) {
tempRet0 = value ;
} ) ;
var getTempRet0 = ( function ( ) {
return tempRet0 ;
} ) ;
function getCompilerSetting ( name ) {
throw "You must build with -s RETAIN_COMPILER_SETTINGS=1 for getCompilerSetting or emscripten_get_compiler_setting to work" ;
}
var Runtime = {
getTempRet0 : ( function ( ) {
abort ( 'getTempRet0() is now a top-level function, after removing the Runtime object. Remove "Runtime."' ) ;
} ) ,
staticAlloc : ( function ( ) {
abort ( 'staticAlloc() is now a top-level function, after removing the Runtime object. Remove "Runtime."' ) ;
} ) ,
stackAlloc : ( function ( ) {
abort ( 'stackAlloc() is now a top-level function, after removing the Runtime object. Remove "Runtime."' ) ;
} )
} ;
var GLOBAL _BASE = 1024 ;
function establishStackSpace ( base , max ) {
stackRestore ( max ) ;
}
var Atomics _load = Atomics . load ;
var Atomics _store = Atomics . store ;
var Atomics _compareExchange = Atomics . compareExchange ;
var wasmBinary ;
if ( Module [ "wasmBinary" ] ) wasmBinary = Module [ "wasmBinary" ] ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "wasmBinary" ) ) Object . defineProperty ( Module , "wasmBinary" , {
configurable : true ,
get : ( function ( ) {
abort ( "Module.wasmBinary has been replaced with plain wasmBinary" ) ;
} )
} ) ;
var noExitRuntime ;
if ( Module [ "noExitRuntime" ] ) noExitRuntime = Module [ "noExitRuntime" ] ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "noExitRuntime" ) ) Object . defineProperty ( Module , "noExitRuntime" , {
configurable : true ,
get : ( function ( ) {
abort ( "Module.noExitRuntime has been replaced with plain noExitRuntime" ) ;
} )
} ) ;
if ( typeof WebAssembly !== "object" ) {
abort ( "No WebAssembly support found. Build with -s WASM=0 to target JavaScript instead." ) ;
}
function setValue ( ptr , value , type , noSafe ) {
type = type || "i8" ;
if ( type . charAt ( type . length - 1 ) === "*" ) type = "i32" ;
switch ( type ) {
case "i1" :
GROWABLE _HEAP _STORE _I8 ( ptr >> 0 | 0 , value ) ;
break ;
case "i8" :
GROWABLE _HEAP _STORE _I8 ( ptr >> 0 | 0 , value ) ;
break ;
case "i16" :
GROWABLE _HEAP _STORE _I16 ( ptr | 0 , value ) ;
break ;
case "i32" :
GROWABLE _HEAP _STORE _I32 ( ptr | 0 , value ) ;
break ;
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 ) ] , GROWABLE _HEAP _STORE _I32 ( ptr | 0 , tempI64 [ 0 ] ) , GROWABLE _HEAP _STORE _I32 ( ptr + 4 | 0 , tempI64 [ 1 ] ) ;
break ;
case "float" :
GROWABLE _HEAP _STORE _F32 ( ptr | 0 , value ) ;
break ;
case "double" :
GROWABLE _HEAP _STORE _F64 ( ptr | 0 , value ) ;
break ;
default :
abort ( "invalid type for setValue: " + type ) ;
}
}
function getValue ( ptr , type , noSafe ) {
type = type || "i8" ;
if ( type . charAt ( type . length - 1 ) === "*" ) type = "i32" ;
switch ( type ) {
case "i1" :
return GROWABLE _HEAP _LOAD _I8 ( ptr >> 0 | 0 ) ;
case "i8" :
return GROWABLE _HEAP _LOAD _I8 ( ptr >> 0 | 0 ) ;
case "i16" :
return GROWABLE _HEAP _LOAD _I16 ( ptr | 0 ) ;
case "i32" :
return GROWABLE _HEAP _LOAD _I32 ( ptr | 0 ) ;
case "i64" :
return GROWABLE _HEAP _LOAD _I32 ( ptr | 0 ) ;
case "float" :
return GROWABLE _HEAP _LOAD _F32 ( ptr | 0 ) ;
case "double" :
return GROWABLE _HEAP _LOAD _F64 ( ptr | 0 ) ;
default :
abort ( "invalid type for getValue: " + type ) ;
}
return null ;
}
var wasmMemory ;
var wasmTable = new WebAssembly . Table ( {
"initial" : 64685 ,
"maximum" : 64685 + 0 ,
"element" : "anyfunc"
} ) ;
var wasmModule ;
var threadInfoStruct = 0 ;
var selfThreadId = 0 ;
var _ _performance _now _clock _drift = 0 ;
var tempDoublePtr = 0 ;
var ABORT = false ;
var EXITSTATUS = 0 ;
function assert ( condition , text ) {
if ( ! condition ) {
abort ( "Assertion failed: " + text ) ;
}
}
function getCFunc ( ident ) {
var func = Module [ "_" + ident ] ;
assert ( func , "Cannot call unknown function " + ident + ", make sure it is exported" ) ;
return func ;
}
function ccall ( ident , returnType , argTypes , args , opts ) {
var toC = {
"string" : ( function ( str ) {
var ret = 0 ;
if ( str !== null && str !== undefined && str !== 0 ) {
var len = ( str . length << 2 ) + 1 ;
ret = stackAlloc ( len ) ;
stringToUTF8 ( str , ret , len ) ;
}
return ret ;
} ) ,
"array" : ( function ( arr ) {
var ret = stackAlloc ( arr . length ) ;
writeArrayToMemory ( arr , ret ) ;
return ret ;
} )
} ;
function convertReturnValue ( ret ) {
if ( returnType === "string" ) return UTF8ToString ( ret ) ;
if ( returnType === "boolean" ) return Boolean ( ret ) ;
return ret ;
}
var func = getCFunc ( ident ) ;
var cArgs = [ ] ;
var stack = 0 ;
assert ( returnType !== "array" , 'Return type should not be "array".' ) ;
if ( args ) {
for ( var i = 0 ; i < args . length ; i ++ ) {
var converter = toC [ argTypes [ i ] ] ;
if ( converter ) {
if ( stack === 0 ) stack = stackSave ( ) ;
cArgs [ i ] = converter ( args [ i ] ) ;
} else {
cArgs [ i ] = args [ i ] ;
}
}
}
var ret = func . apply ( null , cArgs ) ;
ret = convertReturnValue ( ret ) ;
if ( stack !== 0 ) stackRestore ( stack ) ;
return ret ;
}
function cwrap ( ident , returnType , argTypes , opts ) {
return ( function ( ) {
return ccall ( ident , returnType , argTypes , arguments , opts ) ;
} ) ;
}
var ALLOC _NORMAL = 0 ;
var ALLOC _STACK = 1 ;
var ALLOC _DYNAMIC = 2 ;
var ALLOC _NONE = 3 ;
function allocate ( slab , types , allocator , ptr ) {
var zeroinit , size ;
if ( typeof slab === "number" ) {
zeroinit = true ;
size = slab ;
} else {
zeroinit = false ;
size = slab . length ;
}
var singleType = typeof types === "string" ? types : null ;
var ret ;
if ( allocator == ALLOC _NONE ) {
ret = ptr ;
} else {
ret = [ _malloc , stackAlloc , dynamicAlloc ] [ allocator ] ( Math . max ( size , singleType ? 1 : types . length ) ) ;
}
if ( zeroinit ) {
var stop ;
ptr = ret ;
assert ( ( ret & 3 ) == 0 ) ;
stop = ret + ( size & ~ 3 ) ;
for ( ; ptr < stop ; ptr += 4 ) {
GROWABLE _HEAP _STORE _I32 ( ptr | 0 , 0 ) ;
}
stop = ret + size ;
while ( ptr < stop ) {
GROWABLE _HEAP _STORE _I8 ( ptr ++ >> 0 | 0 , 0 ) ;
}
return ret ;
}
if ( singleType === "i8" ) {
if ( slab . subarray || slab . slice ) {
HEAPU8 . set ( slab , ret ) ;
} else {
HEAPU8 . set ( new Uint8Array ( slab ) , ret ) ;
}
return ret ;
}
var i = 0 , type , typeSize , previousType ;
while ( i < size ) {
var curr = slab [ i ] ;
type = singleType || types [ i ] ;
if ( type === 0 ) {
i ++ ;
continue ;
}
assert ( type , "Must know what type to store in allocate!" ) ;
if ( type == "i64" ) type = "i32" ;
setValue ( ret + i , curr , type ) ;
if ( previousType !== type ) {
typeSize = getNativeTypeSize ( type ) ;
previousType = type ;
}
i += typeSize ;
}
return ret ;
}
function getMemory ( size ) {
if ( ! runtimeInitialized ) return dynamicAlloc ( size ) ;
return _malloc ( size ) ;
}
function Pointer _stringify ( ptr , length ) {
abort ( "this function has been removed - you should use UTF8ToString(ptr, maxBytesToRead) instead!" ) ;
}
function AsciiToString ( ptr ) {
var str = "" ;
while ( 1 ) {
var ch = GROWABLE _HEAP _LOAD _U8 ( ptr ++ >> 0 | 0 ) ;
if ( ! ch ) return str ;
str += String . fromCharCode ( ch ) ;
}
}
function stringToAscii ( str , outPtr ) {
return writeAsciiToMemory ( str , outPtr , false ) ;
}
function UTF8ArrayToString ( u8Array , idx , maxBytesToRead ) {
var endIdx = idx + maxBytesToRead ;
var str = "" ;
while ( ! ( idx >= endIdx ) ) {
var u0 = u8Array [ idx ++ ] ;
if ( ! u0 ) return str ;
if ( ! ( u0 & 128 ) ) {
str += String . fromCharCode ( u0 ) ;
continue ;
}
var u1 = u8Array [ idx ++ ] & 63 ;
if ( ( u0 & 224 ) == 192 ) {
str += String . fromCharCode ( ( u0 & 31 ) << 6 | u1 ) ;
continue ;
}
var u2 = u8Array [ idx ++ ] & 63 ;
if ( ( u0 & 240 ) == 224 ) {
u0 = ( u0 & 15 ) << 12 | u1 << 6 | u2 ;
} else {
if ( ( u0 & 248 ) != 240 ) warnOnce ( "Invalid UTF-8 leading byte 0x" + u0 . toString ( 16 ) + " encountered when deserializing a UTF-8 string on the asm.js/wasm heap to a JS string!" ) ;
u0 = ( u0 & 7 ) << 18 | u1 << 12 | u2 << 6 | u8Array [ idx ++ ] & 63 ;
}
if ( u0 < 65536 ) {
str += String . fromCharCode ( u0 ) ;
} else {
var ch = u0 - 65536 ;
str += String . fromCharCode ( 55296 | ch >> 10 , 56320 | ch & 1023 ) ;
}
}
return str ;
}
function UTF8ToString ( ptr , maxBytesToRead ) {
return ptr ? UTF8ArrayToString ( HEAPU8 , ptr , maxBytesToRead ) : "" ;
}
function stringToUTF8Array ( str , outU8Array , outIdx , maxBytesToWrite ) {
if ( ! ( maxBytesToWrite > 0 ) ) return 0 ;
var startIdx = outIdx ;
var endIdx = outIdx + maxBytesToWrite - 1 ;
for ( var i = 0 ; i < str . length ; ++ i ) {
var u = str . charCodeAt ( i ) ;
if ( u >= 55296 && u <= 57343 ) {
var u1 = str . charCodeAt ( ++ i ) ;
u = 65536 + ( ( u & 1023 ) << 10 ) | u1 & 1023 ;
}
if ( u <= 127 ) {
if ( outIdx >= endIdx ) break ;
outU8Array [ outIdx ++ ] = u ;
} else if ( u <= 2047 ) {
if ( outIdx + 1 >= endIdx ) break ;
outU8Array [ outIdx ++ ] = 192 | u >> 6 ;
outU8Array [ outIdx ++ ] = 128 | u & 63 ;
} else if ( u <= 65535 ) {
if ( outIdx + 2 >= endIdx ) break ;
outU8Array [ outIdx ++ ] = 224 | u >> 12 ;
outU8Array [ outIdx ++ ] = 128 | u >> 6 & 63 ;
outU8Array [ outIdx ++ ] = 128 | u & 63 ;
} else {
if ( outIdx + 3 >= endIdx ) break ;
if ( u >= 2097152 ) warnOnce ( "Invalid Unicode code point 0x" + u . toString ( 16 ) + " encountered when serializing a JS string to an UTF-8 string on the asm.js/wasm heap! (Valid unicode code points should be in range 0-0x1FFFFF)." ) ;
outU8Array [ outIdx ++ ] = 240 | u >> 18 ;
outU8Array [ outIdx ++ ] = 128 | u >> 12 & 63 ;
outU8Array [ outIdx ++ ] = 128 | u >> 6 & 63 ;
outU8Array [ outIdx ++ ] = 128 | u & 63 ;
}
}
outU8Array [ outIdx ] = 0 ;
return outIdx - startIdx ;
}
function stringToUTF8 ( str , outPtr , maxBytesToWrite ) {
assert ( typeof maxBytesToWrite == "number" , "stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!" ) ;
return stringToUTF8Array ( str , HEAPU8 , outPtr , maxBytesToWrite ) ;
}
function lengthBytesUTF8 ( str ) {
var len = 0 ;
for ( var i = 0 ; i < str . length ; ++ i ) {
var u = str . charCodeAt ( i ) ;
if ( u >= 55296 && u <= 57343 ) u = 65536 + ( ( u & 1023 ) << 10 ) | str . charCodeAt ( ++ i ) & 1023 ;
if ( u <= 127 ) ++ len ; else if ( u <= 2047 ) len += 2 ; else if ( u <= 65535 ) len += 3 ; else len += 4 ;
}
return len ;
}
function UTF16ToString ( ptr ) {
assert ( ptr % 2 == 0 , "Pointer passed to UTF16ToString must be aligned to two bytes!" ) ;
var i = 0 ;
var str = "" ;
while ( 1 ) {
var codeUnit = GROWABLE _HEAP _LOAD _I16 ( ptr + i * 2 | 0 ) ;
if ( codeUnit == 0 ) return str ;
++ i ;
str += String . fromCharCode ( codeUnit ) ;
}
}
function stringToUTF16 ( str , outPtr , maxBytesToWrite ) {
assert ( outPtr % 2 == 0 , "Pointer passed to stringToUTF16 must be aligned to two bytes!" ) ;
assert ( typeof maxBytesToWrite == "number" , "stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!" ) ;
if ( maxBytesToWrite === undefined ) {
maxBytesToWrite = 2147483647 ;
}
if ( maxBytesToWrite < 2 ) return 0 ;
maxBytesToWrite -= 2 ;
var startPtr = outPtr ;
var numCharsToWrite = maxBytesToWrite < str . length * 2 ? maxBytesToWrite / 2 : str . length ;
for ( var i = 0 ; i < numCharsToWrite ; ++ i ) {
var codeUnit = str . charCodeAt ( i ) ;
GROWABLE _HEAP _STORE _I16 ( outPtr | 0 , codeUnit ) ;
outPtr += 2 ;
}
GROWABLE _HEAP _STORE _I16 ( outPtr | 0 , 0 ) ;
return outPtr - startPtr ;
}
function lengthBytesUTF16 ( str ) {
return str . length * 2 ;
}
function UTF32ToString ( ptr ) {
assert ( ptr % 4 == 0 , "Pointer passed to UTF32ToString must be aligned to four bytes!" ) ;
var i = 0 ;
var str = "" ;
while ( 1 ) {
var utf32 = GROWABLE _HEAP _LOAD _I32 ( ptr + i * 4 | 0 ) ;
if ( utf32 == 0 ) return str ;
++ i ;
if ( utf32 >= 65536 ) {
var ch = utf32 - 65536 ;
str += String . fromCharCode ( 55296 | ch >> 10 , 56320 | ch & 1023 ) ;
} else {
str += String . fromCharCode ( utf32 ) ;
}
}
}
function stringToUTF32 ( str , outPtr , maxBytesToWrite ) {
assert ( outPtr % 4 == 0 , "Pointer passed to stringToUTF32 must be aligned to four bytes!" ) ;
assert ( typeof maxBytesToWrite == "number" , "stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!" ) ;
if ( maxBytesToWrite === undefined ) {
maxBytesToWrite = 2147483647 ;
}
if ( maxBytesToWrite < 4 ) return 0 ;
var startPtr = outPtr ;
var endPtr = startPtr + maxBytesToWrite - 4 ;
for ( var i = 0 ; i < str . length ; ++ i ) {
var codeUnit = str . charCodeAt ( i ) ;
if ( codeUnit >= 55296 && codeUnit <= 57343 ) {
var trailSurrogate = str . charCodeAt ( ++ i ) ;
codeUnit = 65536 + ( ( codeUnit & 1023 ) << 10 ) | trailSurrogate & 1023 ;
}
GROWABLE _HEAP _STORE _I32 ( outPtr | 0 , codeUnit ) ;
outPtr += 4 ;
if ( outPtr + 4 > endPtr ) break ;
}
GROWABLE _HEAP _STORE _I32 ( outPtr | 0 , 0 ) ;
return outPtr - startPtr ;
}
function lengthBytesUTF32 ( str ) {
var len = 0 ;
for ( var i = 0 ; i < str . length ; ++ i ) {
var codeUnit = str . charCodeAt ( i ) ;
if ( codeUnit >= 55296 && codeUnit <= 57343 ) ++ i ;
len += 4 ;
}
return len ;
}
function allocateUTF8 ( str ) {
var size = lengthBytesUTF8 ( str ) + 1 ;
var ret = _malloc ( size ) ;
if ( ret ) stringToUTF8Array ( str , HEAP8 , ret , size ) ;
return ret ;
}
function allocateUTF8OnStack ( str ) {
var size = lengthBytesUTF8 ( str ) + 1 ;
var ret = stackAlloc ( size ) ;
stringToUTF8Array ( str , HEAP8 , ret , size ) ;
return ret ;
}
function writeStringToMemory ( string , buffer , dontAddNull ) {
warnOnce ( "writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!" ) ;
var lastChar , end ;
if ( dontAddNull ) {
end = buffer + lengthBytesUTF8 ( string ) ;
lastChar = GROWABLE _HEAP _LOAD _I8 ( end | 0 ) ;
}
stringToUTF8 ( string , buffer , Infinity ) ;
if ( dontAddNull ) GROWABLE _HEAP _STORE _I8 ( end | 0 , lastChar ) ;
}
function writeArrayToMemory ( array , buffer ) {
assert ( array . length >= 0 , "writeArrayToMemory array must have a length (should be an array or typed array)" ) ;
HEAP8 . set ( array , buffer ) ;
}
function writeAsciiToMemory ( str , buffer , dontAddNull ) {
for ( var i = 0 ; i < str . length ; ++ i ) {
assert ( str . charCodeAt ( i ) === str . charCodeAt ( i ) & 255 ) ;
GROWABLE _HEAP _STORE _I8 ( buffer ++ >> 0 | 0 , str . charCodeAt ( i ) ) ;
}
if ( ! dontAddNull ) GROWABLE _HEAP _STORE _I8 ( buffer >> 0 | 0 , 0 ) ;
}
var PAGE _SIZE = 16384 ;
var WASM _PAGE _SIZE = 65536 ;
var ASMJS _PAGE _SIZE = 16777216 ;
function alignUp ( x , multiple ) {
if ( x % multiple > 0 ) {
x += multiple - x % multiple ;
}
return x ;
}
var HEAP , buffer , HEAP8 , HEAPU8 , HEAP16 , HEAPU16 , HEAP32 , HEAPU32 , HEAPF32 , HEAPF64 ;
function updateGlobalBufferAndViews ( buf ) {
buffer = buf ;
Module [ "HEAP8" ] = HEAP8 = new Int8Array ( buf ) ;
Module [ "HEAP16" ] = HEAP16 = new Int16Array ( buf ) ;
Module [ "HEAP32" ] = HEAP32 = new Int32Array ( buf ) ;
Module [ "HEAPU8" ] = HEAPU8 = new Uint8Array ( buf ) ;
Module [ "HEAPU16" ] = HEAPU16 = new Uint16Array ( buf ) ;
Module [ "HEAPU32" ] = HEAPU32 = new Uint32Array ( buf ) ;
Module [ "HEAPF32" ] = HEAPF32 = new Float32Array ( buf ) ;
Module [ "HEAPF64" ] = HEAPF64 = new Float64Array ( buf ) ;
}
var STATIC _BASE = 1024 , STACK _BASE = 19131664 , STACKTOP = STACK _BASE , STACK _MAX = 13888784 , DYNAMIC _BASE = 19131664 , DYNAMICTOP _PTR = 13887824 ;
assert ( STACK _BASE % 16 === 0 , "stack must start aligned" ) ;
assert ( DYNAMIC _BASE % 16 === 0 , "heap must start aligned" ) ;
if ( ENVIRONMENT _IS _PTHREAD ) {
STACK _MAX = STACKTOP = STACK _MAX = 2147483647 ;
Module [ "applyStackValues" ] = ( function ( stackBase , stackTop , stackMax ) {
STACK _BASE = stackBase ;
STACKTOP = stackTop ;
STACK _MAX = stackMax ;
} ) ;
}
var TOTAL _STACK = 5242880 ;
if ( Module [ "TOTAL_STACK" ] ) assert ( TOTAL _STACK === Module [ "TOTAL_STACK" ] , "the stack size can no longer be determined at runtime" ) ;
var INITIAL _TOTAL _MEMORY = Module [ "TOTAL_MEMORY" ] || 268435456 ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "TOTAL_MEMORY" ) ) Object . defineProperty ( Module , "TOTAL_MEMORY" , {
configurable : true ,
get : ( function ( ) {
abort ( "Module.TOTAL_MEMORY has been replaced with plain INITIAL_TOTAL_MEMORY" ) ;
} )
} ) ;
assert ( INITIAL _TOTAL _MEMORY >= TOTAL _STACK , "TOTAL_MEMORY should be larger than TOTAL_STACK, was " + INITIAL _TOTAL _MEMORY + "! (TOTAL_STACK=" + TOTAL _STACK + ")" ) ;
assert ( typeof Int32Array !== "undefined" && typeof Float64Array !== "undefined" && Int32Array . prototype . subarray !== undefined && Int32Array . prototype . set !== undefined , "JS engine does not provide full typed array support" ) ;
if ( ENVIRONMENT _IS _PTHREAD ) {
wasmMemory = Module [ "wasmMemory" ] ;
buffer = Module [ "buffer" ] ;
} else {
if ( Module [ "wasmMemory" ] ) {
wasmMemory = Module [ "wasmMemory" ] ;
} else {
wasmMemory = new WebAssembly . Memory ( {
"initial" : INITIAL _TOTAL _MEMORY / WASM _PAGE _SIZE ,
"maximum" : 1073741824 / WASM _PAGE _SIZE ,
"shared" : true
} ) ;
if ( Object . prototype . toString . call ( wasmMemory . buffer ) !== '[object SharedArrayBuffer]' ) {
err ( "requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag" ) ;
if ( ENVIRONMENT _HAS _NODE ) {
console . log ( "(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)" ) ;
}
throw Error ( "bad memory" ) ;
}
}
}
if ( wasmMemory ) {
buffer = wasmMemory . buffer ;
}
INITIAL _TOTAL _MEMORY = buffer . byteLength ;
assert ( INITIAL _TOTAL _MEMORY % WASM _PAGE _SIZE === 0 ) ;
assert ( 65536 % WASM _PAGE _SIZE === 0 ) ;
updateGlobalBufferAndViews ( buffer ) ;
if ( ! ENVIRONMENT _IS _PTHREAD ) {
GROWABLE _HEAP _STORE _I32 ( DYNAMICTOP _PTR | 0 , DYNAMIC _BASE ) ;
}
function writeStackCookie ( ) {
assert ( ( STACK _MAX & 3 ) == 0 ) ;
GROWABLE _HEAP _STORE _I32 ( ( ( STACK _MAX >> 2 ) + 1 ) * 4 | 0 , 34821223 ) ;
GROWABLE _HEAP _STORE _I32 ( ( ( STACK _MAX >> 2 ) + 2 ) * 4 | 0 , 2310721022 ) ;
GROWABLE _HEAP _STORE _I32 ( 0 * 4 | 0 , 1668509029 ) ;
}
function checkStackCookie ( ) {
var cookie1 = GROWABLE _HEAP _LOAD _U32 ( ( ( STACK _MAX >> 2 ) + 1 ) * 4 | 0 ) ;
var cookie2 = GROWABLE _HEAP _LOAD _U32 ( ( ( STACK _MAX >> 2 ) + 2 ) * 4 | 0 ) ;
if ( cookie1 != 34821223 || cookie2 != 2310721022 ) {
abort ( "Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x02135467, but received 0x" + cookie2 . toString ( 16 ) + " " + cookie1 . toString ( 16 ) ) ;
}
if ( GROWABLE _HEAP _LOAD _I32 ( 0 * 4 | 0 ) !== 1668509029 ) abort ( "Runtime error: The application has corrupted its heap memory area (address zero)!" ) ;
}
function abortStackOverflow ( allocSize ) {
abort ( "Stack overflow! Attempted to allocate " + allocSize + " bytes on the stack, but stack has only " + ( STACK _MAX - stackSave ( ) + allocSize ) + " bytes available!" ) ;
}
( ( function ( ) {
var h16 = new Int16Array ( 1 ) ;
var h8 = new Int8Array ( h16 . buffer ) ;
h16 [ 0 ] = 25459 ;
if ( h8 [ 0 ] !== 115 || h8 [ 1 ] !== 99 ) throw "Runtime error: expected the system to be little-endian!" ;
} ) ) ( ) ;
function abortFnPtrError ( ptr , sig ) {
abort ( "Invalid function pointer " + ptr + " called with signature '" + sig + "'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this). Build with ASSERTIONS=2 for more info." ) ;
}
function callRuntimeCallbacks ( callbacks ) {
while ( callbacks . length > 0 ) {
var callback = callbacks . shift ( ) ;
if ( typeof callback == "function" ) {
callback ( ) ;
continue ;
}
var func = callback . func ;
if ( typeof func === "number" ) {
if ( callback . arg === undefined ) {
Module [ "dynCall_v" ] ( func ) ;
} else {
Module [ "dynCall_vi" ] ( func , callback . arg ) ;
}
} else {
func ( callback . arg === undefined ? null : callback . arg ) ;
}
}
}
var _ _ATPRERUN _ _ = [ ] ;
var _ _ATINIT _ _ = [ ] ;
var _ _ATMAIN _ _ = [ ] ;
var _ _ATEXIT _ _ = [ ] ;
var _ _ATPOSTRUN _ _ = [ ] ;
var runtimeInitialized = false ;
var runtimeExited = false ;
if ( ENVIRONMENT _IS _PTHREAD ) runtimeInitialized = true ;
function preRun ( ) {
if ( ENVIRONMENT _IS _PTHREAD ) return ;
if ( Module [ "preRun" ] ) {
if ( typeof Module [ "preRun" ] == "function" ) Module [ "preRun" ] = [ Module [ "preRun" ] ] ;
while ( Module [ "preRun" ] . length ) {
addOnPreRun ( Module [ "preRun" ] . shift ( ) ) ;
}
}
callRuntimeCallbacks ( _ _ATPRERUN _ _ ) ;
}
function initRuntime ( ) {
checkStackCookie ( ) ;
assert ( ! runtimeInitialized ) ;
runtimeInitialized = true ;
if ( ! Module [ "noFSInit" ] && ! FS . init . initialized ) FS . init ( ) ;
TTY . init ( ) ;
callRuntimeCallbacks ( _ _ATINIT _ _ ) ;
}
function preMain ( ) {
checkStackCookie ( ) ;
if ( ENVIRONMENT _IS _PTHREAD ) return ;
FS . ignorePermissions = false ;
callRuntimeCallbacks ( _ _ATMAIN _ _ ) ;
}
function exitRuntime ( ) {
checkStackCookie ( ) ;
if ( ENVIRONMENT _IS _PTHREAD ) return ;
runtimeExited = true ;
}
function postRun ( ) {
checkStackCookie ( ) ;
if ( ENVIRONMENT _IS _PTHREAD ) return ;
if ( Module [ "postRun" ] ) {
if ( typeof Module [ "postRun" ] == "function" ) Module [ "postRun" ] = [ Module [ "postRun" ] ] ;
while ( Module [ "postRun" ] . length ) {
addOnPostRun ( Module [ "postRun" ] . shift ( ) ) ;
}
}
callRuntimeCallbacks ( _ _ATPOSTRUN _ _ ) ;
}
function addOnPreRun ( cb ) {
_ _ATPRERUN _ _ . unshift ( cb ) ;
}
function addOnInit ( cb ) {
_ _ATINIT _ _ . unshift ( cb ) ;
}
function addOnPreMain ( cb ) {
_ _ATMAIN _ _ . unshift ( cb ) ;
}
function addOnExit ( cb ) { }
function addOnPostRun ( cb ) {
_ _ATPOSTRUN _ _ . unshift ( cb ) ;
}
function unSign ( value , bits , ignore ) {
if ( value >= 0 ) {
return value ;
}
return bits <= 32 ? 2 * Math . abs ( 1 << bits - 1 ) + value : Math . pow ( 2 , bits ) + value ;
}
function reSign ( value , bits , ignore ) {
if ( value <= 0 ) {
return value ;
}
var half = bits <= 32 ? Math . abs ( 1 << bits - 1 ) : Math . pow ( 2 , bits - 1 ) ;
if ( value >= half && ( bits <= 32 || value > half ) ) {
value = - 2 * half + value ;
}
return value ;
}
assert ( Math . imul , "This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill" ) ;
assert ( Math . fround , "This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill" ) ;
assert ( Math . clz32 , "This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill" ) ;
assert ( Math . trunc , "This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill" ) ;
var Math _abs = Math . abs ;
var Math _cos = Math . cos ;
var Math _sin = Math . sin ;
var Math _tan = Math . tan ;
var Math _acos = Math . acos ;
var Math _asin = Math . asin ;
var Math _atan = Math . atan ;
var Math _atan2 = Math . atan2 ;
var Math _exp = Math . exp ;
var Math _log = Math . log ;
var Math _sqrt = Math . sqrt ;
var Math _ceil = Math . ceil ;
var Math _floor = Math . floor ;
var Math _pow = Math . pow ;
var Math _imul = Math . imul ;
var Math _fround = Math . fround ;
var Math _round = Math . round ;
var Math _min = Math . min ;
var Math _max = Math . max ;
var Math _clz32 = Math . clz32 ;
var Math _trunc = Math . trunc ;
var runDependencies = 0 ;
var runDependencyWatcher = null ;
var dependenciesFulfilled = null ;
var runDependencyTracking = { } ;
function getUniqueRunDependency ( id ) {
var orig = id ;
while ( 1 ) {
if ( ! runDependencyTracking [ id ] ) return id ;
id = orig + Math . random ( ) ;
}
return id ;
}
function addRunDependency ( id ) {
assert ( ! ENVIRONMENT _IS _PTHREAD , "addRunDependency cannot be used in a pthread worker" ) ;
runDependencies ++ ;
if ( Module [ "monitorRunDependencies" ] ) {
Module [ "monitorRunDependencies" ] ( runDependencies ) ;
}
if ( id ) {
assert ( ! runDependencyTracking [ id ] ) ;
runDependencyTracking [ id ] = 1 ;
if ( runDependencyWatcher === null && typeof setInterval !== "undefined" ) {
runDependencyWatcher = setInterval ( ( function ( ) {
if ( ABORT ) {
clearInterval ( runDependencyWatcher ) ;
runDependencyWatcher = null ;
return ;
}
var shown = false ;
for ( var dep in runDependencyTracking ) {
if ( ! shown ) {
shown = true ;
err ( "still waiting on run dependencies:" ) ;
}
err ( "dependency: " + dep ) ;
}
if ( shown ) {
err ( "(end of list)" ) ;
}
} ) , 1e4 ) ;
}
} else {
err ( "warning: run dependency added without ID" ) ;
}
}
function removeRunDependency ( id ) {
runDependencies -- ;
if ( Module [ "monitorRunDependencies" ] ) {
Module [ "monitorRunDependencies" ] ( runDependencies ) ;
}
if ( id ) {
assert ( runDependencyTracking [ id ] ) ;
delete runDependencyTracking [ id ] ;
} else {
err ( "warning: run dependency removed without ID" ) ;
}
if ( runDependencies == 0 ) {
if ( runDependencyWatcher !== null ) {
clearInterval ( runDependencyWatcher ) ;
runDependencyWatcher = null ;
}
if ( dependenciesFulfilled ) {
var callback = dependenciesFulfilled ;
dependenciesFulfilled = null ;
callback ( ) ;
}
}
}
Module [ "preloadedImages" ] = { } ;
Module [ "preloadedAudios" ] = { } ;
function abort ( what ) {
if ( Module [ "onAbort" ] ) {
Module [ "onAbort" ] ( what ) ;
}
if ( ENVIRONMENT _IS _PTHREAD ) console . error ( "Pthread aborting at " + ( new Error ) . stack ) ;
what += "" ;
out ( what ) ;
err ( what ) ;
ABORT = true ;
EXITSTATUS = 1 ;
var output = "abort(" + what + ") at " + stackTrace ( ) ;
what = output ;
throw new WebAssembly . RuntimeError ( what ) ;
}
var memoryInitializer = null ;
var dataURIPrefix = "data:application/octet-stream;base64," ;
function isDataURI ( filename ) {
return String . prototype . startsWith ? filename . startsWith ( dataURIPrefix ) : filename . indexOf ( dataURIPrefix ) === 0 ;
}
var wasmBinaryFile = "x2t.wasm" ;
if ( ! isDataURI ( wasmBinaryFile ) ) {
wasmBinaryFile = locateFile ( wasmBinaryFile ) ;
}
function getBinary ( ) {
try {
if ( wasmBinary ) {
return new Uint8Array ( wasmBinary ) ;
}
if ( readBinary ) {
return readBinary ( wasmBinaryFile ) ;
} else {
throw "both async and sync fetching of the wasm failed" ;
}
} catch ( err ) {
abort ( err ) ;
}
}
function getBinaryPromise ( ) {
if ( ! wasmBinary && ( ENVIRONMENT _IS _WEB || ENVIRONMENT _IS _WORKER ) && typeof fetch === "function" ) {
return fetch ( wasmBinaryFile , {
credentials : "same-origin"
} ) . then ( ( function ( response ) {
if ( ! response [ "ok" ] ) {
throw "failed to load wasm binary file at '" + wasmBinaryFile + "'" ;
}
return response [ "arrayBuffer" ] ( ) ;
} ) ) . catch ( ( function ( ) {
return getBinary ( ) ;
} ) ) ;
}
return new Promise ( ( function ( resolve , reject ) {
resolve ( getBinary ( ) ) ;
} ) ) ;
}
function createWasm ( ) {
var info = {
"env" : asmLibraryArg ,
"wasi_unstable" : asmLibraryArg
} ;
function receiveInstance ( instance , module ) {
var exports = instance . exports ;
Module [ "asm" ] = exports ;
wasmModule = module ;
if ( ! ENVIRONMENT _IS _PTHREAD ) removeRunDependency ( "wasm-instantiate" ) ;
}
if ( ! ENVIRONMENT _IS _PTHREAD ) {
addRunDependency ( "wasm-instantiate" ) ;
}
var trueModule = Module ;
function receiveInstantiatedSource ( output ) {
assert ( Module === trueModule , "the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?" ) ;
trueModule = null ;
receiveInstance ( output [ "instance" ] , output [ "module" ] ) ;
}
function instantiateArrayBuffer ( receiver ) {
return getBinaryPromise ( ) . then ( ( function ( binary ) {
return WebAssembly . instantiate ( binary , info ) ;
} ) ) . then ( receiver , ( function ( reason ) {
err ( "failed to asynchronously prepare wasm: " + reason ) ;
abort ( reason ) ;
} ) ) ;
}
function instantiateAsync ( ) {
if ( ! wasmBinary && typeof WebAssembly . instantiateStreaming === "function" && ! isDataURI ( wasmBinaryFile ) && typeof fetch === "function" ) {
fetch ( wasmBinaryFile , {
credentials : "same-origin"
} ) . then ( ( function ( response ) {
var result = WebAssembly . instantiateStreaming ( response , info ) ;
return result . then ( receiveInstantiatedSource , ( function ( reason ) {
err ( "wasm streaming compile failed: " + reason ) ;
err ( "falling back to ArrayBuffer instantiation" ) ;
instantiateArrayBuffer ( receiveInstantiatedSource ) ;
} ) ) ;
} ) ) ;
} else {
return instantiateArrayBuffer ( receiveInstantiatedSource ) ;
}
}
if ( Module [ "instantiateWasm" ] ) {
try {
var exports = Module [ "instantiateWasm" ] ( info , receiveInstance ) ;
return exports ;
} catch ( e ) {
err ( "Module.instantiateWasm callback failed with error: " + e ) ;
return false ;
}
}
instantiateAsync ( ) ;
return { } ;
}
var tempDouble ;
var tempI64 ;
var ASM _CONSTS = {
55680 : ( function ( ) {
FS . mkdir ( "/working" ) ;
FS . mount ( NODEFS , {
root : "."
} , "/working" ) ;
} ) ,
11958700 : ( function ( ) {
throw "Canceled!" ;
} ) ,
11958839 : ( function ( ) {
postMessage ( {
cmd : "processQueuedMainThreadWork"
} ) ;
} ) ,
11958890 : ( function ( $0 ) {
if ( ! ENVIRONMENT _IS _PTHREAD ) {
if ( ! PThread . pthreads [ $0 ] || ! PThread . pthreads [ $0 ] . worker ) {
return 0 ;
}
PThread . pthreads [ $0 ] . worker . postMessage ( {
cmd : "processThreadQueue"
} ) ;
} else {
postMessage ( {
targetThread : $0 ,
cmd : "processThreadQueue"
} ) ;
}
return 1 ;
} ) ,
11959258 : ( function ( ) {
return ! ! Module [ "canvas" ] ;
} ) ,
11959294 : ( function ( ) {
noExitRuntime = true ;
} )
} ;
var _readAsmConstArgsArray = [ ] ;
function readAsmConstArgs ( sigPtr , buf ) {
var args = _readAsmConstArgsArray ;
args . length = 0 ;
while ( 1 ) {
var ch = GROWABLE _HEAP _LOAD _U8 ( sigPtr ++ | 0 ) ;
if ( ! ch ) return args ;
if ( ch === "d" . charCodeAt ( 0 ) || ch === "f" . charCodeAt ( 0 ) ) {
buf = alignMemory ( buf , 8 ) ;
args . push ( GROWABLE _HEAP _LOAD _F64 ( buf | 0 ) ) ;
buf += 8 ;
} else if ( ch === "i" . charCodeAt ( 0 ) ) {
buf = alignMemory ( buf , 4 ) ;
args . push ( GROWABLE _HEAP _LOAD _I32 ( buf | 0 ) ) ;
buf += 4 ;
} else abort ( "unexpected char in asm const signature " + ch ) ;
}
}
function _emscripten _asm _const _iii ( code , sigPtr , argbuf ) {
var args = readAsmConstArgs ( sigPtr , argbuf ) ;
return ASM _CONSTS [ code ] . apply ( null , args ) ;
}
function initPthreadsJS ( ) {
PThread . initRuntime ( ) ;
}
if ( ! ENVIRONMENT _IS _PTHREAD ) _ _ATINIT _ _ . push ( {
func : ( function ( ) {
_ _ _wasm _call _ctors ( ) ;
} )
} ) ;
function demangle ( func ) {
warnOnce ( "warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling" ) ;
return func ;
}
Module [ "demangle" ] = demangle ;
function demangleAll ( text ) {
var regex = /\b_Z[\w\d_]+/g ;
return text . replace ( regex , ( function ( x ) {
var y = demangle ( x ) ;
return x === y ? x : y + " [" + x + "]" ;
} ) ) ;
}
Module [ "demangleAll" ] = demangleAll ;
function jsStackTrace ( ) {
var err = new Error ;
if ( ! err . stack ) {
try {
throw new Error ( 0 ) ;
} catch ( e ) {
err = e ;
}
if ( ! err . stack ) {
return "(no stack trace available)" ;
}
}
return err . stack . toString ( ) ;
}
Module [ "jsStackTrace" ] = jsStackTrace ;
function stackTrace ( ) {
var js = jsStackTrace ( ) ;
if ( Module [ "extraStackTrace" ] ) js += "\n" + Module [ "extraStackTrace" ] ( ) ;
return demangleAll ( js ) ;
}
Module [ "stackTrace" ] = stackTrace ;
function _ _ZN23CFileDownloader _privateC1ENSt3 _ _212basic _stringIwNS0 _11char _traitsIwEENS0 _9allocatorIwEEEEb ( ) {
err ( "missing function: _ZN23CFileDownloader_privateC1ENSt3__212basic_stringIwNS0_11char_traitsIwEENS0_9allocatorIwEEEEb" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN23CFileDownloader_privateC1ENSt3__212basic_stringIwNS0_11char_traitsIwEENS0_9allocatorIwEEEEb" ] = _ _ZN23CFileDownloader _privateC1ENSt3 _ _212basic _stringIwNS0 _11char _traitsIwEENS0 _9allocatorIwEEEEb ;
function _ _ZN2v810Uint8Array3NewENS _5LocalINS _11ArrayBufferEEEmm ( ) {
err ( "missing function: _ZN2v810Uint8Array3NewENS_5LocalINS_11ArrayBufferEEEmm" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v810Uint8Array3NewENS_5LocalINS_11ArrayBufferEEEmm" ] = _ _ZN2v810Uint8Array3NewENS _5LocalINS _11ArrayBufferEEEmm ;
function _ _ZN2v811ArrayBuffer11ExternalizeEv ( ) {
err ( "missing function: _ZN2v811ArrayBuffer11ExternalizeEv" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v811ArrayBuffer11ExternalizeEv" ] = _ _ZN2v811ArrayBuffer11ExternalizeEv ;
function _ _ZN2v811ArrayBuffer3NewEPNS _7IsolateEPvmNS _23ArrayBufferCreationModeE ( ) {
err ( "missing function: _ZN2v811ArrayBuffer3NewEPNS_7IsolateEPvmNS_23ArrayBufferCreationModeE" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v811ArrayBuffer3NewEPNS_7IsolateEPvmNS_23ArrayBufferCreationModeE" ] = _ _ZN2v811ArrayBuffer3NewEPNS _7IsolateEPvmNS _23ArrayBufferCreationModeE ;
function _ _ZN2v811ArrayBuffer9Allocator19NewDefaultAllocatorEv ( ) {
err ( "missing function: _ZN2v811ArrayBuffer9Allocator19NewDefaultAllocatorEv" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v811ArrayBuffer9Allocator19NewDefaultAllocatorEv" ] = _ _ZN2v811ArrayBuffer9Allocator19NewDefaultAllocatorEv ;
function _ _ZN2v811HandleScope12CreateHandleEPNS _8internal10HeapObjectEPNS1 _6ObjectE ( ) {
err ( "missing function: _ZN2v811HandleScope12CreateHandleEPNS_8internal10HeapObjectEPNS1_6ObjectE" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v811HandleScope12CreateHandleEPNS_8internal10HeapObjectEPNS1_6ObjectE" ] = _ _ZN2v811HandleScope12CreateHandleEPNS _8internal10HeapObjectEPNS1 _6ObjectE ;
function _ _ZN2v811HandleScopeC1EPNS _7IsolateE ( ) {
err ( "missing function: _ZN2v811HandleScopeC1EPNS_7IsolateE" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v811HandleScopeC1EPNS_7IsolateE" ] = _ _ZN2v811HandleScopeC1EPNS _7IsolateE ;
function _ _ZN2v811HandleScopeD1Ev ( ) {
err ( "missing function: _ZN2v811HandleScopeD1Ev" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v811HandleScopeD1Ev" ] = _ _ZN2v811HandleScopeD1Ev ;
function _ _ZN2v814ObjectTemplate11NewInstanceEv ( ) {
err ( "missing function: _ZN2v814ObjectTemplate11NewInstanceEv" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v814ObjectTemplate11NewInstanceEv" ] = _ _ZN2v814ObjectTemplate11NewInstanceEv ;
function _ _ZN2v814ObjectTemplate11SetAccessorENS _5LocalINS _6StringEEEPFvS3 _RKNS _20PropertyCallbackInfoINS _5ValueEEEEPFvS3 _NS1 _IS5 _EERKNS4 _IvEEESB _NS _13AccessControlENS _17PropertyAttributeENS1 _INS _17AccessorSignatureEEE ( ) {
err ( "missing function: _ZN2v814ObjectTemplate11SetAccessorENS_5LocalINS_6StringEEEPFvS3_RKNS_20PropertyCallbackInfoINS_5ValueEEEEPFvS3_NS1_IS5_EERKNS4_IvEEESB_NS_13AccessControlENS_17PropertyAttributeENS1_INS_17AccessorSignatureEEE" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v814ObjectTemplate11SetAccessorENS_5LocalINS_6StringEEEPFvS3_RKNS_20PropertyCallbackInfoINS_5ValueEEEEPFvS3_NS1_IS5_EERKNS4_IvEEESB_NS_13AccessControlENS_17PropertyAttributeENS1_INS_17AccessorSignatureEEE" ] = _ _ZN2v814ObjectTemplate11SetAccessorENS _5LocalINS _6StringEEEPFvS3 _RKNS _20PropertyCallbackInfoINS _5ValueEEEEPFvS3 _NS1 _IS5 _EERKNS4 _IvEEESB _NS _13AccessControlENS _17PropertyAttributeENS1 _INS _17AccessorSignatureEEE ;
function _ _ZN2v814ObjectTemplate21SetInternalFieldCountEi ( ) {
err ( "missing function: _ZN2v814ObjectTemplate21SetInternalFieldCountEi" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v814ObjectTemplate21SetInternalFieldCountEi" ] = _ _ZN2v814ObjectTemplate21SetInternalFieldCountEi ;
function _ _ZN2v814ObjectTemplate3NewEv ( ) {
err ( "missing function: _ZN2v814ObjectTemplate3NewEv" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v814ObjectTemplate3NewEv" ] = _ _ZN2v814ObjectTemplate3NewEv ;
function _ _ZN2v814ScriptCompiler10CachedDataC1EPKhiNS1 _12BufferPolicyE ( ) {
err ( "missing function: _ZN2v814ScriptCompiler10CachedDataC1EPKhiNS1_12BufferPolicyE" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v814ScriptCompiler10CachedDataC1EPKhiNS1_12BufferPolicyE" ] = _ _ZN2v814ScriptCompiler10CachedDataC1EPKhiNS1 _12BufferPolicyE ;
function _ _ZN2v814ScriptCompiler7CompileENS _5LocalINS _7ContextEEEPNS0 _6SourceENS0 _14CompileOptionsE ( ) {
err ( "missing function: _ZN2v814ScriptCompiler7CompileENS_5LocalINS_7ContextEEEPNS0_6SourceENS0_14CompileOptionsE" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v814ScriptCompiler7CompileENS_5LocalINS_7ContextEEEPNS0_6SourceENS0_14CompileOptionsE" ] = _ _ZN2v814ScriptCompiler7CompileENS _5LocalINS _7ContextEEEPNS0 _6SourceENS0 _14CompileOptionsE ;
function _ _ZN2v815ArrayBufferView6BufferEv ( ) {
err ( "missing function: _ZN2v815ArrayBufferView6BufferEv" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v815ArrayBufferView6BufferEv" ] = _ _ZN2v815ArrayBufferView6BufferEv ;
function _ _ZN2v816FunctionTemplate3NewEPNS _7IsolateEPFvRKNS _20FunctionCallbackInfoINS _5ValueEEEENS _5LocalIS4 _EENSA _INS _9SignatureEEEiNS _19ConstructorBehaviorE ( ) {
err ( "missing function: _ZN2v816FunctionTemplate3NewEPNS_7IsolateEPFvRKNS_20FunctionCallbackInfoINS_5ValueEEEENS_5LocalIS4_EENSA_INS_9SignatureEEEiNS_19ConstructorBehaviorE" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v816FunctionTemplate3NewEPNS_7IsolateEPFvRKNS_20FunctionCallbackInfoINS_5ValueEEEENS_5LocalIS4_EENSA_INS_9SignatureEEEiNS_19ConstructorBehaviorE" ] = _ _ZN2v816FunctionTemplate3NewEPNS _7IsolateEPFvRKNS _20FunctionCallbackInfoINS _5ValueEEEENS _5LocalIS4 _EENSA _INS _9SignatureEEEiNS _19ConstructorBehaviorE ;
function _ _ZN2v819ResourceConstraintsC1Ev ( ) {
err ( "missing function: _ZN2v819ResourceConstraintsC1Ev" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v819ResourceConstraintsC1Ev" ] = _ _ZN2v819ResourceConstraintsC1Ev ;
function _ _ZN2v82V812ToLocalEmptyEv ( ) {
err ( "missing function: _ZN2v82V812ToLocalEmptyEv" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v82V812ToLocalEmptyEv" ] = _ _ZN2v82V812ToLocalEmptyEv ;
function _ _ZN2v84JSON5ParseENS _5LocalINS _6StringEEE ( ) {
err ( "missing function: _ZN2v84JSON5ParseENS_5LocalINS_6StringEEE" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v84JSON5ParseENS_5LocalINS_6StringEEE" ] = _ _ZN2v84JSON5ParseENS _5LocalINS _6StringEEE ;
function _ _ZN2v85Array3NewEPNS _7IsolateEi ( ) {
err ( "missing function: _ZN2v85Array3NewEPNS_7IsolateEi" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v85Array3NewEPNS_7IsolateEi" ] = _ _ZN2v85Array3NewEPNS _7IsolateEi ;
function _ _ZN2v86Locker10InitializeEPNS _7IsolateE ( ) {
err ( "missing function: _ZN2v86Locker10InitializeEPNS_7IsolateE" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v86Locker10InitializeEPNS_7IsolateE" ] = _ _ZN2v86Locker10InitializeEPNS _7IsolateE ;
function _ _ZN2v86LockerD1Ev ( ) {
err ( "missing function: _ZN2v86LockerD1Ev" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v86LockerD1Ev" ] = _ _ZN2v86LockerD1Ev ;
function _ _ZN2v86Object16SetInternalFieldEiNS _5LocalINS _5ValueEEE ( ) {
err ( "missing function: _ZN2v86Object16SetInternalFieldEiNS_5LocalINS_5ValueEEE" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v86Object16SetInternalFieldEiNS_5LocalINS_5ValueEEE" ] = _ _ZN2v86Object16SetInternalFieldEiNS _5LocalINS _5ValueEEE ;
function _ _ZN2v86Object20SlowGetInternalFieldEi ( ) {
err ( "missing function: _ZN2v86Object20SlowGetInternalFieldEi" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v86Object20SlowGetInternalFieldEi" ] = _ _ZN2v86Object20SlowGetInternalFieldEi ;
function _ _ZN2v86Object3GetENS _5LocalINS _5ValueEEE ( ) {
err ( "missing function: _ZN2v86Object3GetENS_5LocalINS_5ValueEEE" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v86Object3GetENS_5LocalINS_5ValueEEE" ] = _ _ZN2v86Object3GetENS _5LocalINS _5ValueEEE ;
function _ _ZN2v86Object3NewEPNS _7IsolateE ( ) {
err ( "missing function: _ZN2v86Object3NewEPNS_7IsolateE" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v86Object3NewEPNS_7IsolateE" ] = _ _ZN2v86Object3NewEPNS _7IsolateE ;
function _ _ZN2v86Object3SetENS _5LocalINS _5ValueEEES3 _ ( ) {
err ( "missing function: _ZN2v86Object3SetENS_5LocalINS_5ValueEEES3_" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v86Object3SetENS_5LocalINS_5ValueEEES3_" ] = _ _ZN2v86Object3SetENS _5LocalINS _5ValueEEES3 _ ;
function _ _ZN2v86Object3SetEjNS _5LocalINS _5ValueEEE ( ) {
err ( "missing function: _ZN2v86Object3SetEjNS_5LocalINS_5ValueEEE" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v86Object3SetEjNS_5LocalINS_5ValueEEE" ] = _ _ZN2v86Object3SetEjNS _5LocalINS _5ValueEEE ;
function _ _ZN2v86Script3RunEv ( ) {
err ( "missing function: _ZN2v86Script3RunEv" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v86Script3RunEv" ] = _ _ZN2v86Script3RunEv ;
function _ _ZN2v86Script7CompileENS _5LocalINS _6StringEEEPNS _12ScriptOriginE ( ) {
err ( "missing function: _ZN2v86Script7CompileENS_5LocalINS_6StringEEEPNS_12ScriptOriginE" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v86Script7CompileENS_5LocalINS_6StringEEEPNS_12ScriptOriginE" ] = _ _ZN2v86Script7CompileENS _5LocalINS _6StringEEEPNS _12ScriptOriginE ;
function _ _ZN2v86String11NewFromUtf8EPNS _7IsolateEPKcNS0 _13NewStringTypeEi ( ) {
err ( "missing function: _ZN2v86String11NewFromUtf8EPNS_7IsolateEPKcNS0_13NewStringTypeEi" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v86String11NewFromUtf8EPNS_7IsolateEPKcNS0_13NewStringTypeEi" ] = _ _ZN2v86String11NewFromUtf8EPNS _7IsolateEPKcNS0 _13NewStringTypeEi ;
function _ _ZN2v86String5ValueC1ENS _5LocalINS _5ValueEEE ( ) {
err ( "missing function: _ZN2v86String5ValueC1ENS_5LocalINS_5ValueEEE" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v86String5ValueC1ENS_5LocalINS_5ValueEEE" ] = _ _ZN2v86String5ValueC1ENS _5LocalINS _5ValueEEE ;
function _ _ZN2v86String5ValueD1Ev ( ) {
err ( "missing function: _ZN2v86String5ValueD1Ev" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v86String5ValueD1Ev" ] = _ _ZN2v86String5ValueD1Ev ;
function _ _ZN2v86String9Utf8ValueC1ENS _5LocalINS _5ValueEEE ( ) {
err ( "missing function: _ZN2v86String9Utf8ValueC1ENS_5LocalINS_5ValueEEE" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v86String9Utf8ValueC1ENS_5LocalINS_5ValueEEE" ] = _ _ZN2v86String9Utf8ValueC1ENS _5LocalINS _5ValueEEE ;
function _ _ZN2v86String9Utf8ValueD1Ev ( ) {
err ( "missing function: _ZN2v86String9Utf8ValueD1Ev" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v86String9Utf8ValueD1Ev" ] = _ _ZN2v86String9Utf8ValueD1Ev ;
function _ _ZN2v87Context3NewEPNS _7IsolateEPNS _22ExtensionConfigurationENS _10MaybeLocalINS _14ObjectTemplateEEENS5 _INS _5ValueEEE ( ) {
err ( "missing function: _ZN2v87Context3NewEPNS_7IsolateEPNS_22ExtensionConfigurationENS_10MaybeLocalINS_14ObjectTemplateEEENS5_INS_5ValueEEE" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v87Context3NewEPNS_7IsolateEPNS_22ExtensionConfigurationENS_10MaybeLocalINS_14ObjectTemplateEEENS5_INS_5ValueEEE" ] = _ _ZN2v87Context3NewEPNS _7IsolateEPNS _22ExtensionConfigurationENS _10MaybeLocalINS _14ObjectTemplateEEENS5 _INS _5ValueEEE ;
function _ _ZN2v87Context4ExitEv ( ) {
err ( "missing function: _ZN2v87Context4ExitEv" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v87Context4ExitEv" ] = _ _ZN2v87Context4ExitEv ;
function _ _ZN2v87Context5EnterEv ( ) {
err ( "missing function: _ZN2v87Context5EnterEv" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v87Context5EnterEv" ] = _ _ZN2v87Context5EnterEv ;
function _ _ZN2v87Context6GlobalEv ( ) {
err ( "missing function: _ZN2v87Context6GlobalEv" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v87Context6GlobalEv" ] = _ _ZN2v87Context6GlobalEv ;
function _ _ZN2v87Integer3NewEPNS _7IsolateEi ( ) {
err ( "missing function: _ZN2v87Integer3NewEPNS_7IsolateEi" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v87Integer3NewEPNS_7IsolateEi" ] = _ _ZN2v87Integer3NewEPNS _7IsolateEi ;
function _ _ZN2v87Isolate10GetCurrentEv ( ) {
err ( "missing function: _ZN2v87Isolate10GetCurrentEv" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v87Isolate10GetCurrentEv" ] = _ _ZN2v87Isolate10GetCurrentEv ;
function _ _ZN2v87Isolate17GetCurrentContextEv ( ) {
err ( "missing function: _ZN2v87Isolate17GetCurrentContextEv" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v87Isolate17GetCurrentContextEv" ] = _ _ZN2v87Isolate17GetCurrentContextEv ;
function _ _ZN2v87Isolate3NewERKNS0 _12CreateParamsE ( ) {
err ( "missing function: _ZN2v87Isolate3NewERKNS0_12CreateParamsE" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v87Isolate3NewERKNS0_12CreateParamsE" ] = _ _ZN2v87Isolate3NewERKNS0 _12CreateParamsE ;
function _ _ZN2v87Isolate4ExitEv ( ) {
err ( "missing function: _ZN2v87Isolate4ExitEv" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v87Isolate4ExitEv" ] = _ _ZN2v87Isolate4ExitEv ;
function _ _ZN2v87Isolate5EnterEv ( ) {
err ( "missing function: _ZN2v87Isolate5EnterEv" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v87Isolate5EnterEv" ] = _ _ZN2v87Isolate5EnterEv ;
function _ _ZN2v87Isolate7DisposeEv ( ) {
err ( "missing function: _ZN2v87Isolate7DisposeEv" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v87Isolate7DisposeEv" ] = _ _ZN2v87Isolate7DisposeEv ;
function _ _ZN2v88External3NewEPNS _7IsolateEPv ( ) {
err ( "missing function: _ZN2v88External3NewEPNS_7IsolateEPv" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v88External3NewEPNS_7IsolateEPv" ] = _ _ZN2v88External3NewEPNS _7IsolateEPv ;
function _ _ZN2v88Function4CallENS _5LocalINS _5ValueEEEiPS3 _ ( ) {
err ( "missing function: _ZN2v88Function4CallENS_5LocalINS_5ValueEEEiPS3_" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v88Function4CallENS_5LocalINS_5ValueEEEiPS3_" ] = _ _ZN2v88Function4CallENS _5LocalINS _5ValueEEEiPS3 _ ;
function _ _ZN2v88Template3SetENS _5LocalINS _4NameEEENS1 _INS _4DataEEENS _17PropertyAttributeE ( ) {
err ( "missing function: _ZN2v88Template3SetENS_5LocalINS_4NameEEENS1_INS_4DataEEENS_17PropertyAttributeE" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v88Template3SetENS_5LocalINS_4NameEEENS1_INS_4DataEEENS_17PropertyAttributeE" ] = _ _ZN2v88Template3SetENS _5LocalINS _4NameEEENS1 _INS _4DataEEENS _17PropertyAttributeE ;
function _ _ZN2v88TryCatchC1Ev ( ) {
err ( "missing function: _ZN2v88TryCatchC1Ev" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v88TryCatchC1Ev" ] = _ _ZN2v88TryCatchC1Ev ;
function _ _ZN2v88TryCatchD1Ev ( ) {
err ( "missing function: _ZN2v88TryCatchD1Ev" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN2v88TryCatchD1Ev" ] = _ _ZN2v88TryCatchD1Ev ;
function _ _ZN8CXpsFileC1EPN7NSFonts17IApplicationFontsE ( ) {
err ( "missing function: _ZN8CXpsFileC1EPN7NSFonts17IApplicationFontsE" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN8CXpsFileC1EPN7NSFonts17IApplicationFontsE" ] = _ _ZN8CXpsFileC1EPN7NSFonts17IApplicationFontsE ;
function _ _ZN9CDjVuFileC1EPN7NSFonts17IApplicationFontsE ( ) {
err ( "missing function: _ZN9CDjVuFileC1EPN7NSFonts17IApplicationFontsE" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN9CDjVuFileC1EPN7NSFonts17IApplicationFontsE" ] = _ _ZN9CDjVuFileC1EPN7NSFonts17IApplicationFontsE ;
function _ _ZN9CHtmlFile10ConvertMhtERKNSt3 _ _212basic _stringIwNS0 _11char _traitsIwEENS0 _9allocatorIwEEEES8 _S8 _ ( ) {
err ( "missing function: _ZN9CHtmlFile10ConvertMhtERKNSt3__212basic_stringIwNS0_11char_traitsIwEENS0_9allocatorIwEEEES8_S8_" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN9CHtmlFile10ConvertMhtERKNSt3__212basic_stringIwNS0_11char_traitsIwEENS0_9allocatorIwEEEES8_S8_" ] = _ _ZN9CHtmlFile10ConvertMhtERKNSt3 _ _212basic _stringIwNS0 _11char _traitsIwEENS0 _9allocatorIwEEEES8 _S8 _ ;
function _ _ZN9CHtmlFile11ConvertEpubERKNSt3 _ _212basic _stringIwNS0 _11char _traitsIwEENS0 _9allocatorIwEEEERS6 _S8 _S8 _ ( ) {
err ( "missing function: _ZN9CHtmlFile11ConvertEpubERKNSt3__212basic_stringIwNS0_11char_traitsIwEENS0_9allocatorIwEEEERS6_S8_S8_" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN9CHtmlFile11ConvertEpubERKNSt3__212basic_stringIwNS0_11char_traitsIwEENS0_9allocatorIwEEEERS6_S8_S8_" ] = _ _ZN9CHtmlFile11ConvertEpubERKNSt3 _ _212basic _stringIwNS0 _11char _traitsIwEENS0 _9allocatorIwEEEERS6 _S8 _S8 _ ;
function _ _ZN9CHtmlFile7ConvertERKNSt3 _ _26vectorINS0 _12basic _stringIwNS0 _11char _traitsIwEENS0 _9allocatorIwEEEENS5 _IS7 _EEEERKS7 _SD _ ( ) {
err ( "missing function: _ZN9CHtmlFile7ConvertERKNSt3__26vectorINS0_12basic_stringIwNS0_11char_traitsIwEENS0_9allocatorIwEEEENS5_IS7_EEEERKS7_SD_" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN9CHtmlFile7ConvertERKNSt3__26vectorINS0_12basic_stringIwNS0_11char_traitsIwEENS0_9allocatorIwEEEENS5_IS7_EEEERKS7_SD_" ] = _ _ZN9CHtmlFile7ConvertERKNSt3 _ _26vectorINS0 _12basic _stringIwNS0 _11char _traitsIwEENS0 _9allocatorIwEEEENS5 _IS7 _EEEERKS7 _SD _ ;
function _ _ZN9CHtmlFileC1Ev ( ) {
err ( "missing function: _ZN9CHtmlFileC1Ev" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN9CHtmlFileC1Ev" ] = _ _ZN9CHtmlFileC1Ev ;
function _ _ZN9CHtmlFileD1Ev ( ) {
err ( "missing function: _ZN9CHtmlFileD1Ev" ) ;
abort ( - 1 ) ;
}
Module [ "__ZN9CHtmlFileD1Ev" ] = _ _ZN9CHtmlFileD1Ev ;
function _ _ZNK2v85Int325ValueEv ( ) {
err ( "missing function: _ZNK2v85Int325ValueEv" ) ;
abort ( - 1 ) ;
}
Module [ "__ZNK2v85Int325ValueEv" ] = _ _ZNK2v85Int325ValueEv ;
function _ _ZNK2v85Value10IsFunctionEv ( ) {
err ( "missing function: _ZNK2v85Value10IsFunctionEv" ) ;
abort ( - 1 ) ;
}
Module [ "__ZNK2v85Value10IsFunctionEv" ] = _ _ZNK2v85Value10IsFunctionEv ;
function _ _ZNK2v85Value12BooleanValueEv ( ) {
err ( "missing function: _ZNK2v85Value12BooleanValueEv" ) ;
abort ( - 1 ) ;
}
Module [ "__ZNK2v85Value12BooleanValueEv" ] = _ _ZNK2v85Value12BooleanValueEv ;
function _ _ZNK2v85Value7ToInt32ENS _5LocalINS _7ContextEEE ( ) {
err ( "missing function: _ZNK2v85Value7ToInt32ENS_5LocalINS_7ContextEEE" ) ;
abort ( - 1 ) ;
}
Module [ "__ZNK2v85Value7ToInt32ENS_5LocalINS_7ContextEEE" ] = _ _ZNK2v85Value7ToInt32ENS _5LocalINS _7ContextEEE ;
function _ _ZNK2v85Value8ToNumberENS _5LocalINS _7ContextEEE ( ) {
err ( "missing function: _ZNK2v85Value8ToNumberENS_5LocalINS_7ContextEEE" ) ;
abort ( - 1 ) ;
}
Module [ "__ZNK2v85Value8ToNumberENS_5LocalINS_7ContextEEE" ] = _ _ZNK2v85Value8ToNumberENS _5LocalINS _7ContextEEE ;
function _ _ZNK2v85Value8ToObjectENS _5LocalINS _7ContextEEE ( ) {
err ( "missing function: _ZNK2v85Value8ToObjectENS_5LocalINS_7ContextEEE" ) ;
abort ( - 1 ) ;
}
Module [ "__ZNK2v85Value8ToObjectENS_5LocalINS_7ContextEEE" ] = _ _ZNK2v85Value8ToObjectENS _5LocalINS _7ContextEEE ;
function _ _ZNK2v85Value8ToUint32ENS _5LocalINS _7ContextEEE ( ) {
err ( "missing function: _ZNK2v85Value8ToUint32ENS_5LocalINS_7ContextEEE" ) ;
abort ( - 1 ) ;
}
Module [ "__ZNK2v85Value8ToUint32ENS_5LocalINS_7ContextEEE" ] = _ _ZNK2v85Value8ToUint32ENS _5LocalINS _7ContextEEE ;
function _ _ZNK2v86Number5ValueEv ( ) {
err ( "missing function: _ZNK2v86Number5ValueEv" ) ;
abort ( - 1 ) ;
}
Module [ "__ZNK2v86Number5ValueEv" ] = _ _ZNK2v86Number5ValueEv ;
function _ _ZNK2v86Uint325ValueEv ( ) {
err ( "missing function: _ZNK2v86Uint325ValueEv" ) ;
abort ( - 1 ) ;
}
Module [ "__ZNK2v86Uint325ValueEv" ] = _ _ZNK2v86Uint325ValueEv ;
function _ _ZNK2v87Message13GetSourceLineEv ( ) {
err ( "missing function: _ZNK2v87Message13GetSourceLineEv" ) ;
abort ( - 1 ) ;
}
Module [ "__ZNK2v87Message13GetSourceLineEv" ] = _ _ZNK2v87Message13GetSourceLineEv ;
function _ _ZNK2v87Message3GetEv ( ) {
err ( "missing function: _ZNK2v87Message3GetEv" ) ;
abort ( - 1 ) ;
}
Module [ "__ZNK2v87Message3GetEv" ] = _ _ZNK2v87Message3GetEv ;
function _ _ZNK2v88External5ValueEv ( ) {
err ( "missing function: _ZNK2v88External5ValueEv" ) ;
abort ( - 1 ) ;
}
Module [ "__ZNK2v88External5ValueEv" ] = _ _ZNK2v88External5ValueEv ;
function _ _ZNK2v88TryCatch7MessageEv ( ) {
err ( "missing function: _ZNK2v88TryCatch7MessageEv" ) ;
abort ( - 1 ) ;
}
Module [ "__ZNK2v88TryCatch7MessageEv" ] = _ _ZNK2v88TryCatch7MessageEv ;
function _ _ZNK2v88TryCatch9HasCaughtEv ( ) {
err ( "missing function: _ZNK2v88TryCatch9HasCaughtEv" ) ;
abort ( - 1 ) ;
}
Module [ "__ZNK2v88TryCatch9HasCaughtEv" ] = _ _ZNK2v88TryCatch9HasCaughtEv ;
function _ _ _assert _fail ( condition , filename , line , func ) {
abort ( "Assertion failed: " + UTF8ToString ( condition ) + ", at: " + [ filename ? UTF8ToString ( filename ) : "unknown filename" , line , func ? UTF8ToString ( func ) : "unknown function" ] ) ;
}
Module [ "___assert_fail" ] = _ _ _assert _fail ;
var PROCINFO = {
ppid : 1 ,
pid : 42 ,
sid : 42 ,
pgid : 42
} ;
Module [ "PROCINFO" ] = PROCINFO ;
var _ _pthread _ptr = 0 ;
Module [ "__pthread_ptr" ] = _ _pthread _ptr ;
var _ _pthread _is _main _runtime _thread = 0 ;
Module [ "__pthread_is_main_runtime_thread" ] = _ _pthread _is _main _runtime _thread ;
var _ _pthread _is _main _browser _thread = 0 ;
Module [ "__pthread_is_main_browser_thread" ] = _ _pthread _is _main _browser _thread ;
function _ _register _pthread _ptr ( pthreadPtr , isMainBrowserThread , isMainRuntimeThread ) {
pthreadPtr = pthreadPtr | 0 ;
isMainBrowserThread = isMainBrowserThread | 0 ;
isMainRuntimeThread = isMainRuntimeThread | 0 ;
_ _pthread _ptr = pthreadPtr ;
_ _pthread _is _main _browser _thread = isMainBrowserThread ;
_ _pthread _is _main _runtime _thread = isMainRuntimeThread ;
}
Module [ "__register_pthread_ptr" ] = _ _register _pthread _ptr ;
var ERRNO _CODES = {
EPERM : 63 ,
ENOENT : 44 ,
ESRCH : 71 ,
EINTR : 27 ,
EIO : 29 ,
ENXIO : 60 ,
E2BIG : 1 ,
ENOEXEC : 45 ,
EBADF : 8 ,
ECHILD : 12 ,
EAGAIN : 6 ,
EWOULDBLOCK : 6 ,
ENOMEM : 48 ,
EACCES : 2 ,
EFAULT : 21 ,
ENOTBLK : 105 ,
EBUSY : 10 ,
EEXIST : 20 ,
EXDEV : 75 ,
ENODEV : 43 ,
ENOTDIR : 54 ,
EISDIR : 31 ,
EINVAL : 28 ,
ENFILE : 41 ,
EMFILE : 33 ,
ENOTTY : 59 ,
ETXTBSY : 74 ,
EFBIG : 22 ,
ENOSPC : 51 ,
ESPIPE : 70 ,
EROFS : 69 ,
EMLINK : 34 ,
EPIPE : 64 ,
EDOM : 18 ,
ERANGE : 68 ,
ENOMSG : 49 ,
EIDRM : 24 ,
ECHRNG : 106 ,
EL2NSYNC : 156 ,
EL3HLT : 107 ,
EL3RST : 108 ,
ELNRNG : 109 ,
EUNATCH : 110 ,
ENOCSI : 111 ,
EL2HLT : 112 ,
EDEADLK : 16 ,
ENOLCK : 46 ,
EBADE : 113 ,
EBADR : 114 ,
EXFULL : 115 ,
ENOANO : 104 ,
EBADRQC : 103 ,
EBADSLT : 102 ,
EDEADLOCK : 16 ,
EBFONT : 101 ,
ENOSTR : 100 ,
ENODATA : 116 ,
ETIME : 117 ,
ENOSR : 118 ,
ENONET : 119 ,
ENOPKG : 120 ,
EREMOTE : 121 ,
ENOLINK : 47 ,
EADV : 122 ,
ESRMNT : 123 ,
ECOMM : 124 ,
EPROTO : 65 ,
EMULTIHOP : 36 ,
EDOTDOT : 125 ,
EBADMSG : 9 ,
ENOTUNIQ : 126 ,
EBADFD : 127 ,
EREMCHG : 128 ,
ELIBACC : 129 ,
ELIBBAD : 130 ,
ELIBSCN : 131 ,
ELIBMAX : 132 ,
ELIBEXEC : 133 ,
ENOSYS : 52 ,
ENOTEMPTY : 55 ,
ENAMETOOLONG : 37 ,
ELOOP : 32 ,
EOPNOTSUPP : 138 ,
EPFNOSUPPORT : 139 ,
ECONNRESET : 15 ,
ENOBUFS : 42 ,
EAFNOSUPPORT : 5 ,
EPROTOTYPE : 67 ,
ENOTSOCK : 57 ,
ENOPROTOOPT : 50 ,
ESHUTDOWN : 140 ,
ECONNREFUSED : 14 ,
EADDRINUSE : 3 ,
ECONNABORTED : 13 ,
ENETUNREACH : 40 ,
ENETDOWN : 38 ,
ETIMEDOUT : 73 ,
EHOSTDOWN : 142 ,
EHOSTUNREACH : 23 ,
EINPROGRESS : 26 ,
EALREADY : 7 ,
EDESTADDRREQ : 17 ,
EMSGSIZE : 35 ,
EPROTONOSUPPORT : 66 ,
ESOCKTNOSUPPORT : 137 ,
EADDRNOTAVAIL : 4 ,
ENETRESET : 39 ,
EISCONN : 30 ,
ENOTCONN : 53 ,
ETOOMANYREFS : 141 ,
EUSERS : 136 ,
EDQUOT : 19 ,
ESTALE : 72 ,
ENOTSUP : 138 ,
ENOMEDIUM : 148 ,
EILSEQ : 25 ,
EOVERFLOW : 61 ,
ECANCELED : 11 ,
ENOTRECOVERABLE : 56 ,
EOWNERDEAD : 62 ,
ESTRPIPE : 135
} ;
Module [ "ERRNO_CODES" ] = ERRNO _CODES ;
var _ _main _thread _futex _wait _address = 13888768 ;
Module [ "__main_thread_futex_wait_address" ] = _ _main _thread _futex _wait _address ;
function _emscripten _futex _wake ( addr , count ) {
if ( addr <= 0 || addr > HEAP8 . length || addr & 3 != 0 || count < 0 ) return - 28 ;
if ( count == 0 ) return 0 ;
if ( count >= 2147483647 ) count = Infinity ;
var mainThreadWaitAddress = Atomics . load ( HEAP32 , _ _main _thread _futex _wait _address >> 2 ) ;
var mainThreadWoken = 0 ;
if ( mainThreadWaitAddress == addr ) {
var loadedAddr = Atomics . compareExchange ( HEAP32 , _ _main _thread _futex _wait _address >> 2 , mainThreadWaitAddress , 0 ) ;
if ( loadedAddr == mainThreadWaitAddress ) {
-- count ;
mainThreadWoken = 1 ;
if ( count <= 0 ) return 1 ;
}
}
var ret = Atomics . notify ( HEAP32 , addr >> 2 , count ) ;
if ( ret >= 0 ) return ret + mainThreadWoken ;
throw "Atomics.notify returned an unexpected value " + ret ;
}
Module [ "_emscripten_futex_wake" ] = _emscripten _futex _wake ;
function _ _kill _thread ( pthread _ptr ) {
if ( ENVIRONMENT _IS _PTHREAD ) throw "Internal Error! _kill_thread() can only ever be called from main application thread!" ;
if ( ! pthread _ptr ) throw "Internal Error! Null pthread_ptr in _kill_thread!" ;
GROWABLE _HEAP _STORE _I32 ( pthread _ptr + 24 | 0 , 0 ) ;
var pthread = PThread . pthreads [ pthread _ptr ] ;
pthread . worker . terminate ( ) ;
PThread . freeThreadData ( pthread ) ;
PThread . runningWorkers . splice ( PThread . runningWorkers . indexOf ( pthread . worker ) , 1 ) ;
pthread . worker . pthread = undefined ;
}
Module [ "__kill_thread" ] = _ _kill _thread ;
function _ _cancel _thread ( pthread _ptr ) {
if ( ENVIRONMENT _IS _PTHREAD ) throw "Internal Error! _cancel_thread() can only ever be called from main application thread!" ;
if ( ! pthread _ptr ) throw "Internal Error! Null pthread_ptr in _cancel_thread!" ;
var pthread = PThread . pthreads [ pthread _ptr ] ;
pthread . worker . postMessage ( {
"cmd" : "cancel"
} ) ;
}
Module [ "__cancel_thread" ] = _ _cancel _thread ;
function _ _cleanup _thread ( pthread _ptr ) {
if ( ENVIRONMENT _IS _PTHREAD ) throw "Internal Error! _cleanup_thread() can only ever be called from main application thread!" ;
if ( ! pthread _ptr ) throw "Internal Error! Null pthread_ptr in _cleanup_thread!" ;
GROWABLE _HEAP _STORE _I32 ( pthread _ptr + 24 | 0 , 0 ) ;
var pthread = PThread . pthreads [ pthread _ptr ] ;
if ( pthread ) {
var worker = pthread . worker ;
PThread . returnWorkerToPool ( worker ) ;
}
}
Module [ "__cleanup_thread" ] = _ _cleanup _thread ;
var PThread = {
MAIN _THREAD _ID : 1 ,
mainThreadInfo : {
schedPolicy : 0 ,
schedPrio : 0
} ,
preallocatedWorkers : [ ] ,
unusedWorkers : [ ] ,
runningWorkers : [ ] ,
initRuntime : ( function ( ) {
_ _register _pthread _ptr ( PThread . mainThreadBlock , ! ENVIRONMENT _IS _WORKER , 1 ) ;
_emscripten _register _main _browser _thread _id ( PThread . mainThreadBlock ) ;
} ) ,
initMainThreadBlock : ( function ( ) {
if ( ENVIRONMENT _IS _PTHREAD ) return undefined ;
PThread . mainThreadBlock = 13887984 ;
for ( var i = 0 ; i < 244 / 4 ; ++ i ) GROWABLE _HEAP _STORE _I32 ( ( PThread . mainThreadBlock / 4 + i ) * 4 | 0 , 0 ) ;
GROWABLE _HEAP _STORE _I32 ( PThread . mainThreadBlock + 24 | 0 , PThread . mainThreadBlock ) ;
var headPtr = PThread . mainThreadBlock + 168 ;
GROWABLE _HEAP _STORE _I32 ( headPtr | 0 , headPtr ) ;
var tlsMemory = 13888240 ;
for ( var i = 0 ; i < 128 ; ++ i ) GROWABLE _HEAP _STORE _I32 ( ( tlsMemory / 4 + i ) * 4 | 0 , 0 ) ;
Atomics . store ( HEAPU32 , PThread . mainThreadBlock + 116 >> 2 , tlsMemory ) ;
Atomics . store ( HEAPU32 , PThread . mainThreadBlock + 52 >> 2 , PThread . mainThreadBlock ) ;
Atomics . store ( HEAPU32 , PThread . mainThreadBlock + 56 >> 2 , PROCINFO . pid ) ;
} ) ,
initWorker : ( function ( ) { } ) ,
pthreads : { } ,
exitHandlers : null ,
setThreadStatus : ( function ( ) { } ) ,
runExitHandlers : ( function ( ) {
if ( PThread . exitHandlers !== null ) {
while ( PThread . exitHandlers . length > 0 ) {
PThread . exitHandlers . pop ( ) ( ) ;
}
PThread . exitHandlers = null ;
}
if ( ENVIRONMENT _IS _PTHREAD && threadInfoStruct ) _ _ _pthread _tsd _run _dtors ( ) ;
} ) ,
threadExit : ( function ( exitCode ) {
var tb = _pthread _self ( ) ;
if ( tb ) {
Atomics . store ( HEAPU32 , tb + 4 >> 2 , exitCode ) ;
Atomics . store ( HEAPU32 , tb + 0 >> 2 , 1 ) ;
Atomics . store ( HEAPU32 , tb + 72 >> 2 , 1 ) ;
Atomics . store ( HEAPU32 , tb + 76 >> 2 , 0 ) ;
PThread . runExitHandlers ( ) ;
_emscripten _futex _wake ( tb + 0 , 2147483647 ) ;
_ _register _pthread _ptr ( 0 , 0 , 0 ) ;
threadInfoStruct = 0 ;
if ( ENVIRONMENT _IS _PTHREAD ) {
postMessage ( {
"cmd" : "exit"
} ) ;
}
}
} ) ,
threadCancel : ( function ( ) {
PThread . runExitHandlers ( ) ;
Atomics . store ( HEAPU32 , threadInfoStruct + 4 >> 2 , - 1 ) ;
Atomics . store ( HEAPU32 , threadInfoStruct + 0 >> 2 , 1 ) ;
_emscripten _futex _wake ( threadInfoStruct + 0 , 2147483647 ) ;
threadInfoStruct = selfThreadId = 0 ;
_ _register _pthread _ptr ( 0 , 0 , 0 ) ;
postMessage ( {
"cmd" : "cancelDone"
} ) ;
} ) ,
terminateAllThreads : ( function ( ) {
for ( var t in PThread . pthreads ) {
var pthread = PThread . pthreads [ t ] ;
if ( pthread && pthread . worker ) {
PThread . returnWorkerToPool ( pthread . worker ) ;
}
}
PThread . pthreads = { } ;
for ( var i = 0 ; i < PThread . preallocatedWorkers . length ; ++ i ) {
var worker = PThread . preallocatedWorkers [ i ] ;
assert ( ! worker . pthread ) ;
worker . terminate ( ) ;
}
PThread . preallocatedWorkers = [ ] ;
for ( var i = 0 ; i < PThread . unusedWorkers . length ; ++ i ) {
var worker = PThread . unusedWorkers [ i ] ;
assert ( ! worker . pthread ) ;
worker . terminate ( ) ;
}
PThread . unusedWorkers = [ ] ;
for ( var i = 0 ; i < PThread . runningWorkers . length ; ++ i ) {
var worker = PThread . runningWorkers [ i ] ;
var pthread = worker . pthread ;
assert ( pthread , "This Worker should have a pthread it is executing" ) ;
PThread . freeThreadData ( pthread ) ;
worker . terminate ( ) ;
}
PThread . runningWorkers = [ ] ;
} ) ,
freeThreadData : ( function ( pthread ) {
if ( ! pthread ) return ;
if ( pthread . threadInfoStruct ) {
var tlsMemory = GROWABLE _HEAP _LOAD _I32 ( pthread . threadInfoStruct + 116 | 0 ) ;
GROWABLE _HEAP _STORE _I32 ( pthread . threadInfoStruct + 116 | 0 , 0 ) ;
_free ( tlsMemory ) ;
_free ( pthread . threadInfoStruct ) ;
}
pthread . threadInfoStruct = 0 ;
if ( pthread . allocatedOwnStack && pthread . stackBase ) _free ( pthread . stackBase ) ;
pthread . stackBase = 0 ;
if ( pthread . worker ) pthread . worker . pthread = null ;
} ) ,
returnWorkerToPool : ( function ( worker ) {
delete PThread . pthreads [ worker . pthread . thread ] ;
PThread . unusedWorkers . push ( worker ) ;
PThread . runningWorkers . splice ( PThread . runningWorkers . indexOf ( worker ) , 1 ) ;
PThread . freeThreadData ( worker . pthread ) ;
worker . pthread = undefined ;
} ) ,
receiveObjectTransfer : ( function ( data ) { } ) ,
allocateUnusedWorkers : ( function ( numWorkers , onFinishedLoading ) {
if ( ! SUPPORTS _SHARED _MEMORY ( ) ) return ;
var workers = [ ] ;
var numWorkersToCreate = numWorkers ;
if ( PThread . preallocatedWorkers . length > 0 ) {
var workersUsed = Math . min ( PThread . preallocatedWorkers . length , numWorkers ) ;
workers = workers . concat ( PThread . preallocatedWorkers . splice ( 0 , workersUsed ) ) ;
numWorkersToCreate -= workersUsed ;
}
if ( numWorkersToCreate > 0 ) {
workers = workers . concat ( PThread . createNewWorkers ( numWorkersToCreate ) ) ;
}
PThread . attachListenerToWorkers ( workers , onFinishedLoading ) ;
for ( var i = 0 ; i < numWorkers ; ++ i ) {
var worker = workers [ i ] ;
worker . postMessage ( {
"cmd" : "load" ,
"urlOrBlob" : Module [ "mainScriptUrlOrBlob" ] || _scriptDir ,
"wasmMemory" : wasmMemory ,
"wasmModule" : wasmModule ,
"DYNAMIC_BASE" : DYNAMIC _BASE ,
"DYNAMICTOP_PTR" : DYNAMICTOP _PTR
} ) ;
PThread . unusedWorkers . push ( worker ) ;
}
} ) ,
attachListenerToWorkers : ( function ( workers , onFinishedLoading ) {
var numWorkersLoaded = 0 ;
var numWorkers = workers . length ;
for ( var i = 0 ; i < numWorkers ; ++ i ) {
var worker = workers [ i ] ;
( ( function ( worker ) {
worker . onmessage = ( function ( e ) {
var d = e [ "data" ] ;
var cmd = d [ "cmd" ] ;
if ( worker . pthread ) PThread . currentProxiedOperationCallerThread = worker . pthread . threadInfoStruct ;
if ( d [ "targetThread" ] && d [ "targetThread" ] != _pthread _self ( ) ) {
var thread = PThread . pthreads [ d . targetThread ] ;
if ( thread ) {
thread . worker . postMessage ( e . data , d [ "transferList" ] ) ;
} else {
console . error ( 'Internal error! Worker sent a message "' + cmd + '" to target pthread ' + d [ "targetThread" ] + ", but that thread no longer exists!" ) ;
}
PThread . currentProxiedOperationCallerThread = undefined ;
return ;
}
if ( cmd === "processQueuedMainThreadWork" ) {
_emscripten _main _thread _process _queued _calls ( ) ;
} else if ( cmd === "spawnThread" ) {
_ _spawn _thread ( e . data ) ;
} else if ( cmd === "cleanupThread" ) {
_ _cleanup _thread ( d [ "thread" ] ) ;
} else if ( cmd === "killThread" ) {
_ _kill _thread ( d [ "thread" ] ) ;
} else if ( cmd === "cancelThread" ) {
_ _cancel _thread ( d [ "thread" ] ) ;
} else if ( cmd === "loaded" ) {
worker . loaded = true ;
if ( worker . runPthread ) {
worker . runPthread ( ) ;
delete worker . runPthread ;
}
++ numWorkersLoaded ;
if ( numWorkersLoaded === numWorkers && onFinishedLoading ) {
onFinishedLoading ( ) ;
}
} else if ( cmd === "print" ) {
out ( "Thread " + d [ "threadId" ] + ": " + d [ "text" ] ) ;
} else if ( cmd === "printErr" ) {
err ( "Thread " + d [ "threadId" ] + ": " + d [ "text" ] ) ;
} else if ( cmd === "alert" ) {
alert ( "Thread " + d [ "threadId" ] + ": " + d [ "text" ] ) ;
} else if ( cmd === "exit" ) {
var detached = worker . pthread && Atomics . load ( HEAPU32 , worker . pthread . thread + 80 >> 2 ) ;
if ( detached ) {
PThread . returnWorkerToPool ( worker ) ;
}
} else if ( cmd === "exitProcess" ) {
noExitRuntime = false ;
try {
exit ( d [ "returnCode" ] ) ;
} catch ( e ) {
if ( e instanceof ExitStatus ) return ;
throw e ;
}
} else if ( cmd === "cancelDone" ) {
PThread . returnWorkerToPool ( worker ) ;
} else if ( cmd === "objectTransfer" ) {
PThread . receiveObjectTransfer ( e . data ) ;
} else if ( e . data . target === "setimmediate" ) {
worker . postMessage ( e . data ) ;
} else {
err ( "worker sent an unknown command " + cmd ) ;
}
PThread . currentProxiedOperationCallerThread = undefined ;
} ) ;
worker . onerror = ( function ( e ) {
err ( "pthread sent an error! " + e . filename + ":" + e . lineno + ": " + e . message ) ;
} ) ;
if ( ENVIRONMENT _HAS _NODE ) {
worker . on ( "message" , ( function ( data ) {
worker . onmessage ( {
data : data
} ) ;
} ) ) ;
worker . on ( "error" , ( function ( data ) {
worker . onerror ( data ) ;
} ) ) ;
worker . on ( "exit" , ( function ( data ) {
console . log ( "worker exited - TODO: update the worker queue?" ) ;
} ) ) ;
}
} ) ) ( worker ) ;
}
} ) ,
createNewWorkers : ( function ( numWorkers ) {
if ( ! SUPPORTS _SHARED _MEMORY ( ) ) return [ ] ;
var pthreadMainJs = "x2t.worker.js" ;
pthreadMainJs = locateFile ( pthreadMainJs ) ;
var newWorkers = [ ] ;
for ( var i = 0 ; i < numWorkers ; ++ i ) {
newWorkers . push ( new Worker ( pthreadMainJs ) ) ;
}
return newWorkers ;
} ) ,
getNewWorker : ( function ( ) {
if ( PThread . unusedWorkers . length == 0 ) PThread . allocateUnusedWorkers ( 1 ) ;
if ( PThread . unusedWorkers . length > 0 ) return PThread . unusedWorkers . pop ( ) ; else return null ;
} ) ,
busySpinWait : ( function ( msecs ) {
var t = performance . now ( ) + msecs ;
while ( performance . now ( ) < t ) {
}
} )
} ;
Module [ "PThread" ] = PThread ;
function _ _ _call _main ( argc , argv ) {
var returnCode = _main ( argc , argv ) ;
if ( ! noExitRuntime ) postMessage ( {
"cmd" : "exitProcess" ,
"returnCode" : returnCode
} ) ;
return returnCode ;
}
Module [ "___call_main" ] = _ _ _call _main ;
function _emscripten _get _now ( ) {
abort ( ) ;
}
Module [ "_emscripten_get_now" ] = _emscripten _get _now ;
function _emscripten _get _now _is _monotonic ( ) {
return 0 || ENVIRONMENT _IS _NODE || typeof dateNow !== "undefined" || typeof performance === "object" && performance && typeof performance [ "now" ] === "function" ;
}
Module [ "_emscripten_get_now_is_monotonic" ] = _emscripten _get _now _is _monotonic ;
function _ _ _setErrNo ( value ) {
if ( Module [ "___errno_location" ] ) GROWABLE _HEAP _STORE _I32 ( Module [ "___errno_location" ] ( ) | 0 , value ) ; else err ( "failed to set errno from JS" ) ;
return value ;
}
Module [ "___setErrNo" ] = _ _ _setErrNo ;
function _clock _gettime ( clk _id , tp ) {
var now ;
if ( clk _id === 0 ) {
now = Date . now ( ) ;
} else if ( clk _id === 1 && _emscripten _get _now _is _monotonic ( ) ) {
now = _emscripten _get _now ( ) ;
} else {
_ _ _setErrNo ( 28 ) ;
return - 1 ;
}
GROWABLE _HEAP _STORE _I32 ( tp | 0 , now / 1e3 | 0 ) ;
GROWABLE _HEAP _STORE _I32 ( tp + 4 | 0 , now % 1e3 * 1e3 * 1e3 | 0 ) ;
return 0 ;
}
Module [ "_clock_gettime" ] = _clock _gettime ;
function _ _ _clock _gettime ( a0 , a1 ) {
return _clock _gettime ( a0 , a1 ) ;
}
Module [ "___clock_gettime" ] = _ _ _clock _gettime ;
function _ _ _cxa _allocate _exception ( size ) {
return _malloc ( size ) ;
}
Module [ "___cxa_allocate_exception" ] = _ _ _cxa _allocate _exception ;
function _atexit ( func , arg ) {
if ( ENVIRONMENT _IS _PTHREAD ) return _emscripten _proxy _to _main _thread _js ( 1 , 1 , func , arg ) ;
warnOnce ( "atexit() called, but EXIT_RUNTIME is not set, so atexits() will not be called. set EXIT_RUNTIME to 1 (see the FAQ)" ) ;
_ _ATEXIT _ _ . unshift ( {
func : func ,
arg : arg
} ) ;
}
Module [ "_atexit" ] = _atexit ;
function _ _ _cxa _atexit ( ) {
return _atexit . apply ( null , arguments ) ;
}
Module [ "___cxa_atexit" ] = _ _ _cxa _atexit ;
var _ _ _exception _caught = [ ] ;
Module [ "___exception_caught" ] = _ _ _exception _caught ;
var _ _ _exception _infos = { } ;
Module [ "___exception_infos" ] = _ _ _exception _infos ;
function _ _ _exception _deAdjust ( adjusted ) {
if ( ! adjusted || _ _ _exception _infos [ adjusted ] ) return adjusted ;
for ( var key in _ _ _exception _infos ) {
var ptr = + key ;
var adj = _ _ _exception _infos [ ptr ] . adjusted ;
var len = adj . length ;
for ( var i = 0 ; i < len ; i ++ ) {
if ( adj [ i ] === adjusted ) {
return ptr ;
}
}
}
return adjusted ;
}
Module [ "___exception_deAdjust" ] = _ _ _exception _deAdjust ;
var _ _ _exception _last = 0 ;
Module [ "___exception_last" ] = _ _ _exception _last ;
function _ _ _cxa _rethrow ( ) {
var ptr = _ _ _exception _caught . pop ( ) ;
ptr = _ _ _exception _deAdjust ( ptr ) ;
if ( ! _ _ _exception _infos [ ptr ] . rethrown ) {
_ _ _exception _caught . push ( ptr ) ;
_ _ _exception _infos [ ptr ] . rethrown = true ;
}
_ _ _exception _last = ptr ;
throw ptr + " - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch." ;
}
Module [ "___cxa_rethrow" ] = _ _ _cxa _rethrow ;
function _ _ _cxa _throw ( ptr , type , destructor ) {
_ _ _exception _infos [ ptr ] = {
ptr : ptr ,
adjusted : [ ptr ] ,
type : type ,
destructor : destructor ,
refcount : 0 ,
caught : false ,
rethrown : false
} ;
_ _ _exception _last = ptr ;
if ( ! ( "uncaught_exception" in _ _ZSt18uncaught _exceptionv ) ) {
_ _ZSt18uncaught _exceptionv . uncaught _exceptions = 1 ;
} else {
_ _ZSt18uncaught _exceptionv . uncaught _exceptions ++ ;
}
throw ptr + " - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch." ;
}
Module [ "___cxa_throw" ] = _ _ _cxa _throw ;
function _ _ _lock ( ) { }
Module [ "___lock" ] = _ _ _lock ;
function _ _ _map _file ( pathname , size ) {
_ _ _setErrNo ( 63 ) ;
return - 1 ;
}
Module [ "___map_file" ] = _ _ _map _file ;
var PATH = {
splitPath : ( function ( filename ) {
var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/ ;
return splitPathRe . exec ( filename ) . slice ( 1 ) ;
} ) ,
normalizeArray : ( function ( parts , allowAboveRoot ) {
var up = 0 ;
for ( var i = parts . length - 1 ; i >= 0 ; i -- ) {
var last = parts [ i ] ;
if ( last === "." ) {
parts . splice ( i , 1 ) ;
} else if ( last === ".." ) {
parts . splice ( i , 1 ) ;
up ++ ;
} else if ( up ) {
parts . splice ( i , 1 ) ;
up -- ;
}
}
if ( allowAboveRoot ) {
for ( ; up ; up -- ) {
parts . unshift ( ".." ) ;
}
}
return parts ;
} ) ,
normalize : ( function ( path ) {
var isAbsolute = path . charAt ( 0 ) === "/" , trailingSlash = path . substr ( - 1 ) === "/" ;
path = PATH . normalizeArray ( path . split ( "/" ) . filter ( ( function ( p ) {
return ! ! p ;
} ) ) , ! isAbsolute ) . join ( "/" ) ;
if ( ! path && ! isAbsolute ) {
path = "." ;
}
if ( path && trailingSlash ) {
path += "/" ;
}
return ( isAbsolute ? "/" : "" ) + path ;
} ) ,
dirname : ( function ( path ) {
var result = PATH . splitPath ( path ) , root = result [ 0 ] , dir = result [ 1 ] ;
if ( ! root && ! dir ) {
return "." ;
}
if ( dir ) {
dir = dir . substr ( 0 , dir . length - 1 ) ;
}
return root + dir ;
} ) ,
basename : ( function ( path ) {
if ( path === "/" ) return "/" ;
var lastSlash = path . lastIndexOf ( "/" ) ;
if ( lastSlash === - 1 ) return path ;
return path . substr ( lastSlash + 1 ) ;
} ) ,
extname : ( function ( path ) {
return PATH . splitPath ( path ) [ 3 ] ;
} ) ,
join : ( function ( ) {
var paths = Array . prototype . slice . call ( arguments , 0 ) ;
return PATH . normalize ( paths . join ( "/" ) ) ;
} ) ,
join2 : ( function ( l , r ) {
return PATH . normalize ( l + "/" + r ) ;
} )
} ;
Module [ "PATH" ] = PATH ;
var PATH _FS = {
resolve : ( function ( ) {
var resolvedPath = "" , resolvedAbsolute = false ;
for ( var i = arguments . length - 1 ; i >= - 1 && ! resolvedAbsolute ; i -- ) {
var path = i >= 0 ? arguments [ i ] : FS . cwd ( ) ;
if ( typeof path !== "string" ) {
throw new TypeError ( "Arguments to path.resolve must be strings" ) ;
} else if ( ! path ) {
return "" ;
}
resolvedPath = path + "/" + resolvedPath ;
resolvedAbsolute = path . charAt ( 0 ) === "/" ;
}
resolvedPath = PATH . normalizeArray ( resolvedPath . split ( "/" ) . filter ( ( function ( p ) {
return ! ! p ;
} ) ) , ! resolvedAbsolute ) . join ( "/" ) ;
return ( resolvedAbsolute ? "/" : "" ) + resolvedPath || "." ;
} ) ,
relative : ( function ( from , to ) {
from = PATH _FS . resolve ( from ) . substr ( 1 ) ;
to = PATH _FS . resolve ( to ) . substr ( 1 ) ;
function trim ( arr ) {
var start = 0 ;
for ( ; start < arr . length ; start ++ ) {
if ( arr [ start ] !== "" ) break ;
}
var end = arr . length - 1 ;
for ( ; end >= 0 ; end -- ) {
if ( arr [ end ] !== "" ) break ;
}
if ( start > end ) return [ ] ;
return arr . slice ( start , end - start + 1 ) ;
}
var fromParts = trim ( from . split ( "/" ) ) ;
var toParts = trim ( to . split ( "/" ) ) ;
var length = Math . min ( fromParts . length , toParts . length ) ;
var samePartsLength = length ;
for ( var i = 0 ; i < length ; i ++ ) {
if ( fromParts [ i ] !== toParts [ i ] ) {
samePartsLength = i ;
break ;
}
}
var outputParts = [ ] ;
for ( var i = samePartsLength ; i < fromParts . length ; i ++ ) {
outputParts . push ( ".." ) ;
}
outputParts = outputParts . concat ( toParts . slice ( samePartsLength ) ) ;
return outputParts . join ( "/" ) ;
} )
} ;
Module [ "PATH_FS" ] = PATH _FS ;
var TTY = {
ttys : [ ] ,
init : ( function ( ) { } ) ,
shutdown : ( function ( ) { } ) ,
register : ( function ( dev , ops ) {
TTY . ttys [ dev ] = {
input : [ ] ,
output : [ ] ,
ops : ops
} ;
FS . registerDevice ( dev , TTY . stream _ops ) ;
} ) ,
stream _ops : {
open : ( function ( stream ) {
var tty = TTY . ttys [ stream . node . rdev ] ;
if ( ! tty ) {
throw new FS . ErrnoError ( 43 ) ;
}
stream . tty = tty ;
stream . seekable = false ;
} ) ,
close : ( function ( stream ) {
stream . tty . ops . flush ( stream . tty ) ;
} ) ,
flush : ( function ( stream ) {
stream . tty . ops . flush ( stream . tty ) ;
} ) ,
read : ( function ( stream , buffer , offset , length , pos ) {
if ( ! stream . tty || ! stream . tty . ops . get _char ) {
throw new FS . ErrnoError ( 60 ) ;
}
var bytesRead = 0 ;
for ( var i = 0 ; i < length ; i ++ ) {
var result ;
try {
result = stream . tty . ops . get _char ( stream . tty ) ;
} catch ( e ) {
throw new FS . ErrnoError ( 29 ) ;
}
if ( result === undefined && bytesRead === 0 ) {
throw new FS . ErrnoError ( 6 ) ;
}
if ( result === null || result === undefined ) break ;
bytesRead ++ ;
buffer [ offset + i ] = result ;
}
if ( bytesRead ) {
stream . node . timestamp = Date . now ( ) ;
}
return bytesRead ;
} ) ,
write : ( function ( stream , buffer , offset , length , pos ) {
if ( ! stream . tty || ! stream . tty . ops . put _char ) {
throw new FS . ErrnoError ( 60 ) ;
}
try {
for ( var i = 0 ; i < length ; i ++ ) {
stream . tty . ops . put _char ( stream . tty , buffer [ offset + i ] ) ;
}
} catch ( e ) {
throw new FS . ErrnoError ( 29 ) ;
}
if ( length ) {
stream . node . timestamp = Date . now ( ) ;
}
return i ;
} )
} ,
default _tty _ops : {
get _char : ( function ( tty ) {
if ( ! tty . input . length ) {
var result = null ;
if ( ENVIRONMENT _IS _NODE ) {
var BUFSIZE = 256 ;
var buf = Buffer . alloc ? Buffer . alloc ( BUFSIZE ) : new Buffer ( BUFSIZE ) ;
var bytesRead = 0 ;
try {
bytesRead = nodeFS . readSync ( process . stdin . fd , buf , 0 , BUFSIZE , null ) ;
} catch ( e ) {
if ( e . toString ( ) . indexOf ( "EOF" ) != - 1 ) bytesRead = 0 ; else throw e ;
}
if ( bytesRead > 0 ) {
result = buf . slice ( 0 , bytesRead ) . toString ( "utf-8" ) ;
} else {
result = null ;
}
} else if ( typeof window != "undefined" && typeof window . prompt == "function" ) {
result = window . prompt ( "Input: " ) ;
if ( result !== null ) {
result += "\n" ;
}
} else if ( typeof readline == "function" ) {
result = readline ( ) ;
if ( result !== null ) {
result += "\n" ;
}
}
if ( ! result ) {
return null ;
}
tty . input = intArrayFromString ( result , true ) ;
}
return tty . input . shift ( ) ;
} ) ,
put _char : ( function ( tty , val ) {
if ( val === null || val === 10 ) {
out ( UTF8ArrayToString ( tty . output , 0 ) ) ;
tty . output = [ ] ;
} else {
if ( val != 0 ) tty . output . push ( val ) ;
}
} ) ,
flush : ( function ( tty ) {
if ( tty . output && tty . output . length > 0 ) {
out ( UTF8ArrayToString ( tty . output , 0 ) ) ;
tty . output = [ ] ;
}
} )
} ,
default _tty1 _ops : {
put _char : ( function ( tty , val ) {
if ( val === null || val === 10 ) {
err ( UTF8ArrayToString ( tty . output , 0 ) ) ;
tty . output = [ ] ;
} else {
if ( val != 0 ) tty . output . push ( val ) ;
}
} ) ,
flush : ( function ( tty ) {
if ( tty . output && tty . output . length > 0 ) {
err ( UTF8ArrayToString ( tty . output , 0 ) ) ;
tty . output = [ ] ;
}
} )
}
} ;
Module [ "TTY" ] = TTY ;
var MEMFS = {
ops _table : null ,
mount : ( function ( mount ) {
return MEMFS . createNode ( null , "/" , 16384 | 511 , 0 ) ;
} ) ,
createNode : ( function ( parent , name , mode , dev ) {
if ( FS . isBlkdev ( mode ) || FS . isFIFO ( mode ) ) {
throw new FS . ErrnoError ( 63 ) ;
}
if ( ! MEMFS . ops _table ) {
MEMFS . ops _table = {
dir : {
node : {
getattr : MEMFS . node _ops . getattr ,
setattr : MEMFS . node _ops . setattr ,
lookup : MEMFS . node _ops . lookup ,
mknod : MEMFS . node _ops . mknod ,
rename : MEMFS . node _ops . rename ,
unlink : MEMFS . node _ops . unlink ,
rmdir : MEMFS . node _ops . rmdir ,
readdir : MEMFS . node _ops . readdir ,
symlink : MEMFS . node _ops . symlink
} ,
stream : {
llseek : MEMFS . stream _ops . llseek
}
} ,
file : {
node : {
getattr : MEMFS . node _ops . getattr ,
setattr : MEMFS . node _ops . setattr
} ,
stream : {
llseek : MEMFS . stream _ops . llseek ,
read : MEMFS . stream _ops . read ,
write : MEMFS . stream _ops . write ,
allocate : MEMFS . stream _ops . allocate ,
mmap : MEMFS . stream _ops . mmap ,
msync : MEMFS . stream _ops . msync
}
} ,
link : {
node : {
getattr : MEMFS . node _ops . getattr ,
setattr : MEMFS . node _ops . setattr ,
readlink : MEMFS . node _ops . readlink
} ,
stream : { }
} ,
chrdev : {
node : {
getattr : MEMFS . node _ops . getattr ,
setattr : MEMFS . node _ops . setattr
} ,
stream : FS . chrdev _stream _ops
}
} ;
}
var node = FS . createNode ( parent , name , mode , dev ) ;
if ( FS . isDir ( node . mode ) ) {
node . node _ops = MEMFS . ops _table . dir . node ;
node . stream _ops = MEMFS . ops _table . dir . stream ;
node . contents = { } ;
} else if ( FS . isFile ( node . mode ) ) {
node . node _ops = MEMFS . ops _table . file . node ;
node . stream _ops = MEMFS . ops _table . file . stream ;
node . usedBytes = 0 ;
node . contents = null ;
} else if ( FS . isLink ( node . mode ) ) {
node . node _ops = MEMFS . ops _table . link . node ;
node . stream _ops = MEMFS . ops _table . link . stream ;
} else if ( FS . isChrdev ( node . mode ) ) {
node . node _ops = MEMFS . ops _table . chrdev . node ;
node . stream _ops = MEMFS . ops _table . chrdev . stream ;
}
node . timestamp = Date . now ( ) ;
if ( parent ) {
parent . contents [ name ] = node ;
}
return node ;
} ) ,
getFileDataAsRegularArray : ( function ( node ) {
if ( node . contents && node . contents . subarray ) {
var arr = [ ] ;
for ( var i = 0 ; i < node . usedBytes ; ++ i ) arr . push ( node . contents [ i ] ) ;
return arr ;
}
return node . contents ;
} ) ,
getFileDataAsTypedArray : ( function ( node ) {
if ( ! node . contents ) return new Uint8Array ;
if ( node . contents . subarray ) return node . contents . subarray ( 0 , node . usedBytes ) ;
return new Uint8Array ( node . contents ) ;
} ) ,
expandFileStorage : ( function ( node , newCapacity ) {
var prevCapacity = node . contents ? node . contents . length : 0 ;
if ( prevCapacity >= newCapacity ) return ;
var CAPACITY _DOUBLING _MAX = 1024 * 1024 ;
newCapacity = Math . max ( newCapacity , prevCapacity * ( prevCapacity < CAPACITY _DOUBLING _MAX ? 2 : 1.125 ) | 0 ) ;
if ( prevCapacity != 0 ) newCapacity = Math . max ( newCapacity , 256 ) ;
var oldContents = node . contents ;
node . contents = new Uint8Array ( newCapacity ) ;
if ( node . usedBytes > 0 ) node . contents . set ( oldContents . subarray ( 0 , node . usedBytes ) , 0 ) ;
return ;
} ) ,
resizeFileStorage : ( function ( node , newSize ) {
if ( node . usedBytes == newSize ) return ;
if ( newSize == 0 ) {
node . contents = null ;
node . usedBytes = 0 ;
return ;
}
if ( ! node . contents || node . contents . subarray ) {
var oldContents = node . contents ;
node . contents = new Uint8Array ( new ArrayBuffer ( newSize ) ) ;
if ( oldContents ) {
node . contents . set ( oldContents . subarray ( 0 , Math . min ( newSize , node . usedBytes ) ) ) ;
}
node . usedBytes = newSize ;
return ;
}
if ( ! node . contents ) node . contents = [ ] ;
if ( node . contents . length > newSize ) node . contents . length = newSize ; else while ( node . contents . length < newSize ) node . contents . push ( 0 ) ;
node . usedBytes = newSize ;
} ) ,
node _ops : {
getattr : ( function ( node ) {
var attr = { } ;
attr . dev = FS . isChrdev ( node . mode ) ? node . id : 1 ;
attr . ino = node . id ;
attr . mode = node . mode ;
attr . nlink = 1 ;
attr . uid = 0 ;
attr . gid = 0 ;
attr . rdev = node . rdev ;
if ( FS . isDir ( node . mode ) ) {
attr . size = 4096 ;
} else if ( FS . isFile ( node . mode ) ) {
attr . size = node . usedBytes ;
} else if ( FS . isLink ( node . mode ) ) {
attr . size = node . link . length ;
} else {
attr . size = 0 ;
}
attr . atime = new Date ( node . timestamp ) ;
attr . mtime = new Date ( node . timestamp ) ;
attr . ctime = new Date ( node . timestamp ) ;
attr . blksize = 4096 ;
attr . blocks = Math . ceil ( attr . size / attr . blksize ) ;
return attr ;
} ) ,
setattr : ( function ( node , attr ) {
if ( attr . mode !== undefined ) {
node . mode = attr . mode ;
}
if ( attr . timestamp !== undefined ) {
node . timestamp = attr . timestamp ;
}
if ( attr . size !== undefined ) {
MEMFS . resizeFileStorage ( node , attr . size ) ;
}
} ) ,
lookup : ( function ( parent , name ) {
throw FS . genericErrors [ 44 ] ;
} ) ,
mknod : ( function ( parent , name , mode , dev ) {
return MEMFS . createNode ( parent , name , mode , dev ) ;
} ) ,
rename : ( function ( old _node , new _dir , new _name ) {
if ( FS . isDir ( old _node . mode ) ) {
var new _node ;
try {
new _node = FS . lookupNode ( new _dir , new _name ) ;
} catch ( e ) { }
if ( new _node ) {
for ( var i in new _node . contents ) {
throw new FS . ErrnoError ( 55 ) ;
}
}
}
delete old _node . parent . contents [ old _node . name ] ;
old _node . name = new _name ;
new _dir . contents [ new _name ] = old _node ;
old _node . parent = new _dir ;
} ) ,
unlink : ( function ( parent , name ) {
delete parent . contents [ name ] ;
} ) ,
rmdir : ( function ( parent , name ) {
var node = FS . lookupNode ( parent , name ) ;
for ( var i in node . contents ) {
throw new FS . ErrnoError ( 55 ) ;
}
delete parent . contents [ name ] ;
} ) ,
readdir : ( function ( node ) {
var entries = [ "." , ".." ] ;
for ( var key in node . contents ) {
if ( ! node . contents . hasOwnProperty ( key ) ) {
continue ;
}
entries . push ( key ) ;
}
return entries ;
} ) ,
symlink : ( function ( parent , newname , oldpath ) {
var node = MEMFS . createNode ( parent , newname , 511 | 40960 , 0 ) ;
node . link = oldpath ;
return node ;
} ) ,
readlink : ( function ( node ) {
if ( ! FS . isLink ( node . mode ) ) {
throw new FS . ErrnoError ( 28 ) ;
}
return node . link ;
} )
} ,
stream _ops : {
read : ( function ( stream , buffer , offset , length , position ) {
var contents = stream . node . contents ;
if ( position >= stream . node . usedBytes ) return 0 ;
var size = Math . min ( stream . node . usedBytes - position , length ) ;
assert ( size >= 0 ) ;
if ( size > 8 && contents . subarray ) {
buffer . set ( contents . subarray ( position , position + size ) , offset ) ;
} else {
for ( var i = 0 ; i < size ; i ++ ) buffer [ offset + i ] = contents [ position + i ] ;
}
return size ;
} ) ,
write : ( function ( stream , buffer , offset , length , position , canOwn ) {
assert ( ! ( buffer instanceof ArrayBuffer ) ) ;
if ( buffer . buffer === HEAP8 . buffer ) {
if ( canOwn ) {
warnOnce ( "file packager has copied file data into memory, but in memory growth we are forced to copy it again (see --no-heap-copy)" ) ;
}
canOwn = false ;
}
if ( ! length ) return 0 ;
var node = stream . node ;
node . timestamp = Date . now ( ) ;
if ( buffer . subarray && ( ! node . contents || node . contents . subarray ) ) {
if ( canOwn ) {
assert ( position === 0 , "canOwn must imply no weird position inside the file" ) ;
node . contents = buffer . subarray ( offset , offset + length ) ;
node . usedBytes = length ;
return length ;
} else if ( node . usedBytes === 0 && position === 0 ) {
node . contents = new Uint8Array ( buffer . subarray ( offset , offset + length ) ) ;
node . usedBytes = length ;
return length ;
} else if ( position + length <= node . usedBytes ) {
node . contents . set ( buffer . subarray ( offset , offset + length ) , position ) ;
return length ;
}
}
MEMFS . expandFileStorage ( node , position + length ) ;
if ( node . contents . subarray && buffer . subarray ) node . contents . set ( buffer . subarray ( offset , offset + length ) , position ) ; else {
for ( var i = 0 ; i < length ; i ++ ) {
node . contents [ position + i ] = buffer [ offset + i ] ;
}
}
node . usedBytes = Math . max ( node . usedBytes , position + length ) ;
return length ;
} ) ,
llseek : ( function ( stream , offset , whence ) {
var position = offset ;
if ( whence === 1 ) {
position += stream . position ;
} else if ( whence === 2 ) {
if ( FS . isFile ( stream . node . mode ) ) {
position += stream . node . usedBytes ;
}
}
if ( position < 0 ) {
throw new FS . ErrnoError ( 28 ) ;
}
return position ;
} ) ,
allocate : ( function ( stream , offset , length ) {
MEMFS . expandFileStorage ( stream . node , offset + length ) ;
stream . node . usedBytes = Math . max ( stream . node . usedBytes , offset + length ) ;
} ) ,
mmap : ( function ( stream , buffer , offset , length , position , prot , flags ) {
assert ( ! ( buffer instanceof ArrayBuffer ) ) ;
if ( ! FS . isFile ( stream . node . mode ) ) {
throw new FS . ErrnoError ( 43 ) ;
}
var ptr ;
var allocated ;
var contents = stream . node . contents ;
if ( ! ( flags & 2 ) && contents . buffer === buffer . buffer ) {
allocated = false ;
ptr = contents . byteOffset ;
} else {
if ( position > 0 || position + length < stream . node . usedBytes ) {
if ( contents . subarray ) {
contents = contents . subarray ( position , position + length ) ;
} else {
contents = Array . prototype . slice . call ( contents , position , position + length ) ;
}
}
allocated = true ;
var fromHeap = buffer . buffer == HEAP8 . buffer ;
ptr = _malloc ( length ) ;
if ( ! ptr ) {
throw new FS . ErrnoError ( 48 ) ;
}
( fromHeap ? HEAP8 : buffer ) . set ( contents , ptr ) ;
}
return {
ptr : ptr ,
allocated : allocated
} ;
} ) ,
msync : ( function ( stream , buffer , offset , length , mmapFlags ) {
if ( ! FS . isFile ( stream . node . mode ) ) {
throw new FS . ErrnoError ( 43 ) ;
}
if ( mmapFlags & 2 ) {
return 0 ;
}
var bytesWritten = MEMFS . stream _ops . write ( stream , buffer , 0 , length , offset , false ) ;
return 0 ;
} )
}
} ;
Module [ "MEMFS" ] = MEMFS ;
var NODEFS = {
isWindows : false ,
staticInit : ( function ( ) {
NODEFS . isWindows = ! ! process . platform . match ( /^win/ ) ;
var flags = process [ "binding" ] ( "constants" ) ;
if ( flags [ "fs" ] ) {
flags = flags [ "fs" ] ;
}
NODEFS . flagsForNodeMap = {
"1024" : flags [ "O_APPEND" ] ,
"64" : flags [ "O_CREAT" ] ,
"128" : flags [ "O_EXCL" ] ,
"0" : flags [ "O_RDONLY" ] ,
"2" : flags [ "O_RDWR" ] ,
"4096" : flags [ "O_SYNC" ] ,
"512" : flags [ "O_TRUNC" ] ,
"1" : flags [ "O_WRONLY" ]
} ;
} ) ,
bufferFrom : ( function ( arrayBuffer ) {
return Buffer [ "alloc" ] ? Buffer . from ( arrayBuffer ) : new Buffer ( arrayBuffer ) ;
} ) ,
convertNodeCode : ( function ( e ) {
var code = e . code ;
assert ( code in ERRNO _CODES ) ;
return ERRNO _CODES [ code ] ;
} ) ,
mount : ( function ( mount ) {
assert ( ENVIRONMENT _HAS _NODE ) ;
return NODEFS . createNode ( null , "/" , NODEFS . getMode ( mount . opts . root ) , 0 ) ;
} ) ,
createNode : ( function ( parent , name , mode , dev ) {
if ( ! FS . isDir ( mode ) && ! FS . isFile ( mode ) && ! FS . isLink ( mode ) ) {
throw new FS . ErrnoError ( 28 ) ;
}
var node = FS . createNode ( parent , name , mode ) ;
node . node _ops = NODEFS . node _ops ;
node . stream _ops = NODEFS . stream _ops ;
return node ;
} ) ,
getMode : ( function ( path ) {
var stat ;
try {
stat = fs . lstatSync ( path ) ;
if ( NODEFS . isWindows ) {
stat . mode = stat . mode | ( stat . mode & 292 ) >> 2 ;
}
} catch ( e ) {
if ( ! e . code ) throw e ;
throw new FS . ErrnoError ( NODEFS . convertNodeCode ( e ) ) ;
}
return stat . mode ;
} ) ,
realPath : ( function ( node ) {
var parts = [ ] ;
while ( node . parent !== node ) {
parts . push ( node . name ) ;
node = node . parent ;
}
parts . push ( node . mount . opts . root ) ;
parts . reverse ( ) ;
return PATH . join . apply ( null , parts ) ;
} ) ,
flagsForNode : ( function ( flags ) {
flags &= ~ 2097152 ;
flags &= ~ 2048 ;
flags &= ~ 32768 ;
flags &= ~ 524288 ;
var newFlags = 0 ;
for ( var k in NODEFS . flagsForNodeMap ) {
if ( flags & k ) {
newFlags |= NODEFS . flagsForNodeMap [ k ] ;
flags ^= k ;
}
}
if ( ! flags ) {
return newFlags ;
} else {
throw new FS . ErrnoError ( 28 ) ;
}
} ) ,
node _ops : {
getattr : ( function ( node ) {
var path = NODEFS . realPath ( node ) ;
var stat ;
try {
stat = fs . lstatSync ( path ) ;
} catch ( e ) {
if ( ! e . code ) throw e ;
throw new FS . ErrnoError ( NODEFS . convertNodeCode ( e ) ) ;
}
if ( NODEFS . isWindows && ! stat . blksize ) {
stat . blksize = 4096 ;
}
if ( NODEFS . isWindows && ! stat . blocks ) {
stat . blocks = ( stat . size + stat . blksize - 1 ) / stat . blksize | 0 ;
}
return {
dev : stat . dev ,
ino : stat . ino ,
mode : stat . mode ,
nlink : stat . nlink ,
uid : stat . uid ,
gid : stat . gid ,
rdev : stat . rdev ,
size : stat . size ,
atime : stat . atime ,
mtime : stat . mtime ,
ctime : stat . ctime ,
blksize : stat . blksize ,
blocks : stat . blocks
} ;
} ) ,
setattr : ( function ( node , attr ) {
var path = NODEFS . realPath ( node ) ;
try {
if ( attr . mode !== undefined ) {
fs . chmodSync ( path , attr . mode ) ;
node . mode = attr . mode ;
}
if ( attr . timestamp !== undefined ) {
var date = new Date ( attr . timestamp ) ;
fs . utimesSync ( path , date , date ) ;
}
if ( attr . size !== undefined ) {
fs . truncateSync ( path , attr . size ) ;
}
} catch ( e ) {
if ( ! e . code ) throw e ;
throw new FS . ErrnoError ( NODEFS . convertNodeCode ( e ) ) ;
}
} ) ,
lookup : ( function ( parent , name ) {
var path = PATH . join2 ( NODEFS . realPath ( parent ) , name ) ;
var mode = NODEFS . getMode ( path ) ;
return NODEFS . createNode ( parent , name , mode ) ;
} ) ,
mknod : ( function ( parent , name , mode , dev ) {
var node = NODEFS . createNode ( parent , name , mode , dev ) ;
var path = NODEFS . realPath ( node ) ;
try {
if ( FS . isDir ( node . mode ) ) {
fs . mkdirSync ( path , node . mode ) ;
} else {
fs . writeFileSync ( path , "" , {
mode : node . mode
} ) ;
}
} catch ( e ) {
if ( ! e . code ) throw e ;
throw new FS . ErrnoError ( NODEFS . convertNodeCode ( e ) ) ;
}
return node ;
} ) ,
rename : ( function ( oldNode , newDir , newName ) {
var oldPath = NODEFS . realPath ( oldNode ) ;
var newPath = PATH . join2 ( NODEFS . realPath ( newDir ) , newName ) ;
try {
fs . renameSync ( oldPath , newPath ) ;
} catch ( e ) {
if ( ! e . code ) throw e ;
throw new FS . ErrnoError ( NODEFS . convertNodeCode ( e ) ) ;
}
} ) ,
unlink : ( function ( parent , name ) {
var path = PATH . join2 ( NODEFS . realPath ( parent ) , name ) ;
try {
fs . unlinkSync ( path ) ;
} catch ( e ) {
if ( ! e . code ) throw e ;
throw new FS . ErrnoError ( NODEFS . convertNodeCode ( e ) ) ;
}
} ) ,
rmdir : ( function ( parent , name ) {
var path = PATH . join2 ( NODEFS . realPath ( parent ) , name ) ;
try {
fs . rmdirSync ( path ) ;
} catch ( e ) {
if ( ! e . code ) throw e ;
throw new FS . ErrnoError ( NODEFS . convertNodeCode ( e ) ) ;
}
} ) ,
readdir : ( function ( node ) {
var path = NODEFS . realPath ( node ) ;
try {
return fs . readdirSync ( path ) ;
} catch ( e ) {
if ( ! e . code ) throw e ;
throw new FS . ErrnoError ( NODEFS . convertNodeCode ( e ) ) ;
}
} ) ,
symlink : ( function ( parent , newName , oldPath ) {
var newPath = PATH . join2 ( NODEFS . realPath ( parent ) , newName ) ;
try {
fs . symlinkSync ( oldPath , newPath ) ;
} catch ( e ) {
if ( ! e . code ) throw e ;
throw new FS . ErrnoError ( NODEFS . convertNodeCode ( e ) ) ;
}
} ) ,
readlink : ( function ( node ) {
var path = NODEFS . realPath ( node ) ;
try {
path = fs . readlinkSync ( path ) ;
path = NODEJS _PATH . relative ( NODEJS _PATH . resolve ( node . mount . opts . root ) , path ) ;
return path ;
} catch ( e ) {
if ( ! e . code ) throw e ;
throw new FS . ErrnoError ( NODEFS . convertNodeCode ( e ) ) ;
}
} )
} ,
stream _ops : {
open : ( function ( stream ) {
var path = NODEFS . realPath ( stream . node ) ;
try {
if ( FS . isFile ( stream . node . mode ) ) {
stream . nfd = fs . openSync ( path , NODEFS . flagsForNode ( stream . flags ) ) ;
}
} catch ( e ) {
if ( ! e . code ) throw e ;
throw new FS . ErrnoError ( NODEFS . convertNodeCode ( e ) ) ;
}
} ) ,
close : ( function ( stream ) {
try {
if ( FS . isFile ( stream . node . mode ) && stream . nfd ) {
fs . closeSync ( stream . nfd ) ;
}
} catch ( e ) {
if ( ! e . code ) throw e ;
throw new FS . ErrnoError ( NODEFS . convertNodeCode ( e ) ) ;
}
} ) ,
read : ( function ( stream , buffer , offset , length , position ) {
if ( length === 0 ) return 0 ;
try {
return fs . readSync ( stream . nfd , NODEFS . bufferFrom ( buffer . buffer ) , offset , length , position ) ;
} catch ( e ) {
throw new FS . ErrnoError ( NODEFS . convertNodeCode ( e ) ) ;
}
} ) ,
write : ( function ( stream , buffer , offset , length , position ) {
try {
return fs . writeSync ( stream . nfd , NODEFS . bufferFrom ( buffer . buffer ) , offset , length , position ) ;
} catch ( e ) {
throw new FS . ErrnoError ( NODEFS . convertNodeCode ( e ) ) ;
}
} ) ,
llseek : ( function ( stream , offset , whence ) {
var position = offset ;
if ( whence === 1 ) {
position += stream . position ;
} else if ( whence === 2 ) {
if ( FS . isFile ( stream . node . mode ) ) {
try {
var stat = fs . fstatSync ( stream . nfd ) ;
position += stat . size ;
} catch ( e ) {
throw new FS . ErrnoError ( NODEFS . convertNodeCode ( e ) ) ;
}
}
}
if ( position < 0 ) {
throw new FS . ErrnoError ( 28 ) ;
}
return position ;
} )
}
} ;
Module [ "NODEFS" ] = NODEFS ;
var ERRNO _MESSAGES = {
0 : "Success" ,
1 : "Arg list too long" ,
2 : "Permission denied" ,
3 : "Address already in use" ,
4 : "Address not available" ,
5 : "Address family not supported by protocol family" ,
6 : "No more processes" ,
7 : "Socket already connected" ,
8 : "Bad file number" ,
9 : "Trying to read unreadable message" ,
10 : "Mount device busy" ,
11 : "Operation canceled" ,
12 : "No children" ,
13 : "Connection aborted" ,
14 : "Connection refused" ,
15 : "Connection reset by peer" ,
16 : "File locking deadlock error" ,
17 : "Destination address required" ,
18 : "Math arg out of domain of func" ,
19 : "Quota exceeded" ,
20 : "File exists" ,
21 : "Bad address" ,
22 : "File too large" ,
23 : "Host is unreachable" ,
24 : "Identifier removed" ,
25 : "Illegal byte sequence" ,
26 : "Connection already in progress" ,
27 : "Interrupted system call" ,
28 : "Invalid argument" ,
29 : "I/O error" ,
30 : "Socket is already connected" ,
31 : "Is a directory" ,
32 : "Too many symbolic links" ,
33 : "Too many open files" ,
34 : "Too many links" ,
35 : "Message too long" ,
36 : "Multihop attempted" ,
37 : "File or path name too long" ,
38 : "Network interface is not configured" ,
39 : "Connection reset by network" ,
40 : "Network is unreachable" ,
41 : "Too many open files in system" ,
42 : "No buffer space available" ,
43 : "No such device" ,
44 : "No such file or directory" ,
45 : "Exec format error" ,
46 : "No record locks available" ,
47 : "The link has been severed" ,
48 : "Not enough core" ,
49 : "No message of desired type" ,
50 : "Protocol not available" ,
51 : "No space left on device" ,
52 : "Function not implemented" ,
53 : "Socket is not connected" ,
54 : "Not a directory" ,
55 : "Directory not empty" ,
56 : "State not recoverable" ,
57 : "Socket operation on non-socket" ,
59 : "Not a typewriter" ,
60 : "No such device or address" ,
61 : "Value too large for defined data type" ,
62 : "Previous owner died" ,
63 : "Not super-user" ,
64 : "Broken pipe" ,
65 : "Protocol error" ,
66 : "Unknown protocol" ,
67 : "Protocol wrong type for socket" ,
68 : "Math result not representable" ,
69 : "Read only file system" ,
70 : "Illegal seek" ,
71 : "No such process" ,
72 : "Stale file handle" ,
73 : "Connection timed out" ,
74 : "Text file busy" ,
75 : "Cross-device link" ,
100 : "Device not a stream" ,
101 : "Bad font file fmt" ,
102 : "Invalid slot" ,
103 : "Invalid request code" ,
104 : "No anode" ,
105 : "Block device required" ,
106 : "Channel number out of range" ,
107 : "Level 3 halted" ,
108 : "Level 3 reset" ,
109 : "Link number out of range" ,
110 : "Protocol driver not attached" ,
111 : "No CSI structure available" ,
112 : "Level 2 halted" ,
113 : "Invalid exchange" ,
114 : "Invalid request descriptor" ,
115 : "Exchange full" ,
116 : "No data (for no delay io)" ,
117 : "Timer expired" ,
118 : "Out of streams resources" ,
119 : "Machine is not on the network" ,
120 : "Package not installed" ,
121 : "The object is remote" ,
122 : "Advertise error" ,
123 : "Srmount error" ,
124 : "Communication error on send" ,
125 : "Cross mount point (not really error)" ,
126 : "Given log. name not unique" ,
127 : "f.d. invalid for this operation" ,
128 : "Remote address changed" ,
129 : "Can access a needed shared lib" ,
130 : "Accessing a corrupted shared lib" ,
131 : ".lib section in a.out corrupted" ,
132 : "Attempting to link in too many libs" ,
133 : "Attempting to exec a shared library" ,
135 : "Streams pipe error" ,
136 : "Too many users" ,
137 : "Socket type not supported" ,
138 : "Not supported" ,
139 : "Protocol family not supported" ,
140 : "Can't send after socket shutdown" ,
141 : "Too many references" ,
142 : "Host is down" ,
148 : "No medium (in tape drive)" ,
156 : "Level 2 not synchronized"
} ;
Module [ "ERRNO_MESSAGES" ] = ERRNO _MESSAGES ;
var FS = {
root : null ,
mounts : [ ] ,
devices : { } ,
streams : [ ] ,
nextInode : 1 ,
nameTable : null ,
currentPath : "/" ,
initialized : false ,
ignorePermissions : true ,
trackingDelegate : { } ,
tracking : {
openFlags : {
READ : 1 ,
WRITE : 2
}
} ,
ErrnoError : null ,
genericErrors : { } ,
filesystems : null ,
syncFSRequests : 0 ,
handleFSError : ( function ( e ) {
if ( ! ( e instanceof FS . ErrnoError ) ) throw e + " : " + stackTrace ( ) ;
return _ _ _setErrNo ( e . errno ) ;
} ) ,
lookupPath : ( function ( path , opts ) {
path = PATH _FS . resolve ( FS . cwd ( ) , path ) ;
opts = opts || { } ;
if ( ! path ) return {
path : "" ,
node : null
} ;
var defaults = {
follow _mount : true ,
recurse _count : 0
} ;
for ( var key in defaults ) {
if ( opts [ key ] === undefined ) {
opts [ key ] = defaults [ key ] ;
}
}
if ( opts . recurse _count > 8 ) {
throw new FS . ErrnoError ( 32 ) ;
}
var parts = PATH . normalizeArray ( path . split ( "/" ) . filter ( ( function ( p ) {
return ! ! p ;
} ) ) , false ) ;
var current = FS . root ;
var current _path = "/" ;
for ( var i = 0 ; i < parts . length ; i ++ ) {
var islast = i === parts . length - 1 ;
if ( islast && opts . parent ) {
break ;
}
current = FS . lookupNode ( current , parts [ i ] ) ;
current _path = PATH . join2 ( current _path , parts [ i ] ) ;
if ( FS . isMountpoint ( current ) ) {
if ( ! islast || islast && opts . follow _mount ) {
current = current . mounted . root ;
}
}
if ( ! islast || opts . follow ) {
var count = 0 ;
while ( FS . isLink ( current . mode ) ) {
var link = FS . readlink ( current _path ) ;
current _path = PATH _FS . resolve ( PATH . dirname ( current _path ) , link ) ;
var lookup = FS . lookupPath ( current _path , {
recurse _count : opts . recurse _count
} ) ;
current = lookup . node ;
if ( count ++ > 40 ) {
throw new FS . ErrnoError ( 32 ) ;
}
}
}
}
return {
path : current _path ,
node : current
} ;
} ) ,
getPath : ( function ( node ) {
var path ;
while ( true ) {
if ( FS . isRoot ( node ) ) {
var mount = node . mount . mountpoint ;
if ( ! path ) return mount ;
return mount [ mount . length - 1 ] !== "/" ? mount + "/" + path : mount + path ;
}
path = path ? node . name + "/" + path : node . name ;
node = node . parent ;
}
} ) ,
hashName : ( function ( parentid , name ) {
var hash = 0 ;
for ( var i = 0 ; i < name . length ; i ++ ) {
hash = ( hash << 5 ) - hash + name . charCodeAt ( i ) | 0 ;
}
return ( parentid + hash >>> 0 ) % FS . nameTable . length ;
} ) ,
hashAddNode : ( function ( node ) {
var hash = FS . hashName ( node . parent . id , node . name ) ;
node . name _next = FS . nameTable [ hash ] ;
FS . nameTable [ hash ] = node ;
} ) ,
hashRemoveNode : ( function ( node ) {
var hash = FS . hashName ( node . parent . id , node . name ) ;
if ( FS . nameTable [ hash ] === node ) {
FS . nameTable [ hash ] = node . name _next ;
} else {
var current = FS . nameTable [ hash ] ;
while ( current ) {
if ( current . name _next === node ) {
current . name _next = node . name _next ;
break ;
}
current = current . name _next ;
}
}
} ) ,
lookupNode : ( function ( parent , name ) {
var err = FS . mayLookup ( parent ) ;
if ( err ) {
throw new FS . ErrnoError ( err , parent ) ;
}
var hash = FS . hashName ( parent . id , name ) ;
for ( var node = FS . nameTable [ hash ] ; node ; node = node . name _next ) {
var nodeName = node . name ;
if ( node . parent . id === parent . id && nodeName === name ) {
return node ;
}
}
return FS . lookup ( parent , name ) ;
} ) ,
createNode : ( function ( parent , name , mode , rdev ) {
if ( ! FS . FSNode ) {
FS . FSNode = ( function ( parent , name , mode , rdev ) {
if ( ! parent ) {
parent = this ;
}
this . parent = parent ;
this . mount = parent . mount ;
this . mounted = null ;
this . id = FS . nextInode ++ ;
this . name = name ;
this . mode = mode ;
this . node _ops = { } ;
this . stream _ops = { } ;
this . rdev = rdev ;
} ) ;
FS . FSNode . prototype = { } ;
var readMode = 292 | 73 ;
var writeMode = 146 ;
Object . defineProperties ( FS . FSNode . prototype , {
read : {
get : ( function ( ) {
return ( this . mode & readMode ) === readMode ;
} ) ,
set : ( function ( val ) {
val ? this . mode |= readMode : this . mode &= ~ readMode ;
} )
} ,
write : {
get : ( function ( ) {
return ( this . mode & writeMode ) === writeMode ;
} ) ,
set : ( function ( val ) {
val ? this . mode |= writeMode : this . mode &= ~ writeMode ;
} )
} ,
isFolder : {
get : ( function ( ) {
return FS . isDir ( this . mode ) ;
} )
} ,
isDevice : {
get : ( function ( ) {
return FS . isChrdev ( this . mode ) ;
} )
}
} ) ;
}
var node = new FS . FSNode ( parent , name , mode , rdev ) ;
FS . hashAddNode ( node ) ;
return node ;
} ) ,
destroyNode : ( function ( node ) {
FS . hashRemoveNode ( node ) ;
} ) ,
isRoot : ( function ( node ) {
return node === node . parent ;
} ) ,
isMountpoint : ( function ( node ) {
return ! ! node . mounted ;
} ) ,
isFile : ( function ( mode ) {
return ( mode & 61440 ) === 32768 ;
} ) ,
isDir : ( function ( mode ) {
return ( mode & 61440 ) === 16384 ;
} ) ,
isLink : ( function ( mode ) {
return ( mode & 61440 ) === 40960 ;
} ) ,
isChrdev : ( function ( mode ) {
return ( mode & 61440 ) === 8192 ;
} ) ,
isBlkdev : ( function ( mode ) {
return ( mode & 61440 ) === 24576 ;
} ) ,
isFIFO : ( function ( mode ) {
return ( mode & 61440 ) === 4096 ;
} ) ,
isSocket : ( function ( mode ) {
return ( mode & 49152 ) === 49152 ;
} ) ,
flagModes : {
"r" : 0 ,
"rs" : 1052672 ,
"r+" : 2 ,
"w" : 577 ,
"wx" : 705 ,
"xw" : 705 ,
"w+" : 578 ,
"wx+" : 706 ,
"xw+" : 706 ,
"a" : 1089 ,
"ax" : 1217 ,
"xa" : 1217 ,
"a+" : 1090 ,
"ax+" : 1218 ,
"xa+" : 1218
} ,
modeStringToFlags : ( function ( str ) {
var flags = FS . flagModes [ str ] ;
if ( typeof flags === "undefined" ) {
throw new Error ( "Unknown file open mode: " + str ) ;
}
return flags ;
} ) ,
flagsToPermissionString : ( function ( flag ) {
var perms = [ "r" , "w" , "rw" ] [ flag & 3 ] ;
if ( flag & 512 ) {
perms += "w" ;
}
return perms ;
} ) ,
nodePermissions : ( function ( node , perms ) {
if ( FS . ignorePermissions ) {
return 0 ;
}
if ( perms . indexOf ( "r" ) !== - 1 && ! ( node . mode & 292 ) ) {
return 2 ;
} else if ( perms . indexOf ( "w" ) !== - 1 && ! ( node . mode & 146 ) ) {
return 2 ;
} else if ( perms . indexOf ( "x" ) !== - 1 && ! ( node . mode & 73 ) ) {
return 2 ;
}
return 0 ;
} ) ,
mayLookup : ( function ( dir ) {
var err = FS . nodePermissions ( dir , "x" ) ;
if ( err ) return err ;
if ( ! dir . node _ops . lookup ) return 2 ;
return 0 ;
} ) ,
mayCreate : ( function ( dir , name ) {
try {
var node = FS . lookupNode ( dir , name ) ;
return 20 ;
} catch ( e ) { }
return FS . nodePermissions ( dir , "wx" ) ;
} ) ,
mayDelete : ( function ( dir , name , isdir ) {
var node ;
try {
node = FS . lookupNode ( dir , name ) ;
} catch ( e ) {
return e . errno ;
}
var err = FS . nodePermissions ( dir , "wx" ) ;
if ( err ) {
return err ;
}
if ( isdir ) {
if ( ! FS . isDir ( node . mode ) ) {
return 54 ;
}
if ( FS . isRoot ( node ) || FS . getPath ( node ) === FS . cwd ( ) ) {
return 10 ;
}
} else {
if ( FS . isDir ( node . mode ) ) {
return 31 ;
}
}
return 0 ;
} ) ,
mayOpen : ( function ( node , flags ) {
if ( ! node ) {
return 44 ;
}
if ( FS . isLink ( node . mode ) ) {
return 32 ;
} else if ( FS . isDir ( node . mode ) ) {
if ( FS . flagsToPermissionString ( flags ) !== "r" || flags & 512 ) {
return 31 ;
}
}
return FS . nodePermissions ( node , FS . flagsToPermissionString ( flags ) ) ;
} ) ,
MAX _OPEN _FDS : 4096 ,
nextfd : ( function ( fd _start , fd _end ) {
fd _start = fd _start || 0 ;
fd _end = fd _end || FS . MAX _OPEN _FDS ;
for ( var fd = fd _start ; fd <= fd _end ; fd ++ ) {
if ( ! FS . streams [ fd ] ) {
return fd ;
}
}
throw new FS . ErrnoError ( 33 ) ;
} ) ,
getStream : ( function ( fd ) {
return FS . streams [ fd ] ;
} ) ,
createStream : ( function ( stream , fd _start , fd _end ) {
if ( ! FS . FSStream ) {
FS . FSStream = ( function ( ) { } ) ;
FS . FSStream . prototype = { } ;
Object . defineProperties ( FS . FSStream . prototype , {
object : {
get : ( function ( ) {
return this . node ;
} ) ,
set : ( function ( val ) {
this . node = val ;
} )
} ,
isRead : {
get : ( function ( ) {
return ( this . flags & 2097155 ) !== 1 ;
} )
} ,
isWrite : {
get : ( function ( ) {
return ( this . flags & 2097155 ) !== 0 ;
} )
} ,
isAppend : {
get : ( function ( ) {
return this . flags & 1024 ;
} )
}
} ) ;
}
var newStream = new FS . FSStream ;
for ( var p in stream ) {
newStream [ p ] = stream [ p ] ;
}
stream = newStream ;
var fd = FS . nextfd ( fd _start , fd _end ) ;
stream . fd = fd ;
FS . streams [ fd ] = stream ;
return stream ;
} ) ,
closeStream : ( function ( fd ) {
FS . streams [ fd ] = null ;
} ) ,
chrdev _stream _ops : {
open : ( function ( stream ) {
var device = FS . getDevice ( stream . node . rdev ) ;
stream . stream _ops = device . stream _ops ;
if ( stream . stream _ops . open ) {
stream . stream _ops . open ( stream ) ;
}
} ) ,
llseek : ( function ( ) {
throw new FS . ErrnoError ( 70 ) ;
} )
} ,
major : ( function ( dev ) {
return dev >> 8 ;
} ) ,
minor : ( function ( dev ) {
return dev & 255 ;
} ) ,
makedev : ( function ( ma , mi ) {
return ma << 8 | mi ;
} ) ,
registerDevice : ( function ( dev , ops ) {
FS . devices [ dev ] = {
stream _ops : ops
} ;
} ) ,
getDevice : ( function ( dev ) {
return FS . devices [ dev ] ;
} ) ,
getMounts : ( function ( mount ) {
var mounts = [ ] ;
var check = [ mount ] ;
while ( check . length ) {
var m = check . pop ( ) ;
mounts . push ( m ) ;
check . push . apply ( check , m . mounts ) ;
}
return mounts ;
} ) ,
syncfs : ( function ( populate , callback ) {
if ( typeof populate === "function" ) {
callback = populate ;
populate = false ;
}
FS . syncFSRequests ++ ;
if ( FS . syncFSRequests > 1 ) {
console . log ( "warning: " + FS . syncFSRequests + " FS.syncfs operations in flight at once, probably just doing extra work" ) ;
}
var mounts = FS . getMounts ( FS . root . mount ) ;
var completed = 0 ;
function doCallback ( err ) {
assert ( FS . syncFSRequests > 0 ) ;
FS . syncFSRequests -- ;
return callback ( err ) ;
}
function done ( err ) {
if ( err ) {
if ( ! done . errored ) {
done . errored = true ;
return doCallback ( err ) ;
}
return ;
}
if ( ++ completed >= mounts . length ) {
doCallback ( null ) ;
}
}
mounts . forEach ( ( function ( mount ) {
if ( ! mount . type . syncfs ) {
return done ( null ) ;
}
mount . type . syncfs ( mount , populate , done ) ;
} ) ) ;
} ) ,
mount : ( function ( type , opts , mountpoint ) {
if ( typeof type === "string" ) {
throw type ;
}
var root = mountpoint === "/" ;
var pseudo = ! mountpoint ;
var node ;
if ( root && FS . root ) {
throw new FS . ErrnoError ( 10 ) ;
} else if ( ! root && ! pseudo ) {
var lookup = FS . lookupPath ( mountpoint , {
follow _mount : false
} ) ;
mountpoint = lookup . path ;
node = lookup . node ;
if ( FS . isMountpoint ( node ) ) {
throw new FS . ErrnoError ( 10 ) ;
}
if ( ! FS . isDir ( node . mode ) ) {
throw new FS . ErrnoError ( 54 ) ;
}
}
var mount = {
type : type ,
opts : opts ,
mountpoint : mountpoint ,
mounts : [ ]
} ;
var mountRoot = type . mount ( mount ) ;
mountRoot . mount = mount ;
mount . root = mountRoot ;
if ( root ) {
FS . root = mountRoot ;
} else if ( node ) {
node . mounted = mount ;
if ( node . mount ) {
node . mount . mounts . push ( mount ) ;
}
}
return mountRoot ;
} ) ,
unmount : ( function ( mountpoint ) {
var lookup = FS . lookupPath ( mountpoint , {
follow _mount : false
} ) ;
if ( ! FS . isMountpoint ( lookup . node ) ) {
throw new FS . ErrnoError ( 28 ) ;
}
var node = lookup . node ;
var mount = node . mounted ;
var mounts = FS . getMounts ( mount ) ;
Object . keys ( FS . nameTable ) . forEach ( ( function ( hash ) {
var current = FS . nameTable [ hash ] ;
while ( current ) {
var next = current . name _next ;
if ( mounts . indexOf ( current . mount ) !== - 1 ) {
FS . destroyNode ( current ) ;
}
current = next ;
}
} ) ) ;
node . mounted = null ;
var idx = node . mount . mounts . indexOf ( mount ) ;
assert ( idx !== - 1 ) ;
node . mount . mounts . splice ( idx , 1 ) ;
} ) ,
lookup : ( function ( parent , name ) {
return parent . node _ops . lookup ( parent , name ) ;
} ) ,
mknod : ( function ( path , mode , dev ) {
var lookup = FS . lookupPath ( path , {
parent : true
} ) ;
var parent = lookup . node ;
var name = PATH . basename ( path ) ;
if ( ! name || name === "." || name === ".." ) {
throw new FS . ErrnoError ( 28 ) ;
}
var err = FS . mayCreate ( parent , name ) ;
if ( err ) {
throw new FS . ErrnoError ( err ) ;
}
if ( ! parent . node _ops . mknod ) {
throw new FS . ErrnoError ( 63 ) ;
}
return parent . node _ops . mknod ( parent , name , mode , dev ) ;
} ) ,
create : ( function ( path , mode ) {
mode = mode !== undefined ? mode : 438 ;
mode &= 4095 ;
mode |= 32768 ;
return FS . mknod ( path , mode , 0 ) ;
} ) ,
mkdir : ( function ( path , mode ) {
mode = mode !== undefined ? mode : 511 ;
mode &= 511 | 512 ;
mode |= 16384 ;
return FS . mknod ( path , mode , 0 ) ;
} ) ,
mkdirTree : ( function ( path , mode ) {
var dirs = path . split ( "/" ) ;
var d = "" ;
for ( var i = 0 ; i < dirs . length ; ++ i ) {
if ( ! dirs [ i ] ) continue ;
d += "/" + dirs [ i ] ;
try {
FS . mkdir ( d , mode ) ;
} catch ( e ) {
if ( e . errno != 20 ) throw e ;
}
}
} ) ,
mkdev : ( function ( path , mode , dev ) {
if ( typeof dev === "undefined" ) {
dev = mode ;
mode = 438 ;
}
mode |= 8192 ;
return FS . mknod ( path , mode , dev ) ;
} ) ,
symlink : ( function ( oldpath , newpath ) {
if ( ! PATH _FS . resolve ( oldpath ) ) {
throw new FS . ErrnoError ( 44 ) ;
}
var lookup = FS . lookupPath ( newpath , {
parent : true
} ) ;
var parent = lookup . node ;
if ( ! parent ) {
throw new FS . ErrnoError ( 44 ) ;
}
var newname = PATH . basename ( newpath ) ;
var err = FS . mayCreate ( parent , newname ) ;
if ( err ) {
throw new FS . ErrnoError ( err ) ;
}
if ( ! parent . node _ops . symlink ) {
throw new FS . ErrnoError ( 63 ) ;
}
return parent . node _ops . symlink ( parent , newname , oldpath ) ;
} ) ,
rename : ( function ( old _path , new _path ) {
var old _dirname = PATH . dirname ( old _path ) ;
var new _dirname = PATH . dirname ( new _path ) ;
var old _name = PATH . basename ( old _path ) ;
var new _name = PATH . basename ( new _path ) ;
var lookup , old _dir , new _dir ;
try {
lookup = FS . lookupPath ( old _path , {
parent : true
} ) ;
old _dir = lookup . node ;
lookup = FS . lookupPath ( new _path , {
parent : true
} ) ;
new _dir = lookup . node ;
} catch ( e ) {
throw new FS . ErrnoError ( 10 ) ;
}
if ( ! old _dir || ! new _dir ) throw new FS . ErrnoError ( 44 ) ;
if ( old _dir . mount !== new _dir . mount ) {
throw new FS . ErrnoError ( 75 ) ;
}
var old _node = FS . lookupNode ( old _dir , old _name ) ;
var relative = PATH _FS . relative ( old _path , new _dirname ) ;
if ( relative . charAt ( 0 ) !== "." ) {
throw new FS . ErrnoError ( 28 ) ;
}
relative = PATH _FS . relative ( new _path , old _dirname ) ;
if ( relative . charAt ( 0 ) !== "." ) {
throw new FS . ErrnoError ( 55 ) ;
}
var new _node ;
try {
new _node = FS . lookupNode ( new _dir , new _name ) ;
} catch ( e ) { }
if ( old _node === new _node ) {
return ;
}
var isdir = FS . isDir ( old _node . mode ) ;
var err = FS . mayDelete ( old _dir , old _name , isdir ) ;
if ( err ) {
throw new FS . ErrnoError ( err ) ;
}
err = new _node ? FS . mayDelete ( new _dir , new _name , isdir ) : FS . mayCreate ( new _dir , new _name ) ;
if ( err ) {
throw new FS . ErrnoError ( err ) ;
}
if ( ! old _dir . node _ops . rename ) {
throw new FS . ErrnoError ( 63 ) ;
}
if ( FS . isMountpoint ( old _node ) || new _node && FS . isMountpoint ( new _node ) ) {
throw new FS . ErrnoError ( 10 ) ;
}
if ( new _dir !== old _dir ) {
err = FS . nodePermissions ( old _dir , "w" ) ;
if ( err ) {
throw new FS . ErrnoError ( err ) ;
}
}
try {
if ( FS . trackingDelegate [ "willMovePath" ] ) {
FS . trackingDelegate [ "willMovePath" ] ( old _path , new _path ) ;
}
} catch ( e ) {
console . log ( "FS.trackingDelegate['willMovePath']('" + old _path + "', '" + new _path + "') threw an exception: " + e . message ) ;
}
FS . hashRemoveNode ( old _node ) ;
try {
old _dir . node _ops . rename ( old _node , new _dir , new _name ) ;
} catch ( e ) {
throw e ;
} finally {
FS . hashAddNode ( old _node ) ;
}
try {
if ( FS . trackingDelegate [ "onMovePath" ] ) FS . trackingDelegate [ "onMovePath" ] ( old _path , new _path ) ;
} catch ( e ) {
console . log ( "FS.trackingDelegate['onMovePath']('" + old _path + "', '" + new _path + "') threw an exception: " + e . message ) ;
}
} ) ,
rmdir : ( function ( path ) {
var lookup = FS . lookupPath ( path , {
parent : true
} ) ;
var parent = lookup . node ;
var name = PATH . basename ( path ) ;
var node = FS . lookupNode ( parent , name ) ;
var err = FS . mayDelete ( parent , name , true ) ;
if ( err ) {
throw new FS . ErrnoError ( err ) ;
}
if ( ! parent . node _ops . rmdir ) {
throw new FS . ErrnoError ( 63 ) ;
}
if ( FS . isMountpoint ( node ) ) {
throw new FS . ErrnoError ( 10 ) ;
}
try {
if ( FS . trackingDelegate [ "willDeletePath" ] ) {
FS . trackingDelegate [ "willDeletePath" ] ( path ) ;
}
} catch ( e ) {
console . log ( "FS.trackingDelegate['willDeletePath']('" + path + "') threw an exception: " + e . message ) ;
}
parent . node _ops . rmdir ( parent , name ) ;
FS . destroyNode ( node ) ;
try {
if ( FS . trackingDelegate [ "onDeletePath" ] ) FS . trackingDelegate [ "onDeletePath" ] ( path ) ;
} catch ( e ) {
console . log ( "FS.trackingDelegate['onDeletePath']('" + path + "') threw an exception: " + e . message ) ;
}
} ) ,
readdir : ( function ( path ) {
var lookup = FS . lookupPath ( path , {
follow : true
} ) ;
var node = lookup . node ;
if ( ! node . node _ops . readdir ) {
throw new FS . ErrnoError ( 54 ) ;
}
return node . node _ops . readdir ( node ) ;
} ) ,
unlink : ( function ( path ) {
var lookup = FS . lookupPath ( path , {
parent : true
} ) ;
var parent = lookup . node ;
var name = PATH . basename ( path ) ;
var node = FS . lookupNode ( parent , name ) ;
var err = FS . mayDelete ( parent , name , false ) ;
if ( err ) {
throw new FS . ErrnoError ( err ) ;
}
if ( ! parent . node _ops . unlink ) {
throw new FS . ErrnoError ( 63 ) ;
}
if ( FS . isMountpoint ( node ) ) {
throw new FS . ErrnoError ( 10 ) ;
}
try {
if ( FS . trackingDelegate [ "willDeletePath" ] ) {
FS . trackingDelegate [ "willDeletePath" ] ( path ) ;
}
} catch ( e ) {
console . log ( "FS.trackingDelegate['willDeletePath']('" + path + "') threw an exception: " + e . message ) ;
}
parent . node _ops . unlink ( parent , name ) ;
FS . destroyNode ( node ) ;
try {
if ( FS . trackingDelegate [ "onDeletePath" ] ) FS . trackingDelegate [ "onDeletePath" ] ( path ) ;
} catch ( e ) {
console . log ( "FS.trackingDelegate['onDeletePath']('" + path + "') threw an exception: " + e . message ) ;
}
} ) ,
readlink : ( function ( path ) {
var lookup = FS . lookupPath ( path ) ;
var link = lookup . node ;
if ( ! link ) {
throw new FS . ErrnoError ( 44 ) ;
}
if ( ! link . node _ops . readlink ) {
throw new FS . ErrnoError ( 28 ) ;
}
return PATH _FS . resolve ( FS . getPath ( link . parent ) , link . node _ops . readlink ( link ) ) ;
} ) ,
stat : ( function ( path , dontFollow ) {
var lookup = FS . lookupPath ( path , {
follow : ! dontFollow
} ) ;
var node = lookup . node ;
if ( ! node ) {
throw new FS . ErrnoError ( 44 ) ;
}
if ( ! node . node _ops . getattr ) {
throw new FS . ErrnoError ( 63 ) ;
}
return node . node _ops . getattr ( node ) ;
} ) ,
lstat : ( function ( path ) {
return FS . stat ( path , true ) ;
} ) ,
chmod : ( function ( path , mode , dontFollow ) {
var node ;
if ( typeof path === "string" ) {
var lookup = FS . lookupPath ( path , {
follow : ! dontFollow
} ) ;
node = lookup . node ;
} else {
node = path ;
}
if ( ! node . node _ops . setattr ) {
throw new FS . ErrnoError ( 63 ) ;
}
node . node _ops . setattr ( node , {
mode : mode & 4095 | node . mode & ~ 4095 ,
timestamp : Date . now ( )
} ) ;
} ) ,
lchmod : ( function ( path , mode ) {
FS . chmod ( path , mode , true ) ;
} ) ,
fchmod : ( function ( fd , mode ) {
var stream = FS . getStream ( fd ) ;
if ( ! stream ) {
throw new FS . ErrnoError ( 8 ) ;
}
FS . chmod ( stream . node , mode ) ;
} ) ,
chown : ( function ( path , uid , gid , dontFollow ) {
var node ;
if ( typeof path === "string" ) {
var lookup = FS . lookupPath ( path , {
follow : ! dontFollow
} ) ;
node = lookup . node ;
} else {
node = path ;
}
if ( ! node . node _ops . setattr ) {
throw new FS . ErrnoError ( 63 ) ;
}
node . node _ops . setattr ( node , {
timestamp : Date . now ( )
} ) ;
} ) ,
lchown : ( function ( path , uid , gid ) {
FS . chown ( path , uid , gid , true ) ;
} ) ,
fchown : ( function ( fd , uid , gid ) {
var stream = FS . getStream ( fd ) ;
if ( ! stream ) {
throw new FS . ErrnoError ( 8 ) ;
}
FS . chown ( stream . node , uid , gid ) ;
} ) ,
truncate : ( function ( path , len ) {
if ( len < 0 ) {
throw new FS . ErrnoError ( 28 ) ;
}
var node ;
if ( typeof path === "string" ) {
var lookup = FS . lookupPath ( path , {
follow : true
} ) ;
node = lookup . node ;
} else {
node = path ;
}
if ( ! node . node _ops . setattr ) {
throw new FS . ErrnoError ( 63 ) ;
}
if ( FS . isDir ( node . mode ) ) {
throw new FS . ErrnoError ( 31 ) ;
}
if ( ! FS . isFile ( node . mode ) ) {
throw new FS . ErrnoError ( 28 ) ;
}
var err = FS . nodePermissions ( node , "w" ) ;
if ( err ) {
throw new FS . ErrnoError ( err ) ;
}
node . node _ops . setattr ( node , {
size : len ,
timestamp : Date . now ( )
} ) ;
} ) ,
ftruncate : ( function ( fd , len ) {
var stream = FS . getStream ( fd ) ;
if ( ! stream ) {
throw new FS . ErrnoError ( 8 ) ;
}
if ( ( stream . flags & 2097155 ) === 0 ) {
throw new FS . ErrnoError ( 28 ) ;
}
FS . truncate ( stream . node , len ) ;
} ) ,
utime : ( function ( path , atime , mtime ) {
var lookup = FS . lookupPath ( path , {
follow : true
} ) ;
var node = lookup . node ;
node . node _ops . setattr ( node , {
timestamp : Math . max ( atime , mtime )
} ) ;
} ) ,
open : ( function ( path , flags , mode , fd _start , fd _end ) {
if ( path === "" ) {
throw new FS . ErrnoError ( 44 ) ;
}
flags = typeof flags === "string" ? FS . modeStringToFlags ( flags ) : flags ;
mode = typeof mode === "undefined" ? 438 : mode ;
if ( flags & 64 ) {
mode = mode & 4095 | 32768 ;
} else {
mode = 0 ;
}
var node ;
if ( typeof path === "object" ) {
node = path ;
} else {
path = PATH . normalize ( path ) ;
try {
var lookup = FS . lookupPath ( path , {
follow : ! ( flags & 131072 )
} ) ;
node = lookup . node ;
} catch ( e ) { }
}
var created = false ;
if ( flags & 64 ) {
if ( node ) {
if ( flags & 128 ) {
throw new FS . ErrnoError ( 20 ) ;
}
} else {
node = FS . mknod ( path , mode , 0 ) ;
created = true ;
}
}
if ( ! node ) {
throw new FS . ErrnoError ( 44 ) ;
}
if ( FS . isChrdev ( node . mode ) ) {
flags &= ~ 512 ;
}
if ( flags & 65536 && ! FS . isDir ( node . mode ) ) {
throw new FS . ErrnoError ( 54 ) ;
}
if ( ! created ) {
var err = FS . mayOpen ( node , flags ) ;
if ( err ) {
throw new FS . ErrnoError ( err ) ;
}
}
if ( flags & 512 ) {
FS . truncate ( node , 0 ) ;
}
flags &= ~ ( 128 | 512 ) ;
var stream = FS . createStream ( {
node : node ,
path : FS . getPath ( node ) ,
flags : flags ,
seekable : true ,
position : 0 ,
stream _ops : node . stream _ops ,
ungotten : [ ] ,
error : false
} , fd _start , fd _end ) ;
if ( stream . stream _ops . open ) {
stream . stream _ops . open ( stream ) ;
}
if ( Module [ "logReadFiles" ] && ! ( flags & 1 ) ) {
if ( ! FS . readFiles ) FS . readFiles = { } ;
if ( ! ( path in FS . readFiles ) ) {
FS . readFiles [ path ] = 1 ;
console . log ( "FS.trackingDelegate error on read file: " + path ) ;
}
}
try {
if ( FS . trackingDelegate [ "onOpenFile" ] ) {
var trackingFlags = 0 ;
if ( ( flags & 2097155 ) !== 1 ) {
trackingFlags |= FS . tracking . openFlags . READ ;
}
if ( ( flags & 2097155 ) !== 0 ) {
trackingFlags |= FS . tracking . openFlags . WRITE ;
}
FS . trackingDelegate [ "onOpenFile" ] ( path , trackingFlags ) ;
}
} catch ( e ) {
console . log ( "FS.trackingDelegate['onOpenFile']('" + path + "', flags) threw an exception: " + e . message ) ;
}
return stream ;
} ) ,
close : ( function ( stream ) {
if ( FS . isClosed ( stream ) ) {
throw new FS . ErrnoError ( 8 ) ;
}
if ( stream . getdents ) stream . getdents = null ;
try {
if ( stream . stream _ops . close ) {
stream . stream _ops . close ( stream ) ;
}
} catch ( e ) {
throw e ;
} finally {
FS . closeStream ( stream . fd ) ;
}
stream . fd = null ;
} ) ,
isClosed : ( function ( stream ) {
return stream . fd === null ;
} ) ,
llseek : ( function ( stream , offset , whence ) {
if ( FS . isClosed ( stream ) ) {
throw new FS . ErrnoError ( 8 ) ;
}
if ( ! stream . seekable || ! stream . stream _ops . llseek ) {
throw new FS . ErrnoError ( 70 ) ;
}
if ( whence != 0 && whence != 1 && whence != 2 ) {
throw new FS . ErrnoError ( 28 ) ;
}
stream . position = stream . stream _ops . llseek ( stream , offset , whence ) ;
stream . ungotten = [ ] ;
return stream . position ;
} ) ,
read : ( function ( stream , buffer , offset , length , position ) {
if ( length < 0 || position < 0 ) {
throw new FS . ErrnoError ( 28 ) ;
}
if ( FS . isClosed ( stream ) ) {
throw new FS . ErrnoError ( 8 ) ;
}
if ( ( stream . flags & 2097155 ) === 1 ) {
throw new FS . ErrnoError ( 8 ) ;
}
if ( FS . isDir ( stream . node . mode ) ) {
throw new FS . ErrnoError ( 31 ) ;
}
if ( ! stream . stream _ops . read ) {
throw new FS . ErrnoError ( 28 ) ;
}
var seeking = typeof position !== "undefined" ;
if ( ! seeking ) {
position = stream . position ;
} else if ( ! stream . seekable ) {
throw new FS . ErrnoError ( 70 ) ;
}
var bytesRead = stream . stream _ops . read ( stream , buffer , offset , length , position ) ;
if ( ! seeking ) stream . position += bytesRead ;
return bytesRead ;
} ) ,
write : ( function ( stream , buffer , offset , length , position , canOwn ) {
if ( length < 0 || position < 0 ) {
throw new FS . ErrnoError ( 28 ) ;
}
if ( FS . isClosed ( stream ) ) {
throw new FS . ErrnoError ( 8 ) ;
}
if ( ( stream . flags & 2097155 ) === 0 ) {
throw new FS . ErrnoError ( 8 ) ;
}
if ( FS . isDir ( stream . node . mode ) ) {
throw new FS . ErrnoError ( 31 ) ;
}
if ( ! stream . stream _ops . write ) {
throw new FS . ErrnoError ( 28 ) ;
}
if ( stream . flags & 1024 ) {
FS . llseek ( stream , 0 , 2 ) ;
}
var seeking = typeof position !== "undefined" ;
if ( ! seeking ) {
position = stream . position ;
} else if ( ! stream . seekable ) {
throw new FS . ErrnoError ( 70 ) ;
}
var bytesWritten = stream . stream _ops . write ( stream , buffer , offset , length , position , canOwn ) ;
if ( ! seeking ) stream . position += bytesWritten ;
try {
if ( stream . path && FS . trackingDelegate [ "onWriteToFile" ] ) FS . trackingDelegate [ "onWriteToFile" ] ( stream . path ) ;
} catch ( e ) {
console . log ( "FS.trackingDelegate['onWriteToFile']('" + stream . path + "') threw an exception: " + e . message ) ;
}
return bytesWritten ;
} ) ,
allocate : ( function ( stream , offset , length ) {
if ( FS . isClosed ( stream ) ) {
throw new FS . ErrnoError ( 8 ) ;
}
if ( offset < 0 || length <= 0 ) {
throw new FS . ErrnoError ( 28 ) ;
}
if ( ( stream . flags & 2097155 ) === 0 ) {
throw new FS . ErrnoError ( 8 ) ;
}
if ( ! FS . isFile ( stream . node . mode ) && ! FS . isDir ( stream . node . mode ) ) {
throw new FS . ErrnoError ( 43 ) ;
}
if ( ! stream . stream _ops . allocate ) {
throw new FS . ErrnoError ( 138 ) ;
}
stream . stream _ops . allocate ( stream , offset , length ) ;
} ) ,
mmap : ( function ( stream , buffer , offset , length , position , prot , flags ) {
if ( ( prot & 2 ) !== 0 && ( flags & 2 ) === 0 && ( stream . flags & 2097155 ) !== 2 ) {
throw new FS . ErrnoError ( 2 ) ;
}
if ( ( stream . flags & 2097155 ) === 1 ) {
throw new FS . ErrnoError ( 2 ) ;
}
if ( ! stream . stream _ops . mmap ) {
throw new FS . ErrnoError ( 43 ) ;
}
return stream . stream _ops . mmap ( stream , buffer , offset , length , position , prot , flags ) ;
} ) ,
msync : ( function ( stream , buffer , offset , length , mmapFlags ) {
if ( ! stream || ! stream . stream _ops . msync ) {
return 0 ;
}
return stream . stream _ops . msync ( stream , buffer , offset , length , mmapFlags ) ;
} ) ,
munmap : ( function ( stream ) {
return 0 ;
} ) ,
ioctl : ( function ( stream , cmd , arg ) {
if ( ! stream . stream _ops . ioctl ) {
throw new FS . ErrnoError ( 59 ) ;
}
return stream . stream _ops . ioctl ( stream , cmd , arg ) ;
} ) ,
readFile : ( function ( path , opts ) {
opts = opts || { } ;
opts . flags = opts . flags || "r" ;
opts . encoding = opts . encoding || "binary" ;
if ( opts . encoding !== "utf8" && opts . encoding !== "binary" ) {
throw new Error ( 'Invalid encoding type "' + opts . encoding + '"' ) ;
}
var ret ;
var stream = FS . open ( path , opts . flags ) ;
var stat = FS . stat ( path ) ;
var length = stat . size ;
var buf = new Uint8Array ( length ) ;
FS . read ( stream , buf , 0 , length , 0 ) ;
if ( opts . encoding === "utf8" ) {
ret = UTF8ArrayToString ( buf , 0 ) ;
} else if ( opts . encoding === "binary" ) {
ret = buf ;
}
FS . close ( stream ) ;
return ret ;
} ) ,
writeFile : ( function ( path , data , opts ) {
opts = opts || { } ;
opts . flags = opts . flags || "w" ;
var stream = FS . open ( path , opts . flags , opts . mode ) ;
if ( typeof data === "string" ) {
var buf = new Uint8Array ( lengthBytesUTF8 ( data ) + 1 ) ;
var actualNumBytes = stringToUTF8Array ( data , buf , 0 , buf . length ) ;
FS . write ( stream , buf , 0 , actualNumBytes , undefined , opts . canOwn ) ;
} else if ( ArrayBuffer . isView ( data ) ) {
FS . write ( stream , data , 0 , data . byteLength , undefined , opts . canOwn ) ;
} else {
throw new Error ( "Unsupported data type" ) ;
}
FS . close ( stream ) ;
} ) ,
cwd : ( function ( ) {
return FS . currentPath ;
} ) ,
chdir : ( function ( path ) {
var lookup = FS . lookupPath ( path , {
follow : true
} ) ;
if ( lookup . node === null ) {
throw new FS . ErrnoError ( 44 ) ;
}
if ( ! FS . isDir ( lookup . node . mode ) ) {
throw new FS . ErrnoError ( 54 ) ;
}
var err = FS . nodePermissions ( lookup . node , "x" ) ;
if ( err ) {
throw new FS . ErrnoError ( err ) ;
}
FS . currentPath = lookup . path ;
} ) ,
createDefaultDirectories : ( function ( ) {
FS . mkdir ( "/tmp" ) ;
FS . mkdir ( "/home" ) ;
FS . mkdir ( "/home/web_user" ) ;
} ) ,
createDefaultDevices : ( function ( ) {
FS . mkdir ( "/dev" ) ;
FS . registerDevice ( FS . makedev ( 1 , 3 ) , {
read : ( function ( ) {
return 0 ;
} ) ,
write : ( function ( stream , buffer , offset , length , pos ) {
return length ;
} )
} ) ;
FS . mkdev ( "/dev/null" , FS . makedev ( 1 , 3 ) ) ;
TTY . register ( FS . makedev ( 5 , 0 ) , TTY . default _tty _ops ) ;
TTY . register ( FS . makedev ( 6 , 0 ) , TTY . default _tty1 _ops ) ;
FS . mkdev ( "/dev/tty" , FS . makedev ( 5 , 0 ) ) ;
FS . mkdev ( "/dev/tty1" , FS . makedev ( 6 , 0 ) ) ;
var random _device ;
if ( typeof crypto === "object" && typeof crypto [ "getRandomValues" ] === "function" ) {
var randomBuffer = new Uint8Array ( 1 ) ;
random _device = ( function ( ) {
crypto . getRandomValues ( randomBuffer ) ;
return randomBuffer [ 0 ] ;
} ) ;
} else if ( ENVIRONMENT _IS _NODE ) {
try {
var crypto _module = require ( "crypto" ) ;
random _device = ( function ( ) {
return crypto _module [ "randomBytes" ] ( 1 ) [ 0 ] ;
} ) ;
} catch ( e ) { }
} else { }
if ( ! random _device ) {
random _device = ( function ( ) {
abort ( "no cryptographic support found for random_device. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: function(array) { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };" ) ;
} ) ;
}
FS . createDevice ( "/dev" , "random" , random _device ) ;
FS . createDevice ( "/dev" , "urandom" , random _device ) ;
FS . mkdir ( "/dev/shm" ) ;
FS . mkdir ( "/dev/shm/tmp" ) ;
} ) ,
createSpecialDirectories : ( function ( ) {
FS . mkdir ( "/proc" ) ;
FS . mkdir ( "/proc/self" ) ;
FS . mkdir ( "/proc/self/fd" ) ;
FS . mount ( {
mount : ( function ( ) {
var node = FS . createNode ( "/proc/self" , "fd" , 16384 | 511 , 73 ) ;
node . node _ops = {
lookup : ( function ( parent , name ) {
var fd = + name ;
var stream = FS . getStream ( fd ) ;
if ( ! stream ) throw new FS . ErrnoError ( 8 ) ;
var ret = {
parent : null ,
mount : {
mountpoint : "fake"
} ,
node _ops : {
readlink : ( function ( ) {
return stream . path ;
} )
}
} ;
ret . parent = ret ;
return ret ;
} )
} ;
return node ;
} )
} , { } , "/proc/self/fd" ) ;
} ) ,
createStandardStreams : ( function ( ) {
if ( Module [ "stdin" ] ) {
FS . createDevice ( "/dev" , "stdin" , Module [ "stdin" ] ) ;
} else {
FS . symlink ( "/dev/tty" , "/dev/stdin" ) ;
}
if ( Module [ "stdout" ] ) {
FS . createDevice ( "/dev" , "stdout" , null , Module [ "stdout" ] ) ;
} else {
FS . symlink ( "/dev/tty" , "/dev/stdout" ) ;
}
if ( Module [ "stderr" ] ) {
FS . createDevice ( "/dev" , "stderr" , null , Module [ "stderr" ] ) ;
} else {
FS . symlink ( "/dev/tty1" , "/dev/stderr" ) ;
}
var stdin = FS . open ( "/dev/stdin" , "r" ) ;
var stdout = FS . open ( "/dev/stdout" , "w" ) ;
var stderr = FS . open ( "/dev/stderr" , "w" ) ;
assert ( stdin . fd === 0 , "invalid handle for stdin (" + stdin . fd + ")" ) ;
assert ( stdout . fd === 1 , "invalid handle for stdout (" + stdout . fd + ")" ) ;
assert ( stderr . fd === 2 , "invalid handle for stderr (" + stderr . fd + ")" ) ;
} ) ,
ensureErrnoError : ( function ( ) {
if ( FS . ErrnoError ) return ;
FS . ErrnoError = function ErrnoError ( errno , node ) {
this . node = node ;
this . setErrno = ( function ( errno ) {
this . errno = errno ;
for ( var key in ERRNO _CODES ) {
if ( ERRNO _CODES [ key ] === errno ) {
this . code = key ;
break ;
}
}
} ) ;
this . setErrno ( errno ) ;
this . message = ERRNO _MESSAGES [ errno ] ;
if ( this . stack ) {
Object . defineProperty ( this , "stack" , {
value : ( new Error ) . stack ,
writable : true
} ) ;
this . stack = demangleAll ( this . stack ) ;
}
} ;
FS . ErrnoError . prototype = new Error ;
FS . ErrnoError . prototype . constructor = FS . ErrnoError ;
[ 44 ] . forEach ( ( function ( code ) {
FS . genericErrors [ code ] = new FS . ErrnoError ( code ) ;
FS . genericErrors [ code ] . stack = "<generic error, no stack>" ;
} ) ) ;
} ) ,
staticInit : ( function ( ) {
FS . ensureErrnoError ( ) ;
FS . nameTable = new Array ( 4096 ) ;
FS . mount ( MEMFS , { } , "/" ) ;
FS . createDefaultDirectories ( ) ;
FS . createDefaultDevices ( ) ;
FS . createSpecialDirectories ( ) ;
FS . filesystems = {
"MEMFS" : MEMFS ,
"NODEFS" : NODEFS
} ;
} ) ,
init : ( function ( input , output , error ) {
assert ( ! FS . init . initialized , "FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)" ) ;
FS . init . initialized = true ;
FS . ensureErrnoError ( ) ;
Module [ "stdin" ] = input || Module [ "stdin" ] ;
Module [ "stdout" ] = output || Module [ "stdout" ] ;
Module [ "stderr" ] = error || Module [ "stderr" ] ;
FS . createStandardStreams ( ) ;
} ) ,
quit : ( function ( ) {
FS . init . initialized = false ;
var fflush = Module [ "_fflush" ] ;
if ( fflush ) fflush ( 0 ) ;
for ( var i = 0 ; i < FS . streams . length ; i ++ ) {
var stream = FS . streams [ i ] ;
if ( ! stream ) {
continue ;
}
FS . close ( stream ) ;
}
} ) ,
getMode : ( function ( canRead , canWrite ) {
var mode = 0 ;
if ( canRead ) mode |= 292 | 73 ;
if ( canWrite ) mode |= 146 ;
return mode ;
} ) ,
joinPath : ( function ( parts , forceRelative ) {
var path = PATH . join . apply ( null , parts ) ;
if ( forceRelative && path [ 0 ] == "/" ) path = path . substr ( 1 ) ;
return path ;
} ) ,
absolutePath : ( function ( relative , base ) {
return PATH _FS . resolve ( base , relative ) ;
} ) ,
standardizePath : ( function ( path ) {
return PATH . normalize ( path ) ;
} ) ,
findObject : ( function ( path , dontResolveLastLink ) {
var ret = FS . analyzePath ( path , dontResolveLastLink ) ;
if ( ret . exists ) {
return ret . object ;
} else {
_ _ _setErrNo ( ret . error ) ;
return null ;
}
} ) ,
analyzePath : ( function ( path , dontResolveLastLink ) {
try {
var lookup = FS . lookupPath ( path , {
follow : ! dontResolveLastLink
} ) ;
path = lookup . path ;
} catch ( e ) { }
var ret = {
isRoot : false ,
exists : false ,
error : 0 ,
name : null ,
path : null ,
object : null ,
parentExists : false ,
parentPath : null ,
parentObject : null
} ;
try {
var lookup = FS . lookupPath ( path , {
parent : true
} ) ;
ret . parentExists = true ;
ret . parentPath = lookup . path ;
ret . parentObject = lookup . node ;
ret . name = PATH . basename ( path ) ;
lookup = FS . lookupPath ( path , {
follow : ! dontResolveLastLink
} ) ;
ret . exists = true ;
ret . path = lookup . path ;
ret . object = lookup . node ;
ret . name = lookup . node . name ;
ret . isRoot = lookup . path === "/" ;
} catch ( e ) {
ret . error = e . errno ;
}
return ret ;
} ) ,
createFolder : ( function ( parent , name , canRead , canWrite ) {
var path = PATH . join2 ( typeof parent === "string" ? parent : FS . getPath ( parent ) , name ) ;
var mode = FS . getMode ( canRead , canWrite ) ;
return FS . mkdir ( path , mode ) ;
} ) ,
createPath : ( function ( parent , path , canRead , canWrite ) {
parent = typeof parent === "string" ? parent : FS . getPath ( parent ) ;
var parts = path . split ( "/" ) . reverse ( ) ;
while ( parts . length ) {
var part = parts . pop ( ) ;
if ( ! part ) continue ;
var current = PATH . join2 ( parent , part ) ;
try {
FS . mkdir ( current ) ;
} catch ( e ) { }
parent = current ;
}
return current ;
} ) ,
createFile : ( function ( parent , name , properties , canRead , canWrite ) {
var path = PATH . join2 ( typeof parent === "string" ? parent : FS . getPath ( parent ) , name ) ;
var mode = FS . getMode ( canRead , canWrite ) ;
return FS . create ( path , mode ) ;
} ) ,
createDataFile : ( function ( parent , name , data , canRead , canWrite , canOwn ) {
var path = name ? PATH . join2 ( typeof parent === "string" ? parent : FS . getPath ( parent ) , name ) : parent ;
var mode = FS . getMode ( canRead , canWrite ) ;
var node = FS . create ( path , mode ) ;
if ( data ) {
if ( typeof data === "string" ) {
var arr = new Array ( data . length ) ;
for ( var i = 0 , len = data . length ; i < len ; ++ i ) arr [ i ] = data . charCodeAt ( i ) ;
data = arr ;
}
FS . chmod ( node , mode | 146 ) ;
var stream = FS . open ( node , "w" ) ;
FS . write ( stream , data , 0 , data . length , 0 , canOwn ) ;
FS . close ( stream ) ;
FS . chmod ( node , mode ) ;
}
return node ;
} ) ,
createDevice : ( function ( parent , name , input , output ) {
var path = PATH . join2 ( typeof parent === "string" ? parent : FS . getPath ( parent ) , name ) ;
var mode = FS . getMode ( ! ! input , ! ! output ) ;
if ( ! FS . createDevice . major ) FS . createDevice . major = 64 ;
var dev = FS . makedev ( FS . createDevice . major ++ , 0 ) ;
FS . registerDevice ( dev , {
open : ( function ( stream ) {
stream . seekable = false ;
} ) ,
close : ( function ( stream ) {
if ( output && output . buffer && output . buffer . length ) {
output ( 10 ) ;
}
} ) ,
read : ( function ( stream , buffer , offset , length , pos ) {
var bytesRead = 0 ;
for ( var i = 0 ; i < length ; i ++ ) {
var result ;
try {
result = input ( ) ;
} catch ( e ) {
throw new FS . ErrnoError ( 29 ) ;
}
if ( result === undefined && bytesRead === 0 ) {
throw new FS . ErrnoError ( 6 ) ;
}
if ( result === null || result === undefined ) break ;
bytesRead ++ ;
buffer [ offset + i ] = result ;
}
if ( bytesRead ) {
stream . node . timestamp = Date . now ( ) ;
}
return bytesRead ;
} ) ,
write : ( function ( stream , buffer , offset , length , pos ) {
for ( var i = 0 ; i < length ; i ++ ) {
try {
output ( buffer [ offset + i ] ) ;
} catch ( e ) {
throw new FS . ErrnoError ( 29 ) ;
}
}
if ( length ) {
stream . node . timestamp = Date . now ( ) ;
}
return i ;
} )
} ) ;
return FS . mkdev ( path , mode , dev ) ;
} ) ,
createLink : ( function ( parent , name , target , canRead , canWrite ) {
var path = PATH . join2 ( typeof parent === "string" ? parent : FS . getPath ( parent ) , name ) ;
return FS . symlink ( target , path ) ;
} ) ,
forceLoadFile : ( function ( obj ) {
if ( obj . isDevice || obj . isFolder || obj . link || obj . contents ) return true ;
var success = true ;
if ( typeof XMLHttpRequest !== "undefined" ) {
throw new Error ( "Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread." ) ;
} else if ( read _ ) {
try {
obj . contents = intArrayFromString ( read _ ( obj . url ) , true ) ;
obj . usedBytes = obj . contents . length ;
} catch ( e ) {
success = false ;
}
} else {
throw new Error ( "Cannot load without read() or XMLHttpRequest." ) ;
}
if ( ! success ) _ _ _setErrNo ( 29 ) ;
return success ;
} ) ,
createLazyFile : ( function ( parent , name , url , canRead , canWrite ) {
function LazyUint8Array ( ) {
this . lengthKnown = false ;
this . chunks = [ ] ;
}
LazyUint8Array . prototype . get = function LazyUint8Array _get ( idx ) {
if ( idx > this . length - 1 || idx < 0 ) {
return undefined ;
}
var chunkOffset = idx % this . chunkSize ;
var chunkNum = idx / this . chunkSize | 0 ;
return this . getter ( chunkNum ) [ chunkOffset ] ;
} ;
LazyUint8Array . prototype . setDataGetter = function LazyUint8Array _setDataGetter ( getter ) {
this . getter = getter ;
} ;
LazyUint8Array . prototype . cacheLength = function LazyUint8Array _cacheLength ( ) {
var xhr = new XMLHttpRequest ;
xhr . open ( "HEAD" , url , false ) ;
xhr . send ( null ) ;
if ( ! ( xhr . status >= 200 && xhr . status < 300 || xhr . status === 304 ) ) throw new Error ( "Couldn't load " + url + ". Status: " + xhr . status ) ;
var datalength = Number ( xhr . getResponseHeader ( "Content-length" ) ) ;
var header ;
var hasByteServing = ( header = xhr . getResponseHeader ( "Accept-Ranges" ) ) && header === "bytes" ;
var usesGzip = ( header = xhr . getResponseHeader ( "Content-Encoding" ) ) && header === "gzip" ;
var chunkSize = 1024 * 1024 ;
if ( ! hasByteServing ) chunkSize = datalength ;
var doXHR = ( function ( from , to ) {
if ( from > to ) throw new Error ( "invalid range (" + from + ", " + to + ") or no bytes requested!" ) ;
if ( to > datalength - 1 ) throw new Error ( "only " + datalength + " bytes available! programmer error!" ) ;
var xhr = new XMLHttpRequest ;
xhr . open ( "GET" , url , false ) ;
if ( datalength !== chunkSize ) xhr . setRequestHeader ( "Range" , "bytes=" + from + "-" + to ) ;
if ( typeof Uint8Array != "undefined" ) xhr . responseType = "arraybuffer" ;
if ( xhr . overrideMimeType ) {
xhr . overrideMimeType ( "text/plain; charset=x-user-defined" ) ;
}
xhr . send ( null ) ;
if ( ! ( xhr . status >= 200 && xhr . status < 300 || xhr . status === 304 ) ) throw new Error ( "Couldn't load " + url + ". Status: " + xhr . status ) ;
if ( xhr . response !== undefined ) {
return new Uint8Array ( xhr . response || [ ] ) ;
} else {
return intArrayFromString ( xhr . responseText || "" , true ) ;
}
} ) ;
var lazyArray = this ;
lazyArray . setDataGetter ( ( function ( chunkNum ) {
var start = chunkNum * chunkSize ;
var end = ( chunkNum + 1 ) * chunkSize - 1 ;
end = Math . min ( end , datalength - 1 ) ;
if ( typeof lazyArray . chunks [ chunkNum ] === "undefined" ) {
lazyArray . chunks [ chunkNum ] = doXHR ( start , end ) ;
}
if ( typeof lazyArray . chunks [ chunkNum ] === "undefined" ) throw new Error ( "doXHR failed!" ) ;
return lazyArray . chunks [ chunkNum ] ;
} ) ) ;
if ( usesGzip || ! datalength ) {
chunkSize = datalength = 1 ;
datalength = this . getter ( 0 ) . length ;
chunkSize = datalength ;
console . log ( "LazyFiles on gzip forces download of the whole file when length is accessed" ) ;
}
this . _length = datalength ;
this . _chunkSize = chunkSize ;
this . lengthKnown = true ;
} ;
if ( typeof XMLHttpRequest !== "undefined" ) {
if ( ! ENVIRONMENT _IS _WORKER ) throw "Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc" ;
var lazyArray = new LazyUint8Array ;
Object . defineProperties ( lazyArray , {
length : {
get : ( function ( ) {
if ( ! this . lengthKnown ) {
this . cacheLength ( ) ;
}
return this . _length ;
} )
} ,
chunkSize : {
get : ( function ( ) {
if ( ! this . lengthKnown ) {
this . cacheLength ( ) ;
}
return this . _chunkSize ;
} )
}
} ) ;
var properties = {
isDevice : false ,
contents : lazyArray
} ;
} else {
var properties = {
isDevice : false ,
url : url
} ;
}
var node = FS . createFile ( parent , name , properties , canRead , canWrite ) ;
if ( properties . contents ) {
node . contents = properties . contents ;
} else if ( properties . url ) {
node . contents = null ;
node . url = properties . url ;
}
Object . defineProperties ( node , {
usedBytes : {
get : ( function ( ) {
return this . contents . length ;
} )
}
} ) ;
var stream _ops = { } ;
var keys = Object . keys ( node . stream _ops ) ;
keys . forEach ( ( function ( key ) {
var fn = node . stream _ops [ key ] ;
stream _ops [ key ] = function forceLoadLazyFile ( ) {
if ( ! FS . forceLoadFile ( node ) ) {
throw new FS . ErrnoError ( 29 ) ;
}
return fn . apply ( null , arguments ) ;
} ;
} ) ) ;
stream _ops . read = function stream _ops _read ( stream , buffer , offset , length , position ) {
if ( ! FS . forceLoadFile ( node ) ) {
throw new FS . ErrnoError ( 29 ) ;
}
var contents = stream . node . contents ;
if ( position >= contents . length ) return 0 ;
var size = Math . min ( contents . length - position , length ) ;
assert ( size >= 0 ) ;
if ( contents . slice ) {
for ( var i = 0 ; i < size ; i ++ ) {
buffer [ offset + i ] = contents [ position + i ] ;
}
} else {
for ( var i = 0 ; i < size ; i ++ ) {
buffer [ offset + i ] = contents . get ( position + i ) ;
}
}
return size ;
} ;
node . stream _ops = stream _ops ;
return node ;
} ) ,
createPreloadedFile : ( function ( parent , name , url , canRead , canWrite , onload , onerror , dontCreateFile , canOwn , preFinish ) {
Browser . init ( ) ;
var fullname = name ? PATH _FS . resolve ( PATH . join2 ( parent , name ) ) : parent ;
var dep = getUniqueRunDependency ( "cp " + fullname ) ;
function processData ( byteArray ) {
function finish ( byteArray ) {
if ( preFinish ) preFinish ( ) ;
if ( ! dontCreateFile ) {
FS . createDataFile ( parent , name , byteArray , canRead , canWrite , canOwn ) ;
}
if ( onload ) onload ( ) ;
removeRunDependency ( dep ) ;
}
var handled = false ;
Module [ "preloadPlugins" ] . forEach ( ( function ( plugin ) {
if ( handled ) return ;
if ( plugin [ "canHandle" ] ( fullname ) ) {
plugin [ "handle" ] ( byteArray , fullname , finish , ( function ( ) {
if ( onerror ) onerror ( ) ;
removeRunDependency ( dep ) ;
} ) ) ;
handled = true ;
}
} ) ) ;
if ( ! handled ) finish ( byteArray ) ;
}
addRunDependency ( dep ) ;
if ( typeof url == "string" ) {
Browser . asyncLoad ( url , ( function ( byteArray ) {
processData ( byteArray ) ;
} ) , onerror ) ;
} else {
processData ( url ) ;
}
} ) ,
indexedDB : ( function ( ) {
return window . indexedDB || window . mozIndexedDB || window . webkitIndexedDB || window . msIndexedDB ;
} ) ,
DB _NAME : ( function ( ) {
return "EM_FS_" + window . location . pathname ;
} ) ,
DB _VERSION : 20 ,
DB _STORE _NAME : "FILE_DATA" ,
saveFilesToDB : ( function ( paths , onload , onerror ) {
onload = onload || ( function ( ) { } ) ;
onerror = onerror || ( function ( ) { } ) ;
var indexedDB = FS . indexedDB ( ) ;
try {
var openRequest = indexedDB . open ( FS . DB _NAME ( ) , FS . DB _VERSION ) ;
} catch ( e ) {
return onerror ( e ) ;
}
openRequest . onupgradeneeded = function openRequest _onupgradeneeded ( ) {
console . log ( "creating db" ) ;
var db = openRequest . result ;
db . createObjectStore ( FS . DB _STORE _NAME ) ;
} ;
openRequest . onsuccess = function openRequest _onsuccess ( ) {
var db = openRequest . result ;
var transaction = db . transaction ( [ FS . DB _STORE _NAME ] , "readwrite" ) ;
var files = transaction . objectStore ( FS . DB _STORE _NAME ) ;
var ok = 0 , fail = 0 , total = paths . length ;
function finish ( ) {
if ( fail == 0 ) onload ( ) ; else onerror ( ) ;
}
paths . forEach ( ( function ( path ) {
var putRequest = files . put ( FS . analyzePath ( path ) . object . contents , path ) ;
putRequest . onsuccess = function putRequest _onsuccess ( ) {
ok ++ ;
if ( ok + fail == total ) finish ( ) ;
} ;
putRequest . onerror = function putRequest _onerror ( ) {
fail ++ ;
if ( ok + fail == total ) finish ( ) ;
} ;
} ) ) ;
transaction . onerror = onerror ;
} ;
openRequest . onerror = onerror ;
} ) ,
loadFilesFromDB : ( function ( paths , onload , onerror ) {
onload = onload || ( function ( ) { } ) ;
onerror = onerror || ( function ( ) { } ) ;
var indexedDB = FS . indexedDB ( ) ;
try {
var openRequest = indexedDB . open ( FS . DB _NAME ( ) , FS . DB _VERSION ) ;
} catch ( e ) {
return onerror ( e ) ;
}
openRequest . onupgradeneeded = onerror ;
openRequest . onsuccess = function openRequest _onsuccess ( ) {
var db = openRequest . result ;
try {
var transaction = db . transaction ( [ FS . DB _STORE _NAME ] , "readonly" ) ;
} catch ( e ) {
onerror ( e ) ;
return ;
}
var files = transaction . objectStore ( FS . DB _STORE _NAME ) ;
var ok = 0 , fail = 0 , total = paths . length ;
function finish ( ) {
if ( fail == 0 ) onload ( ) ; else onerror ( ) ;
}
paths . forEach ( ( function ( path ) {
var getRequest = files . get ( path ) ;
getRequest . onsuccess = function getRequest _onsuccess ( ) {
if ( FS . analyzePath ( path ) . exists ) {
FS . unlink ( path ) ;
}
FS . createDataFile ( PATH . dirname ( path ) , PATH . basename ( path ) , getRequest . result , true , true , true ) ;
ok ++ ;
if ( ok + fail == total ) finish ( ) ;
} ;
getRequest . onerror = function getRequest _onerror ( ) {
fail ++ ;
if ( ok + fail == total ) finish ( ) ;
} ;
} ) ) ;
transaction . onerror = onerror ;
} ;
openRequest . onerror = onerror ;
} )
} ;
Module [ "FS" ] = FS ;
var SYSCALLS = {
DEFAULT _POLLMASK : 5 ,
mappings : { } ,
umask : 511 ,
calculateAt : ( function ( dirfd , path ) {
if ( path [ 0 ] !== "/" ) {
var dir ;
if ( dirfd === - 100 ) {
dir = FS . cwd ( ) ;
} else {
var dirstream = FS . getStream ( dirfd ) ;
if ( ! dirstream ) throw new FS . ErrnoError ( 8 ) ;
dir = dirstream . path ;
}
path = PATH . join2 ( dir , path ) ;
}
return path ;
} ) ,
doStat : ( function ( func , path , buf ) {
try {
var stat = func ( path ) ;
} catch ( e ) {
if ( e && e . node && PATH . normalize ( path ) !== PATH . normalize ( FS . getPath ( e . node ) ) ) {
return - 54 ;
}
throw e ;
}
GROWABLE _HEAP _STORE _I32 ( buf | 0 , stat . dev ) ;
GROWABLE _HEAP _STORE _I32 ( buf + 4 | 0 , 0 ) ;
GROWABLE _HEAP _STORE _I32 ( buf + 8 | 0 , stat . ino ) ;
GROWABLE _HEAP _STORE _I32 ( buf + 12 | 0 , stat . mode ) ;
GROWABLE _HEAP _STORE _I32 ( buf + 16 | 0 , stat . nlink ) ;
GROWABLE _HEAP _STORE _I32 ( buf + 20 | 0 , stat . uid ) ;
GROWABLE _HEAP _STORE _I32 ( buf + 24 | 0 , stat . gid ) ;
GROWABLE _HEAP _STORE _I32 ( buf + 28 | 0 , stat . rdev ) ;
GROWABLE _HEAP _STORE _I32 ( buf + 32 | 0 , 0 ) ;
tempI64 = [ stat . size >>> 0 , ( tempDouble = stat . size , + Math _abs ( tempDouble ) >= 1 ? tempDouble > 0 ? ( Math _min ( + Math _floor ( tempDouble / 4294967296 ) , 4294967295 ) | 0 ) >>> 0 : ~ ~ + Math _ceil ( ( tempDouble - + ( ~ ~ tempDouble >>> 0 ) ) / 4294967296 ) >>> 0 : 0 ) ] , GROWABLE _HEAP _STORE _I32 ( buf + 40 | 0 , tempI64 [ 0 ] ) , GROWABLE _HEAP _STORE _I32 ( buf + 44 | 0 , tempI64 [ 1 ] ) ;
GROWABLE _HEAP _STORE _I32 ( buf + 48 | 0 , 4096 ) ;
GROWABLE _HEAP _STORE _I32 ( buf + 52 | 0 , stat . blocks ) ;
GROWABLE _HEAP _STORE _I32 ( buf + 56 | 0 , stat . atime . getTime ( ) / 1e3 | 0 ) ;
GROWABLE _HEAP _STORE _I32 ( buf + 60 | 0 , 0 ) ;
GROWABLE _HEAP _STORE _I32 ( buf + 64 | 0 , stat . mtime . getTime ( ) / 1e3 | 0 ) ;
GROWABLE _HEAP _STORE _I32 ( buf + 68 | 0 , 0 ) ;
GROWABLE _HEAP _STORE _I32 ( buf + 72 | 0 , stat . ctime . getTime ( ) / 1e3 | 0 ) ;
GROWABLE _HEAP _STORE _I32 ( buf + 76 | 0 , 0 ) ;
tempI64 = [ stat . ino >>> 0 , ( tempDouble = stat . ino , + Math _abs ( tempDouble ) >= 1 ? tempDouble > 0 ? ( Math _min ( + Math _floor ( tempDouble / 4294967296 ) , 4294967295 ) | 0 ) >>> 0 : ~ ~ + Math _ceil ( ( tempDouble - + ( ~ ~ tempDouble >>> 0 ) ) / 4294967296 ) >>> 0 : 0 ) ] , GROWABLE _HEAP _STORE _I32 ( buf + 80 | 0 , tempI64 [ 0 ] ) , GROWABLE _HEAP _STORE _I32 ( buf + 84 | 0 , tempI64 [ 1 ] ) ;
return 0 ;
} ) ,
doMsync : ( function ( addr , stream , len , flags ) {
var buffer = new Uint8Array ( HEAPU8 . subarray ( addr , addr + len ) ) ;
FS . msync ( stream , buffer , 0 , len , flags ) ;
} ) ,
doMkdir : ( function ( path , mode ) {
path = PATH . normalize ( path ) ;
if ( path [ path . length - 1 ] === "/" ) path = path . substr ( 0 , path . length - 1 ) ;
FS . mkdir ( path , mode , 0 ) ;
return 0 ;
} ) ,
doMknod : ( function ( path , mode , dev ) {
switch ( mode & 61440 ) {
case 32768 :
case 8192 :
case 24576 :
case 4096 :
case 49152 :
break ;
default :
return - 28 ;
}
FS . mknod ( path , mode , dev ) ;
return 0 ;
} ) ,
doReadlink : ( function ( path , buf , bufsize ) {
if ( bufsize <= 0 ) return - 28 ;
var ret = FS . readlink ( path ) ;
var len = Math . min ( bufsize , lengthBytesUTF8 ( ret ) ) ;
var endChar = GROWABLE _HEAP _LOAD _I8 ( buf + len | 0 ) ;
stringToUTF8 ( ret , buf , bufsize + 1 ) ;
GROWABLE _HEAP _STORE _I8 ( buf + len | 0 , endChar ) ;
return len ;
} ) ,
doAccess : ( function ( path , amode ) {
if ( amode & ~ 7 ) {
return - 28 ;
}
var node ;
var lookup = FS . lookupPath ( path , {
follow : true
} ) ;
node = lookup . node ;
if ( ! node ) {
return - 44 ;
}
var perms = "" ;
if ( amode & 4 ) perms += "r" ;
if ( amode & 2 ) perms += "w" ;
if ( amode & 1 ) perms += "x" ;
if ( perms && FS . nodePermissions ( node , perms ) ) {
return - 2 ;
}
return 0 ;
} ) ,
doDup : ( function ( path , flags , suggestFD ) {
var suggest = FS . getStream ( suggestFD ) ;
if ( suggest ) FS . close ( suggest ) ;
return FS . open ( path , flags , 0 , suggestFD , suggestFD ) . fd ;
} ) ,
doReadv : ( function ( stream , iov , iovcnt , offset ) {
var ret = 0 ;
for ( var i = 0 ; i < iovcnt ; i ++ ) {
var ptr = GROWABLE _HEAP _LOAD _I32 ( iov + i * 8 | 0 ) ;
var len = GROWABLE _HEAP _LOAD _I32 ( iov + ( i * 8 + 4 ) | 0 ) ;
var curr = FS . read ( stream , HEAP8 , ptr , len , offset ) ;
if ( curr < 0 ) return - 1 ;
ret += curr ;
if ( curr < len ) break ;
}
return ret ;
} ) ,
doWritev : ( function ( stream , iov , iovcnt , offset ) {
var ret = 0 ;
for ( var i = 0 ; i < iovcnt ; i ++ ) {
var ptr = GROWABLE _HEAP _LOAD _I32 ( iov + i * 8 | 0 ) ;
var len = GROWABLE _HEAP _LOAD _I32 ( iov + ( i * 8 + 4 ) | 0 ) ;
var curr = FS . write ( stream , HEAP8 , ptr , len , offset ) ;
if ( curr < 0 ) return - 1 ;
ret += curr ;
}
return ret ;
} ) ,
varargs : 0 ,
get : ( function ( varargs ) {
SYSCALLS . varargs += 4 ;
var ret = GROWABLE _HEAP _LOAD _I32 ( SYSCALLS . varargs - 4 | 0 ) ;
return ret ;
} ) ,
getStr : ( function ( ) {
var ret = UTF8ToString ( SYSCALLS . get ( ) ) ;
return ret ;
} ) ,
getStreamFromFD : ( function ( fd ) {
if ( fd === undefined ) fd = SYSCALLS . get ( ) ;
var stream = FS . getStream ( fd ) ;
if ( ! stream ) throw new FS . ErrnoError ( 8 ) ;
return stream ;
} ) ,
get64 : ( function ( ) {
var low = SYSCALLS . get ( ) , high = SYSCALLS . get ( ) ;
if ( low >= 0 ) assert ( high === 0 ) ; else assert ( high === - 1 ) ;
return low ;
} ) ,
getZero : ( function ( ) {
assert ( SYSCALLS . get ( ) === 0 ) ;
} )
} ;
Module [ "SYSCALLS" ] = SYSCALLS ;
function _ _ _syscall10 ( which , varargs ) {
if ( ENVIRONMENT _IS _PTHREAD ) return _emscripten _proxy _to _main _thread _js ( 2 , 1 , which , varargs ) ;
SYSCALLS . varargs = varargs ;
try {
var path = SYSCALLS . getStr ( ) ;
FS . unlink ( path ) ;
return 0 ;
} catch ( e ) {
if ( typeof FS === "undefined" || ! ( e instanceof FS . ErrnoError ) ) abort ( e ) ;
return - e . errno ;
}
}
Module [ "___syscall10" ] = _ _ _syscall10 ;
function _ _ _syscall12 ( which , varargs ) {
if ( ENVIRONMENT _IS _PTHREAD ) return _emscripten _proxy _to _main _thread _js ( 3 , 1 , which , varargs ) ;
SYSCALLS . varargs = varargs ;
try {
var path = SYSCALLS . getStr ( ) ;
FS . chdir ( path ) ;
return 0 ;
} catch ( e ) {
if ( typeof FS === "undefined" || ! ( e instanceof FS . ErrnoError ) ) abort ( e ) ;
return - e . errno ;
}
}
Module [ "___syscall12" ] = _ _ _syscall12 ;
function _ _ _syscall183 ( which , varargs ) {
if ( ENVIRONMENT _IS _PTHREAD ) return _emscripten _proxy _to _main _thread _js ( 4 , 1 , which , varargs ) ;
SYSCALLS . varargs = varargs ;
try {
var buf = SYSCALLS . get ( ) , size = SYSCALLS . get ( ) ;
if ( size === 0 ) return - 28 ;
var cwd = FS . cwd ( ) ;
var cwdLengthInBytes = lengthBytesUTF8 ( cwd ) ;
if ( size < cwdLengthInBytes + 1 ) return - 68 ;
stringToUTF8 ( cwd , buf , size ) ;
return buf ;
} catch ( e ) {
if ( typeof FS === "undefined" || ! ( e instanceof FS . ErrnoError ) ) abort ( e ) ;
return - e . errno ;
}
}
Module [ "___syscall183" ] = _ _ _syscall183 ;
function _ _ _syscall195 ( which , varargs ) {
if ( ENVIRONMENT _IS _PTHREAD ) return _emscripten _proxy _to _main _thread _js ( 5 , 1 , which , varargs ) ;
SYSCALLS . varargs = varargs ;
try {
var path = SYSCALLS . getStr ( ) , buf = SYSCALLS . get ( ) ;
return SYSCALLS . doStat ( FS . stat , path , buf ) ;
} catch ( e ) {
if ( typeof FS === "undefined" || ! ( e instanceof FS . ErrnoError ) ) abort ( e ) ;
return - e . errno ;
}
}
Module [ "___syscall195" ] = _ _ _syscall195 ;
function _ _ _syscall196 ( which , varargs ) {
if ( ENVIRONMENT _IS _PTHREAD ) return _emscripten _proxy _to _main _thread _js ( 6 , 1 , which , varargs ) ;
SYSCALLS . varargs = varargs ;
try {
var path = SYSCALLS . getStr ( ) , buf = SYSCALLS . get ( ) ;
return SYSCALLS . doStat ( FS . lstat , path , buf ) ;
} catch ( e ) {
if ( typeof FS === "undefined" || ! ( e instanceof FS . ErrnoError ) ) abort ( e ) ;
return - e . errno ;
}
}
Module [ "___syscall196" ] = _ _ _syscall196 ;
function _ _ _syscall220 ( which , varargs ) {
if ( ENVIRONMENT _IS _PTHREAD ) return _emscripten _proxy _to _main _thread _js ( 7 , 1 , which , varargs ) ;
SYSCALLS . varargs = varargs ;
try {
var stream = SYSCALLS . getStreamFromFD ( ) , dirp = SYSCALLS . get ( ) , count = SYSCALLS . get ( ) ;
if ( ! stream . getdents ) {
stream . getdents = FS . readdir ( stream . path ) ;
}
var struct _size = 280 ;
var pos = 0 ;
var off = FS . llseek ( stream , 0 , 1 ) ;
var idx = Math . floor ( off / struct _size ) ;
while ( idx < stream . getdents . length && pos + struct _size <= count ) {
var id ;
var type ;
var name = stream . getdents [ idx ] ;
if ( name [ 0 ] === "." ) {
id = 1 ;
type = 4 ;
} else {
var child = FS . lookupNode ( stream . node , name ) ;
id = child . id ;
type = FS . isChrdev ( child . mode ) ? 2 : FS . isDir ( child . mode ) ? 4 : FS . isLink ( child . mode ) ? 10 : 8 ;
}
tempI64 = [ id >>> 0 , ( tempDouble = id , + Math _abs ( tempDouble ) >= 1 ? tempDouble > 0 ? ( Math _min ( + Math _floor ( tempDouble / 4294967296 ) , 4294967295 ) | 0 ) >>> 0 : ~ ~ + Math _ceil ( ( tempDouble - + ( ~ ~ tempDouble >>> 0 ) ) / 4294967296 ) >>> 0 : 0 ) ] , GROWABLE _HEAP _STORE _I32 ( dirp + pos | 0 , tempI64 [ 0 ] ) , GROWABLE _HEAP _STORE _I32 ( dirp + pos + 4 | 0 , tempI64 [ 1 ] ) ;
tempI64 = [ ( idx + 1 ) * struct _size >>> 0 , ( tempDouble = ( idx + 1 ) * struct _size , + Math _abs ( tempDouble ) >= 1 ? tempDouble > 0 ? ( Math _min ( + Math _floor ( tempDouble / 4294967296 ) , 4294967295 ) | 0 ) >>> 0 : ~ ~ + Math _ceil ( ( tempDouble - + ( ~ ~ tempDouble >>> 0 ) ) / 4294967296 ) >>> 0 : 0 ) ] , GROWABLE _HEAP _STORE _I32 ( dirp + pos + 8 | 0 , tempI64 [ 0 ] ) , GROWABLE _HEAP _STORE _I32 ( dirp + pos + 12 | 0 , tempI64 [ 1 ] ) ;
GROWABLE _HEAP _STORE _I16 ( dirp + pos + 16 | 0 , 280 ) ;
GROWABLE _HEAP _STORE _I8 ( dirp + pos + 18 >> 0 | 0 , type ) ;
stringToUTF8 ( name , dirp + pos + 19 , 256 ) ;
pos += struct _size ;
idx += 1 ;
}
FS . llseek ( stream , idx * struct _size , 0 ) ;
return pos ;
} catch ( e ) {
if ( typeof FS === "undefined" || ! ( e instanceof FS . ErrnoError ) ) abort ( e ) ;
return - e . errno ;
}
}
Module [ "___syscall220" ] = _ _ _syscall220 ;
function _ _ _syscall221 ( which , varargs ) {
if ( ENVIRONMENT _IS _PTHREAD ) return _emscripten _proxy _to _main _thread _js ( 8 , 1 , which , varargs ) ;
SYSCALLS . varargs = varargs ;
try {
var stream = SYSCALLS . getStreamFromFD ( ) , cmd = SYSCALLS . get ( ) ;
switch ( cmd ) {
case 0 :
{
var arg = SYSCALLS . get ( ) ;
if ( arg < 0 ) {
return - 28 ;
}
var newStream ;
newStream = FS . open ( stream . path , stream . flags , 0 , arg ) ;
return newStream . fd ;
}
case 1 :
case 2 :
return 0 ;
case 3 :
return stream . flags ;
case 4 :
{
var arg = SYSCALLS . get ( ) ;
stream . flags |= arg ;
return 0 ;
}
case 12 :
{
var arg = SYSCALLS . get ( ) ;
var offset = 0 ;
GROWABLE _HEAP _STORE _I16 ( arg + offset | 0 , 2 ) ;
return 0 ;
}
case 13 :
case 14 :
return 0 ;
case 16 :
case 8 :
return - 28 ;
case 9 :
_ _ _setErrNo ( 28 ) ;
return - 1 ;
default :
{
return - 28 ;
}
}
} catch ( e ) {
if ( typeof FS === "undefined" || ! ( e instanceof FS . ErrnoError ) ) abort ( e ) ;
return - e . errno ;
}
}
Module [ "___syscall221" ] = _ _ _syscall221 ;
function _ _ _syscall3 ( which , varargs ) {
if ( ENVIRONMENT _IS _PTHREAD ) return _emscripten _proxy _to _main _thread _js ( 9 , 1 , which , varargs ) ;
SYSCALLS . varargs = varargs ;
try {
var stream = SYSCALLS . getStreamFromFD ( ) , buf = SYSCALLS . get ( ) , count = SYSCALLS . get ( ) ;
return FS . read ( stream , HEAP8 , buf , count ) ;
} catch ( e ) {
if ( typeof FS === "undefined" || ! ( e instanceof FS . ErrnoError ) ) abort ( e ) ;
return - e . errno ;
}
}
Module [ "___syscall3" ] = _ _ _syscall3 ;
function _ _ _syscall39 ( which , varargs ) {
if ( ENVIRONMENT _IS _PTHREAD ) return _emscripten _proxy _to _main _thread _js ( 10 , 1 , which , varargs ) ;
SYSCALLS . varargs = varargs ;
try {
var path = SYSCALLS . getStr ( ) , mode = SYSCALLS . get ( ) ;
return SYSCALLS . doMkdir ( path , mode ) ;
} catch ( e ) {
if ( typeof FS === "undefined" || ! ( e instanceof FS . ErrnoError ) ) abort ( e ) ;
return - e . errno ;
}
}
Module [ "___syscall39" ] = _ _ _syscall39 ;
function _ _ _syscall4 ( which , varargs ) {
if ( ENVIRONMENT _IS _PTHREAD ) return _emscripten _proxy _to _main _thread _js ( 11 , 1 , which , varargs ) ;
SYSCALLS . varargs = varargs ;
try {
var stream = SYSCALLS . getStreamFromFD ( ) , buf = SYSCALLS . get ( ) , count = SYSCALLS . get ( ) ;
return FS . write ( stream , HEAP8 , buf , count ) ;
} catch ( e ) {
if ( typeof FS === "undefined" || ! ( e instanceof FS . ErrnoError ) ) abort ( e ) ;
return - e . errno ;
}
}
Module [ "___syscall4" ] = _ _ _syscall4 ;
function _ _ _syscall40 ( which , varargs ) {
if ( ENVIRONMENT _IS _PTHREAD ) return _emscripten _proxy _to _main _thread _js ( 12 , 1 , which , varargs ) ;
SYSCALLS . varargs = varargs ;
try {
var path = SYSCALLS . getStr ( ) ;
FS . rmdir ( path ) ;
return 0 ;
} catch ( e ) {
if ( typeof FS === "undefined" || ! ( e instanceof FS . ErrnoError ) ) abort ( e ) ;
return - e . errno ;
}
}
Module [ "___syscall40" ] = _ _ _syscall40 ;
function _ _ _syscall5 ( which , varargs ) {
if ( ENVIRONMENT _IS _PTHREAD ) return _emscripten _proxy _to _main _thread _js ( 13 , 1 , which , varargs ) ;
SYSCALLS . varargs = varargs ;
try {
var pathname = SYSCALLS . getStr ( ) , flags = SYSCALLS . get ( ) , mode = SYSCALLS . get ( ) ;
var stream = FS . open ( pathname , flags , mode ) ;
return stream . fd ;
} catch ( e ) {
if ( typeof FS === "undefined" || ! ( e instanceof FS . ErrnoError ) ) abort ( e ) ;
return - e . errno ;
}
}
Module [ "___syscall5" ] = _ _ _syscall5 ;
function _ _ _syscall54 ( which , varargs ) {
if ( ENVIRONMENT _IS _PTHREAD ) return _emscripten _proxy _to _main _thread _js ( 14 , 1 , which , varargs ) ;
SYSCALLS . varargs = varargs ;
try {
var stream = SYSCALLS . getStreamFromFD ( ) , op = SYSCALLS . get ( ) ;
switch ( op ) {
case 21509 :
case 21505 :
{
if ( ! stream . tty ) return - 59 ;
return 0 ;
}
case 21510 :
case 21511 :
case 21512 :
case 21506 :
case 21507 :
case 21508 :
{
if ( ! stream . tty ) return - 59 ;
return 0 ;
}
case 21519 :
{
if ( ! stream . tty ) return - 59 ;
var argp = SYSCALLS . get ( ) ;
GROWABLE _HEAP _STORE _I32 ( argp | 0 , 0 ) ;
return 0 ;
}
case 21520 :
{
if ( ! stream . tty ) return - 59 ;
return - 28 ;
}
case 21531 :
{
var argp = SYSCALLS . get ( ) ;
return FS . ioctl ( stream , op , argp ) ;
}
case 21523 :
{
if ( ! stream . tty ) return - 59 ;
return 0 ;
}
case 21524 :
{
if ( ! stream . tty ) return - 59 ;
return 0 ;
}
default :
abort ( "bad ioctl syscall " + op ) ;
}
} catch ( e ) {
if ( typeof FS === "undefined" || ! ( e instanceof FS . ErrnoError ) ) abort ( e ) ;
return - e . errno ;
}
}
Module [ "___syscall54" ] = _ _ _syscall54 ;
function _ _ _syscall85 ( which , varargs ) {
if ( ENVIRONMENT _IS _PTHREAD ) return _emscripten _proxy _to _main _thread _js ( 15 , 1 , which , varargs ) ;
SYSCALLS . varargs = varargs ;
try {
var path = SYSCALLS . getStr ( ) , buf = SYSCALLS . get ( ) , bufsize = SYSCALLS . get ( ) ;
return SYSCALLS . doReadlink ( path , buf , bufsize ) ;
} catch ( e ) {
if ( typeof FS === "undefined" || ! ( e instanceof FS . ErrnoError ) ) abort ( e ) ;
return - e . errno ;
}
}
Module [ "___syscall85" ] = _ _ _syscall85 ;
function _ _emscripten _syscall _munmap ( addr , len ) {
if ( addr === - 1 || len === 0 ) {
return - 28 ;
}
var info = SYSCALLS . mappings [ addr ] ;
if ( ! info ) return 0 ;
if ( len === info . len ) {
var stream = FS . getStream ( info . fd ) ;
SYSCALLS . doMsync ( addr , stream , len , info . flags ) ;
FS . munmap ( stream ) ;
SYSCALLS . mappings [ addr ] = null ;
if ( info . allocated ) {
_free ( info . malloc ) ;
}
}
return 0 ;
}
Module [ "__emscripten_syscall_munmap" ] = _ _emscripten _syscall _munmap ;
function _ _ _syscall91 ( which , varargs ) {
if ( ENVIRONMENT _IS _PTHREAD ) return _emscripten _proxy _to _main _thread _js ( 16 , 1 , which , varargs ) ;
SYSCALLS . varargs = varargs ;
try {
var addr = SYSCALLS . get ( ) , len = SYSCALLS . get ( ) ;
return _ _emscripten _syscall _munmap ( addr , len ) ;
} catch ( e ) {
if ( typeof FS === "undefined" || ! ( e instanceof FS . ErrnoError ) ) abort ( e ) ;
return - e . errno ;
}
}
Module [ "___syscall91" ] = _ _ _syscall91 ;
function _ _ _unlock ( ) { }
Module [ "___unlock" ] = _ _ _unlock ;
function _abort ( ) {
abort ( ) ;
}
Module [ "_abort" ] = _abort ;
function _emscripten _check _blocking _allowed ( ) {
assert ( ENVIRONMENT _IS _WEB ) ;
warnOnce ( "Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread" ) ;
}
Module [ "_emscripten_check_blocking_allowed" ] = _emscripten _check _blocking _allowed ;
function _emscripten _conditional _set _current _thread _status _js ( expectedStatus , newStatus ) { }
Module [ "_emscripten_conditional_set_current_thread_status_js" ] = _emscripten _conditional _set _current _thread _status _js ;
function _emscripten _conditional _set _current _thread _status ( expectedStatus , newStatus ) {
expectedStatus = expectedStatus | 0 ;
newStatus = newStatus | 0 ;
}
Module [ "_emscripten_conditional_set_current_thread_status" ] = _emscripten _conditional _set _current _thread _status ;
function _emscripten _futex _wait ( addr , val , timeout ) {
if ( addr <= 0 || addr > HEAP8 . length || addr & 3 != 0 ) return - 28 ;
if ( ENVIRONMENT _IS _WORKER ) {
var ret = Atomics . wait ( HEAP32 , addr >> 2 , val , timeout ) ;
if ( ret === "timed-out" ) return - 73 ;
if ( ret === "not-equal" ) return - 6 ;
if ( ret === "ok" ) return 0 ;
throw "Atomics.wait returned an unexpected value " + ret ;
} else {
var loadedVal = Atomics . load ( HEAP32 , addr >> 2 ) ;
if ( val != loadedVal ) return - 6 ;
var tNow = performance . now ( ) ;
var tEnd = tNow + timeout ;
Atomics . store ( HEAP32 , _ _main _thread _futex _wait _address >> 2 , addr ) ;
var ourWaitAddress = addr ;
while ( addr == ourWaitAddress ) {
tNow = performance . now ( ) ;
if ( tNow > tEnd ) {
return - 73 ;
}
_emscripten _main _thread _process _queued _calls ( ) ;
addr = Atomics . load ( HEAP32 , _ _main _thread _futex _wait _address >> 2 ) ;
}
return 0 ;
}
}
Module [ "_emscripten_futex_wait" ] = _emscripten _futex _wait ;
function _emscripten _get _heap _size ( ) {
return HEAP8 . length ;
}
Module [ "_emscripten_get_heap_size" ] = _emscripten _get _heap _size ;
function _emscripten _get _sbrk _ptr ( ) {
return 13887824 ;
}
Module [ "_emscripten_get_sbrk_ptr" ] = _emscripten _get _sbrk _ptr ;
function _emscripten _has _threading _support ( ) {
return SUPPORTS _SHARED _MEMORY ( ) ;
}
Module [ "_emscripten_has_threading_support" ] = _emscripten _has _threading _support ;
function _emscripten _is _main _browser _thread ( ) {
return _ _pthread _is _main _browser _thread | 0 ;
}
Module [ "_emscripten_is_main_browser_thread" ] = _emscripten _is _main _browser _thread ;
function _emscripten _is _main _runtime _thread ( ) {
return _ _pthread _is _main _runtime _thread | 0 ;
}
Module [ "_emscripten_is_main_runtime_thread" ] = _emscripten _is _main _runtime _thread ;
var setjmpId = 0 ;
Module [ "setjmpId" ] = setjmpId ;
function _saveSetjmp ( env , label , table , size ) {
env = env | 0 ;
label = label | 0 ;
table = table | 0 ;
size = size | 0 ;
var i = 0 ;
setjmpId = setjmpId + 1 | 0 ;
GROWABLE _HEAP _STORE _I32 ( env | 0 , setjmpId ) ;
while ( ( i | 0 ) < ( size | 0 ) ) {
if ( ( GROWABLE _HEAP _LOAD _I32 ( table + ( i << 3 ) | 0 ) | 0 ) == 0 ) {
GROWABLE _HEAP _STORE _I32 ( table + ( i << 3 ) | 0 , setjmpId ) ;
GROWABLE _HEAP _STORE _I32 ( table + ( ( i << 3 ) + 4 ) | 0 , label ) ;
GROWABLE _HEAP _STORE _I32 ( table + ( ( i << 3 ) + 8 ) | 0 , 0 ) ;
setTempRet0 ( size | 0 ) ;
return table | 0 ;
}
i = i + 1 | 0 ;
}
size = size * 2 | 0 ;
table = _realloc ( table | 0 , 8 * ( size + 1 | 0 ) | 0 ) | 0 ;
table = _saveSetjmp ( env | 0 , label | 0 , table | 0 , size | 0 ) | 0 ;
setTempRet0 ( size | 0 ) ;
return table | 0 ;
}
Module [ "_saveSetjmp" ] = _saveSetjmp ;
function _testSetjmp ( id , table , size ) {
id = id | 0 ;
table = table | 0 ;
size = size | 0 ;
var i = 0 , curr = 0 ;
while ( ( i | 0 ) < ( size | 0 ) ) {
curr = GROWABLE _HEAP _LOAD _I32 ( table + ( i << 3 ) | 0 ) | 0 ;
if ( ( curr | 0 ) == 0 ) break ;
if ( ( curr | 0 ) == ( id | 0 ) ) {
return GROWABLE _HEAP _LOAD _I32 ( table + ( ( i << 3 ) + 4 ) | 0 ) | 0 ;
}
i = i + 1 | 0 ;
}
return 0 ;
}
Module [ "_testSetjmp" ] = _testSetjmp ;
function _longjmp ( env , value ) {
_setThrew ( env , value || 1 ) ;
throw "longjmp" ;
}
Module [ "_longjmp" ] = _longjmp ;
function _emscripten _longjmp ( env , value ) {
_longjmp ( env , value ) ;
}
Module [ "_emscripten_longjmp" ] = _emscripten _longjmp ;
function _emscripten _memcpy _big ( dest , src , num ) {
HEAPU8 . set ( HEAPU8 . subarray ( src , src + num ) , dest ) ;
}
Module [ "_emscripten_memcpy_big" ] = _emscripten _memcpy _big ;
function _emscripten _proxy _to _main _thread _js ( index , sync ) {
var numCallArgs = arguments . length - 2 ;
if ( numCallArgs > 20 - 1 ) throw "emscripten_proxy_to_main_thread_js: Too many arguments " + numCallArgs + " to proxied function idx=" + index + ", maximum supported is " + ( 20 - 1 ) + "!" ;
var stack = stackSave ( ) ;
var args = stackAlloc ( numCallArgs * 8 ) ;
var b = args >> 3 ;
for ( var i = 0 ; i < numCallArgs ; i ++ ) {
GROWABLE _HEAP _STORE _F64 ( ( b + i ) * 8 | 0 , arguments [ 2 + i ] ) ;
}
var ret = _emscripten _run _in _main _runtime _thread _js ( index , numCallArgs , args , sync ) ;
stackRestore ( stack ) ;
return ret ;
}
Module [ "_emscripten_proxy_to_main_thread_js" ] = _emscripten _proxy _to _main _thread _js ;
var _emscripten _receive _on _main _thread _js _callArgs = [ ] ;
Module [ "_emscripten_receive_on_main_thread_js_callArgs" ] = _emscripten _receive _on _main _thread _js _callArgs ;
function _emscripten _receive _on _main _thread _js ( index , numCallArgs , args ) {
_emscripten _receive _on _main _thread _js _callArgs . length = numCallArgs ;
var b = args >> 3 ;
for ( var i = 0 ; i < numCallArgs ; i ++ ) {
_emscripten _receive _on _main _thread _js _callArgs [ i ] = GROWABLE _HEAP _LOAD _F64 ( ( b + i ) * 8 | 0 ) ;
}
var isEmAsmConst = index < 0 ;
var func = ! isEmAsmConst ? proxiedFunctionTable [ index ] : ASM _CONSTS [ - index - 1 ] ;
if ( isEmAsmConst ) {
var sigPtr = _emscripten _receive _on _main _thread _js _callArgs [ 1 ] ;
var varargPtr = _emscripten _receive _on _main _thread _js _callArgs [ 2 ] ;
var constArgs = readAsmConstArgs ( sigPtr , varargPtr ) ;
return func . apply ( null , constArgs ) ;
}
assert ( func . length == numCallArgs , "Call args mismatch in emscripten_receive_on_main_thread_js" ) ;
return func . apply ( null , _emscripten _receive _on _main _thread _js _callArgs ) ;
}
Module [ "_emscripten_receive_on_main_thread_js" ] = _emscripten _receive _on _main _thread _js ;
function abortOnCannotGrowMemory ( requestedSize ) {
abort ( "Cannot enlarge memory arrays to size " + requestedSize + " bytes (OOM). Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value " + HEAP8 . length + ", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 " ) ;
}
Module [ "abortOnCannotGrowMemory" ] = abortOnCannotGrowMemory ;
function emscripten _realloc _buffer ( size ) {
try {
wasmMemory . grow ( size - buffer . byteLength + 65535 >> 16 ) ;
updateGlobalBufferAndViews ( wasmMemory . buffer ) ;
return 1 ;
} catch ( e ) {
console . error ( "emscripten_realloc_buffer: Attempted to grow heap from " + buffer . byteLength + " bytes to " + size + " bytes, but got error: " + e ) ;
}
}
Module [ "emscripten_realloc_buffer" ] = emscripten _realloc _buffer ;
function _emscripten _resize _heap ( requestedSize ) {
var oldSize = _emscripten _get _heap _size ( ) ;
if ( requestedSize <= oldSize ) {
return false ;
}
var PAGE _MULTIPLE = 65536 ;
var LIMIT = 2147483648 - PAGE _MULTIPLE ;
if ( requestedSize > LIMIT ) {
err ( "Cannot enlarge memory, asked to go up to " + requestedSize + " bytes, but the limit is " + LIMIT + " bytes!" ) ;
return false ;
}
var MIN _TOTAL _MEMORY = 16777216 ;
var newSize = Math . max ( oldSize , MIN _TOTAL _MEMORY ) ;
while ( newSize < requestedSize ) {
if ( newSize <= 536870912 ) {
newSize = alignUp ( 2 * newSize , PAGE _MULTIPLE ) ;
} else {
newSize = Math . min ( alignUp ( ( 3 * newSize + 2147483648 ) / 4 , PAGE _MULTIPLE ) , LIMIT ) ;
}
if ( newSize === oldSize ) {
warnOnce ( "Cannot ask for more memory since we reached the practical limit in browsers (which is just below 2GB), so the request would have failed. Requesting only " + HEAP8 . length ) ;
}
}
newSize = Math . min ( newSize , 1073741824 ) ;
if ( newSize == oldSize ) {
err ( "Failed to grow the heap from " + oldSize + ", as we reached the WASM_MEM_MAX limit (" + 1073741824 + ") set during compilation" ) ;
return false ;
}
var replacement = emscripten _realloc _buffer ( newSize ) ;
if ( ! replacement ) {
err ( "Failed to grow the heap from " + oldSize + " bytes to " + newSize + " bytes, not enough memory!" ) ;
return false ;
}
return true ;
}
Module [ "_emscripten_resize_heap" ] = _emscripten _resize _heap ;
var JSEvents = {
keyEvent : 0 ,
mouseEvent : 0 ,
wheelEvent : 0 ,
uiEvent : 0 ,
focusEvent : 0 ,
deviceOrientationEvent : 0 ,
deviceMotionEvent : 0 ,
fullscreenChangeEvent : 0 ,
pointerlockChangeEvent : 0 ,
visibilityChangeEvent : 0 ,
touchEvent : 0 ,
previousFullscreenElement : null ,
previousScreenX : null ,
previousScreenY : null ,
removeEventListenersRegistered : false ,
removeAllEventListeners : ( function ( ) {
for ( var i = JSEvents . eventHandlers . length - 1 ; i >= 0 ; -- i ) {
JSEvents . _removeHandler ( i ) ;
}
JSEvents . eventHandlers = [ ] ;
JSEvents . deferredCalls = [ ] ;
} ) ,
registerRemoveEventListeners : ( function ( ) {
if ( ! JSEvents . removeEventListenersRegistered ) {
_ _ATEXIT _ _ . push ( JSEvents . removeAllEventListeners ) ;
JSEvents . removeEventListenersRegistered = true ;
}
} ) ,
deferredCalls : [ ] ,
deferCall : ( function ( targetFunction , precedence , argsList ) {
function arraysHaveEqualContent ( arrA , arrB ) {
if ( arrA . length != arrB . length ) return false ;
for ( var i in arrA ) {
if ( arrA [ i ] != arrB [ i ] ) return false ;
}
return true ;
}
for ( var i in JSEvents . deferredCalls ) {
var call = JSEvents . deferredCalls [ i ] ;
if ( call . targetFunction == targetFunction && arraysHaveEqualContent ( call . argsList , argsList ) ) {
return ;
}
}
JSEvents . deferredCalls . push ( {
targetFunction : targetFunction ,
precedence : precedence ,
argsList : argsList
} ) ;
JSEvents . deferredCalls . sort ( ( function ( x , y ) {
return x . precedence < y . precedence ;
} ) ) ;
} ) ,
removeDeferredCalls : ( function ( targetFunction ) {
for ( var i = 0 ; i < JSEvents . deferredCalls . length ; ++ i ) {
if ( JSEvents . deferredCalls [ i ] . targetFunction == targetFunction ) {
JSEvents . deferredCalls . splice ( i , 1 ) ;
-- i ;
}
}
} ) ,
canPerformEventHandlerRequests : ( function ( ) {
return JSEvents . inEventHandler && JSEvents . currentEventHandler . allowsDeferredCalls ;
} ) ,
runDeferredCalls : ( function ( ) {
if ( ! JSEvents . canPerformEventHandlerRequests ( ) ) {
return ;
}
for ( var i = 0 ; i < JSEvents . deferredCalls . length ; ++ i ) {
var call = JSEvents . deferredCalls [ i ] ;
JSEvents . deferredCalls . splice ( i , 1 ) ;
-- i ;
call . targetFunction . apply ( this , call . argsList ) ;
}
} ) ,
inEventHandler : 0 ,
currentEventHandler : null ,
eventHandlers : [ ] ,
isInternetExplorer : ( function ( ) {
return navigator . userAgent . indexOf ( "MSIE" ) !== - 1 || navigator . appVersion . indexOf ( "Trident/" ) > 0 ;
} ) ,
removeAllHandlersOnTarget : ( function ( target , eventTypeString ) {
for ( var i = 0 ; i < JSEvents . eventHandlers . length ; ++ i ) {
if ( JSEvents . eventHandlers [ i ] . target == target && ( ! eventTypeString || eventTypeString == JSEvents . eventHandlers [ i ] . eventTypeString ) ) {
JSEvents . _removeHandler ( i -- ) ;
}
}
} ) ,
_removeHandler : ( function ( i ) {
var h = JSEvents . eventHandlers [ i ] ;
h . target . removeEventListener ( h . eventTypeString , h . eventListenerFunc , h . useCapture ) ;
JSEvents . eventHandlers . splice ( i , 1 ) ;
} ) ,
registerOrRemoveHandler : ( function ( eventHandler ) {
var jsEventHandler = function jsEventHandler ( event ) {
++ JSEvents . inEventHandler ;
JSEvents . currentEventHandler = eventHandler ;
JSEvents . runDeferredCalls ( ) ;
eventHandler . handlerFunc ( event ) ;
JSEvents . runDeferredCalls ( ) ;
-- JSEvents . inEventHandler ;
} ;
if ( eventHandler . callbackfunc ) {
eventHandler . eventListenerFunc = jsEventHandler ;
eventHandler . target . addEventListener ( eventHandler . eventTypeString , jsEventHandler , eventHandler . useCapture ) ;
JSEvents . eventHandlers . push ( eventHandler ) ;
JSEvents . registerRemoveEventListeners ( ) ;
} else {
for ( var i = 0 ; i < JSEvents . eventHandlers . length ; ++ i ) {
if ( JSEvents . eventHandlers [ i ] . target == eventHandler . target && JSEvents . eventHandlers [ i ] . eventTypeString == eventHandler . eventTypeString ) {
JSEvents . _removeHandler ( i -- ) ;
}
}
}
} ) ,
queueEventHandlerOnThread _iiii : ( function ( targetThread , eventHandlerFunc , eventTypeId , eventData , userData ) {
var stackTop = stackSave ( ) ;
var varargs = stackAlloc ( 12 ) ;
GROWABLE _HEAP _STORE _I32 ( varargs | 0 , eventTypeId ) ;
GROWABLE _HEAP _STORE _I32 ( varargs + 4 | 0 , eventData ) ;
GROWABLE _HEAP _STORE _I32 ( varargs + 8 | 0 , userData ) ;
_emscripten _async _queue _on _thread _ ( targetThread , 637534208 , eventHandlerFunc , eventData , varargs ) ;
stackRestore ( stackTop ) ;
} ) ,
getTargetThreadForEventCallback : ( function ( targetThread ) {
switch ( targetThread ) {
case 1 :
return 0 ;
case 2 :
return PThread . currentProxiedOperationCallerThread ;
default :
return targetThread ;
}
} ) ,
getBoundingClientRectOrZeros : ( function ( target ) {
return target . getBoundingClientRect ? target . getBoundingClientRect ( ) : {
left : 0 ,
top : 0
} ;
} ) ,
getNodeNameForTarget : ( function ( target ) {
if ( ! target ) return "" ;
if ( target == window ) return "#window" ;
if ( target == screen ) return "#screen" ;
return target && target . nodeName ? target . nodeName : "" ;
} ) ,
tick : ( function ( ) {
if ( window [ "performance" ] && window [ "performance" ] [ "now" ] ) return window [ "performance" ] [ "now" ] ( ) ; else return Date . now ( ) ;
} ) ,
fullscreenEnabled : ( function ( ) {
return document . fullscreenEnabled || document . mozFullScreenEnabled || document . webkitFullscreenEnabled || document . msFullscreenEnabled ;
} )
} ;
Module [ "JSEvents" ] = JSEvents ;
function stringToNewUTF8 ( jsString ) {
var length = lengthBytesUTF8 ( jsString ) + 1 ;
var cString = _malloc ( length ) ;
stringToUTF8 ( jsString , cString , length ) ;
return cString ;
}
Module [ "stringToNewUTF8" ] = stringToNewUTF8 ;
function _emscripten _set _offscreencanvas _size _on _target _thread _js ( targetThread , targetCanvas , width , height ) {
var stackTop = stackSave ( ) ;
var varargs = stackAlloc ( 12 ) ;
var targetCanvasPtr = 0 ;
if ( targetCanvas ) {
targetCanvasPtr = stringToNewUTF8 ( targetCanvas ) ;
}
GROWABLE _HEAP _STORE _I32 ( varargs | 0 , targetCanvasPtr ) ;
GROWABLE _HEAP _STORE _I32 ( varargs + 4 | 0 , width ) ;
GROWABLE _HEAP _STORE _I32 ( varargs + 8 | 0 , height ) ;
_emscripten _async _queue _on _thread _ ( targetThread , 657457152 , 0 , targetCanvasPtr , varargs ) ;
stackRestore ( stackTop ) ;
}
Module [ "_emscripten_set_offscreencanvas_size_on_target_thread_js" ] = _emscripten _set _offscreencanvas _size _on _target _thread _js ;
function _emscripten _set _offscreencanvas _size _on _target _thread ( targetThread , targetCanvas , width , height ) {
targetCanvas = targetCanvas ? UTF8ToString ( targetCanvas ) : "" ;
_emscripten _set _offscreencanvas _size _on _target _thread _js ( targetThread , targetCanvas , width , height ) ;
}
Module [ "_emscripten_set_offscreencanvas_size_on_target_thread" ] = _emscripten _set _offscreencanvas _size _on _target _thread ;
var _ _specialEventTargets = [ 0 , typeof document !== "undefined" ? document : 0 , typeof window !== "undefined" ? window : 0 ] ;
Module [ "__specialEventTargets" ] = _ _specialEventTargets ;
function _ _findEventTarget ( target ) {
warnOnce ( "Rules for selecting event targets in HTML5 API are changing: instead of using document.getElementById() that only can refer to elements by their DOM ID, new event target selection mechanism uses the more flexible function document.querySelector() that can look up element names, classes, and complex CSS selectors. Build with -s DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR=1 to change to the new lookup rules. See https://github.com/emscripten-core/emscripten/pull/7977 for more details." ) ;
try {
if ( ! target ) return window ;
if ( typeof target === "number" ) target = _ _specialEventTargets [ target ] || UTF8ToString ( target ) ;
if ( target === "#window" ) return window ; else if ( target === "#document" ) return document ; else if ( target === "#screen" ) return screen ; else if ( target === "#canvas" ) return Module [ "canvas" ] ;
return typeof target === "string" ? document . getElementById ( target ) : target ;
} catch ( e ) {
return null ;
}
}
Module [ "__findEventTarget" ] = _ _findEventTarget ;
function _ _findCanvasEventTarget ( target ) {
if ( typeof target === "number" ) target = UTF8ToString ( target ) ;
if ( ! target || target === "#canvas" ) {
if ( typeof GL !== "undefined" && GL . offscreenCanvases [ "canvas" ] ) return GL . offscreenCanvases [ "canvas" ] ;
return Module [ "canvas" ] ;
}
if ( typeof GL !== "undefined" && GL . offscreenCanvases [ target ] ) return GL . offscreenCanvases [ target ] ;
return _ _findEventTarget ( target ) ;
}
Module [ "__findCanvasEventTarget" ] = _ _findCanvasEventTarget ;
function _emscripten _set _canvas _element _size _calling _thread ( target , width , height ) {
var canvas = _ _findCanvasEventTarget ( target ) ;
if ( ! canvas ) return - 4 ;
if ( canvas . canvasSharedPtr ) {
GROWABLE _HEAP _STORE _I32 ( canvas . canvasSharedPtr | 0 , width ) ;
GROWABLE _HEAP _STORE _I32 ( canvas . canvasSharedPtr + 4 | 0 , height ) ;
}
if ( canvas . offscreenCanvas || ! canvas . controlTransferredOffscreen ) {
if ( canvas . offscreenCanvas ) canvas = canvas . offscreenCanvas ;
var autoResizeViewport = false ;
if ( canvas . GLctxObject && canvas . GLctxObject . GLctx ) {
var prevViewport = canvas . GLctxObject . GLctx . getParameter ( canvas . GLctxObject . GLctx . VIEWPORT ) ;
autoResizeViewport = prevViewport [ 0 ] === 0 && prevViewport [ 1 ] === 0 && prevViewport [ 2 ] === canvas . width && prevViewport [ 3 ] === canvas . height ;
}
canvas . width = width ;
canvas . height = height ;
if ( autoResizeViewport ) {
canvas . GLctxObject . GLctx . viewport ( 0 , 0 , width , height ) ;
}
} else if ( canvas . canvasSharedPtr ) {
var targetThread = GROWABLE _HEAP _LOAD _I32 ( canvas . canvasSharedPtr + 8 | 0 ) ;
_emscripten _set _offscreencanvas _size _on _target _thread ( targetThread , target , width , height ) ;
return 1 ;
} else {
return - 4 ;
}
return 0 ;
}
Module [ "_emscripten_set_canvas_element_size_calling_thread" ] = _emscripten _set _canvas _element _size _calling _thread ;
function _emscripten _set _canvas _element _size _main _thread ( target , width , height ) {
if ( ENVIRONMENT _IS _PTHREAD ) return _emscripten _proxy _to _main _thread _js ( 17 , 1 , target , width , height ) ;
return _emscripten _set _canvas _element _size _calling _thread ( target , width , height ) ;
}
Module [ "_emscripten_set_canvas_element_size_main_thread" ] = _emscripten _set _canvas _element _size _main _thread ;
function _emscripten _set _canvas _element _size ( target , width , height ) {
var canvas = _ _findCanvasEventTarget ( target ) ;
if ( canvas ) {
return _emscripten _set _canvas _element _size _calling _thread ( target , width , height ) ;
} else {
return _emscripten _set _canvas _element _size _main _thread ( target , width , height ) ;
}
}
Module [ "_emscripten_set_canvas_element_size" ] = _emscripten _set _canvas _element _size ;
function _emscripten _set _current _thread _status _js ( newStatus ) { }
Module [ "_emscripten_set_current_thread_status_js" ] = _emscripten _set _current _thread _status _js ;
function _emscripten _set _current _thread _status ( newStatus ) {
newStatus = newStatus | 0 ;
}
Module [ "_emscripten_set_current_thread_status" ] = _emscripten _set _current _thread _status ;
function _emscripten _set _thread _name _js ( threadId , name ) { }
Module [ "_emscripten_set_thread_name_js" ] = _emscripten _set _thread _name _js ;
function _emscripten _set _thread _name ( threadId , name ) {
threadId = threadId | 0 ;
name = name | 0 ;
}
Module [ "_emscripten_set_thread_name" ] = _emscripten _set _thread _name ;
function _emscripten _syscall ( which , varargs ) {
switch ( which ) {
case 10 :
return _ _ _syscall10 ( which , varargs ) ;
case 12 :
return _ _ _syscall12 ( which , varargs ) ;
case 183 :
return _ _ _syscall183 ( which , varargs ) ;
case 195 :
return _ _ _syscall195 ( which , varargs ) ;
case 196 :
return _ _ _syscall196 ( which , varargs ) ;
case 220 :
return _ _ _syscall220 ( which , varargs ) ;
case 221 :
return _ _ _syscall221 ( which , varargs ) ;
case 3 :
return _ _ _syscall3 ( which , varargs ) ;
case 39 :
return _ _ _syscall39 ( which , varargs ) ;
case 4 :
return _ _ _syscall4 ( which , varargs ) ;
case 40 :
return _ _ _syscall40 ( which , varargs ) ;
case 5 :
return _ _ _syscall5 ( which , varargs ) ;
case 54 :
return _ _ _syscall54 ( which , varargs ) ;
case 85 :
return _ _ _syscall85 ( which , varargs ) ;
case 91 :
return _ _ _syscall91 ( which , varargs ) ;
default :
throw "surprising proxied syscall: " + which ;
}
}
Module [ "_emscripten_syscall" ] = _emscripten _syscall ;
var _ _emscripten _webgl _power _preferences = [ "default" , "low-power" , "high-performance" ] ;
Module [ "__emscripten_webgl_power_preferences" ] = _ _emscripten _webgl _power _preferences ;
var GL = {
counter : 1 ,
lastError : 0 ,
buffers : [ ] ,
mappedBuffers : { } ,
programs : [ ] ,
framebuffers : [ ] ,
renderbuffers : [ ] ,
textures : [ ] ,
uniforms : [ ] ,
shaders : [ ] ,
vaos : [ ] ,
contexts : { } ,
currentContext : null ,
offscreenCanvases : { } ,
timerQueriesEXT : [ ] ,
programInfos : { } ,
stringCache : { } ,
unpackAlignment : 4 ,
init : ( function ( ) {
GL . miniTempBuffer = new Float32Array ( GL . MINI _TEMP _BUFFER _SIZE ) ;
for ( var i = 0 ; i < GL . MINI _TEMP _BUFFER _SIZE ; i ++ ) {
GL . miniTempBufferViews [ i ] = GL . miniTempBuffer . subarray ( 0 , i + 1 ) ;
}
} ) ,
recordError : function recordError ( errorCode ) {
if ( ! GL . lastError ) {
GL . lastError = errorCode ;
}
} ,
getNewId : ( function ( table ) {
var ret = GL . counter ++ ;
for ( var i = table . length ; i < ret ; i ++ ) {
table [ i ] = null ;
}
return ret ;
} ) ,
MINI _TEMP _BUFFER _SIZE : 256 ,
miniTempBuffer : null ,
miniTempBufferViews : [ 0 ] ,
getSource : ( function ( shader , count , string , length ) {
var source = "" ;
for ( var i = 0 ; i < count ; ++ i ) {
var len = length ? GROWABLE _HEAP _LOAD _I32 ( length + i * 4 | 0 ) : - 1 ;
source += UTF8ToString ( GROWABLE _HEAP _LOAD _I32 ( string + i * 4 | 0 ) , len < 0 ? undefined : len ) ;
}
return source ;
} ) ,
createContext : ( function ( canvas , webGLContextAttributes ) {
var ctx = canvas . getContext ( "webgl" , webGLContextAttributes ) || canvas . getContext ( "experimental-webgl" , webGLContextAttributes ) ;
if ( ! ctx ) return 0 ;
var handle = GL . registerContext ( ctx , webGLContextAttributes ) ;
return handle ;
} ) ,
registerContext : ( function ( ctx , webGLContextAttributes ) {
var handle = _malloc ( 8 ) ;
GROWABLE _HEAP _STORE _I32 ( handle + 4 | 0 , _pthread _self ( ) ) ;
var context = {
handle : handle ,
attributes : webGLContextAttributes ,
version : webGLContextAttributes . majorVersion ,
GLctx : ctx
} ;
if ( ctx . canvas ) ctx . canvas . GLctxObject = context ;
GL . contexts [ handle ] = context ;
if ( typeof webGLContextAttributes . enableExtensionsByDefault === "undefined" || webGLContextAttributes . enableExtensionsByDefault ) {
GL . initExtensions ( context ) ;
}
return handle ;
} ) ,
makeContextCurrent : ( function ( contextHandle ) {
GL . currentContext = GL . contexts [ contextHandle ] ;
Module . ctx = GLctx = GL . currentContext && GL . currentContext . GLctx ;
return ! ( contextHandle && ! GLctx ) ;
} ) ,
getContext : ( function ( contextHandle ) {
return GL . contexts [ contextHandle ] ;
} ) ,
deleteContext : ( function ( contextHandle ) {
if ( GL . currentContext === GL . contexts [ contextHandle ] ) GL . currentContext = null ;
if ( typeof JSEvents === "object" ) JSEvents . removeAllHandlersOnTarget ( GL . contexts [ contextHandle ] . GLctx . canvas ) ;
if ( GL . contexts [ contextHandle ] && GL . contexts [ contextHandle ] . GLctx . canvas ) GL . contexts [ contextHandle ] . GLctx . canvas . GLctxObject = undefined ;
_free ( GL . contexts [ contextHandle ] ) ;
GL . contexts [ contextHandle ] = null ;
} ) ,
acquireInstancedArraysExtension : ( function ( ctx ) {
var ext = ctx . getExtension ( "ANGLE_instanced_arrays" ) ;
if ( ext ) {
ctx [ "vertexAttribDivisor" ] = ( function ( index , divisor ) {
ext [ "vertexAttribDivisorANGLE" ] ( index , divisor ) ;
} ) ;
ctx [ "drawArraysInstanced" ] = ( function ( mode , first , count , primcount ) {
ext [ "drawArraysInstancedANGLE" ] ( mode , first , count , primcount ) ;
} ) ;
ctx [ "drawElementsInstanced" ] = ( function ( mode , count , type , indices , primcount ) {
ext [ "drawElementsInstancedANGLE" ] ( mode , count , type , indices , primcount ) ;
} ) ;
}
} ) ,
acquireVertexArrayObjectExtension : ( function ( ctx ) {
var ext = ctx . getExtension ( "OES_vertex_array_object" ) ;
if ( ext ) {
ctx [ "createVertexArray" ] = ( function ( ) {
return ext [ "createVertexArrayOES" ] ( ) ;
} ) ;
ctx [ "deleteVertexArray" ] = ( function ( vao ) {
ext [ "deleteVertexArrayOES" ] ( vao ) ;
} ) ;
ctx [ "bindVertexArray" ] = ( function ( vao ) {
ext [ "bindVertexArrayOES" ] ( vao ) ;
} ) ;
ctx [ "isVertexArray" ] = ( function ( vao ) {
return ext [ "isVertexArrayOES" ] ( vao ) ;
} ) ;
}
} ) ,
acquireDrawBuffersExtension : ( function ( ctx ) {
var ext = ctx . getExtension ( "WEBGL_draw_buffers" ) ;
if ( ext ) {
ctx [ "drawBuffers" ] = ( function ( n , bufs ) {
ext [ "drawBuffersWEBGL" ] ( n , bufs ) ;
} ) ;
}
} ) ,
initExtensions : ( function ( context ) {
if ( ! context ) context = GL . currentContext ;
if ( context . initExtensionsDone ) return ;
context . initExtensionsDone = true ;
var GLctx = context . GLctx ;
if ( context . version < 2 ) {
GL . acquireInstancedArraysExtension ( GLctx ) ;
GL . acquireVertexArrayObjectExtension ( GLctx ) ;
GL . acquireDrawBuffersExtension ( GLctx ) ;
}
GLctx . disjointTimerQueryExt = GLctx . getExtension ( "EXT_disjoint_timer_query" ) ;
var automaticallyEnabledExtensions = [ "OES_texture_float" , "OES_texture_half_float" , "OES_standard_derivatives" , "OES_vertex_array_object" , "WEBGL_compressed_texture_s3tc" , "WEBGL_depth_texture" , "OES_element_index_uint" , "EXT_texture_filter_anisotropic" , "EXT_frag_depth" , "WEBGL_draw_buffers" , "ANGLE_instanced_arrays" , "OES_texture_float_linear" , "OES_texture_half_float_linear" , "EXT_blend_minmax" , "EXT_shader_texture_lod" , "WEBGL_compressed_texture_pvrtc" , "EXT_color_buffer_half_float" , "WEBGL_color_buffer_float" , "EXT_sRGB" , "WEBGL_compressed_texture_etc1" , "EXT_disjoint_timer_query" , "WEBGL_compressed_texture_etc" , "WEBGL_compressed_texture_astc" , "EXT_color_buffer_float" , "WEBGL_compressed_texture_s3tc_srgb" , "EXT_disjoint_timer_query_webgl2" , "WEBKIT_WEBGL_compressed_texture_pvrtc" ] ;
function shouldEnableAutomatically ( extension ) {
var ret = false ;
automaticallyEnabledExtensions . forEach ( ( function ( include ) {
if ( extension . indexOf ( include ) != - 1 ) {
ret = true ;
}
} ) ) ;
return ret ;
}
var exts = GLctx . getSupportedExtensions ( ) || [ ] ;
exts . forEach ( ( function ( ext ) {
if ( automaticallyEnabledExtensions . indexOf ( ext ) != - 1 ) {
GLctx . getExtension ( ext ) ;
}
} ) ) ;
} ) ,
populateUniformTable : ( function ( program ) {
var p = GL . programs [ program ] ;
var ptable = GL . programInfos [ program ] = {
uniforms : { } ,
maxUniformLength : 0 ,
maxAttributeLength : - 1 ,
maxUniformBlockNameLength : - 1
} ;
var utable = ptable . uniforms ;
var numUniforms = GLctx . getProgramParameter ( p , 35718 ) ;
for ( var i = 0 ; i < numUniforms ; ++ i ) {
var u = GLctx . getActiveUniform ( p , i ) ;
var name = u . name ;
ptable . maxUniformLength = Math . max ( ptable . maxUniformLength , name . length + 1 ) ;
if ( name . slice ( - 1 ) == "]" ) {
name = name . slice ( 0 , name . lastIndexOf ( "[" ) ) ;
}
var loc = GLctx . getUniformLocation ( p , name ) ;
if ( loc ) {
var id = GL . getNewId ( GL . uniforms ) ;
utable [ name ] = [ u . size , id ] ;
GL . uniforms [ id ] = loc ;
for ( var j = 1 ; j < u . size ; ++ j ) {
var n = name + "[" + j + "]" ;
loc = GLctx . getUniformLocation ( p , n ) ;
id = GL . getNewId ( GL . uniforms ) ;
GL . uniforms [ id ] = loc ;
}
}
}
} )
} ;
Module [ "GL" ] = GL ;
function _emscripten _webgl _do _create _context ( target , attributes ) {
assert ( attributes ) ;
var contextAttributes = { } ;
var a = attributes >> 2 ;
contextAttributes [ "alpha" ] = ! ! GROWABLE _HEAP _LOAD _I32 ( ( a + ( 0 >> 2 ) ) * 4 | 0 ) ;
contextAttributes [ "depth" ] = ! ! GROWABLE _HEAP _LOAD _I32 ( ( a + ( 4 >> 2 ) ) * 4 | 0 ) ;
contextAttributes [ "stencil" ] = ! ! GROWABLE _HEAP _LOAD _I32 ( ( a + ( 8 >> 2 ) ) * 4 | 0 ) ;
contextAttributes [ "antialias" ] = ! ! GROWABLE _HEAP _LOAD _I32 ( ( a + ( 12 >> 2 ) ) * 4 | 0 ) ;
contextAttributes [ "premultipliedAlpha" ] = ! ! GROWABLE _HEAP _LOAD _I32 ( ( a + ( 16 >> 2 ) ) * 4 | 0 ) ;
contextAttributes [ "preserveDrawingBuffer" ] = ! ! GROWABLE _HEAP _LOAD _I32 ( ( a + ( 20 >> 2 ) ) * 4 | 0 ) ;
var powerPreference = GROWABLE _HEAP _LOAD _I32 ( ( a + ( 24 >> 2 ) ) * 4 | 0 ) ;
contextAttributes [ "powerPreference" ] = _ _emscripten _webgl _power _preferences [ powerPreference ] ;
contextAttributes [ "failIfMajorPerformanceCaveat" ] = ! ! GROWABLE _HEAP _LOAD _I32 ( ( a + ( 28 >> 2 ) ) * 4 | 0 ) ;
contextAttributes . majorVersion = GROWABLE _HEAP _LOAD _I32 ( ( a + ( 32 >> 2 ) ) * 4 | 0 ) ;
contextAttributes . minorVersion = GROWABLE _HEAP _LOAD _I32 ( ( a + ( 36 >> 2 ) ) * 4 | 0 ) ;
contextAttributes . enableExtensionsByDefault = GROWABLE _HEAP _LOAD _I32 ( ( a + ( 40 >> 2 ) ) * 4 | 0 ) ;
contextAttributes . explicitSwapControl = GROWABLE _HEAP _LOAD _I32 ( ( a + ( 44 >> 2 ) ) * 4 | 0 ) ;
contextAttributes . proxyContextToMainThread = GROWABLE _HEAP _LOAD _I32 ( ( a + ( 48 >> 2 ) ) * 4 | 0 ) ;
contextAttributes . renderViaOffscreenBackBuffer = GROWABLE _HEAP _LOAD _I32 ( ( a + ( 52 >> 2 ) ) * 4 | 0 ) ;
var canvas = _ _findCanvasEventTarget ( target ) ;
if ( ! canvas ) {
return 0 ;
}
if ( contextAttributes . explicitSwapControl ) {
return 0 ;
}
var contextHandle = GL . createContext ( canvas , contextAttributes ) ;
return contextHandle ;
}
Module [ "_emscripten_webgl_do_create_context" ] = _emscripten _webgl _do _create _context ;
function _emscripten _webgl _create _context ( a0 , a1 ) {
return _emscripten _webgl _do _create _context ( a0 , a1 ) ;
}
Module [ "_emscripten_webgl_create_context" ] = _emscripten _webgl _create _context ;
var ENV = { } ;
Module [ "ENV" ] = ENV ;
function _emscripten _get _environ ( ) {
if ( ! _emscripten _get _environ . strings ) {
var env = {
"USER" : "web_user" ,
"LOGNAME" : "web_user" ,
"PATH" : "/" ,
"PWD" : "/" ,
"HOME" : "/home/web_user" ,
"LANG" : ( typeof navigator === "object" && navigator . languages && navigator . languages [ 0 ] || "C" ) . replace ( "-" , "_" ) + ".UTF-8" ,
"_" : thisProgram
} ;
for ( var x in ENV ) {
env [ x ] = ENV [ x ] ;
}
var strings = [ ] ;
for ( var x in env ) {
strings . push ( x + "=" + env [ x ] ) ;
}
_emscripten _get _environ . strings = strings ;
}
return _emscripten _get _environ . strings ;
}
Module [ "_emscripten_get_environ" ] = _emscripten _get _environ ;
function _environ _get ( _ _environ , environ _buf ) {
var strings = _emscripten _get _environ ( ) ;
var bufSize = 0 ;
strings . forEach ( ( function ( string , i ) {
var ptr = environ _buf + bufSize ;
GROWABLE _HEAP _STORE _I32 ( _ _environ + i * 4 | 0 , ptr ) ;
writeAsciiToMemory ( string , ptr ) ;
bufSize += string . length + 1 ;
} ) ) ;
return 0 ;
}
Module [ "_environ_get" ] = _environ _get ;
function _environ _sizes _get ( penviron _count , penviron _buf _size ) {
var strings = _emscripten _get _environ ( ) ;
GROWABLE _HEAP _STORE _I32 ( penviron _count | 0 , strings . length ) ;
var bufSize = 0 ;
strings . forEach ( ( function ( string ) {
bufSize += string . length + 1 ;
} ) ) ;
GROWABLE _HEAP _STORE _I32 ( penviron _buf _size | 0 , bufSize ) ;
return 0 ;
}
Module [ "_environ_sizes_get" ] = _environ _sizes _get ;
function _exit ( status ) {
exit ( status ) ;
}
Module [ "_exit" ] = _exit ;
function _fd _close ( fd ) {
if ( ENVIRONMENT _IS _PTHREAD ) return _emscripten _proxy _to _main _thread _js ( 18 , 1 , fd ) ;
try {
var stream = SYSCALLS . getStreamFromFD ( fd ) ;
FS . close ( stream ) ;
return 0 ;
} catch ( e ) {
if ( typeof FS === "undefined" || ! ( e instanceof FS . ErrnoError ) ) abort ( e ) ;
return e . errno ;
}
}
Module [ "_fd_close" ] = _fd _close ;
function _fd _read ( fd , iov , iovcnt , pnum ) {
if ( ENVIRONMENT _IS _PTHREAD ) return _emscripten _proxy _to _main _thread _js ( 19 , 1 , fd , iov , iovcnt , pnum ) ;
try {
var stream = SYSCALLS . getStreamFromFD ( fd ) ;
var num = SYSCALLS . doReadv ( stream , iov , iovcnt ) ;
GROWABLE _HEAP _STORE _I32 ( pnum | 0 , num ) ;
return 0 ;
} catch ( e ) {
if ( typeof FS === "undefined" || ! ( e instanceof FS . ErrnoError ) ) abort ( e ) ;
return e . errno ;
}
}
Module [ "_fd_read" ] = _fd _read ;
function _fd _seek ( fd , offset _low , offset _high , whence , newOffset ) {
if ( ENVIRONMENT _IS _PTHREAD ) return _emscripten _proxy _to _main _thread _js ( 20 , 1 , fd , offset _low , offset _high , whence , newOffset ) ;
try {
var stream = SYSCALLS . getStreamFromFD ( fd ) ;
var HIGH _OFFSET = 4294967296 ;
var offset = offset _high * HIGH _OFFSET + ( offset _low >>> 0 ) ;
var DOUBLE _LIMIT = 9007199254740992 ;
if ( offset <= - DOUBLE _LIMIT || offset >= DOUBLE _LIMIT ) {
return - 61 ;
}
FS . llseek ( stream , offset , whence ) ;
tempI64 = [ stream . position >>> 0 , ( tempDouble = stream . position , + Math _abs ( tempDouble ) >= 1 ? tempDouble > 0 ? ( Math _min ( + Math _floor ( tempDouble / 4294967296 ) , 4294967295 ) | 0 ) >>> 0 : ~ ~ + Math _ceil ( ( tempDouble - + ( ~ ~ tempDouble >>> 0 ) ) / 4294967296 ) >>> 0 : 0 ) ] , GROWABLE _HEAP _STORE _I32 ( newOffset | 0 , tempI64 [ 0 ] ) , GROWABLE _HEAP _STORE _I32 ( newOffset + 4 | 0 , tempI64 [ 1 ] ) ;
if ( stream . getdents && offset === 0 && whence === 0 ) stream . getdents = null ;
return 0 ;
} catch ( e ) {
if ( typeof FS === "undefined" || ! ( e instanceof FS . ErrnoError ) ) abort ( e ) ;
return e . errno ;
}
}
Module [ "_fd_seek" ] = _fd _seek ;
function _fd _write ( fd , iov , iovcnt , pnum ) {
if ( ENVIRONMENT _IS _PTHREAD ) return _emscripten _proxy _to _main _thread _js ( 21 , 1 , fd , iov , iovcnt , pnum ) ;
try {
var stream = SYSCALLS . getStreamFromFD ( fd ) ;
var num = SYSCALLS . doWritev ( stream , iov , iovcnt ) ;
GROWABLE _HEAP _STORE _I32 ( pnum | 0 , num ) ;
return 0 ;
} catch ( e ) {
if ( typeof FS === "undefined" || ! ( e instanceof FS . ErrnoError ) ) abort ( e ) ;
return e . errno ;
}
}
Module [ "_fd_write" ] = _fd _write ;
function _getTempRet0 ( ) {
return getTempRet0 ( ) | 0 ;
}
Module [ "_getTempRet0" ] = _getTempRet0 ;
function _gettimeofday ( ptr ) {
var now = Date . now ( ) ;
GROWABLE _HEAP _STORE _I32 ( ptr | 0 , now / 1e3 | 0 ) ;
GROWABLE _HEAP _STORE _I32 ( ptr + 4 | 0 , now % 1e3 * 1e3 | 0 ) ;
return 0 ;
}
Module [ "_gettimeofday" ] = _gettimeofday ;
var _ _ _tm _current = 13887840 ;
Module [ "___tm_current" ] = _ _ _tm _current ;
var _ _ _tm _timezone = ( stringToUTF8 ( "GMT" , 13887888 , 4 ) , 13887888 ) ;
Module [ "___tm_timezone" ] = _ _ _tm _timezone ;
function _gmtime _r ( time , tmPtr ) {
var date = new Date ( GROWABLE _HEAP _LOAD _I32 ( time | 0 ) * 1e3 ) ;
GROWABLE _HEAP _STORE _I32 ( tmPtr | 0 , date . getUTCSeconds ( ) ) ;
GROWABLE _HEAP _STORE _I32 ( tmPtr + 4 | 0 , date . getUTCMinutes ( ) ) ;
GROWABLE _HEAP _STORE _I32 ( tmPtr + 8 | 0 , date . getUTCHours ( ) ) ;
GROWABLE _HEAP _STORE _I32 ( tmPtr + 12 | 0 , date . getUTCDate ( ) ) ;
GROWABLE _HEAP _STORE _I32 ( tmPtr + 16 | 0 , date . getUTCMonth ( ) ) ;
GROWABLE _HEAP _STORE _I32 ( tmPtr + 20 | 0 , date . getUTCFullYear ( ) - 1900 ) ;
GROWABLE _HEAP _STORE _I32 ( tmPtr + 24 | 0 , date . getUTCDay ( ) ) ;
GROWABLE _HEAP _STORE _I32 ( tmPtr + 36 | 0 , 0 ) ;
GROWABLE _HEAP _STORE _I32 ( tmPtr + 32 | 0 , 0 ) ;
var start = Date . UTC ( date . getUTCFullYear ( ) , 0 , 1 , 0 , 0 , 0 , 0 ) ;
var yday = ( date . getTime ( ) - start ) / ( 1e3 * 60 * 60 * 24 ) | 0 ;
GROWABLE _HEAP _STORE _I32 ( tmPtr + 28 | 0 , yday ) ;
GROWABLE _HEAP _STORE _I32 ( tmPtr + 40 | 0 , _ _ _tm _timezone ) ;
return tmPtr ;
}
Module [ "_gmtime_r" ] = _gmtime _r ;
function _gmtime ( time ) {
return _gmtime _r ( time , _ _ _tm _current ) ;
}
Module [ "_gmtime" ] = _gmtime ;
function _memcpy ( dest , src , num ) {
dest = dest | 0 ;
src = src | 0 ;
num = num | 0 ;
var ret = 0 ;
var aligned _dest _end = 0 ;
var block _aligned _dest _end = 0 ;
var dest _end = 0 ;
if ( ( num | 0 ) >= 8192 ) {
_emscripten _memcpy _big ( dest | 0 , src | 0 , num | 0 ) | 0 ;
return dest | 0 ;
}
ret = dest | 0 ;
dest _end = dest + num | 0 ;
if ( ( dest & 3 ) == ( src & 3 ) ) {
while ( dest & 3 ) {
if ( ( num | 0 ) == 0 ) return ret | 0 ;
GROWABLE _HEAP _STORE _I8 ( dest >> 0 | 0 , GROWABLE _HEAP _LOAD _I8 ( src >> 0 | 0 ) | 0 ) ;
dest = dest + 1 | 0 ;
src = src + 1 | 0 ;
num = num - 1 | 0 ;
}
aligned _dest _end = dest _end & - 4 | 0 ;
block _aligned _dest _end = aligned _dest _end - 64 | 0 ;
while ( ( dest | 0 ) <= ( block _aligned _dest _end | 0 ) ) {
GROWABLE _HEAP _STORE _I32 ( dest | 0 , GROWABLE _HEAP _LOAD _I32 ( src | 0 ) | 0 ) ;
GROWABLE _HEAP _STORE _I32 ( dest + 4 | 0 , GROWABLE _HEAP _LOAD _I32 ( src + 4 | 0 ) | 0 ) ;
GROWABLE _HEAP _STORE _I32 ( dest + 8 | 0 , GROWABLE _HEAP _LOAD _I32 ( src + 8 | 0 ) | 0 ) ;
GROWABLE _HEAP _STORE _I32 ( dest + 12 | 0 , GROWABLE _HEAP _LOAD _I32 ( src + 12 | 0 ) | 0 ) ;
GROWABLE _HEAP _STORE _I32 ( dest + 16 | 0 , GROWABLE _HEAP _LOAD _I32 ( src + 16 | 0 ) | 0 ) ;
GROWABLE _HEAP _STORE _I32 ( dest + 20 | 0 , GROWABLE _HEAP _LOAD _I32 ( src + 20 | 0 ) | 0 ) ;
GROWABLE _HEAP _STORE _I32 ( dest + 24 | 0 , GROWABLE _HEAP _LOAD _I32 ( src + 24 | 0 ) | 0 ) ;
GROWABLE _HEAP _STORE _I32 ( dest + 28 | 0 , GROWABLE _HEAP _LOAD _I32 ( src + 28 | 0 ) | 0 ) ;
GROWABLE _HEAP _STORE _I32 ( dest + 32 | 0 , GROWABLE _HEAP _LOAD _I32 ( src + 32 | 0 ) | 0 ) ;
GROWABLE _HEAP _STORE _I32 ( dest + 36 | 0 , GROWABLE _HEAP _LOAD _I32 ( src + 36 | 0 ) | 0 ) ;
GROWABLE _HEAP _STORE _I32 ( dest + 40 | 0 , GROWABLE _HEAP _LOAD _I32 ( src + 40 | 0 ) | 0 ) ;
GROWABLE _HEAP _STORE _I32 ( dest + 44 | 0 , GROWABLE _HEAP _LOAD _I32 ( src + 44 | 0 ) | 0 ) ;
GROWABLE _HEAP _STORE _I32 ( dest + 48 | 0 , GROWABLE _HEAP _LOAD _I32 ( src + 48 | 0 ) | 0 ) ;
GROWABLE _HEAP _STORE _I32 ( dest + 52 | 0 , GROWABLE _HEAP _LOAD _I32 ( src + 52 | 0 ) | 0 ) ;
GROWABLE _HEAP _STORE _I32 ( dest + 56 | 0 , GROWABLE _HEAP _LOAD _I32 ( src + 56 | 0 ) | 0 ) ;
GROWABLE _HEAP _STORE _I32 ( dest + 60 | 0 , GROWABLE _HEAP _LOAD _I32 ( src + 60 | 0 ) | 0 ) ;
dest = dest + 64 | 0 ;
src = src + 64 | 0 ;
}
while ( ( dest | 0 ) < ( aligned _dest _end | 0 ) ) {
GROWABLE _HEAP _STORE _I32 ( dest | 0 , GROWABLE _HEAP _LOAD _I32 ( src | 0 ) | 0 ) ;
dest = dest + 4 | 0 ;
src = src + 4 | 0 ;
}
} else {
aligned _dest _end = dest _end - 4 | 0 ;
while ( ( dest | 0 ) < ( aligned _dest _end | 0 ) ) {
GROWABLE _HEAP _STORE _I8 ( dest >> 0 | 0 , GROWABLE _HEAP _LOAD _I8 ( src >> 0 | 0 ) | 0 ) ;
GROWABLE _HEAP _STORE _I8 ( dest + 1 >> 0 | 0 , GROWABLE _HEAP _LOAD _I8 ( src + 1 >> 0 | 0 ) | 0 ) ;
GROWABLE _HEAP _STORE _I8 ( dest + 2 >> 0 | 0 , GROWABLE _HEAP _LOAD _I8 ( src + 2 >> 0 | 0 ) | 0 ) ;
GROWABLE _HEAP _STORE _I8 ( dest + 3 >> 0 | 0 , GROWABLE _HEAP _LOAD _I8 ( src + 3 >> 0 | 0 ) | 0 ) ;
dest = dest + 4 | 0 ;
src = src + 4 | 0 ;
}
}
while ( ( dest | 0 ) < ( dest _end | 0 ) ) {
GROWABLE _HEAP _STORE _I8 ( dest >> 0 | 0 , GROWABLE _HEAP _LOAD _I8 ( src >> 0 | 0 ) | 0 ) ;
dest = dest + 1 | 0 ;
src = src + 1 | 0 ;
}
return ret | 0 ;
}
Module [ "_memcpy" ] = _memcpy ;
function _memset ( ptr , value , num ) {
ptr = ptr | 0 ;
value = value | 0 ;
num = num | 0 ;
var end = 0 , aligned _end = 0 , block _aligned _end = 0 , value4 = 0 ;
end = ptr + num | 0 ;
value = value & 255 ;
if ( ( num | 0 ) >= 67 ) {
while ( ( ptr & 3 ) != 0 ) {
GROWABLE _HEAP _STORE _I8 ( ptr >> 0 | 0 , value ) ;
ptr = ptr + 1 | 0 ;
}
aligned _end = end & - 4 | 0 ;
value4 = value | value << 8 | value << 16 | value << 24 ;
block _aligned _end = aligned _end - 64 | 0 ;
while ( ( ptr | 0 ) <= ( block _aligned _end | 0 ) ) {
GROWABLE _HEAP _STORE _I32 ( ptr | 0 , value4 ) ;
GROWABLE _HEAP _STORE _I32 ( ptr + 4 | 0 , value4 ) ;
GROWABLE _HEAP _STORE _I32 ( ptr + 8 | 0 , value4 ) ;
GROWABLE _HEAP _STORE _I32 ( ptr + 12 | 0 , value4 ) ;
GROWABLE _HEAP _STORE _I32 ( ptr + 16 | 0 , value4 ) ;
GROWABLE _HEAP _STORE _I32 ( ptr + 20 | 0 , value4 ) ;
GROWABLE _HEAP _STORE _I32 ( ptr + 24 | 0 , value4 ) ;
GROWABLE _HEAP _STORE _I32 ( ptr + 28 | 0 , value4 ) ;
GROWABLE _HEAP _STORE _I32 ( ptr + 32 | 0 , value4 ) ;
GROWABLE _HEAP _STORE _I32 ( ptr + 36 | 0 , value4 ) ;
GROWABLE _HEAP _STORE _I32 ( ptr + 40 | 0 , value4 ) ;
GROWABLE _HEAP _STORE _I32 ( ptr + 44 | 0 , value4 ) ;
GROWABLE _HEAP _STORE _I32 ( ptr + 48 | 0 , value4 ) ;
GROWABLE _HEAP _STORE _I32 ( ptr + 52 | 0 , value4 ) ;
GROWABLE _HEAP _STORE _I32 ( ptr + 56 | 0 , value4 ) ;
GROWABLE _HEAP _STORE _I32 ( ptr + 60 | 0 , value4 ) ;
ptr = ptr + 64 | 0 ;
}
while ( ( ptr | 0 ) < ( aligned _end | 0 ) ) {
GROWABLE _HEAP _STORE _I32 ( ptr | 0 , value4 ) ;
ptr = ptr + 4 | 0 ;
}
}
while ( ( ptr | 0 ) < ( end | 0 ) ) {
GROWABLE _HEAP _STORE _I8 ( ptr >> 0 | 0 , value ) ;
ptr = ptr + 1 | 0 ;
}
return end - num | 0 ;
}
Module [ "_memset" ] = _memset ;
function _tzset ( ) {
if ( ENVIRONMENT _IS _PTHREAD ) return _emscripten _proxy _to _main _thread _js ( 22 , 1 ) ;
if ( _tzset . called ) return ;
_tzset . called = true ;
GROWABLE _HEAP _STORE _I32 ( _ _get _timezone ( ) | 0 , ( new Date ) . getTimezoneOffset ( ) * 60 ) ;
var currentYear = ( new Date ) . getFullYear ( ) ;
var winter = new Date ( currentYear , 0 , 1 ) ;
var summer = new Date ( currentYear , 6 , 1 ) ;
GROWABLE _HEAP _STORE _I32 ( _ _get _daylight ( ) | 0 , Number ( winter . getTimezoneOffset ( ) != summer . getTimezoneOffset ( ) ) ) ;
function extractZone ( date ) {
var match = date . toTimeString ( ) . match ( /\(([A-Za-z ]+)\)$/ ) ;
return match ? match [ 1 ] : "GMT" ;
}
var winterName = extractZone ( winter ) ;
var summerName = extractZone ( summer ) ;
var winterNamePtr = allocate ( intArrayFromString ( winterName ) , "i8" , ALLOC _NORMAL ) ;
var summerNamePtr = allocate ( intArrayFromString ( summerName ) , "i8" , ALLOC _NORMAL ) ;
if ( summer . getTimezoneOffset ( ) < winter . getTimezoneOffset ( ) ) {
GROWABLE _HEAP _STORE _I32 ( _ _get _tzname ( ) | 0 , winterNamePtr ) ;
GROWABLE _HEAP _STORE _I32 ( _ _get _tzname ( ) + 4 | 0 , summerNamePtr ) ;
} else {
GROWABLE _HEAP _STORE _I32 ( _ _get _tzname ( ) | 0 , summerNamePtr ) ;
GROWABLE _HEAP _STORE _I32 ( _ _get _tzname ( ) + 4 | 0 , winterNamePtr ) ;
}
}
Module [ "_tzset" ] = _tzset ;
function _mktime ( tmPtr ) {
_tzset ( ) ;
var date = new Date ( GROWABLE _HEAP _LOAD _I32 ( tmPtr + 20 | 0 ) + 1900 , GROWABLE _HEAP _LOAD _I32 ( tmPtr + 16 | 0 ) , GROWABLE _HEAP _LOAD _I32 ( tmPtr + 12 | 0 ) , GROWABLE _HEAP _LOAD _I32 ( tmPtr + 8 | 0 ) , GROWABLE _HEAP _LOAD _I32 ( tmPtr + 4 | 0 ) , GROWABLE _HEAP _LOAD _I32 ( tmPtr | 0 ) , 0 ) ;
var dst = GROWABLE _HEAP _LOAD _I32 ( tmPtr + 32 | 0 ) ;
var guessedOffset = date . getTimezoneOffset ( ) ;
var start = new Date ( date . getFullYear ( ) , 0 , 1 ) ;
var summerOffset = ( new Date ( date . getFullYear ( ) , 6 , 1 ) ) . getTimezoneOffset ( ) ;
var winterOffset = start . getTimezoneOffset ( ) ;
var dstOffset = Math . min ( winterOffset , summerOffset ) ;
if ( dst < 0 ) {
GROWABLE _HEAP _STORE _I32 ( tmPtr + 32 | 0 , Number ( summerOffset != winterOffset && dstOffset == guessedOffset ) ) ;
} else if ( dst > 0 != ( dstOffset == guessedOffset ) ) {
var nonDstOffset = Math . max ( winterOffset , summerOffset ) ;
var trueOffset = dst > 0 ? dstOffset : nonDstOffset ;
date . setTime ( date . getTime ( ) + ( trueOffset - guessedOffset ) * 6e4 ) ;
}
GROWABLE _HEAP _STORE _I32 ( tmPtr + 24 | 0 , date . getDay ( ) ) ;
var yday = ( date . getTime ( ) - start . getTime ( ) ) / ( 1e3 * 60 * 60 * 24 ) | 0 ;
GROWABLE _HEAP _STORE _I32 ( tmPtr + 28 | 0 , yday ) ;
return date . getTime ( ) / 1e3 | 0 ;
}
Module [ "_mktime" ] = _mktime ;
function _pthread _cleanup _pop ( execute ) {
var routine = PThread . exitHandlers . pop ( ) ;
if ( execute ) routine ( ) ;
}
Module [ "_pthread_cleanup_pop" ] = _pthread _cleanup _pop ;
function _pthread _cleanup _push ( routine , arg ) {
if ( PThread . exitHandlers === null ) {
PThread . exitHandlers = [ ] ;
if ( ! ENVIRONMENT _IS _PTHREAD ) {
_ _ATEXIT _ _ . push ( ( function ( ) {
PThread . runExitHandlers ( ) ;
} ) ) ;
}
}
PThread . exitHandlers . push ( ( function ( ) {
dynCall _vi ( routine , arg ) ;
} ) ) ;
}
Module [ "_pthread_cleanup_push" ] = _pthread _cleanup _push ;
function _ _spawn _thread ( threadParams ) {
if ( ENVIRONMENT _IS _PTHREAD ) throw "Internal Error! _spawn_thread() can only ever be called from main application thread!" ;
var worker = PThread . getNewWorker ( ) ;
if ( worker . pthread !== undefined ) throw "Internal error!" ;
if ( ! threadParams . pthread _ptr ) throw "Internal error, no pthread ptr!" ;
PThread . runningWorkers . push ( worker ) ;
var tlsMemory = _malloc ( 128 * 4 ) ;
for ( var i = 0 ; i < 128 ; ++ i ) {
GROWABLE _HEAP _STORE _I32 ( tlsMemory + i * 4 | 0 , 0 ) ;
}
var stackHigh = threadParams . stackBase + threadParams . stackSize ;
var pthread = PThread . pthreads [ threadParams . pthread _ptr ] = {
worker : worker ,
stackBase : threadParams . stackBase ,
stackSize : threadParams . stackSize ,
allocatedOwnStack : threadParams . allocatedOwnStack ,
thread : threadParams . pthread _ptr ,
threadInfoStruct : threadParams . pthread _ptr
} ;
Atomics . store ( HEAPU32 , pthread . threadInfoStruct + 0 >> 2 , 0 ) ;
Atomics . store ( HEAPU32 , pthread . threadInfoStruct + 4 >> 2 , 0 ) ;
Atomics . store ( HEAPU32 , pthread . threadInfoStruct + 20 >> 2 , 0 ) ;
Atomics . store ( HEAPU32 , pthread . threadInfoStruct + 80 >> 2 , threadParams . detached ) ;
Atomics . store ( HEAPU32 , pthread . threadInfoStruct + 116 >> 2 , tlsMemory ) ;
Atomics . store ( HEAPU32 , pthread . threadInfoStruct + 60 >> 2 , 0 ) ;
Atomics . store ( HEAPU32 , pthread . threadInfoStruct + 52 >> 2 , pthread . threadInfoStruct ) ;
Atomics . store ( HEAPU32 , pthread . threadInfoStruct + 56 >> 2 , PROCINFO . pid ) ;
Atomics . store ( HEAPU32 , pthread . threadInfoStruct + 120 >> 2 , threadParams . stackSize ) ;
Atomics . store ( HEAPU32 , pthread . threadInfoStruct + 96 >> 2 , threadParams . stackSize ) ;
Atomics . store ( HEAPU32 , pthread . threadInfoStruct + 92 >> 2 , stackHigh ) ;
Atomics . store ( HEAPU32 , pthread . threadInfoStruct + 120 + 8 >> 2 , stackHigh ) ;
Atomics . store ( HEAPU32 , pthread . threadInfoStruct + 120 + 12 >> 2 , threadParams . detached ) ;
Atomics . store ( HEAPU32 , pthread . threadInfoStruct + 120 + 20 >> 2 , threadParams . schedPolicy ) ;
Atomics . store ( HEAPU32 , pthread . threadInfoStruct + 120 + 24 >> 2 , threadParams . schedPrio ) ;
var global _libc = _emscripten _get _global _libc ( ) ;
var global _locale = global _libc + 40 ;
Atomics . store ( HEAPU32 , pthread . threadInfoStruct + 188 >> 2 , global _locale ) ;
worker . pthread = pthread ;
var msg = {
"cmd" : "run" ,
"start_routine" : threadParams . startRoutine ,
"arg" : threadParams . arg ,
"threadInfoStruct" : threadParams . pthread _ptr ,
"selfThreadId" : threadParams . pthread _ptr ,
"parentThreadId" : threadParams . parent _pthread _ptr ,
"stackBase" : threadParams . stackBase ,
"stackSize" : threadParams . stackSize
} ;
worker . runPthread = ( function ( ) {
msg . time = performance . now ( ) ;
worker . postMessage ( msg , threadParams . transferList ) ;
} ) ;
if ( worker . loaded ) {
worker . runPthread ( ) ;
delete worker . runPthread ;
}
}
Module [ "__spawn_thread" ] = _ _spawn _thread ;
function _pthread _getschedparam ( thread , policy , schedparam ) {
if ( ! policy && ! schedparam ) return ERRNO _CODES . EINVAL ;
if ( ! thread ) {
err ( "pthread_getschedparam called with a null thread pointer!" ) ;
return ERRNO _CODES . ESRCH ;
}
var self = GROWABLE _HEAP _LOAD _I32 ( thread + 24 | 0 ) ;
if ( self !== thread ) {
err ( "pthread_getschedparam attempted on thread " + thread + ", which does not point to a valid thread, or does not exist anymore!" ) ;
return ERRNO _CODES . ESRCH ;
}
var schedPolicy = Atomics . load ( HEAPU32 , thread + 120 + 20 >> 2 ) ;
var schedPrio = Atomics . load ( HEAPU32 , thread + 120 + 24 >> 2 ) ;
if ( policy ) GROWABLE _HEAP _STORE _I32 ( policy | 0 , schedPolicy ) ;
if ( schedparam ) GROWABLE _HEAP _STORE _I32 ( schedparam | 0 , schedPrio ) ;
return 0 ;
}
Module [ "_pthread_getschedparam" ] = _pthread _getschedparam ;
function _pthread _self ( ) {
return _ _pthread _ptr | 0 ;
}
Module [ "_pthread_self" ] = _pthread _self ;
function _pthread _create ( pthread _ptr , attr , start _routine , arg ) {
if ( ! SUPPORTS _SHARED _MEMORY ( ) ) {
err ( "Current environment does not support SharedArrayBuffer, pthreads are not available!" ) ;
return 6 ;
}
if ( ! pthread _ptr ) {
err ( "pthread_create called with a null thread pointer!" ) ;
return 28 ;
}
var transferList = [ ] ;
var error = 0 ;
if ( ENVIRONMENT _IS _PTHREAD && ( transferList . length === 0 || error ) ) {
return _emscripten _sync _run _in _main _thread _4 ( 687865856 , pthread _ptr , attr , start _routine , arg ) ;
}
if ( error ) return error ;
var stackSize = 0 ;
var stackBase = 0 ;
var detached = 0 ;
var schedPolicy = 0 ;
var schedPrio = 0 ;
if ( attr ) {
stackSize = GROWABLE _HEAP _LOAD _I32 ( attr | 0 ) ;
stackSize += 81920 ;
stackBase = GROWABLE _HEAP _LOAD _I32 ( attr + 8 | 0 ) ;
detached = GROWABLE _HEAP _LOAD _I32 ( attr + 12 | 0 ) !== 0 ;
var inheritSched = GROWABLE _HEAP _LOAD _I32 ( attr + 16 | 0 ) === 0 ;
if ( inheritSched ) {
var prevSchedPolicy = GROWABLE _HEAP _LOAD _I32 ( attr + 20 | 0 ) ;
var prevSchedPrio = GROWABLE _HEAP _LOAD _I32 ( attr + 24 | 0 ) ;
var parentThreadPtr = PThread . currentProxiedOperationCallerThread ? PThread . currentProxiedOperationCallerThread : _pthread _self ( ) ;
_pthread _getschedparam ( parentThreadPtr , attr + 20 , attr + 24 ) ;
schedPolicy = GROWABLE _HEAP _LOAD _I32 ( attr + 20 | 0 ) ;
schedPrio = GROWABLE _HEAP _LOAD _I32 ( attr + 24 | 0 ) ;
GROWABLE _HEAP _STORE _I32 ( attr + 20 | 0 , prevSchedPolicy ) ;
GROWABLE _HEAP _STORE _I32 ( attr + 24 | 0 , prevSchedPrio ) ;
} else {
schedPolicy = GROWABLE _HEAP _LOAD _I32 ( attr + 20 | 0 ) ;
schedPrio = GROWABLE _HEAP _LOAD _I32 ( attr + 24 | 0 ) ;
}
} else {
stackSize = 2097152 ;
}
var allocatedOwnStack = stackBase == 0 ;
if ( allocatedOwnStack ) {
stackBase = _memalign ( 16 , stackSize ) ;
} else {
stackBase -= stackSize ;
assert ( stackBase > 0 ) ;
}
var threadInfoStruct = _malloc ( 244 ) ;
for ( var i = 0 ; i < 244 >> 2 ; ++ i ) GROWABLE _HEAP _STORE _I32 ( ( ( threadInfoStruct >> 2 ) + i ) * 4 | 0 , 0 ) ;
GROWABLE _HEAP _STORE _I32 ( pthread _ptr | 0 , threadInfoStruct ) ;
GROWABLE _HEAP _STORE _I32 ( threadInfoStruct + 24 | 0 , threadInfoStruct ) ;
var headPtr = threadInfoStruct + 168 ;
GROWABLE _HEAP _STORE _I32 ( headPtr | 0 , headPtr ) ;
var threadParams = {
stackBase : stackBase ,
stackSize : stackSize ,
allocatedOwnStack : allocatedOwnStack ,
schedPolicy : schedPolicy ,
schedPrio : schedPrio ,
detached : detached ,
startRoutine : start _routine ,
pthread _ptr : threadInfoStruct ,
parent _pthread _ptr : _pthread _self ( ) ,
arg : arg ,
transferList : transferList
} ;
if ( ENVIRONMENT _IS _PTHREAD ) {
threadParams . cmd = "spawnThread" ;
postMessage ( threadParams , transferList ) ;
} else {
_ _spawn _thread ( threadParams ) ;
}
return 0 ;
}
Module [ "_pthread_create" ] = _pthread _create ;
function _setTempRet0 ( $i ) {
setTempRet0 ( $i | 0 ) ;
}
Module [ "_setTempRet0" ] = _setTempRet0 ;
function _ _isLeapYear ( year ) {
return year % 4 === 0 && ( year % 100 !== 0 || year % 400 === 0 ) ;
}
Module [ "__isLeapYear" ] = _ _isLeapYear ;
function _ _arraySum ( array , index ) {
var sum = 0 ;
for ( var i = 0 ; i <= index ; sum += array [ i ++ ] ) ;
return sum ;
}
Module [ "__arraySum" ] = _ _arraySum ;
var _ _MONTH _DAYS _LEAP = [ 31 , 29 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 ] ;
Module [ "__MONTH_DAYS_LEAP" ] = _ _MONTH _DAYS _LEAP ;
var _ _MONTH _DAYS _REGULAR = [ 31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 ] ;
Module [ "__MONTH_DAYS_REGULAR" ] = _ _MONTH _DAYS _REGULAR ;
function _ _addDays ( date , days ) {
var newDate = new Date ( date . getTime ( ) ) ;
while ( days > 0 ) {
var leap = _ _isLeapYear ( newDate . getFullYear ( ) ) ;
var currentMonth = newDate . getMonth ( ) ;
var daysInCurrentMonth = ( leap ? _ _MONTH _DAYS _LEAP : _ _MONTH _DAYS _REGULAR ) [ currentMonth ] ;
if ( days > daysInCurrentMonth - newDate . getDate ( ) ) {
days -= daysInCurrentMonth - newDate . getDate ( ) + 1 ;
newDate . setDate ( 1 ) ;
if ( currentMonth < 11 ) {
newDate . setMonth ( currentMonth + 1 ) ;
} else {
newDate . setMonth ( 0 ) ;
newDate . setFullYear ( newDate . getFullYear ( ) + 1 ) ;
}
} else {
newDate . setDate ( newDate . getDate ( ) + days ) ;
return newDate ;
}
}
return newDate ;
}
Module [ "__addDays" ] = _ _addDays ;
function _strftime ( s , maxsize , format , tm ) {
var tm _zone = GROWABLE _HEAP _LOAD _I32 ( tm + 40 | 0 ) ;
var date = {
tm _sec : GROWABLE _HEAP _LOAD _I32 ( tm | 0 ) ,
tm _min : GROWABLE _HEAP _LOAD _I32 ( tm + 4 | 0 ) ,
tm _hour : GROWABLE _HEAP _LOAD _I32 ( tm + 8 | 0 ) ,
tm _mday : GROWABLE _HEAP _LOAD _I32 ( tm + 12 | 0 ) ,
tm _mon : GROWABLE _HEAP _LOAD _I32 ( tm + 16 | 0 ) ,
tm _year : GROWABLE _HEAP _LOAD _I32 ( tm + 20 | 0 ) ,
tm _wday : GROWABLE _HEAP _LOAD _I32 ( tm + 24 | 0 ) ,
tm _yday : GROWABLE _HEAP _LOAD _I32 ( tm + 28 | 0 ) ,
tm _isdst : GROWABLE _HEAP _LOAD _I32 ( tm + 32 | 0 ) ,
tm _gmtoff : GROWABLE _HEAP _LOAD _I32 ( tm + 36 | 0 ) ,
tm _zone : tm _zone ? UTF8ToString ( tm _zone ) : ""
} ;
var pattern = UTF8ToString ( format ) ;
var EXPANSION _RULES _1 = {
"%c" : "%a %b %d %H:%M:%S %Y" ,
"%D" : "%m/%d/%y" ,
"%F" : "%Y-%m-%d" ,
"%h" : "%b" ,
"%r" : "%I:%M:%S %p" ,
"%R" : "%H:%M" ,
"%T" : "%H:%M:%S" ,
"%x" : "%m/%d/%y" ,
"%X" : "%H:%M:%S" ,
"%Ec" : "%c" ,
"%EC" : "%C" ,
"%Ex" : "%m/%d/%y" ,
"%EX" : "%H:%M:%S" ,
"%Ey" : "%y" ,
"%EY" : "%Y" ,
"%Od" : "%d" ,
"%Oe" : "%e" ,
"%OH" : "%H" ,
"%OI" : "%I" ,
"%Om" : "%m" ,
"%OM" : "%M" ,
"%OS" : "%S" ,
"%Ou" : "%u" ,
"%OU" : "%U" ,
"%OV" : "%V" ,
"%Ow" : "%w" ,
"%OW" : "%W" ,
"%Oy" : "%y"
} ;
for ( var rule in EXPANSION _RULES _1 ) {
pattern = pattern . replace ( new RegExp ( rule , "g" ) , EXPANSION _RULES _1 [ rule ] ) ;
}
var WEEKDAYS = [ "Sunday" , "Monday" , "Tuesday" , "Wednesday" , "Thursday" , "Friday" , "Saturday" ] ;
var MONTHS = [ "January" , "February" , "March" , "April" , "May" , "June" , "July" , "August" , "September" , "October" , "November" , "December" ] ;
function leadingSomething ( value , digits , character ) {
var str = typeof value === "number" ? value . toString ( ) : value || "" ;
while ( str . length < digits ) {
str = character [ 0 ] + str ;
}
return str ;
}
function leadingNulls ( value , digits ) {
return leadingSomething ( value , digits , "0" ) ;
}
function compareByDay ( date1 , date2 ) {
function sgn ( value ) {
return value < 0 ? - 1 : value > 0 ? 1 : 0 ;
}
var compare ;
if ( ( compare = sgn ( date1 . getFullYear ( ) - date2 . getFullYear ( ) ) ) === 0 ) {
if ( ( compare = sgn ( date1 . getMonth ( ) - date2 . getMonth ( ) ) ) === 0 ) {
compare = sgn ( date1 . getDate ( ) - date2 . getDate ( ) ) ;
}
}
return compare ;
}
function getFirstWeekStartDate ( janFourth ) {
switch ( janFourth . getDay ( ) ) {
case 0 :
return new Date ( janFourth . getFullYear ( ) - 1 , 11 , 29 ) ;
case 1 :
return janFourth ;
case 2 :
return new Date ( janFourth . getFullYear ( ) , 0 , 3 ) ;
case 3 :
return new Date ( janFourth . getFullYear ( ) , 0 , 2 ) ;
case 4 :
return new Date ( janFourth . getFullYear ( ) , 0 , 1 ) ;
case 5 :
return new Date ( janFourth . getFullYear ( ) - 1 , 11 , 31 ) ;
case 6 :
return new Date ( janFourth . getFullYear ( ) - 1 , 11 , 30 ) ;
}
}
function getWeekBasedYear ( date ) {
var thisDate = _ _addDays ( new Date ( date . tm _year + 1900 , 0 , 1 ) , date . tm _yday ) ;
var janFourthThisYear = new Date ( thisDate . getFullYear ( ) , 0 , 4 ) ;
var janFourthNextYear = new Date ( thisDate . getFullYear ( ) + 1 , 0 , 4 ) ;
var firstWeekStartThisYear = getFirstWeekStartDate ( janFourthThisYear ) ;
var firstWeekStartNextYear = getFirstWeekStartDate ( janFourthNextYear ) ;
if ( compareByDay ( firstWeekStartThisYear , thisDate ) <= 0 ) {
if ( compareByDay ( firstWeekStartNextYear , thisDate ) <= 0 ) {
return thisDate . getFullYear ( ) + 1 ;
} else {
return thisDate . getFullYear ( ) ;
}
} else {
return thisDate . getFullYear ( ) - 1 ;
}
}
var EXPANSION _RULES _2 = {
"%a" : ( function ( date ) {
return WEEKDAYS [ date . tm _wday ] . substring ( 0 , 3 ) ;
} ) ,
"%A" : ( function ( date ) {
return WEEKDAYS [ date . tm _wday ] ;
} ) ,
"%b" : ( function ( date ) {
return MONTHS [ date . tm _mon ] . substring ( 0 , 3 ) ;
} ) ,
"%B" : ( function ( date ) {
return MONTHS [ date . tm _mon ] ;
} ) ,
"%C" : ( function ( date ) {
var year = date . tm _year + 1900 ;
return leadingNulls ( year / 100 | 0 , 2 ) ;
} ) ,
"%d" : ( function ( date ) {
return leadingNulls ( date . tm _mday , 2 ) ;
} ) ,
"%e" : ( function ( date ) {
return leadingSomething ( date . tm _mday , 2 , " " ) ;
} ) ,
"%g" : ( function ( date ) {
return getWeekBasedYear ( date ) . toString ( ) . substring ( 2 ) ;
} ) ,
"%G" : ( function ( date ) {
return getWeekBasedYear ( date ) ;
} ) ,
"%H" : ( function ( date ) {
return leadingNulls ( date . tm _hour , 2 ) ;
} ) ,
"%I" : ( function ( date ) {
var twelveHour = date . tm _hour ;
if ( twelveHour == 0 ) twelveHour = 12 ; else if ( twelveHour > 12 ) twelveHour -= 12 ;
return leadingNulls ( twelveHour , 2 ) ;
} ) ,
"%j" : ( function ( date ) {
return leadingNulls ( date . tm _mday + _ _arraySum ( _ _isLeapYear ( date . tm _year + 1900 ) ? _ _MONTH _DAYS _LEAP : _ _MONTH _DAYS _REGULAR , date . tm _mon - 1 ) , 3 ) ;
} ) ,
"%m" : ( function ( date ) {
return leadingNulls ( date . tm _mon + 1 , 2 ) ;
} ) ,
"%M" : ( function ( date ) {
return leadingNulls ( date . tm _min , 2 ) ;
} ) ,
"%n" : ( function ( ) {
return "\n" ;
} ) ,
"%p" : ( function ( date ) {
if ( date . tm _hour >= 0 && date . tm _hour < 12 ) {
return "AM" ;
} else {
return "PM" ;
}
} ) ,
"%S" : ( function ( date ) {
return leadingNulls ( date . tm _sec , 2 ) ;
} ) ,
"%t" : ( function ( ) {
return "\t" ;
} ) ,
"%u" : ( function ( date ) {
return date . tm _wday || 7 ;
} ) ,
"%U" : ( function ( date ) {
var janFirst = new Date ( date . tm _year + 1900 , 0 , 1 ) ;
var firstSunday = janFirst . getDay ( ) === 0 ? janFirst : _ _addDays ( janFirst , 7 - janFirst . getDay ( ) ) ;
var endDate = new Date ( date . tm _year + 1900 , date . tm _mon , date . tm _mday ) ;
if ( compareByDay ( firstSunday , endDate ) < 0 ) {
var februaryFirstUntilEndMonth = _ _arraySum ( _ _isLeapYear ( endDate . getFullYear ( ) ) ? _ _MONTH _DAYS _LEAP : _ _MONTH _DAYS _REGULAR , endDate . getMonth ( ) - 1 ) - 31 ;
var firstSundayUntilEndJanuary = 31 - firstSunday . getDate ( ) ;
var days = firstSundayUntilEndJanuary + februaryFirstUntilEndMonth + endDate . getDate ( ) ;
return leadingNulls ( Math . ceil ( days / 7 ) , 2 ) ;
}
return compareByDay ( firstSunday , janFirst ) === 0 ? "01" : "00" ;
} ) ,
"%V" : ( function ( date ) {
var janFourthThisYear = new Date ( date . tm _year + 1900 , 0 , 4 ) ;
var janFourthNextYear = new Date ( date . tm _year + 1901 , 0 , 4 ) ;
var firstWeekStartThisYear = getFirstWeekStartDate ( janFourthThisYear ) ;
var firstWeekStartNextYear = getFirstWeekStartDate ( janFourthNextYear ) ;
var endDate = _ _addDays ( new Date ( date . tm _year + 1900 , 0 , 1 ) , date . tm _yday ) ;
if ( compareByDay ( endDate , firstWeekStartThisYear ) < 0 ) {
return "53" ;
}
if ( compareByDay ( firstWeekStartNextYear , endDate ) <= 0 ) {
return "01" ;
}
var daysDifference ;
if ( firstWeekStartThisYear . getFullYear ( ) < date . tm _year + 1900 ) {
daysDifference = date . tm _yday + 32 - firstWeekStartThisYear . getDate ( ) ;
} else {
daysDifference = date . tm _yday + 1 - firstWeekStartThisYear . getDate ( ) ;
}
return leadingNulls ( Math . ceil ( daysDifference / 7 ) , 2 ) ;
} ) ,
"%w" : ( function ( date ) {
return date . tm _wday ;
} ) ,
"%W" : ( function ( date ) {
var janFirst = new Date ( date . tm _year , 0 , 1 ) ;
var firstMonday = janFirst . getDay ( ) === 1 ? janFirst : _ _addDays ( janFirst , janFirst . getDay ( ) === 0 ? 1 : 7 - janFirst . getDay ( ) + 1 ) ;
var endDate = new Date ( date . tm _year + 1900 , date . tm _mon , date . tm _mday ) ;
if ( compareByDay ( firstMonday , endDate ) < 0 ) {
var februaryFirstUntilEndMonth = _ _arraySum ( _ _isLeapYear ( endDate . getFullYear ( ) ) ? _ _MONTH _DAYS _LEAP : _ _MONTH _DAYS _REGULAR , endDate . getMonth ( ) - 1 ) - 31 ;
var firstMondayUntilEndJanuary = 31 - firstMonday . getDate ( ) ;
var days = firstMondayUntilEndJanuary + februaryFirstUntilEndMonth + endDate . getDate ( ) ;
return leadingNulls ( Math . ceil ( days / 7 ) , 2 ) ;
}
return compareByDay ( firstMonday , janFirst ) === 0 ? "01" : "00" ;
} ) ,
"%y" : ( function ( date ) {
return ( date . tm _year + 1900 ) . toString ( ) . substring ( 2 ) ;
} ) ,
"%Y" : ( function ( date ) {
return date . tm _year + 1900 ;
} ) ,
"%z" : ( function ( date ) {
var off = date . tm _gmtoff ;
var ahead = off >= 0 ;
off = Math . abs ( off ) / 60 ;
off = off / 60 * 100 + off % 60 ;
return ( ahead ? "+" : "-" ) + String ( "0000" + off ) . slice ( - 4 ) ;
} ) ,
"%Z" : ( function ( date ) {
return date . tm _zone ;
} ) ,
"%%" : ( function ( ) {
return "%" ;
} )
} ;
for ( var rule in EXPANSION _RULES _2 ) {
if ( pattern . indexOf ( rule ) >= 0 ) {
pattern = pattern . replace ( new RegExp ( rule , "g" ) , EXPANSION _RULES _2 [ rule ] ( date ) ) ;
}
}
var bytes = intArrayFromString ( pattern , false ) ;
if ( bytes . length > maxsize ) {
return 0 ;
}
writeArrayToMemory ( bytes , s ) ;
return bytes . length - 1 ;
}
Module [ "_strftime" ] = _strftime ;
function _strftime _l ( s , maxsize , format , tm ) {
return _strftime ( s , maxsize , format , tm ) ;
}
Module [ "_strftime_l" ] = _strftime _l ;
function _sysconf ( name ) {
if ( ENVIRONMENT _IS _PTHREAD ) return _emscripten _proxy _to _main _thread _js ( 23 , 1 , name ) ;
switch ( name ) {
case 30 :
return PAGE _SIZE ;
case 85 :
var maxHeapSize = 2 * 1024 * 1024 * 1024 - 65536 ;
maxHeapSize = 1073741824 ;
return maxHeapSize / PAGE _SIZE ;
case 132 :
case 133 :
case 12 :
case 137 :
case 138 :
case 15 :
case 235 :
case 16 :
case 17 :
case 18 :
case 19 :
case 20 :
case 149 :
case 13 :
case 10 :
case 236 :
case 153 :
case 9 :
case 21 :
case 22 :
case 159 :
case 154 :
case 14 :
case 77 :
case 78 :
case 139 :
case 80 :
case 81 :
case 82 :
case 68 :
case 67 :
case 164 :
case 11 :
case 29 :
case 47 :
case 48 :
case 95 :
case 52 :
case 51 :
case 46 :
return 200809 ;
case 79 :
return 0 ;
case 27 :
case 246 :
case 127 :
case 128 :
case 23 :
case 24 :
case 160 :
case 161 :
case 181 :
case 182 :
case 242 :
case 183 :
case 184 :
case 243 :
case 244 :
case 245 :
case 165 :
case 178 :
case 179 :
case 49 :
case 50 :
case 168 :
case 169 :
case 175 :
case 170 :
case 171 :
case 172 :
case 97 :
case 76 :
case 32 :
case 173 :
case 35 :
return - 1 ;
case 176 :
case 177 :
case 7 :
case 155 :
case 8 :
case 157 :
case 125 :
case 126 :
case 92 :
case 93 :
case 129 :
case 130 :
case 131 :
case 94 :
case 91 :
return 1 ;
case 74 :
case 60 :
case 69 :
case 70 :
case 4 :
return 1024 ;
case 31 :
case 42 :
case 72 :
return 32 ;
case 87 :
case 26 :
case 33 :
return 2147483647 ;
case 34 :
case 1 :
return 47839 ;
case 38 :
case 36 :
return 99 ;
case 43 :
case 37 :
return 2048 ;
case 0 :
return 2097152 ;
case 3 :
return 65536 ;
case 28 :
return 32768 ;
case 44 :
return 32767 ;
case 75 :
return 16384 ;
case 39 :
return 1e3 ;
case 89 :
return 700 ;
case 71 :
return 256 ;
case 40 :
return 255 ;
case 2 :
return 100 ;
case 180 :
return 64 ;
case 25 :
return 20 ;
case 5 :
return 16 ;
case 6 :
return 6 ;
case 73 :
return 4 ;
case 84 :
{
if ( typeof navigator === "object" ) return navigator [ "hardwareConcurrency" ] || 1 ;
return 1 ;
}
}
_ _ _setErrNo ( 28 ) ;
return - 1 ;
}
Module [ "_sysconf" ] = _sysconf ;
function _system ( command ) {
_ _ _setErrNo ( 6 ) ;
return - 1 ;
}
Module [ "_system" ] = _system ;
function _time ( ptr ) {
var ret = Date . now ( ) / 1e3 | 0 ;
if ( ptr ) {
GROWABLE _HEAP _STORE _I32 ( ptr | 0 , ret ) ;
}
return ret ;
}
Module [ "_time" ] = _time ;
function _times ( buffer ) {
if ( buffer !== 0 ) {
_memset ( buffer , 0 , 16 ) ;
}
return 0 ;
}
Module [ "_times" ] = _times ;
function _u _strFromWCS _62 ( ) {
err ( "missing function: u_strFromWCS_62" ) ;
abort ( - 1 ) ;
}
Module [ "_u_strFromWCS_62" ] = _u _strFromWCS _62 ;
function _u _strToWCS _62 ( ) {
err ( "missing function: u_strToWCS_62" ) ;
abort ( - 1 ) ;
}
Module [ "_u_strToWCS_62" ] = _u _strToWCS _62 ;
function _ucnv _close _62 ( ) {
err ( "missing function: ucnv_close_62" ) ;
abort ( - 1 ) ;
}
Module [ "_ucnv_close_62" ] = _ucnv _close _62 ;
function _ucnv _fromUnicode _62 ( ) {
err ( "missing function: ucnv_fromUnicode_62" ) ;
abort ( - 1 ) ;
}
Module [ "_ucnv_fromUnicode_62" ] = _ucnv _fromUnicode _62 ;
function _ucnv _getCCSID _62 ( ) {
err ( "missing function: ucnv_getCCSID_62" ) ;
abort ( - 1 ) ;
}
Module [ "_ucnv_getCCSID_62" ] = _ucnv _getCCSID _62 ;
function _ucnv _getMaxCharSize _62 ( ) {
err ( "missing function: ucnv_getMaxCharSize_62" ) ;
abort ( - 1 ) ;
}
Module [ "_ucnv_getMaxCharSize_62" ] = _ucnv _getMaxCharSize _62 ;
function _ucnv _getMinCharSize _62 ( ) {
err ( "missing function: ucnv_getMinCharSize_62" ) ;
abort ( - 1 ) ;
}
Module [ "_ucnv_getMinCharSize_62" ] = _ucnv _getMinCharSize _62 ;
function _ucnv _getName _62 ( ) {
err ( "missing function: ucnv_getName_62" ) ;
abort ( - 1 ) ;
}
Module [ "_ucnv_getName_62" ] = _ucnv _getName _62 ;
function _ucnv _openCCSID _62 ( ) {
err ( "missing function: ucnv_openCCSID_62" ) ;
abort ( - 1 ) ;
}
Module [ "_ucnv_openCCSID_62" ] = _ucnv _openCCSID _62 ;
function _ucnv _open _62 ( ) {
err ( "missing function: ucnv_open_62" ) ;
abort ( - 1 ) ;
}
Module [ "_ucnv_open_62" ] = _ucnv _open _62 ;
function _ucnv _toUnicode _62 ( ) {
err ( "missing function: ucnv_toUnicode_62" ) ;
abort ( - 1 ) ;
}
Module [ "_ucnv_toUnicode_62" ] = _ucnv _toUnicode _62 ;
function _usprep _close _62 ( ) {
err ( "missing function: usprep_close_62" ) ;
abort ( - 1 ) ;
}
Module [ "_usprep_close_62" ] = _usprep _close _62 ;
function _usprep _openByType _62 ( ) {
err ( "missing function: usprep_openByType_62" ) ;
abort ( - 1 ) ;
}
Module [ "_usprep_openByType_62" ] = _usprep _openByType _62 ;
function _usprep _prepare _62 ( ) {
err ( "missing function: usprep_prepare_62" ) ;
abort ( - 1 ) ;
}
Module [ "_usprep_prepare_62" ] = _usprep _prepare _62 ;
if ( ! ENVIRONMENT _IS _PTHREAD ) PThread . initMainThreadBlock ( ) ; else PThread . initWorker ( ) ;
if ( ENVIRONMENT _IS _NODE ) {
_emscripten _get _now = function _emscripten _get _now _actual ( ) {
var t = process [ "hrtime" ] ( ) ;
return t [ 0 ] * 1e3 + t [ 1 ] / 1e6 ;
} ;
} else if ( ENVIRONMENT _IS _PTHREAD ) {
_emscripten _get _now = ( function ( ) {
return performance [ "now" ] ( ) - _ _performance _now _clock _drift ;
} ) ;
} else if ( typeof dateNow !== "undefined" ) {
_emscripten _get _now = dateNow ;
} else if ( typeof performance === "object" && performance && typeof performance [ "now" ] === "function" ) {
_emscripten _get _now = ( function ( ) {
return performance [ "now" ] ( ) ;
} ) ;
} else {
_emscripten _get _now = Date . now ;
}
FS . staticInit ( ) ;
if ( ENVIRONMENT _HAS _NODE ) {
var fs = require ( "fs" ) ;
var NODEJS _PATH = require ( "path" ) ;
NODEFS . staticInit ( ) ;
}
var GLctx ;
GL . init ( ) ;
var proxiedFunctionTable = [ null , _atexit , _ _ _syscall10 , _ _ _syscall12 , _ _ _syscall183 , _ _ _syscall195 , _ _ _syscall196 , _ _ _syscall220 , _ _ _syscall221 , _ _ _syscall3 , _ _ _syscall39 , _ _ _syscall4 , _ _ _syscall40 , _ _ _syscall5 , _ _ _syscall54 , _ _ _syscall85 , _ _ _syscall91 , _emscripten _set _canvas _element _size _main _thread , _fd _close , _fd _read , _fd _seek , _fd _write , _tzset , _sysconf ] ;
var ASSERTIONS = true ;
function intArrayFromString ( stringy , dontAddNull , length ) {
var len = length > 0 ? length : lengthBytesUTF8 ( stringy ) + 1 ;
var u8array = new Array ( len ) ;
var numBytesWritten = stringToUTF8Array ( stringy , u8array , 0 , u8array . length ) ;
if ( dontAddNull ) u8array . length = numBytesWritten ;
return u8array ;
}
function intArrayToString ( array ) {
var ret = [ ] ;
for ( var i = 0 ; i < array . length ; i ++ ) {
var chr = array [ i ] ;
if ( chr > 255 ) {
if ( ASSERTIONS ) {
assert ( false , "Character code " + chr + " (" + String . fromCharCode ( chr ) + ") at offset " + i + " not in 0x00-0xFF." ) ;
}
chr &= 255 ;
}
ret . push ( String . fromCharCode ( chr ) ) ;
}
return ret . join ( "" ) ;
}
var asmGlobalArg = { } ;
var asmLibraryArg = {
"_ZN23CFileDownloader_privateC1ENSt3__212basic_stringIwNS0_11char_traitsIwEENS0_9allocatorIwEEEEb" : _ _ZN23CFileDownloader _privateC1ENSt3 _ _212basic _stringIwNS0 _11char _traitsIwEENS0 _9allocatorIwEEEEb ,
"_ZN2v810Uint8Array3NewENS_5LocalINS_11ArrayBufferEEEmm" : _ _ZN2v810Uint8Array3NewENS _5LocalINS _11ArrayBufferEEEmm ,
"_ZN2v811ArrayBuffer11ExternalizeEv" : _ _ZN2v811ArrayBuffer11ExternalizeEv ,
"_ZN2v811ArrayBuffer3NewEPNS_7IsolateEPvmNS_23ArrayBufferCreationModeE" : _ _ZN2v811ArrayBuffer3NewEPNS _7IsolateEPvmNS _23ArrayBufferCreationModeE ,
"_ZN2v811ArrayBuffer9Allocator19NewDefaultAllocatorEv" : _ _ZN2v811ArrayBuffer9Allocator19NewDefaultAllocatorEv ,
"_ZN2v811HandleScope12CreateHandleEPNS_8internal10HeapObjectEPNS1_6ObjectE" : _ _ZN2v811HandleScope12CreateHandleEPNS _8internal10HeapObjectEPNS1 _6ObjectE ,
"_ZN2v811HandleScopeC1EPNS_7IsolateE" : _ _ZN2v811HandleScopeC1EPNS _7IsolateE ,
"_ZN2v811HandleScopeD1Ev" : _ _ZN2v811HandleScopeD1Ev ,
"_ZN2v814ObjectTemplate11NewInstanceEv" : _ _ZN2v814ObjectTemplate11NewInstanceEv ,
"_ZN2v814ObjectTemplate11SetAccessorENS_5LocalINS_6StringEEEPFvS3_RKNS_20PropertyCallbackInfoINS_5ValueEEEEPFvS3_NS1_IS5_EERKNS4_IvEEESB_NS_13AccessControlENS_17PropertyAttributeENS1_INS_17AccessorSignatureEEE" : _ _ZN2v814ObjectTemplate11SetAccessorENS _5LocalINS _6StringEEEPFvS3 _RKNS _20PropertyCallbackInfoINS _5ValueEEEEPFvS3 _NS1 _IS5 _EERKNS4 _IvEEESB _NS _13AccessControlENS _17PropertyAttributeENS1 _INS _17AccessorSignatureEEE ,
"_ZN2v814ObjectTemplate21SetInternalFieldCountEi" : _ _ZN2v814ObjectTemplate21SetInternalFieldCountEi ,
"_ZN2v814ObjectTemplate3NewEv" : _ _ZN2v814ObjectTemplate3NewEv ,
"_ZN2v814ScriptCompiler10CachedDataC1EPKhiNS1_12BufferPolicyE" : _ _ZN2v814ScriptCompiler10CachedDataC1EPKhiNS1 _12BufferPolicyE ,
"_ZN2v814ScriptCompiler7CompileENS_5LocalINS_7ContextEEEPNS0_6SourceENS0_14CompileOptionsE" : _ _ZN2v814ScriptCompiler7CompileENS _5LocalINS _7ContextEEEPNS0 _6SourceENS0 _14CompileOptionsE ,
"_ZN2v815ArrayBufferView6BufferEv" : _ _ZN2v815ArrayBufferView6BufferEv ,
"_ZN2v816FunctionTemplate3NewEPNS_7IsolateEPFvRKNS_20FunctionCallbackInfoINS_5ValueEEEENS_5LocalIS4_EENSA_INS_9SignatureEEEiNS_19ConstructorBehaviorE" : _ _ZN2v816FunctionTemplate3NewEPNS _7IsolateEPFvRKNS _20FunctionCallbackInfoINS _5ValueEEEENS _5LocalIS4 _EENSA _INS _9SignatureEEEiNS _19ConstructorBehaviorE ,
"_ZN2v819ResourceConstraintsC1Ev" : _ _ZN2v819ResourceConstraintsC1Ev ,
"_ZN2v82V812ToLocalEmptyEv" : _ _ZN2v82V812ToLocalEmptyEv ,
"_ZN2v84JSON5ParseENS_5LocalINS_6StringEEE" : _ _ZN2v84JSON5ParseENS _5LocalINS _6StringEEE ,
"_ZN2v85Array3NewEPNS_7IsolateEi" : _ _ZN2v85Array3NewEPNS _7IsolateEi ,
"_ZN2v86Locker10InitializeEPNS_7IsolateE" : _ _ZN2v86Locker10InitializeEPNS _7IsolateE ,
"_ZN2v86LockerD1Ev" : _ _ZN2v86LockerD1Ev ,
"_ZN2v86Object16SetInternalFieldEiNS_5LocalINS_5ValueEEE" : _ _ZN2v86Object16SetInternalFieldEiNS _5LocalINS _5ValueEEE ,
"_ZN2v86Object20SlowGetInternalFieldEi" : _ _ZN2v86Object20SlowGetInternalFieldEi ,
"_ZN2v86Object3GetENS_5LocalINS_5ValueEEE" : _ _ZN2v86Object3GetENS _5LocalINS _5ValueEEE ,
"_ZN2v86Object3NewEPNS_7IsolateE" : _ _ZN2v86Object3NewEPNS _7IsolateE ,
"_ZN2v86Object3SetENS_5LocalINS_5ValueEEES3_" : _ _ZN2v86Object3SetENS _5LocalINS _5ValueEEES3 _ ,
"_ZN2v86Object3SetEjNS_5LocalINS_5ValueEEE" : _ _ZN2v86Object3SetEjNS _5LocalINS _5ValueEEE ,
"_ZN2v86Script3RunEv" : _ _ZN2v86Script3RunEv ,
"_ZN2v86Script7CompileENS_5LocalINS_6StringEEEPNS_12ScriptOriginE" : _ _ZN2v86Script7CompileENS _5LocalINS _6StringEEEPNS _12ScriptOriginE ,
"_ZN2v86String11NewFromUtf8EPNS_7IsolateEPKcNS0_13NewStringTypeEi" : _ _ZN2v86String11NewFromUtf8EPNS _7IsolateEPKcNS0 _13NewStringTypeEi ,
"_ZN2v86String5ValueC1ENS_5LocalINS_5ValueEEE" : _ _ZN2v86String5ValueC1ENS _5LocalINS _5ValueEEE ,
"_ZN2v86String5ValueD1Ev" : _ _ZN2v86String5ValueD1Ev ,
"_ZN2v86String9Utf8ValueC1ENS_5LocalINS_5ValueEEE" : _ _ZN2v86String9Utf8ValueC1ENS _5LocalINS _5ValueEEE ,
"_ZN2v86String9Utf8ValueD1Ev" : _ _ZN2v86String9Utf8ValueD1Ev ,
"_ZN2v87Context3NewEPNS_7IsolateEPNS_22ExtensionConfigurationENS_10MaybeLocalINS_14ObjectTemplateEEENS5_INS_5ValueEEE" : _ _ZN2v87Context3NewEPNS _7IsolateEPNS _22ExtensionConfigurationENS _10MaybeLocalINS _14ObjectTemplateEEENS5 _INS _5ValueEEE ,
"_ZN2v87Context4ExitEv" : _ _ZN2v87Context4ExitEv ,
"_ZN2v87Context5EnterEv" : _ _ZN2v87Context5EnterEv ,
"_ZN2v87Context6GlobalEv" : _ _ZN2v87Context6GlobalEv ,
"_ZN2v87Integer3NewEPNS_7IsolateEi" : _ _ZN2v87Integer3NewEPNS _7IsolateEi ,
"_ZN2v87Isolate10GetCurrentEv" : _ _ZN2v87Isolate10GetCurrentEv ,
"_ZN2v87Isolate17GetCurrentContextEv" : _ _ZN2v87Isolate17GetCurrentContextEv ,
"_ZN2v87Isolate3NewERKNS0_12CreateParamsE" : _ _ZN2v87Isolate3NewERKNS0 _12CreateParamsE ,
"_ZN2v87Isolate4ExitEv" : _ _ZN2v87Isolate4ExitEv ,
"_ZN2v87Isolate5EnterEv" : _ _ZN2v87Isolate5EnterEv ,
"_ZN2v87Isolate7DisposeEv" : _ _ZN2v87Isolate7DisposeEv ,
"_ZN2v88External3NewEPNS_7IsolateEPv" : _ _ZN2v88External3NewEPNS _7IsolateEPv ,
"_ZN2v88Function4CallENS_5LocalINS_5ValueEEEiPS3_" : _ _ZN2v88Function4CallENS _5LocalINS _5ValueEEEiPS3 _ ,
"_ZN2v88Template3SetENS_5LocalINS_4NameEEENS1_INS_4DataEEENS_17PropertyAttributeE" : _ _ZN2v88Template3SetENS _5LocalINS _4NameEEENS1 _INS _4DataEEENS _17PropertyAttributeE ,
"_ZN2v88TryCatchC1Ev" : _ _ZN2v88TryCatchC1Ev ,
"_ZN2v88TryCatchD1Ev" : _ _ZN2v88TryCatchD1Ev ,
"_ZN8CXpsFileC1EPN7NSFonts17IApplicationFontsE" : _ _ZN8CXpsFileC1EPN7NSFonts17IApplicationFontsE ,
"_ZN9CDjVuFileC1EPN7NSFonts17IApplicationFontsE" : _ _ZN9CDjVuFileC1EPN7NSFonts17IApplicationFontsE ,
"_ZN9CHtmlFile10ConvertMhtERKNSt3__212basic_stringIwNS0_11char_traitsIwEENS0_9allocatorIwEEEES8_S8_" : _ _ZN9CHtmlFile10ConvertMhtERKNSt3 _ _212basic _stringIwNS0 _11char _traitsIwEENS0 _9allocatorIwEEEES8 _S8 _ ,
"_ZN9CHtmlFile11ConvertEpubERKNSt3__212basic_stringIwNS0_11char_traitsIwEENS0_9allocatorIwEEEERS6_S8_S8_" : _ _ZN9CHtmlFile11ConvertEpubERKNSt3 _ _212basic _stringIwNS0 _11char _traitsIwEENS0 _9allocatorIwEEEERS6 _S8 _S8 _ ,
"_ZN9CHtmlFile7ConvertERKNSt3__26vectorINS0_12basic_stringIwNS0_11char_traitsIwEENS0_9allocatorIwEEEENS5_IS7_EEEERKS7_SD_" : _ _ZN9CHtmlFile7ConvertERKNSt3 _ _26vectorINS0 _12basic _stringIwNS0 _11char _traitsIwEENS0 _9allocatorIwEEEENS5 _IS7 _EEEERKS7 _SD _ ,
"_ZN9CHtmlFileC1Ev" : _ _ZN9CHtmlFileC1Ev ,
"_ZN9CHtmlFileD1Ev" : _ _ZN9CHtmlFileD1Ev ,
"_ZNK2v85Int325ValueEv" : _ _ZNK2v85Int325ValueEv ,
"_ZNK2v85Value10IsFunctionEv" : _ _ZNK2v85Value10IsFunctionEv ,
"_ZNK2v85Value12BooleanValueEv" : _ _ZNK2v85Value12BooleanValueEv ,
"_ZNK2v85Value7ToInt32ENS_5LocalINS_7ContextEEE" : _ _ZNK2v85Value7ToInt32ENS _5LocalINS _7ContextEEE ,
"_ZNK2v85Value8ToNumberENS_5LocalINS_7ContextEEE" : _ _ZNK2v85Value8ToNumberENS _5LocalINS _7ContextEEE ,
"_ZNK2v85Value8ToObjectENS_5LocalINS_7ContextEEE" : _ _ZNK2v85Value8ToObjectENS _5LocalINS _7ContextEEE ,
"_ZNK2v85Value8ToUint32ENS_5LocalINS_7ContextEEE" : _ _ZNK2v85Value8ToUint32ENS _5LocalINS _7ContextEEE ,
"_ZNK2v86Number5ValueEv" : _ _ZNK2v86Number5ValueEv ,
"_ZNK2v86Uint325ValueEv" : _ _ZNK2v86Uint325ValueEv ,
"_ZNK2v87Message13GetSourceLineEv" : _ _ZNK2v87Message13GetSourceLineEv ,
"_ZNK2v87Message3GetEv" : _ _ZNK2v87Message3GetEv ,
"_ZNK2v88External5ValueEv" : _ _ZNK2v88External5ValueEv ,
"_ZNK2v88TryCatch7MessageEv" : _ _ZNK2v88TryCatch7MessageEv ,
"_ZNK2v88TryCatch9HasCaughtEv" : _ _ZNK2v88TryCatch9HasCaughtEv ,
"__assert_fail" : _ _ _assert _fail ,
"__call_main" : _ _ _call _main ,
"__clock_gettime" : _ _ _clock _gettime ,
"__cxa_allocate_exception" : _ _ _cxa _allocate _exception ,
"__cxa_atexit" : _ _ _cxa _atexit ,
"__cxa_rethrow" : _ _ _cxa _rethrow ,
"__cxa_throw" : _ _ _cxa _throw ,
"__lock" : _ _ _lock ,
"__map_file" : _ _ _map _file ,
"__syscall10" : _ _ _syscall10 ,
"__syscall12" : _ _ _syscall12 ,
"__syscall183" : _ _ _syscall183 ,
"__syscall195" : _ _ _syscall195 ,
"__syscall196" : _ _ _syscall196 ,
"__syscall220" : _ _ _syscall220 ,
"__syscall221" : _ _ _syscall221 ,
"__syscall3" : _ _ _syscall3 ,
"__syscall39" : _ _ _syscall39 ,
"__syscall4" : _ _ _syscall4 ,
"__syscall40" : _ _ _syscall40 ,
"__syscall5" : _ _ _syscall5 ,
"__syscall54" : _ _ _syscall54 ,
"__syscall85" : _ _ _syscall85 ,
"__syscall91" : _ _ _syscall91 ,
"__unlock" : _ _ _unlock ,
"abort" : _abort ,
"atexit" : _atexit ,
"emscripten_asm_const_iii" : _emscripten _asm _const _iii ,
"emscripten_check_blocking_allowed" : _emscripten _check _blocking _allowed ,
"emscripten_conditional_set_current_thread_status" : _emscripten _conditional _set _current _thread _status ,
"emscripten_futex_wait" : _emscripten _futex _wait ,
"emscripten_futex_wake" : _emscripten _futex _wake ,
"emscripten_get_now" : _emscripten _get _now ,
"emscripten_get_sbrk_ptr" : _emscripten _get _sbrk _ptr ,
"emscripten_has_threading_support" : _emscripten _has _threading _support ,
"emscripten_is_main_browser_thread" : _emscripten _is _main _browser _thread ,
"emscripten_is_main_runtime_thread" : _emscripten _is _main _runtime _thread ,
"emscripten_longjmp" : _emscripten _longjmp ,
"emscripten_memcpy_big" : _emscripten _memcpy _big ,
"emscripten_receive_on_main_thread_js" : _emscripten _receive _on _main _thread _js ,
"emscripten_resize_heap" : _emscripten _resize _heap ,
"emscripten_set_canvas_element_size" : _emscripten _set _canvas _element _size ,
"emscripten_set_current_thread_status" : _emscripten _set _current _thread _status ,
"emscripten_set_thread_name" : _emscripten _set _thread _name ,
"emscripten_syscall" : _emscripten _syscall ,
"emscripten_webgl_create_context" : _emscripten _webgl _create _context ,
"environ_get" : _environ _get ,
"environ_sizes_get" : _environ _sizes _get ,
"exit" : _exit ,
"fd_close" : _fd _close ,
"fd_read" : _fd _read ,
"fd_seek" : _fd _seek ,
"fd_write" : _fd _write ,
"getTempRet0" : _getTempRet0 ,
"gettimeofday" : _gettimeofday ,
"gmtime" : _gmtime ,
"initPthreadsJS" : initPthreadsJS ,
"invoke_ii" : invoke _ii ,
"invoke_iii" : invoke _iii ,
"invoke_iiii" : invoke _iiii ,
"invoke_iiiii" : invoke _iiiii ,
"invoke_iiiiii" : invoke _iiiiii ,
"invoke_v" : invoke _v ,
"invoke_vi" : invoke _vi ,
"invoke_vii" : invoke _vii ,
"invoke_viii" : invoke _viii ,
"invoke_viiii" : invoke _viiii ,
"invoke_viiiii" : invoke _viiiii ,
"invoke_viiiiii" : invoke _viiiiii ,
"invoke_viiiiiiiii" : invoke _viiiiiiiii ,
"memory" : wasmMemory ,
"mktime" : _mktime ,
"pthread_cleanup_pop" : _pthread _cleanup _pop ,
"pthread_cleanup_push" : _pthread _cleanup _push ,
"pthread_create" : _pthread _create ,
"pthread_self" : _pthread _self ,
"saveSetjmp" : _saveSetjmp ,
"setTempRet0" : _setTempRet0 ,
"strftime_l" : _strftime _l ,
"sysconf" : _sysconf ,
"system" : _system ,
"table" : wasmTable ,
"testSetjmp" : _testSetjmp ,
"time" : _time ,
"times" : _times ,
"u_strFromWCS_62" : _u _strFromWCS _62 ,
"u_strToWCS_62" : _u _strToWCS _62 ,
"ucnv_close_62" : _ucnv _close _62 ,
"ucnv_fromUnicode_62" : _ucnv _fromUnicode _62 ,
"ucnv_getCCSID_62" : _ucnv _getCCSID _62 ,
"ucnv_getMaxCharSize_62" : _ucnv _getMaxCharSize _62 ,
"ucnv_getMinCharSize_62" : _ucnv _getMinCharSize _62 ,
"ucnv_getName_62" : _ucnv _getName _62 ,
"ucnv_openCCSID_62" : _ucnv _openCCSID _62 ,
"ucnv_open_62" : _ucnv _open _62 ,
"ucnv_toUnicode_62" : _ucnv _toUnicode _62 ,
"usprep_close_62" : _usprep _close _62 ,
"usprep_openByType_62" : _usprep _openByType _62 ,
"usprep_prepare_62" : _usprep _prepare _62
} ;
var asm = createWasm ( ) ;
var real _ _ _ _wasm _call _ctors = asm [ "__wasm_call_ctors" ] ;
asm [ "__wasm_call_ctors" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _ _ _wasm _call _ctors . apply ( null , arguments ) ;
} ) ;
var real _ _runX2T = asm [ "runX2T" ] ;
asm [ "runX2T" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _runX2T . apply ( null , arguments ) ;
} ) ;
var real _ _malloc = asm [ "malloc" ] ;
asm [ "malloc" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _malloc . apply ( null , arguments ) ;
} ) ;
var real _ _free = asm [ "free" ] ;
asm [ "free" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _free . apply ( null , arguments ) ;
} ) ;
var real _ _main = asm [ "main" ] ;
asm [ "main" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _main . apply ( null , arguments ) ;
} ) ;
var real _ _fflush = asm [ "fflush" ] ;
asm [ "fflush" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _fflush . apply ( null , arguments ) ;
} ) ;
var real _ _realloc = asm [ "realloc" ] ;
asm [ "realloc" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _realloc . apply ( null , arguments ) ;
} ) ;
var real _ _ _ZSt18uncaught _exceptionv = asm [ "_ZSt18uncaught_exceptionv" ] ;
asm [ "_ZSt18uncaught_exceptionv" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _ _ZSt18uncaught _exceptionv . apply ( null , arguments ) ;
} ) ;
var real _ _ _ _errno _location = asm [ "__errno_location" ] ;
asm [ "__errno_location" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _ _ _errno _location . apply ( null , arguments ) ;
} ) ;
var real _ _ntohs = asm [ "ntohs" ] ;
asm [ "ntohs" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _ntohs . apply ( null , arguments ) ;
} ) ;
var real _ _htonl = asm [ "htonl" ] ;
asm [ "htonl" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _htonl . apply ( null , arguments ) ;
} ) ;
var real _ _htons = asm [ "htons" ] ;
asm [ "htons" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _htons . apply ( null , arguments ) ;
} ) ;
var real _ _emscripten _get _global _libc = asm [ "emscripten_get_global_libc" ] ;
asm [ "emscripten_get_global_libc" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _emscripten _get _global _libc . apply ( null , arguments ) ;
} ) ;
var real _ _ _ _emscripten _pthread _data _constructor = asm [ "__emscripten_pthread_data_constructor" ] ;
asm [ "__emscripten_pthread_data_constructor" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _ _ _emscripten _pthread _data _constructor . apply ( null , arguments ) ;
} ) ;
var real _ _ _get _tzname = asm [ "_get_tzname" ] ;
asm [ "_get_tzname" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _ _get _tzname . apply ( null , arguments ) ;
} ) ;
var real _ _ _get _daylight = asm [ "_get_daylight" ] ;
asm [ "_get_daylight" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _ _get _daylight . apply ( null , arguments ) ;
} ) ;
var real _ _ _get _timezone = asm [ "_get_timezone" ] ;
asm [ "_get_timezone" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _ _get _timezone . apply ( null , arguments ) ;
} ) ;
var real _ _setThrew = asm [ "setThrew" ] ;
asm [ "setThrew" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _setThrew . apply ( null , arguments ) ;
} ) ;
var real _ _memalign = asm [ "memalign" ] ;
asm [ "memalign" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _memalign . apply ( null , arguments ) ;
} ) ;
var real _ _emscripten _main _browser _thread _id = asm [ "emscripten_main_browser_thread_id" ] ;
asm [ "emscripten_main_browser_thread_id" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _emscripten _main _browser _thread _id . apply ( null , arguments ) ;
} ) ;
var real _ _ _ _pthread _tsd _run _dtors = asm [ "__pthread_tsd_run_dtors" ] ;
asm [ "__pthread_tsd_run_dtors" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _ _ _pthread _tsd _run _dtors . apply ( null , arguments ) ;
} ) ;
var real _ _emscripten _main _thread _process _queued _calls = asm [ "emscripten_main_thread_process_queued_calls" ] ;
asm [ "emscripten_main_thread_process_queued_calls" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _emscripten _main _thread _process _queued _calls . apply ( null , arguments ) ;
} ) ;
var real _ _emscripten _current _thread _process _queued _calls = asm [ "emscripten_current_thread_process_queued_calls" ] ;
asm [ "emscripten_current_thread_process_queued_calls" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _emscripten _current _thread _process _queued _calls . apply ( null , arguments ) ;
} ) ;
var real _ _usleep = asm [ "usleep" ] ;
asm [ "usleep" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _usleep . apply ( null , arguments ) ;
} ) ;
var real _ _emscripten _register _main _browser _thread _id = asm [ "emscripten_register_main_browser_thread_id" ] ;
asm [ "emscripten_register_main_browser_thread_id" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _emscripten _register _main _browser _thread _id . apply ( null , arguments ) ;
} ) ;
var real _ _emscripten _async _run _in _main _thread = asm [ "emscripten_async_run_in_main_thread" ] ;
asm [ "emscripten_async_run_in_main_thread" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _emscripten _async _run _in _main _thread . apply ( null , arguments ) ;
} ) ;
var real _ _emscripten _sync _run _in _main _thread = asm [ "emscripten_sync_run_in_main_thread" ] ;
asm [ "emscripten_sync_run_in_main_thread" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _emscripten _sync _run _in _main _thread . apply ( null , arguments ) ;
} ) ;
var real _ _emscripten _sync _run _in _main _thread _0 = asm [ "emscripten_sync_run_in_main_thread_0" ] ;
asm [ "emscripten_sync_run_in_main_thread_0" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _emscripten _sync _run _in _main _thread _0 . apply ( null , arguments ) ;
} ) ;
var real _ _emscripten _sync _run _in _main _thread _1 = asm [ "emscripten_sync_run_in_main_thread_1" ] ;
asm [ "emscripten_sync_run_in_main_thread_1" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _emscripten _sync _run _in _main _thread _1 . apply ( null , arguments ) ;
} ) ;
var real _ _emscripten _sync _run _in _main _thread _2 = asm [ "emscripten_sync_run_in_main_thread_2" ] ;
asm [ "emscripten_sync_run_in_main_thread_2" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _emscripten _sync _run _in _main _thread _2 . apply ( null , arguments ) ;
} ) ;
var real _ _emscripten _sync _run _in _main _thread _xprintf _varargs = asm [ "emscripten_sync_run_in_main_thread_xprintf_varargs" ] ;
asm [ "emscripten_sync_run_in_main_thread_xprintf_varargs" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _emscripten _sync _run _in _main _thread _xprintf _varargs . apply ( null , arguments ) ;
} ) ;
var real _ _emscripten _sync _run _in _main _thread _3 = asm [ "emscripten_sync_run_in_main_thread_3" ] ;
asm [ "emscripten_sync_run_in_main_thread_3" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _emscripten _sync _run _in _main _thread _3 . apply ( null , arguments ) ;
} ) ;
var real _ _emscripten _sync _run _in _main _thread _4 = asm [ "emscripten_sync_run_in_main_thread_4" ] ;
asm [ "emscripten_sync_run_in_main_thread_4" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _emscripten _sync _run _in _main _thread _4 . apply ( null , arguments ) ;
} ) ;
var real _ _emscripten _sync _run _in _main _thread _5 = asm [ "emscripten_sync_run_in_main_thread_5" ] ;
asm [ "emscripten_sync_run_in_main_thread_5" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _emscripten _sync _run _in _main _thread _5 . apply ( null , arguments ) ;
} ) ;
var real _ _emscripten _sync _run _in _main _thread _6 = asm [ "emscripten_sync_run_in_main_thread_6" ] ;
asm [ "emscripten_sync_run_in_main_thread_6" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _emscripten _sync _run _in _main _thread _6 . apply ( null , arguments ) ;
} ) ;
var real _ _emscripten _sync _run _in _main _thread _7 = asm [ "emscripten_sync_run_in_main_thread_7" ] ;
asm [ "emscripten_sync_run_in_main_thread_7" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _emscripten _sync _run _in _main _thread _7 . apply ( null , arguments ) ;
} ) ;
var real _ _emscripten _run _in _main _runtime _thread _js = asm [ "emscripten_run_in_main_runtime_thread_js" ] ;
asm [ "emscripten_run_in_main_runtime_thread_js" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _emscripten _run _in _main _runtime _thread _js . apply ( null , arguments ) ;
} ) ;
var real _ _emscripten _async _queue _on _thread _ = asm [ "emscripten_async_queue_on_thread_" ] ;
asm [ "emscripten_async_queue_on_thread_" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _emscripten _async _queue _on _thread _ . apply ( null , arguments ) ;
} ) ;
var real _ _proxy _main = asm [ "proxy_main" ] ;
asm [ "proxy_main" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _proxy _main . apply ( null , arguments ) ;
} ) ;
var real _ _emscripten _tls _init = asm [ "emscripten_tls_init" ] ;
asm [ "emscripten_tls_init" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _emscripten _tls _init . apply ( null , arguments ) ;
} ) ;
var real _dynCall _ii = asm [ "dynCall_ii" ] ;
asm [ "dynCall_ii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _ii . apply ( null , arguments ) ;
} ) ;
var real _dynCall _iii = asm [ "dynCall_iii" ] ;
asm [ "dynCall_iii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _iii . apply ( null , arguments ) ;
} ) ;
var real _dynCall _iiii = asm [ "dynCall_iiii" ] ;
asm [ "dynCall_iiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _iiii . apply ( null , arguments ) ;
} ) ;
var real _dynCall _iiiii = asm [ "dynCall_iiiii" ] ;
asm [ "dynCall_iiiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _iiiii . apply ( null , arguments ) ;
} ) ;
var real _dynCall _iiiiii = asm [ "dynCall_iiiiii" ] ;
asm [ "dynCall_iiiiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _iiiiii . apply ( null , arguments ) ;
} ) ;
var real _dynCall _v = asm [ "dynCall_v" ] ;
asm [ "dynCall_v" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _v . apply ( null , arguments ) ;
} ) ;
var real _dynCall _vi = asm [ "dynCall_vi" ] ;
asm [ "dynCall_vi" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _vi . apply ( null , arguments ) ;
} ) ;
var real _dynCall _vii = asm [ "dynCall_vii" ] ;
asm [ "dynCall_vii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _vii . apply ( null , arguments ) ;
} ) ;
var real _dynCall _viii = asm [ "dynCall_viii" ] ;
asm [ "dynCall_viii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _viii . apply ( null , arguments ) ;
} ) ;
var real _dynCall _viiii = asm [ "dynCall_viiii" ] ;
asm [ "dynCall_viiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _viiii . apply ( null , arguments ) ;
} ) ;
var real _dynCall _viiiii = asm [ "dynCall_viiiii" ] ;
asm [ "dynCall_viiiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _viiiii . apply ( null , arguments ) ;
} ) ;
var real _dynCall _viiiiii = asm [ "dynCall_viiiiii" ] ;
asm [ "dynCall_viiiiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _viiiiii . apply ( null , arguments ) ;
} ) ;
var real _dynCall _viiiiiiiii = asm [ "dynCall_viiiiiiiii" ] ;
asm [ "dynCall_viiiiiiiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _viiiiiiiii . apply ( null , arguments ) ;
} ) ;
var real _stackSave = asm [ "stackSave" ] ;
asm [ "stackSave" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _stackSave . apply ( null , arguments ) ;
} ) ;
var real _stackAlloc = asm [ "stackAlloc" ] ;
asm [ "stackAlloc" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _stackAlloc . apply ( null , arguments ) ;
} ) ;
var real _stackRestore = asm [ "stackRestore" ] ;
asm [ "stackRestore" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _stackRestore . apply ( null , arguments ) ;
} ) ;
var real _ _ _growWasmMemory = asm [ "__growWasmMemory" ] ;
asm [ "__growWasmMemory" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _ _ _growWasmMemory . apply ( null , arguments ) ;
} ) ;
var real _dynCall _viijii = asm [ "dynCall_viijii" ] ;
asm [ "dynCall_viijii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _viijii . apply ( null , arguments ) ;
} ) ;
var real _dynCall _dii = asm [ "dynCall_dii" ] ;
asm [ "dynCall_dii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _dii . apply ( null , arguments ) ;
} ) ;
var real _dynCall _did = asm [ "dynCall_did" ] ;
asm [ "dynCall_did" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _did . apply ( null , arguments ) ;
} ) ;
var real _dynCall _di = asm [ "dynCall_di" ] ;
asm [ "dynCall_di" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _di . apply ( null , arguments ) ;
} ) ;
var real _dynCall _ji = asm [ "dynCall_ji" ] ;
asm [ "dynCall_ji" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _ji . apply ( null , arguments ) ;
} ) ;
var real _dynCall _vij = asm [ "dynCall_vij" ] ;
asm [ "dynCall_vij" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _vij . apply ( null , arguments ) ;
} ) ;
var real _dynCall _jii = asm [ "dynCall_jii" ] ;
asm [ "dynCall_jii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _jii . apply ( null , arguments ) ;
} ) ;
var real _dynCall _iiiiiii = asm [ "dynCall_iiiiiii" ] ;
asm [ "dynCall_iiiiiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _iiiiiii . apply ( null , arguments ) ;
} ) ;
var real _dynCall _iiiiiiii = asm [ "dynCall_iiiiiiii" ] ;
asm [ "dynCall_iiiiiiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _iiiiiiii . apply ( null , arguments ) ;
} ) ;
var real _dynCall _iiiiiiiii = asm [ "dynCall_iiiiiiiii" ] ;
asm [ "dynCall_iiiiiiiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _iiiiiiiii . apply ( null , arguments ) ;
} ) ;
var real _dynCall _iidddddi = asm [ "dynCall_iidddddi" ] ;
asm [ "dynCall_iidddddi" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _iidddddi . apply ( null , arguments ) ;
} ) ;
var real _dynCall _viiiddii = asm [ "dynCall_viiiddii" ] ;
asm [ "dynCall_viiiddii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _viiiddii . apply ( null , arguments ) ;
} ) ;
var real _dynCall _viij = asm [ "dynCall_viij" ] ;
asm [ "dynCall_viij" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _viij . apply ( null , arguments ) ;
} ) ;
var real _dynCall _viji = asm [ "dynCall_viji" ] ;
asm [ "dynCall_viji" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _viji . apply ( null , arguments ) ;
} ) ;
var real _dynCall _jij = asm [ "dynCall_jij" ] ;
asm [ "dynCall_jij" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _jij . apply ( null , arguments ) ;
} ) ;
var real _dynCall _iiiijii = asm [ "dynCall_iiiijii" ] ;
asm [ "dynCall_iiiijii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _iiiijii . apply ( null , arguments ) ;
} ) ;
var real _dynCall _viiij = asm [ "dynCall_viiij" ] ;
asm [ "dynCall_viiij" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _viiij . apply ( null , arguments ) ;
} ) ;
var real _dynCall _viiiiiiiiii = asm [ "dynCall_viiiiiiiiii" ] ;
asm [ "dynCall_viiiiiiiiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _viiiiiiiiii . apply ( null , arguments ) ;
} ) ;
var real _dynCall _iiiji = asm [ "dynCall_iiiji" ] ;
asm [ "dynCall_iiiji" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _iiiji . apply ( null , arguments ) ;
} ) ;
var real _dynCall _i = asm [ "dynCall_i" ] ;
asm [ "dynCall_i" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _i . apply ( null , arguments ) ;
} ) ;
var real _dynCall _viiiiiii = asm [ "dynCall_viiiiiii" ] ;
asm [ "dynCall_viiiiiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _viiiiiii . apply ( null , arguments ) ;
} ) ;
var real _dynCall _iiiiiiiiiiii = asm [ "dynCall_iiiiiiiiiiii" ] ;
asm [ "dynCall_iiiiiiiiiiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _iiiiiiiiiiii . apply ( null , arguments ) ;
} ) ;
var real _dynCall _iiiddiiiiiiiiiii = asm [ "dynCall_iiiddiiiiiiiiiii" ] ;
asm [ "dynCall_iiiddiiiiiiiiiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _iiiddiiiiiiiiiii . apply ( null , arguments ) ;
} ) ;
var real _dynCall _viddii = asm [ "dynCall_viddii" ] ;
asm [ "dynCall_viddii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _viddii . apply ( null , arguments ) ;
} ) ;
var real _dynCall _viidddddd = asm [ "dynCall_viidddddd" ] ;
asm [ "dynCall_viidddddd" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _viidddddd . apply ( null , arguments ) ;
} ) ;
var real _dynCall _viid = asm [ "dynCall_viid" ] ;
asm [ "dynCall_viid" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _viid . apply ( null , arguments ) ;
} ) ;
var real _dynCall _viiiiiiiiiiidd = asm [ "dynCall_viiiiiiiiiiidd" ] ;
asm [ "dynCall_viiiiiiiiiiidd" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _viiiiiiiiiiidd . apply ( null , arguments ) ;
} ) ;
var real _dynCall _viiiiiiddddddi = asm [ "dynCall_viiiiiiddddddi" ] ;
asm [ "dynCall_viiiiiiddddddi" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _viiiiiiddddddi . apply ( null , arguments ) ;
} ) ;
var real _dynCall _viiddddddiiii = asm [ "dynCall_viiddddddiiii" ] ;
asm [ "dynCall_viiddddddiiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _viiddddddiiii . apply ( null , arguments ) ;
} ) ;
var real _dynCall _iiiddddiii = asm [ "dynCall_iiiddddiii" ] ;
asm [ "dynCall_iiiddddiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _iiiddddiii . apply ( null , arguments ) ;
} ) ;
var real _dynCall _viiiiiiii = asm [ "dynCall_viiiiiiii" ] ;
asm [ "dynCall_viiiiiiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _viiiiiiii . apply ( null , arguments ) ;
} ) ;
var real _dynCall _viiiiiiiiiii = asm [ "dynCall_viiiiiiiiiii" ] ;
asm [ "dynCall_viiiiiiiiiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _viiiiiiiiiii . apply ( null , arguments ) ;
} ) ;
var real _dynCall _viidd = asm [ "dynCall_viidd" ] ;
asm [ "dynCall_viidd" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _viidd . apply ( null , arguments ) ;
} ) ;
var real _dynCall _viiiiiiiiiiii = asm [ "dynCall_viiiiiiiiiiii" ] ;
asm [ "dynCall_viiiiiiiiiiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _viiiiiiiiiiii . apply ( null , arguments ) ;
} ) ;
var real _dynCall _iidd = asm [ "dynCall_iidd" ] ;
asm [ "dynCall_iidd" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _iidd . apply ( null , arguments ) ;
} ) ;
var real _dynCall _iidddddd = asm [ "dynCall_iidddddd" ] ;
asm [ "dynCall_iidddddd" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _iidddddd . apply ( null , arguments ) ;
} ) ;
var real _dynCall _vidd = asm [ "dynCall_vidd" ] ;
asm [ "dynCall_vidd" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _vidd . apply ( null , arguments ) ;
} ) ;
var real _dynCall _vidddd = asm [ "dynCall_vidddd" ] ;
asm [ "dynCall_vidddd" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _vidddd . apply ( null , arguments ) ;
} ) ;
var real _dynCall _viidddd = asm [ "dynCall_viidddd" ] ;
asm [ "dynCall_viidddd" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _viidddd . apply ( null , arguments ) ;
} ) ;
var real _dynCall _iiiiiddd = asm [ "dynCall_iiiiiddd" ] ;
asm [ "dynCall_iiiiiddd" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _iiiiiddd . apply ( null , arguments ) ;
} ) ;
var real _dynCall _viiiiddd = asm [ "dynCall_viiiiddd" ] ;
asm [ "dynCall_viiiiddd" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _viiiiddd . apply ( null , arguments ) ;
} ) ;
var real _dynCall _diiii = asm [ "dynCall_diiii" ] ;
asm [ "dynCall_diiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _diiii . apply ( null , arguments ) ;
} ) ;
var real _dynCall _iiidddd = asm [ "dynCall_iiidddd" ] ;
asm [ "dynCall_iiidddd" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _iiidddd . apply ( null , arguments ) ;
} ) ;
var real _dynCall _viddddiii = asm [ "dynCall_viddddiii" ] ;
asm [ "dynCall_viddddiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _viddddiii . apply ( null , arguments ) ;
} ) ;
var real _dynCall _vidddddd = asm [ "dynCall_vidddddd" ] ;
asm [ "dynCall_vidddddd" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _vidddddd . apply ( null , arguments ) ;
} ) ;
var real _dynCall _iiiiiiiiii = asm [ "dynCall_iiiiiiiiii" ] ;
asm [ "dynCall_iiiiiiiiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _iiiiiiiiii . apply ( null , arguments ) ;
} ) ;
var real _dynCall _jiji = asm [ "dynCall_jiji" ] ;
asm [ "dynCall_jiji" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _jiji . apply ( null , arguments ) ;
} ) ;
var real _dynCall _iidiiii = asm [ "dynCall_iidiiii" ] ;
asm [ "dynCall_iidiiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _iidiiii . apply ( null , arguments ) ;
} ) ;
var real _dynCall _iiiiij = asm [ "dynCall_iiiiij" ] ;
asm [ "dynCall_iiiiij" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _iiiiij . apply ( null , arguments ) ;
} ) ;
var real _dynCall _iiiiid = asm [ "dynCall_iiiiid" ] ;
asm [ "dynCall_iiiiid" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _iiiiid . apply ( null , arguments ) ;
} ) ;
var real _dynCall _iiiiijj = asm [ "dynCall_iiiiijj" ] ;
asm [ "dynCall_iiiiijj" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _iiiiijj . apply ( null , arguments ) ;
} ) ;
var real _dynCall _iiiiiijj = asm [ "dynCall_iiiiiijj" ] ;
asm [ "dynCall_iiiiiijj" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return real _dynCall _iiiiiijj . apply ( null , arguments ) ;
} ) ;
Module [ "asm" ] = asm ;
var _ _ _wasm _call _ctors = Module [ "___wasm_call_ctors" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "__wasm_call_ctors" ] . apply ( null , arguments ) ;
} ) ;
var _runX2T = Module [ "_runX2T" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "runX2T" ] . apply ( null , arguments ) ;
} ) ;
var _malloc = Module [ "_malloc" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "malloc" ] . apply ( null , arguments ) ;
} ) ;
var _free = Module [ "_free" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "free" ] . apply ( null , arguments ) ;
} ) ;
var _main = Module [ "_main" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "main" ] . apply ( null , arguments ) ;
} ) ;
var _fflush = Module [ "_fflush" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "fflush" ] . apply ( null , arguments ) ;
} ) ;
var _realloc = Module [ "_realloc" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "realloc" ] . apply ( null , arguments ) ;
} ) ;
var _ _ZSt18uncaught _exceptionv = Module [ "__ZSt18uncaught_exceptionv" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "_ZSt18uncaught_exceptionv" ] . apply ( null , arguments ) ;
} ) ;
var _ _ _errno _location = Module [ "___errno_location" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "__errno_location" ] . apply ( null , arguments ) ;
} ) ;
var _ntohs = Module [ "_ntohs" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "ntohs" ] . apply ( null , arguments ) ;
} ) ;
var _htonl = Module [ "_htonl" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "htonl" ] . apply ( null , arguments ) ;
} ) ;
var _htons = Module [ "_htons" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "htons" ] . apply ( null , arguments ) ;
} ) ;
var _emscripten _get _global _libc = Module [ "_emscripten_get_global_libc" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "emscripten_get_global_libc" ] . apply ( null , arguments ) ;
} ) ;
var _ _ _emscripten _pthread _data _constructor = Module [ "___emscripten_pthread_data_constructor" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "__emscripten_pthread_data_constructor" ] . apply ( null , arguments ) ;
} ) ;
var _ _get _tzname = Module [ "__get_tzname" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "_get_tzname" ] . apply ( null , arguments ) ;
} ) ;
var _ _get _daylight = Module [ "__get_daylight" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "_get_daylight" ] . apply ( null , arguments ) ;
} ) ;
var _ _get _timezone = Module [ "__get_timezone" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "_get_timezone" ] . apply ( null , arguments ) ;
} ) ;
var _setThrew = Module [ "_setThrew" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "setThrew" ] . apply ( null , arguments ) ;
} ) ;
var _memalign = Module [ "_memalign" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "memalign" ] . apply ( null , arguments ) ;
} ) ;
var _emscripten _main _browser _thread _id = Module [ "_emscripten_main_browser_thread_id" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "emscripten_main_browser_thread_id" ] . apply ( null , arguments ) ;
} ) ;
var _ _ _pthread _tsd _run _dtors = Module [ "___pthread_tsd_run_dtors" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "__pthread_tsd_run_dtors" ] . apply ( null , arguments ) ;
} ) ;
var _emscripten _main _thread _process _queued _calls = Module [ "_emscripten_main_thread_process_queued_calls" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "emscripten_main_thread_process_queued_calls" ] . apply ( null , arguments ) ;
} ) ;
var _emscripten _current _thread _process _queued _calls = Module [ "_emscripten_current_thread_process_queued_calls" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "emscripten_current_thread_process_queued_calls" ] . apply ( null , arguments ) ;
} ) ;
var _usleep = Module [ "_usleep" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "usleep" ] . apply ( null , arguments ) ;
} ) ;
var _emscripten _register _main _browser _thread _id = Module [ "_emscripten_register_main_browser_thread_id" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "emscripten_register_main_browser_thread_id" ] . apply ( null , arguments ) ;
} ) ;
var _emscripten _async _run _in _main _thread = Module [ "_emscripten_async_run_in_main_thread" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "emscripten_async_run_in_main_thread" ] . apply ( null , arguments ) ;
} ) ;
var _emscripten _sync _run _in _main _thread = Module [ "_emscripten_sync_run_in_main_thread" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "emscripten_sync_run_in_main_thread" ] . apply ( null , arguments ) ;
} ) ;
var _emscripten _sync _run _in _main _thread _0 = Module [ "_emscripten_sync_run_in_main_thread_0" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "emscripten_sync_run_in_main_thread_0" ] . apply ( null , arguments ) ;
} ) ;
var _emscripten _sync _run _in _main _thread _1 = Module [ "_emscripten_sync_run_in_main_thread_1" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "emscripten_sync_run_in_main_thread_1" ] . apply ( null , arguments ) ;
} ) ;
var _emscripten _sync _run _in _main _thread _2 = Module [ "_emscripten_sync_run_in_main_thread_2" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "emscripten_sync_run_in_main_thread_2" ] . apply ( null , arguments ) ;
} ) ;
var _emscripten _sync _run _in _main _thread _xprintf _varargs = Module [ "_emscripten_sync_run_in_main_thread_xprintf_varargs" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "emscripten_sync_run_in_main_thread_xprintf_varargs" ] . apply ( null , arguments ) ;
} ) ;
var _emscripten _sync _run _in _main _thread _3 = Module [ "_emscripten_sync_run_in_main_thread_3" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "emscripten_sync_run_in_main_thread_3" ] . apply ( null , arguments ) ;
} ) ;
var _emscripten _sync _run _in _main _thread _4 = Module [ "_emscripten_sync_run_in_main_thread_4" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "emscripten_sync_run_in_main_thread_4" ] . apply ( null , arguments ) ;
} ) ;
var _emscripten _sync _run _in _main _thread _5 = Module [ "_emscripten_sync_run_in_main_thread_5" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "emscripten_sync_run_in_main_thread_5" ] . apply ( null , arguments ) ;
} ) ;
var _emscripten _sync _run _in _main _thread _6 = Module [ "_emscripten_sync_run_in_main_thread_6" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "emscripten_sync_run_in_main_thread_6" ] . apply ( null , arguments ) ;
} ) ;
var _emscripten _sync _run _in _main _thread _7 = Module [ "_emscripten_sync_run_in_main_thread_7" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "emscripten_sync_run_in_main_thread_7" ] . apply ( null , arguments ) ;
} ) ;
var _emscripten _run _in _main _runtime _thread _js = Module [ "_emscripten_run_in_main_runtime_thread_js" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "emscripten_run_in_main_runtime_thread_js" ] . apply ( null , arguments ) ;
} ) ;
var _emscripten _async _queue _on _thread _ = Module [ "_emscripten_async_queue_on_thread_" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "emscripten_async_queue_on_thread_" ] . apply ( null , arguments ) ;
} ) ;
var _proxy _main = Module [ "_proxy_main" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "proxy_main" ] . apply ( null , arguments ) ;
} ) ;
var _emscripten _tls _init = Module [ "_emscripten_tls_init" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "emscripten_tls_init" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _ii = Module [ "dynCall_ii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_ii" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _iii = Module [ "dynCall_iii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_iii" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _iiii = Module [ "dynCall_iiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_iiii" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _iiiii = Module [ "dynCall_iiiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_iiiii" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _iiiiii = Module [ "dynCall_iiiiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_iiiiii" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _v = Module [ "dynCall_v" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_v" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _vi = Module [ "dynCall_vi" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_vi" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _vii = Module [ "dynCall_vii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_vii" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _viii = Module [ "dynCall_viii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_viii" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _viiii = Module [ "dynCall_viiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_viiii" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _viiiii = Module [ "dynCall_viiiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_viiiii" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _viiiiii = Module [ "dynCall_viiiiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_viiiiii" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _viiiiiiiii = Module [ "dynCall_viiiiiiiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_viiiiiiiii" ] . apply ( null , arguments ) ;
} ) ;
var stackSave = Module [ "stackSave" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "stackSave" ] . apply ( null , arguments ) ;
} ) ;
var stackAlloc = Module [ "stackAlloc" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "stackAlloc" ] . apply ( null , arguments ) ;
} ) ;
var stackRestore = Module [ "stackRestore" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "stackRestore" ] . apply ( null , arguments ) ;
} ) ;
var _ _growWasmMemory = Module [ "__growWasmMemory" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "__growWasmMemory" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _viijii = Module [ "dynCall_viijii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_viijii" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _dii = Module [ "dynCall_dii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_dii" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _did = Module [ "dynCall_did" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_did" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _di = Module [ "dynCall_di" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_di" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _ji = Module [ "dynCall_ji" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_ji" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _vij = Module [ "dynCall_vij" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_vij" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _jii = Module [ "dynCall_jii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_jii" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _iiiiiii = Module [ "dynCall_iiiiiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_iiiiiii" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _iiiiiiii = Module [ "dynCall_iiiiiiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_iiiiiiii" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _iiiiiiiii = Module [ "dynCall_iiiiiiiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_iiiiiiiii" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _iidddddi = Module [ "dynCall_iidddddi" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_iidddddi" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _viiiddii = Module [ "dynCall_viiiddii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_viiiddii" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _viij = Module [ "dynCall_viij" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_viij" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _viji = Module [ "dynCall_viji" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_viji" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _jij = Module [ "dynCall_jij" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_jij" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _iiiijii = Module [ "dynCall_iiiijii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_iiiijii" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _viiij = Module [ "dynCall_viiij" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_viiij" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _viiiiiiiiii = Module [ "dynCall_viiiiiiiiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_viiiiiiiiii" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _iiiji = Module [ "dynCall_iiiji" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_iiiji" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _i = Module [ "dynCall_i" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_i" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _viiiiiii = Module [ "dynCall_viiiiiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_viiiiiii" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _iiiiiiiiiiii = Module [ "dynCall_iiiiiiiiiiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_iiiiiiiiiiii" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _iiiddiiiiiiiiiii = Module [ "dynCall_iiiddiiiiiiiiiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_iiiddiiiiiiiiiii" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _viddii = Module [ "dynCall_viddii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_viddii" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _viidddddd = Module [ "dynCall_viidddddd" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_viidddddd" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _viid = Module [ "dynCall_viid" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_viid" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _viiiiiiiiiiidd = Module [ "dynCall_viiiiiiiiiiidd" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_viiiiiiiiiiidd" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _viiiiiiddddddi = Module [ "dynCall_viiiiiiddddddi" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_viiiiiiddddddi" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _viiddddddiiii = Module [ "dynCall_viiddddddiiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_viiddddddiiii" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _iiiddddiii = Module [ "dynCall_iiiddddiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_iiiddddiii" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _viiiiiiii = Module [ "dynCall_viiiiiiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_viiiiiiii" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _viiiiiiiiiii = Module [ "dynCall_viiiiiiiiiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_viiiiiiiiiii" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _viidd = Module [ "dynCall_viidd" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_viidd" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _viiiiiiiiiiii = Module [ "dynCall_viiiiiiiiiiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_viiiiiiiiiiii" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _iidd = Module [ "dynCall_iidd" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_iidd" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _iidddddd = Module [ "dynCall_iidddddd" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_iidddddd" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _vidd = Module [ "dynCall_vidd" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_vidd" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _vidddd = Module [ "dynCall_vidddd" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_vidddd" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _viidddd = Module [ "dynCall_viidddd" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_viidddd" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _iiiiiddd = Module [ "dynCall_iiiiiddd" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_iiiiiddd" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _viiiiddd = Module [ "dynCall_viiiiddd" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_viiiiddd" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _diiii = Module [ "dynCall_diiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_diiii" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _iiidddd = Module [ "dynCall_iiidddd" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_iiidddd" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _viddddiii = Module [ "dynCall_viddddiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_viddddiii" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _vidddddd = Module [ "dynCall_vidddddd" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_vidddddd" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _iiiiiiiiii = Module [ "dynCall_iiiiiiiiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_iiiiiiiiii" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _jiji = Module [ "dynCall_jiji" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_jiji" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _iidiiii = Module [ "dynCall_iidiiii" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_iidiiii" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _iiiiij = Module [ "dynCall_iiiiij" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_iiiiij" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _iiiiid = Module [ "dynCall_iiiiid" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_iiiiid" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _iiiiijj = Module [ "dynCall_iiiiijj" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_iiiiijj" ] . apply ( null , arguments ) ;
} ) ;
var dynCall _iiiiiijj = Module [ "dynCall_iiiiiijj" ] = ( function ( ) {
assert ( runtimeInitialized , "you need to wait for the runtime to be ready (e.g. wait for main() to be called)" ) ;
assert ( ! runtimeExited , "the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)" ) ;
return Module [ "asm" ] [ "dynCall_iiiiiijj" ] . apply ( null , arguments ) ;
} ) ;
function invoke _viiii ( index , a1 , a2 , a3 , a4 ) {
var sp = stackSave ( ) ;
try {
dynCall _viiii ( index , a1 , a2 , a3 , a4 ) ;
} catch ( e ) {
stackRestore ( sp ) ;
if ( e !== e + 0 && e !== "longjmp" ) throw e ;
_setThrew ( 1 , 0 ) ;
}
}
function invoke _iii ( index , a1 , a2 ) {
var sp = stackSave ( ) ;
try {
return dynCall _iii ( index , a1 , a2 ) ;
} catch ( e ) {
stackRestore ( sp ) ;
if ( e !== e + 0 && e !== "longjmp" ) throw e ;
_setThrew ( 1 , 0 ) ;
}
}
function invoke _iiiii ( index , a1 , a2 , a3 , a4 ) {
var sp = stackSave ( ) ;
try {
return dynCall _iiiii ( index , a1 , a2 , a3 , a4 ) ;
} catch ( e ) {
stackRestore ( sp ) ;
if ( e !== e + 0 && e !== "longjmp" ) throw e ;
_setThrew ( 1 , 0 ) ;
}
}
function invoke _iiii ( index , a1 , a2 , a3 ) {
var sp = stackSave ( ) ;
try {
return dynCall _iiii ( index , a1 , a2 , a3 ) ;
} catch ( e ) {
stackRestore ( sp ) ;
if ( e !== e + 0 && e !== "longjmp" ) throw e ;
_setThrew ( 1 , 0 ) ;
}
}
function invoke _vi ( index , a1 ) {
var sp = stackSave ( ) ;
try {
dynCall _vi ( index , a1 ) ;
} catch ( e ) {
stackRestore ( sp ) ;
if ( e !== e + 0 && e !== "longjmp" ) throw e ;
_setThrew ( 1 , 0 ) ;
}
}
function invoke _vii ( index , a1 , a2 ) {
var sp = stackSave ( ) ;
try {
dynCall _vii ( index , a1 , a2 ) ;
} catch ( e ) {
stackRestore ( sp ) ;
if ( e !== e + 0 && e !== "longjmp" ) throw e ;
_setThrew ( 1 , 0 ) ;
}
}
function invoke _ii ( index , a1 ) {
var sp = stackSave ( ) ;
try {
return dynCall _ii ( index , a1 ) ;
} catch ( e ) {
stackRestore ( sp ) ;
if ( e !== e + 0 && e !== "longjmp" ) throw e ;
_setThrew ( 1 , 0 ) ;
}
}
function invoke _viii ( index , a1 , a2 , a3 ) {
var sp = stackSave ( ) ;
try {
dynCall _viii ( index , a1 , a2 , a3 ) ;
} catch ( e ) {
stackRestore ( sp ) ;
if ( e !== e + 0 && e !== "longjmp" ) throw e ;
_setThrew ( 1 , 0 ) ;
}
}
function invoke _v ( index ) {
var sp = stackSave ( ) ;
try {
dynCall _v ( index ) ;
} catch ( e ) {
stackRestore ( sp ) ;
if ( e !== e + 0 && e !== "longjmp" ) throw e ;
_setThrew ( 1 , 0 ) ;
}
}
function invoke _iiiiii ( index , a1 , a2 , a3 , a4 , a5 ) {
var sp = stackSave ( ) ;
try {
return dynCall _iiiiii ( index , a1 , a2 , a3 , a4 , a5 ) ;
} catch ( e ) {
stackRestore ( sp ) ;
if ( e !== e + 0 && e !== "longjmp" ) throw e ;
_setThrew ( 1 , 0 ) ;
}
}
function invoke _viiiii ( index , a1 , a2 , a3 , a4 , a5 ) {
var sp = stackSave ( ) ;
try {
dynCall _viiiii ( index , a1 , a2 , a3 , a4 , a5 ) ;
} catch ( e ) {
stackRestore ( sp ) ;
if ( e !== e + 0 && e !== "longjmp" ) throw e ;
_setThrew ( 1 , 0 ) ;
}
}
function invoke _viiiiii ( index , a1 , a2 , a3 , a4 , a5 , a6 ) {
var sp = stackSave ( ) ;
try {
dynCall _viiiiii ( index , a1 , a2 , a3 , a4 , a5 , a6 ) ;
} catch ( e ) {
stackRestore ( sp ) ;
if ( e !== e + 0 && e !== "longjmp" ) throw e ;
_setThrew ( 1 , 0 ) ;
}
}
function invoke _viiiiiiiii ( index , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 ) {
var sp = stackSave ( ) ;
try {
dynCall _viiiiiiiii ( index , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 ) ;
} catch ( e ) {
stackRestore ( sp ) ;
if ( e !== e + 0 && e !== "longjmp" ) throw e ;
_setThrew ( 1 , 0 ) ;
}
}
Module [ "asm" ] = asm ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "intArrayFromString" ) ) Module [ "intArrayFromString" ] = ( function ( ) {
abort ( "'intArrayFromString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "intArrayToString" ) ) Module [ "intArrayToString" ] = ( function ( ) {
abort ( "'intArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
Module [ "ccall" ] = ccall ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "cwrap" ) ) Module [ "cwrap" ] = ( function ( ) {
abort ( "'cwrap' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "setValue" ) ) Module [ "setValue" ] = ( function ( ) {
abort ( "'setValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "getValue" ) ) Module [ "getValue" ] = ( function ( ) {
abort ( "'getValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "allocate" ) ) Module [ "allocate" ] = ( function ( ) {
abort ( "'allocate' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "getMemory" ) ) Module [ "getMemory" ] = ( function ( ) {
abort ( "'getMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "AsciiToString" ) ) Module [ "AsciiToString" ] = ( function ( ) {
abort ( "'AsciiToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "stringToAscii" ) ) Module [ "stringToAscii" ] = ( function ( ) {
abort ( "'stringToAscii' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "UTF8ArrayToString" ) ) Module [ "UTF8ArrayToString" ] = ( function ( ) {
abort ( "'UTF8ArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "UTF8ToString" ) ) Module [ "UTF8ToString" ] = ( function ( ) {
abort ( "'UTF8ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "stringToUTF8Array" ) ) Module [ "stringToUTF8Array" ] = ( function ( ) {
abort ( "'stringToUTF8Array' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "stringToUTF8" ) ) Module [ "stringToUTF8" ] = ( function ( ) {
abort ( "'stringToUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "lengthBytesUTF8" ) ) Module [ "lengthBytesUTF8" ] = ( function ( ) {
abort ( "'lengthBytesUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "UTF16ToString" ) ) Module [ "UTF16ToString" ] = ( function ( ) {
abort ( "'UTF16ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "stringToUTF16" ) ) Module [ "stringToUTF16" ] = ( function ( ) {
abort ( "'stringToUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "lengthBytesUTF16" ) ) Module [ "lengthBytesUTF16" ] = ( function ( ) {
abort ( "'lengthBytesUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "UTF32ToString" ) ) Module [ "UTF32ToString" ] = ( function ( ) {
abort ( "'UTF32ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "stringToUTF32" ) ) Module [ "stringToUTF32" ] = ( function ( ) {
abort ( "'stringToUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "lengthBytesUTF32" ) ) Module [ "lengthBytesUTF32" ] = ( function ( ) {
abort ( "'lengthBytesUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "allocateUTF8" ) ) Module [ "allocateUTF8" ] = ( function ( ) {
abort ( "'allocateUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "stackTrace" ) ) Module [ "stackTrace" ] = ( function ( ) {
abort ( "'stackTrace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "addOnPreRun" ) ) Module [ "addOnPreRun" ] = ( function ( ) {
abort ( "'addOnPreRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "addOnInit" ) ) Module [ "addOnInit" ] = ( function ( ) {
abort ( "'addOnInit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "addOnPreMain" ) ) Module [ "addOnPreMain" ] = ( function ( ) {
abort ( "'addOnPreMain' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "addOnExit" ) ) Module [ "addOnExit" ] = ( function ( ) {
abort ( "'addOnExit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "addOnPostRun" ) ) Module [ "addOnPostRun" ] = ( function ( ) {
abort ( "'addOnPostRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "writeStringToMemory" ) ) Module [ "writeStringToMemory" ] = ( function ( ) {
abort ( "'writeStringToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "writeArrayToMemory" ) ) Module [ "writeArrayToMemory" ] = ( function ( ) {
abort ( "'writeArrayToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "writeAsciiToMemory" ) ) Module [ "writeAsciiToMemory" ] = ( function ( ) {
abort ( "'writeAsciiToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "addRunDependency" ) ) Module [ "addRunDependency" ] = ( function ( ) {
abort ( "'addRunDependency' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "removeRunDependency" ) ) Module [ "removeRunDependency" ] = ( function ( ) {
abort ( "'removeRunDependency' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "ENV" ) ) Module [ "ENV" ] = ( function ( ) {
abort ( "'ENV' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "FS" ) ) Module [ "FS" ] = ( function ( ) {
abort ( "'FS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "FS_createFolder" ) ) Module [ "FS_createFolder" ] = ( function ( ) {
abort ( "'FS_createFolder' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "FS_createPath" ) ) Module [ "FS_createPath" ] = ( function ( ) {
abort ( "'FS_createPath' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "FS_createDataFile" ) ) Module [ "FS_createDataFile" ] = ( function ( ) {
abort ( "'FS_createDataFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "FS_createPreloadedFile" ) ) Module [ "FS_createPreloadedFile" ] = ( function ( ) {
abort ( "'FS_createPreloadedFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "FS_createLazyFile" ) ) Module [ "FS_createLazyFile" ] = ( function ( ) {
abort ( "'FS_createLazyFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "FS_createLink" ) ) Module [ "FS_createLink" ] = ( function ( ) {
abort ( "'FS_createLink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "FS_createDevice" ) ) Module [ "FS_createDevice" ] = ( function ( ) {
abort ( "'FS_createDevice' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "FS_unlink" ) ) Module [ "FS_unlink" ] = ( function ( ) {
abort ( "'FS_unlink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "GL" ) ) Module [ "GL" ] = ( function ( ) {
abort ( "'GL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "dynamicAlloc" ) ) Module [ "dynamicAlloc" ] = ( function ( ) {
abort ( "'dynamicAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "loadDynamicLibrary" ) ) Module [ "loadDynamicLibrary" ] = ( function ( ) {
abort ( "'loadDynamicLibrary' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "loadWebAssemblyModule" ) ) Module [ "loadWebAssemblyModule" ] = ( function ( ) {
abort ( "'loadWebAssemblyModule' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "getLEB" ) ) Module [ "getLEB" ] = ( function ( ) {
abort ( "'getLEB' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "getFunctionTables" ) ) Module [ "getFunctionTables" ] = ( function ( ) {
abort ( "'getFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "alignFunctionTables" ) ) Module [ "alignFunctionTables" ] = ( function ( ) {
abort ( "'alignFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "registerFunctions" ) ) Module [ "registerFunctions" ] = ( function ( ) {
abort ( "'registerFunctions' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "addFunction" ) ) Module [ "addFunction" ] = ( function ( ) {
abort ( "'addFunction' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "removeFunction" ) ) Module [ "removeFunction" ] = ( function ( ) {
abort ( "'removeFunction' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "getFuncWrapper" ) ) Module [ "getFuncWrapper" ] = ( function ( ) {
abort ( "'getFuncWrapper' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "prettyPrint" ) ) Module [ "prettyPrint" ] = ( function ( ) {
abort ( "'prettyPrint' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "makeBigInt" ) ) Module [ "makeBigInt" ] = ( function ( ) {
abort ( "'makeBigInt' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "dynCall" ) ) Module [ "dynCall" ] = ( function ( ) {
abort ( "'dynCall' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "getCompilerSetting" ) ) Module [ "getCompilerSetting" ] = ( function ( ) {
abort ( "'getCompilerSetting' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "stackSave" ) ) Module [ "stackSave" ] = ( function ( ) {
abort ( "'stackSave' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "stackRestore" ) ) Module [ "stackRestore" ] = ( function ( ) {
abort ( "'stackRestore' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "stackAlloc" ) ) Module [ "stackAlloc" ] = ( function ( ) {
abort ( "'stackAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
Module [ "establishStackSpace" ] = establishStackSpace ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "print" ) ) Module [ "print" ] = ( function ( ) {
abort ( "'print' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "printErr" ) ) Module [ "printErr" ] = ( function ( ) {
abort ( "'printErr' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "getTempRet0" ) ) Module [ "getTempRet0" ] = ( function ( ) {
abort ( "'getTempRet0' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "setTempRet0" ) ) Module [ "setTempRet0" ] = ( function ( ) {
abort ( "'setTempRet0' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "callMain" ) ) Module [ "callMain" ] = ( function ( ) {
abort ( "'callMain' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "abort" ) ) Module [ "abort" ] = ( function ( ) {
abort ( "'abort' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "Pointer_stringify" ) ) Module [ "Pointer_stringify" ] = ( function ( ) {
abort ( "'Pointer_stringify' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "warnOnce" ) ) Module [ "warnOnce" ] = ( function ( ) {
abort ( "'warnOnce' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} ) ;
Module [ "writeStackCookie" ] = writeStackCookie ;
Module [ "checkStackCookie" ] = checkStackCookie ;
Module [ "abortStackOverflow" ] = abortStackOverflow ;
Module [ "PThread" ] = PThread ;
Module [ "ExitStatus" ] = ExitStatus ;
Module [ "tempDoublePtr" ] = tempDoublePtr ;
Module [ "wasmMemory" ] = wasmMemory ;
Module [ "_pthread_self" ] = _pthread _self ;
Module [ "ExitStatus" ] = ExitStatus ;
Module [ "tempDoublePtr" ] = tempDoublePtr ;
Module [ "dynCall_ii" ] = dynCall _ii ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "ALLOC_NORMAL" ) ) Object . defineProperty ( Module , "ALLOC_NORMAL" , {
configurable : true ,
get : ( function ( ) {
abort ( "'ALLOC_NORMAL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} )
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "ALLOC_STACK" ) ) Object . defineProperty ( Module , "ALLOC_STACK" , {
configurable : true ,
get : ( function ( ) {
abort ( "'ALLOC_STACK' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} )
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "ALLOC_DYNAMIC" ) ) Object . defineProperty ( Module , "ALLOC_DYNAMIC" , {
configurable : true ,
get : ( function ( ) {
abort ( "'ALLOC_DYNAMIC' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} )
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "ALLOC_NONE" ) ) Object . defineProperty ( Module , "ALLOC_NONE" , {
configurable : true ,
get : ( function ( ) {
abort ( "'ALLOC_NONE' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)" ) ;
} )
} ) ;
if ( ! Object . getOwnPropertyDescriptor ( Module , "calledRun" ) ) Object . defineProperty ( Module , "calledRun" , {
configurable : true ,
get : ( function ( ) {
abort ( "'calledRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you" ) ;
} )
} ) ;
var calledRun ;
function ExitStatus ( status ) {
this . name = "ExitStatus" ;
this . message = "Program terminated with exit(" + status + ")" ;
this . status = status ;
}
var calledMain = false ;
dependenciesFulfilled = function runCaller ( ) {
if ( ! calledRun ) run ( ) ;
if ( ! calledRun ) dependenciesFulfilled = runCaller ;
} ;
function callMain ( args ) {
assert ( runDependencies == 0 , 'cannot call main when async dependencies remain! (listen on Module["onRuntimeInitialized"])' ) ;
assert ( _ _ATPRERUN _ _ . length == 0 , "cannot call main when preRun functions remain to be called" ) ;
var entryFunction = Module [ "_main" ] ;
args = args || [ ] ;
var argc = args . length + 1 ;
var argv = stackAlloc ( ( argc + 1 ) * 4 ) ;
GROWABLE _HEAP _STORE _I32 ( argv | 0 , allocateUTF8OnStack ( thisProgram ) ) ;
for ( var i = 1 ; i < argc ; i ++ ) {
GROWABLE _HEAP _STORE _I32 ( ( ( argv >> 2 ) + i ) * 4 | 0 , allocateUTF8OnStack ( args [ i - 1 ] ) ) ;
}
GROWABLE _HEAP _STORE _I32 ( ( ( argv >> 2 ) + argc ) * 4 | 0 , 0 ) ;
try {
var ret = entryFunction ( argc , argv ) ;
exit ( ret , true ) ;
} catch ( e ) {
if ( e instanceof ExitStatus ) {
return ;
} else if ( e == "SimulateInfiniteLoop" ) {
noExitRuntime = true ;
return ;
} else {
var toLog = e ;
if ( e && typeof e === "object" && e . stack ) {
toLog = [ e , e . stack ] ;
}
err ( "exception thrown: " + toLog ) ;
quit _ ( 1 , e ) ;
}
} finally {
calledMain = true ;
}
}
function run ( args ) {
args = args || arguments _ ;
if ( runDependencies > 0 ) {
return ;
}
writeStackCookie ( ) ;
preRun ( ) ;
if ( runDependencies > 0 ) return ;
function doRun ( ) {
if ( calledRun ) return ;
calledRun = true ;
if ( ABORT ) return ;
initRuntime ( ) ;
preMain ( ) ;
if ( Module [ "onRuntimeInitialized" ] ) Module [ "onRuntimeInitialized" ] ( ) ;
if ( shouldRunNow ) callMain ( args ) ;
postRun ( ) ;
}
if ( Module [ "setStatus" ] ) {
Module [ "setStatus" ] ( "Running..." ) ;
setTimeout ( ( function ( ) {
setTimeout ( ( function ( ) {
Module [ "setStatus" ] ( "" ) ;
} ) , 1 ) ;
doRun ( ) ;
} ) , 1 ) ;
} else {
doRun ( ) ;
}
checkStackCookie ( ) ;
}
Module [ "run" ] = run ;
function checkUnflushedContent ( ) {
var print = out ;
var printErr = err ;
var has = false ;
out = err = ( function ( x ) {
has = true ;
} ) ;
try {
var flush = Module [ "_fflush" ] ;
if ( flush ) flush ( 0 ) ;
[ "stdout" , "stderr" ] . forEach ( ( function ( name ) {
var info = FS . analyzePath ( "/dev/" + name ) ;
if ( ! info ) return ;
var stream = info . object ;
var rdev = stream . rdev ;
var tty = TTY . ttys [ rdev ] ;
if ( tty && tty . output && tty . output . length ) {
has = true ;
}
} ) ) ;
} catch ( e ) { }
out = print ;
err = printErr ;
if ( has ) {
warnOnce ( "stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc." ) ;
}
}
function exit ( status , implicit ) {
checkUnflushedContent ( ) ;
if ( implicit && noExitRuntime && status === 0 ) {
return ;
}
if ( noExitRuntime ) {
if ( ! implicit ) {
err ( "program exited (with status: " + status + "), but EXIT_RUNTIME is not set, so halting execution but not exiting the runtime or preventing further async execution (build with EXIT_RUNTIME=1, if you want a true shutdown)" ) ;
}
} else {
PThread . terminateAllThreads ( ) ;
ABORT = true ;
EXITSTATUS = status ;
exitRuntime ( ) ;
if ( Module [ "onExit" ] ) Module [ "onExit" ] ( status ) ;
}
quit _ ( status , new ExitStatus ( status ) ) ;
}
if ( Module [ "preInit" ] ) {
if ( typeof Module [ "preInit" ] == "function" ) Module [ "preInit" ] = [ Module [ "preInit" ] ] ;
while ( Module [ "preInit" ] . length > 0 ) {
Module [ "preInit" ] . pop ( ) ( ) ;
}
}
var shouldRunNow = true ;
if ( Module [ "noInitialRun" ] ) shouldRunNow = false ;
if ( ! ENVIRONMENT _IS _PTHREAD ) noExitRuntime = true ;
if ( ! ENVIRONMENT _IS _PTHREAD ) run ( ) ;