diff --git a/a452417be70a92d7cbdf.worker.js.map b/a452417be70a92d7cbdf.worker.js.map deleted file mode 100644 index d7a6074..0000000 --- a/a452417be70a92d7cbdf.worker.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../webpack/bootstrap","../node_modules/axios/lib/utils.js","../node_modules/@babel/runtime/regenerator/index.js","../node_modules/process/browser.js","../node_modules/path-browserify/index.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/defaults.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/cancel/Cancel.js","api/Diablo.wasm","api/Diablo.jscc","api/DiabloSpawn.wasm","api/DiabloSpawn.jscc","../node_modules/axios/index.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/axios/lib/axios.js","../node_modules/axios/node_modules/is-buffer/index.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/core/enhanceError.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","api/game.worker.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","isBuffer","toString","isArray","val","isObject","isFunction","forEach","obj","fn","length","isArrayBuffer","isFormData","FormData","isArrayBufferView","ArrayBuffer","isView","buffer","isString","isNumber","isUndefined","isDate","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","navigator","product","window","document","merge","result","assignValue","arguments","deepMerge","extend","a","b","thisArg","trim","str","replace","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","setTimeout","e","this","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","concat","drainQueue","timeout","len","run","marker","runClearTimeout","Item","array","noop","nextTick","args","Array","push","apply","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","normalizeArray","parts","allowAboveRoot","up","last","splice","unshift","filter","xs","f","res","resolve","resolvedPath","resolvedAbsolute","path","TypeError","charAt","split","join","normalize","isAbsolute","trailingSlash","substr","paths","slice","index","relative","from","to","arr","start","end","fromParts","toParts","Math","min","samePartsLength","outputParts","sep","delimiter","dirname","code","charCodeAt","hasRoot","matchedSlash","basename","ext","extname","startDot","startPart","preDotState","utils","encode","encodeURIComponent","url","params","paramsSerializer","serializedParams","v","toISOString","JSON","stringify","hashmarkIndex","indexOf","__CANCEL__","normalizeHeaderName","DEFAULT_CONTENT_TYPE","Content-Type","setContentTypeIfUnset","headers","defaults","adapter","XMLHttpRequest","getDefaultAdapter","transformRequest","data","transformResponse","parse","xsrfCookieName","xsrfHeaderName","maxContentLength","validateStatus","status","common","Accept","method","settle","buildURL","parseHeaders","isURLSameOrigin","createError","config","Promise","reject","requestData","requestHeaders","request","auth","username","password","Authorization","btoa","open","toUpperCase","onreadystatechange","readyState","responseURL","responseHeaders","getAllResponseHeaders","response","responseType","responseText","statusText","onabort","onerror","ontimeout","cookies","xsrfValue","withCredentials","read","undefined","toLowerCase","setRequestHeader","onDownloadProgress","addEventListener","onUploadProgress","upload","cancelToken","promise","then","cancel","abort","send","enhanceError","message","error","config1","config2","prop","Cancel","Diablo","_scriptDir","currentScript","src","Module","moduleOverrides","toThrow","ENVIRONMENT_IS_NODE","ENVIRONMENT_IS_SHELL","ENVIRONMENT_IS_WEB","ENVIRONMENT_IS_WORKER","importScripts","nodeFS","nodePath","scriptDirectory","locateFile","__dirname","filename","binary","ret","Uint8Array","assert","ex","ExitStatus","reason","readbuffer","scriptArgs","quit","self","location","href","xhr","onload","out","console","log","print","err","printErr","warn","STACK_ALIGN","alignMemory","size","factor","ceil","asm2wasmImports","f64-rem","x","y","debugger","ABORT","condition","text","Pointer_stringify","ptr","hasUtf","HEAPU8","curr","String","fromCharCode","subarray","UTF8ArrayToString","UTF8ToString","UTF8Decoder","TextDecoder","u8Array","idx","endPtr","decode","u0","u1","u2","u3","u4","ch","HEAP8","HEAP32","HEAPF32","STATICTOP","STACK_BASE","STACKTOP","DYNAMIC_BASE","DYNAMICTOP_PTR","WASM_PAGE_SIZE","ASMJS_PAGE_SIZE","MIN_TOTAL_MEMORY","alignUp","multiple","updateGlobalBuffer","buf","updateGlobalBufferViews","Int8Array","Int16Array","Int32Array","Uint16Array","Uint32Array","Float32Array","Float64Array","transfer","oldHEAP8","set","_emscripten_replace_memory","Function","getOwnPropertyDescriptor","byteLength","TOTAL_STACK","TOTAL_MEMORY","callRuntimeCallbacks","callbacks","callback","shift","func","arg","WebAssembly","Memory","initial","__ATPRERUN__","__ATINIT__","__ATMAIN__","__ATEXIT__","__ATPOSTRUN__","runtimeInitialized","addOnPostRun","cb","runDependencies","runDependencyWatcher","dependenciesFulfilled","dataURIPrefix","isDataURI","startsWith","wasmTextFile","wasmBinaryFile","asmjsCodeFile","info","global","asm2wasm","parent","getBinary","doNativeWasm","providedBuffer","receiveInstance","instance","memory","newBuffer","oldBuffer","oldView","mergeMemory","id","clearInterval","removeRunDependency","NaN","Infinity","receiveInstantiatedSource","output","instantiateArrayBuffer","receiver","fetch","credentials","catch","instantiate","instantiateStreaming","asmjsReallocBuffer","finalMethod","oldSize","grow","wasmReallocBuffer","TABLE_SIZE","MAX_TABLE_SIZE","Table","maximum","element","integrateWasmJS","STATIC_BASE","__GLOBAL__sub_I_msgcmd_cpp","__ZSt18uncaught_exceptionv","uncaught_exception","EXCEPTIONS","caught","infos","deAdjust","adjusted","addRef","refcount","decRef","rethrown","destructor","___cxa_free_exception","clearRef","_free","___cxa_find_matching_catch","thrown","setTempRet0","throwntype","type","typeArray","_malloc","SYSCALLS","varargs","getStr","get64","low","high","getZero","__exit","implicit","initialStackTop","exit","PTHREAD_SPECIFIC","PTHREAD_SPECIFIC_NEXT_KEY","ERRNO_CODES","EPERM","ENOENT","ESRCH","EINTR","EIO","ENXIO","E2BIG","ENOEXEC","EBADF","ECHILD","EAGAIN","EWOULDBLOCK","ENOMEM","EACCES","EFAULT","ENOTBLK","EBUSY","EEXIST","EXDEV","ENODEV","ENOTDIR","EISDIR","EINVAL","ENFILE","EMFILE","ENOTTY","ETXTBSY","EFBIG","ENOSPC","ESPIPE","EROFS","EMLINK","EPIPE","EDOM","ERANGE","ENOMSG","EIDRM","ECHRNG","EL2NSYNC","EL3HLT","EL3RST","ELNRNG","EUNATCH","ENOCSI","EL2HLT","EDEADLK","ENOLCK","EBADE","EBADR","EXFULL","ENOANO","EBADRQC","EBADSLT","EDEADLOCK","EBFONT","ENOSTR","ENODATA","ETIME","ENOSR","ENONET","ENOPKG","EREMOTE","ENOLINK","EADV","ESRMNT","ECOMM","EPROTO","EMULTIHOP","EDOTDOT","EBADMSG","ENOTUNIQ","EBADFD","EREMCHG","ELIBACC","ELIBBAD","ELIBSCN","ELIBMAX","ELIBEXEC","ENOSYS","ENOTEMPTY","ENAMETOOLONG","ELOOP","EOPNOTSUPP","EPFNOSUPPORT","ECONNRESET","ENOBUFS","EAFNOSUPPORT","EPROTOTYPE","ENOTSOCK","ENOPROTOOPT","ESHUTDOWN","ECONNREFUSED","EADDRINUSE","ECONNABORTED","ENETUNREACH","ENETDOWN","ETIMEDOUT","EHOSTDOWN","EHOSTUNREACH","EINPROGRESS","EALREADY","EDESTADDRREQ","EMSGSIZE","EPROTONOSUPPORT","ESOCKTNOSUPPORT","EADDRNOTAVAIL","ENETRESET","EISCONN","ENOTCONN","ETOOMANYREFS","EUSERS","EDQUOT","ESTALE","ENOTSUP","ENOMEDIUM","EILSEQ","EOVERFLOW","ECANCELED","ENOTRECOVERABLE","EOWNERDEAD","ESTRPIPE","staticAlloc","asmGlobalArg","asmLibraryArg","enlargeMemory","PAGE_MULTIPLE","LIMIT","OLD_TOTAL_MEMORY","max","replacement","getTotalMemory","abortOnCannotGrowMemory","invoke_i","sp","stackSave","stackRestore","invoke_ii","a1","invoke_iii","a2","invoke_iiii","a3","invoke_iiiii","a4","invoke_iiiiii","a5","invoke_ji","invoke_v","invoke_vi","invoke_vii","invoke_viii","invoke_viiii","invoke_viiiii","invoke_viji","___assert_fail","line","___cxa_allocate_exception","___cxa_begin_catch","___cxa_end_catch","pop","___cxa_find_matching_catch_2","___cxa_find_matching_catch_3","___cxa_throw","___lock","___resumeException","___setErrNo","___syscall140","which","stream","getStreamFromFD","offset_low","whence","offset","FS","llseek","position","getdents","ErrnoError","errno","___syscall146","iov","iovcnt","buffers","printChar","j","___syscall54","___syscall6","close","___unlock","_abort","_api_close_keyboard","DApi","close_keyboard","_api_create_sound_float","samples","channels","rate","create_sound","_api_delete_sound","delete_sound","_api_draw_begin","draw_begin","_api_draw_belt","items","draw_belt","_api_draw_blit","w","h","draw_blit","_api_draw_clip_text","x0","y0","x1","y1","draw_clip_text","_api_draw_end","draw_end","_api_draw_text","color","draw_text","_api_duplicate_sound","srcId","duplicate_sound","_api_open_keyboard","open_keyboard","_api_play_sound","volume","pan","loop","play_sound","_api_set_cursor","set_cursor","_api_set_volume","set_volume","_api_stop_sound","stop_sound","_emscripten_memcpy_big","dest","num","_exit","_exit_error","exit_error","_get_file_contents","get_file_contents","_get_file_size","get_file_size","_pthread_getspecific","_pthread_key_create","_pthread_once","seen","_pthread_setspecific","_put_file_contents","put_file_contents","_remove_file","remove_file","_show_alert","alert","_time","Date","now","asm","doRun","postRun","preRun","what","old","constructor","runCaller","DiabloSpawn","runtime","Op","hasOwn","$Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","state","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","done","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","AsyncIterator","previousPromise","callInvokeWithMethodAndArg","invoke","__await","unwrapped","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","iter","keys","reverse","skipTempReset","prev","stop","rootRecord","rval","exception","handle","loc","hasCatch","hasFinally","finallyEntry","complete","finish","delegateYield","regeneratorRuntime","accidentalStrictMode","Axios","mergeConfig","createInstance","defaultConfig","axios","instanceConfig","CancelToken","isCancel","all","promises","spread","default","InterceptorManager","dispatchRequest","interceptors","chain","interceptor","fulfilled","rejected","getUri","handlers","use","eject","transformData","isAbsoluteURL","combineURLs","throwIfCancellationRequested","throwIfRequested","baseURL","fns","normalizedName","isAxiosError","toJSON","description","number","fileName","lineNumber","columnNumber","stack","ignoreDuplicateOf","parsed","originURL","msie","test","userAgent","urlParsingNode","createElement","resolveURL","setAttribute","protocol","host","search","hash","hostname","port","pathname","requestURL","write","expires","domain","secure","cookie","toGMTString","match","RegExp","decodeURIComponent","remove","relativeURL","executor","resolvePromise","token","source","_slicedToArray","_arrayWithHoles","_arr","_n","_d","_e","_s","_i","_iterableToArrayLimit","_nonIterableRest","_toConsumableArray","arr2","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","DiabloSize","SpawnSize","worker","canvas","imageData","files","renderBatch","drawBelt","postMessage","action","delete","DApi_renderLegacy","images","clip","belt","map","_ref","batch","DApi_renderOffscreen","save","font","putImageData","beginPath","rect","g","fillStyle","fillText","restore","bitmap","transferToImageBitmap","audioBatch","audioTransfer","maxSoundId","maxBatchId","_len","_key","_len2","_key2","wasm","call_api","_wasm","_len3","_key3","progress","loaded","total","readFile","file","reader","FileReader","readAsArrayBuffer","initWasm","_callee","spawn","regenerator_default","_context","SpawnBinary","DiabloBinary","SpawnModule","DiabloModule","wasmBinary","ready","_callee2","mpq","offscreen","mpqLoaded","mpqTotal","wasmLoaded","wasmTotal","wasmWeight","updateProgress","loadWasm","loadMpq","_ref3","_ref4","_context2","OffscreenCanvas","getContext","createImageData","assign","_DApi_Init","floor","performance","setInterval","_ref2","init_game"],"mappings":"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","file":"a452417be70a92d7cbdf.worker.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/diabloweb/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 35);\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\nvar isBuffer = require('is-buffer');\n/*global toString:true*/\n// utils is a library of generic helper functions non-specific to axios\n\n\nvar toString = Object.prototype.toString;\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\n\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\n\n\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\n\n\nfunction isFormData(val) {\n return typeof FormData !== 'undefined' && val instanceof FormData;\n}\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\n\n\nfunction isArrayBufferView(val) {\n var result;\n\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && val.buffer instanceof ArrayBuffer;\n }\n\n return result;\n}\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\n\n\nfunction isString(val) {\n return typeof val === 'string';\n}\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\n\n\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\n\n\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\n\n\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\n\n\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\n\n\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\n\n\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\n\n\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\n\n\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\n\n\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\n\n\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\n\n\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || navigator.product === 'NativeScript' || navigator.product === 'NS')) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\n\n\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n } // Force an array if not already something iterable\n\n\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\n\n\nfunction merge()\n/* obj1, obj2, obj3, ... */\n{\n var result = {};\n\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\n}\n/**\n * Function equal to merge with the difference being that no reference\n * to original objects is kept.\n *\n * @see merge\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\n\n\nfunction deepMerge()\n/* obj1, obj2, obj3, ... */\n{\n var result = {};\n\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = deepMerge(result[key], val);\n } else if (typeof val === 'object') {\n result[key] = deepMerge({}, val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\n}\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\n\n\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n deepMerge: deepMerge,\n extend: extend,\n trim: trim\n};","module.exports = require(\"regenerator-runtime\");\n","// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\n\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\n\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\n\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n return 0;\n};","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n } // if the path is allowed to go above the root, restore leading ..s\n\n\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n} // path.resolve([from ...], to)\n// posix version\n\n\nexports.resolve = function () {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = i >= 0 ? arguments[i] : process.cwd(); // Skip empty and invalid entries\n\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n } // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n // Normalize the path\n\n\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function (p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n return (resolvedAbsolute ? '/' : '') + resolvedPath || '.';\n}; // path.normalize(path)\n// posix version\n\n\nexports.normalize = function (path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/'; // Normalize the path\n\n path = normalizeArray(filter(path.split('/'), function (p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n}; // posix version\n\n\nexports.isAbsolute = function (path) {\n return path.charAt(0) === '/';\n}; // posix version\n\n\nexports.join = function () {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function (p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n\n return p;\n }).join('/'));\n}; // path.relative(from, to)\n// posix version\n\n\nexports.relative = function (from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47\n /*/*/\n ;\n var end = -1;\n var matchedSlash = true;\n\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n} // Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\n\n\nexports.basename = function (path, ext) {\n var f = basename(path);\n\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true; // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n\n var preDotState = 0;\n\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n\n continue;\n }\n\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n\n if (code === 46\n /*.*/\n ) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n\n return path.slice(startDot, end);\n};\n\nfunction filter(xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n\n return res;\n} // String.prototype.substr - negative index don't work in IE8\n\n\nvar substr = 'ab'.substr(-1) === 'b' ? function (str, start, len) {\n return str.substr(start, len);\n} : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n return fn.apply(thisArg, args);\n };\n};","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).replace(/%40/gi, '@').replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n}\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\n\n\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};","'use strict';\n\nvar utils = require('./utils');\n\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter; // Only Node.JS has a process variable that is of [[Class]] process\n\n if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n } else if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n }\n\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) || utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data)) {\n return data;\n }\n\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n\n return data;\n }],\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) {\n /* Ignore */\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n maxContentLength: -1,\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\nmodule.exports = defaults;","'use strict';\n\nvar utils = require('./../utils');\n\nvar settle = require('./../core/settle');\n\nvar buildURL = require('./../helpers/buildURL');\n\nvar parseHeaders = require('./../helpers/parseHeaders');\n\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\n\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest(); // HTTP basic authentication\n\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true); // Set the request timeout in MS\n\n request.timeout = config.timeout; // Listen for ready state\n\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n } // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n\n\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n } // Prepare the response\n\n\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n settle(resolve, reject, response); // Clean up request\n\n request = null;\n }; // Handle browser request cancellation (as opposed to a manual cancellation)\n\n\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Handle low level network errors\n\n\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request)); // Clean up request\n\n request = null;\n }; // Handle timeout\n\n\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies'); // Add xsrf header\n\n\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n } // Add headers to the request\n\n\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n } // Add withCredentials to request if needed\n\n\n if (config.withCredentials) {\n request.withCredentials = true;\n } // Add responseType to request if needed\n\n\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n } // Handle progress if needed\n\n\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n } // Not all browsers support upload events\n\n\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel); // Clean up request\n\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n } // Send the request\n\n\n request.send(requestData);\n });\n};","'use strict';\n\nvar enhanceError = require('./enhanceError');\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\n\n\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};","'use strict';\n\nvar utils = require('../utils');\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\n\n\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n utils.forEach(['url', 'method', 'params', 'data'], function valueFromConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n }\n });\n utils.forEach(['headers', 'auth', 'proxy'], function mergeDeepProperties(prop) {\n if (utils.isObject(config2[prop])) {\n config[prop] = utils.deepMerge(config1[prop], config2[prop]);\n } else if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (utils.isObject(config1[prop])) {\n config[prop] = utils.deepMerge(config1[prop]);\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n utils.forEach(['baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer', 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'maxContentLength', 'validateStatus', 'maxRedirects', 'httpAgent', 'httpsAgent', 'cancelToken', 'socketPath'], function defaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n return config;\n};","'use strict';\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\n\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\nmodule.exports = Cancel;","module.exports = __webpack_public_path__ + \"static/media/Diablo.ca302877.wasm\";","\r\nvar Diablo = (function() {\r\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\r\n return (\r\nfunction(Diablo) {\r\n Diablo = Diablo || {};\r\n\r\nvar Module=typeof Diablo!==\"undefined\"?Diablo:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}Module[\"arguments\"]=[];Module[\"thisProgram\"]=\"./this.program\";Module[\"quit\"]=(function(status,toThrow){throw toThrow});Module[\"preRun\"]=[];Module[\"postRun\"]=[];var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof require===\"function\"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}else{return scriptDirectory+path}}if(ENVIRONMENT_IS_NODE){scriptDirectory=__dirname+\"/\";var nodeFS;var nodePath;Module[\"read\"]=function shell_read(filename,binary){var ret;if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);ret=nodeFS[\"readFileSync\"](filename);return binary?ret:ret.toString()};Module[\"readBinary\"]=function readBinary(filename){var ret=Module[\"read\"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){Module[\"thisProgram\"]=process[\"argv\"][1].replace(/\\\\/g,\"/\")}Module[\"arguments\"]=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));process[\"on\"](\"unhandledRejection\",(function(reason,p){process[\"exit\"](1)}));Module[\"quit\"]=(function(status){process[\"exit\"](status)});Module[\"inspect\"]=(function(){return\"[Emscripten Module object]\"})}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){Module[\"read\"]=function shell_read(f){return read(f)}}Module[\"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\"){Module[\"arguments\"]=scriptArgs}else if(typeof arguments!=\"undefined\"){Module[\"arguments\"]=arguments}if(typeof quit===\"function\"){Module[\"quit\"]=(function(status){quit(status)})}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WEB){if(document.currentScript){scriptDirectory=document.currentScript.src}}else{scriptDirectory=self.location.href}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.split(\"/\").slice(0,-1).join(\"/\")+\"/\"}else{scriptDirectory=\"\"}Module[\"read\"]=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){Module[\"readBinary\"]=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}Module[\"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)};Module[\"setWindowTitle\"]=(function(title){document.title=title})}else{}var out=Module[\"print\"]||(typeof console!==\"undefined\"?console.log.bind(console):typeof print!==\"undefined\"?print:null);var err=Module[\"printErr\"]||(typeof printErr!==\"undefined\"?printErr:typeof console!==\"undefined\"&&console.warn.bind(console)||out);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var STACK_ALIGN=16;function staticAlloc(size){var ret=STATICTOP;STATICTOP=STATICTOP+size+15&-16;return ret}function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;var ret=size=Math.ceil(size/factor)*factor;return ret}var asm2wasmImports={\"f64-rem\":(function(x,y){return x%y}),\"debugger\":(function(){debugger})};var functionPointers=new Array(0);var GLOBAL_BASE=1024;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function Pointer_stringify(ptr,length){if(length===0||!ptr)return\"\";var hasUtf=0;var t;var i=0;while(1){t=HEAPU8[ptr+i>>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret=\"\";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return UTF8ToString(ptr)}var UTF8Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str=\"\";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}var UTF16Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;var WASM_PAGE_SIZE=65536;var ASMJS_PAGE_SIZE=16777216;var MIN_TOTAL_MEMORY=16777216;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBuffer(buf){Module[\"buffer\"]=buffer=buf}function updateGlobalBufferViews(){Module[\"HEAP8\"]=HEAP8=new Int8Array(buffer);Module[\"HEAP16\"]=HEAP16=new Int16Array(buffer);Module[\"HEAP32\"]=HEAP32=new Int32Array(buffer);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buffer);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buffer);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buffer);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buffer);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){abort(\"Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value \"+TOTAL_MEMORY+\", (2) compile with -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 \")}if(!Module[\"reallocBuffer\"])Module[\"reallocBuffer\"]=(function(size){var ret;try{if(ArrayBuffer.transfer){ret=ArrayBuffer.transfer(buffer,size)}else{var oldHEAP8=HEAP8;ret=new ArrayBuffer(size);var temp=new Int8Array(ret);temp.set(oldHEAP8)}}catch(e){return false}var success=_emscripten_replace_memory(ret);if(!success)return false;return ret});function enlargeMemory(){var PAGE_MULTIPLE=Module[\"usingWasm\"]?WASM_PAGE_SIZE:ASMJS_PAGE_SIZE;var LIMIT=2147483648-PAGE_MULTIPLE;if(HEAP32[DYNAMICTOP_PTR>>2]>LIMIT){return false}var OLD_TOTAL_MEMORY=TOTAL_MEMORY;TOTAL_MEMORY=Math.max(TOTAL_MEMORY,MIN_TOTAL_MEMORY);while(TOTAL_MEMORY>2]){if(TOTAL_MEMORY<=536870912){TOTAL_MEMORY=alignUp(2*TOTAL_MEMORY,PAGE_MULTIPLE)}else{TOTAL_MEMORY=Math.min(alignUp((3*TOTAL_MEMORY+2147483648)/4,PAGE_MULTIPLE),LIMIT)}}var replacement=Module[\"reallocBuffer\"](TOTAL_MEMORY);if(!replacement||replacement.byteLength!=TOTAL_MEMORY){TOTAL_MEMORY=OLD_TOTAL_MEMORY;return false}updateGlobalBuffer(replacement);updateGlobalBufferViews();return true}var byteLength;try{byteLength=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,\"byteLength\").get);byteLength(new ArrayBuffer(4))}catch(e){byteLength=(function(buffer){return buffer.byteLength})}var TOTAL_STACK=Module[\"TOTAL_STACK\"]||5242880;var TOTAL_MEMORY=Module[\"TOTAL_MEMORY\"]||134217728;if(TOTAL_MEMORY0){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;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}function integrateWasmJS(){var wasmTextFile=\"Diablo.wast\";var wasmBinaryFile=\"Diablo.wasm\";var asmjsCodeFile=\"Diablo.temp.asm.js\";if(!isDataURI(wasmTextFile)){wasmTextFile=locateFile(wasmTextFile)}if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}if(!isDataURI(asmjsCodeFile)){asmjsCodeFile=locateFile(asmjsCodeFile)}var wasmPageSize=64*1024;var info={\"global\":null,\"env\":null,\"asm2wasm\":asm2wasmImports,\"parent\":Module};var exports=null;function mergeMemory(newBuffer){var oldBuffer=Module[\"buffer\"];if(newBuffer.byteLength0);info.refcount--;if(info.refcount===0&&!info.rethrown){if(info.destructor){Module[\"dynCall_vi\"](info.destructor,ptr)}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};function ___cxa_begin_catch(ptr){var info=EXCEPTIONS.infos[ptr];if(info&&!info.caught){info.caught=true;__ZSt18uncaught_exceptionv.uncaught_exception--}if(info)info.rethrown=false;EXCEPTIONS.caught.push(ptr);EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));return ptr}function ___cxa_free_exception(ptr){try{return _free(ptr)}catch(e){}}function ___cxa_end_catch(){Module[\"setThrew\"](0);var ptr=EXCEPTIONS.caught.pop();if(ptr){EXCEPTIONS.decRef(EXCEPTIONS.deAdjust(ptr));EXCEPTIONS.last=0}}function ___cxa_find_matching_catch_2(){return ___cxa_find_matching_catch.apply(null,arguments)}function ___cxa_find_matching_catch_3(){return ___cxa_find_matching_catch.apply(null,arguments)}function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr}throw ptr}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(setTempRet0(0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(setTempRet0(0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module[\"___cxa_is_pointer_type\"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i>2];info.adjusted=thrown;return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};EXCEPTIONS.last=ptr;if(!(\"uncaught_exception\"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr}function ___lock(){}var SYSCALLS={varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),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)})};function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;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}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.get(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();var ret=0;if(!___syscall146.buffers){___syscall146.buffers=[null,[],[]];___syscall146.printChar=(function(stream,curr){var buffer=___syscall146.buffers[stream];assert(buffer);if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}})}for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Module[\"dynCall_v\"](func);_pthread_once.seen[ptr]=1}function _pthread_setspecific(key,value){if(!(key in PTHREAD_SPECIFIC)){return ERRNO_CODES.EINVAL}PTHREAD_SPECIFIC[key]=value;return 0}function ___setErrNo(value){if(Module[\"___errno_location\"])HEAP32[Module[\"___errno_location\"]()>>2]=value;return value}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}DYNAMICTOP_PTR=staticAlloc(4);STACK_BASE=STACKTOP=alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;Module[\"wasmTableSize\"]=600;Module[\"wasmMaxTableSize\"]=600;function invoke_i(index){var sp=stackSave();try{return Module[\"dynCall_i\"](index)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return Module[\"dynCall_ii\"](index,a1)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return Module[\"dynCall_iii\"](index,a1,a2)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return Module[\"dynCall_iiii\"](index,a1,a2,a3)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return Module[\"dynCall_iiiii\"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return Module[\"dynCall_iiiiii\"](index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_ji(index,a1){var sp=stackSave();try{return Module[\"dynCall_ji\"](index,a1)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_v(index){var sp=stackSave();try{Module[\"dynCall_v\"](index)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{Module[\"dynCall_vi\"](index,a1)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{Module[\"dynCall_vii\"](index,a1,a2)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{Module[\"dynCall_viii\"](index,a1,a2,a3)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{Module[\"dynCall_viiii\"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{Module[\"dynCall_viiiii\"](index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viji(index,a1,a2,a3,a4){var sp=stackSave();try{Module[\"dynCall_viji\"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}Module.asmGlobalArg={};Module.asmLibraryArg={\"abort\":abort,\"enlargeMemory\":enlargeMemory,\"getTotalMemory\":getTotalMemory,\"abortOnCannotGrowMemory\":abortOnCannotGrowMemory,\"invoke_i\":invoke_i,\"invoke_ii\":invoke_ii,\"invoke_iii\":invoke_iii,\"invoke_iiii\":invoke_iiii,\"invoke_iiiii\":invoke_iiiii,\"invoke_iiiiii\":invoke_iiiiii,\"invoke_ji\":invoke_ji,\"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_viji\":invoke_viji,\"___assert_fail\":___assert_fail,\"___cxa_allocate_exception\":___cxa_allocate_exception,\"___cxa_begin_catch\":___cxa_begin_catch,\"___cxa_end_catch\":___cxa_end_catch,\"___cxa_find_matching_catch_2\":___cxa_find_matching_catch_2,\"___cxa_find_matching_catch_3\":___cxa_find_matching_catch_3,\"___cxa_free_exception\":___cxa_free_exception,\"___cxa_throw\":___cxa_throw,\"___lock\":___lock,\"___resumeException\":___resumeException,\"___setErrNo\":___setErrNo,\"___syscall140\":___syscall140,\"___syscall146\":___syscall146,\"___syscall54\":___syscall54,\"___syscall6\":___syscall6,\"___unlock\":___unlock,\"_abort\":_abort,\"_api_close_keyboard\":_api_close_keyboard,\"_api_create_sound_float\":_api_create_sound_float,\"_api_delete_sound\":_api_delete_sound,\"_api_draw_begin\":_api_draw_begin,\"_api_draw_belt\":_api_draw_belt,\"_api_draw_blit\":_api_draw_blit,\"_api_draw_clip_text\":_api_draw_clip_text,\"_api_draw_end\":_api_draw_end,\"_api_draw_text\":_api_draw_text,\"_api_duplicate_sound\":_api_duplicate_sound,\"_api_open_keyboard\":_api_open_keyboard,\"_api_play_sound\":_api_play_sound,\"_api_set_cursor\":_api_set_cursor,\"_api_set_volume\":_api_set_volume,\"_api_stop_sound\":_api_stop_sound,\"_emscripten_memcpy_big\":_emscripten_memcpy_big,\"_exit\":_exit,\"_exit_error\":_exit_error,\"_get_file_contents\":_get_file_contents,\"_get_file_size\":_get_file_size,\"_pthread_getspecific\":_pthread_getspecific,\"_pthread_key_create\":_pthread_key_create,\"_pthread_once\":_pthread_once,\"_pthread_setspecific\":_pthread_setspecific,\"_put_file_contents\":_put_file_contents,\"_remove_file\":_remove_file,\"_show_alert\":_show_alert,\"_time\":_time,\"DYNAMICTOP_PTR\":DYNAMICTOP_PTR,\"STACKTOP\":STACKTOP};var asm=Module[\"asm\"](Module.asmGlobalArg,Module.asmLibraryArg,buffer);Module[\"asm\"]=asm;var _DApi_Char=Module[\"_DApi_Char\"]=(function(){return Module[\"asm\"][\"_DApi_Char\"].apply(null,arguments)});var _DApi_Init=Module[\"_DApi_Init\"]=(function(){return Module[\"asm\"][\"_DApi_Init\"].apply(null,arguments)});var _DApi_Key=Module[\"_DApi_Key\"]=(function(){return Module[\"asm\"][\"_DApi_Key\"].apply(null,arguments)});var _DApi_Mouse=Module[\"_DApi_Mouse\"]=(function(){return Module[\"asm\"][\"_DApi_Mouse\"].apply(null,arguments)});var _DApi_Render=Module[\"_DApi_Render\"]=(function(){return Module[\"asm\"][\"_DApi_Render\"].apply(null,arguments)});var _DApi_SyncText=Module[\"_DApi_SyncText\"]=(function(){return Module[\"asm\"][\"_DApi_SyncText\"].apply(null,arguments)});var __GLOBAL__sub_I_msgcmd_cpp=Module[\"__GLOBAL__sub_I_msgcmd_cpp\"]=(function(){return Module[\"asm\"][\"__GLOBAL__sub_I_msgcmd_cpp\"].apply(null,arguments)});var ___cxa_can_catch=Module[\"___cxa_can_catch\"]=(function(){return Module[\"asm\"][\"___cxa_can_catch\"].apply(null,arguments)});var ___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=(function(){return Module[\"asm\"][\"___cxa_is_pointer_type\"].apply(null,arguments)});var ___em_js__api_close_keyboard=Module[\"___em_js__api_close_keyboard\"]=(function(){return Module[\"asm\"][\"___em_js__api_close_keyboard\"].apply(null,arguments)});var ___em_js__api_create_sound_float=Module[\"___em_js__api_create_sound_float\"]=(function(){return Module[\"asm\"][\"___em_js__api_create_sound_float\"].apply(null,arguments)});var ___em_js__api_delete_sound=Module[\"___em_js__api_delete_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_delete_sound\"].apply(null,arguments)});var ___em_js__api_draw_begin=Module[\"___em_js__api_draw_begin\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_begin\"].apply(null,arguments)});var ___em_js__api_draw_belt=Module[\"___em_js__api_draw_belt\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_belt\"].apply(null,arguments)});var ___em_js__api_draw_blit=Module[\"___em_js__api_draw_blit\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_blit\"].apply(null,arguments)});var ___em_js__api_draw_clip_text=Module[\"___em_js__api_draw_clip_text\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_clip_text\"].apply(null,arguments)});var ___em_js__api_draw_end=Module[\"___em_js__api_draw_end\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_end\"].apply(null,arguments)});var ___em_js__api_draw_text=Module[\"___em_js__api_draw_text\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_text\"].apply(null,arguments)});var ___em_js__api_duplicate_sound=Module[\"___em_js__api_duplicate_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_duplicate_sound\"].apply(null,arguments)});var ___em_js__api_open_keyboard=Module[\"___em_js__api_open_keyboard\"]=(function(){return Module[\"asm\"][\"___em_js__api_open_keyboard\"].apply(null,arguments)});var ___em_js__api_play_sound=Module[\"___em_js__api_play_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_play_sound\"].apply(null,arguments)});var ___em_js__api_set_cursor=Module[\"___em_js__api_set_cursor\"]=(function(){return Module[\"asm\"][\"___em_js__api_set_cursor\"].apply(null,arguments)});var ___em_js__api_set_volume=Module[\"___em_js__api_set_volume\"]=(function(){return Module[\"asm\"][\"___em_js__api_set_volume\"].apply(null,arguments)});var ___em_js__api_stop_sound=Module[\"___em_js__api_stop_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_stop_sound\"].apply(null,arguments)});var ___em_js__exit_error=Module[\"___em_js__exit_error\"]=(function(){return Module[\"asm\"][\"___em_js__exit_error\"].apply(null,arguments)});var ___em_js__get_file_contents=Module[\"___em_js__get_file_contents\"]=(function(){return Module[\"asm\"][\"___em_js__get_file_contents\"].apply(null,arguments)});var ___em_js__get_file_size=Module[\"___em_js__get_file_size\"]=(function(){return Module[\"asm\"][\"___em_js__get_file_size\"].apply(null,arguments)});var ___em_js__put_file_contents=Module[\"___em_js__put_file_contents\"]=(function(){return Module[\"asm\"][\"___em_js__put_file_contents\"].apply(null,arguments)});var ___em_js__remove_file=Module[\"___em_js__remove_file\"]=(function(){return Module[\"asm\"][\"___em_js__remove_file\"].apply(null,arguments)});var ___em_js__show_alert=Module[\"___em_js__show_alert\"]=(function(){return Module[\"asm\"][\"___em_js__show_alert\"].apply(null,arguments)});var ___em_js__trace_pop=Module[\"___em_js__trace_pop\"]=(function(){return Module[\"asm\"][\"___em_js__trace_pop\"].apply(null,arguments)});var ___em_js__trace_push=Module[\"___em_js__trace_push\"]=(function(){return Module[\"asm\"][\"___em_js__trace_push\"].apply(null,arguments)});var _emscripten_replace_memory=Module[\"_emscripten_replace_memory\"]=(function(){return Module[\"asm\"][\"_emscripten_replace_memory\"].apply(null,arguments)});var _free=Module[\"_free\"]=(function(){return Module[\"asm\"][\"_free\"].apply(null,arguments)});var _malloc=Module[\"_malloc\"]=(function(){return Module[\"asm\"][\"_malloc\"].apply(null,arguments)});var setTempRet0=Module[\"setTempRet0\"]=(function(){return Module[\"asm\"][\"setTempRet0\"].apply(null,arguments)});var setThrew=Module[\"setThrew\"]=(function(){return Module[\"asm\"][\"setThrew\"].apply(null,arguments)});var stackRestore=Module[\"stackRestore\"]=(function(){return Module[\"asm\"][\"stackRestore\"].apply(null,arguments)});var stackSave=Module[\"stackSave\"]=(function(){return Module[\"asm\"][\"stackSave\"].apply(null,arguments)});var dynCall_i=Module[\"dynCall_i\"]=(function(){return Module[\"asm\"][\"dynCall_i\"].apply(null,arguments)});var dynCall_ii=Module[\"dynCall_ii\"]=(function(){return Module[\"asm\"][\"dynCall_ii\"].apply(null,arguments)});var dynCall_iii=Module[\"dynCall_iii\"]=(function(){return Module[\"asm\"][\"dynCall_iii\"].apply(null,arguments)});var dynCall_iiii=Module[\"dynCall_iiii\"]=(function(){return Module[\"asm\"][\"dynCall_iiii\"].apply(null,arguments)});var dynCall_iiiii=Module[\"dynCall_iiiii\"]=(function(){return Module[\"asm\"][\"dynCall_iiiii\"].apply(null,arguments)});var dynCall_iiiiii=Module[\"dynCall_iiiiii\"]=(function(){return Module[\"asm\"][\"dynCall_iiiiii\"].apply(null,arguments)});var dynCall_ji=Module[\"dynCall_ji\"]=(function(){return Module[\"asm\"][\"dynCall_ji\"].apply(null,arguments)});var dynCall_v=Module[\"dynCall_v\"]=(function(){return Module[\"asm\"][\"dynCall_v\"].apply(null,arguments)});var dynCall_vi=Module[\"dynCall_vi\"]=(function(){return Module[\"asm\"][\"dynCall_vi\"].apply(null,arguments)});var dynCall_vii=Module[\"dynCall_vii\"]=(function(){return Module[\"asm\"][\"dynCall_vii\"].apply(null,arguments)});var dynCall_viii=Module[\"dynCall_viii\"]=(function(){return Module[\"asm\"][\"dynCall_viii\"].apply(null,arguments)});var dynCall_viiii=Module[\"dynCall_viiii\"]=(function(){return Module[\"asm\"][\"dynCall_viiii\"].apply(null,arguments)});var dynCall_viiiii=Module[\"dynCall_viiiii\"]=(function(){return Module[\"asm\"][\"dynCall_viiiii\"].apply(null,arguments)});var dynCall_viji=Module[\"dynCall_viji\"]=(function(){return Module[\"asm\"][\"dynCall_viji\"].apply(null,arguments)});Module[\"asm\"]=asm;Module[\"then\"]=(function(func){if(Module[\"calledRun\"]){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=(function(){if(old)old();func(Module)})}return Module});function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;dependenciesFulfilled=function runCaller(){if(!Module[\"calledRun\"])run();if(!Module[\"calledRun\"])dependenciesFulfilled=runCaller};function run(args){args=args||Module[\"arguments\"];if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module[\"calledRun\"])return;function doRun(){if(Module[\"calledRun\"])return;Module[\"calledRun\"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout((function(){setTimeout((function(){Module[\"setStatus\"](\"\")}),1);doRun()}),1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&Module[\"noExitRuntime\"]&&status===0){return}if(Module[\"noExitRuntime\"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}Module[\"quit\"](status,new ExitStatus(status))}function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(what!==undefined){out(what);err(what);what=JSON.stringify(what)}else{what=\"\"}ABORT=true;EXITSTATUS=1;throw\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\"}Module[\"abort\"]=abort;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}Module[\"noExitRuntime\"]=true;run();Module[\"ready\"]=new Promise((function(resolve,reject){delete Module[\"then\"];Module[\"onAbort\"]=(function(what){reject(what)});addOnPostRun((function(){resolve(Module)}))}))\r\n\r\n\r\n\r\n\r\n\r\n return Diablo;\r\n}\r\n);\r\n})();\r\nif (typeof exports === 'object' && typeof module === 'object')\r\n module.exports = Diablo;\r\n else if (typeof define === 'function' && define['amd'])\r\n define([], function() { return Diablo; });\r\n else if (typeof exports === 'object')\r\n exports[\"Diablo\"] = Diablo;\r\n \n\n/*** EXPORTS FROM exports-loader ***/\n","module.exports = __webpack_public_path__ + \"static/media/DiabloSpawn.1a7b93b3.wasm\";","\r\nvar DiabloSpawn = (function() {\r\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\r\n return (\r\nfunction(DiabloSpawn) {\r\n DiabloSpawn = DiabloSpawn || {};\r\n\r\nvar Module=typeof DiabloSpawn!==\"undefined\"?DiabloSpawn:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}Module[\"arguments\"]=[];Module[\"thisProgram\"]=\"./this.program\";Module[\"quit\"]=(function(status,toThrow){throw toThrow});Module[\"preRun\"]=[];Module[\"postRun\"]=[];var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof require===\"function\"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}else{return scriptDirectory+path}}if(ENVIRONMENT_IS_NODE){scriptDirectory=__dirname+\"/\";var nodeFS;var nodePath;Module[\"read\"]=function shell_read(filename,binary){var ret;if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);ret=nodeFS[\"readFileSync\"](filename);return binary?ret:ret.toString()};Module[\"readBinary\"]=function readBinary(filename){var ret=Module[\"read\"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){Module[\"thisProgram\"]=process[\"argv\"][1].replace(/\\\\/g,\"/\")}Module[\"arguments\"]=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));process[\"on\"](\"unhandledRejection\",(function(reason,p){process[\"exit\"](1)}));Module[\"quit\"]=(function(status){process[\"exit\"](status)});Module[\"inspect\"]=(function(){return\"[Emscripten Module object]\"})}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){Module[\"read\"]=function shell_read(f){return read(f)}}Module[\"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\"){Module[\"arguments\"]=scriptArgs}else if(typeof arguments!=\"undefined\"){Module[\"arguments\"]=arguments}if(typeof quit===\"function\"){Module[\"quit\"]=(function(status){quit(status)})}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WEB){if(document.currentScript){scriptDirectory=document.currentScript.src}}else{scriptDirectory=self.location.href}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.split(\"/\").slice(0,-1).join(\"/\")+\"/\"}else{scriptDirectory=\"\"}Module[\"read\"]=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){Module[\"readBinary\"]=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}Module[\"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)};Module[\"setWindowTitle\"]=(function(title){document.title=title})}else{}var out=Module[\"print\"]||(typeof console!==\"undefined\"?console.log.bind(console):typeof print!==\"undefined\"?print:null);var err=Module[\"printErr\"]||(typeof printErr!==\"undefined\"?printErr:typeof console!==\"undefined\"&&console.warn.bind(console)||out);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var STACK_ALIGN=16;function staticAlloc(size){var ret=STATICTOP;STATICTOP=STATICTOP+size+15&-16;return ret}function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;var ret=size=Math.ceil(size/factor)*factor;return ret}var asm2wasmImports={\"f64-rem\":(function(x,y){return x%y}),\"debugger\":(function(){debugger})};var functionPointers=new Array(0);var GLOBAL_BASE=1024;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function Pointer_stringify(ptr,length){if(length===0||!ptr)return\"\";var hasUtf=0;var t;var i=0;while(1){t=HEAPU8[ptr+i>>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret=\"\";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return UTF8ToString(ptr)}var UTF8Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str=\"\";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}var UTF16Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;var WASM_PAGE_SIZE=65536;var ASMJS_PAGE_SIZE=16777216;var MIN_TOTAL_MEMORY=16777216;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBuffer(buf){Module[\"buffer\"]=buffer=buf}function updateGlobalBufferViews(){Module[\"HEAP8\"]=HEAP8=new Int8Array(buffer);Module[\"HEAP16\"]=HEAP16=new Int16Array(buffer);Module[\"HEAP32\"]=HEAP32=new Int32Array(buffer);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buffer);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buffer);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buffer);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buffer);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){abort(\"Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value \"+TOTAL_MEMORY+\", (2) compile with -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 \")}if(!Module[\"reallocBuffer\"])Module[\"reallocBuffer\"]=(function(size){var ret;try{if(ArrayBuffer.transfer){ret=ArrayBuffer.transfer(buffer,size)}else{var oldHEAP8=HEAP8;ret=new ArrayBuffer(size);var temp=new Int8Array(ret);temp.set(oldHEAP8)}}catch(e){return false}var success=_emscripten_replace_memory(ret);if(!success)return false;return ret});function enlargeMemory(){var PAGE_MULTIPLE=Module[\"usingWasm\"]?WASM_PAGE_SIZE:ASMJS_PAGE_SIZE;var LIMIT=2147483648-PAGE_MULTIPLE;if(HEAP32[DYNAMICTOP_PTR>>2]>LIMIT){return false}var OLD_TOTAL_MEMORY=TOTAL_MEMORY;TOTAL_MEMORY=Math.max(TOTAL_MEMORY,MIN_TOTAL_MEMORY);while(TOTAL_MEMORY>2]){if(TOTAL_MEMORY<=536870912){TOTAL_MEMORY=alignUp(2*TOTAL_MEMORY,PAGE_MULTIPLE)}else{TOTAL_MEMORY=Math.min(alignUp((3*TOTAL_MEMORY+2147483648)/4,PAGE_MULTIPLE),LIMIT)}}var replacement=Module[\"reallocBuffer\"](TOTAL_MEMORY);if(!replacement||replacement.byteLength!=TOTAL_MEMORY){TOTAL_MEMORY=OLD_TOTAL_MEMORY;return false}updateGlobalBuffer(replacement);updateGlobalBufferViews();return true}var byteLength;try{byteLength=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,\"byteLength\").get);byteLength(new ArrayBuffer(4))}catch(e){byteLength=(function(buffer){return buffer.byteLength})}var TOTAL_STACK=Module[\"TOTAL_STACK\"]||5242880;var TOTAL_MEMORY=Module[\"TOTAL_MEMORY\"]||134217728;if(TOTAL_MEMORY0){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;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}function integrateWasmJS(){var wasmTextFile=\"DiabloSpawn.wast\";var wasmBinaryFile=\"DiabloSpawn.wasm\";var asmjsCodeFile=\"DiabloSpawn.temp.asm.js\";if(!isDataURI(wasmTextFile)){wasmTextFile=locateFile(wasmTextFile)}if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}if(!isDataURI(asmjsCodeFile)){asmjsCodeFile=locateFile(asmjsCodeFile)}var wasmPageSize=64*1024;var info={\"global\":null,\"env\":null,\"asm2wasm\":asm2wasmImports,\"parent\":Module};var exports=null;function mergeMemory(newBuffer){var oldBuffer=Module[\"buffer\"];if(newBuffer.byteLength0);info.refcount--;if(info.refcount===0&&!info.rethrown){if(info.destructor){Module[\"dynCall_vi\"](info.destructor,ptr)}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};function ___cxa_begin_catch(ptr){var info=EXCEPTIONS.infos[ptr];if(info&&!info.caught){info.caught=true;__ZSt18uncaught_exceptionv.uncaught_exception--}if(info)info.rethrown=false;EXCEPTIONS.caught.push(ptr);EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));return ptr}function ___cxa_free_exception(ptr){try{return _free(ptr)}catch(e){}}function ___cxa_end_catch(){Module[\"setThrew\"](0);var ptr=EXCEPTIONS.caught.pop();if(ptr){EXCEPTIONS.decRef(EXCEPTIONS.deAdjust(ptr));EXCEPTIONS.last=0}}function ___cxa_find_matching_catch_2(){return ___cxa_find_matching_catch.apply(null,arguments)}function ___cxa_find_matching_catch_3(){return ___cxa_find_matching_catch.apply(null,arguments)}function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr}throw ptr}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(setTempRet0(0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(setTempRet0(0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module[\"___cxa_is_pointer_type\"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i>2];info.adjusted=thrown;return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};EXCEPTIONS.last=ptr;if(!(\"uncaught_exception\"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr}function ___lock(){}var SYSCALLS={varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),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)})};function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;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}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.get(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();var ret=0;if(!___syscall146.buffers){___syscall146.buffers=[null,[],[]];___syscall146.printChar=(function(stream,curr){var buffer=___syscall146.buffers[stream];assert(buffer);if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}})}for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Module[\"dynCall_v\"](func);_pthread_once.seen[ptr]=1}function _pthread_setspecific(key,value){if(!(key in PTHREAD_SPECIFIC)){return ERRNO_CODES.EINVAL}PTHREAD_SPECIFIC[key]=value;return 0}function ___setErrNo(value){if(Module[\"___errno_location\"])HEAP32[Module[\"___errno_location\"]()>>2]=value;return value}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}DYNAMICTOP_PTR=staticAlloc(4);STACK_BASE=STACKTOP=alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;Module[\"wasmTableSize\"]=588;Module[\"wasmMaxTableSize\"]=588;function invoke_i(index){var sp=stackSave();try{return Module[\"dynCall_i\"](index)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return Module[\"dynCall_ii\"](index,a1)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return Module[\"dynCall_iii\"](index,a1,a2)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return Module[\"dynCall_iiii\"](index,a1,a2,a3)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return Module[\"dynCall_iiiii\"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return Module[\"dynCall_iiiiii\"](index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_ji(index,a1){var sp=stackSave();try{return Module[\"dynCall_ji\"](index,a1)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_v(index){var sp=stackSave();try{Module[\"dynCall_v\"](index)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{Module[\"dynCall_vi\"](index,a1)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{Module[\"dynCall_vii\"](index,a1,a2)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{Module[\"dynCall_viii\"](index,a1,a2,a3)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{Module[\"dynCall_viiii\"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{Module[\"dynCall_viiiii\"](index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viji(index,a1,a2,a3,a4){var sp=stackSave();try{Module[\"dynCall_viji\"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}Module.asmGlobalArg={};Module.asmLibraryArg={\"abort\":abort,\"enlargeMemory\":enlargeMemory,\"getTotalMemory\":getTotalMemory,\"abortOnCannotGrowMemory\":abortOnCannotGrowMemory,\"invoke_i\":invoke_i,\"invoke_ii\":invoke_ii,\"invoke_iii\":invoke_iii,\"invoke_iiii\":invoke_iiii,\"invoke_iiiii\":invoke_iiiii,\"invoke_iiiiii\":invoke_iiiiii,\"invoke_ji\":invoke_ji,\"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_viji\":invoke_viji,\"___assert_fail\":___assert_fail,\"___cxa_allocate_exception\":___cxa_allocate_exception,\"___cxa_begin_catch\":___cxa_begin_catch,\"___cxa_end_catch\":___cxa_end_catch,\"___cxa_find_matching_catch_2\":___cxa_find_matching_catch_2,\"___cxa_find_matching_catch_3\":___cxa_find_matching_catch_3,\"___cxa_free_exception\":___cxa_free_exception,\"___cxa_throw\":___cxa_throw,\"___lock\":___lock,\"___resumeException\":___resumeException,\"___setErrNo\":___setErrNo,\"___syscall140\":___syscall140,\"___syscall146\":___syscall146,\"___syscall54\":___syscall54,\"___syscall6\":___syscall6,\"___unlock\":___unlock,\"_abort\":_abort,\"_api_close_keyboard\":_api_close_keyboard,\"_api_create_sound_float\":_api_create_sound_float,\"_api_delete_sound\":_api_delete_sound,\"_api_draw_begin\":_api_draw_begin,\"_api_draw_belt\":_api_draw_belt,\"_api_draw_blit\":_api_draw_blit,\"_api_draw_clip_text\":_api_draw_clip_text,\"_api_draw_end\":_api_draw_end,\"_api_draw_text\":_api_draw_text,\"_api_duplicate_sound\":_api_duplicate_sound,\"_api_open_keyboard\":_api_open_keyboard,\"_api_play_sound\":_api_play_sound,\"_api_set_cursor\":_api_set_cursor,\"_api_set_volume\":_api_set_volume,\"_api_stop_sound\":_api_stop_sound,\"_emscripten_memcpy_big\":_emscripten_memcpy_big,\"_exit\":_exit,\"_exit_error\":_exit_error,\"_get_file_contents\":_get_file_contents,\"_get_file_size\":_get_file_size,\"_pthread_getspecific\":_pthread_getspecific,\"_pthread_key_create\":_pthread_key_create,\"_pthread_once\":_pthread_once,\"_pthread_setspecific\":_pthread_setspecific,\"_put_file_contents\":_put_file_contents,\"_remove_file\":_remove_file,\"_show_alert\":_show_alert,\"_time\":_time,\"DYNAMICTOP_PTR\":DYNAMICTOP_PTR,\"STACKTOP\":STACKTOP};var asm=Module[\"asm\"](Module.asmGlobalArg,Module.asmLibraryArg,buffer);Module[\"asm\"]=asm;var _DApi_Char=Module[\"_DApi_Char\"]=(function(){return Module[\"asm\"][\"_DApi_Char\"].apply(null,arguments)});var _DApi_Init=Module[\"_DApi_Init\"]=(function(){return Module[\"asm\"][\"_DApi_Init\"].apply(null,arguments)});var _DApi_Key=Module[\"_DApi_Key\"]=(function(){return Module[\"asm\"][\"_DApi_Key\"].apply(null,arguments)});var _DApi_Mouse=Module[\"_DApi_Mouse\"]=(function(){return Module[\"asm\"][\"_DApi_Mouse\"].apply(null,arguments)});var _DApi_Render=Module[\"_DApi_Render\"]=(function(){return Module[\"asm\"][\"_DApi_Render\"].apply(null,arguments)});var _DApi_SyncText=Module[\"_DApi_SyncText\"]=(function(){return Module[\"asm\"][\"_DApi_SyncText\"].apply(null,arguments)});var __GLOBAL__sub_I_msgcmd_cpp=Module[\"__GLOBAL__sub_I_msgcmd_cpp\"]=(function(){return Module[\"asm\"][\"__GLOBAL__sub_I_msgcmd_cpp\"].apply(null,arguments)});var ___cxa_can_catch=Module[\"___cxa_can_catch\"]=(function(){return Module[\"asm\"][\"___cxa_can_catch\"].apply(null,arguments)});var ___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=(function(){return Module[\"asm\"][\"___cxa_is_pointer_type\"].apply(null,arguments)});var ___em_js__api_close_keyboard=Module[\"___em_js__api_close_keyboard\"]=(function(){return Module[\"asm\"][\"___em_js__api_close_keyboard\"].apply(null,arguments)});var ___em_js__api_create_sound_float=Module[\"___em_js__api_create_sound_float\"]=(function(){return Module[\"asm\"][\"___em_js__api_create_sound_float\"].apply(null,arguments)});var ___em_js__api_delete_sound=Module[\"___em_js__api_delete_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_delete_sound\"].apply(null,arguments)});var ___em_js__api_draw_begin=Module[\"___em_js__api_draw_begin\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_begin\"].apply(null,arguments)});var ___em_js__api_draw_belt=Module[\"___em_js__api_draw_belt\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_belt\"].apply(null,arguments)});var ___em_js__api_draw_blit=Module[\"___em_js__api_draw_blit\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_blit\"].apply(null,arguments)});var ___em_js__api_draw_clip_text=Module[\"___em_js__api_draw_clip_text\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_clip_text\"].apply(null,arguments)});var ___em_js__api_draw_end=Module[\"___em_js__api_draw_end\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_end\"].apply(null,arguments)});var ___em_js__api_draw_text=Module[\"___em_js__api_draw_text\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_text\"].apply(null,arguments)});var ___em_js__api_duplicate_sound=Module[\"___em_js__api_duplicate_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_duplicate_sound\"].apply(null,arguments)});var ___em_js__api_open_keyboard=Module[\"___em_js__api_open_keyboard\"]=(function(){return Module[\"asm\"][\"___em_js__api_open_keyboard\"].apply(null,arguments)});var ___em_js__api_play_sound=Module[\"___em_js__api_play_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_play_sound\"].apply(null,arguments)});var ___em_js__api_set_cursor=Module[\"___em_js__api_set_cursor\"]=(function(){return Module[\"asm\"][\"___em_js__api_set_cursor\"].apply(null,arguments)});var ___em_js__api_set_volume=Module[\"___em_js__api_set_volume\"]=(function(){return Module[\"asm\"][\"___em_js__api_set_volume\"].apply(null,arguments)});var ___em_js__api_stop_sound=Module[\"___em_js__api_stop_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_stop_sound\"].apply(null,arguments)});var ___em_js__exit_error=Module[\"___em_js__exit_error\"]=(function(){return Module[\"asm\"][\"___em_js__exit_error\"].apply(null,arguments)});var ___em_js__get_file_contents=Module[\"___em_js__get_file_contents\"]=(function(){return Module[\"asm\"][\"___em_js__get_file_contents\"].apply(null,arguments)});var ___em_js__get_file_size=Module[\"___em_js__get_file_size\"]=(function(){return Module[\"asm\"][\"___em_js__get_file_size\"].apply(null,arguments)});var ___em_js__put_file_contents=Module[\"___em_js__put_file_contents\"]=(function(){return Module[\"asm\"][\"___em_js__put_file_contents\"].apply(null,arguments)});var ___em_js__remove_file=Module[\"___em_js__remove_file\"]=(function(){return Module[\"asm\"][\"___em_js__remove_file\"].apply(null,arguments)});var ___em_js__show_alert=Module[\"___em_js__show_alert\"]=(function(){return Module[\"asm\"][\"___em_js__show_alert\"].apply(null,arguments)});var ___em_js__trace_pop=Module[\"___em_js__trace_pop\"]=(function(){return Module[\"asm\"][\"___em_js__trace_pop\"].apply(null,arguments)});var ___em_js__trace_push=Module[\"___em_js__trace_push\"]=(function(){return Module[\"asm\"][\"___em_js__trace_push\"].apply(null,arguments)});var _emscripten_replace_memory=Module[\"_emscripten_replace_memory\"]=(function(){return Module[\"asm\"][\"_emscripten_replace_memory\"].apply(null,arguments)});var _free=Module[\"_free\"]=(function(){return Module[\"asm\"][\"_free\"].apply(null,arguments)});var _malloc=Module[\"_malloc\"]=(function(){return Module[\"asm\"][\"_malloc\"].apply(null,arguments)});var setTempRet0=Module[\"setTempRet0\"]=(function(){return Module[\"asm\"][\"setTempRet0\"].apply(null,arguments)});var setThrew=Module[\"setThrew\"]=(function(){return Module[\"asm\"][\"setThrew\"].apply(null,arguments)});var stackRestore=Module[\"stackRestore\"]=(function(){return Module[\"asm\"][\"stackRestore\"].apply(null,arguments)});var stackSave=Module[\"stackSave\"]=(function(){return Module[\"asm\"][\"stackSave\"].apply(null,arguments)});var dynCall_i=Module[\"dynCall_i\"]=(function(){return Module[\"asm\"][\"dynCall_i\"].apply(null,arguments)});var dynCall_ii=Module[\"dynCall_ii\"]=(function(){return Module[\"asm\"][\"dynCall_ii\"].apply(null,arguments)});var dynCall_iii=Module[\"dynCall_iii\"]=(function(){return Module[\"asm\"][\"dynCall_iii\"].apply(null,arguments)});var dynCall_iiii=Module[\"dynCall_iiii\"]=(function(){return Module[\"asm\"][\"dynCall_iiii\"].apply(null,arguments)});var dynCall_iiiii=Module[\"dynCall_iiiii\"]=(function(){return Module[\"asm\"][\"dynCall_iiiii\"].apply(null,arguments)});var dynCall_iiiiii=Module[\"dynCall_iiiiii\"]=(function(){return Module[\"asm\"][\"dynCall_iiiiii\"].apply(null,arguments)});var dynCall_ji=Module[\"dynCall_ji\"]=(function(){return Module[\"asm\"][\"dynCall_ji\"].apply(null,arguments)});var dynCall_v=Module[\"dynCall_v\"]=(function(){return Module[\"asm\"][\"dynCall_v\"].apply(null,arguments)});var dynCall_vi=Module[\"dynCall_vi\"]=(function(){return Module[\"asm\"][\"dynCall_vi\"].apply(null,arguments)});var dynCall_vii=Module[\"dynCall_vii\"]=(function(){return Module[\"asm\"][\"dynCall_vii\"].apply(null,arguments)});var dynCall_viii=Module[\"dynCall_viii\"]=(function(){return Module[\"asm\"][\"dynCall_viii\"].apply(null,arguments)});var dynCall_viiii=Module[\"dynCall_viiii\"]=(function(){return Module[\"asm\"][\"dynCall_viiii\"].apply(null,arguments)});var dynCall_viiiii=Module[\"dynCall_viiiii\"]=(function(){return Module[\"asm\"][\"dynCall_viiiii\"].apply(null,arguments)});var dynCall_viji=Module[\"dynCall_viji\"]=(function(){return Module[\"asm\"][\"dynCall_viji\"].apply(null,arguments)});Module[\"asm\"]=asm;Module[\"then\"]=(function(func){if(Module[\"calledRun\"]){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=(function(){if(old)old();func(Module)})}return Module});function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;dependenciesFulfilled=function runCaller(){if(!Module[\"calledRun\"])run();if(!Module[\"calledRun\"])dependenciesFulfilled=runCaller};function run(args){args=args||Module[\"arguments\"];if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module[\"calledRun\"])return;function doRun(){if(Module[\"calledRun\"])return;Module[\"calledRun\"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout((function(){setTimeout((function(){Module[\"setStatus\"](\"\")}),1);doRun()}),1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&Module[\"noExitRuntime\"]&&status===0){return}if(Module[\"noExitRuntime\"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}Module[\"quit\"](status,new ExitStatus(status))}function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(what!==undefined){out(what);err(what);what=JSON.stringify(what)}else{what=\"\"}ABORT=true;EXITSTATUS=1;throw\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\"}Module[\"abort\"]=abort;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}Module[\"noExitRuntime\"]=true;run();Module[\"ready\"]=new Promise((function(resolve,reject){delete Module[\"then\"];Module[\"onAbort\"]=(function(what){reject(what)});addOnPostRun((function(){resolve(Module)}))}))\r\n\r\n\r\n\r\n\r\n\r\n return DiabloSpawn;\r\n}\r\n);\r\n})();\r\nif (typeof exports === 'object' && typeof module === 'object')\r\n module.exports = DiabloSpawn;\r\n else if (typeof define === 'function' && define['amd'])\r\n define([], function() { return DiabloSpawn; });\r\n else if (typeof exports === 'object')\r\n exports[\"DiabloSpawn\"] = DiabloSpawn;\r\n \n\n/*** EXPORTS FROM exports-loader ***/\n","module.exports = require('./lib/axios');","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar runtime = function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []); // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n return generator;\n }\n\n exports.wrap = wrap; // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\"; // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n\n var ContinueSentinel = {}; // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {} // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n\n\n var IteratorPrototype = {};\n\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n\n if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = \"GeneratorFunction\"; // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n prototype[method] = function (arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function (genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor ? ctor === GeneratorFunction || // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\" : false;\n };\n\n exports.mark = function (genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n\n genFun.prototype = Object.create(Gp);\n return genFun;\n }; // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n\n\n exports.awrap = function (arg) {\n return {\n __await: arg\n };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n\n if (value && typeof value === \"object\" && hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function (unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function (error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n } // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n\n\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n\n exports.AsyncIterator = AsyncIterator; // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n\n exports.async = function (innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList));\n return exports.isGeneratorFunction(outerFn) ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n } // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n\n\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n var record = tryCatch(innerFn, self, context);\n\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done ? GenStateCompleted : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n } else if (record.type === \"throw\") {\n state = GenStateCompleted; // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n } // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (!info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value; // Resume execution at the desired location (see delegateYield).\n\n context.next = delegate.nextLoc; // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n } // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n\n\n context.delegate = null;\n return ContinueSentinel;\n } // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n\n\n defineIteratorMethods(Gp);\n Gp[toStringTagSymbol] = \"Generator\"; // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n\n Gp[iteratorSymbol] = function () {\n return this;\n };\n\n Gp.toString = function () {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{\n tryLoc: \"root\"\n }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n keys.reverse(); // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n } // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n\n\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n return next;\n };\n\n return next.next = next;\n }\n } // Return an iterator with no values.\n\n\n return {\n next: doneResult\n };\n }\n\n exports.values = values;\n\n function doneResult() {\n return {\n value: undefined,\n done: true\n };\n }\n\n Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n this.prev = 0;\n this.next = 0; // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n this.method = \"next\";\n this.arg = undefined;\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n stop: function stop() {\n this.done = true;\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry && (type === \"break\" || type === \"continue\") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" || record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n } // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n }; // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n\n return exports;\n}( // If this script is executing as a CommonJS module, use module.exports\n// as the regeneratorRuntime namespace. Otherwise create a new empty\n// object. Either way, the resulting object will be used to initialize\n// the regeneratorRuntime variable at the top of this file.\ntypeof module === \"object\" ? module.exports : {});\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}","'use strict';\n\nvar utils = require('./utils');\n\nvar bind = require('./helpers/bind');\n\nvar Axios = require('./core/Axios');\n\nvar mergeConfig = require('./core/mergeConfig');\n\nvar defaults = require('./defaults');\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\n\n\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context); // Copy axios.prototype to instance\n\n utils.extend(instance, Axios.prototype, context); // Copy context to instance\n\n utils.extend(instance, context);\n return instance;\n} // Create the default instance to be exported\n\n\nvar axios = createInstance(defaults); // Expose Axios class to allow class inheritance\n\naxios.Axios = Axios; // Factory for creating new instances\n\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n}; // Expose Cancel & CancelToken\n\n\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel'); // Expose all/spread\n\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = require('./helpers/spread');\nmodule.exports = axios; // Allow use of default import syntax in TypeScript\n\nmodule.exports.default = axios;","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\nmodule.exports = function isBuffer(obj) {\n return obj != null && obj.constructor != null && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj);\n};","'use strict';\n\nvar utils = require('./../utils');\n\nvar buildURL = require('../helpers/buildURL');\n\nvar InterceptorManager = require('./InterceptorManager');\n\nvar dispatchRequest = require('./dispatchRequest');\n\nvar mergeConfig = require('./mergeConfig');\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\n\n\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\n\n\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n config.method = config.method ? config.method.toLowerCase() : 'get'; // Hook up interceptors middleware\n\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n}; // Provide aliases for supported request methods\n\n\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\nmodule.exports = Axios;","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n\n\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\n\n\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\n\n\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;","'use strict';\n\nvar utils = require('./../utils');\n\nvar transformData = require('./transformData');\n\nvar isCancel = require('../cancel/isCancel');\n\nvar defaults = require('../defaults');\n\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\n\nvar combineURLs = require('./../helpers/combineURLs');\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\n\n\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config); // Support baseURL config\n\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n } // Ensure headers exist\n\n\n config.headers = config.headers || {}; // Transform request data\n\n config.data = transformData(config.data, config.headers, config.transformRequest); // Flatten headers\n\n config.headers = utils.merge(config.headers.common || {}, config.headers[config.method] || {}, config.headers || {});\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], function cleanHeaderConfig(method) {\n delete config.headers[method];\n });\n var adapter = config.adapter || defaults.adapter;\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config); // Transform response data\n\n response.data = transformData(response.data, response.headers, config.transformResponse);\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config); // Transform response data\n\n if (reason && reason.response) {\n reason.response.data = transformData(reason.response.data, reason.response.headers, config.transformResponse);\n }\n }\n\n return Promise.reject(reason);\n });\n};","'use strict';\n\nvar utils = require('./../utils');\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\n\n\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n return data;\n};","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};","'use strict';\n\nvar createError = require('./createError');\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\n\n\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n\n if (!validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError('Request failed with status code ' + response.status, response.config, null, response.request, response));\n }\n};","'use strict';\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\n\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function () {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n\n return error;\n};","'use strict';\n\nvar utils = require('./../utils'); // Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\n\n\nvar ignoreDuplicateOf = ['age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent'];\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\n\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) {\n return parsed;\n }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n return parsed;\n};","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\nfunction standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href); // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: urlParsingNode.pathname.charAt(0) === '/' ? urlParsingNode.pathname : '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n\n return function isURLSameOrigin(requestURL) {\n var parsed = utils.isString(requestURL) ? resolveURL(requestURL) : requestURL;\n return parsed.protocol === originURL.protocol && parsed.host === originURL.host;\n };\n}() : // Non standard browser envs (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n}();","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs support document.cookie\nfunction standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return match ? decodeURIComponent(match[3]) : null;\n },\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n}() : // Non standard browser env (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() {\n return null;\n },\n remove: function remove() {}\n };\n}();","'use strict';\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\n\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};","'use strict';\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\n\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '') : baseURL;\n};","'use strict';\n\nvar Cancel = require('./Cancel');\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\n\n\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n\n\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;","'use strict';\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\n\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}","export default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}","export default function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","import DiabloBinary from './Diablo.wasm';\r\nimport DiabloModule from './Diablo.jscc';\r\nimport SpawnBinary from './DiabloSpawn.wasm';\r\nimport SpawnModule from './DiabloSpawn.jscc';\r\nimport axios from 'axios';\r\n\r\nconst DiabloSize = 1288845;\r\nconst SpawnSize = 1160682;\r\n\r\n/* eslint-disable-next-line no-restricted-globals */\r\nconst worker = self;\r\n\r\nlet canvas = null, context = null;\r\nlet imageData = null;\r\nlet files = null;\r\nlet renderBatch = null;\r\nlet drawBelt = null;\r\n\r\nconst DApi = {\r\n exit_error(error) {\r\n worker.postMessage({action: \"error\", error});\r\n },\r\n\r\n get_file_size(path) {\r\n const data = files.get(path.toLowerCase());\r\n return data ? data.byteLength : 0;\r\n },\r\n get_file_contents(path, array, offset) {\r\n const data = files.get(path.toLowerCase());\r\n if (data) {\r\n array.set(data.subarray(offset, offset + array.length));\r\n }\r\n },\r\n put_file_contents(path, array) {\r\n path = path.toLowerCase();\r\n // if (!path.match(/^(spawn\\d+\\.sv|single_\\d+\\.sv|config\\.ini)$/i)) {\r\n // alert(`Bad file name: ${path}`);\r\n // }\r\n files.set(path, array);\r\n worker.postMessage({action: \"fs\", func: \"update\", params: [path, array]});\r\n },\r\n remove_file(path) {\r\n path = path.toLowerCase();\r\n files.delete(path);\r\n worker.postMessage({action: \"fs\", func: \"delete\", params: [path]});\r\n },\r\n\r\n set_cursor(x, y) {\r\n worker.postMessage({action: \"cursor\", x, y});\r\n },\r\n open_keyboard() {\r\n worker.postMessage({action: \"keyboard\", open: true});\r\n },\r\n close_keyboard() {\r\n worker.postMessage({action: \"keyboard\", open: false});\r\n },\r\n};\r\n\r\nlet frameTime = 0, lastTime = 0;\r\nfunction getFPS() {\r\n const time = performance.now();\r\n if (!lastTime) {\r\n lastTime = time;\r\n }\r\n frameTime = 0.9 * frameTime + 0.1 * (time - lastTime);\r\n lastTime = time;\r\n return frameTime ? 1000.0 / frameTime : 0.0;\r\n}\r\n\r\nconst DApi_renderLegacy = {\r\n draw_begin() {\r\n renderBatch = {\r\n images: [],\r\n text: [],\r\n clip: null,\r\n belt: drawBelt,\r\n };\r\n drawBelt = null;\r\n },\r\n draw_blit(x, y, w, h, data) {\r\n renderBatch.images.push({x, y, w, h, data: data.slice()});\r\n },\r\n draw_clip_text(x0, y0, x1, y1) {\r\n renderBatch.clip = {x0, y0, x1, y1};\r\n },\r\n draw_text(x, y, text, color) {\r\n renderBatch.text.push({x, y, text, color});\r\n },\r\n draw_end() {\r\n //DApi.draw_text(10, 10, `FPS: ${getFPS().toFixed(1)} (Transfer)`, 0xFFCC00);\r\n const transfer = renderBatch.images.map(({data}) => data.buffer);\r\n if (renderBatch.belt) {\r\n transfer.push(renderBatch.belt.buffer);\r\n }\r\n worker.postMessage({action: \"render\", batch: renderBatch}, transfer);\r\n renderBatch = null;\r\n },\r\n draw_belt(items) {\r\n drawBelt = items.slice();\r\n },\r\n};\r\n\r\nconst DApi_renderOffscreen = {\r\n draw_begin() {\r\n context.save();\r\n context.font = 'bold 13px Times New Roman';\r\n },\r\n draw_blit(x, y, w, h, data) {\r\n imageData.data.set(data);\r\n context.putImageData(imageData, x, y);\r\n },\r\n draw_clip_text(x0, y0, x1, y1) {\r\n context.beginPath();\r\n context.rect(x0, y0, x1 - x0, y1 - y0);\r\n context.clip();\r\n },\r\n draw_text(x, y, text, color) {\r\n const r = ((color >> 16) & 0xFF);\r\n const g = ((color >> 8) & 0xFF);\r\n const b = (color & 0xFF);\r\n context.fillStyle = `rgb(${r}, ${g}, ${b})`;\r\n context.fillText(text, x, y + 22);\r\n },\r\n draw_end() {\r\n //DApi.draw_text(10, 10, `FPS: ${getFPS().toFixed(1)} (Offscreen)`, 0xFFCC00);\r\n context.restore();\r\n const bitmap = canvas.transferToImageBitmap();\r\n const transfer = [bitmap];\r\n if (drawBelt) {\r\n transfer.push(drawBelt.buffer);\r\n }\r\n worker.postMessage({action: \"render\", batch: {bitmap, belt: drawBelt}}, transfer);\r\n drawBelt = null;\r\n },\r\n draw_belt(items) {\r\n drawBelt = items.slice();\r\n },\r\n};\r\n\r\nlet audioBatch = null, audioTransfer = null;\r\nlet maxSoundId = 0, maxBatchId = 0;\r\n[\"create_sound\", \"duplicate_sound\"].forEach(func => {\r\n DApi[func] = function(...params) {\r\n if (audioBatch) {\r\n maxBatchId = params[0] + 1;\r\n audioBatch.push({func, params});\r\n if (func === \"create_sound\") {\r\n audioTransfer.push(params[1].buffer);\r\n }\r\n } else {\r\n maxSoundId = params[0] + 1;\r\n const transfer = [];\r\n if (func === \"create_sound\") {\r\n transfer.push(params[1].buffer);\r\n }\r\n worker.postMessage({action: \"audio\", func, params}, transfer);\r\n }\r\n };\r\n});\r\n[\"play_sound\", \"set_volume\", \"stop_sound\", \"delete_sound\"].forEach(func => {\r\n DApi[func] = function(...params) {\r\n if (audioBatch && params[0] >= maxSoundId) {\r\n audioBatch.push({func, params});\r\n } else {\r\n worker.postMessage({action: \"audio\", func, params});\r\n }\r\n }\r\n});\r\n\r\nworker.DApi = DApi;\r\n\r\nlet wasm = null;\r\n\r\nfunction call_api(func, ...params) {\r\n try {\r\n audioBatch = [];\r\n audioTransfer = [];\r\n wasm[\"_\" + func](...params);\r\n if (audioBatch.length) {\r\n maxSoundId = maxBatchId;\r\n worker.postMessage({action: \"audioBatch\", batch: audioBatch}, audioTransfer);\r\n audioBatch = null;\r\n audioTransfer = null;\r\n }\r\n } catch (e) {\r\n worker.postMessage({action: \"error\", error: e.message});\r\n }\r\n}\r\n\r\nfunction progress(text, loaded, total) {\r\n worker.postMessage({action: \"progress\", text, loaded, total});\r\n}\r\n\r\nconst readFile = (file, progress) => new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n if (progress) {\r\n progress({loaded: file.size});\r\n }\r\n resolve(reader.result);\r\n };\r\n reader.onerror = () => reject(reader.error);\r\n reader.onabort = () => reject();\r\n if (progress) {\r\n reader.addEventListener(\"progress\", progress);\r\n }\r\n reader.readAsArrayBuffer(file);\r\n});\r\n\r\nasync function initWasm(spawn, progress) {\r\n const binary = await axios.request({\r\n url: spawn ? SpawnBinary : DiabloBinary,\r\n responseType: 'arraybuffer',\r\n onDownloadProgress: progress,\r\n });\r\n const result = await (spawn ? SpawnModule : DiabloModule)({wasmBinary: binary.data}).ready;\r\n progress({loaded: 2000000});\r\n return result;\r\n}\r\n\r\nasync function init_game(mpq, spawn, offscreen) {\r\n if (offscreen) {\r\n canvas = new OffscreenCanvas(640, 480);\r\n context = canvas.getContext(\"2d\");\r\n imageData = context.createImageData(640, 480);\r\n Object.assign(DApi, DApi_renderOffscreen);\r\n } else {\r\n Object.assign(DApi, DApi_renderLegacy);\r\n }\r\n\r\n progress(\"Loading...\");\r\n let mpqLoaded = 0, mpqTotal = (mpq ? mpq.size : 0), wasmLoaded = 0, wasmTotal = (spawn ? SpawnSize : DiabloSize);\r\n const wasmWeight = 5;\r\n function updateProgress() {\r\n progress(\"Loading...\", mpqLoaded + wasmLoaded * wasmWeight, mpqTotal + wasmTotal * wasmWeight);\r\n }\r\n const loadWasm = initWasm(spawn, e => {\r\n wasmLoaded = Math.min(e.loaded, wasmTotal);\r\n updateProgress();\r\n });\r\n let loadMpq = mpq ? readFile(mpq, e => {\r\n mpqLoaded = e.loaded;\r\n updateProgress();\r\n }) : Promise.resolve(null);\r\n [wasm, mpq] = await Promise.all([loadWasm, loadMpq]);\r\n\r\n if (mpq) {\r\n files.set(spawn ? 'spawn.mpq' : 'diabdat.mpq', new Uint8Array(mpq));\r\n }\r\n\r\n progress(\"Initializing...\");\r\n wasm._DApi_Init(Math.floor(performance.now()), offscreen ? 1 : 0);\r\n\r\n setInterval(() => {\r\n call_api(\"DApi_Render\", Math.floor(performance.now())); \r\n }, 50);\r\n}\r\n\r\nworker.addEventListener(\"message\", ({data}) => {\r\n switch (data.action) {\r\n case \"init\":\r\n files = data.files;\r\n init_game(data.mpq, data.spawn, data.offscreen).then(\r\n () => worker.postMessage({action: \"loaded\"}),\r\n e => {debugger;worker.postMessage({action: \"failed\", error: e.message || e.name});});\r\n break;\r\n case \"event\":\r\n call_api(data.func, ...data.params);\r\n break;\r\n }\r\n});\r\n"],"sourceRoot":""} \ No newline at end of file diff --git a/asset-manifest.json b/asset-manifest.json index 4a9614c..f79319a 100644 --- a/asset-manifest.json +++ b/asset-manifest.json @@ -3,8 +3,8 @@ "static/js/0.3d665017.chunk.js": "/diabloweb/static/js/0.3d665017.chunk.js", "static/js/0.3d665017.chunk.js.map": "/diabloweb/static/js/0.3d665017.chunk.js.map", "main.css": "/diabloweb/static/css/main.9fcbefb1.chunk.css", - "main.js": "/diabloweb/static/js/main.025a19d1.chunk.js", - "main.js.map": "/diabloweb/static/js/main.025a19d1.chunk.js.map", + "main.js": "/diabloweb/static/js/main.e77bbf36.chunk.js", + "main.js.map": "/diabloweb/static/js/main.e77bbf36.chunk.js.map", "runtime~main.js": "/diabloweb/static/js/runtime~main.bf17ce54.js", "runtime~main.js.map": "/diabloweb/static/js/runtime~main.bf17ce54.js.map", "runtime~storage.js": "/diabloweb/static/js/runtime~storage.83a78cef.js", @@ -13,14 +13,14 @@ "storage.js.map": "/diabloweb/static/js/storage.cc738d1f.chunk.js.map", "static/js/5.2a4effa1.chunk.js": "/diabloweb/static/js/5.2a4effa1.chunk.js", "static/js/5.2a4effa1.chunk.js.map": "/diabloweb/static/js/5.2a4effa1.chunk.js.map", - "a452417be70a92d7cbdf.worker.js": "/diabloweb/a452417be70a92d7cbdf.worker.js", - "a452417be70a92d7cbdf.worker.js.map": "/diabloweb/a452417be70a92d7cbdf.worker.js.map", + "ec517037eb7f5fbaab67.worker.js": "/diabloweb/ec517037eb7f5fbaab67.worker.js", + "ec517037eb7f5fbaab67.worker.js.map": "/diabloweb/ec517037eb7f5fbaab67.worker.js.map", "index.html": "/diabloweb/index.html", - "precache-manifest.6ccf75bb25eea1401174c2d7c9fe47a5.js": "/diabloweb/precache-manifest.6ccf75bb25eea1401174c2d7c9fe47a5.js", + "precache-manifest.db764cf38398538e68736bff6b54b259.js": "/diabloweb/precache-manifest.db764cf38398538e68736bff6b54b259.js", "service-worker.js": "/diabloweb/service-worker.js", "static/css/main.9fcbefb1.chunk.css.map": "/diabloweb/static/css/main.9fcbefb1.chunk.css.map", - "static/media/Diablo.wasm": "/diabloweb/static/media/Diablo.ca302877.wasm", - "static/media/DiabloSpawn.wasm": "/diabloweb/static/media/DiabloSpawn.1a7b93b3.wasm", + "static/media/Diablo.wasm": "/diabloweb/static/media/Diablo.8cc190a9.wasm", + "static/media/DiabloSpawn.wasm": "/diabloweb/static/media/DiabloSpawn.8210d404.wasm", "static/media/App.scss": "/diabloweb/static/media/shift.b40e4a63.svg", "storage.html": "/diabloweb/storage.html" } diff --git a/a452417be70a92d7cbdf.worker.js b/ec517037eb7f5fbaab67.worker.js similarity index 96% rename from a452417be70a92d7cbdf.worker.js rename to ec517037eb7f5fbaab67.worker.js index 3836e42..5aed999 100644 --- a/a452417be70a92d7cbdf.worker.js +++ b/ec517037eb7f5fbaab67.worker.js @@ -1,2 +1,2 @@ -!function(e){var n={};function t(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,t),i.l=!0,i.exports}t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:r})},t.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"===typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var i in e)t.d(r,i,function(n){return e[n]}.bind(null,i));return r},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="/diabloweb/",t(t.s=35)}([function(e,n,t){"use strict";var r=t(5),i=t(20),o=Object.prototype.toString;function a(e){return"[object Array]"===o.call(e)}function u(e){return null!==e&&"object"===typeof e}function s(e){return"[object Function]"===o.call(e)}function c(e,n){if(null!==e&&"undefined"!==typeof e)if("object"!==typeof e&&(e=[e]),a(e))for(var t=0,r=e.length;t1)for(var t=1;t=0;r--){var i=e[r];"."===i?e.splice(r,1):".."===i?(e.splice(r,1),t++):t&&(e.splice(r,1),t--)}if(n)for(;t--;t)e.unshift("..");return e}function r(e,n){if(e.filter)return e.filter(n);for(var t=[],r=0;r=-1&&!i;o--){var a=o>=0?arguments[o]:e.cwd();if("string"!==typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(n=a+"/"+n,i="/"===a.charAt(0))}return(i?"/":"")+(n=t(r(n.split("/"),function(e){return!!e}),!i).join("/"))||"."},n.normalize=function(e){var o=n.isAbsolute(e),a="/"===i(e,-1);return(e=t(r(e.split("/"),function(e){return!!e}),!o).join("/"))||o||(e="."),e&&a&&(e+="/"),(o?"/":"")+e},n.isAbsolute=function(e){return"/"===e.charAt(0)},n.join=function(){var e=Array.prototype.slice.call(arguments,0);return n.normalize(r(e,function(e,n){if("string"!==typeof e)throw new TypeError("Arguments to path.join must be strings");return e}).join("/"))},n.relative=function(e,t){function r(e){for(var n=0;n=0&&""===e[t];t--);return n>t?[]:e.slice(n,t-n+1)}e=n.resolve(e).substr(1),t=n.resolve(t).substr(1);for(var i=r(e.split("/")),o=r(t.split("/")),a=Math.min(i.length,o.length),u=a,s=0;s=1;--o)if(47===(n=e.charCodeAt(o))){if(!i){r=o;break}}else i=!1;return-1===r?t?"/":".":t&&1===r?"/":e.slice(0,r)},n.basename=function(e,n){var t=function(e){"string"!==typeof e&&(e+="");var n,t=0,r=-1,i=!0;for(n=e.length-1;n>=0;--n)if(47===e.charCodeAt(n)){if(!i){t=n+1;break}}else-1===r&&(i=!1,r=n+1);return-1===r?"":e.slice(t,r)}(e);return n&&t.substr(-1*n.length)===n&&(t=t.substr(0,t.length-n.length)),t},n.extname=function(e){"string"!==typeof e&&(e+="");for(var n=-1,t=0,r=-1,i=!0,o=0,a=e.length-1;a>=0;--a){var u=e.charCodeAt(a);if(47!==u)-1===r&&(i=!1,r=a+1),46===u?-1===n?n=a:1!==o&&(o=1):-1!==n&&(o=-1);else if(!i){t=a+1;break}}return-1===n||-1===r||0===o||1===o&&n===r-1&&n===t+1?"":e.slice(n,r)};var i="b"==="ab".substr(-1)?function(e,n,t){return e.substr(n,t)}:function(e,n,t){return n<0&&(n=e.length+n),e.substr(n,t)}}).call(this,t(2))},function(e,n,t){"use strict";e.exports=function(e,n){return function(){for(var t=new Array(arguments.length),r=0;r=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],function(e){u.headers[e]={}}),r.forEach(["post","put","patch"],function(e){u.headers[e]=r.merge(o)}),e.exports=u}).call(this,t(2))},function(e,n,t){"use strict";var r=t(0),i=t(26),o=t(6),a=t(28),u=t(29),s=t(10);e.exports=function(e){return new Promise(function(n,c){var f=e.data,l=e.headers;r.isFormData(f)&&delete l["Content-Type"];var _=new XMLHttpRequest;if(e.auth){var p=e.auth.username||"",d=e.auth.password||"";l.Authorization="Basic "+btoa(p+":"+d)}if(_.open(e.method.toUpperCase(),o(e.url,e.params,e.paramsSerializer),!0),_.timeout=e.timeout,_.onreadystatechange=function(){if(_&&4===_.readyState&&(0!==_.status||_.responseURL&&0===_.responseURL.indexOf("file:"))){var t="getAllResponseHeaders"in _?a(_.getAllResponseHeaders()):null,r={data:e.responseType&&"text"!==e.responseType?_.response:_.responseText,status:_.status,statusText:_.statusText,headers:t,config:e,request:_};i(n,c,r),_=null}},_.onabort=function(){_&&(c(s("Request aborted",e,"ECONNABORTED",_)),_=null)},_.onerror=function(){c(s("Network Error",e,null,_)),_=null},_.ontimeout=function(){c(s("timeout of "+e.timeout+"ms exceeded",e,"ECONNABORTED",_)),_=null},r.isStandardBrowserEnv()){var y=t(30),m=(e.withCredentials||u(e.url))&&e.xsrfCookieName?y.read(e.xsrfCookieName):void 0;m&&(l[e.xsrfHeaderName]=m)}if("setRequestHeader"in _&&r.forEach(l,function(e,n){"undefined"===typeof f&&"content-type"===n.toLowerCase()?delete l[n]:_.setRequestHeader(n,e)}),e.withCredentials&&(_.withCredentials=!0),e.responseType)try{_.responseType=e.responseType}catch(h){if("json"!==e.responseType)throw h}"function"===typeof e.onDownloadProgress&&_.addEventListener("progress",e.onDownloadProgress),"function"===typeof e.onUploadProgress&&_.upload&&_.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then(function(e){_&&(_.abort(),c(e),_=null)}),void 0===f&&(f=null),_.send(f)})}},function(e,n,t){"use strict";var r=t(27);e.exports=function(e,n,t,i,o){var a=new Error(e);return r(a,n,t,i,o)}},function(e,n,t){"use strict";var r=t(0);e.exports=function(e,n){n=n||{};var t={};return r.forEach(["url","method","params","data"],function(e){"undefined"!==typeof n[e]&&(t[e]=n[e])}),r.forEach(["headers","auth","proxy"],function(i){r.isObject(n[i])?t[i]=r.deepMerge(e[i],n[i]):"undefined"!==typeof n[i]?t[i]=n[i]:r.isObject(e[i])?t[i]=r.deepMerge(e[i]):"undefined"!==typeof e[i]&&(t[i]=e[i])}),r.forEach(["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","maxContentLength","validateStatus","maxRedirects","httpAgent","httpsAgent","cancelToken","socketPath"],function(r){"undefined"!==typeof n[r]?t[r]=n[r]:"undefined"!==typeof e[r]&&(t[r]=e[r])}),t}},function(e,n,t){"use strict";function r(e){this.message=e}r.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},r.prototype.__CANCEL__=!0,e.exports=r},function(e,n,t){e.exports=t.p+"static/media/Diablo.ca302877.wasm"},function(e,n,t){(function(n,r){var i=function(){var e="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;return function(i){var o,a="undefined"!==typeof(i=i||{})?i:{},u={};for(o in a)a.hasOwnProperty(o)&&(u[o]=a[o]);a.arguments=[],a.thisProgram="./this.program",a.quit=function(e,n){throw n},a.preRun=[],a.postRun=[];var s,c,f=!1,l=!1;f="object"===typeof window,l="function"===typeof importScripts,s="object"===typeof n&&!f&&!l,c=!f&&!s&&!l;var _,p,d="";function y(e){return a.locateFile?a.locateFile(e,d):d+e}s?(d=r+"/",a.read=function(e,n){var r;return _||(_=t(3)),p||(p=t(4)),e=p.normalize(e),r=_.readFileSync(e),n?r:r.toString()},a.readBinary=function(e){var n=a.read(e,!0);return n.buffer||(n=new Uint8Array(n)),w(n.buffer),n},n.argv.length>1&&(a.thisProgram=n.argv[1].replace(/\\/g,"/")),a.arguments=n.argv.slice(2),n.on("uncaughtException",function(e){if(!(e instanceof be))throw e}),n.on("unhandledRejection",function(e,t){n.exit(1)}),a.quit=function(e){n.exit(e)},a.inspect=function(){return"[Emscripten Module object]"}):c?("undefined"!=typeof read&&(a.read=function(e){return read(e)}),a.readBinary=function(e){var n;return"function"===typeof readbuffer?new Uint8Array(readbuffer(e)):(w("object"===typeof(n=read(e,"binary"))),n)},"undefined"!=typeof scriptArgs?a.arguments=scriptArgs:"undefined"!=typeof arguments&&(a.arguments=arguments),"function"===typeof quit&&(a.quit=function(e){quit(e)})):(f||l)&&(f?document.currentScript&&(d=document.currentScript.src):d=self.location.href,e&&(d=e),d=0!==d.indexOf("blob:")?d.split("/").slice(0,-1).join("/")+"/":"",a.read=function(e){var n=new XMLHttpRequest;return n.open("GET",e,!1),n.send(null),n.responseText},l&&(a.readBinary=function(e){var n=new XMLHttpRequest;return n.open("GET",e,!1),n.responseType="arraybuffer",n.send(null),new Uint8Array(n.response)}),a.readAsync=function(e,n,t){var r=new XMLHttpRequest;r.open("GET",e,!0),r.responseType="arraybuffer",r.onload=function(){200==r.status||0==r.status&&r.response?n(r.response):t()},r.onerror=t,r.send(null)},a.setWindowTitle=function(e){document.title=e});var m=a.print||("undefined"!==typeof console?console.log.bind(console):"undefined"!==typeof print?print:null),h=a.printErr||("undefined"!==typeof printErr?printErr:"undefined"!==typeof console&&console.warn.bind(console)||m);for(o in u)u.hasOwnProperty(o)&&(a[o]=u[o]);u=void 0;var v=16;function g(e,n){return n||(n=v),e=Math.ceil(e/n)*n}var E={"f64-rem":function(e,n){return e%n},debugger:function(){}},b=(new Array(0),0);function w(e,n){e||Ae("Assertion failed: "+n)}function A(e,n){if(0===n||!e)return"";for(var t,r=0,i=0;r|=t=x[e+i>>0],(0!=t||n)&&(i++,!n||i!=n););n||(n=i);var o="";if(r<128){for(var a;n>0;)a=String.fromCharCode.apply(String,x.subarray(e,e+Math.min(n,1024))),o=o?o+a:a,e+=1024,n-=1024;return o}return function(e){return O(x,e)}(e)}var T="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;function O(e,n){for(var t=n;e[t];)++t;if(t-n>16&&e.subarray&&T)return T.decode(e.subarray(n,t));for(var r,i,o,a,u,s="";;){if(!(r=e[n++]))return s;if(128&r)if(i=63&e[n++],192!=(224&r))if(o=63&e[n++],224==(240&r)?r=(15&r)<<12|i<<6|o:(a=63&e[n++],240==(248&r)?r=(7&r)<<18|i<<12|o<<6|a:(u=63&e[n++],r=248==(252&r)?(3&r)<<24|i<<18|o<<12|a<<6|u:(1&r)<<30|i<<24|o<<18|a<<12|u<<6|63&e[n++])),r<65536)s+=String.fromCharCode(r);else{var c=r-65536;s+=String.fromCharCode(55296|c>>10,56320|1023&c)}else s+=String.fromCharCode((31&r)<<6|i);else s+=String.fromCharCode(r)}}"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le");var C,S,x,R,j,N,D,L,M,I,P=65536,B=16777216,k=16777216;function U(e,n){return e%n>0&&(e+=n-e%n),e}function F(e){a.buffer=C=e}function W(){a.HEAP8=S=new Int8Array(C),a.HEAP16=new Int16Array(C),a.HEAP32=R=new Int32Array(C),a.HEAPU8=x=new Uint8Array(C),a.HEAPU16=new Uint16Array(C),a.HEAPU32=new Uint32Array(C),a.HEAPF32=j=new Float32Array(C),a.HEAPF64=new Float64Array(C)}N=L=I=0,a.reallocBuffer||(a.reallocBuffer=function(e){var n;try{if(ArrayBuffer.transfer)n=ArrayBuffer.transfer(C,e);else{var t=S;n=new ArrayBuffer(e),new Int8Array(n).set(t)}}catch(r){return!1}return!!ye(n)&&n});try{Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get)(new ArrayBuffer(4))}catch(Te){(function(e){return e.byteLength})}var H=a.TOTAL_STACK||5242880,G=a.TOTAL_MEMORY||134217728;function q(e){for(;e.length>0;){var n=e.shift();if("function"!=typeof n){var t=n.func;"number"===typeof t?void 0===n.arg?a.dynCall_v(t):a.dynCall_vi(t,n.arg):t(void 0===n.arg?null:n.arg)}else n()}}G0),n.refcount--,0!==n.refcount||n.rethrown||(n.destructor&&a.dynCall_vi(n.destructor,e),delete ie.infos[e],oe(e))}},clearRef:function(e){e&&(ie.infos[e].refcount=0)}};function oe(e){try{return me(e)}catch(Te){}}function ae(){var e=ie.last;if(!e)return 0|(ve(0),0);var n=ie.infos[e],t=n.type;if(!t)return 0|(ve(0),e);var r=Array.prototype.slice.call(arguments);a.___cxa_is_pointer_type(t);ae.buffer||(ae.buffer=he(4)),R[ae.buffer>>2]=e,e=ae.buffer;for(var i=0;i>2],n.adjusted=e,0|(ve(r[i]),e);return e=R[e>>2],0|(ve(t),e)}var ue={varargs:0,get:function(e){return ue.varargs+=4,R[ue.varargs-4>>2]},getStr:function(){return A(ue.get())},get64:function(){var e=ue.get(),n=ue.get();return w(e>=0?0===n:-1===n),e},getZero:function(){w(0===ue.get())}};function se(e){!function(e,n){if(n&&a.noExitRuntime&&0===e)return;a.noExitRuntime||(b=!0,e,L=pe,q(Y),!0,a.onExit&&a.onExit(e));a.quit(e,new be(e))}(e)}var ce={};var fe=1,le={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};I=function(e){var n=N;return N=N+e+15&-16,n}(4),D=L=g(N),M=g(D+H),R[I>>2]=M,a.wasmTableSize=600,a.wasmMaxTableSize=600,a.asmGlobalArg={},a.asmLibraryArg={abort:Ae,enlargeMemory:function(){var e=a.usingWasm?P:B,n=2147483648-e;if(R[I>>2]>n)return!1;var t=G;for(G=Math.max(G,k);G>2];)G=G<=536870912?U(2*G,e):Math.min(U((3*G+2147483648)/4,e),n);var r=a.reallocBuffer(G);return r&&r.byteLength==G?(F(r),W(),!0):(G=t,!1)},getTotalMemory:function(){return G},abortOnCannotGrowMemory:function(){Ae("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+G+", (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 ")},invoke_i:function(e){var n=Ee();try{return a.dynCall_i(e)}catch(Te){if(ge(n),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_ii:function(e,n){var t=Ee();try{return a.dynCall_ii(e,n)}catch(Te){if(ge(t),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_iii:function(e,n,t){var r=Ee();try{return a.dynCall_iii(e,n,t)}catch(Te){if(ge(r),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_iiii:function(e,n,t,r){var i=Ee();try{return a.dynCall_iiii(e,n,t,r)}catch(Te){if(ge(i),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_iiiii:function(e,n,t,r,i){var o=Ee();try{return a.dynCall_iiiii(e,n,t,r,i)}catch(Te){if(ge(o),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_iiiiii:function(e,n,t,r,i,o){var u=Ee();try{return a.dynCall_iiiiii(e,n,t,r,i,o)}catch(Te){if(ge(u),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_ji:function(e,n){var t=Ee();try{return a.dynCall_ji(e,n)}catch(Te){if(ge(t),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_v:function(e){var n=Ee();try{a.dynCall_v(e)}catch(Te){if(ge(n),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_vi:function(e,n){var t=Ee();try{a.dynCall_vi(e,n)}catch(Te){if(ge(t),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_vii:function(e,n,t){var r=Ee();try{a.dynCall_vii(e,n,t)}catch(Te){if(ge(r),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_viii:function(e,n,t,r){var i=Ee();try{a.dynCall_viii(e,n,t,r)}catch(Te){if(ge(i),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_viiii:function(e,n,t,r,i){var o=Ee();try{a.dynCall_viiii(e,n,t,r,i)}catch(Te){if(ge(o),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_viiiii:function(e,n,t,r,i,o){var u=Ee();try{a.dynCall_viiiii(e,n,t,r,i,o)}catch(Te){if(ge(u),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_viji:function(e,n,t,r,i){var o=Ee();try{a.dynCall_viji(e,n,t,r,i)}catch(Te){if(ge(o),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},___assert_fail:function(e,n,t,r){Ae("Assertion failed: "+A(e)+", at: "+[n?A(n):"unknown filename",t,r?A(r):"unknown function"])},___cxa_allocate_exception:function(e){return he(e)},___cxa_begin_catch:function(e){var n=ie.infos[e];return n&&!n.caught&&(n.caught=!0,re.uncaught_exception--),n&&(n.rethrown=!1),ie.caught.push(e),ie.addRef(ie.deAdjust(e)),e},___cxa_end_catch:function(){a.setThrew(0);var e=ie.caught.pop();e&&(ie.decRef(ie.deAdjust(e)),ie.last=0)},___cxa_find_matching_catch_2:function(){return ae.apply(null,arguments)},___cxa_find_matching_catch_3:function(){return ae.apply(null,arguments)},___cxa_free_exception:oe,___cxa_throw:function(e,n,t){throw ie.infos[e]={ptr:e,adjusted:e,type:n,destructor:t,refcount:0,caught:!1,rethrown:!1},ie.last=e,"uncaught_exception"in re?re.uncaught_exception++:re.uncaught_exception=1,e},___lock:function(){},___resumeException:function(e){throw ie.last||(ie.last=e),e},___setErrNo:function(e){return a.___errno_location&&(R[a.___errno_location()>>2]=e),e},___syscall140:function(e,n){ue.varargs=n;try{var t=ue.getStreamFromFD(),r=(ue.get(),ue.get()),i=ue.get(),o=ue.get(),a=r;return FS.llseek(t,a,o),R[i>>2]=t.position,t.getdents&&0===a&&0===o&&(t.getdents=null),0}catch(Te){return"undefined"!==typeof FS&&Te instanceof FS.ErrnoError||Ae(Te),-Te.errno}},___syscall146:function e(n,t){ue.varargs=t;try{var r=ue.get(),i=ue.get(),o=ue.get(),a=0;e.buffers||(e.buffers=[null,[],[]],e.printChar=function(n,t){var r=e.buffers[n];w(r),0===t||10===t?((1===n?m:h)(O(r,0)),r.length=0):r.push(t)});for(var u=0;u>2],c=R[i+(8*u+4)>>2],f=0;f>2]=fe,ce[fe]=0,fe++,0)},_pthread_once:function e(n,t){e.seen||(e.seen={}),n in e.seen||(a.dynCall_v(t),e.seen[n]=1)},_pthread_setspecific:function(e,n){return e in ce?(ce[e]=n,0):le.EINVAL},_put_file_contents:function(e,n,t){var r=x.indexOf(0,e),i=String.fromCharCode.apply(null,x.subarray(e,r));self.DApi.put_file_contents(i,x.slice(n,n+t))},_remove_file:function(e){var n=x.indexOf(0,e),t=String.fromCharCode.apply(null,x.subarray(e,n));self.DApi.remove_file(t)},_show_alert:function(e){var n=x.indexOf(0,e),t=String.fromCharCode.apply(null,x.subarray(e,n));self.alert(t)},_time:function(e){var n=Date.now()/1e3|0;return e&&(R[e>>2]=n),n},DYNAMICTOP_PTR:I,STACKTOP:L};var _e=a.asm(a.asmGlobalArg,a.asmLibraryArg,C);a.asm=_e;a._DApi_Char=function(){return a.asm._DApi_Char.apply(null,arguments)},a._DApi_Init=function(){return a.asm._DApi_Init.apply(null,arguments)},a._DApi_Key=function(){return a.asm._DApi_Key.apply(null,arguments)},a._DApi_Mouse=function(){return a.asm._DApi_Mouse.apply(null,arguments)},a._DApi_Render=function(){return a.asm._DApi_Render.apply(null,arguments)},a._DApi_SyncText=function(){return a.asm._DApi_SyncText.apply(null,arguments)};var pe,de=a.__GLOBAL__sub_I_msgcmd_cpp=function(){return a.asm.__GLOBAL__sub_I_msgcmd_cpp.apply(null,arguments)},ye=(a.___cxa_can_catch=function(){return a.asm.___cxa_can_catch.apply(null,arguments)},a.___cxa_is_pointer_type=function(){return a.asm.___cxa_is_pointer_type.apply(null,arguments)},a.___em_js__api_close_keyboard=function(){return a.asm.___em_js__api_close_keyboard.apply(null,arguments)},a.___em_js__api_create_sound_float=function(){return a.asm.___em_js__api_create_sound_float.apply(null,arguments)},a.___em_js__api_delete_sound=function(){return a.asm.___em_js__api_delete_sound.apply(null,arguments)},a.___em_js__api_draw_begin=function(){return a.asm.___em_js__api_draw_begin.apply(null,arguments)},a.___em_js__api_draw_belt=function(){return a.asm.___em_js__api_draw_belt.apply(null,arguments)},a.___em_js__api_draw_blit=function(){return a.asm.___em_js__api_draw_blit.apply(null,arguments)},a.___em_js__api_draw_clip_text=function(){return a.asm.___em_js__api_draw_clip_text.apply(null,arguments)},a.___em_js__api_draw_end=function(){return a.asm.___em_js__api_draw_end.apply(null,arguments)},a.___em_js__api_draw_text=function(){return a.asm.___em_js__api_draw_text.apply(null,arguments)},a.___em_js__api_duplicate_sound=function(){return a.asm.___em_js__api_duplicate_sound.apply(null,arguments)},a.___em_js__api_open_keyboard=function(){return a.asm.___em_js__api_open_keyboard.apply(null,arguments)},a.___em_js__api_play_sound=function(){return a.asm.___em_js__api_play_sound.apply(null,arguments)},a.___em_js__api_set_cursor=function(){return a.asm.___em_js__api_set_cursor.apply(null,arguments)},a.___em_js__api_set_volume=function(){return a.asm.___em_js__api_set_volume.apply(null,arguments)},a.___em_js__api_stop_sound=function(){return a.asm.___em_js__api_stop_sound.apply(null,arguments)},a.___em_js__exit_error=function(){return a.asm.___em_js__exit_error.apply(null,arguments)},a.___em_js__get_file_contents=function(){return a.asm.___em_js__get_file_contents.apply(null,arguments)},a.___em_js__get_file_size=function(){return a.asm.___em_js__get_file_size.apply(null,arguments)},a.___em_js__put_file_contents=function(){return a.asm.___em_js__put_file_contents.apply(null,arguments)},a.___em_js__remove_file=function(){return a.asm.___em_js__remove_file.apply(null,arguments)},a.___em_js__show_alert=function(){return a.asm.___em_js__show_alert.apply(null,arguments)},a.___em_js__trace_pop=function(){return a.asm.___em_js__trace_pop.apply(null,arguments)},a.___em_js__trace_push=function(){return a.asm.___em_js__trace_push.apply(null,arguments)},a._emscripten_replace_memory=function(){return a.asm._emscripten_replace_memory.apply(null,arguments)}),me=a._free=function(){return a.asm._free.apply(null,arguments)},he=a._malloc=function(){return a.asm._malloc.apply(null,arguments)},ve=a.setTempRet0=function(){return a.asm.setTempRet0.apply(null,arguments)},ge=(a.setThrew=function(){return a.asm.setThrew.apply(null,arguments)},a.stackRestore=function(){return a.asm.stackRestore.apply(null,arguments)}),Ee=a.stackSave=function(){return a.asm.stackSave.apply(null,arguments)};a.dynCall_i=function(){return a.asm.dynCall_i.apply(null,arguments)},a.dynCall_ii=function(){return a.asm.dynCall_ii.apply(null,arguments)},a.dynCall_iii=function(){return a.asm.dynCall_iii.apply(null,arguments)},a.dynCall_iiii=function(){return a.asm.dynCall_iiii.apply(null,arguments)},a.dynCall_iiiii=function(){return a.asm.dynCall_iiiii.apply(null,arguments)},a.dynCall_iiiiii=function(){return a.asm.dynCall_iiiiii.apply(null,arguments)},a.dynCall_ji=function(){return a.asm.dynCall_ji.apply(null,arguments)},a.dynCall_v=function(){return a.asm.dynCall_v.apply(null,arguments)},a.dynCall_vi=function(){return a.asm.dynCall_vi.apply(null,arguments)},a.dynCall_vii=function(){return a.asm.dynCall_vii.apply(null,arguments)},a.dynCall_viii=function(){return a.asm.dynCall_viii.apply(null,arguments)},a.dynCall_viiii=function(){return a.asm.dynCall_viiii.apply(null,arguments)},a.dynCall_viiiii=function(){return a.asm.dynCall_viiiii.apply(null,arguments)},a.dynCall_viji=function(){return a.asm.dynCall_viji.apply(null,arguments)};function be(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function we(e){function n(){a.calledRun||(a.calledRun=!0,b||(Q||(Q=!0,q(K)),q(X),a.onRuntimeInitialized&&a.onRuntimeInitialized(),function(){if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)J(a.postRun.shift());q(V)}()))}e=e||a.arguments,Z>0||(!function(){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)e=a.preRun.shift(),z.unshift(e);var e;q(z)}(),Z>0||a.calledRun||(a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1),n()},1)):n()))}function Ae(e){throw a.onAbort&&a.onAbort(e),void 0!==e?(m(e),h(e),e=JSON.stringify(e)):e="",b=!0,1,"abort("+e+"). Build with -s ASSERTIONS=1 for more info."}if(a.asm=_e,a.then=function(e){if(a.calledRun)e(a);else{var n=a.onRuntimeInitialized;a.onRuntimeInitialized=function(){n&&n(),e(a)}}return a},be.prototype=new Error,be.prototype.constructor=be,ee=function e(){a.calledRun||we(),a.calledRun||(ee=e)},a.run=we,a.abort=Ae,a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);a.preInit.length>0;)a.preInit.pop()();return a.noExitRuntime=!0,we(),a.ready=new Promise(function(e,n){delete a.then,a.onAbort=function(e){n(e)},J(function(){e(a)})}),i}}();e.exports=i}).call(this,t(2),"/")},function(e,n,t){e.exports=t.p+"static/media/DiabloSpawn.1a7b93b3.wasm"},function(e,n,t){(function(n,r){var i=function(){var e="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;return function(i){var o,a="undefined"!==typeof(i=i||{})?i:{},u={};for(o in a)a.hasOwnProperty(o)&&(u[o]=a[o]);a.arguments=[],a.thisProgram="./this.program",a.quit=function(e,n){throw n},a.preRun=[],a.postRun=[];var s,c,f=!1,l=!1;f="object"===typeof window,l="function"===typeof importScripts,s="object"===typeof n&&!f&&!l,c=!f&&!s&&!l;var _,p,d="";function y(e){return a.locateFile?a.locateFile(e,d):d+e}s?(d=r+"/",a.read=function(e,n){var r;return _||(_=t(3)),p||(p=t(4)),e=p.normalize(e),r=_.readFileSync(e),n?r:r.toString()},a.readBinary=function(e){var n=a.read(e,!0);return n.buffer||(n=new Uint8Array(n)),w(n.buffer),n},n.argv.length>1&&(a.thisProgram=n.argv[1].replace(/\\/g,"/")),a.arguments=n.argv.slice(2),n.on("uncaughtException",function(e){if(!(e instanceof be))throw e}),n.on("unhandledRejection",function(e,t){n.exit(1)}),a.quit=function(e){n.exit(e)},a.inspect=function(){return"[Emscripten Module object]"}):c?("undefined"!=typeof read&&(a.read=function(e){return read(e)}),a.readBinary=function(e){var n;return"function"===typeof readbuffer?new Uint8Array(readbuffer(e)):(w("object"===typeof(n=read(e,"binary"))),n)},"undefined"!=typeof scriptArgs?a.arguments=scriptArgs:"undefined"!=typeof arguments&&(a.arguments=arguments),"function"===typeof quit&&(a.quit=function(e){quit(e)})):(f||l)&&(f?document.currentScript&&(d=document.currentScript.src):d=self.location.href,e&&(d=e),d=0!==d.indexOf("blob:")?d.split("/").slice(0,-1).join("/")+"/":"",a.read=function(e){var n=new XMLHttpRequest;return n.open("GET",e,!1),n.send(null),n.responseText},l&&(a.readBinary=function(e){var n=new XMLHttpRequest;return n.open("GET",e,!1),n.responseType="arraybuffer",n.send(null),new Uint8Array(n.response)}),a.readAsync=function(e,n,t){var r=new XMLHttpRequest;r.open("GET",e,!0),r.responseType="arraybuffer",r.onload=function(){200==r.status||0==r.status&&r.response?n(r.response):t()},r.onerror=t,r.send(null)},a.setWindowTitle=function(e){document.title=e});var m=a.print||("undefined"!==typeof console?console.log.bind(console):"undefined"!==typeof print?print:null),h=a.printErr||("undefined"!==typeof printErr?printErr:"undefined"!==typeof console&&console.warn.bind(console)||m);for(o in u)u.hasOwnProperty(o)&&(a[o]=u[o]);u=void 0;var v=16;function g(e,n){return n||(n=v),e=Math.ceil(e/n)*n}var E={"f64-rem":function(e,n){return e%n},debugger:function(){}},b=(new Array(0),0);function w(e,n){e||Ae("Assertion failed: "+n)}function A(e,n){if(0===n||!e)return"";for(var t,r=0,i=0;r|=t=x[e+i>>0],(0!=t||n)&&(i++,!n||i!=n););n||(n=i);var o="";if(r<128){for(var a;n>0;)a=String.fromCharCode.apply(String,x.subarray(e,e+Math.min(n,1024))),o=o?o+a:a,e+=1024,n-=1024;return o}return function(e){return O(x,e)}(e)}var T="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;function O(e,n){for(var t=n;e[t];)++t;if(t-n>16&&e.subarray&&T)return T.decode(e.subarray(n,t));for(var r,i,o,a,u,s="";;){if(!(r=e[n++]))return s;if(128&r)if(i=63&e[n++],192!=(224&r))if(o=63&e[n++],224==(240&r)?r=(15&r)<<12|i<<6|o:(a=63&e[n++],240==(248&r)?r=(7&r)<<18|i<<12|o<<6|a:(u=63&e[n++],r=248==(252&r)?(3&r)<<24|i<<18|o<<12|a<<6|u:(1&r)<<30|i<<24|o<<18|a<<12|u<<6|63&e[n++])),r<65536)s+=String.fromCharCode(r);else{var c=r-65536;s+=String.fromCharCode(55296|c>>10,56320|1023&c)}else s+=String.fromCharCode((31&r)<<6|i);else s+=String.fromCharCode(r)}}"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le");var C,S,x,R,j,N,D,L,M,I,P=65536,B=16777216,k=16777216;function U(e,n){return e%n>0&&(e+=n-e%n),e}function F(e){a.buffer=C=e}function W(){a.HEAP8=S=new Int8Array(C),a.HEAP16=new Int16Array(C),a.HEAP32=R=new Int32Array(C),a.HEAPU8=x=new Uint8Array(C),a.HEAPU16=new Uint16Array(C),a.HEAPU32=new Uint32Array(C),a.HEAPF32=j=new Float32Array(C),a.HEAPF64=new Float64Array(C)}N=L=I=0,a.reallocBuffer||(a.reallocBuffer=function(e){var n;try{if(ArrayBuffer.transfer)n=ArrayBuffer.transfer(C,e);else{var t=S;n=new ArrayBuffer(e),new Int8Array(n).set(t)}}catch(r){return!1}return!!ye(n)&&n});try{Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get)(new ArrayBuffer(4))}catch(Te){(function(e){return e.byteLength})}var H=a.TOTAL_STACK||5242880,G=a.TOTAL_MEMORY||134217728;function q(e){for(;e.length>0;){var n=e.shift();if("function"!=typeof n){var t=n.func;"number"===typeof t?void 0===n.arg?a.dynCall_v(t):a.dynCall_vi(t,n.arg):t(void 0===n.arg?null:n.arg)}else n()}}G0),n.refcount--,0!==n.refcount||n.rethrown||(n.destructor&&a.dynCall_vi(n.destructor,e),delete ie.infos[e],oe(e))}},clearRef:function(e){e&&(ie.infos[e].refcount=0)}};function oe(e){try{return me(e)}catch(Te){}}function ae(){var e=ie.last;if(!e)return 0|(ve(0),0);var n=ie.infos[e],t=n.type;if(!t)return 0|(ve(0),e);var r=Array.prototype.slice.call(arguments);a.___cxa_is_pointer_type(t);ae.buffer||(ae.buffer=he(4)),R[ae.buffer>>2]=e,e=ae.buffer;for(var i=0;i>2],n.adjusted=e,0|(ve(r[i]),e);return e=R[e>>2],0|(ve(t),e)}var ue={varargs:0,get:function(e){return ue.varargs+=4,R[ue.varargs-4>>2]},getStr:function(){return A(ue.get())},get64:function(){var e=ue.get(),n=ue.get();return w(e>=0?0===n:-1===n),e},getZero:function(){w(0===ue.get())}};function se(e){!function(e,n){if(n&&a.noExitRuntime&&0===e)return;a.noExitRuntime||(b=!0,e,L=pe,q(Y),!0,a.onExit&&a.onExit(e));a.quit(e,new be(e))}(e)}var ce={};var fe=1,le={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};I=function(e){var n=N;return N=N+e+15&-16,n}(4),D=L=g(N),M=g(D+H),R[I>>2]=M,a.wasmTableSize=588,a.wasmMaxTableSize=588,a.asmGlobalArg={},a.asmLibraryArg={abort:Ae,enlargeMemory:function(){var e=a.usingWasm?P:B,n=2147483648-e;if(R[I>>2]>n)return!1;var t=G;for(G=Math.max(G,k);G>2];)G=G<=536870912?U(2*G,e):Math.min(U((3*G+2147483648)/4,e),n);var r=a.reallocBuffer(G);return r&&r.byteLength==G?(F(r),W(),!0):(G=t,!1)},getTotalMemory:function(){return G},abortOnCannotGrowMemory:function(){Ae("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+G+", (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 ")},invoke_i:function(e){var n=Ee();try{return a.dynCall_i(e)}catch(Te){if(ge(n),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_ii:function(e,n){var t=Ee();try{return a.dynCall_ii(e,n)}catch(Te){if(ge(t),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_iii:function(e,n,t){var r=Ee();try{return a.dynCall_iii(e,n,t)}catch(Te){if(ge(r),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_iiii:function(e,n,t,r){var i=Ee();try{return a.dynCall_iiii(e,n,t,r)}catch(Te){if(ge(i),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_iiiii:function(e,n,t,r,i){var o=Ee();try{return a.dynCall_iiiii(e,n,t,r,i)}catch(Te){if(ge(o),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_iiiiii:function(e,n,t,r,i,o){var u=Ee();try{return a.dynCall_iiiiii(e,n,t,r,i,o)}catch(Te){if(ge(u),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_ji:function(e,n){var t=Ee();try{return a.dynCall_ji(e,n)}catch(Te){if(ge(t),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_v:function(e){var n=Ee();try{a.dynCall_v(e)}catch(Te){if(ge(n),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_vi:function(e,n){var t=Ee();try{a.dynCall_vi(e,n)}catch(Te){if(ge(t),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_vii:function(e,n,t){var r=Ee();try{a.dynCall_vii(e,n,t)}catch(Te){if(ge(r),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_viii:function(e,n,t,r){var i=Ee();try{a.dynCall_viii(e,n,t,r)}catch(Te){if(ge(i),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_viiii:function(e,n,t,r,i){var o=Ee();try{a.dynCall_viiii(e,n,t,r,i)}catch(Te){if(ge(o),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_viiiii:function(e,n,t,r,i,o){var u=Ee();try{a.dynCall_viiiii(e,n,t,r,i,o)}catch(Te){if(ge(u),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_viji:function(e,n,t,r,i){var o=Ee();try{a.dynCall_viji(e,n,t,r,i)}catch(Te){if(ge(o),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},___assert_fail:function(e,n,t,r){Ae("Assertion failed: "+A(e)+", at: "+[n?A(n):"unknown filename",t,r?A(r):"unknown function"])},___cxa_allocate_exception:function(e){return he(e)},___cxa_begin_catch:function(e){var n=ie.infos[e];return n&&!n.caught&&(n.caught=!0,re.uncaught_exception--),n&&(n.rethrown=!1),ie.caught.push(e),ie.addRef(ie.deAdjust(e)),e},___cxa_end_catch:function(){a.setThrew(0);var e=ie.caught.pop();e&&(ie.decRef(ie.deAdjust(e)),ie.last=0)},___cxa_find_matching_catch_2:function(){return ae.apply(null,arguments)},___cxa_find_matching_catch_3:function(){return ae.apply(null,arguments)},___cxa_free_exception:oe,___cxa_throw:function(e,n,t){throw ie.infos[e]={ptr:e,adjusted:e,type:n,destructor:t,refcount:0,caught:!1,rethrown:!1},ie.last=e,"uncaught_exception"in re?re.uncaught_exception++:re.uncaught_exception=1,e},___lock:function(){},___resumeException:function(e){throw ie.last||(ie.last=e),e},___setErrNo:function(e){return a.___errno_location&&(R[a.___errno_location()>>2]=e),e},___syscall140:function(e,n){ue.varargs=n;try{var t=ue.getStreamFromFD(),r=(ue.get(),ue.get()),i=ue.get(),o=ue.get(),a=r;return FS.llseek(t,a,o),R[i>>2]=t.position,t.getdents&&0===a&&0===o&&(t.getdents=null),0}catch(Te){return"undefined"!==typeof FS&&Te instanceof FS.ErrnoError||Ae(Te),-Te.errno}},___syscall146:function e(n,t){ue.varargs=t;try{var r=ue.get(),i=ue.get(),o=ue.get(),a=0;e.buffers||(e.buffers=[null,[],[]],e.printChar=function(n,t){var r=e.buffers[n];w(r),0===t||10===t?((1===n?m:h)(O(r,0)),r.length=0):r.push(t)});for(var u=0;u>2],c=R[i+(8*u+4)>>2],f=0;f>2]=fe,ce[fe]=0,fe++,0)},_pthread_once:function e(n,t){e.seen||(e.seen={}),n in e.seen||(a.dynCall_v(t),e.seen[n]=1)},_pthread_setspecific:function(e,n){return e in ce?(ce[e]=n,0):le.EINVAL},_put_file_contents:function(e,n,t){var r=x.indexOf(0,e),i=String.fromCharCode.apply(null,x.subarray(e,r));self.DApi.put_file_contents(i,x.slice(n,n+t))},_remove_file:function(e){var n=x.indexOf(0,e),t=String.fromCharCode.apply(null,x.subarray(e,n));self.DApi.remove_file(t)},_show_alert:function(e){var n=x.indexOf(0,e),t=String.fromCharCode.apply(null,x.subarray(e,n));self.alert(t)},_time:function(e){var n=Date.now()/1e3|0;return e&&(R[e>>2]=n),n},DYNAMICTOP_PTR:I,STACKTOP:L};var _e=a.asm(a.asmGlobalArg,a.asmLibraryArg,C);a.asm=_e;a._DApi_Char=function(){return a.asm._DApi_Char.apply(null,arguments)},a._DApi_Init=function(){return a.asm._DApi_Init.apply(null,arguments)},a._DApi_Key=function(){return a.asm._DApi_Key.apply(null,arguments)},a._DApi_Mouse=function(){return a.asm._DApi_Mouse.apply(null,arguments)},a._DApi_Render=function(){return a.asm._DApi_Render.apply(null,arguments)},a._DApi_SyncText=function(){return a.asm._DApi_SyncText.apply(null,arguments)};var pe,de=a.__GLOBAL__sub_I_msgcmd_cpp=function(){return a.asm.__GLOBAL__sub_I_msgcmd_cpp.apply(null,arguments)},ye=(a.___cxa_can_catch=function(){return a.asm.___cxa_can_catch.apply(null,arguments)},a.___cxa_is_pointer_type=function(){return a.asm.___cxa_is_pointer_type.apply(null,arguments)},a.___em_js__api_close_keyboard=function(){return a.asm.___em_js__api_close_keyboard.apply(null,arguments)},a.___em_js__api_create_sound_float=function(){return a.asm.___em_js__api_create_sound_float.apply(null,arguments)},a.___em_js__api_delete_sound=function(){return a.asm.___em_js__api_delete_sound.apply(null,arguments)},a.___em_js__api_draw_begin=function(){return a.asm.___em_js__api_draw_begin.apply(null,arguments)},a.___em_js__api_draw_belt=function(){return a.asm.___em_js__api_draw_belt.apply(null,arguments)},a.___em_js__api_draw_blit=function(){return a.asm.___em_js__api_draw_blit.apply(null,arguments)},a.___em_js__api_draw_clip_text=function(){return a.asm.___em_js__api_draw_clip_text.apply(null,arguments)},a.___em_js__api_draw_end=function(){return a.asm.___em_js__api_draw_end.apply(null,arguments)},a.___em_js__api_draw_text=function(){return a.asm.___em_js__api_draw_text.apply(null,arguments)},a.___em_js__api_duplicate_sound=function(){return a.asm.___em_js__api_duplicate_sound.apply(null,arguments)},a.___em_js__api_open_keyboard=function(){return a.asm.___em_js__api_open_keyboard.apply(null,arguments)},a.___em_js__api_play_sound=function(){return a.asm.___em_js__api_play_sound.apply(null,arguments)},a.___em_js__api_set_cursor=function(){return a.asm.___em_js__api_set_cursor.apply(null,arguments)},a.___em_js__api_set_volume=function(){return a.asm.___em_js__api_set_volume.apply(null,arguments)},a.___em_js__api_stop_sound=function(){return a.asm.___em_js__api_stop_sound.apply(null,arguments)},a.___em_js__exit_error=function(){return a.asm.___em_js__exit_error.apply(null,arguments)},a.___em_js__get_file_contents=function(){return a.asm.___em_js__get_file_contents.apply(null,arguments)},a.___em_js__get_file_size=function(){return a.asm.___em_js__get_file_size.apply(null,arguments)},a.___em_js__put_file_contents=function(){return a.asm.___em_js__put_file_contents.apply(null,arguments)},a.___em_js__remove_file=function(){return a.asm.___em_js__remove_file.apply(null,arguments)},a.___em_js__show_alert=function(){return a.asm.___em_js__show_alert.apply(null,arguments)},a.___em_js__trace_pop=function(){return a.asm.___em_js__trace_pop.apply(null,arguments)},a.___em_js__trace_push=function(){return a.asm.___em_js__trace_push.apply(null,arguments)},a._emscripten_replace_memory=function(){return a.asm._emscripten_replace_memory.apply(null,arguments)}),me=a._free=function(){return a.asm._free.apply(null,arguments)},he=a._malloc=function(){return a.asm._malloc.apply(null,arguments)},ve=a.setTempRet0=function(){return a.asm.setTempRet0.apply(null,arguments)},ge=(a.setThrew=function(){return a.asm.setThrew.apply(null,arguments)},a.stackRestore=function(){return a.asm.stackRestore.apply(null,arguments)}),Ee=a.stackSave=function(){return a.asm.stackSave.apply(null,arguments)};a.dynCall_i=function(){return a.asm.dynCall_i.apply(null,arguments)},a.dynCall_ii=function(){return a.asm.dynCall_ii.apply(null,arguments)},a.dynCall_iii=function(){return a.asm.dynCall_iii.apply(null,arguments)},a.dynCall_iiii=function(){return a.asm.dynCall_iiii.apply(null,arguments)},a.dynCall_iiiii=function(){return a.asm.dynCall_iiiii.apply(null,arguments)},a.dynCall_iiiiii=function(){return a.asm.dynCall_iiiiii.apply(null,arguments)},a.dynCall_ji=function(){return a.asm.dynCall_ji.apply(null,arguments)},a.dynCall_v=function(){return a.asm.dynCall_v.apply(null,arguments)},a.dynCall_vi=function(){return a.asm.dynCall_vi.apply(null,arguments)},a.dynCall_vii=function(){return a.asm.dynCall_vii.apply(null,arguments)},a.dynCall_viii=function(){return a.asm.dynCall_viii.apply(null,arguments)},a.dynCall_viiii=function(){return a.asm.dynCall_viiii.apply(null,arguments)},a.dynCall_viiiii=function(){return a.asm.dynCall_viiiii.apply(null,arguments)},a.dynCall_viji=function(){return a.asm.dynCall_viji.apply(null,arguments)};function be(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function we(e){function n(){a.calledRun||(a.calledRun=!0,b||(Q||(Q=!0,q(K)),q(X),a.onRuntimeInitialized&&a.onRuntimeInitialized(),function(){if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)J(a.postRun.shift());q(V)}()))}e=e||a.arguments,Z>0||(!function(){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)e=a.preRun.shift(),z.unshift(e);var e;q(z)}(),Z>0||a.calledRun||(a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1),n()},1)):n()))}function Ae(e){throw a.onAbort&&a.onAbort(e),void 0!==e?(m(e),h(e),e=JSON.stringify(e)):e="",b=!0,1,"abort("+e+"). Build with -s ASSERTIONS=1 for more info."}if(a.asm=_e,a.then=function(e){if(a.calledRun)e(a);else{var n=a.onRuntimeInitialized;a.onRuntimeInitialized=function(){n&&n(),e(a)}}return a},be.prototype=new Error,be.prototype.constructor=be,ee=function e(){a.calledRun||we(),a.calledRun||(ee=e)},a.run=we,a.abort=Ae,a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);a.preInit.length>0;)a.preInit.pop()();return a.noExitRuntime=!0,we(),a.ready=new Promise(function(e,n){delete a.then,a.onAbort=function(e){n(e)},J(function(){e(a)})}),i}}();e.exports=i}).call(this,t(2),"/")},function(e,n,t){e.exports=t(19)},function(e,n,t){var r=function(e){"use strict";var n,t=Object.prototype,r=t.hasOwnProperty,i="function"===typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function s(e,n,t,r){var i=n&&n.prototype instanceof y?n:y,o=Object.create(i.prototype),a=new S(r||[]);return o._invoke=function(e,n,t){var r=f;return function(i,o){if(r===_)throw new Error("Generator is already running");if(r===p){if("throw"===i)throw o;return R()}for(t.method=i,t.arg=o;;){var a=t.delegate;if(a){var u=T(a,t);if(u){if(u===d)continue;return u}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if(r===f)throw r=p,t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);r=_;var s=c(e,n,t);if("normal"===s.type){if(r=t.done?p:l,s.arg===d)continue;return{value:s.arg,done:t.done}}"throw"===s.type&&(r=p,t.method="throw",t.arg=s.arg)}}}(e,t,a),o}function c(e,n,t){try{return{type:"normal",arg:e.call(n,t)}}catch(r){return{type:"throw",arg:r}}}e.wrap=s;var f="suspendedStart",l="suspendedYield",_="executing",p="completed",d={};function y(){}function m(){}function h(){}var v={};v[o]=function(){return this};var g=Object.getPrototypeOf,E=g&&g(g(x([])));E&&E!==t&&r.call(E,o)&&(v=E);var b=h.prototype=y.prototype=Object.create(v);function w(e){["next","throw","return"].forEach(function(n){e[n]=function(e){return this._invoke(n,e)}})}function A(e){var n;this._invoke=function(t,i){function o(){return new Promise(function(n,o){!function n(t,i,o,a){var u=c(e[t],e,i);if("throw"!==u.type){var s=u.arg,f=s.value;return f&&"object"===typeof f&&r.call(f,"__await")?Promise.resolve(f.__await).then(function(e){n("next",e,o,a)},function(e){n("throw",e,o,a)}):Promise.resolve(f).then(function(e){s.value=e,o(s)},function(e){return n("throw",e,o,a)})}a(u.arg)}(t,i,n,o)})}return n=n?n.then(o,o):o()}}function T(e,t){var r=e.iterator[t.method];if(r===n){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=n,T(e,t),"throw"===t.method))return d;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return d}var i=c(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,d;var o=i.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=n),t.delegate=null,d):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,d)}function O(e){var n={tryLoc:e[0]};1 in e&&(n.catchLoc=e[1]),2 in e&&(n.finallyLoc=e[2],n.afterLoc=e[3]),this.tryEntries.push(n)}function C(e){var n=e.completion||{};n.type="normal",delete n.arg,e.completion=n}function S(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function x(e){if(e){var t=e[o];if(t)return t.call(e);if("function"===typeof e.next)return e;if(!isNaN(e.length)){var i=-1,a=function t(){for(;++i=0;--o){var a=this.tryEntries[o],u=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var s=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--t){var i=this.tryEntries[t];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--n){var t=this.tryEntries[n];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),C(t),d}},catch:function(e){for(var n=this.tryEntries.length-1;n>=0;--n){var t=this.tryEntries[n];if(t.tryLoc===e){var r=t.completion;if("throw"===r.type){var i=r.arg;C(t)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:x(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=n),d}},e}(e.exports);try{regeneratorRuntime=r}catch(i){Function("r","regeneratorRuntime = r")(r)}},function(e,n,t){"use strict";var r=t(0),i=t(5),o=t(21),a=t(11);function u(e){var n=new o(e),t=i(o.prototype.request,n);return r.extend(t,o.prototype,n),r.extend(t,n),t}var s=u(t(8));s.Axios=o,s.create=function(e){return u(a(s.defaults,e))},s.Cancel=t(12),s.CancelToken=t(33),s.isCancel=t(7),s.all=function(e){return Promise.all(e)},s.spread=t(34),e.exports=s,e.exports.default=s},function(e,n){e.exports=function(e){return null!=e&&null!=e.constructor&&"function"===typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}},function(e,n,t){"use strict";var r=t(0),i=t(6),o=t(22),a=t(23),u=t(11);function s(e){this.defaults=e,this.interceptors={request:new o,response:new o}}s.prototype.request=function(e){"string"===typeof e?(e=arguments[1]||{}).url=arguments[0]:e=e||{},(e=u(this.defaults,e)).method=e.method?e.method.toLowerCase():"get";var n=[a,void 0],t=Promise.resolve(e);for(this.interceptors.request.forEach(function(e){n.unshift(e.fulfilled,e.rejected)}),this.interceptors.response.forEach(function(e){n.push(e.fulfilled,e.rejected)});n.length;)t=t.then(n.shift(),n.shift());return t},s.prototype.getUri=function(e){return e=u(this.defaults,e),i(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},r.forEach(["delete","get","head","options"],function(e){s.prototype[e]=function(n,t){return this.request(r.merge(t||{},{method:e,url:n}))}}),r.forEach(["post","put","patch"],function(e){s.prototype[e]=function(n,t,i){return this.request(r.merge(i||{},{method:e,url:n,data:t}))}}),e.exports=s},function(e,n,t){"use strict";var r=t(0);function i(){this.handlers=[]}i.prototype.use=function(e,n){return this.handlers.push({fulfilled:e,rejected:n}),this.handlers.length-1},i.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},i.prototype.forEach=function(e){r.forEach(this.handlers,function(n){null!==n&&e(n)})},e.exports=i},function(e,n,t){"use strict";var r=t(0),i=t(24),o=t(7),a=t(8),u=t(31),s=t(32);function c(e){e.cancelToken&&e.cancelToken.throwIfRequested()}e.exports=function(e){return c(e),e.baseURL&&!u(e.url)&&(e.url=s(e.baseURL,e.url)),e.headers=e.headers||{},e.data=i(e.data,e.headers,e.transformRequest),e.headers=r.merge(e.headers.common||{},e.headers[e.method]||{},e.headers||{}),r.forEach(["delete","get","head","post","put","patch","common"],function(n){delete e.headers[n]}),(e.adapter||a.adapter)(e).then(function(n){return c(e),n.data=i(n.data,n.headers,e.transformResponse),n},function(n){return o(n)||(c(e),n&&n.response&&(n.response.data=i(n.response.data,n.response.headers,e.transformResponse))),Promise.reject(n)})}},function(e,n,t){"use strict";var r=t(0);e.exports=function(e,n,t){return r.forEach(t,function(t){e=t(e,n)}),e}},function(e,n,t){"use strict";var r=t(0);e.exports=function(e,n){r.forEach(e,function(t,r){r!==n&&r.toUpperCase()===n.toUpperCase()&&(e[n]=t,delete e[r])})}},function(e,n,t){"use strict";var r=t(10);e.exports=function(e,n,t){var i=t.config.validateStatus;!i||i(t.status)?e(t):n(r("Request failed with status code "+t.status,t.config,null,t.request,t))}},function(e,n,t){"use strict";e.exports=function(e,n,t,r,i){return e.config=n,t&&(e.code=t),e.request=r,e.response=i,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},function(e,n,t){"use strict";var r=t(0),i=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var n,t,o,a={};return e?(r.forEach(e.split("\n"),function(e){if(o=e.indexOf(":"),n=r.trim(e.substr(0,o)).toLowerCase(),t=r.trim(e.substr(o+1)),n){if(a[n]&&i.indexOf(n)>=0)return;a[n]="set-cookie"===n?(a[n]?a[n]:[]).concat([t]):a[n]?a[n]+", "+t:t}}),a):a}},function(e,n,t){"use strict";var r=t(0);e.exports=r.isStandardBrowserEnv()?function(){var e,n=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a");function i(e){var r=e;return n&&(t.setAttribute("href",r),r=t.href),t.setAttribute("href",r),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:"/"===t.pathname.charAt(0)?t.pathname:"/"+t.pathname}}return e=i(window.location.href),function(n){var t=r.isString(n)?i(n):n;return t.protocol===e.protocol&&t.host===e.host}}():function(){return!0}},function(e,n,t){"use strict";var r=t(0);e.exports=r.isStandardBrowserEnv()?{write:function(e,n,t,i,o,a){var u=[];u.push(e+"="+encodeURIComponent(n)),r.isNumber(t)&&u.push("expires="+new Date(t).toGMTString()),r.isString(i)&&u.push("path="+i),r.isString(o)&&u.push("domain="+o),!0===a&&u.push("secure"),document.cookie=u.join("; ")},read:function(e){var n=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return n?decodeURIComponent(n[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},function(e,n,t){"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},function(e,n,t){"use strict";e.exports=function(e,n){return n?e.replace(/\/+$/,"")+"/"+n.replace(/^\/+/,""):e}},function(e,n,t){"use strict";var r=t(12);function i(e){if("function"!==typeof e)throw new TypeError("executor must be a function.");var n;this.promise=new Promise(function(e){n=e});var t=this;e(function(e){t.reason||(t.reason=new r(e),n(t.reason))})}i.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},i.source=function(){var e;return{token:new i(function(n){e=n}),cancel:e}},e.exports=i},function(e,n,t){"use strict";e.exports=function(e){return function(n){return e.apply(null,n)}}},function(e,n,t){"use strict";function r(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=[],r=!0,i=!1,o=void 0;try{for(var a,u=e[Symbol.iterator]();!(r=(a=u.next()).done)&&(t.push(a.value),!n||t.length!==n);r=!0);}catch(s){i=!0,o=s}finally{try{r||null==u.return||u.return()}finally{if(i)throw o}}return t}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}t.r(n);var i=t(1),o=t.n(i);function a(e){return function(e){if(Array.isArray(e)){for(var n=0,t=new Array(e.length);n>16&255,o=r>>8&255,a=255&r;A.fillStyle="rgb(".concat(i,", ").concat(o,", ").concat(a,")"),A.fillText(t,e,n+22)},draw_end:function(){A.restore();var e=w.transferToImageBitmap(),n=[e];S&&n.push(S.buffer),b.postMessage({action:"render",batch:{bitmap:e,belt:S}},n),S=null},draw_belt:function(e){S=e.slice()}},N=null,D=null,L=0,M=0;["create_sound","duplicate_sound"].forEach(function(e){x[e]=function(){for(var n=arguments.length,t=new Array(n),r=0;r=L?N.push({func:e,params:t}):b.postMessage({action:"audio",func:e,params:t})}}),b.DApi=x;var I=null;function P(e){try{var n;N=[],D=[];for(var t=arguments.length,r=new Array(t>1?t-1:0),i=1;i1)for(var t=1;t=0;r--){var i=e[r];"."===i?e.splice(r,1):".."===i?(e.splice(r,1),t++):t&&(e.splice(r,1),t--)}if(n)for(;t--;t)e.unshift("..");return e}function r(e,n){if(e.filter)return e.filter(n);for(var t=[],r=0;r=-1&&!i;o--){var a=o>=0?arguments[o]:e.cwd();if("string"!==typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(n=a+"/"+n,i="/"===a.charAt(0))}return(i?"/":"")+(n=t(r(n.split("/"),function(e){return!!e}),!i).join("/"))||"."},n.normalize=function(e){var o=n.isAbsolute(e),a="/"===i(e,-1);return(e=t(r(e.split("/"),function(e){return!!e}),!o).join("/"))||o||(e="."),e&&a&&(e+="/"),(o?"/":"")+e},n.isAbsolute=function(e){return"/"===e.charAt(0)},n.join=function(){var e=Array.prototype.slice.call(arguments,0);return n.normalize(r(e,function(e,n){if("string"!==typeof e)throw new TypeError("Arguments to path.join must be strings");return e}).join("/"))},n.relative=function(e,t){function r(e){for(var n=0;n=0&&""===e[t];t--);return n>t?[]:e.slice(n,t-n+1)}e=n.resolve(e).substr(1),t=n.resolve(t).substr(1);for(var i=r(e.split("/")),o=r(t.split("/")),a=Math.min(i.length,o.length),u=a,s=0;s=1;--o)if(47===(n=e.charCodeAt(o))){if(!i){r=o;break}}else i=!1;return-1===r?t?"/":".":t&&1===r?"/":e.slice(0,r)},n.basename=function(e,n){var t=function(e){"string"!==typeof e&&(e+="");var n,t=0,r=-1,i=!0;for(n=e.length-1;n>=0;--n)if(47===e.charCodeAt(n)){if(!i){t=n+1;break}}else-1===r&&(i=!1,r=n+1);return-1===r?"":e.slice(t,r)}(e);return n&&t.substr(-1*n.length)===n&&(t=t.substr(0,t.length-n.length)),t},n.extname=function(e){"string"!==typeof e&&(e+="");for(var n=-1,t=0,r=-1,i=!0,o=0,a=e.length-1;a>=0;--a){var u=e.charCodeAt(a);if(47!==u)-1===r&&(i=!1,r=a+1),46===u?-1===n?n=a:1!==o&&(o=1):-1!==n&&(o=-1);else if(!i){t=a+1;break}}return-1===n||-1===r||0===o||1===o&&n===r-1&&n===t+1?"":e.slice(n,r)};var i="b"==="ab".substr(-1)?function(e,n,t){return e.substr(n,t)}:function(e,n,t){return n<0&&(n=e.length+n),e.substr(n,t)}}).call(this,t(2))},function(e,n,t){"use strict";e.exports=function(e,n){return function(){for(var t=new Array(arguments.length),r=0;r=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],function(e){u.headers[e]={}}),r.forEach(["post","put","patch"],function(e){u.headers[e]=r.merge(o)}),e.exports=u}).call(this,t(2))},function(e,n,t){"use strict";var r=t(0),i=t(26),o=t(6),a=t(28),u=t(29),s=t(10);e.exports=function(e){return new Promise(function(n,c){var f=e.data,l=e.headers;r.isFormData(f)&&delete l["Content-Type"];var _=new XMLHttpRequest;if(e.auth){var p=e.auth.username||"",d=e.auth.password||"";l.Authorization="Basic "+btoa(p+":"+d)}if(_.open(e.method.toUpperCase(),o(e.url,e.params,e.paramsSerializer),!0),_.timeout=e.timeout,_.onreadystatechange=function(){if(_&&4===_.readyState&&(0!==_.status||_.responseURL&&0===_.responseURL.indexOf("file:"))){var t="getAllResponseHeaders"in _?a(_.getAllResponseHeaders()):null,r={data:e.responseType&&"text"!==e.responseType?_.response:_.responseText,status:_.status,statusText:_.statusText,headers:t,config:e,request:_};i(n,c,r),_=null}},_.onabort=function(){_&&(c(s("Request aborted",e,"ECONNABORTED",_)),_=null)},_.onerror=function(){c(s("Network Error",e,null,_)),_=null},_.ontimeout=function(){c(s("timeout of "+e.timeout+"ms exceeded",e,"ECONNABORTED",_)),_=null},r.isStandardBrowserEnv()){var y=t(30),m=(e.withCredentials||u(e.url))&&e.xsrfCookieName?y.read(e.xsrfCookieName):void 0;m&&(l[e.xsrfHeaderName]=m)}if("setRequestHeader"in _&&r.forEach(l,function(e,n){"undefined"===typeof f&&"content-type"===n.toLowerCase()?delete l[n]:_.setRequestHeader(n,e)}),e.withCredentials&&(_.withCredentials=!0),e.responseType)try{_.responseType=e.responseType}catch(h){if("json"!==e.responseType)throw h}"function"===typeof e.onDownloadProgress&&_.addEventListener("progress",e.onDownloadProgress),"function"===typeof e.onUploadProgress&&_.upload&&_.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then(function(e){_&&(_.abort(),c(e),_=null)}),void 0===f&&(f=null),_.send(f)})}},function(e,n,t){"use strict";var r=t(27);e.exports=function(e,n,t,i,o){var a=new Error(e);return r(a,n,t,i,o)}},function(e,n,t){"use strict";var r=t(0);e.exports=function(e,n){n=n||{};var t={};return r.forEach(["url","method","params","data"],function(e){"undefined"!==typeof n[e]&&(t[e]=n[e])}),r.forEach(["headers","auth","proxy"],function(i){r.isObject(n[i])?t[i]=r.deepMerge(e[i],n[i]):"undefined"!==typeof n[i]?t[i]=n[i]:r.isObject(e[i])?t[i]=r.deepMerge(e[i]):"undefined"!==typeof e[i]&&(t[i]=e[i])}),r.forEach(["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","maxContentLength","validateStatus","maxRedirects","httpAgent","httpsAgent","cancelToken","socketPath"],function(r){"undefined"!==typeof n[r]?t[r]=n[r]:"undefined"!==typeof e[r]&&(t[r]=e[r])}),t}},function(e,n,t){"use strict";function r(e){this.message=e}r.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},r.prototype.__CANCEL__=!0,e.exports=r},function(e,n,t){e.exports=t.p+"static/media/Diablo.8cc190a9.wasm"},function(e,n,t){(function(n,r){var i=function(){var e="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;return function(i){var o,a="undefined"!==typeof(i=i||{})?i:{},u={};for(o in a)a.hasOwnProperty(o)&&(u[o]=a[o]);a.arguments=[],a.thisProgram="./this.program",a.quit=function(e,n){throw n},a.preRun=[],a.postRun=[];var s,c,f=!1,l=!1;f="object"===typeof window,l="function"===typeof importScripts,s="object"===typeof n&&!f&&!l,c=!f&&!s&&!l;var _,p,d="";function y(e){return a.locateFile?a.locateFile(e,d):d+e}s?(d=r+"/",a.read=function(e,n){var r;return _||(_=t(3)),p||(p=t(4)),e=p.normalize(e),r=_.readFileSync(e),n?r:r.toString()},a.readBinary=function(e){var n=a.read(e,!0);return n.buffer||(n=new Uint8Array(n)),w(n.buffer),n},n.argv.length>1&&(a.thisProgram=n.argv[1].replace(/\\/g,"/")),a.arguments=n.argv.slice(2),n.on("uncaughtException",function(e){if(!(e instanceof be))throw e}),n.on("unhandledRejection",function(e,t){n.exit(1)}),a.quit=function(e){n.exit(e)},a.inspect=function(){return"[Emscripten Module object]"}):c?("undefined"!=typeof read&&(a.read=function(e){return read(e)}),a.readBinary=function(e){var n;return"function"===typeof readbuffer?new Uint8Array(readbuffer(e)):(w("object"===typeof(n=read(e,"binary"))),n)},"undefined"!=typeof scriptArgs?a.arguments=scriptArgs:"undefined"!=typeof arguments&&(a.arguments=arguments),"function"===typeof quit&&(a.quit=function(e){quit(e)})):(f||l)&&(f?document.currentScript&&(d=document.currentScript.src):d=self.location.href,e&&(d=e),d=0!==d.indexOf("blob:")?d.split("/").slice(0,-1).join("/")+"/":"",a.read=function(e){var n=new XMLHttpRequest;return n.open("GET",e,!1),n.send(null),n.responseText},l&&(a.readBinary=function(e){var n=new XMLHttpRequest;return n.open("GET",e,!1),n.responseType="arraybuffer",n.send(null),new Uint8Array(n.response)}),a.readAsync=function(e,n,t){var r=new XMLHttpRequest;r.open("GET",e,!0),r.responseType="arraybuffer",r.onload=function(){200==r.status||0==r.status&&r.response?n(r.response):t()},r.onerror=t,r.send(null)},a.setWindowTitle=function(e){document.title=e});var m=a.print||("undefined"!==typeof console?console.log.bind(console):"undefined"!==typeof print?print:null),h=a.printErr||("undefined"!==typeof printErr?printErr:"undefined"!==typeof console&&console.warn.bind(console)||m);for(o in u)u.hasOwnProperty(o)&&(a[o]=u[o]);u=void 0;var v=16;function g(e,n){return n||(n=v),e=Math.ceil(e/n)*n}var E={"f64-rem":function(e,n){return e%n},debugger:function(){}},b=(new Array(0),0);function w(e,n){e||Ae("Assertion failed: "+n)}function A(e,n){if(0===n||!e)return"";for(var t,r=0,i=0;r|=t=x[e+i>>0],(0!=t||n)&&(i++,!n||i!=n););n||(n=i);var o="";if(r<128){for(var a;n>0;)a=String.fromCharCode.apply(String,x.subarray(e,e+Math.min(n,1024))),o=o?o+a:a,e+=1024,n-=1024;return o}return function(e){return O(x,e)}(e)}var T="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;function O(e,n){for(var t=n;e[t];)++t;if(t-n>16&&e.subarray&&T)return T.decode(e.subarray(n,t));for(var r,i,o,a,u,s="";;){if(!(r=e[n++]))return s;if(128&r)if(i=63&e[n++],192!=(224&r))if(o=63&e[n++],224==(240&r)?r=(15&r)<<12|i<<6|o:(a=63&e[n++],240==(248&r)?r=(7&r)<<18|i<<12|o<<6|a:(u=63&e[n++],r=248==(252&r)?(3&r)<<24|i<<18|o<<12|a<<6|u:(1&r)<<30|i<<24|o<<18|a<<12|u<<6|63&e[n++])),r<65536)s+=String.fromCharCode(r);else{var c=r-65536;s+=String.fromCharCode(55296|c>>10,56320|1023&c)}else s+=String.fromCharCode((31&r)<<6|i);else s+=String.fromCharCode(r)}}"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le");var C,S,x,R,j,N,D,L,M,I,P=65536,B=16777216,k=16777216;function U(e,n){return e%n>0&&(e+=n-e%n),e}function F(e){a.buffer=C=e}function W(){a.HEAP8=S=new Int8Array(C),a.HEAP16=new Int16Array(C),a.HEAP32=R=new Int32Array(C),a.HEAPU8=x=new Uint8Array(C),a.HEAPU16=new Uint16Array(C),a.HEAPU32=new Uint32Array(C),a.HEAPF32=j=new Float32Array(C),a.HEAPF64=new Float64Array(C)}N=L=I=0,a.reallocBuffer||(a.reallocBuffer=function(e){var n;try{if(ArrayBuffer.transfer)n=ArrayBuffer.transfer(C,e);else{var t=S;n=new ArrayBuffer(e),new Int8Array(n).set(t)}}catch(r){return!1}return!!ye(n)&&n});try{Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get)(new ArrayBuffer(4))}catch(Te){(function(e){return e.byteLength})}var H=a.TOTAL_STACK||5242880,G=a.TOTAL_MEMORY||134217728;function q(e){for(;e.length>0;){var n=e.shift();if("function"!=typeof n){var t=n.func;"number"===typeof t?void 0===n.arg?a.dynCall_v(t):a.dynCall_vi(t,n.arg):t(void 0===n.arg?null:n.arg)}else n()}}G0),n.refcount--,0!==n.refcount||n.rethrown||(n.destructor&&a.dynCall_vi(n.destructor,e),delete ie.infos[e],oe(e))}},clearRef:function(e){e&&(ie.infos[e].refcount=0)}};function oe(e){try{return me(e)}catch(Te){}}function ae(){var e=ie.last;if(!e)return 0|(ve(0),0);var n=ie.infos[e],t=n.type;if(!t)return 0|(ve(0),e);var r=Array.prototype.slice.call(arguments);a.___cxa_is_pointer_type(t);ae.buffer||(ae.buffer=he(4)),R[ae.buffer>>2]=e,e=ae.buffer;for(var i=0;i>2],n.adjusted=e,0|(ve(r[i]),e);return e=R[e>>2],0|(ve(t),e)}var ue={varargs:0,get:function(e){return ue.varargs+=4,R[ue.varargs-4>>2]},getStr:function(){return A(ue.get())},get64:function(){var e=ue.get(),n=ue.get();return w(e>=0?0===n:-1===n),e},getZero:function(){w(0===ue.get())}};function se(e){!function(e,n){if(n&&a.noExitRuntime&&0===e)return;a.noExitRuntime||(b=!0,e,L=pe,q(Y),!0,a.onExit&&a.onExit(e));a.quit(e,new be(e))}(e)}var ce={};var fe=1,le={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};I=function(e){var n=N;return N=N+e+15&-16,n}(4),D=L=g(N),M=g(D+H),R[I>>2]=M,a.wasmTableSize=600,a.wasmMaxTableSize=600,a.asmGlobalArg={},a.asmLibraryArg={abort:Ae,enlargeMemory:function(){var e=a.usingWasm?P:B,n=2147483648-e;if(R[I>>2]>n)return!1;var t=G;for(G=Math.max(G,k);G>2];)G=G<=536870912?U(2*G,e):Math.min(U((3*G+2147483648)/4,e),n);var r=a.reallocBuffer(G);return r&&r.byteLength==G?(F(r),W(),!0):(G=t,!1)},getTotalMemory:function(){return G},abortOnCannotGrowMemory:function(){Ae("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+G+", (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 ")},invoke_i:function(e){var n=Ee();try{return a.dynCall_i(e)}catch(Te){if(ge(n),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_ii:function(e,n){var t=Ee();try{return a.dynCall_ii(e,n)}catch(Te){if(ge(t),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_iii:function(e,n,t){var r=Ee();try{return a.dynCall_iii(e,n,t)}catch(Te){if(ge(r),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_iiii:function(e,n,t,r){var i=Ee();try{return a.dynCall_iiii(e,n,t,r)}catch(Te){if(ge(i),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_iiiii:function(e,n,t,r,i){var o=Ee();try{return a.dynCall_iiiii(e,n,t,r,i)}catch(Te){if(ge(o),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_iiiiii:function(e,n,t,r,i,o){var u=Ee();try{return a.dynCall_iiiiii(e,n,t,r,i,o)}catch(Te){if(ge(u),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_ji:function(e,n){var t=Ee();try{return a.dynCall_ji(e,n)}catch(Te){if(ge(t),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_v:function(e){var n=Ee();try{a.dynCall_v(e)}catch(Te){if(ge(n),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_vi:function(e,n){var t=Ee();try{a.dynCall_vi(e,n)}catch(Te){if(ge(t),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_vii:function(e,n,t){var r=Ee();try{a.dynCall_vii(e,n,t)}catch(Te){if(ge(r),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_viii:function(e,n,t,r){var i=Ee();try{a.dynCall_viii(e,n,t,r)}catch(Te){if(ge(i),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_viiii:function(e,n,t,r,i){var o=Ee();try{a.dynCall_viiii(e,n,t,r,i)}catch(Te){if(ge(o),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_viiiii:function(e,n,t,r,i,o){var u=Ee();try{a.dynCall_viiiii(e,n,t,r,i,o)}catch(Te){if(ge(u),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_viji:function(e,n,t,r,i){var o=Ee();try{a.dynCall_viji(e,n,t,r,i)}catch(Te){if(ge(o),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},___assert_fail:function(e,n,t,r){Ae("Assertion failed: "+A(e)+", at: "+[n?A(n):"unknown filename",t,r?A(r):"unknown function"])},___cxa_allocate_exception:function(e){return he(e)},___cxa_begin_catch:function(e){var n=ie.infos[e];return n&&!n.caught&&(n.caught=!0,re.uncaught_exception--),n&&(n.rethrown=!1),ie.caught.push(e),ie.addRef(ie.deAdjust(e)),e},___cxa_end_catch:function(){a.setThrew(0);var e=ie.caught.pop();e&&(ie.decRef(ie.deAdjust(e)),ie.last=0)},___cxa_find_matching_catch_2:function(){return ae.apply(null,arguments)},___cxa_find_matching_catch_3:function(){return ae.apply(null,arguments)},___cxa_free_exception:oe,___cxa_throw:function(e,n,t){throw ie.infos[e]={ptr:e,adjusted:e,type:n,destructor:t,refcount:0,caught:!1,rethrown:!1},ie.last=e,"uncaught_exception"in re?re.uncaught_exception++:re.uncaught_exception=1,e},___lock:function(){},___resumeException:function(e){throw ie.last||(ie.last=e),e},___setErrNo:function(e){return a.___errno_location&&(R[a.___errno_location()>>2]=e),e},___syscall140:function(e,n){ue.varargs=n;try{var t=ue.getStreamFromFD(),r=(ue.get(),ue.get()),i=ue.get(),o=ue.get(),a=r;return FS.llseek(t,a,o),R[i>>2]=t.position,t.getdents&&0===a&&0===o&&(t.getdents=null),0}catch(Te){return"undefined"!==typeof FS&&Te instanceof FS.ErrnoError||Ae(Te),-Te.errno}},___syscall146:function e(n,t){ue.varargs=t;try{var r=ue.get(),i=ue.get(),o=ue.get(),a=0;e.buffers||(e.buffers=[null,[],[]],e.printChar=function(n,t){var r=e.buffers[n];w(r),0===t||10===t?((1===n?m:h)(O(r,0)),r.length=0):r.push(t)});for(var u=0;u>2],c=R[i+(8*u+4)>>2],f=0;f>2]=fe,ce[fe]=0,fe++,0)},_pthread_once:function e(n,t){e.seen||(e.seen={}),n in e.seen||(a.dynCall_v(t),e.seen[n]=1)},_pthread_setspecific:function(e,n){return e in ce?(ce[e]=n,0):le.EINVAL},_put_file_contents:function(e,n,t){var r=x.indexOf(0,e),i=String.fromCharCode.apply(null,x.subarray(e,r));self.DApi.put_file_contents(i,x.slice(n,n+t))},_remove_file:function(e){var n=x.indexOf(0,e),t=String.fromCharCode.apply(null,x.subarray(e,n));self.DApi.remove_file(t)},_show_alert:function(e){var n=x.indexOf(0,e),t=String.fromCharCode.apply(null,x.subarray(e,n));self.alert(t)},_time:function(e){var n=Date.now()/1e3|0;return e&&(R[e>>2]=n),n},DYNAMICTOP_PTR:I,STACKTOP:L};var _e=a.asm(a.asmGlobalArg,a.asmLibraryArg,C);a.asm=_e;a._DApi_Char=function(){return a.asm._DApi_Char.apply(null,arguments)},a._DApi_Init=function(){return a.asm._DApi_Init.apply(null,arguments)},a._DApi_Key=function(){return a.asm._DApi_Key.apply(null,arguments)},a._DApi_Mouse=function(){return a.asm._DApi_Mouse.apply(null,arguments)},a._DApi_Render=function(){return a.asm._DApi_Render.apply(null,arguments)},a._DApi_SyncText=function(){return a.asm._DApi_SyncText.apply(null,arguments)};var pe,de=a.__GLOBAL__sub_I_msgcmd_cpp=function(){return a.asm.__GLOBAL__sub_I_msgcmd_cpp.apply(null,arguments)},ye=(a.___cxa_can_catch=function(){return a.asm.___cxa_can_catch.apply(null,arguments)},a.___cxa_is_pointer_type=function(){return a.asm.___cxa_is_pointer_type.apply(null,arguments)},a.___em_js__api_close_keyboard=function(){return a.asm.___em_js__api_close_keyboard.apply(null,arguments)},a.___em_js__api_create_sound_float=function(){return a.asm.___em_js__api_create_sound_float.apply(null,arguments)},a.___em_js__api_delete_sound=function(){return a.asm.___em_js__api_delete_sound.apply(null,arguments)},a.___em_js__api_draw_begin=function(){return a.asm.___em_js__api_draw_begin.apply(null,arguments)},a.___em_js__api_draw_belt=function(){return a.asm.___em_js__api_draw_belt.apply(null,arguments)},a.___em_js__api_draw_blit=function(){return a.asm.___em_js__api_draw_blit.apply(null,arguments)},a.___em_js__api_draw_clip_text=function(){return a.asm.___em_js__api_draw_clip_text.apply(null,arguments)},a.___em_js__api_draw_end=function(){return a.asm.___em_js__api_draw_end.apply(null,arguments)},a.___em_js__api_draw_text=function(){return a.asm.___em_js__api_draw_text.apply(null,arguments)},a.___em_js__api_duplicate_sound=function(){return a.asm.___em_js__api_duplicate_sound.apply(null,arguments)},a.___em_js__api_open_keyboard=function(){return a.asm.___em_js__api_open_keyboard.apply(null,arguments)},a.___em_js__api_play_sound=function(){return a.asm.___em_js__api_play_sound.apply(null,arguments)},a.___em_js__api_set_cursor=function(){return a.asm.___em_js__api_set_cursor.apply(null,arguments)},a.___em_js__api_set_volume=function(){return a.asm.___em_js__api_set_volume.apply(null,arguments)},a.___em_js__api_stop_sound=function(){return a.asm.___em_js__api_stop_sound.apply(null,arguments)},a.___em_js__exit_error=function(){return a.asm.___em_js__exit_error.apply(null,arguments)},a.___em_js__get_file_contents=function(){return a.asm.___em_js__get_file_contents.apply(null,arguments)},a.___em_js__get_file_size=function(){return a.asm.___em_js__get_file_size.apply(null,arguments)},a.___em_js__put_file_contents=function(){return a.asm.___em_js__put_file_contents.apply(null,arguments)},a.___em_js__remove_file=function(){return a.asm.___em_js__remove_file.apply(null,arguments)},a.___em_js__show_alert=function(){return a.asm.___em_js__show_alert.apply(null,arguments)},a.___em_js__trace_pop=function(){return a.asm.___em_js__trace_pop.apply(null,arguments)},a.___em_js__trace_push=function(){return a.asm.___em_js__trace_push.apply(null,arguments)},a._emscripten_replace_memory=function(){return a.asm._emscripten_replace_memory.apply(null,arguments)}),me=a._free=function(){return a.asm._free.apply(null,arguments)},he=a._malloc=function(){return a.asm._malloc.apply(null,arguments)},ve=a.setTempRet0=function(){return a.asm.setTempRet0.apply(null,arguments)},ge=(a.setThrew=function(){return a.asm.setThrew.apply(null,arguments)},a.stackRestore=function(){return a.asm.stackRestore.apply(null,arguments)}),Ee=a.stackSave=function(){return a.asm.stackSave.apply(null,arguments)};a.dynCall_i=function(){return a.asm.dynCall_i.apply(null,arguments)},a.dynCall_ii=function(){return a.asm.dynCall_ii.apply(null,arguments)},a.dynCall_iii=function(){return a.asm.dynCall_iii.apply(null,arguments)},a.dynCall_iiii=function(){return a.asm.dynCall_iiii.apply(null,arguments)},a.dynCall_iiiii=function(){return a.asm.dynCall_iiiii.apply(null,arguments)},a.dynCall_iiiiii=function(){return a.asm.dynCall_iiiiii.apply(null,arguments)},a.dynCall_ji=function(){return a.asm.dynCall_ji.apply(null,arguments)},a.dynCall_v=function(){return a.asm.dynCall_v.apply(null,arguments)},a.dynCall_vi=function(){return a.asm.dynCall_vi.apply(null,arguments)},a.dynCall_vii=function(){return a.asm.dynCall_vii.apply(null,arguments)},a.dynCall_viii=function(){return a.asm.dynCall_viii.apply(null,arguments)},a.dynCall_viiii=function(){return a.asm.dynCall_viiii.apply(null,arguments)},a.dynCall_viiiii=function(){return a.asm.dynCall_viiiii.apply(null,arguments)},a.dynCall_viji=function(){return a.asm.dynCall_viji.apply(null,arguments)};function be(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function we(e){function n(){a.calledRun||(a.calledRun=!0,b||(Q||(Q=!0,q(K)),q(X),a.onRuntimeInitialized&&a.onRuntimeInitialized(),function(){if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)J(a.postRun.shift());q(V)}()))}e=e||a.arguments,Z>0||(!function(){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)e=a.preRun.shift(),z.unshift(e);var e;q(z)}(),Z>0||a.calledRun||(a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1),n()},1)):n()))}function Ae(e){throw a.onAbort&&a.onAbort(e),void 0!==e?(m(e),h(e),e=JSON.stringify(e)):e="",b=!0,1,"abort("+e+"). Build with -s ASSERTIONS=1 for more info."}if(a.asm=_e,a.then=function(e){if(a.calledRun)e(a);else{var n=a.onRuntimeInitialized;a.onRuntimeInitialized=function(){n&&n(),e(a)}}return a},be.prototype=new Error,be.prototype.constructor=be,ee=function e(){a.calledRun||we(),a.calledRun||(ee=e)},a.run=we,a.abort=Ae,a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);a.preInit.length>0;)a.preInit.pop()();return a.noExitRuntime=!0,we(),a.ready=new Promise(function(e,n){delete a.then,a.onAbort=function(e){n(e)},J(function(){e(a)})}),i}}();e.exports=i}).call(this,t(2),"/")},function(e,n,t){e.exports=t.p+"static/media/DiabloSpawn.8210d404.wasm"},function(e,n,t){(function(n,r){var i=function(){var e="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;return function(i){var o,a="undefined"!==typeof(i=i||{})?i:{},u={};for(o in a)a.hasOwnProperty(o)&&(u[o]=a[o]);a.arguments=[],a.thisProgram="./this.program",a.quit=function(e,n){throw n},a.preRun=[],a.postRun=[];var s,c,f=!1,l=!1;f="object"===typeof window,l="function"===typeof importScripts,s="object"===typeof n&&!f&&!l,c=!f&&!s&&!l;var _,p,d="";function y(e){return a.locateFile?a.locateFile(e,d):d+e}s?(d=r+"/",a.read=function(e,n){var r;return _||(_=t(3)),p||(p=t(4)),e=p.normalize(e),r=_.readFileSync(e),n?r:r.toString()},a.readBinary=function(e){var n=a.read(e,!0);return n.buffer||(n=new Uint8Array(n)),w(n.buffer),n},n.argv.length>1&&(a.thisProgram=n.argv[1].replace(/\\/g,"/")),a.arguments=n.argv.slice(2),n.on("uncaughtException",function(e){if(!(e instanceof be))throw e}),n.on("unhandledRejection",function(e,t){n.exit(1)}),a.quit=function(e){n.exit(e)},a.inspect=function(){return"[Emscripten Module object]"}):c?("undefined"!=typeof read&&(a.read=function(e){return read(e)}),a.readBinary=function(e){var n;return"function"===typeof readbuffer?new Uint8Array(readbuffer(e)):(w("object"===typeof(n=read(e,"binary"))),n)},"undefined"!=typeof scriptArgs?a.arguments=scriptArgs:"undefined"!=typeof arguments&&(a.arguments=arguments),"function"===typeof quit&&(a.quit=function(e){quit(e)})):(f||l)&&(f?document.currentScript&&(d=document.currentScript.src):d=self.location.href,e&&(d=e),d=0!==d.indexOf("blob:")?d.split("/").slice(0,-1).join("/")+"/":"",a.read=function(e){var n=new XMLHttpRequest;return n.open("GET",e,!1),n.send(null),n.responseText},l&&(a.readBinary=function(e){var n=new XMLHttpRequest;return n.open("GET",e,!1),n.responseType="arraybuffer",n.send(null),new Uint8Array(n.response)}),a.readAsync=function(e,n,t){var r=new XMLHttpRequest;r.open("GET",e,!0),r.responseType="arraybuffer",r.onload=function(){200==r.status||0==r.status&&r.response?n(r.response):t()},r.onerror=t,r.send(null)},a.setWindowTitle=function(e){document.title=e});var m=a.print||("undefined"!==typeof console?console.log.bind(console):"undefined"!==typeof print?print:null),h=a.printErr||("undefined"!==typeof printErr?printErr:"undefined"!==typeof console&&console.warn.bind(console)||m);for(o in u)u.hasOwnProperty(o)&&(a[o]=u[o]);u=void 0;var v=16;function g(e,n){return n||(n=v),e=Math.ceil(e/n)*n}var E={"f64-rem":function(e,n){return e%n},debugger:function(){}},b=(new Array(0),0);function w(e,n){e||Ae("Assertion failed: "+n)}function A(e,n){if(0===n||!e)return"";for(var t,r=0,i=0;r|=t=x[e+i>>0],(0!=t||n)&&(i++,!n||i!=n););n||(n=i);var o="";if(r<128){for(var a;n>0;)a=String.fromCharCode.apply(String,x.subarray(e,e+Math.min(n,1024))),o=o?o+a:a,e+=1024,n-=1024;return o}return function(e){return O(x,e)}(e)}var T="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;function O(e,n){for(var t=n;e[t];)++t;if(t-n>16&&e.subarray&&T)return T.decode(e.subarray(n,t));for(var r,i,o,a,u,s="";;){if(!(r=e[n++]))return s;if(128&r)if(i=63&e[n++],192!=(224&r))if(o=63&e[n++],224==(240&r)?r=(15&r)<<12|i<<6|o:(a=63&e[n++],240==(248&r)?r=(7&r)<<18|i<<12|o<<6|a:(u=63&e[n++],r=248==(252&r)?(3&r)<<24|i<<18|o<<12|a<<6|u:(1&r)<<30|i<<24|o<<18|a<<12|u<<6|63&e[n++])),r<65536)s+=String.fromCharCode(r);else{var c=r-65536;s+=String.fromCharCode(55296|c>>10,56320|1023&c)}else s+=String.fromCharCode((31&r)<<6|i);else s+=String.fromCharCode(r)}}"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le");var C,S,x,R,j,N,D,L,M,I,P=65536,B=16777216,k=16777216;function U(e,n){return e%n>0&&(e+=n-e%n),e}function F(e){a.buffer=C=e}function W(){a.HEAP8=S=new Int8Array(C),a.HEAP16=new Int16Array(C),a.HEAP32=R=new Int32Array(C),a.HEAPU8=x=new Uint8Array(C),a.HEAPU16=new Uint16Array(C),a.HEAPU32=new Uint32Array(C),a.HEAPF32=j=new Float32Array(C),a.HEAPF64=new Float64Array(C)}N=L=I=0,a.reallocBuffer||(a.reallocBuffer=function(e){var n;try{if(ArrayBuffer.transfer)n=ArrayBuffer.transfer(C,e);else{var t=S;n=new ArrayBuffer(e),new Int8Array(n).set(t)}}catch(r){return!1}return!!ye(n)&&n});try{Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get)(new ArrayBuffer(4))}catch(Te){(function(e){return e.byteLength})}var H=a.TOTAL_STACK||5242880,G=a.TOTAL_MEMORY||134217728;function q(e){for(;e.length>0;){var n=e.shift();if("function"!=typeof n){var t=n.func;"number"===typeof t?void 0===n.arg?a.dynCall_v(t):a.dynCall_vi(t,n.arg):t(void 0===n.arg?null:n.arg)}else n()}}G0),n.refcount--,0!==n.refcount||n.rethrown||(n.destructor&&a.dynCall_vi(n.destructor,e),delete ie.infos[e],oe(e))}},clearRef:function(e){e&&(ie.infos[e].refcount=0)}};function oe(e){try{return me(e)}catch(Te){}}function ae(){var e=ie.last;if(!e)return 0|(ve(0),0);var n=ie.infos[e],t=n.type;if(!t)return 0|(ve(0),e);var r=Array.prototype.slice.call(arguments);a.___cxa_is_pointer_type(t);ae.buffer||(ae.buffer=he(4)),R[ae.buffer>>2]=e,e=ae.buffer;for(var i=0;i>2],n.adjusted=e,0|(ve(r[i]),e);return e=R[e>>2],0|(ve(t),e)}var ue={varargs:0,get:function(e){return ue.varargs+=4,R[ue.varargs-4>>2]},getStr:function(){return A(ue.get())},get64:function(){var e=ue.get(),n=ue.get();return w(e>=0?0===n:-1===n),e},getZero:function(){w(0===ue.get())}};function se(e){!function(e,n){if(n&&a.noExitRuntime&&0===e)return;a.noExitRuntime||(b=!0,e,L=pe,q(Y),!0,a.onExit&&a.onExit(e));a.quit(e,new be(e))}(e)}var ce={};var fe=1,le={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};I=function(e){var n=N;return N=N+e+15&-16,n}(4),D=L=g(N),M=g(D+H),R[I>>2]=M,a.wasmTableSize=588,a.wasmMaxTableSize=588,a.asmGlobalArg={},a.asmLibraryArg={abort:Ae,enlargeMemory:function(){var e=a.usingWasm?P:B,n=2147483648-e;if(R[I>>2]>n)return!1;var t=G;for(G=Math.max(G,k);G>2];)G=G<=536870912?U(2*G,e):Math.min(U((3*G+2147483648)/4,e),n);var r=a.reallocBuffer(G);return r&&r.byteLength==G?(F(r),W(),!0):(G=t,!1)},getTotalMemory:function(){return G},abortOnCannotGrowMemory:function(){Ae("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+G+", (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 ")},invoke_i:function(e){var n=Ee();try{return a.dynCall_i(e)}catch(Te){if(ge(n),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_ii:function(e,n){var t=Ee();try{return a.dynCall_ii(e,n)}catch(Te){if(ge(t),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_iii:function(e,n,t){var r=Ee();try{return a.dynCall_iii(e,n,t)}catch(Te){if(ge(r),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_iiii:function(e,n,t,r){var i=Ee();try{return a.dynCall_iiii(e,n,t,r)}catch(Te){if(ge(i),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_iiiii:function(e,n,t,r,i){var o=Ee();try{return a.dynCall_iiiii(e,n,t,r,i)}catch(Te){if(ge(o),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_iiiiii:function(e,n,t,r,i,o){var u=Ee();try{return a.dynCall_iiiiii(e,n,t,r,i,o)}catch(Te){if(ge(u),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_ji:function(e,n){var t=Ee();try{return a.dynCall_ji(e,n)}catch(Te){if(ge(t),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_v:function(e){var n=Ee();try{a.dynCall_v(e)}catch(Te){if(ge(n),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_vi:function(e,n){var t=Ee();try{a.dynCall_vi(e,n)}catch(Te){if(ge(t),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_vii:function(e,n,t){var r=Ee();try{a.dynCall_vii(e,n,t)}catch(Te){if(ge(r),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_viii:function(e,n,t,r){var i=Ee();try{a.dynCall_viii(e,n,t,r)}catch(Te){if(ge(i),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_viiii:function(e,n,t,r,i){var o=Ee();try{a.dynCall_viiii(e,n,t,r,i)}catch(Te){if(ge(o),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_viiiii:function(e,n,t,r,i,o){var u=Ee();try{a.dynCall_viiiii(e,n,t,r,i,o)}catch(Te){if(ge(u),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},invoke_viji:function(e,n,t,r,i){var o=Ee();try{a.dynCall_viji(e,n,t,r,i)}catch(Te){if(ge(o),"number"!==typeof Te&&"longjmp"!==Te)throw Te;a.setThrew(1,0)}},___assert_fail:function(e,n,t,r){Ae("Assertion failed: "+A(e)+", at: "+[n?A(n):"unknown filename",t,r?A(r):"unknown function"])},___cxa_allocate_exception:function(e){return he(e)},___cxa_begin_catch:function(e){var n=ie.infos[e];return n&&!n.caught&&(n.caught=!0,re.uncaught_exception--),n&&(n.rethrown=!1),ie.caught.push(e),ie.addRef(ie.deAdjust(e)),e},___cxa_end_catch:function(){a.setThrew(0);var e=ie.caught.pop();e&&(ie.decRef(ie.deAdjust(e)),ie.last=0)},___cxa_find_matching_catch_2:function(){return ae.apply(null,arguments)},___cxa_find_matching_catch_3:function(){return ae.apply(null,arguments)},___cxa_free_exception:oe,___cxa_throw:function(e,n,t){throw ie.infos[e]={ptr:e,adjusted:e,type:n,destructor:t,refcount:0,caught:!1,rethrown:!1},ie.last=e,"uncaught_exception"in re?re.uncaught_exception++:re.uncaught_exception=1,e},___lock:function(){},___resumeException:function(e){throw ie.last||(ie.last=e),e},___setErrNo:function(e){return a.___errno_location&&(R[a.___errno_location()>>2]=e),e},___syscall140:function(e,n){ue.varargs=n;try{var t=ue.getStreamFromFD(),r=(ue.get(),ue.get()),i=ue.get(),o=ue.get(),a=r;return FS.llseek(t,a,o),R[i>>2]=t.position,t.getdents&&0===a&&0===o&&(t.getdents=null),0}catch(Te){return"undefined"!==typeof FS&&Te instanceof FS.ErrnoError||Ae(Te),-Te.errno}},___syscall146:function e(n,t){ue.varargs=t;try{var r=ue.get(),i=ue.get(),o=ue.get(),a=0;e.buffers||(e.buffers=[null,[],[]],e.printChar=function(n,t){var r=e.buffers[n];w(r),0===t||10===t?((1===n?m:h)(O(r,0)),r.length=0):r.push(t)});for(var u=0;u>2],c=R[i+(8*u+4)>>2],f=0;f>2]=fe,ce[fe]=0,fe++,0)},_pthread_once:function e(n,t){e.seen||(e.seen={}),n in e.seen||(a.dynCall_v(t),e.seen[n]=1)},_pthread_setspecific:function(e,n){return e in ce?(ce[e]=n,0):le.EINVAL},_put_file_contents:function(e,n,t){var r=x.indexOf(0,e),i=String.fromCharCode.apply(null,x.subarray(e,r));self.DApi.put_file_contents(i,x.slice(n,n+t))},_remove_file:function(e){var n=x.indexOf(0,e),t=String.fromCharCode.apply(null,x.subarray(e,n));self.DApi.remove_file(t)},_show_alert:function(e){var n=x.indexOf(0,e),t=String.fromCharCode.apply(null,x.subarray(e,n));self.alert(t)},_time:function(e){var n=Date.now()/1e3|0;return e&&(R[e>>2]=n),n},DYNAMICTOP_PTR:I,STACKTOP:L};var _e=a.asm(a.asmGlobalArg,a.asmLibraryArg,C);a.asm=_e;a._DApi_Char=function(){return a.asm._DApi_Char.apply(null,arguments)},a._DApi_Init=function(){return a.asm._DApi_Init.apply(null,arguments)},a._DApi_Key=function(){return a.asm._DApi_Key.apply(null,arguments)},a._DApi_Mouse=function(){return a.asm._DApi_Mouse.apply(null,arguments)},a._DApi_Render=function(){return a.asm._DApi_Render.apply(null,arguments)},a._DApi_SyncText=function(){return a.asm._DApi_SyncText.apply(null,arguments)};var pe,de=a.__GLOBAL__sub_I_msgcmd_cpp=function(){return a.asm.__GLOBAL__sub_I_msgcmd_cpp.apply(null,arguments)},ye=(a.___cxa_can_catch=function(){return a.asm.___cxa_can_catch.apply(null,arguments)},a.___cxa_is_pointer_type=function(){return a.asm.___cxa_is_pointer_type.apply(null,arguments)},a.___em_js__api_close_keyboard=function(){return a.asm.___em_js__api_close_keyboard.apply(null,arguments)},a.___em_js__api_create_sound_float=function(){return a.asm.___em_js__api_create_sound_float.apply(null,arguments)},a.___em_js__api_delete_sound=function(){return a.asm.___em_js__api_delete_sound.apply(null,arguments)},a.___em_js__api_draw_begin=function(){return a.asm.___em_js__api_draw_begin.apply(null,arguments)},a.___em_js__api_draw_belt=function(){return a.asm.___em_js__api_draw_belt.apply(null,arguments)},a.___em_js__api_draw_blit=function(){return a.asm.___em_js__api_draw_blit.apply(null,arguments)},a.___em_js__api_draw_clip_text=function(){return a.asm.___em_js__api_draw_clip_text.apply(null,arguments)},a.___em_js__api_draw_end=function(){return a.asm.___em_js__api_draw_end.apply(null,arguments)},a.___em_js__api_draw_text=function(){return a.asm.___em_js__api_draw_text.apply(null,arguments)},a.___em_js__api_duplicate_sound=function(){return a.asm.___em_js__api_duplicate_sound.apply(null,arguments)},a.___em_js__api_open_keyboard=function(){return a.asm.___em_js__api_open_keyboard.apply(null,arguments)},a.___em_js__api_play_sound=function(){return a.asm.___em_js__api_play_sound.apply(null,arguments)},a.___em_js__api_set_cursor=function(){return a.asm.___em_js__api_set_cursor.apply(null,arguments)},a.___em_js__api_set_volume=function(){return a.asm.___em_js__api_set_volume.apply(null,arguments)},a.___em_js__api_stop_sound=function(){return a.asm.___em_js__api_stop_sound.apply(null,arguments)},a.___em_js__exit_error=function(){return a.asm.___em_js__exit_error.apply(null,arguments)},a.___em_js__get_file_contents=function(){return a.asm.___em_js__get_file_contents.apply(null,arguments)},a.___em_js__get_file_size=function(){return a.asm.___em_js__get_file_size.apply(null,arguments)},a.___em_js__put_file_contents=function(){return a.asm.___em_js__put_file_contents.apply(null,arguments)},a.___em_js__remove_file=function(){return a.asm.___em_js__remove_file.apply(null,arguments)},a.___em_js__show_alert=function(){return a.asm.___em_js__show_alert.apply(null,arguments)},a.___em_js__trace_pop=function(){return a.asm.___em_js__trace_pop.apply(null,arguments)},a.___em_js__trace_push=function(){return a.asm.___em_js__trace_push.apply(null,arguments)},a._emscripten_replace_memory=function(){return a.asm._emscripten_replace_memory.apply(null,arguments)}),me=a._free=function(){return a.asm._free.apply(null,arguments)},he=a._malloc=function(){return a.asm._malloc.apply(null,arguments)},ve=a.setTempRet0=function(){return a.asm.setTempRet0.apply(null,arguments)},ge=(a.setThrew=function(){return a.asm.setThrew.apply(null,arguments)},a.stackRestore=function(){return a.asm.stackRestore.apply(null,arguments)}),Ee=a.stackSave=function(){return a.asm.stackSave.apply(null,arguments)};a.dynCall_i=function(){return a.asm.dynCall_i.apply(null,arguments)},a.dynCall_ii=function(){return a.asm.dynCall_ii.apply(null,arguments)},a.dynCall_iii=function(){return a.asm.dynCall_iii.apply(null,arguments)},a.dynCall_iiii=function(){return a.asm.dynCall_iiii.apply(null,arguments)},a.dynCall_iiiii=function(){return a.asm.dynCall_iiiii.apply(null,arguments)},a.dynCall_iiiiii=function(){return a.asm.dynCall_iiiiii.apply(null,arguments)},a.dynCall_ji=function(){return a.asm.dynCall_ji.apply(null,arguments)},a.dynCall_v=function(){return a.asm.dynCall_v.apply(null,arguments)},a.dynCall_vi=function(){return a.asm.dynCall_vi.apply(null,arguments)},a.dynCall_vii=function(){return a.asm.dynCall_vii.apply(null,arguments)},a.dynCall_viii=function(){return a.asm.dynCall_viii.apply(null,arguments)},a.dynCall_viiii=function(){return a.asm.dynCall_viiii.apply(null,arguments)},a.dynCall_viiiii=function(){return a.asm.dynCall_viiiii.apply(null,arguments)},a.dynCall_viji=function(){return a.asm.dynCall_viji.apply(null,arguments)};function be(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function we(e){function n(){a.calledRun||(a.calledRun=!0,b||(Q||(Q=!0,q(K)),q(X),a.onRuntimeInitialized&&a.onRuntimeInitialized(),function(){if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)J(a.postRun.shift());q(V)}()))}e=e||a.arguments,Z>0||(!function(){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)e=a.preRun.shift(),z.unshift(e);var e;q(z)}(),Z>0||a.calledRun||(a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1),n()},1)):n()))}function Ae(e){throw a.onAbort&&a.onAbort(e),void 0!==e?(m(e),h(e),e=JSON.stringify(e)):e="",b=!0,1,"abort("+e+"). Build with -s ASSERTIONS=1 for more info."}if(a.asm=_e,a.then=function(e){if(a.calledRun)e(a);else{var n=a.onRuntimeInitialized;a.onRuntimeInitialized=function(){n&&n(),e(a)}}return a},be.prototype=new Error,be.prototype.constructor=be,ee=function e(){a.calledRun||we(),a.calledRun||(ee=e)},a.run=we,a.abort=Ae,a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);a.preInit.length>0;)a.preInit.pop()();return a.noExitRuntime=!0,we(),a.ready=new Promise(function(e,n){delete a.then,a.onAbort=function(e){n(e)},J(function(){e(a)})}),i}}();e.exports=i}).call(this,t(2),"/")},function(e,n,t){e.exports=t(19)},function(e,n,t){var r=function(e){"use strict";var n,t=Object.prototype,r=t.hasOwnProperty,i="function"===typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function s(e,n,t,r){var i=n&&n.prototype instanceof y?n:y,o=Object.create(i.prototype),a=new S(r||[]);return o._invoke=function(e,n,t){var r=f;return function(i,o){if(r===_)throw new Error("Generator is already running");if(r===p){if("throw"===i)throw o;return R()}for(t.method=i,t.arg=o;;){var a=t.delegate;if(a){var u=T(a,t);if(u){if(u===d)continue;return u}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if(r===f)throw r=p,t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);r=_;var s=c(e,n,t);if("normal"===s.type){if(r=t.done?p:l,s.arg===d)continue;return{value:s.arg,done:t.done}}"throw"===s.type&&(r=p,t.method="throw",t.arg=s.arg)}}}(e,t,a),o}function c(e,n,t){try{return{type:"normal",arg:e.call(n,t)}}catch(r){return{type:"throw",arg:r}}}e.wrap=s;var f="suspendedStart",l="suspendedYield",_="executing",p="completed",d={};function y(){}function m(){}function h(){}var v={};v[o]=function(){return this};var g=Object.getPrototypeOf,E=g&&g(g(x([])));E&&E!==t&&r.call(E,o)&&(v=E);var b=h.prototype=y.prototype=Object.create(v);function w(e){["next","throw","return"].forEach(function(n){e[n]=function(e){return this._invoke(n,e)}})}function A(e){var n;this._invoke=function(t,i){function o(){return new Promise(function(n,o){!function n(t,i,o,a){var u=c(e[t],e,i);if("throw"!==u.type){var s=u.arg,f=s.value;return f&&"object"===typeof f&&r.call(f,"__await")?Promise.resolve(f.__await).then(function(e){n("next",e,o,a)},function(e){n("throw",e,o,a)}):Promise.resolve(f).then(function(e){s.value=e,o(s)},function(e){return n("throw",e,o,a)})}a(u.arg)}(t,i,n,o)})}return n=n?n.then(o,o):o()}}function T(e,t){var r=e.iterator[t.method];if(r===n){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=n,T(e,t),"throw"===t.method))return d;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return d}var i=c(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,d;var o=i.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=n),t.delegate=null,d):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,d)}function O(e){var n={tryLoc:e[0]};1 in e&&(n.catchLoc=e[1]),2 in e&&(n.finallyLoc=e[2],n.afterLoc=e[3]),this.tryEntries.push(n)}function C(e){var n=e.completion||{};n.type="normal",delete n.arg,e.completion=n}function S(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function x(e){if(e){var t=e[o];if(t)return t.call(e);if("function"===typeof e.next)return e;if(!isNaN(e.length)){var i=-1,a=function t(){for(;++i=0;--o){var a=this.tryEntries[o],u=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var s=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--t){var i=this.tryEntries[t];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--n){var t=this.tryEntries[n];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),C(t),d}},catch:function(e){for(var n=this.tryEntries.length-1;n>=0;--n){var t=this.tryEntries[n];if(t.tryLoc===e){var r=t.completion;if("throw"===r.type){var i=r.arg;C(t)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:x(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=n),d}},e}(e.exports);try{regeneratorRuntime=r}catch(i){Function("r","regeneratorRuntime = r")(r)}},function(e,n,t){"use strict";var r=t(0),i=t(5),o=t(21),a=t(11);function u(e){var n=new o(e),t=i(o.prototype.request,n);return r.extend(t,o.prototype,n),r.extend(t,n),t}var s=u(t(8));s.Axios=o,s.create=function(e){return u(a(s.defaults,e))},s.Cancel=t(12),s.CancelToken=t(33),s.isCancel=t(7),s.all=function(e){return Promise.all(e)},s.spread=t(34),e.exports=s,e.exports.default=s},function(e,n){e.exports=function(e){return null!=e&&null!=e.constructor&&"function"===typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}},function(e,n,t){"use strict";var r=t(0),i=t(6),o=t(22),a=t(23),u=t(11);function s(e){this.defaults=e,this.interceptors={request:new o,response:new o}}s.prototype.request=function(e){"string"===typeof e?(e=arguments[1]||{}).url=arguments[0]:e=e||{},(e=u(this.defaults,e)).method=e.method?e.method.toLowerCase():"get";var n=[a,void 0],t=Promise.resolve(e);for(this.interceptors.request.forEach(function(e){n.unshift(e.fulfilled,e.rejected)}),this.interceptors.response.forEach(function(e){n.push(e.fulfilled,e.rejected)});n.length;)t=t.then(n.shift(),n.shift());return t},s.prototype.getUri=function(e){return e=u(this.defaults,e),i(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},r.forEach(["delete","get","head","options"],function(e){s.prototype[e]=function(n,t){return this.request(r.merge(t||{},{method:e,url:n}))}}),r.forEach(["post","put","patch"],function(e){s.prototype[e]=function(n,t,i){return this.request(r.merge(i||{},{method:e,url:n,data:t}))}}),e.exports=s},function(e,n,t){"use strict";var r=t(0);function i(){this.handlers=[]}i.prototype.use=function(e,n){return this.handlers.push({fulfilled:e,rejected:n}),this.handlers.length-1},i.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},i.prototype.forEach=function(e){r.forEach(this.handlers,function(n){null!==n&&e(n)})},e.exports=i},function(e,n,t){"use strict";var r=t(0),i=t(24),o=t(7),a=t(8),u=t(31),s=t(32);function c(e){e.cancelToken&&e.cancelToken.throwIfRequested()}e.exports=function(e){return c(e),e.baseURL&&!u(e.url)&&(e.url=s(e.baseURL,e.url)),e.headers=e.headers||{},e.data=i(e.data,e.headers,e.transformRequest),e.headers=r.merge(e.headers.common||{},e.headers[e.method]||{},e.headers||{}),r.forEach(["delete","get","head","post","put","patch","common"],function(n){delete e.headers[n]}),(e.adapter||a.adapter)(e).then(function(n){return c(e),n.data=i(n.data,n.headers,e.transformResponse),n},function(n){return o(n)||(c(e),n&&n.response&&(n.response.data=i(n.response.data,n.response.headers,e.transformResponse))),Promise.reject(n)})}},function(e,n,t){"use strict";var r=t(0);e.exports=function(e,n,t){return r.forEach(t,function(t){e=t(e,n)}),e}},function(e,n,t){"use strict";var r=t(0);e.exports=function(e,n){r.forEach(e,function(t,r){r!==n&&r.toUpperCase()===n.toUpperCase()&&(e[n]=t,delete e[r])})}},function(e,n,t){"use strict";var r=t(10);e.exports=function(e,n,t){var i=t.config.validateStatus;!i||i(t.status)?e(t):n(r("Request failed with status code "+t.status,t.config,null,t.request,t))}},function(e,n,t){"use strict";e.exports=function(e,n,t,r,i){return e.config=n,t&&(e.code=t),e.request=r,e.response=i,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},function(e,n,t){"use strict";var r=t(0),i=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var n,t,o,a={};return e?(r.forEach(e.split("\n"),function(e){if(o=e.indexOf(":"),n=r.trim(e.substr(0,o)).toLowerCase(),t=r.trim(e.substr(o+1)),n){if(a[n]&&i.indexOf(n)>=0)return;a[n]="set-cookie"===n?(a[n]?a[n]:[]).concat([t]):a[n]?a[n]+", "+t:t}}),a):a}},function(e,n,t){"use strict";var r=t(0);e.exports=r.isStandardBrowserEnv()?function(){var e,n=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a");function i(e){var r=e;return n&&(t.setAttribute("href",r),r=t.href),t.setAttribute("href",r),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:"/"===t.pathname.charAt(0)?t.pathname:"/"+t.pathname}}return e=i(window.location.href),function(n){var t=r.isString(n)?i(n):n;return t.protocol===e.protocol&&t.host===e.host}}():function(){return!0}},function(e,n,t){"use strict";var r=t(0);e.exports=r.isStandardBrowserEnv()?{write:function(e,n,t,i,o,a){var u=[];u.push(e+"="+encodeURIComponent(n)),r.isNumber(t)&&u.push("expires="+new Date(t).toGMTString()),r.isString(i)&&u.push("path="+i),r.isString(o)&&u.push("domain="+o),!0===a&&u.push("secure"),document.cookie=u.join("; ")},read:function(e){var n=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return n?decodeURIComponent(n[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},function(e,n,t){"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},function(e,n,t){"use strict";e.exports=function(e,n){return n?e.replace(/\/+$/,"")+"/"+n.replace(/^\/+/,""):e}},function(e,n,t){"use strict";var r=t(12);function i(e){if("function"!==typeof e)throw new TypeError("executor must be a function.");var n;this.promise=new Promise(function(e){n=e});var t=this;e(function(e){t.reason||(t.reason=new r(e),n(t.reason))})}i.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},i.source=function(){var e;return{token:new i(function(n){e=n}),cancel:e}},e.exports=i},function(e,n,t){"use strict";e.exports=function(e){return function(n){return e.apply(null,n)}}},function(e,n,t){"use strict";function r(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=[],r=!0,i=!1,o=void 0;try{for(var a,u=e[Symbol.iterator]();!(r=(a=u.next()).done)&&(t.push(a.value),!n||t.length!==n);r=!0);}catch(s){i=!0,o=s}finally{try{r||null==u.return||u.return()}finally{if(i)throw o}}return t}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}t.r(n);var i=t(1),o=t.n(i);function a(e){return function(e){if(Array.isArray(e)){for(var n=0,t=new Array(e.length);n>16&255,o=r>>8&255,a=255&r;A.fillStyle="rgb(".concat(i,", ").concat(o,", ").concat(a,")"),A.fillText(t,e,n+22)},draw_end:function(){A.restore();var e=w.transferToImageBitmap(),n=[e];S&&n.push(S.buffer),b.postMessage({action:"render",batch:{bitmap:e,belt:S}},n),S=null},draw_belt:function(e){S=e.slice()}},N=null,D=null,L=0,M=0;["create_sound","duplicate_sound"].forEach(function(e){x[e]=function(){for(var n=arguments.length,t=new Array(n),r=0;r=L?N.push({func:e,params:t}):b.postMessage({action:"audio",func:e,params:t})}}),b.DApi=x;var I=null;function P(e){try{var n;N=[],D=[];for(var t=arguments.length,r=new Array(t>1?t-1:0),i=1;i undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\n\n\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || navigator.product === 'NativeScript' || navigator.product === 'NS')) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\n\n\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n } // Force an array if not already something iterable\n\n\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\n\n\nfunction merge()\n/* obj1, obj2, obj3, ... */\n{\n var result = {};\n\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\n}\n/**\n * Function equal to merge with the difference being that no reference\n * to original objects is kept.\n *\n * @see merge\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\n\n\nfunction deepMerge()\n/* obj1, obj2, obj3, ... */\n{\n var result = {};\n\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = deepMerge(result[key], val);\n } else if (typeof val === 'object') {\n result[key] = deepMerge({}, val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\n}\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\n\n\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n deepMerge: deepMerge,\n extend: extend,\n trim: trim\n};","module.exports = require(\"regenerator-runtime\");\n","// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\n\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\n\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\n\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n return 0;\n};","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n } // if the path is allowed to go above the root, restore leading ..s\n\n\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n} // path.resolve([from ...], to)\n// posix version\n\n\nexports.resolve = function () {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = i >= 0 ? arguments[i] : process.cwd(); // Skip empty and invalid entries\n\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n } // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n // Normalize the path\n\n\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function (p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n return (resolvedAbsolute ? '/' : '') + resolvedPath || '.';\n}; // path.normalize(path)\n// posix version\n\n\nexports.normalize = function (path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/'; // Normalize the path\n\n path = normalizeArray(filter(path.split('/'), function (p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n}; // posix version\n\n\nexports.isAbsolute = function (path) {\n return path.charAt(0) === '/';\n}; // posix version\n\n\nexports.join = function () {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function (p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n\n return p;\n }).join('/'));\n}; // path.relative(from, to)\n// posix version\n\n\nexports.relative = function (from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47\n /*/*/\n ;\n var end = -1;\n var matchedSlash = true;\n\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n} // Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\n\n\nexports.basename = function (path, ext) {\n var f = basename(path);\n\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true; // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n\n var preDotState = 0;\n\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n\n continue;\n }\n\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n\n if (code === 46\n /*.*/\n ) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n\n return path.slice(startDot, end);\n};\n\nfunction filter(xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n\n return res;\n} // String.prototype.substr - negative index don't work in IE8\n\n\nvar substr = 'ab'.substr(-1) === 'b' ? function (str, start, len) {\n return str.substr(start, len);\n} : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n return fn.apply(thisArg, args);\n };\n};","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).replace(/%40/gi, '@').replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n}\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\n\n\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};","'use strict';\n\nvar utils = require('./utils');\n\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter; // Only Node.JS has a process variable that is of [[Class]] process\n\n if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n } else if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n }\n\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) || utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data)) {\n return data;\n }\n\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n\n return data;\n }],\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) {\n /* Ignore */\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n maxContentLength: -1,\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\nmodule.exports = defaults;","'use strict';\n\nvar utils = require('./../utils');\n\nvar settle = require('./../core/settle');\n\nvar buildURL = require('./../helpers/buildURL');\n\nvar parseHeaders = require('./../helpers/parseHeaders');\n\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\n\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest(); // HTTP basic authentication\n\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true); // Set the request timeout in MS\n\n request.timeout = config.timeout; // Listen for ready state\n\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n } // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n\n\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n } // Prepare the response\n\n\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n settle(resolve, reject, response); // Clean up request\n\n request = null;\n }; // Handle browser request cancellation (as opposed to a manual cancellation)\n\n\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Handle low level network errors\n\n\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request)); // Clean up request\n\n request = null;\n }; // Handle timeout\n\n\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies'); // Add xsrf header\n\n\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n } // Add headers to the request\n\n\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n } // Add withCredentials to request if needed\n\n\n if (config.withCredentials) {\n request.withCredentials = true;\n } // Add responseType to request if needed\n\n\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n } // Handle progress if needed\n\n\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n } // Not all browsers support upload events\n\n\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel); // Clean up request\n\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n } // Send the request\n\n\n request.send(requestData);\n });\n};","'use strict';\n\nvar enhanceError = require('./enhanceError');\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\n\n\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};","'use strict';\n\nvar utils = require('../utils');\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\n\n\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n utils.forEach(['url', 'method', 'params', 'data'], function valueFromConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n }\n });\n utils.forEach(['headers', 'auth', 'proxy'], function mergeDeepProperties(prop) {\n if (utils.isObject(config2[prop])) {\n config[prop] = utils.deepMerge(config1[prop], config2[prop]);\n } else if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (utils.isObject(config1[prop])) {\n config[prop] = utils.deepMerge(config1[prop]);\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n utils.forEach(['baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer', 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'maxContentLength', 'validateStatus', 'maxRedirects', 'httpAgent', 'httpsAgent', 'cancelToken', 'socketPath'], function defaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n return config;\n};","'use strict';\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\n\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\nmodule.exports = Cancel;","module.exports = __webpack_public_path__ + \"static/media/Diablo.8cc190a9.wasm\";","\r\nvar Diablo = (function() {\r\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\r\n return (\r\nfunction(Diablo) {\r\n Diablo = Diablo || {};\r\n\r\nvar Module=typeof Diablo!==\"undefined\"?Diablo:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}Module[\"arguments\"]=[];Module[\"thisProgram\"]=\"./this.program\";Module[\"quit\"]=(function(status,toThrow){throw toThrow});Module[\"preRun\"]=[];Module[\"postRun\"]=[];var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof require===\"function\"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}else{return scriptDirectory+path}}if(ENVIRONMENT_IS_NODE){scriptDirectory=__dirname+\"/\";var nodeFS;var nodePath;Module[\"read\"]=function shell_read(filename,binary){var ret;if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);ret=nodeFS[\"readFileSync\"](filename);return binary?ret:ret.toString()};Module[\"readBinary\"]=function readBinary(filename){var ret=Module[\"read\"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){Module[\"thisProgram\"]=process[\"argv\"][1].replace(/\\\\/g,\"/\")}Module[\"arguments\"]=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));process[\"on\"](\"unhandledRejection\",(function(reason,p){process[\"exit\"](1)}));Module[\"quit\"]=(function(status){process[\"exit\"](status)});Module[\"inspect\"]=(function(){return\"[Emscripten Module object]\"})}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){Module[\"read\"]=function shell_read(f){return read(f)}}Module[\"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\"){Module[\"arguments\"]=scriptArgs}else if(typeof arguments!=\"undefined\"){Module[\"arguments\"]=arguments}if(typeof quit===\"function\"){Module[\"quit\"]=(function(status){quit(status)})}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WEB){if(document.currentScript){scriptDirectory=document.currentScript.src}}else{scriptDirectory=self.location.href}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.split(\"/\").slice(0,-1).join(\"/\")+\"/\"}else{scriptDirectory=\"\"}Module[\"read\"]=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){Module[\"readBinary\"]=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}Module[\"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)};Module[\"setWindowTitle\"]=(function(title){document.title=title})}else{}var out=Module[\"print\"]||(typeof console!==\"undefined\"?console.log.bind(console):typeof print!==\"undefined\"?print:null);var err=Module[\"printErr\"]||(typeof printErr!==\"undefined\"?printErr:typeof console!==\"undefined\"&&console.warn.bind(console)||out);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var STACK_ALIGN=16;function staticAlloc(size){var ret=STATICTOP;STATICTOP=STATICTOP+size+15&-16;return ret}function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;var ret=size=Math.ceil(size/factor)*factor;return ret}var asm2wasmImports={\"f64-rem\":(function(x,y){return x%y}),\"debugger\":(function(){debugger})};var functionPointers=new Array(0);var GLOBAL_BASE=1024;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function Pointer_stringify(ptr,length){if(length===0||!ptr)return\"\";var hasUtf=0;var t;var i=0;while(1){t=HEAPU8[ptr+i>>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret=\"\";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return UTF8ToString(ptr)}var UTF8Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str=\"\";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}var UTF16Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;var WASM_PAGE_SIZE=65536;var ASMJS_PAGE_SIZE=16777216;var MIN_TOTAL_MEMORY=16777216;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBuffer(buf){Module[\"buffer\"]=buffer=buf}function updateGlobalBufferViews(){Module[\"HEAP8\"]=HEAP8=new Int8Array(buffer);Module[\"HEAP16\"]=HEAP16=new Int16Array(buffer);Module[\"HEAP32\"]=HEAP32=new Int32Array(buffer);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buffer);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buffer);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buffer);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buffer);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){abort(\"Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value \"+TOTAL_MEMORY+\", (2) compile with -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 \")}if(!Module[\"reallocBuffer\"])Module[\"reallocBuffer\"]=(function(size){var ret;try{if(ArrayBuffer.transfer){ret=ArrayBuffer.transfer(buffer,size)}else{var oldHEAP8=HEAP8;ret=new ArrayBuffer(size);var temp=new Int8Array(ret);temp.set(oldHEAP8)}}catch(e){return false}var success=_emscripten_replace_memory(ret);if(!success)return false;return ret});function enlargeMemory(){var PAGE_MULTIPLE=Module[\"usingWasm\"]?WASM_PAGE_SIZE:ASMJS_PAGE_SIZE;var LIMIT=2147483648-PAGE_MULTIPLE;if(HEAP32[DYNAMICTOP_PTR>>2]>LIMIT){return false}var OLD_TOTAL_MEMORY=TOTAL_MEMORY;TOTAL_MEMORY=Math.max(TOTAL_MEMORY,MIN_TOTAL_MEMORY);while(TOTAL_MEMORY>2]){if(TOTAL_MEMORY<=536870912){TOTAL_MEMORY=alignUp(2*TOTAL_MEMORY,PAGE_MULTIPLE)}else{TOTAL_MEMORY=Math.min(alignUp((3*TOTAL_MEMORY+2147483648)/4,PAGE_MULTIPLE),LIMIT)}}var replacement=Module[\"reallocBuffer\"](TOTAL_MEMORY);if(!replacement||replacement.byteLength!=TOTAL_MEMORY){TOTAL_MEMORY=OLD_TOTAL_MEMORY;return false}updateGlobalBuffer(replacement);updateGlobalBufferViews();return true}var byteLength;try{byteLength=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,\"byteLength\").get);byteLength(new ArrayBuffer(4))}catch(e){byteLength=(function(buffer){return buffer.byteLength})}var TOTAL_STACK=Module[\"TOTAL_STACK\"]||5242880;var TOTAL_MEMORY=Module[\"TOTAL_MEMORY\"]||134217728;if(TOTAL_MEMORY0){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;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}function integrateWasmJS(){var wasmTextFile=\"Diablo.wast\";var wasmBinaryFile=\"Diablo.wasm\";var asmjsCodeFile=\"Diablo.temp.asm.js\";if(!isDataURI(wasmTextFile)){wasmTextFile=locateFile(wasmTextFile)}if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}if(!isDataURI(asmjsCodeFile)){asmjsCodeFile=locateFile(asmjsCodeFile)}var wasmPageSize=64*1024;var info={\"global\":null,\"env\":null,\"asm2wasm\":asm2wasmImports,\"parent\":Module};var exports=null;function mergeMemory(newBuffer){var oldBuffer=Module[\"buffer\"];if(newBuffer.byteLength0);info.refcount--;if(info.refcount===0&&!info.rethrown){if(info.destructor){Module[\"dynCall_vi\"](info.destructor,ptr)}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};function ___cxa_begin_catch(ptr){var info=EXCEPTIONS.infos[ptr];if(info&&!info.caught){info.caught=true;__ZSt18uncaught_exceptionv.uncaught_exception--}if(info)info.rethrown=false;EXCEPTIONS.caught.push(ptr);EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));return ptr}function ___cxa_free_exception(ptr){try{return _free(ptr)}catch(e){}}function ___cxa_end_catch(){Module[\"setThrew\"](0);var ptr=EXCEPTIONS.caught.pop();if(ptr){EXCEPTIONS.decRef(EXCEPTIONS.deAdjust(ptr));EXCEPTIONS.last=0}}function ___cxa_find_matching_catch_2(){return ___cxa_find_matching_catch.apply(null,arguments)}function ___cxa_find_matching_catch_3(){return ___cxa_find_matching_catch.apply(null,arguments)}function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr}throw ptr}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(setTempRet0(0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(setTempRet0(0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module[\"___cxa_is_pointer_type\"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i>2];info.adjusted=thrown;return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};EXCEPTIONS.last=ptr;if(!(\"uncaught_exception\"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr}function ___lock(){}var SYSCALLS={varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),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)})};function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;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}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.get(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();var ret=0;if(!___syscall146.buffers){___syscall146.buffers=[null,[],[]];___syscall146.printChar=(function(stream,curr){var buffer=___syscall146.buffers[stream];assert(buffer);if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}})}for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Module[\"dynCall_v\"](func);_pthread_once.seen[ptr]=1}function _pthread_setspecific(key,value){if(!(key in PTHREAD_SPECIFIC)){return ERRNO_CODES.EINVAL}PTHREAD_SPECIFIC[key]=value;return 0}function ___setErrNo(value){if(Module[\"___errno_location\"])HEAP32[Module[\"___errno_location\"]()>>2]=value;return value}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}DYNAMICTOP_PTR=staticAlloc(4);STACK_BASE=STACKTOP=alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;Module[\"wasmTableSize\"]=600;Module[\"wasmMaxTableSize\"]=600;function invoke_i(index){var sp=stackSave();try{return Module[\"dynCall_i\"](index)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return Module[\"dynCall_ii\"](index,a1)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return Module[\"dynCall_iii\"](index,a1,a2)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return Module[\"dynCall_iiii\"](index,a1,a2,a3)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return Module[\"dynCall_iiiii\"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return Module[\"dynCall_iiiiii\"](index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_ji(index,a1){var sp=stackSave();try{return Module[\"dynCall_ji\"](index,a1)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_v(index){var sp=stackSave();try{Module[\"dynCall_v\"](index)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{Module[\"dynCall_vi\"](index,a1)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{Module[\"dynCall_vii\"](index,a1,a2)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{Module[\"dynCall_viii\"](index,a1,a2,a3)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{Module[\"dynCall_viiii\"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{Module[\"dynCall_viiiii\"](index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viji(index,a1,a2,a3,a4){var sp=stackSave();try{Module[\"dynCall_viji\"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}Module.asmGlobalArg={};Module.asmLibraryArg={\"abort\":abort,\"enlargeMemory\":enlargeMemory,\"getTotalMemory\":getTotalMemory,\"abortOnCannotGrowMemory\":abortOnCannotGrowMemory,\"invoke_i\":invoke_i,\"invoke_ii\":invoke_ii,\"invoke_iii\":invoke_iii,\"invoke_iiii\":invoke_iiii,\"invoke_iiiii\":invoke_iiiii,\"invoke_iiiiii\":invoke_iiiiii,\"invoke_ji\":invoke_ji,\"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_viji\":invoke_viji,\"___assert_fail\":___assert_fail,\"___cxa_allocate_exception\":___cxa_allocate_exception,\"___cxa_begin_catch\":___cxa_begin_catch,\"___cxa_end_catch\":___cxa_end_catch,\"___cxa_find_matching_catch_2\":___cxa_find_matching_catch_2,\"___cxa_find_matching_catch_3\":___cxa_find_matching_catch_3,\"___cxa_free_exception\":___cxa_free_exception,\"___cxa_throw\":___cxa_throw,\"___lock\":___lock,\"___resumeException\":___resumeException,\"___setErrNo\":___setErrNo,\"___syscall140\":___syscall140,\"___syscall146\":___syscall146,\"___syscall54\":___syscall54,\"___syscall6\":___syscall6,\"___unlock\":___unlock,\"_abort\":_abort,\"_api_close_keyboard\":_api_close_keyboard,\"_api_create_sound_float\":_api_create_sound_float,\"_api_delete_sound\":_api_delete_sound,\"_api_draw_begin\":_api_draw_begin,\"_api_draw_belt\":_api_draw_belt,\"_api_draw_blit\":_api_draw_blit,\"_api_draw_clip_text\":_api_draw_clip_text,\"_api_draw_end\":_api_draw_end,\"_api_draw_text\":_api_draw_text,\"_api_duplicate_sound\":_api_duplicate_sound,\"_api_open_keyboard\":_api_open_keyboard,\"_api_play_sound\":_api_play_sound,\"_api_set_cursor\":_api_set_cursor,\"_api_set_volume\":_api_set_volume,\"_api_stop_sound\":_api_stop_sound,\"_emscripten_memcpy_big\":_emscripten_memcpy_big,\"_exit\":_exit,\"_exit_error\":_exit_error,\"_get_file_contents\":_get_file_contents,\"_get_file_size\":_get_file_size,\"_pthread_getspecific\":_pthread_getspecific,\"_pthread_key_create\":_pthread_key_create,\"_pthread_once\":_pthread_once,\"_pthread_setspecific\":_pthread_setspecific,\"_put_file_contents\":_put_file_contents,\"_remove_file\":_remove_file,\"_show_alert\":_show_alert,\"_time\":_time,\"DYNAMICTOP_PTR\":DYNAMICTOP_PTR,\"STACKTOP\":STACKTOP};var asm=Module[\"asm\"](Module.asmGlobalArg,Module.asmLibraryArg,buffer);Module[\"asm\"]=asm;var _DApi_Char=Module[\"_DApi_Char\"]=(function(){return Module[\"asm\"][\"_DApi_Char\"].apply(null,arguments)});var _DApi_Init=Module[\"_DApi_Init\"]=(function(){return Module[\"asm\"][\"_DApi_Init\"].apply(null,arguments)});var _DApi_Key=Module[\"_DApi_Key\"]=(function(){return Module[\"asm\"][\"_DApi_Key\"].apply(null,arguments)});var _DApi_Mouse=Module[\"_DApi_Mouse\"]=(function(){return Module[\"asm\"][\"_DApi_Mouse\"].apply(null,arguments)});var _DApi_Render=Module[\"_DApi_Render\"]=(function(){return Module[\"asm\"][\"_DApi_Render\"].apply(null,arguments)});var _DApi_SyncText=Module[\"_DApi_SyncText\"]=(function(){return Module[\"asm\"][\"_DApi_SyncText\"].apply(null,arguments)});var __GLOBAL__sub_I_msgcmd_cpp=Module[\"__GLOBAL__sub_I_msgcmd_cpp\"]=(function(){return Module[\"asm\"][\"__GLOBAL__sub_I_msgcmd_cpp\"].apply(null,arguments)});var ___cxa_can_catch=Module[\"___cxa_can_catch\"]=(function(){return Module[\"asm\"][\"___cxa_can_catch\"].apply(null,arguments)});var ___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=(function(){return Module[\"asm\"][\"___cxa_is_pointer_type\"].apply(null,arguments)});var ___em_js__api_close_keyboard=Module[\"___em_js__api_close_keyboard\"]=(function(){return Module[\"asm\"][\"___em_js__api_close_keyboard\"].apply(null,arguments)});var ___em_js__api_create_sound_float=Module[\"___em_js__api_create_sound_float\"]=(function(){return Module[\"asm\"][\"___em_js__api_create_sound_float\"].apply(null,arguments)});var ___em_js__api_delete_sound=Module[\"___em_js__api_delete_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_delete_sound\"].apply(null,arguments)});var ___em_js__api_draw_begin=Module[\"___em_js__api_draw_begin\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_begin\"].apply(null,arguments)});var ___em_js__api_draw_belt=Module[\"___em_js__api_draw_belt\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_belt\"].apply(null,arguments)});var ___em_js__api_draw_blit=Module[\"___em_js__api_draw_blit\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_blit\"].apply(null,arguments)});var ___em_js__api_draw_clip_text=Module[\"___em_js__api_draw_clip_text\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_clip_text\"].apply(null,arguments)});var ___em_js__api_draw_end=Module[\"___em_js__api_draw_end\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_end\"].apply(null,arguments)});var ___em_js__api_draw_text=Module[\"___em_js__api_draw_text\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_text\"].apply(null,arguments)});var ___em_js__api_duplicate_sound=Module[\"___em_js__api_duplicate_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_duplicate_sound\"].apply(null,arguments)});var ___em_js__api_open_keyboard=Module[\"___em_js__api_open_keyboard\"]=(function(){return Module[\"asm\"][\"___em_js__api_open_keyboard\"].apply(null,arguments)});var ___em_js__api_play_sound=Module[\"___em_js__api_play_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_play_sound\"].apply(null,arguments)});var ___em_js__api_set_cursor=Module[\"___em_js__api_set_cursor\"]=(function(){return Module[\"asm\"][\"___em_js__api_set_cursor\"].apply(null,arguments)});var ___em_js__api_set_volume=Module[\"___em_js__api_set_volume\"]=(function(){return Module[\"asm\"][\"___em_js__api_set_volume\"].apply(null,arguments)});var ___em_js__api_stop_sound=Module[\"___em_js__api_stop_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_stop_sound\"].apply(null,arguments)});var ___em_js__exit_error=Module[\"___em_js__exit_error\"]=(function(){return Module[\"asm\"][\"___em_js__exit_error\"].apply(null,arguments)});var ___em_js__get_file_contents=Module[\"___em_js__get_file_contents\"]=(function(){return Module[\"asm\"][\"___em_js__get_file_contents\"].apply(null,arguments)});var ___em_js__get_file_size=Module[\"___em_js__get_file_size\"]=(function(){return Module[\"asm\"][\"___em_js__get_file_size\"].apply(null,arguments)});var ___em_js__put_file_contents=Module[\"___em_js__put_file_contents\"]=(function(){return Module[\"asm\"][\"___em_js__put_file_contents\"].apply(null,arguments)});var ___em_js__remove_file=Module[\"___em_js__remove_file\"]=(function(){return Module[\"asm\"][\"___em_js__remove_file\"].apply(null,arguments)});var ___em_js__show_alert=Module[\"___em_js__show_alert\"]=(function(){return Module[\"asm\"][\"___em_js__show_alert\"].apply(null,arguments)});var ___em_js__trace_pop=Module[\"___em_js__trace_pop\"]=(function(){return Module[\"asm\"][\"___em_js__trace_pop\"].apply(null,arguments)});var ___em_js__trace_push=Module[\"___em_js__trace_push\"]=(function(){return Module[\"asm\"][\"___em_js__trace_push\"].apply(null,arguments)});var _emscripten_replace_memory=Module[\"_emscripten_replace_memory\"]=(function(){return Module[\"asm\"][\"_emscripten_replace_memory\"].apply(null,arguments)});var _free=Module[\"_free\"]=(function(){return Module[\"asm\"][\"_free\"].apply(null,arguments)});var _malloc=Module[\"_malloc\"]=(function(){return Module[\"asm\"][\"_malloc\"].apply(null,arguments)});var setTempRet0=Module[\"setTempRet0\"]=(function(){return Module[\"asm\"][\"setTempRet0\"].apply(null,arguments)});var setThrew=Module[\"setThrew\"]=(function(){return Module[\"asm\"][\"setThrew\"].apply(null,arguments)});var stackRestore=Module[\"stackRestore\"]=(function(){return Module[\"asm\"][\"stackRestore\"].apply(null,arguments)});var stackSave=Module[\"stackSave\"]=(function(){return Module[\"asm\"][\"stackSave\"].apply(null,arguments)});var dynCall_i=Module[\"dynCall_i\"]=(function(){return Module[\"asm\"][\"dynCall_i\"].apply(null,arguments)});var dynCall_ii=Module[\"dynCall_ii\"]=(function(){return Module[\"asm\"][\"dynCall_ii\"].apply(null,arguments)});var dynCall_iii=Module[\"dynCall_iii\"]=(function(){return Module[\"asm\"][\"dynCall_iii\"].apply(null,arguments)});var dynCall_iiii=Module[\"dynCall_iiii\"]=(function(){return Module[\"asm\"][\"dynCall_iiii\"].apply(null,arguments)});var dynCall_iiiii=Module[\"dynCall_iiiii\"]=(function(){return Module[\"asm\"][\"dynCall_iiiii\"].apply(null,arguments)});var dynCall_iiiiii=Module[\"dynCall_iiiiii\"]=(function(){return Module[\"asm\"][\"dynCall_iiiiii\"].apply(null,arguments)});var dynCall_ji=Module[\"dynCall_ji\"]=(function(){return Module[\"asm\"][\"dynCall_ji\"].apply(null,arguments)});var dynCall_v=Module[\"dynCall_v\"]=(function(){return Module[\"asm\"][\"dynCall_v\"].apply(null,arguments)});var dynCall_vi=Module[\"dynCall_vi\"]=(function(){return Module[\"asm\"][\"dynCall_vi\"].apply(null,arguments)});var dynCall_vii=Module[\"dynCall_vii\"]=(function(){return Module[\"asm\"][\"dynCall_vii\"].apply(null,arguments)});var dynCall_viii=Module[\"dynCall_viii\"]=(function(){return Module[\"asm\"][\"dynCall_viii\"].apply(null,arguments)});var dynCall_viiii=Module[\"dynCall_viiii\"]=(function(){return Module[\"asm\"][\"dynCall_viiii\"].apply(null,arguments)});var dynCall_viiiii=Module[\"dynCall_viiiii\"]=(function(){return Module[\"asm\"][\"dynCall_viiiii\"].apply(null,arguments)});var dynCall_viji=Module[\"dynCall_viji\"]=(function(){return Module[\"asm\"][\"dynCall_viji\"].apply(null,arguments)});Module[\"asm\"]=asm;Module[\"then\"]=(function(func){if(Module[\"calledRun\"]){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=(function(){if(old)old();func(Module)})}return Module});function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;dependenciesFulfilled=function runCaller(){if(!Module[\"calledRun\"])run();if(!Module[\"calledRun\"])dependenciesFulfilled=runCaller};function run(args){args=args||Module[\"arguments\"];if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module[\"calledRun\"])return;function doRun(){if(Module[\"calledRun\"])return;Module[\"calledRun\"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout((function(){setTimeout((function(){Module[\"setStatus\"](\"\")}),1);doRun()}),1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&Module[\"noExitRuntime\"]&&status===0){return}if(Module[\"noExitRuntime\"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}Module[\"quit\"](status,new ExitStatus(status))}function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(what!==undefined){out(what);err(what);what=JSON.stringify(what)}else{what=\"\"}ABORT=true;EXITSTATUS=1;throw\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\"}Module[\"abort\"]=abort;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}Module[\"noExitRuntime\"]=true;run();Module[\"ready\"]=new Promise((function(resolve,reject){delete Module[\"then\"];Module[\"onAbort\"]=(function(what){reject(what)});addOnPostRun((function(){resolve(Module)}))}))\r\n\r\n\r\n\r\n\r\n\r\n return Diablo;\r\n}\r\n);\r\n})();\r\nif (typeof exports === 'object' && typeof module === 'object')\r\n module.exports = Diablo;\r\n else if (typeof define === 'function' && define['amd'])\r\n define([], function() { return Diablo; });\r\n else if (typeof exports === 'object')\r\n exports[\"Diablo\"] = Diablo;\r\n \n\n/*** EXPORTS FROM exports-loader ***/\n","module.exports = __webpack_public_path__ + \"static/media/DiabloSpawn.8210d404.wasm\";","\r\nvar DiabloSpawn = (function() {\r\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\r\n return (\r\nfunction(DiabloSpawn) {\r\n DiabloSpawn = DiabloSpawn || {};\r\n\r\nvar Module=typeof DiabloSpawn!==\"undefined\"?DiabloSpawn:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}Module[\"arguments\"]=[];Module[\"thisProgram\"]=\"./this.program\";Module[\"quit\"]=(function(status,toThrow){throw toThrow});Module[\"preRun\"]=[];Module[\"postRun\"]=[];var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof require===\"function\"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}else{return scriptDirectory+path}}if(ENVIRONMENT_IS_NODE){scriptDirectory=__dirname+\"/\";var nodeFS;var nodePath;Module[\"read\"]=function shell_read(filename,binary){var ret;if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);ret=nodeFS[\"readFileSync\"](filename);return binary?ret:ret.toString()};Module[\"readBinary\"]=function readBinary(filename){var ret=Module[\"read\"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){Module[\"thisProgram\"]=process[\"argv\"][1].replace(/\\\\/g,\"/\")}Module[\"arguments\"]=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));process[\"on\"](\"unhandledRejection\",(function(reason,p){process[\"exit\"](1)}));Module[\"quit\"]=(function(status){process[\"exit\"](status)});Module[\"inspect\"]=(function(){return\"[Emscripten Module object]\"})}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){Module[\"read\"]=function shell_read(f){return read(f)}}Module[\"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\"){Module[\"arguments\"]=scriptArgs}else if(typeof arguments!=\"undefined\"){Module[\"arguments\"]=arguments}if(typeof quit===\"function\"){Module[\"quit\"]=(function(status){quit(status)})}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WEB){if(document.currentScript){scriptDirectory=document.currentScript.src}}else{scriptDirectory=self.location.href}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.split(\"/\").slice(0,-1).join(\"/\")+\"/\"}else{scriptDirectory=\"\"}Module[\"read\"]=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){Module[\"readBinary\"]=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}Module[\"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)};Module[\"setWindowTitle\"]=(function(title){document.title=title})}else{}var out=Module[\"print\"]||(typeof console!==\"undefined\"?console.log.bind(console):typeof print!==\"undefined\"?print:null);var err=Module[\"printErr\"]||(typeof printErr!==\"undefined\"?printErr:typeof console!==\"undefined\"&&console.warn.bind(console)||out);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var STACK_ALIGN=16;function staticAlloc(size){var ret=STATICTOP;STATICTOP=STATICTOP+size+15&-16;return ret}function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;var ret=size=Math.ceil(size/factor)*factor;return ret}var asm2wasmImports={\"f64-rem\":(function(x,y){return x%y}),\"debugger\":(function(){debugger})};var functionPointers=new Array(0);var GLOBAL_BASE=1024;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function Pointer_stringify(ptr,length){if(length===0||!ptr)return\"\";var hasUtf=0;var t;var i=0;while(1){t=HEAPU8[ptr+i>>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret=\"\";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return UTF8ToString(ptr)}var UTF8Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str=\"\";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}var UTF16Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;var WASM_PAGE_SIZE=65536;var ASMJS_PAGE_SIZE=16777216;var MIN_TOTAL_MEMORY=16777216;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBuffer(buf){Module[\"buffer\"]=buffer=buf}function updateGlobalBufferViews(){Module[\"HEAP8\"]=HEAP8=new Int8Array(buffer);Module[\"HEAP16\"]=HEAP16=new Int16Array(buffer);Module[\"HEAP32\"]=HEAP32=new Int32Array(buffer);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buffer);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buffer);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buffer);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buffer);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){abort(\"Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value \"+TOTAL_MEMORY+\", (2) compile with -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 \")}if(!Module[\"reallocBuffer\"])Module[\"reallocBuffer\"]=(function(size){var ret;try{if(ArrayBuffer.transfer){ret=ArrayBuffer.transfer(buffer,size)}else{var oldHEAP8=HEAP8;ret=new ArrayBuffer(size);var temp=new Int8Array(ret);temp.set(oldHEAP8)}}catch(e){return false}var success=_emscripten_replace_memory(ret);if(!success)return false;return ret});function enlargeMemory(){var PAGE_MULTIPLE=Module[\"usingWasm\"]?WASM_PAGE_SIZE:ASMJS_PAGE_SIZE;var LIMIT=2147483648-PAGE_MULTIPLE;if(HEAP32[DYNAMICTOP_PTR>>2]>LIMIT){return false}var OLD_TOTAL_MEMORY=TOTAL_MEMORY;TOTAL_MEMORY=Math.max(TOTAL_MEMORY,MIN_TOTAL_MEMORY);while(TOTAL_MEMORY>2]){if(TOTAL_MEMORY<=536870912){TOTAL_MEMORY=alignUp(2*TOTAL_MEMORY,PAGE_MULTIPLE)}else{TOTAL_MEMORY=Math.min(alignUp((3*TOTAL_MEMORY+2147483648)/4,PAGE_MULTIPLE),LIMIT)}}var replacement=Module[\"reallocBuffer\"](TOTAL_MEMORY);if(!replacement||replacement.byteLength!=TOTAL_MEMORY){TOTAL_MEMORY=OLD_TOTAL_MEMORY;return false}updateGlobalBuffer(replacement);updateGlobalBufferViews();return true}var byteLength;try{byteLength=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,\"byteLength\").get);byteLength(new ArrayBuffer(4))}catch(e){byteLength=(function(buffer){return buffer.byteLength})}var TOTAL_STACK=Module[\"TOTAL_STACK\"]||5242880;var TOTAL_MEMORY=Module[\"TOTAL_MEMORY\"]||134217728;if(TOTAL_MEMORY0){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;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}function integrateWasmJS(){var wasmTextFile=\"DiabloSpawn.wast\";var wasmBinaryFile=\"DiabloSpawn.wasm\";var asmjsCodeFile=\"DiabloSpawn.temp.asm.js\";if(!isDataURI(wasmTextFile)){wasmTextFile=locateFile(wasmTextFile)}if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}if(!isDataURI(asmjsCodeFile)){asmjsCodeFile=locateFile(asmjsCodeFile)}var wasmPageSize=64*1024;var info={\"global\":null,\"env\":null,\"asm2wasm\":asm2wasmImports,\"parent\":Module};var exports=null;function mergeMemory(newBuffer){var oldBuffer=Module[\"buffer\"];if(newBuffer.byteLength0);info.refcount--;if(info.refcount===0&&!info.rethrown){if(info.destructor){Module[\"dynCall_vi\"](info.destructor,ptr)}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};function ___cxa_begin_catch(ptr){var info=EXCEPTIONS.infos[ptr];if(info&&!info.caught){info.caught=true;__ZSt18uncaught_exceptionv.uncaught_exception--}if(info)info.rethrown=false;EXCEPTIONS.caught.push(ptr);EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));return ptr}function ___cxa_free_exception(ptr){try{return _free(ptr)}catch(e){}}function ___cxa_end_catch(){Module[\"setThrew\"](0);var ptr=EXCEPTIONS.caught.pop();if(ptr){EXCEPTIONS.decRef(EXCEPTIONS.deAdjust(ptr));EXCEPTIONS.last=0}}function ___cxa_find_matching_catch_2(){return ___cxa_find_matching_catch.apply(null,arguments)}function ___cxa_find_matching_catch_3(){return ___cxa_find_matching_catch.apply(null,arguments)}function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr}throw ptr}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(setTempRet0(0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(setTempRet0(0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module[\"___cxa_is_pointer_type\"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i>2];info.adjusted=thrown;return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};EXCEPTIONS.last=ptr;if(!(\"uncaught_exception\"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr}function ___lock(){}var SYSCALLS={varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),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)})};function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;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}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.get(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();var ret=0;if(!___syscall146.buffers){___syscall146.buffers=[null,[],[]];___syscall146.printChar=(function(stream,curr){var buffer=___syscall146.buffers[stream];assert(buffer);if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}})}for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Module[\"dynCall_v\"](func);_pthread_once.seen[ptr]=1}function _pthread_setspecific(key,value){if(!(key in PTHREAD_SPECIFIC)){return ERRNO_CODES.EINVAL}PTHREAD_SPECIFIC[key]=value;return 0}function ___setErrNo(value){if(Module[\"___errno_location\"])HEAP32[Module[\"___errno_location\"]()>>2]=value;return value}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}DYNAMICTOP_PTR=staticAlloc(4);STACK_BASE=STACKTOP=alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;Module[\"wasmTableSize\"]=588;Module[\"wasmMaxTableSize\"]=588;function invoke_i(index){var sp=stackSave();try{return Module[\"dynCall_i\"](index)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return Module[\"dynCall_ii\"](index,a1)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return Module[\"dynCall_iii\"](index,a1,a2)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return Module[\"dynCall_iiii\"](index,a1,a2,a3)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return Module[\"dynCall_iiiii\"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return Module[\"dynCall_iiiiii\"](index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_ji(index,a1){var sp=stackSave();try{return Module[\"dynCall_ji\"](index,a1)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_v(index){var sp=stackSave();try{Module[\"dynCall_v\"](index)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{Module[\"dynCall_vi\"](index,a1)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{Module[\"dynCall_vii\"](index,a1,a2)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{Module[\"dynCall_viii\"](index,a1,a2,a3)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{Module[\"dynCall_viiii\"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{Module[\"dynCall_viiiii\"](index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viji(index,a1,a2,a3,a4){var sp=stackSave();try{Module[\"dynCall_viji\"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}Module.asmGlobalArg={};Module.asmLibraryArg={\"abort\":abort,\"enlargeMemory\":enlargeMemory,\"getTotalMemory\":getTotalMemory,\"abortOnCannotGrowMemory\":abortOnCannotGrowMemory,\"invoke_i\":invoke_i,\"invoke_ii\":invoke_ii,\"invoke_iii\":invoke_iii,\"invoke_iiii\":invoke_iiii,\"invoke_iiiii\":invoke_iiiii,\"invoke_iiiiii\":invoke_iiiiii,\"invoke_ji\":invoke_ji,\"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_viji\":invoke_viji,\"___assert_fail\":___assert_fail,\"___cxa_allocate_exception\":___cxa_allocate_exception,\"___cxa_begin_catch\":___cxa_begin_catch,\"___cxa_end_catch\":___cxa_end_catch,\"___cxa_find_matching_catch_2\":___cxa_find_matching_catch_2,\"___cxa_find_matching_catch_3\":___cxa_find_matching_catch_3,\"___cxa_free_exception\":___cxa_free_exception,\"___cxa_throw\":___cxa_throw,\"___lock\":___lock,\"___resumeException\":___resumeException,\"___setErrNo\":___setErrNo,\"___syscall140\":___syscall140,\"___syscall146\":___syscall146,\"___syscall54\":___syscall54,\"___syscall6\":___syscall6,\"___unlock\":___unlock,\"_abort\":_abort,\"_api_close_keyboard\":_api_close_keyboard,\"_api_create_sound_float\":_api_create_sound_float,\"_api_delete_sound\":_api_delete_sound,\"_api_draw_begin\":_api_draw_begin,\"_api_draw_belt\":_api_draw_belt,\"_api_draw_blit\":_api_draw_blit,\"_api_draw_clip_text\":_api_draw_clip_text,\"_api_draw_end\":_api_draw_end,\"_api_draw_text\":_api_draw_text,\"_api_duplicate_sound\":_api_duplicate_sound,\"_api_open_keyboard\":_api_open_keyboard,\"_api_play_sound\":_api_play_sound,\"_api_set_cursor\":_api_set_cursor,\"_api_set_volume\":_api_set_volume,\"_api_stop_sound\":_api_stop_sound,\"_emscripten_memcpy_big\":_emscripten_memcpy_big,\"_exit\":_exit,\"_exit_error\":_exit_error,\"_get_file_contents\":_get_file_contents,\"_get_file_size\":_get_file_size,\"_pthread_getspecific\":_pthread_getspecific,\"_pthread_key_create\":_pthread_key_create,\"_pthread_once\":_pthread_once,\"_pthread_setspecific\":_pthread_setspecific,\"_put_file_contents\":_put_file_contents,\"_remove_file\":_remove_file,\"_show_alert\":_show_alert,\"_time\":_time,\"DYNAMICTOP_PTR\":DYNAMICTOP_PTR,\"STACKTOP\":STACKTOP};var asm=Module[\"asm\"](Module.asmGlobalArg,Module.asmLibraryArg,buffer);Module[\"asm\"]=asm;var _DApi_Char=Module[\"_DApi_Char\"]=(function(){return Module[\"asm\"][\"_DApi_Char\"].apply(null,arguments)});var _DApi_Init=Module[\"_DApi_Init\"]=(function(){return Module[\"asm\"][\"_DApi_Init\"].apply(null,arguments)});var _DApi_Key=Module[\"_DApi_Key\"]=(function(){return Module[\"asm\"][\"_DApi_Key\"].apply(null,arguments)});var _DApi_Mouse=Module[\"_DApi_Mouse\"]=(function(){return Module[\"asm\"][\"_DApi_Mouse\"].apply(null,arguments)});var _DApi_Render=Module[\"_DApi_Render\"]=(function(){return Module[\"asm\"][\"_DApi_Render\"].apply(null,arguments)});var _DApi_SyncText=Module[\"_DApi_SyncText\"]=(function(){return Module[\"asm\"][\"_DApi_SyncText\"].apply(null,arguments)});var __GLOBAL__sub_I_msgcmd_cpp=Module[\"__GLOBAL__sub_I_msgcmd_cpp\"]=(function(){return Module[\"asm\"][\"__GLOBAL__sub_I_msgcmd_cpp\"].apply(null,arguments)});var ___cxa_can_catch=Module[\"___cxa_can_catch\"]=(function(){return Module[\"asm\"][\"___cxa_can_catch\"].apply(null,arguments)});var ___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=(function(){return Module[\"asm\"][\"___cxa_is_pointer_type\"].apply(null,arguments)});var ___em_js__api_close_keyboard=Module[\"___em_js__api_close_keyboard\"]=(function(){return Module[\"asm\"][\"___em_js__api_close_keyboard\"].apply(null,arguments)});var ___em_js__api_create_sound_float=Module[\"___em_js__api_create_sound_float\"]=(function(){return Module[\"asm\"][\"___em_js__api_create_sound_float\"].apply(null,arguments)});var ___em_js__api_delete_sound=Module[\"___em_js__api_delete_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_delete_sound\"].apply(null,arguments)});var ___em_js__api_draw_begin=Module[\"___em_js__api_draw_begin\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_begin\"].apply(null,arguments)});var ___em_js__api_draw_belt=Module[\"___em_js__api_draw_belt\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_belt\"].apply(null,arguments)});var ___em_js__api_draw_blit=Module[\"___em_js__api_draw_blit\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_blit\"].apply(null,arguments)});var ___em_js__api_draw_clip_text=Module[\"___em_js__api_draw_clip_text\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_clip_text\"].apply(null,arguments)});var ___em_js__api_draw_end=Module[\"___em_js__api_draw_end\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_end\"].apply(null,arguments)});var ___em_js__api_draw_text=Module[\"___em_js__api_draw_text\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_text\"].apply(null,arguments)});var ___em_js__api_duplicate_sound=Module[\"___em_js__api_duplicate_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_duplicate_sound\"].apply(null,arguments)});var ___em_js__api_open_keyboard=Module[\"___em_js__api_open_keyboard\"]=(function(){return Module[\"asm\"][\"___em_js__api_open_keyboard\"].apply(null,arguments)});var ___em_js__api_play_sound=Module[\"___em_js__api_play_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_play_sound\"].apply(null,arguments)});var ___em_js__api_set_cursor=Module[\"___em_js__api_set_cursor\"]=(function(){return Module[\"asm\"][\"___em_js__api_set_cursor\"].apply(null,arguments)});var ___em_js__api_set_volume=Module[\"___em_js__api_set_volume\"]=(function(){return Module[\"asm\"][\"___em_js__api_set_volume\"].apply(null,arguments)});var ___em_js__api_stop_sound=Module[\"___em_js__api_stop_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_stop_sound\"].apply(null,arguments)});var ___em_js__exit_error=Module[\"___em_js__exit_error\"]=(function(){return Module[\"asm\"][\"___em_js__exit_error\"].apply(null,arguments)});var ___em_js__get_file_contents=Module[\"___em_js__get_file_contents\"]=(function(){return Module[\"asm\"][\"___em_js__get_file_contents\"].apply(null,arguments)});var ___em_js__get_file_size=Module[\"___em_js__get_file_size\"]=(function(){return Module[\"asm\"][\"___em_js__get_file_size\"].apply(null,arguments)});var ___em_js__put_file_contents=Module[\"___em_js__put_file_contents\"]=(function(){return Module[\"asm\"][\"___em_js__put_file_contents\"].apply(null,arguments)});var ___em_js__remove_file=Module[\"___em_js__remove_file\"]=(function(){return Module[\"asm\"][\"___em_js__remove_file\"].apply(null,arguments)});var ___em_js__show_alert=Module[\"___em_js__show_alert\"]=(function(){return Module[\"asm\"][\"___em_js__show_alert\"].apply(null,arguments)});var ___em_js__trace_pop=Module[\"___em_js__trace_pop\"]=(function(){return Module[\"asm\"][\"___em_js__trace_pop\"].apply(null,arguments)});var ___em_js__trace_push=Module[\"___em_js__trace_push\"]=(function(){return Module[\"asm\"][\"___em_js__trace_push\"].apply(null,arguments)});var _emscripten_replace_memory=Module[\"_emscripten_replace_memory\"]=(function(){return Module[\"asm\"][\"_emscripten_replace_memory\"].apply(null,arguments)});var _free=Module[\"_free\"]=(function(){return Module[\"asm\"][\"_free\"].apply(null,arguments)});var _malloc=Module[\"_malloc\"]=(function(){return Module[\"asm\"][\"_malloc\"].apply(null,arguments)});var setTempRet0=Module[\"setTempRet0\"]=(function(){return Module[\"asm\"][\"setTempRet0\"].apply(null,arguments)});var setThrew=Module[\"setThrew\"]=(function(){return Module[\"asm\"][\"setThrew\"].apply(null,arguments)});var stackRestore=Module[\"stackRestore\"]=(function(){return Module[\"asm\"][\"stackRestore\"].apply(null,arguments)});var stackSave=Module[\"stackSave\"]=(function(){return Module[\"asm\"][\"stackSave\"].apply(null,arguments)});var dynCall_i=Module[\"dynCall_i\"]=(function(){return Module[\"asm\"][\"dynCall_i\"].apply(null,arguments)});var dynCall_ii=Module[\"dynCall_ii\"]=(function(){return Module[\"asm\"][\"dynCall_ii\"].apply(null,arguments)});var dynCall_iii=Module[\"dynCall_iii\"]=(function(){return Module[\"asm\"][\"dynCall_iii\"].apply(null,arguments)});var dynCall_iiii=Module[\"dynCall_iiii\"]=(function(){return Module[\"asm\"][\"dynCall_iiii\"].apply(null,arguments)});var dynCall_iiiii=Module[\"dynCall_iiiii\"]=(function(){return Module[\"asm\"][\"dynCall_iiiii\"].apply(null,arguments)});var dynCall_iiiiii=Module[\"dynCall_iiiiii\"]=(function(){return Module[\"asm\"][\"dynCall_iiiiii\"].apply(null,arguments)});var dynCall_ji=Module[\"dynCall_ji\"]=(function(){return Module[\"asm\"][\"dynCall_ji\"].apply(null,arguments)});var dynCall_v=Module[\"dynCall_v\"]=(function(){return Module[\"asm\"][\"dynCall_v\"].apply(null,arguments)});var dynCall_vi=Module[\"dynCall_vi\"]=(function(){return Module[\"asm\"][\"dynCall_vi\"].apply(null,arguments)});var dynCall_vii=Module[\"dynCall_vii\"]=(function(){return Module[\"asm\"][\"dynCall_vii\"].apply(null,arguments)});var dynCall_viii=Module[\"dynCall_viii\"]=(function(){return Module[\"asm\"][\"dynCall_viii\"].apply(null,arguments)});var dynCall_viiii=Module[\"dynCall_viiii\"]=(function(){return Module[\"asm\"][\"dynCall_viiii\"].apply(null,arguments)});var dynCall_viiiii=Module[\"dynCall_viiiii\"]=(function(){return Module[\"asm\"][\"dynCall_viiiii\"].apply(null,arguments)});var dynCall_viji=Module[\"dynCall_viji\"]=(function(){return Module[\"asm\"][\"dynCall_viji\"].apply(null,arguments)});Module[\"asm\"]=asm;Module[\"then\"]=(function(func){if(Module[\"calledRun\"]){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=(function(){if(old)old();func(Module)})}return Module});function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;dependenciesFulfilled=function runCaller(){if(!Module[\"calledRun\"])run();if(!Module[\"calledRun\"])dependenciesFulfilled=runCaller};function run(args){args=args||Module[\"arguments\"];if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module[\"calledRun\"])return;function doRun(){if(Module[\"calledRun\"])return;Module[\"calledRun\"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout((function(){setTimeout((function(){Module[\"setStatus\"](\"\")}),1);doRun()}),1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&Module[\"noExitRuntime\"]&&status===0){return}if(Module[\"noExitRuntime\"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}Module[\"quit\"](status,new ExitStatus(status))}function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(what!==undefined){out(what);err(what);what=JSON.stringify(what)}else{what=\"\"}ABORT=true;EXITSTATUS=1;throw\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\"}Module[\"abort\"]=abort;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}Module[\"noExitRuntime\"]=true;run();Module[\"ready\"]=new Promise((function(resolve,reject){delete Module[\"then\"];Module[\"onAbort\"]=(function(what){reject(what)});addOnPostRun((function(){resolve(Module)}))}))\r\n\r\n\r\n\r\n\r\n\r\n return DiabloSpawn;\r\n}\r\n);\r\n})();\r\nif (typeof exports === 'object' && typeof module === 'object')\r\n module.exports = DiabloSpawn;\r\n else if (typeof define === 'function' && define['amd'])\r\n define([], function() { return DiabloSpawn; });\r\n else if (typeof exports === 'object')\r\n exports[\"DiabloSpawn\"] = DiabloSpawn;\r\n \n\n/*** EXPORTS FROM exports-loader ***/\n","module.exports = require('./lib/axios');","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar runtime = function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []); // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n return generator;\n }\n\n exports.wrap = wrap; // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\"; // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n\n var ContinueSentinel = {}; // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {} // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n\n\n var IteratorPrototype = {};\n\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n\n if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = \"GeneratorFunction\"; // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n prototype[method] = function (arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function (genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor ? ctor === GeneratorFunction || // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\" : false;\n };\n\n exports.mark = function (genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n\n genFun.prototype = Object.create(Gp);\n return genFun;\n }; // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n\n\n exports.awrap = function (arg) {\n return {\n __await: arg\n };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n\n if (value && typeof value === \"object\" && hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function (unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function (error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n } // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n\n\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n\n exports.AsyncIterator = AsyncIterator; // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n\n exports.async = function (innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList));\n return exports.isGeneratorFunction(outerFn) ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n } // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n\n\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n var record = tryCatch(innerFn, self, context);\n\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done ? GenStateCompleted : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n } else if (record.type === \"throw\") {\n state = GenStateCompleted; // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n } // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (!info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value; // Resume execution at the desired location (see delegateYield).\n\n context.next = delegate.nextLoc; // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n } // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n\n\n context.delegate = null;\n return ContinueSentinel;\n } // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n\n\n defineIteratorMethods(Gp);\n Gp[toStringTagSymbol] = \"Generator\"; // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n\n Gp[iteratorSymbol] = function () {\n return this;\n };\n\n Gp.toString = function () {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{\n tryLoc: \"root\"\n }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n keys.reverse(); // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n } // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n\n\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n return next;\n };\n\n return next.next = next;\n }\n } // Return an iterator with no values.\n\n\n return {\n next: doneResult\n };\n }\n\n exports.values = values;\n\n function doneResult() {\n return {\n value: undefined,\n done: true\n };\n }\n\n Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n this.prev = 0;\n this.next = 0; // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n this.method = \"next\";\n this.arg = undefined;\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n stop: function stop() {\n this.done = true;\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry && (type === \"break\" || type === \"continue\") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" || record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n } // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n }; // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n\n return exports;\n}( // If this script is executing as a CommonJS module, use module.exports\n// as the regeneratorRuntime namespace. Otherwise create a new empty\n// object. Either way, the resulting object will be used to initialize\n// the regeneratorRuntime variable at the top of this file.\ntypeof module === \"object\" ? module.exports : {});\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}","'use strict';\n\nvar utils = require('./utils');\n\nvar bind = require('./helpers/bind');\n\nvar Axios = require('./core/Axios');\n\nvar mergeConfig = require('./core/mergeConfig');\n\nvar defaults = require('./defaults');\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\n\n\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context); // Copy axios.prototype to instance\n\n utils.extend(instance, Axios.prototype, context); // Copy context to instance\n\n utils.extend(instance, context);\n return instance;\n} // Create the default instance to be exported\n\n\nvar axios = createInstance(defaults); // Expose Axios class to allow class inheritance\n\naxios.Axios = Axios; // Factory for creating new instances\n\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n}; // Expose Cancel & CancelToken\n\n\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel'); // Expose all/spread\n\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = require('./helpers/spread');\nmodule.exports = axios; // Allow use of default import syntax in TypeScript\n\nmodule.exports.default = axios;","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\nmodule.exports = function isBuffer(obj) {\n return obj != null && obj.constructor != null && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj);\n};","'use strict';\n\nvar utils = require('./../utils');\n\nvar buildURL = require('../helpers/buildURL');\n\nvar InterceptorManager = require('./InterceptorManager');\n\nvar dispatchRequest = require('./dispatchRequest');\n\nvar mergeConfig = require('./mergeConfig');\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\n\n\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\n\n\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n config.method = config.method ? config.method.toLowerCase() : 'get'; // Hook up interceptors middleware\n\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n}; // Provide aliases for supported request methods\n\n\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\nmodule.exports = Axios;","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n\n\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\n\n\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\n\n\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;","'use strict';\n\nvar utils = require('./../utils');\n\nvar transformData = require('./transformData');\n\nvar isCancel = require('../cancel/isCancel');\n\nvar defaults = require('../defaults');\n\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\n\nvar combineURLs = require('./../helpers/combineURLs');\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\n\n\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config); // Support baseURL config\n\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n } // Ensure headers exist\n\n\n config.headers = config.headers || {}; // Transform request data\n\n config.data = transformData(config.data, config.headers, config.transformRequest); // Flatten headers\n\n config.headers = utils.merge(config.headers.common || {}, config.headers[config.method] || {}, config.headers || {});\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], function cleanHeaderConfig(method) {\n delete config.headers[method];\n });\n var adapter = config.adapter || defaults.adapter;\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config); // Transform response data\n\n response.data = transformData(response.data, response.headers, config.transformResponse);\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config); // Transform response data\n\n if (reason && reason.response) {\n reason.response.data = transformData(reason.response.data, reason.response.headers, config.transformResponse);\n }\n }\n\n return Promise.reject(reason);\n });\n};","'use strict';\n\nvar utils = require('./../utils');\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\n\n\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n return data;\n};","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};","'use strict';\n\nvar createError = require('./createError');\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\n\n\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n\n if (!validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError('Request failed with status code ' + response.status, response.config, null, response.request, response));\n }\n};","'use strict';\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\n\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function () {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n\n return error;\n};","'use strict';\n\nvar utils = require('./../utils'); // Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\n\n\nvar ignoreDuplicateOf = ['age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent'];\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\n\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) {\n return parsed;\n }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n return parsed;\n};","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\nfunction standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href); // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: urlParsingNode.pathname.charAt(0) === '/' ? urlParsingNode.pathname : '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n\n return function isURLSameOrigin(requestURL) {\n var parsed = utils.isString(requestURL) ? resolveURL(requestURL) : requestURL;\n return parsed.protocol === originURL.protocol && parsed.host === originURL.host;\n };\n}() : // Non standard browser envs (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n}();","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs support document.cookie\nfunction standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return match ? decodeURIComponent(match[3]) : null;\n },\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n}() : // Non standard browser env (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() {\n return null;\n },\n remove: function remove() {}\n };\n}();","'use strict';\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\n\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};","'use strict';\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\n\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '') : baseURL;\n};","'use strict';\n\nvar Cancel = require('./Cancel');\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\n\n\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n\n\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;","'use strict';\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\n\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}","export default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}","export default function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","import DiabloBinary from './Diablo.wasm';\r\nimport DiabloModule from './Diablo.jscc';\r\nimport SpawnBinary from './DiabloSpawn.wasm';\r\nimport SpawnModule from './DiabloSpawn.jscc';\r\nimport axios from 'axios';\r\n\r\nconst DiabloSize = 1288845;\r\nconst SpawnSize = 1160682;\r\n\r\n/* eslint-disable-next-line no-restricted-globals */\r\nconst worker = self;\r\n\r\nlet canvas = null, context = null;\r\nlet imageData = null;\r\nlet files = null;\r\nlet renderBatch = null;\r\nlet drawBelt = null;\r\n\r\nconst DApi = {\r\n exit_error(error) {\r\n worker.postMessage({action: \"error\", error});\r\n },\r\n\r\n get_file_size(path) {\r\n const data = files.get(path.toLowerCase());\r\n return data ? data.byteLength : 0;\r\n },\r\n get_file_contents(path, array, offset) {\r\n const data = files.get(path.toLowerCase());\r\n if (data) {\r\n array.set(data.subarray(offset, offset + array.length));\r\n }\r\n },\r\n put_file_contents(path, array) {\r\n path = path.toLowerCase();\r\n // if (!path.match(/^(spawn\\d+\\.sv|single_\\d+\\.sv|config\\.ini)$/i)) {\r\n // alert(`Bad file name: ${path}`);\r\n // }\r\n files.set(path, array);\r\n worker.postMessage({action: \"fs\", func: \"update\", params: [path, array]});\r\n },\r\n remove_file(path) {\r\n path = path.toLowerCase();\r\n files.delete(path);\r\n worker.postMessage({action: \"fs\", func: \"delete\", params: [path]});\r\n },\r\n\r\n set_cursor(x, y) {\r\n worker.postMessage({action: \"cursor\", x, y});\r\n },\r\n open_keyboard() {\r\n worker.postMessage({action: \"keyboard\", open: true});\r\n },\r\n close_keyboard() {\r\n worker.postMessage({action: \"keyboard\", open: false});\r\n },\r\n};\r\n\r\nlet frameTime = 0, lastTime = 0;\r\nfunction getFPS() {\r\n const time = performance.now();\r\n if (!lastTime) {\r\n lastTime = time;\r\n }\r\n frameTime = 0.9 * frameTime + 0.1 * (time - lastTime);\r\n lastTime = time;\r\n return frameTime ? 1000.0 / frameTime : 0.0;\r\n}\r\n\r\nconst DApi_renderLegacy = {\r\n draw_begin() {\r\n renderBatch = {\r\n images: [],\r\n text: [],\r\n clip: null,\r\n belt: drawBelt,\r\n };\r\n drawBelt = null;\r\n },\r\n draw_blit(x, y, w, h, data) {\r\n renderBatch.images.push({x, y, w, h, data: data.slice()});\r\n },\r\n draw_clip_text(x0, y0, x1, y1) {\r\n renderBatch.clip = {x0, y0, x1, y1};\r\n },\r\n draw_text(x, y, text, color) {\r\n renderBatch.text.push({x, y, text, color});\r\n },\r\n draw_end() {\r\n //DApi.draw_text(10, 10, `FPS: ${getFPS().toFixed(1)} (Transfer)`, 0xFFCC00);\r\n const transfer = renderBatch.images.map(({data}) => data.buffer);\r\n if (renderBatch.belt) {\r\n transfer.push(renderBatch.belt.buffer);\r\n }\r\n worker.postMessage({action: \"render\", batch: renderBatch}, transfer);\r\n renderBatch = null;\r\n },\r\n draw_belt(items) {\r\n drawBelt = items.slice();\r\n },\r\n};\r\n\r\nconst DApi_renderOffscreen = {\r\n draw_begin() {\r\n context.save();\r\n context.font = 'bold 13px Times New Roman';\r\n },\r\n draw_blit(x, y, w, h, data) {\r\n imageData.data.set(data);\r\n context.putImageData(imageData, x, y);\r\n },\r\n draw_clip_text(x0, y0, x1, y1) {\r\n context.beginPath();\r\n context.rect(x0, y0, x1 - x0, y1 - y0);\r\n context.clip();\r\n },\r\n draw_text(x, y, text, color) {\r\n const r = ((color >> 16) & 0xFF);\r\n const g = ((color >> 8) & 0xFF);\r\n const b = (color & 0xFF);\r\n context.fillStyle = `rgb(${r}, ${g}, ${b})`;\r\n context.fillText(text, x, y + 22);\r\n },\r\n draw_end() {\r\n //DApi.draw_text(10, 10, `FPS: ${getFPS().toFixed(1)} (Offscreen)`, 0xFFCC00);\r\n context.restore();\r\n const bitmap = canvas.transferToImageBitmap();\r\n const transfer = [bitmap];\r\n if (drawBelt) {\r\n transfer.push(drawBelt.buffer);\r\n }\r\n worker.postMessage({action: \"render\", batch: {bitmap, belt: drawBelt}}, transfer);\r\n drawBelt = null;\r\n },\r\n draw_belt(items) {\r\n drawBelt = items.slice();\r\n },\r\n};\r\n\r\nlet audioBatch = null, audioTransfer = null;\r\nlet maxSoundId = 0, maxBatchId = 0;\r\n[\"create_sound\", \"duplicate_sound\"].forEach(func => {\r\n DApi[func] = function(...params) {\r\n if (audioBatch) {\r\n maxBatchId = params[0] + 1;\r\n audioBatch.push({func, params});\r\n if (func === \"create_sound\") {\r\n audioTransfer.push(params[1].buffer);\r\n }\r\n } else {\r\n maxSoundId = params[0] + 1;\r\n const transfer = [];\r\n if (func === \"create_sound\") {\r\n transfer.push(params[1].buffer);\r\n }\r\n worker.postMessage({action: \"audio\", func, params}, transfer);\r\n }\r\n };\r\n});\r\n[\"play_sound\", \"set_volume\", \"stop_sound\", \"delete_sound\"].forEach(func => {\r\n DApi[func] = function(...params) {\r\n if (audioBatch && params[0] >= maxSoundId) {\r\n audioBatch.push({func, params});\r\n } else {\r\n worker.postMessage({action: \"audio\", func, params});\r\n }\r\n }\r\n});\r\n\r\nworker.DApi = DApi;\r\n\r\nlet wasm = null;\r\n\r\nfunction call_api(func, ...params) {\r\n try {\r\n audioBatch = [];\r\n audioTransfer = [];\r\n wasm[\"_\" + func](...params);\r\n if (audioBatch.length) {\r\n maxSoundId = maxBatchId;\r\n worker.postMessage({action: \"audioBatch\", batch: audioBatch}, audioTransfer);\r\n audioBatch = null;\r\n audioTransfer = null;\r\n }\r\n } catch (e) {\r\n worker.postMessage({action: \"error\", error: e.message, stack: e.stack});\r\n }\r\n}\r\n\r\nfunction progress(text, loaded, total) {\r\n worker.postMessage({action: \"progress\", text, loaded, total});\r\n}\r\n\r\nconst readFile = (file, progress) => new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n if (progress) {\r\n progress({loaded: file.size});\r\n }\r\n resolve(reader.result);\r\n };\r\n reader.onerror = () => reject(reader.error);\r\n reader.onabort = () => reject();\r\n if (progress) {\r\n reader.addEventListener(\"progress\", progress);\r\n }\r\n reader.readAsArrayBuffer(file);\r\n});\r\n\r\nasync function initWasm(spawn, progress) {\r\n const binary = await axios.request({\r\n url: spawn ? SpawnBinary : DiabloBinary,\r\n responseType: 'arraybuffer',\r\n onDownloadProgress: progress,\r\n });\r\n const result = await (spawn ? SpawnModule : DiabloModule)({wasmBinary: binary.data}).ready;\r\n progress({loaded: 2000000});\r\n return result;\r\n}\r\n\r\nasync function init_game(mpq, spawn, offscreen) {\r\n if (offscreen) {\r\n canvas = new OffscreenCanvas(640, 480);\r\n context = canvas.getContext(\"2d\");\r\n imageData = context.createImageData(640, 480);\r\n Object.assign(DApi, DApi_renderOffscreen);\r\n } else {\r\n Object.assign(DApi, DApi_renderLegacy);\r\n }\r\n\r\n progress(\"Loading...\");\r\n let mpqLoaded = 0, mpqTotal = (mpq ? mpq.size : 0), wasmLoaded = 0, wasmTotal = (spawn ? SpawnSize : DiabloSize);\r\n const wasmWeight = 5;\r\n function updateProgress() {\r\n progress(\"Loading...\", mpqLoaded + wasmLoaded * wasmWeight, mpqTotal + wasmTotal * wasmWeight);\r\n }\r\n const loadWasm = initWasm(spawn, e => {\r\n wasmLoaded = Math.min(e.loaded, wasmTotal);\r\n updateProgress();\r\n });\r\n let loadMpq = mpq ? readFile(mpq, e => {\r\n mpqLoaded = e.loaded;\r\n updateProgress();\r\n }) : Promise.resolve(null);\r\n [wasm, mpq] = await Promise.all([loadWasm, loadMpq]);\r\n\r\n if (mpq) {\r\n files.set(spawn ? 'spawn.mpq' : 'diabdat.mpq', new Uint8Array(mpq));\r\n }\r\n\r\n progress(\"Initializing...\");\r\n\r\n const vers = process.env.VERSION.match(/(\\d+)\\.(\\d+)\\.(\\d+)/);\r\n\r\n wasm._DApi_Init(Math.floor(performance.now()), offscreen ? 1 : 0, parseInt(vers[1]), parseInt(vers[2]), parseInt(vers[3]));\r\n\r\n setInterval(() => {\r\n call_api(\"DApi_Render\", Math.floor(performance.now())); \r\n }, 50);\r\n}\r\n\r\nworker.addEventListener(\"message\", ({data}) => {\r\n switch (data.action) {\r\n case \"init\":\r\n files = data.files;\r\n init_game(data.mpq, data.spawn, data.offscreen).then(\r\n () => worker.postMessage({action: \"loaded\"}),\r\n e => worker.postMessage({action: \"failed\", error: e.message || e.name, stack: e.stack}));\r\n break;\r\n case \"event\":\r\n call_api(data.func, ...data.params);\r\n break;\r\n }\r\n});\r\n"],"sourceRoot":""} \ No newline at end of file diff --git a/index.html b/index.html index de67901..fa2c7ad 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -DIABLO
\ No newline at end of file +DIABLO
\ No newline at end of file diff --git a/precache-manifest.6ccf75bb25eea1401174c2d7c9fe47a5.js b/precache-manifest.db764cf38398538e68736bff6b54b259.js similarity index 69% rename from precache-manifest.6ccf75bb25eea1401174c2d7c9fe47a5.js rename to precache-manifest.db764cf38398538e68736bff6b54b259.js index abb5b8c..2840a21 100644 --- a/precache-manifest.6ccf75bb25eea1401174c2d7c9fe47a5.js +++ b/precache-manifest.db764cf38398538e68736bff6b54b259.js @@ -1,14 +1,14 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ { - "revision": "6606db883dd10e96dcd5c899ba26d59c", - "url": "/diabloweb/a452417be70a92d7cbdf.worker.js" + "revision": "5a2c0ce9f55b1aef4ebc326e5f6b948e", + "url": "/diabloweb/ec517037eb7f5fbaab67.worker.js" }, { - "revision": "18e039b4349d9898f2165f9913397ac5", + "revision": "834f79487a3c2b7e6587fb602d6fdbac", "url": "/diabloweb/index.html" }, { - "revision": "e882ad5e8e75d1494e98", + "revision": "5c1adaa2170da45eef64", "url": "/diabloweb/static/css/main.9fcbefb1.chunk.css" }, { @@ -20,8 +20,8 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/diabloweb/static/js/5.2a4effa1.chunk.js" }, { - "revision": "e882ad5e8e75d1494e98", - "url": "/diabloweb/static/js/main.025a19d1.chunk.js" + "revision": "5c1adaa2170da45eef64", + "url": "/diabloweb/static/js/main.e77bbf36.chunk.js" }, { "revision": "077fe45e700d7971de0b", @@ -36,12 +36,12 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/diabloweb/static/js/storage.cc738d1f.chunk.js" }, { - "revision": "ca302877e60a52f1dc043ee83aacb676", - "url": "/diabloweb/static/media/Diablo.ca302877.wasm" + "revision": "8cc190a987eaf3bc6a9d4babefa4733b", + "url": "/diabloweb/static/media/Diablo.8cc190a9.wasm" }, { - "revision": "1a7b93b3e3c5bd5fab9a1a7c6c4cd18e", - "url": "/diabloweb/static/media/DiabloSpawn.1a7b93b3.wasm" + "revision": "8210d404a5f990fb837e34a7ac0da968", + "url": "/diabloweb/static/media/DiabloSpawn.8210d404.wasm" }, { "revision": "ddc5d817712fdde5a23034ba0b719c78", diff --git a/service-worker.js b/service-worker.js index 7f7bbfc..3c0d371 100644 --- a/service-worker.js +++ b/service-worker.js @@ -14,7 +14,7 @@ importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js"); importScripts( - "/diabloweb/precache-manifest.6ccf75bb25eea1401174c2d7c9fe47a5.js" + "/diabloweb/precache-manifest.db764cf38398538e68736bff6b54b259.js" ); self.addEventListener('message', (event) => { diff --git a/static/js/main.025a19d1.chunk.js b/static/js/main.025a19d1.chunk.js deleted file mode 100644 index b886336..0000000 --- a/static/js/main.025a19d1.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{23:function(e,t,n){e.exports=function(){return new Worker(n.p+"a452417be70a92d7cbdf.worker.js")}},28:function(e,t,n){e.exports=n(58)},34:function(e,t,n){},35:function(e,t,n){},58:function(e,t,n){"use strict";n.r(t);var a=n(0),o=n.n(a),r=n(19),s=n.n(r),i=(n(34),Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)));function c(e,t){navigator.serviceWorker.register(e).then(function(e){e.onupdatefound=function(){var n=e.installing;null!=n&&(n.onstatechange=function(){"installed"===n.state&&(navigator.serviceWorker.controller?(console.log("New content is available and will be used when all tabs for this page are closed. See https://bit.ly/CRA-PWA."),t&&t.onUpdate&&t.onUpdate(e)):(console.log("Content is cached for offline use."),t&&t.onSuccess&&t.onSuccess(e)))})}}).catch(function(e){console.error("Error during service worker registration:",e)})}var u=n(5),l=n(20),d=n(21),h=n(25),f=n(22),p=n(4),v=n(26),m=n(27),b=(n(35),n(7)),g=n.n(b),y=n(8),w=n(1),k=n.n(w),x=n(6),M=n(2),E=n(23),C=n.n(E);var T=n(24),D=n.n(T),B=50274091;function L(e,t){return P.apply(this,arguments)}function P(){return(P=Object(M.a)(k.a.mark(function e(t,n){var a,o,r;return k.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!(a=n.files.get("spawn.mpq"))||a.byteLength===B){e.next=6;break}return n.files.delete("spawn.mpq"),e.next=5,n.delete("spawn.mpq");case 5:a=null;case 6:if(a){e.next=15;break}return e.next=9,D.a.request({url:"/diabloweb/spawn.mpq",responseType:"arraybuffer",onDownloadProgress:function(e){t.onProgress&&t.onProgress({text:"Downloading...",loaded:e.loaded,total:e.total||B})},headers:{"Cache-Control":"max-age=31536000"}});case 9:if((o=e.sent).data.byteLength===B){e.next=12;break}throw Error("Invalid spawn.mpq size. Try clearing cache and refreshing the page.");case 12:r=new Uint8Array(o.data),n.files.set("spawn.mpq",r),n.update("spawn.mpq",r.slice());case 15:return e.abrupt("return",n);case 16:case"end":return e.stop()}},e)}))).apply(this,arguments)}function _(e,t,n){var a=n.bitmap,o=n.images,r=n.text,s=n.clip,i=n.belt;if(a)t.transferFromImageBitmap(a);else{var c=!0,u=!1,l=void 0;try{for(var d,h=o[Symbol.iterator]();!(c=(d=h.next()).done);c=!0){var f=d.value,p=f.x,v=f.y,m=f.w,b=f.h,g=f.data,y=t.createImageData(m,b);y.data.set(g),t.putImageData(y,p,v)}}catch(N){u=!0,l=N}finally{try{c||null==h.return||h.return()}finally{if(u)throw l}}if(r.length){if(t.save(),t.font="bold 13px Times New Roman",s){var w=s.x0,k=s.y0,x=s.x1,M=s.y1;t.beginPath(),t.rect(w,k,x-w,M-k),t.clip()}var E=!0,C=!1,T=void 0;try{for(var D,B=r[Symbol.iterator]();!(E=(D=B.next()).done);E=!0){var L=D.value,P=L.x,_=L.y,A=L.text,j=L.color,O=j>>16&255,S=j>>8&255,K=255&j;t.fillStyle="rgb(".concat(O,", ").concat(S,", ").concat(K,")"),t.fillText(A,P,_+22)}}catch(N){C=!0,T=N}finally{try{E||null==B.return||B.return()}finally{if(C)throw T}}t.restore()}}e.updateBelt(i)}function A(){return(A=Object(M.a)(k.a.mark(function e(t,n,a){var o,r,s,i;return k.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.fs;case 2:if(o=e.sent,r=!0,!a){e.next=8;break}a.name.match(/^spawn\.mpq$/i)||(r=!1,o.files.delete("spawn.mpq")),e.next=10;break;case 8:return e.next=10,L(t,o);case 10:return s=null,i=!1,s=t.canvas.getContext("2d",{alpha:!1}),e.next=14,new Promise(function(e,c){try{var l=new C.a;l.addEventListener("message",function(a){var r=a.data;switch(r.action){case"loaded":e(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),a=1;a=32&&1===e.key.length&&!n.showKeyboard&&n.game("DApi_Char",e.key.charCodeAt(0)),n.clearKeySel(),n.showKeyboard||(8===e.keyCode||e.keyCode>=112&&e.keyCode<=119)&&e.preventDefault())},n.onMenu=function(e){e.preventDefault()},n.onKeyUp=function(e){n.canvas&&(n.game("DApi_Key",1,n.eventMods(e),e.keyCode),n.clearKeySel())},n.onKeyboard=function(){if(n.showKeyboard){var e,t=n.keyboard.value,a=(t.match(/[\x20-\x7E]/g)||[]).join("").substring(0,15);t!==a&&(n.keyboard.value=a),n.clearKeySel();var o=Object(u.a)(Array(15)).map(function(e,t){return t0&&n.start(t[0])},n.touchButton=null,n.touchCanvas=null,n.onFullscreenChange=function(){n.setState({touch:document.fullscreenElement===n.element})},n.onTouchStart=function(e){if(n.canvas&&(e.preventDefault(),n.updateTouchButton(e.touches,!1))){var t=n.mousePos(n.touchCanvas),a=t.x,o=t.y;n.game("DApi_Mouse",0,0,n.eventMods(e),a,o),n.touchMods[O]||n.game("DApi_Mouse",1,n.touchMods[S]?2:1,n.eventMods(e),a,o)}},n.onTouchMove=function(e){if(n.canvas&&(e.preventDefault(),n.updateTouchButton(e.touches,!1))){var t=n.mousePos(n.touchCanvas),a=t.x,o=t.y;n.game("DApi_Mouse",0,0,n.eventMods(e),a,o)}},n.onTouchEnd=function(e){if(n.canvas){e.preventDefault();var t=n.touchCanvas;if(n.updateTouchButton(e.touches,!0),t&&!n.touchCanvas){var a=n.mousePos(t),o=a.x,r=a.y;n.game("DApi_Mouse",2,1,n.eventMods(e),o,r),n.game("DApi_Mouse",2,2,n.eventMods(e),o,r),!n.touchMods[S]||n.touchButton&&n.touchButton.index===S||n.setTouchButton(S,!1)}document.fullscreenElement||n.element.requestFullscreen()}},n.setCanvas=function(e){return n.canvas=e},n.setElement=function(e){return n.element=e},n.setKeyboard=function(e){return n.keyboard=e},n.setTouch0=n.setTouch_.bind(Object(p.a)(n),0),n.setTouch1=n.setTouch_.bind(Object(p.a)(n),1),n.setTouch2=n.setTouch_.bind(Object(p.a)(n),2),n.setTouch3=n.setTouchBelt_.bind(Object(p.a)(n),3),n.setTouch4=n.setTouchBelt_.bind(Object(p.a)(n),4),n.setTouch5=n.setTouchBelt_.bind(Object(p.a)(n),5),n}return Object(v.a)(t,e),Object(d.a)(t,[{key:"componentDidMount",value:function(){var e=this;document.addEventListener("drop",this.onDrop,!0),document.addEventListener("dragover",this.onDragOver,!0),document.addEventListener("dragenter",this.onDragEnter,!0),document.addEventListener("dragleave",this.onDragLeave,!0),this.fs.then(function(t){var n=t.files.get("spawn.mpq");n&&n.byteLength===B&&e.setState({has_spawn:!0})})}},{key:"setDropping",value:function(e){this.setState(function(t){var n=t.dropping;return{dropping:Math.max(n+e,0)}})}},{key:"onError",value:function(e){this.setState({error:e})}},{key:"openKeyboard",value:function(e){e?(this.showKeyboard=!0,this.element.classList.add("keyboard"),this.keyboard.focus()):(this.showKeyboard=!1,this.element.classList.remove("keyboard"),this.keyboard.blur())}},{key:"setCursorPos",value:function(e,t){var n=this,a=this.canvas.getBoundingClientRect();this.cursorPos={x:a.left+(a.right-a.left)*e/640,y:a.top+(a.bottom-a.top)*t/480},setTimeout(function(){n.game("DApi_Mouse",0,0,0,e,t)})}},{key:"onProgress",value:function(e){this.setState({progress:e})}},{key:"drawBelt",value:function(e,t){this.touchButtons[e]&&(this.touchBelt[e]=t,t>=0?(this.touchButtons[e].style.display="block",this.touchCtx[e].drawImage(this.canvas,205+29*t,357,28,28,0,0,28,28)):this.touchButtons[e].style.display="none")}},{key:"updateBelt",value:function(e){if(e){for(var t=new Set,n=3,a=0;a=0&&!t.has(e[a])&&(this.drawBelt(n++,a),t.add(e[a]));for(;n<6;++n)this.drawBelt(n,-1)}else this.drawBelt(3,-1),this.drawBelt(4,-1),this.drawBelt(5,-1)}},{key:"start",value:function(e){var t=this;e&&e.name.match(/\.sv$/i)?this.fs.then(function(t){return t.upload(e)}).then(console.log("Updated ".concat(e.name))):(document.removeEventListener("drop",this.onDrop,!0),document.removeEventListener("dragover",this.onDragOver,!0),document.removeEventListener("dragenter",this.onDragEnter,!0),document.removeEventListener("dragleave",this.onDragLeave,!0),this.setState({dropping:0}),this.setState({loading:!0}),j(this,e).then(function(e){t.game=e,document.addEventListener("mousemove",t.onMouseMove,!0),document.addEventListener("mousedown",t.onMouseDown,!0),document.addEventListener("mouseup",t.onMouseUp,!0),document.addEventListener("keydown",t.onKeyDown,!0),document.addEventListener("keyup",t.onKeyUp,!0),document.addEventListener("contextmenu",t.onMenu,!0),document.addEventListener("touchstart",t.onTouchStart,{passive:!1,capture:!0}),document.addEventListener("touchmove",t.onTouchMove,{passive:!1,capture:!0}),document.addEventListener("touchend",t.onTouchEnd,{passive:!1,capture:!0}),document.addEventListener("pointerlockchange",t.onPointerLockChange),document.addEventListener("fullscreenchange",t.onFullscreenChange),window.addEventListener("resize",t.onResize),t.setState({started:!0})},function(e){return t.onError(e.message)}))}},{key:"pointerLocked",value:function(){return document.pointerLockElement===this.canvas||document.mozPointerLockElement===this.canvas}},{key:"mousePos",value:function(e){var t=this.canvas.getBoundingClientRect();return this.pointerLocked()?(this.cursorPos.x=Math.max(t.left,Math.min(t.right,this.cursorPos.x+e.movementX)),this.cursorPos.y=Math.max(t.top,Math.min(t.bottom,this.cursorPos.y+e.movementY))):this.cursorPos={x:e.clientX,y:e.clientY},{x:Math.max(0,Math.min(Math.round((this.cursorPos.x-t.left)/(t.right-t.left)*640),639)),y:Math.max(0,Math.min(Math.round((this.cursorPos.y-t.top)/(t.bottom-t.top)*480),479))}}},{key:"mouseButton",value:function(e){switch(e.button){case 0:return 1;case 1:return 4;case 2:return 2;case 3:return 5;case 4:return 6;default:return 1}}},{key:"eventMods",value:function(e){return(e.shiftKey||this.touchMods[2]?1:0)+(e.ctrlKey?2:0)+(e.altKey?4:0)+(e.touches?8:0)}},{key:"clearKeySel",value:function(){if(this.showKeyboard){var e=this.keyboard.value.length;this.keyboard.setSelectionRange(e,e)}}},{key:"setTouchMod",value:function(e,t,n){if(e<3)this.touchMods[e]=t,this.touchButtons[e]&&this.touchButtons[e].classList.toggle("active",t);else if(n&&this.touchBelt[e]>=0){var a=performance.now();(!this.beltTime||a-this.beltTime>750)&&(this.game("DApi_Char",49+this.touchBelt[e]),this.beltTime=a)}}},{key:"updateTouchButton",value:function(e,t){var n=this,a=null,o=this.touchButton,r=!0,s=!1,i=void 0;try{for(var c,l=function(){var t=c.value,r=t.target,s=t.identifier,i=t.clientX,l=t.clientY;if(o&&o.id===s&&n.touchButtons[o.index]===r)return e.length>1&&(o.stick=!1),o.clientX=i,o.clientY=l,n.touchCanvas=Object(u.a)(e).find(function(e){return e.identifier!==s}),n.touchCanvas&&(n.touchCanvas={clientX:n.touchCanvas.clientX,clientY:n.touchCanvas.clientY}),delete n.panPos,{v:null!=n.touchCanvas};var d=n.touchButtons.indexOf(r);d>=0&&!a&&(a={id:s,index:d,stick:!0,original:n.touchMods[d],clientX:i,clientY:l})},d=e[Symbol.iterator]();!(r=(c=d.next()).done);r=!0){var h=l();if("object"===typeof h)return h.v}}catch(x){s=!0,i=x}finally{try{r||null==d.return||d.return()}finally{if(s)throw i}}if(o&&!a&&t&&o.stick){var f=this.touchButtons[o.index].getBoundingClientRect(),p=o.clientX,v=o.clientY;p>=f.left&&p=f.top&&vk)g=Math.abs(y)>Math.abs(w)?y>0?37:39:w>0?38:40,this.game("DApi_Key",0,0,g),this.panPos={x:m,y:b}}else this.game("DApi_Mouse",0,0,24,320,180),this.game("DApi_Mouse",2,1,24,320,180),this.panPos={x:m,y:b};return this.touchCanvas=null,!1}delete this.panPos}return this.touchCanvas=Object(u.a)(e).find(function(e){return!a||e.identifier!==a.id}),this.touchCanvas&&(this.touchCanvas={clientX:this.touchCanvas.clientX,clientY:this.touchCanvas.clientY}),null!=this.touchCanvas}},{key:"setTouch_",value:function(e,t){this.touchButtons[e]=t}},{key:"setTouchBelt_",value:function(e,t){if(this.touchButtons[e]=t,t){var n=document.createElement("canvas");n.width=28,n.height=28,t.appendChild(n),this.touchCtx[e]=n.getContext("2d")}else this.touchCtx[e]=null}},{key:"render",value:function(){var e=this,t=this.state,n=t.started,a=t.loading,r=t.error,s=t.progress,i=t.dropping,c=t.touch,u=t.has_spawn;return o.a.createElement("div",{className:g()("App",{touch:c,started:n,dropping:i,keyboard:this.showKeyboard}),ref:this.setElement},o.a.createElement("div",{className:"touch-ui touch-mods"},o.a.createElement("div",{className:g()("touch-button","touch-button-0",{active:this.touchMods[0]}),ref:this.setTouch0}),o.a.createElement("div",{className:g()("touch-button","touch-button-1",{active:this.touchMods[1]}),ref:this.setTouch1}),o.a.createElement("div",{className:g()("touch-button","touch-button-2",{active:this.touchMods[2]}),ref:this.setTouch2})),o.a.createElement("div",{className:"touch-ui touch-belt"},o.a.createElement("div",{className:g()("touch-button","touch-button-0"),ref:this.setTouch3}),o.a.createElement("div",{className:g()("touch-button","touch-button-1"),ref:this.setTouch4}),o.a.createElement("div",{className:g()("touch-button","touch-button-2"),ref:this.setTouch5})),o.a.createElement("div",{className:"Body"},!r&&o.a.createElement("canvas",{ref:this.setCanvas,width:640,height:480}),o.a.createElement("input",{type:"text",className:"keyboard",onChange:this.onKeyboard,ref:this.setKeyboard,spellCheck:!1})),o.a.createElement("div",{className:"BodyV"},!!r&&o.a.createElement(K,{className:"error",href:"https://github.com/d07RiV/diabloweb/issues"},o.a.createElement("p",{className:"header"},"The following error has occurred:"),o.a.createElement("p",{className:"body"},r),o.a.createElement("p",{className:"footer"},"Click to go to GitHub issues")),!!a&&!n&&!r&&o.a.createElement("div",{className:"loading"},s&&s.text||"Loading...",null!=s&&!!s.total&&o.a.createElement("span",{className:"progressBar"},o.a.createElement("span",null,o.a.createElement("span",{style:{width:"".concat(Math.round(100*s.loaded/s.total),"%")}})))),!n&&!a&&!r&&o.a.createElement("div",{className:"start"},o.a.createElement("p",null,"This is a web port of the original Diablo game, based on source code reconstructed by GalaXyHaXz and devilution team: ",o.a.createElement(K,{href:"https://github.com/diasurgical/devilution"},"https://github.com/diasurgical/devilution")),o.a.createElement("p",null,"If you own the original game, you can drop the original DIABDAT.MPQ onto this page or click the button below to start playing. The game can be purchased from ",o.a.createElement(K,{href:"https://www.gog.com/game/diablo"},"GoG"),"."),!u&&o.a.createElement("p",null,"Or you can play the shareware version for free (50MB download)."),o.a.createElement("form",null,o.a.createElement("label",{htmlFor:"loadFile",className:"startButton"},"Select MPQ"),o.a.createElement("input",{accept:".mpq",type:"file",id:"loadFile",style:{display:"none"},onChange:this.parseFile})),o.a.createElement("span",{className:"startButton",onClick:function(){return e.start()}},"Play Shareware"))))}}]),t}(o.a.Component);s.a.render(o.a.createElement(N,null),document.getElementById("root")),function(e){if("serviceWorker"in navigator){if(new URL("/diabloweb",window.location.href).origin!==window.location.origin)return;window.addEventListener("load",function(){var t="".concat("/diabloweb","/service-worker.js");i?(function(e,t){fetch(e).then(function(n){var a=n.headers.get("content-type");404===n.status||null!=a&&-1===a.indexOf("javascript")?navigator.serviceWorker.ready.then(function(e){e.unregister().then(function(){window.location.reload()})}):c(e,t)}).catch(function(){console.log("No internet connection found. App is running in offline mode.")})}(t,e),navigator.serviceWorker.ready.then(function(){console.log("This web app is being served cache-first by a service worker. To learn more, visit https://bit.ly/CRA-PWA")})):c(t,e)})}}()},8:function(e,t,n){"use strict";n.d(t,"a",function(){return b});var a=n(6),o=n(1),r=n.n(o),s=n(2),i=n(9),c=n.n(i),u=function(){return new Promise(function(e,t){var n=!1,a=document.createElement("iframe");window.addEventListener("message",function(t){var o=t.data;"storage"!==o.method||n||(n=!0,e(o.files),a.contentWindow.postMessage({method:"clear"},"*"))}),a.addEventListener("load",function(){a.contentWindow.postMessage({method:"transfer"},"*")}),a.addEventListener("error",function(){n||(n=!0,e(null))}),a.src="https://diablo.rivsoft.net/storage.html",a.style.display="none",document.body.appendChild(a),setTimeout(function(){n||(n=!0,e(null))},1e4)})};function l(e,t){return d.apply(this,arguments)}function d(){return(d=Object(s.a)(r.a.mark(function e(t,n){var a,o,s,i;return r.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.get(n.toLowerCase());case 2:(a=e.sent)?(o=new Blob([a],{type:"binary/octet-stream"}),s=URL.createObjectURL(o),(i=document.createElement("a")).setAttribute("href",s),i.setAttribute("download",n),document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(s)):console.error("File ".concat(n," does not exist"));case 4:case"end":return e.stop()}},e)}))).apply(this,arguments)}function h(e){return f.apply(this,arguments)}function f(){return(f=Object(s.a)(r.a.mark(function e(t){var n,a,o,s,i,c;return r.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=!0,a=!1,o=void 0,e.prev=3,e.next=6,t.keys();case 6:e.t0=Symbol.iterator,s=e.sent[e.t0]();case 8:if(n=(i=s.next()).done){e.next=14;break}(c=i.value).match(/\.sv$/i)&&l(t,c);case 11:n=!0,e.next=8;break;case 14:e.next=20;break;case 16:e.prev=16,e.t1=e.catch(3),a=!0,o=e.t1;case 20:e.prev=20,e.prev=21,n||null==s.return||s.return();case 23:if(e.prev=23,!a){e.next=26;break}throw o;case 26:return e.finish(23);case 27:return e.finish(20);case 28:case"end":return e.stop()}},e,null,[[3,16,20,28],[21,,23,27]])}))).apply(this,arguments)}var p=function(e){return new Promise(function(t,n){var a=new FileReader;a.onload=function(){return t(a.result)},a.onerror=function(){return n(a.error)},a.onabort=function(){return n()},a.readAsArrayBuffer(e)})};function v(e,t,n){return m.apply(this,arguments)}function m(){return(m=Object(s.a)(r.a.mark(function e(t,n,a){var o;return r.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.t0=Uint8Array,e.next=3,p(a);case 3:return e.t1=e.sent,o=new e.t0(e.t1),n.set(a.name.toLowerCase(),o),e.abrupt("return",t.set(a.name.toLowerCase(),o));case 7:case"end":return e.stop()}},e)}))).apply(this,arguments)}function b(e){return g.apply(this,arguments)}function g(){return(g=Object(s.a)(r.a.mark(function e(t){var n,o,s,i,d,f,p,m,b,g,y,w,k,x,M,E,C,T;return r.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,n=new c.a("diablo_fs"),o=new Map,s=0,e.t0=Object,e.next=7,n.json();case 7:e.t1=e.sent,i=e.t0.entries.call(e.t0,e.t1);case 9:if(!(s {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import axios from 'axios';\r\n\r\nconst SpawnSize = 50274091;\r\n\r\nexport { SpawnSize };\r\n\r\nexport default async function load_spawn(api, fs) {\r\n let file = fs.files.get('spawn.mpq');\r\n if (file && file.byteLength !== SpawnSize) {\r\n fs.files.delete('spawn.mpq');\r\n await fs.delete('spawn.mpq');\r\n file = null;\r\n }\r\n if (!file) {\r\n const spawn = await axios.request({\r\n url: process.env.PUBLIC_URL + '/spawn.mpq',\r\n responseType: 'arraybuffer',\r\n onDownloadProgress: e => {\r\n if (api.onProgress) {\r\n api.onProgress({text: 'Downloading...', loaded: e.loaded, total: e.total || SpawnSize});\r\n }\r\n },\r\n headers: {\r\n 'Cache-Control': 'max-age=31536000'\r\n }\r\n });\r\n if (spawn.data.byteLength !== SpawnSize) {\r\n throw Error(\"Invalid spawn.mpq size. Try clearing cache and refreshing the page.\");\r\n }\r\n const data = new Uint8Array(spawn.data);\r\n fs.files.set('spawn.mpq', data);\r\n fs.update('spawn.mpq', data.slice());\r\n }\r\n return fs;\r\n}\r\n","import Worker from './game.worker.js';\r\nimport init_sound from './sound';\r\nimport load_spawn from './load_spawn';\r\n\r\nfunction onRender(api, ctx, {bitmap, images, text, clip, belt}) {\r\n if (bitmap) {\r\n ctx.transferFromImageBitmap(bitmap);\r\n } else {\r\n for (let {x, y, w, h, data} of images) {\r\n const image = ctx.createImageData(w, h);\r\n image.data.set(data);\r\n ctx.putImageData(image, x, y);\r\n }\r\n if (text.length) {\r\n ctx.save();\r\n ctx.font = 'bold 13px Times New Roman';\r\n if (clip) {\r\n const {x0, y0, x1, y1} = clip;\r\n ctx.beginPath();\r\n ctx.rect(x0, y0, x1 - x0, y1 - y0);\r\n ctx.clip();\r\n }\r\n for (let {x, y, text: str, color} of text) {\r\n const r = ((color >> 16) & 0xFF);\r\n const g = ((color >> 8) & 0xFF);\r\n const b = (color & 0xFF);\r\n ctx.fillStyle = `rgb(${r}, ${g}, ${b})`;\r\n ctx.fillText(str, x, y + 22);\r\n }\r\n ctx.restore();\r\n }\r\n }\r\n\r\n api.updateBelt(belt);\r\n}\r\n\r\nfunction testOffscreen() {\r\n return false;\r\n /*try {\r\n const canvas = document.createElement(\"canvas\");\r\n const offscreen = canvas.transferControlToOffscreen();\r\n const context = offscreen.getContext(\"2d\");\r\n return context != null;\r\n } catch (e) {\r\n return false;\r\n }*/\r\n}\r\n\r\nasync function do_load_game(api, audio, mpq) {\r\n const fs = await api.fs;\r\n let spawn = true;\r\n if (mpq) {\r\n if (!mpq.name.match(/^spawn\\.mpq$/i)) {\r\n spawn = false;\r\n fs.files.delete('spawn.mpq');\r\n }\r\n } else {\r\n await load_spawn(api, fs);\r\n }\r\n\r\n let context = null, offscreen = false;\r\n if (testOffscreen()) {\r\n context = api.canvas.getContext(\"bitmaprenderer\");\r\n offscreen = true;\r\n } else {\r\n context = api.canvas.getContext(\"2d\", {alpha: false});\r\n }\r\n return await new Promise((resolve, reject) => {\r\n try {\r\n const worker = new Worker();\r\n worker.addEventListener(\"message\", ({data}) => {\r\n switch (data.action) {\r\n case \"loaded\":\r\n resolve((func, ...params) => worker.postMessage({action: \"event\", func, params}));\r\n break;\r\n case \"render\":\r\n onRender(api, context, data.batch);\r\n break;\r\n case \"audio\":\r\n audio[data.func](...data.params);\r\n break;\r\n case \"audioBatch\":\r\n for (let {func, params} of data.batch) {\r\n audio[func](...params);\r\n }\r\n break;\r\n case \"fs\":\r\n fs[data.func](...data.params);\r\n break;\r\n case \"cursor\":\r\n api.setCursorPos(data.x, data.y);\r\n break;\r\n case \"keyboard\":\r\n api.openKeyboard(data.open);\r\n break;\r\n case \"error\":\r\n api.onError(data.error);\r\n break;\r\n case \"failed\":\r\n reject(Error(data.error));\r\n break;\r\n case \"progress\":\r\n api.onProgress({text: data.text, loaded: data.loaded, total: data.total});\r\n break;\r\n default:\r\n }\r\n });\r\n const transfer= [];\r\n for (let [, file] of fs.files) {\r\n transfer.push(file.buffer);\r\n }\r\n worker.postMessage({action: \"init\", files: fs.files, mpq, spawn, offscreen}, transfer);\r\n delete fs.files;\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n}\r\n\r\nexport default function load_game(api, mpq) {\r\n const audio = init_sound();\r\n return do_load_game(api, audio, mpq);\r\n}\r\n","function no_sound() {\r\n return {\r\n create_sound: () => 0,\r\n duplicate_sound: () => 0,\r\n play_sound: () => undefined,\r\n set_volume: () => undefined,\r\n stop_sound: () => undefined,\r\n delete_sound: () => undefined,\r\n };\r\n}\r\n\r\nexport default function init_sound() {\r\n const AudioContext = window.AudioContext || window.webkitAudioContext;\r\n if (!AudioContext) {\r\n return no_sound();\r\n }\r\n\r\n const context = new AudioContext();\r\n const sounds = new Map();\r\n\r\n return {\r\n create_sound(id, data, length, channels, rate) {\r\n const buffer = context.createBuffer(channels, length, rate);\r\n for (let i = 0; i < channels; ++i) {\r\n buffer.copyToChannel(data.subarray(i * length, i * length + length), i);\r\n }\r\n sounds.set(id, {\r\n buffer,\r\n gain: context.createGain(),\r\n panner: new StereoPannerNode(context, {pan: 0}),\r\n });\r\n },\r\n duplicate_sound(id, srcId) {\r\n const src = sounds.get(srcId);\r\n if (!src) {\r\n return;\r\n }\r\n sounds.set(id, {\r\n buffer: src.buffer,\r\n gain: context.createGain(),\r\n panner: new StereoPannerNode(context, {pan: 0}),\r\n });\r\n },\r\n play_sound(id, volume, pan, loop) {\r\n const src = sounds.get(id);\r\n if (src) {\r\n if (src.source) {\r\n src.source.stop();\r\n }\r\n src.gain.gain.value = Math.pow(2.0, volume / 1000.0);\r\n const relVolume = Math.pow(2.0, pan / 1000.0);\r\n src.panner.pan.value = 1.0 - 2.0 / (1.0 + relVolume);\r\n src.source = context.createBufferSource();\r\n src.source.buffer = src.buffer;\r\n src.source.loop = !!loop;\r\n src.source.connect(src.gain).connect(src.panner).connect(context.destination);\r\n src.source.start();\r\n }\r\n },\r\n set_volume(id, volume) {\r\n const src = sounds.get(id);\r\n if (src) {\r\n src.gain.gain.value = Math.pow(2.0, volume / 1000.0);\r\n }\r\n },\r\n stop_sound(id) {\r\n const src = sounds.get(id);\r\n if (src && src.source) {\r\n src.source.stop();\r\n delete src.source;\r\n }\r\n },\r\n delete_sound(id) {\r\n const src = sounds.get(id);\r\n if (src && src.source) {\r\n src.source.stop();\r\n }\r\n sounds.delete(id);\r\n },\r\n };\r\n}\r\n","import React from 'react';\r\nimport './App.scss';\r\nimport classNames from 'classnames';\r\n\r\nimport create_fs from './fs';\r\nimport load_game from './api/loader';\r\nimport { SpawnSize } from './api/load_spawn';\r\n\r\nfunction isDropFile(e) {\r\n if (e.dataTransfer.items) {\r\n for (let i = 0; i < e.dataTransfer.items.length; ++i) {\r\n if (e.dataTransfer.items[i].kind === \"file\") {\r\n return true;\r\n }\r\n }\r\n } if (e.dataTransfer.files.length) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction getDropFile(e) {\r\n if (e.dataTransfer.items) {\r\n for (let i = 0; i < e.dataTransfer.items.length; ++i) {\r\n if (e.dataTransfer.items[i].kind === \"file\") {\r\n return e.dataTransfer.items[i].getAsFile();\r\n }\r\n }\r\n } if (e.dataTransfer.files.length) {\r\n return e.dataTransfer.files[0];\r\n }\r\n}\r\n\r\nconst TOUCH_MOVE = 0;\r\nconst TOUCH_RMB = 1;\r\nconst TOUCH_SHIFT = 2;\r\n\r\nconst Link = ({children, ...props}) => {children};\r\n\r\nclass App extends React.Component {\r\n files = new Map();\r\n state = {started: false, loading: false, touch: false, dropping: 0, has_spawn: false};\r\n cursorPos = {x: 0, y: 0};\r\n\r\n touchButtons = [null, null, null, null, null, null];\r\n touchCtx = [null, null, null, null, null, null];\r\n touchMods = [false, false, false, false, false, false];\r\n touchBelt = [-1, -1, -1, -1, -1, -1];\r\n\r\n fs = create_fs(true);\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.setTouch0 = this.setTouch_.bind(this, 0);\r\n this.setTouch1 = this.setTouch_.bind(this, 1);\r\n this.setTouch2 = this.setTouch_.bind(this, 2);\r\n this.setTouch3 = this.setTouchBelt_.bind(this, 3);\r\n this.setTouch4 = this.setTouchBelt_.bind(this, 4);\r\n this.setTouch5 = this.setTouchBelt_.bind(this, 5);\r\n }\r\n\r\n componentDidMount() {\r\n document.addEventListener(\"drop\", this.onDrop, true);\r\n document.addEventListener(\"dragover\", this.onDragOver, true);\r\n document.addEventListener(\"dragenter\", this.onDragEnter, true);\r\n document.addEventListener(\"dragleave\", this.onDragLeave, true);\r\n\r\n this.fs.then(fs => {\r\n const spawn = fs.files.get('spawn.mpq');\r\n if (spawn && spawn.byteLength === SpawnSize) {\r\n this.setState({has_spawn: true});\r\n }\r\n });\r\n }\r\n\r\n onDrop = e => {\r\n const file = getDropFile(e);\r\n if (file) {\r\n e.preventDefault();\r\n this.start(file);\r\n }\r\n this.setState({dropping: 0});\r\n }\r\n onDragEnter = e => {\r\n e.preventDefault();\r\n this.setDropping(1);\r\n }\r\n onDragOver = e => {\r\n if (isDropFile(e)) {\r\n e.preventDefault();\r\n }\r\n }\r\n onDragLeave = e => {\r\n this.setDropping(-1);\r\n }\r\n setDropping(inc) {\r\n this.setState(({dropping}) => ({dropping: Math.max(dropping + inc, 0)}));\r\n }\r\n\r\n onError(text) {\r\n this.setState({error: text});\r\n }\r\n\r\n openKeyboard(open) {\r\n if (open) {\r\n this.showKeyboard = true;\r\n this.element.classList.add(\"keyboard\");\r\n this.keyboard.focus();\r\n } else {\r\n this.showKeyboard = false;\r\n this.element.classList.remove(\"keyboard\");\r\n this.keyboard.blur();\r\n }\r\n }\r\n\r\n setCursorPos(x, y) {\r\n const rect = this.canvas.getBoundingClientRect();\r\n this.cursorPos = {\r\n x: rect.left + (rect.right - rect.left) * x / 640,\r\n y: rect.top + (rect.bottom - rect.top) * y / 480,\r\n };\r\n setTimeout(() => {\r\n this.game(\"DApi_Mouse\", 0, 0, 0, x, y);\r\n });\r\n }\r\n\r\n onProgress(progress) {\r\n this.setState({progress});\r\n }\r\n\r\n drawBelt(idx, slot) {\r\n if (!this.touchButtons[idx]) {\r\n return;\r\n }\r\n this.touchBelt[idx] = slot;\r\n if (slot >= 0) {\r\n this.touchButtons[idx].style.display = \"block\";\r\n this.touchCtx[idx].drawImage(this.canvas, 205 + 29 * slot, 357, 28, 28, 0, 0, 28, 28);\r\n } else {\r\n this.touchButtons[idx].style.display = \"none\";\r\n }\r\n }\r\n\r\n updateBelt(belt) {\r\n if (belt) {\r\n const used = new Set();\r\n let pos = 3;\r\n for (let i = 0; i < belt.length && pos < 6; ++i) {\r\n if (belt[i] >= 0 && !used.has(belt[i])) {\r\n this.drawBelt(pos++, i);\r\n used.add(belt[i]);\r\n }\r\n }\r\n for (; pos < 6; ++pos) {\r\n this.drawBelt(pos, -1);\r\n }\r\n } else {\r\n this.drawBelt(3, -1);\r\n this.drawBelt(4, -1);\r\n this.drawBelt(5, -1);\r\n }\r\n }\r\n\r\n start(file) {\r\n if (file && file.name.match(/\\.sv$/i)) {\r\n this.fs.then(fs => fs.upload(file)).then(console.log(`Updated ${file.name}`));\r\n return;\r\n }\r\n\r\n document.removeEventListener(\"drop\", this.onDrop, true);\r\n document.removeEventListener(\"dragover\", this.onDragOver, true);\r\n document.removeEventListener(\"dragenter\", this.onDragEnter, true);\r\n document.removeEventListener(\"dragleave\", this.onDragLeave, true);\r\n this.setState({dropping: 0});\r\n\r\n this.setState({loading: true});\r\n\r\n load_game(this, file).then(game => {\r\n this.game = game;\r\n\r\n document.addEventListener('mousemove', this.onMouseMove, true);\r\n document.addEventListener('mousedown', this.onMouseDown, true);\r\n document.addEventListener('mouseup', this.onMouseUp, true);\r\n document.addEventListener('keydown', this.onKeyDown, true);\r\n document.addEventListener('keyup', this.onKeyUp, true);\r\n document.addEventListener('contextmenu', this.onMenu, true);\r\n\r\n document.addEventListener('touchstart', this.onTouchStart, {passive: false, capture: true});\r\n document.addEventListener('touchmove', this.onTouchMove, {passive: false, capture: true});\r\n document.addEventListener('touchend', this.onTouchEnd, {passive: false, capture: true});\r\n\r\n document.addEventListener('pointerlockchange', this.onPointerLockChange);\r\n document.addEventListener('fullscreenchange', this.onFullscreenChange);\r\n window.addEventListener('resize', this.onResize);\r\n\r\n this.setState({started: true});\r\n }, e => this.onError(e.message));\r\n }\r\n\r\n pointerLocked() {\r\n return document.pointerLockElement === this.canvas || document.mozPointerLockElement === this.canvas;\r\n }\r\n\r\n mousePos(e) {\r\n const rect = this.canvas.getBoundingClientRect();\r\n if (this.pointerLocked()) {\r\n this.cursorPos.x = Math.max(rect.left, Math.min(rect.right, this.cursorPos.x + e.movementX));\r\n this.cursorPos.y = Math.max(rect.top, Math.min(rect.bottom, this.cursorPos.y + e.movementY));\r\n } else {\r\n this.cursorPos = {x: e.clientX, y: e.clientY};\r\n }\r\n return {\r\n x: Math.max(0, Math.min(Math.round((this.cursorPos.x - rect.left) / (rect.right - rect.left) * 640), 639)),\r\n y: Math.max(0, Math.min(Math.round((this.cursorPos.y - rect.top) / (rect.bottom - rect.top) * 480), 479)),\r\n };\r\n }\r\n\r\n mouseButton(e) {\r\n switch (e.button) {\r\n case 0: return 1;\r\n case 1: return 4;\r\n case 2: return 2;\r\n case 3: return 5;\r\n case 4: return 6;\r\n default: return 1;\r\n }\r\n }\r\n eventMods(e) {\r\n return ((e.shiftKey || this.touchMods[TOUCH_SHIFT]) ? 1 : 0) + (e.ctrlKey ? 2 : 0) + (e.altKey ? 4 : 0) + (e.touches ? 8 : 0);\r\n }\r\n\r\n onResize = () => {\r\n document.exitPointerLock();\r\n }\r\n\r\n onPointerLockChange = () => {\r\n if (window.screen && window.innerHeight === window.screen.height && !this.pointerLocked()) {\r\n // assume that the user pressed escape\r\n this.game(\"DApi_Key\", 0, 0, 27);\r\n this.game(\"DApi_Key\", 1, 0, 27);\r\n }\r\n }\r\n\r\n onMouseMove = e => {\r\n if (!this.canvas) return;\r\n const {x, y} = this.mousePos(e);\r\n this.game(\"DApi_Mouse\", 0, 0, this.eventMods(e), x, y);\r\n e.preventDefault();\r\n }\r\n\r\n onMouseDown = e => {\r\n if (!this.canvas) return;\r\n const {x, y} = this.mousePos(e);\r\n if (window.screen && window.innerHeight === window.screen.height) {\r\n // we're in fullscreen, let's get pointer lock!\r\n if (!this.pointerLocked()) {\r\n this.canvas.requestPointerLock();\r\n }\r\n }\r\n this.game(\"DApi_Mouse\", 1, this.mouseButton(e), this.eventMods(e), x, y);\r\n e.preventDefault();\r\n }\r\n\r\n onMouseUp = e => {\r\n if (!this.canvas) return;\r\n const {x, y} = this.mousePos(e);\r\n this.game(\"DApi_Mouse\", 2, this.mouseButton(e), this.eventMods(e), x, y);\r\n e.preventDefault();\r\n }\r\n\r\n onKeyDown = e => {\r\n if (!this.canvas) return;\r\n this.game(\"DApi_Key\", 0, this.eventMods(e), e.keyCode);\r\n if (e.keyCode >= 32 && e.key.length === 1 && !this.showKeyboard) {\r\n this.game(\"DApi_Char\", e.key.charCodeAt(0));\r\n }\r\n this.clearKeySel();\r\n if (!this.showKeyboard) {\r\n if (e.keyCode === 8 || (e.keyCode >= 112 && e.keyCode <= 119)) {\r\n e.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n onMenu = e => {\r\n e.preventDefault();\r\n }\r\n\r\n onKeyUp = e => {\r\n if (!this.canvas) return;\r\n this.game(\"DApi_Key\", 1, this.eventMods(e), e.keyCode);\r\n this.clearKeySel();\r\n }\r\n\r\n clearKeySel() {\r\n if (this.showKeyboard) {\r\n const len = this.keyboard.value.length;\r\n this.keyboard.setSelectionRange(len, len);\r\n }\r\n }\r\n\r\n onKeyboard = () => {\r\n if (this.showKeyboard) {\r\n const text = this.keyboard.value;\r\n const valid = (text.match(/[\\x20-\\x7E]/g) || []).join(\"\").substring(0, 15);\r\n if (text !== valid) {\r\n this.keyboard.value = valid;\r\n }\r\n this.clearKeySel();\r\n const values = [...Array(15)].map((_, i) => i < valid.length ? valid.charCodeAt(i) : 0);\r\n this.game(\"DApi_SyncText\", ...values);\r\n }\r\n }\r\n\r\n parseFile = e => {\r\n const files = e.target.files;\r\n if (files.length > 0) {\r\n this.start(files[0]);\r\n }\r\n }\r\n\r\n touchButton = null;\r\n touchCanvas = null;\r\n\r\n onFullscreenChange = () => {\r\n this.setState({touch: (document.fullscreenElement === this.element)});\r\n }\r\n\r\n setTouchMod(index, value, use) {\r\n if (index < 3) {\r\n this.touchMods[index] = value;\r\n if (this.touchButtons[index]) {\r\n this.touchButtons[index].classList.toggle(\"active\", value);\r\n }\r\n } else if (use && this.touchBelt[index] >= 0) {\r\n const now = performance.now();\r\n if (!this.beltTime || now - this.beltTime > 750) {\r\n this.game(\"DApi_Char\", 49 + this.touchBelt[index]);\r\n this.beltTime = now;\r\n }\r\n }\r\n }\r\n\r\n updateTouchButton(touches, release) {\r\n let touchOther = null;\r\n const btn = this.touchButton;\r\n for (let {target, identifier, clientX, clientY} of touches) {\r\n if (btn && btn.id === identifier && this.touchButtons[btn.index] === target) {\r\n if (touches.length > 1) {\r\n btn.stick = false;\r\n }\r\n btn.clientX = clientX;\r\n btn.clientY = clientY;\r\n this.touchCanvas = [...touches].find(t => t.identifier !== identifier);\r\n if (this.touchCanvas) {\r\n this.touchCanvas = {clientX: this.touchCanvas.clientX, clientY: this.touchCanvas.clientY};\r\n }\r\n delete this.panPos;\r\n return this.touchCanvas != null;\r\n }\r\n const idx = this.touchButtons.indexOf(target);\r\n if (idx >= 0 && !touchOther) {\r\n touchOther = {id: identifier, index: idx, stick: true, original: this.touchMods[idx], clientX, clientY};\r\n }\r\n }\r\n if (btn && !touchOther && release && btn.stick) {\r\n const rect = this.touchButtons[btn.index].getBoundingClientRect();\r\n const {clientX, clientY} = btn;\r\n if (clientX >= rect.left && clientX < rect.right && clientY >= rect.top && clientY < rect.bottom) {\r\n this.setTouchMod(btn.index, !btn.original, true);\r\n } else {\r\n this.setTouchMod(btn.index, btn.original);\r\n }\r\n } else if (btn) {\r\n this.setTouchMod(btn.index, false);\r\n }\r\n this.touchButton = touchOther;\r\n if (touchOther) {\r\n this.setTouchMod(touchOther.index, true);\r\n if (touchOther.index === TOUCH_MOVE) {\r\n this.setTouchMod(TOUCH_RMB, false);\r\n } else if (touchOther.index === TOUCH_RMB) {\r\n this.setTouchMod(TOUCH_MOVE, false);\r\n }\r\n delete this.panPos;\r\n } else if (touches.length === 2) {\r\n const x = (touches[1].clientX + touches[0].clientX) / 2, y = (touches[1].clientY + touches[0].clientY) / 2;\r\n if (this.panPos) {\r\n const dx = x - this.panPos.x, dy = y - this.panPos.y;\r\n const step = this.canvas.offsetHeight / 12;\r\n if (Math.max(Math.abs(dx), Math.abs(dy)) > step) {\r\n let key;\r\n if (Math.abs(dx) > Math.abs(dy)) {\r\n key = (dx > 0 ? 0x25 : 0x27);\r\n } else {\r\n key = (dy > 0 ? 0x26 : 0x28);\r\n }\r\n this.game(\"DApi_Key\", 0, 0, key);\r\n // key up is ignored anyway\r\n this.panPos = {x, y};\r\n }\r\n } else {\r\n this.game(\"DApi_Mouse\", 0, 0, 24, 320, 180);\r\n this.game(\"DApi_Mouse\", 2, 1, 24, 320, 180);\r\n this.panPos = {x, y};\r\n }\r\n this.touchCanvas = null;\r\n return false;\r\n } else {\r\n delete this.panPos;\r\n }\r\n this.touchCanvas = [...touches].find(t => !touchOther || t.identifier !== touchOther.id);\r\n if (this.touchCanvas) {\r\n this.touchCanvas = {clientX: this.touchCanvas.clientX, clientY: this.touchCanvas.clientY};\r\n }\r\n return this.touchCanvas != null;\r\n }\r\n\r\n onTouchStart = e => {\r\n if (!this.canvas) return;\r\n e.preventDefault();\r\n if (this.updateTouchButton(e.touches, false)) {\r\n const {x, y} = this.mousePos(this.touchCanvas);\r\n this.game(\"DApi_Mouse\", 0, 0, this.eventMods(e), x, y);\r\n if (!this.touchMods[TOUCH_MOVE]) {\r\n this.game(\"DApi_Mouse\", 1, this.touchMods[TOUCH_RMB] ? 2 : 1, this.eventMods(e), x, y);\r\n }\r\n }\r\n }\r\n onTouchMove = e => {\r\n if (!this.canvas) return;\r\n e.preventDefault();\r\n if (this.updateTouchButton(e.touches, false)) {\r\n const {x, y} = this.mousePos(this.touchCanvas);\r\n this.game(\"DApi_Mouse\", 0, 0, this.eventMods(e), x, y);\r\n }\r\n }\r\n onTouchEnd = e => {\r\n if (!this.canvas) return;\r\n e.preventDefault();\r\n const prevTc = this.touchCanvas;\r\n this.updateTouchButton(e.touches, true);\r\n if (prevTc && !this.touchCanvas) {\r\n const {x, y} = this.mousePos(prevTc);\r\n this.game(\"DApi_Mouse\", 2, 1, this.eventMods(e), x, y);\r\n this.game(\"DApi_Mouse\", 2, 2, this.eventMods(e), x, y);\r\n\r\n if (this.touchMods[TOUCH_RMB] && (!this.touchButton || this.touchButton.index !== TOUCH_RMB)) {\r\n this.setTouchButton(TOUCH_RMB, false);\r\n }\r\n }\r\n if (!document.fullscreenElement) {\r\n this.element.requestFullscreen();\r\n }\r\n }\r\n\r\n setCanvas = e => this.canvas = e;\r\n setElement = e => this.element = e;\r\n setKeyboard = e => this.keyboard = e;\r\n setTouch_(i, e) {\r\n this.touchButtons[i] = e;\r\n }\r\n setTouchBelt_(i, e) {\r\n this.touchButtons[i] = e;\r\n if (e) {\r\n const canvas = document.createElement(\"canvas\");\r\n canvas.width = 28;\r\n canvas.height = 28;\r\n e.appendChild(canvas);\r\n this.touchCtx[i] = canvas.getContext(\"2d\");\r\n } else {\r\n this.touchCtx[i] = null;\r\n }\r\n }\r\n\r\n render() {\r\n const {started, loading, error, progress, dropping, touch, has_spawn} = this.state;\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {!error && }\r\n \r\n
\r\n
\r\n {!!error && (\r\n \r\n

The following error has occurred:

\r\n

{error}

\r\n

Click to go to GitHub issues

\r\n \r\n )}\r\n {!!loading && !started && !error && (\r\n
\r\n {(progress && progress.text) || 'Loading...'}\r\n {progress != null && !!progress.total && (\r\n \r\n )}\r\n
\r\n )}\r\n {!started && !loading && !error && (\r\n
\r\n

\r\n This is a web port of the original Diablo game, based on source code reconstructed by\r\n GalaXyHaXz and devilution team: https://github.com/diasurgical/devilution\r\n

\r\n

\r\n If you own the original game, you can drop the original DIABDAT.MPQ onto this page or click the button below to start playing.\r\n The game can be purchased from GoG.\r\n

\r\n {!has_spawn && (\r\n

\r\n Or you can play the shareware version for free (50MB download).\r\n

\r\n )}\r\n
\r\n \r\n \r\n
\r\n this.start()}>Play Shareware\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default App;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './reset.css';\r\nimport * as serviceWorker from './serviceWorker';\r\n\r\nimport App from './App';\r\n\r\nReactDOM.render(, document.getElementById('root'));\r\n\r\nserviceWorker.register();\r\n","import IdbKvStore from 'idb-kv-store';\r\n\r\nconst importStorage = () => new Promise((resolve, reject) => {\r\n let done = false;\r\n const frame = document.createElement('iframe');\r\n window.addEventListener('message', ({data}) => {\r\n if (data.method === 'storage' && !done) {\r\n done = true;\r\n resolve(data.files);\r\n frame.contentWindow.postMessage({method: 'clear'}, '*');\r\n }\r\n });\r\n frame.addEventListener('load', () => {\r\n frame.contentWindow.postMessage({method: 'transfer'}, '*');\r\n });\r\n frame.addEventListener('error', () => {\r\n if (!done) {\r\n done = true;\r\n resolve(null);\r\n }\r\n });\r\n frame.src = \"https://diablo.rivsoft.net/storage.html\";\r\n frame.style.display = \"none\";\r\n document.body.appendChild(frame);\r\n setTimeout(() => {\r\n if (!done) {\r\n done = true;\r\n resolve(null);\r\n }\r\n }, 10000);\r\n});\r\n\r\nasync function downloadFile(store, name) {\r\n const file = await store.get(name.toLowerCase());\r\n if (file) {\r\n const blob = new Blob([file], {type: 'binary/octet-stream'});\r\n const url = URL.createObjectURL(blob);\r\n const lnk = document.createElement('a');\r\n lnk.setAttribute('href', url);\r\n lnk.setAttribute('download', name);\r\n document.body.appendChild(lnk);\r\n lnk.click();\r\n document.body.removeChild(lnk);\r\n URL.revokeObjectURL(url);\r\n } else {\r\n console.error(`File ${name} does not exist`);\r\n }\r\n}\r\n\r\nasync function downloadSaves(store) {\r\n for (let name of await store.keys()) {\r\n if (name.match(/\\.sv$/i)) {\r\n downloadFile(store, name);\r\n }\r\n }\r\n}\r\n\r\nconst readFile = file => new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => resolve(reader.result);\r\n reader.onerror = () => reject(reader.error);\r\n reader.onabort = () => reject();\r\n reader.readAsArrayBuffer(file);\r\n});\r\nasync function uploadFile(store, files, file) {\r\n const data = new Uint8Array(await readFile(file));\r\n files.set(file.name.toLowerCase(), data);\r\n return store.set(file.name.toLowerCase(), data);\r\n}\r\n\r\nexport default async function create_fs(load) {\r\n try {\r\n const store = new IdbKvStore('diablo_fs');\r\n const files = new Map();\r\n for (let [name, data] of Object.entries(await store.json())) {\r\n files.set(name, data);\r\n }\r\n if (load) {\r\n const files = await importStorage();\r\n if (files) {\r\n for (let [name, data] of files) {\r\n files.set(name, data);\r\n store.set(name, data);\r\n }\r\n }\r\n }\r\n window.DownloadFile = name => downloadFile(store, name);\r\n window.DownloadSaves = () => downloadSaves(store);\r\n return {\r\n files,\r\n update: (name, data) => store.set(name, data),\r\n delete: name => store.remove(name),\r\n clear: () => store.clear(),\r\n upload: file => uploadFile(store, files, file),\r\n };\r\n } catch (e) {\r\n window.DownloadFile = () => console.error('IndexedDB is not supported');\r\n window.DownloadSaves = () => console.error('IndexedDB is not supported');\r\n return {\r\n files: new Map(),\r\n update: () => Promise.resolve(),\r\n delete: () => Promise.resolve(),\r\n clear: () => Promise.resolve(),\r\n upload: () => Promise.resolve(),\r\n };\r\n } \r\n}\r\n"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/main.e77bbf36.chunk.js b/static/js/main.e77bbf36.chunk.js new file mode 100644 index 0000000..cf7faf4 --- /dev/null +++ b/static/js/main.e77bbf36.chunk.js @@ -0,0 +1,2 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{23:function(e,t,n){e.exports=function(){return new Worker(n.p+"ec517037eb7f5fbaab67.worker.js")}},28:function(e,t,n){e.exports=n(58)},34:function(e,t,n){},35:function(e,t,n){},58:function(e,t,n){"use strict";n.r(t);var a=n(0),o=n.n(a),r=n(19),s=n.n(r),i=(n(34),Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)));function c(e,t){navigator.serviceWorker.register(e).then(function(e){e.onupdatefound=function(){var n=e.installing;null!=n&&(n.onstatechange=function(){"installed"===n.state&&(navigator.serviceWorker.controller?(console.log("New content is available and will be used when all tabs for this page are closed. See https://bit.ly/CRA-PWA."),t&&t.onUpdate&&t.onUpdate(e)):(console.log("Content is cached for offline use."),t&&t.onSuccess&&t.onSuccess(e)))})}}).catch(function(e){console.error("Error during service worker registration:",e)})}var u=n(5),l=n(20),d=n(21),h=n(25),f=n(22),p=n(4),v=n(26),m=n(27),g=(n(35),n(7)),b=n.n(g),y=n(8),w=n(1),k=n.n(w),x=n(6),M=n(2),E=n(23),C=n.n(E);var T=n(24),D=n.n(T),B=50274091;function L(e,t){return P.apply(this,arguments)}function P(){return(P=Object(M.a)(k.a.mark(function e(t,n){var a,o,r;return k.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!(a=n.files.get("spawn.mpq"))||a.byteLength===B){e.next=6;break}return n.files.delete("spawn.mpq"),e.next=5,n.delete("spawn.mpq");case 5:a=null;case 6:if(a){e.next=15;break}return e.next=9,D.a.request({url:"/diabloweb/spawn.mpq",responseType:"arraybuffer",onDownloadProgress:function(e){t.onProgress&&t.onProgress({text:"Downloading...",loaded:e.loaded,total:e.total||B})},headers:{"Cache-Control":"max-age=31536000"}});case 9:if((o=e.sent).data.byteLength===B){e.next=12;break}throw Error("Invalid spawn.mpq size. Try clearing cache and refreshing the page.");case 12:r=new Uint8Array(o.data),n.files.set("spawn.mpq",r),n.update("spawn.mpq",r.slice());case 15:return e.abrupt("return",n);case 16:case"end":return e.stop()}},e)}))).apply(this,arguments)}function _(e,t,n){var a=n.bitmap,o=n.images,r=n.text,s=n.clip,i=n.belt;if(a)t.transferFromImageBitmap(a);else{var c=!0,u=!1,l=void 0;try{for(var d,h=o[Symbol.iterator]();!(c=(d=h.next()).done);c=!0){var f=d.value,p=f.x,v=f.y,m=f.w,g=f.h,b=f.data,y=t.createImageData(m,g);y.data.set(b),t.putImageData(y,p,v)}}catch(N){u=!0,l=N}finally{try{c||null==h.return||h.return()}finally{if(u)throw l}}if(r.length){if(t.save(),t.font="bold 13px Times New Roman",s){var w=s.x0,k=s.y0,x=s.x1,M=s.y1;t.beginPath(),t.rect(w,k,x-w,M-k),t.clip()}var E=!0,C=!1,T=void 0;try{for(var D,B=r[Symbol.iterator]();!(E=(D=B.next()).done);E=!0){var L=D.value,P=L.x,_=L.y,j=L.text,A=L.color,O=A>>16&255,S=A>>8&255,K=255&A;t.fillStyle="rgb(".concat(O,", ").concat(S,", ").concat(K,")"),t.fillText(j,P,_+22)}}catch(N){C=!0,T=N}finally{try{E||null==B.return||B.return()}finally{if(C)throw T}}t.restore()}}e.updateBelt(i)}function j(){return(j=Object(M.a)(k.a.mark(function e(t,n,a){var o,r,s,i;return k.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.fs;case 2:if(o=e.sent,r=!0,!a){e.next=8;break}a.name.match(/^spawn\.mpq$/i)||(r=!1,o.files.delete("spawn.mpq")),e.next=10;break;case 8:return e.next=10,L(t,o);case 10:return s=null,i=!1,s=t.canvas.getContext("2d",{alpha:!1}),e.next=14,new Promise(function(e,c){try{var l=new C.a;l.addEventListener("message",function(a){var r=a.data;switch(r.action){case"loaded":e(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),a=1;a=32&&1===e.key.length&&!n.showKeyboard&&n.game("DApi_Char",e.key.charCodeAt(0)),n.clearKeySel(),n.showKeyboard||(8===e.keyCode||e.keyCode>=112&&e.keyCode<=119)&&e.preventDefault())},n.onMenu=function(e){e.preventDefault()},n.onKeyUp=function(e){n.canvas&&(n.game("DApi_Key",1,n.eventMods(e),e.keyCode),n.clearKeySel())},n.onKeyboard=function(){if(n.showKeyboard){var e,t=n.keyboard.value,a=(t.match(/[\x20-\x7E]/g)||[]).join("").substring(0,15);t!==a&&(n.keyboard.value=a),n.clearKeySel();var o=Object(u.a)(Array(15)).map(function(e,t){return t0&&n.start(t[0])},n.touchButton=null,n.touchCanvas=null,n.onFullscreenChange=function(){n.setState({touch:document.fullscreenElement===n.element})},n.onTouchStart=function(e){if(n.canvas&&(e.preventDefault(),n.updateTouchButton(e.touches,!1))){var t=n.mousePos(n.touchCanvas),a=t.x,o=t.y;n.game("DApi_Mouse",0,0,n.eventMods(e),a,o),n.touchMods[S]||n.game("DApi_Mouse",1,n.touchMods[K]?2:1,n.eventMods(e),a,o)}},n.onTouchMove=function(e){if(n.canvas&&(e.preventDefault(),n.updateTouchButton(e.touches,!1))){var t=n.mousePos(n.touchCanvas),a=t.x,o=t.y;n.game("DApi_Mouse",0,0,n.eventMods(e),a,o)}},n.onTouchEnd=function(e){if(n.canvas){e.preventDefault();var t=n.touchCanvas;if(n.updateTouchButton(e.touches,!0),t&&!n.touchCanvas){var a=n.mousePos(t),o=a.x,r=a.y;n.game("DApi_Mouse",2,1,n.eventMods(e),o,r),n.game("DApi_Mouse",2,2,n.eventMods(e),o,r),!n.touchMods[K]||n.touchButton&&n.touchButton.index===K||n.setTouchButton(K,!1)}document.fullscreenElement||n.element.requestFullscreen()}},n.setCanvas=function(e){return n.canvas=e},n.setElement=function(e){return n.element=e},n.setKeyboard=function(e){return n.keyboard=e},n.setTouch0=n.setTouch_.bind(Object(p.a)(n),0),n.setTouch1=n.setTouch_.bind(Object(p.a)(n),1),n.setTouch2=n.setTouch_.bind(Object(p.a)(n),2),n.setTouch3=n.setTouchBelt_.bind(Object(p.a)(n),3),n.setTouch4=n.setTouchBelt_.bind(Object(p.a)(n),4),n.setTouch5=n.setTouchBelt_.bind(Object(p.a)(n),5),n}return Object(v.a)(t,e),Object(d.a)(t,[{key:"componentDidMount",value:function(){var e=this;document.addEventListener("drop",this.onDrop,!0),document.addEventListener("dragover",this.onDragOver,!0),document.addEventListener("dragenter",this.onDragEnter,!0),document.addEventListener("dragleave",this.onDragLeave,!0),this.fs.then(function(t){var n=t.files.get("spawn.mpq");n&&n.byteLength===B&&e.setState({has_spawn:!0})})}},{key:"setDropping",value:function(e){this.setState(function(t){var n=t.dropping;return{dropping:Math.max(n+e,0)}})}},{key:"onError",value:function(e,t){this.setState({error:{message:e,stack:t}})}},{key:"openKeyboard",value:function(e){e?(this.showKeyboard=!0,this.element.classList.add("keyboard"),this.keyboard.focus()):(this.showKeyboard=!1,this.element.classList.remove("keyboard"),this.keyboard.blur())}},{key:"setCursorPos",value:function(e,t){var n=this,a=this.canvas.getBoundingClientRect();this.cursorPos={x:a.left+(a.right-a.left)*e/640,y:a.top+(a.bottom-a.top)*t/480},setTimeout(function(){n.game("DApi_Mouse",0,0,0,e,t)})}},{key:"onProgress",value:function(e){this.setState({progress:e})}},{key:"drawBelt",value:function(e,t){this.touchButtons[e]&&(this.touchBelt[e]=t,t>=0?(this.touchButtons[e].style.display="block",this.touchCtx[e].drawImage(this.canvas,205+29*t,357,28,28,0,0,28,28)):this.touchButtons[e].style.display="none")}},{key:"updateBelt",value:function(e){if(e){for(var t=new Set,n=3,a=0;a=0&&!t.has(e[a])&&(this.drawBelt(n++,a),t.add(e[a]));for(;n<6;++n)this.drawBelt(n,-1)}else this.drawBelt(3,-1),this.drawBelt(4,-1),this.drawBelt(5,-1)}},{key:"start",value:function(e){var t=this;e&&e.name.match(/\.sv$/i)?this.fs.then(function(t){return t.upload(e)}).then(console.log("Updated ".concat(e.name))):(document.removeEventListener("drop",this.onDrop,!0),document.removeEventListener("dragover",this.onDragOver,!0),document.removeEventListener("dragenter",this.onDragEnter,!0),document.removeEventListener("dragleave",this.onDragLeave,!0),this.setState({dropping:0}),this.setState({loading:!0}),A(this,e).then(function(e){t.game=e,document.addEventListener("mousemove",t.onMouseMove,!0),document.addEventListener("mousedown",t.onMouseDown,!0),document.addEventListener("mouseup",t.onMouseUp,!0),document.addEventListener("keydown",t.onKeyDown,!0),document.addEventListener("keyup",t.onKeyUp,!0),document.addEventListener("contextmenu",t.onMenu,!0),document.addEventListener("touchstart",t.onTouchStart,{passive:!1,capture:!0}),document.addEventListener("touchmove",t.onTouchMove,{passive:!1,capture:!0}),document.addEventListener("touchend",t.onTouchEnd,{passive:!1,capture:!0}),document.addEventListener("pointerlockchange",t.onPointerLockChange),document.addEventListener("fullscreenchange",t.onFullscreenChange),window.addEventListener("resize",t.onResize),t.setState({started:!0})},function(e){return t.onError(e.message,e.stack)}))}},{key:"pointerLocked",value:function(){return document.pointerLockElement===this.canvas||document.mozPointerLockElement===this.canvas}},{key:"mousePos",value:function(e){var t=this.canvas.getBoundingClientRect();return this.pointerLocked()?(this.cursorPos.x=Math.max(t.left,Math.min(t.right,this.cursorPos.x+e.movementX)),this.cursorPos.y=Math.max(t.top,Math.min(t.bottom,this.cursorPos.y+e.movementY))):this.cursorPos={x:e.clientX,y:e.clientY},{x:Math.max(0,Math.min(Math.round((this.cursorPos.x-t.left)/(t.right-t.left)*640),639)),y:Math.max(0,Math.min(Math.round((this.cursorPos.y-t.top)/(t.bottom-t.top)*480),479))}}},{key:"mouseButton",value:function(e){switch(e.button){case 0:return 1;case 1:return 4;case 2:return 2;case 3:return 5;case 4:return 6;default:return 1}}},{key:"eventMods",value:function(e){return(e.shiftKey||this.touchMods[2]?1:0)+(e.ctrlKey?2:0)+(e.altKey?4:0)+(e.touches?8:0)}},{key:"clearKeySel",value:function(){if(this.showKeyboard){var e=this.keyboard.value.length;this.keyboard.setSelectionRange(e,e)}}},{key:"setTouchMod",value:function(e,t,n){if(e<3)this.touchMods[e]=t,this.touchButtons[e]&&this.touchButtons[e].classList.toggle("active",t);else if(n&&this.touchBelt[e]>=0){var a=performance.now();(!this.beltTime||a-this.beltTime>750)&&(this.game("DApi_Char",49+this.touchBelt[e]),this.beltTime=a)}}},{key:"updateTouchButton",value:function(e,t){var n=this,a=null,o=this.touchButton,r=!0,s=!1,i=void 0;try{for(var c,l=function(){var t=c.value,r=t.target,s=t.identifier,i=t.clientX,l=t.clientY;if(o&&o.id===s&&n.touchButtons[o.index]===r)return e.length>1&&(o.stick=!1),o.clientX=i,o.clientY=l,n.touchCanvas=Object(u.a)(e).find(function(e){return e.identifier!==s}),n.touchCanvas&&(n.touchCanvas={clientX:n.touchCanvas.clientX,clientY:n.touchCanvas.clientY}),delete n.panPos,{v:null!=n.touchCanvas};var d=n.touchButtons.indexOf(r);d>=0&&!a&&(a={id:s,index:d,stick:!0,original:n.touchMods[d],clientX:i,clientY:l})},d=e[Symbol.iterator]();!(r=(c=d.next()).done);r=!0){var h=l();if("object"===typeof h)return h.v}}catch(x){s=!0,i=x}finally{try{r||null==d.return||d.return()}finally{if(s)throw i}}if(o&&!a&&t&&o.stick){var f=this.touchButtons[o.index].getBoundingClientRect(),p=o.clientX,v=o.clientY;p>=f.left&&p=f.top&&vk)b=Math.abs(y)>Math.abs(w)?y>0?37:39:w>0?38:40,this.game("DApi_Key",0,0,b),this.panPos={x:m,y:g}}else this.game("DApi_Mouse",0,0,24,320,180),this.game("DApi_Mouse",2,1,24,320,180),this.panPos={x:m,y:g};return this.touchCanvas=null,!1}delete this.panPos}return this.touchCanvas=Object(u.a)(e).find(function(e){return!a||e.identifier!==a.id}),this.touchCanvas&&(this.touchCanvas={clientX:this.touchCanvas.clientX,clientY:this.touchCanvas.clientY}),null!=this.touchCanvas}},{key:"setTouch_",value:function(e,t){this.touchButtons[e]=t}},{key:"setTouchBelt_",value:function(e,t){if(this.touchButtons[e]=t,t){var n=document.createElement("canvas");n.width=28,n.height=28,t.appendChild(n),this.touchCtx[e]=n.getContext("2d")}else this.touchCtx[e]=null}},{key:"render",value:function(){var e=this,t=this.state,n=t.started,a=t.loading,r=t.error,s=t.progress,i=t.dropping,c=t.touch,u=t.has_spawn;return o.a.createElement("div",{className:b()("App",{touch:c,started:n,dropping:i,keyboard:this.showKeyboard}),ref:this.setElement},o.a.createElement("div",{className:"touch-ui touch-mods"},o.a.createElement("div",{className:b()("touch-button","touch-button-0",{active:this.touchMods[0]}),ref:this.setTouch0}),o.a.createElement("div",{className:b()("touch-button","touch-button-1",{active:this.touchMods[1]}),ref:this.setTouch1}),o.a.createElement("div",{className:b()("touch-button","touch-button-2",{active:this.touchMods[2]}),ref:this.setTouch2})),o.a.createElement("div",{className:"touch-ui touch-belt"},o.a.createElement("div",{className:b()("touch-button","touch-button-0"),ref:this.setTouch3}),o.a.createElement("div",{className:b()("touch-button","touch-button-1"),ref:this.setTouch4}),o.a.createElement("div",{className:b()("touch-button","touch-button-2"),ref:this.setTouch5})),o.a.createElement("div",{className:"Body"},!r&&o.a.createElement("canvas",{ref:this.setCanvas,width:640,height:480}),o.a.createElement("input",{type:"text",className:"keyboard",onChange:this.onKeyboard,ref:this.setKeyboard,spellCheck:!1})),o.a.createElement("div",{className:"BodyV"},!!r&&o.a.createElement(N,{className:"error",href:O(r)},o.a.createElement("p",{className:"header"},"The following error has occurred:"),o.a.createElement("p",{className:"body"},r.message),o.a.createElement("p",{className:"footer"},"Click to go to GitHub issues")),!!a&&!n&&!r&&o.a.createElement("div",{className:"loading"},s&&s.text||"Loading...",null!=s&&!!s.total&&o.a.createElement("span",{className:"progressBar"},o.a.createElement("span",null,o.a.createElement("span",{style:{width:"".concat(Math.round(100*s.loaded/s.total),"%")}})))),!n&&!a&&!r&&o.a.createElement("div",{className:"start"},o.a.createElement("p",null,"This is a web port of the original Diablo game, based on source code reconstructed by GalaXyHaXz and devilution team: ",o.a.createElement(N,{href:"https://github.com/diasurgical/devilution"},"https://github.com/diasurgical/devilution")),o.a.createElement("p",null,"If you own the original game, you can drop the original DIABDAT.MPQ onto this page or click the button below to start playing. The game can be purchased from ",o.a.createElement(N,{href:"https://www.gog.com/game/diablo"},"GoG"),"."),!u&&o.a.createElement("p",null,"Or you can play the shareware version for free (50MB download)."),o.a.createElement("form",null,o.a.createElement("label",{htmlFor:"loadFile",className:"startButton"},"Select MPQ"),o.a.createElement("input",{accept:".mpq",type:"file",id:"loadFile",style:{display:"none"},onChange:this.parseFile})),o.a.createElement("span",{className:"startButton",onClick:function(){return e.start()}},"Play Shareware"))))}}]),t}(o.a.Component);s.a.render(o.a.createElement(R,null),document.getElementById("root")),function(e){if("serviceWorker"in navigator){if(new URL("/diabloweb",window.location.href).origin!==window.location.origin)return;window.addEventListener("load",function(){var t="".concat("/diabloweb","/service-worker.js");i?(function(e,t){fetch(e).then(function(n){var a=n.headers.get("content-type");404===n.status||null!=a&&-1===a.indexOf("javascript")?navigator.serviceWorker.ready.then(function(e){e.unregister().then(function(){window.location.reload()})}):c(e,t)}).catch(function(){console.log("No internet connection found. App is running in offline mode.")})}(t,e),navigator.serviceWorker.ready.then(function(){console.log("This web app is being served cache-first by a service worker. To learn more, visit https://bit.ly/CRA-PWA")})):c(t,e)})}}()},8:function(e,t,n){"use strict";n.d(t,"a",function(){return g});var a=n(6),o=n(1),r=n.n(o),s=n(2),i=n(9),c=n.n(i),u=function(){return new Promise(function(e,t){var n=!1,a=document.createElement("iframe");window.addEventListener("message",function(t){var o=t.data;"storage"!==o.method||n||(n=!0,e(o.files),a.contentWindow.postMessage({method:"clear"},"*"))}),a.addEventListener("load",function(){a.contentWindow.postMessage({method:"transfer"},"*")}),a.addEventListener("error",function(){n||(n=!0,e(null))}),a.src="https://diablo.rivsoft.net/storage.html",a.style.display="none",document.body.appendChild(a),setTimeout(function(){n||(n=!0,e(null))},1e4)})};function l(e,t){return d.apply(this,arguments)}function d(){return(d=Object(s.a)(r.a.mark(function e(t,n){var a,o,s,i;return r.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.get(n.toLowerCase());case 2:(a=e.sent)?(o=new Blob([a],{type:"binary/octet-stream"}),s=URL.createObjectURL(o),(i=document.createElement("a")).setAttribute("href",s),i.setAttribute("download",n),document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(s)):console.error("File ".concat(n," does not exist"));case 4:case"end":return e.stop()}},e)}))).apply(this,arguments)}function h(e){return f.apply(this,arguments)}function f(){return(f=Object(s.a)(r.a.mark(function e(t){var n,a,o,s,i,c;return r.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=!0,a=!1,o=void 0,e.prev=3,e.next=6,t.keys();case 6:e.t0=Symbol.iterator,s=e.sent[e.t0]();case 8:if(n=(i=s.next()).done){e.next=14;break}(c=i.value).match(/\.sv$/i)&&l(t,c);case 11:n=!0,e.next=8;break;case 14:e.next=20;break;case 16:e.prev=16,e.t1=e.catch(3),a=!0,o=e.t1;case 20:e.prev=20,e.prev=21,n||null==s.return||s.return();case 23:if(e.prev=23,!a){e.next=26;break}throw o;case 26:return e.finish(23);case 27:return e.finish(20);case 28:case"end":return e.stop()}},e,null,[[3,16,20,28],[21,,23,27]])}))).apply(this,arguments)}var p=function(e){return new Promise(function(t,n){var a=new FileReader;a.onload=function(){return t(a.result)},a.onerror=function(){return n(a.error)},a.onabort=function(){return n()},a.readAsArrayBuffer(e)})};function v(e,t,n){return m.apply(this,arguments)}function m(){return(m=Object(s.a)(r.a.mark(function e(t,n,a){var o;return r.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.t0=Uint8Array,e.next=3,p(a);case 3:return e.t1=e.sent,o=new e.t0(e.t1),n.set(a.name.toLowerCase(),o),e.abrupt("return",t.set(a.name.toLowerCase(),o));case 7:case"end":return e.stop()}},e)}))).apply(this,arguments)}function g(e){return b.apply(this,arguments)}function b(){return(b=Object(s.a)(r.a.mark(function e(t){var n,o,s,i,d,f,p,m,g,b,y,w,k,x,M,E,C,T;return r.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,n=new c.a("diablo_fs"),o=new Map,s=0,e.t0=Object,e.next=7,n.json();case 7:e.t1=e.sent,i=e.t0.entries.call(e.t0,e.t1);case 9:if(!(s {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import axios from 'axios';\r\n\r\nconst SpawnSize = 50274091;\r\n\r\nexport { SpawnSize };\r\n\r\nexport default async function load_spawn(api, fs) {\r\n let file = fs.files.get('spawn.mpq');\r\n if (file && file.byteLength !== SpawnSize) {\r\n fs.files.delete('spawn.mpq');\r\n await fs.delete('spawn.mpq');\r\n file = null;\r\n }\r\n if (!file) {\r\n const spawn = await axios.request({\r\n url: process.env.PUBLIC_URL + '/spawn.mpq',\r\n responseType: 'arraybuffer',\r\n onDownloadProgress: e => {\r\n if (api.onProgress) {\r\n api.onProgress({text: 'Downloading...', loaded: e.loaded, total: e.total || SpawnSize});\r\n }\r\n },\r\n headers: {\r\n 'Cache-Control': 'max-age=31536000'\r\n }\r\n });\r\n if (spawn.data.byteLength !== SpawnSize) {\r\n throw Error(\"Invalid spawn.mpq size. Try clearing cache and refreshing the page.\");\r\n }\r\n const data = new Uint8Array(spawn.data);\r\n fs.files.set('spawn.mpq', data);\r\n fs.update('spawn.mpq', data.slice());\r\n }\r\n return fs;\r\n}\r\n","import Worker from './game.worker.js';\r\nimport init_sound from './sound';\r\nimport load_spawn from './load_spawn';\r\n\r\nfunction onRender(api, ctx, {bitmap, images, text, clip, belt}) {\r\n if (bitmap) {\r\n ctx.transferFromImageBitmap(bitmap);\r\n } else {\r\n for (let {x, y, w, h, data} of images) {\r\n const image = ctx.createImageData(w, h);\r\n image.data.set(data);\r\n ctx.putImageData(image, x, y);\r\n }\r\n if (text.length) {\r\n ctx.save();\r\n ctx.font = 'bold 13px Times New Roman';\r\n if (clip) {\r\n const {x0, y0, x1, y1} = clip;\r\n ctx.beginPath();\r\n ctx.rect(x0, y0, x1 - x0, y1 - y0);\r\n ctx.clip();\r\n }\r\n for (let {x, y, text: str, color} of text) {\r\n const r = ((color >> 16) & 0xFF);\r\n const g = ((color >> 8) & 0xFF);\r\n const b = (color & 0xFF);\r\n ctx.fillStyle = `rgb(${r}, ${g}, ${b})`;\r\n ctx.fillText(str, x, y + 22);\r\n }\r\n ctx.restore();\r\n }\r\n }\r\n\r\n api.updateBelt(belt);\r\n}\r\n\r\nfunction testOffscreen() {\r\n return false;\r\n /*try {\r\n const canvas = document.createElement(\"canvas\");\r\n const offscreen = canvas.transferControlToOffscreen();\r\n const context = offscreen.getContext(\"2d\");\r\n return context != null;\r\n } catch (e) {\r\n return false;\r\n }*/\r\n}\r\n\r\nasync function do_load_game(api, audio, mpq) {\r\n const fs = await api.fs;\r\n let spawn = true;\r\n if (mpq) {\r\n if (!mpq.name.match(/^spawn\\.mpq$/i)) {\r\n spawn = false;\r\n fs.files.delete('spawn.mpq');\r\n }\r\n } else {\r\n await load_spawn(api, fs);\r\n }\r\n\r\n let context = null, offscreen = false;\r\n if (testOffscreen()) {\r\n context = api.canvas.getContext(\"bitmaprenderer\");\r\n offscreen = true;\r\n } else {\r\n context = api.canvas.getContext(\"2d\", {alpha: false});\r\n }\r\n return await new Promise((resolve, reject) => {\r\n try {\r\n const worker = new Worker();\r\n worker.addEventListener(\"message\", ({data}) => {\r\n switch (data.action) {\r\n case \"loaded\":\r\n resolve((func, ...params) => worker.postMessage({action: \"event\", func, params}));\r\n break;\r\n case \"render\":\r\n onRender(api, context, data.batch);\r\n break;\r\n case \"audio\":\r\n audio[data.func](...data.params);\r\n break;\r\n case \"audioBatch\":\r\n for (let {func, params} of data.batch) {\r\n audio[func](...params);\r\n }\r\n break;\r\n case \"fs\":\r\n fs[data.func](...data.params);\r\n break;\r\n case \"cursor\":\r\n api.setCursorPos(data.x, data.y);\r\n break;\r\n case \"keyboard\":\r\n api.openKeyboard(data.open);\r\n break;\r\n case \"error\":\r\n api.onError(data.error, data.stack);\r\n break;\r\n case \"failed\":\r\n reject(Error(data.stack || data.error));\r\n break;\r\n case \"progress\":\r\n api.onProgress({text: data.text, loaded: data.loaded, total: data.total});\r\n break;\r\n default:\r\n }\r\n });\r\n const transfer= [];\r\n for (let [, file] of fs.files) {\r\n transfer.push(file.buffer);\r\n }\r\n worker.postMessage({action: \"init\", files: fs.files, mpq, spawn, offscreen}, transfer);\r\n delete fs.files;\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n}\r\n\r\nexport default function load_game(api, mpq) {\r\n const audio = init_sound();\r\n return do_load_game(api, audio, mpq);\r\n}\r\n","function no_sound() {\r\n return {\r\n create_sound: () => 0,\r\n duplicate_sound: () => 0,\r\n play_sound: () => undefined,\r\n set_volume: () => undefined,\r\n stop_sound: () => undefined,\r\n delete_sound: () => undefined,\r\n };\r\n}\r\n\r\nexport default function init_sound() {\r\n const AudioContext = window.AudioContext || window.webkitAudioContext;\r\n if (!AudioContext) {\r\n return no_sound();\r\n }\r\n\r\n const context = new AudioContext();\r\n const sounds = new Map();\r\n\r\n return {\r\n create_sound(id, data, length, channels, rate) {\r\n const buffer = context.createBuffer(channels, length, rate);\r\n for (let i = 0; i < channels; ++i) {\r\n buffer.copyToChannel(data.subarray(i * length, i * length + length), i);\r\n }\r\n sounds.set(id, {\r\n buffer,\r\n gain: context.createGain(),\r\n panner: new StereoPannerNode(context, {pan: 0}),\r\n });\r\n },\r\n duplicate_sound(id, srcId) {\r\n const src = sounds.get(srcId);\r\n if (!src) {\r\n return;\r\n }\r\n sounds.set(id, {\r\n buffer: src.buffer,\r\n gain: context.createGain(),\r\n panner: new StereoPannerNode(context, {pan: 0}),\r\n });\r\n },\r\n play_sound(id, volume, pan, loop) {\r\n const src = sounds.get(id);\r\n if (src) {\r\n if (src.source) {\r\n src.source.stop();\r\n }\r\n src.gain.gain.value = Math.pow(2.0, volume / 1000.0);\r\n const relVolume = Math.pow(2.0, pan / 1000.0);\r\n src.panner.pan.value = 1.0 - 2.0 / (1.0 + relVolume);\r\n src.source = context.createBufferSource();\r\n src.source.buffer = src.buffer;\r\n src.source.loop = !!loop;\r\n src.source.connect(src.gain).connect(src.panner).connect(context.destination);\r\n src.source.start();\r\n }\r\n },\r\n set_volume(id, volume) {\r\n const src = sounds.get(id);\r\n if (src) {\r\n src.gain.gain.value = Math.pow(2.0, volume / 1000.0);\r\n }\r\n },\r\n stop_sound(id) {\r\n const src = sounds.get(id);\r\n if (src && src.source) {\r\n src.source.stop();\r\n delete src.source;\r\n }\r\n },\r\n delete_sound(id) {\r\n const src = sounds.get(id);\r\n if (src && src.source) {\r\n src.source.stop();\r\n }\r\n sounds.delete(id);\r\n },\r\n };\r\n}\r\n","import React from 'react';\r\nimport './App.scss';\r\nimport classNames from 'classnames';\r\n\r\nimport create_fs from './fs';\r\nimport load_game from './api/loader';\r\nimport { SpawnSize } from './api/load_spawn';\r\n\r\nfunction reportLink(e) {\r\n const message = e.stack || e.message;\r\n const url = new URL(\"https://github.com/d07RiV/diabloweb/issues/new\");\r\n url.searchParams.set(\"body\", `**Error message:**\\n\\n${message.split(\"\\n\").map(line => \" \" + line).join(\"\\n\")}`);\r\n return url.toString();\r\n}\r\n\r\nfunction isDropFile(e) {\r\n if (e.dataTransfer.items) {\r\n for (let i = 0; i < e.dataTransfer.items.length; ++i) {\r\n if (e.dataTransfer.items[i].kind === \"file\") {\r\n return true;\r\n }\r\n }\r\n } if (e.dataTransfer.files.length) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction getDropFile(e) {\r\n if (e.dataTransfer.items) {\r\n for (let i = 0; i < e.dataTransfer.items.length; ++i) {\r\n if (e.dataTransfer.items[i].kind === \"file\") {\r\n return e.dataTransfer.items[i].getAsFile();\r\n }\r\n }\r\n } if (e.dataTransfer.files.length) {\r\n return e.dataTransfer.files[0];\r\n }\r\n}\r\n\r\nconst TOUCH_MOVE = 0;\r\nconst TOUCH_RMB = 1;\r\nconst TOUCH_SHIFT = 2;\r\n\r\nconst Link = ({children, ...props}) => {children};\r\n\r\nclass App extends React.Component {\r\n files = new Map();\r\n state = {started: false, loading: false, touch: false, dropping: 0, has_spawn: false};\r\n cursorPos = {x: 0, y: 0};\r\n\r\n touchButtons = [null, null, null, null, null, null];\r\n touchCtx = [null, null, null, null, null, null];\r\n touchMods = [false, false, false, false, false, false];\r\n touchBelt = [-1, -1, -1, -1, -1, -1];\r\n\r\n fs = create_fs(true);\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.setTouch0 = this.setTouch_.bind(this, 0);\r\n this.setTouch1 = this.setTouch_.bind(this, 1);\r\n this.setTouch2 = this.setTouch_.bind(this, 2);\r\n this.setTouch3 = this.setTouchBelt_.bind(this, 3);\r\n this.setTouch4 = this.setTouchBelt_.bind(this, 4);\r\n this.setTouch5 = this.setTouchBelt_.bind(this, 5);\r\n }\r\n\r\n componentDidMount() {\r\n document.addEventListener(\"drop\", this.onDrop, true);\r\n document.addEventListener(\"dragover\", this.onDragOver, true);\r\n document.addEventListener(\"dragenter\", this.onDragEnter, true);\r\n document.addEventListener(\"dragleave\", this.onDragLeave, true);\r\n\r\n this.fs.then(fs => {\r\n const spawn = fs.files.get('spawn.mpq');\r\n if (spawn && spawn.byteLength === SpawnSize) {\r\n this.setState({has_spawn: true});\r\n }\r\n });\r\n }\r\n\r\n onDrop = e => {\r\n const file = getDropFile(e);\r\n if (file) {\r\n e.preventDefault();\r\n this.start(file);\r\n }\r\n this.setState({dropping: 0});\r\n }\r\n onDragEnter = e => {\r\n e.preventDefault();\r\n this.setDropping(1);\r\n }\r\n onDragOver = e => {\r\n if (isDropFile(e)) {\r\n e.preventDefault();\r\n }\r\n }\r\n onDragLeave = e => {\r\n this.setDropping(-1);\r\n }\r\n setDropping(inc) {\r\n this.setState(({dropping}) => ({dropping: Math.max(dropping + inc, 0)}));\r\n }\r\n\r\n onError(message, stack) {\r\n this.setState({error: {message, stack}});\r\n }\r\n\r\n openKeyboard(open) {\r\n if (open) {\r\n this.showKeyboard = true;\r\n this.element.classList.add(\"keyboard\");\r\n this.keyboard.focus();\r\n } else {\r\n this.showKeyboard = false;\r\n this.element.classList.remove(\"keyboard\");\r\n this.keyboard.blur();\r\n }\r\n }\r\n\r\n setCursorPos(x, y) {\r\n const rect = this.canvas.getBoundingClientRect();\r\n this.cursorPos = {\r\n x: rect.left + (rect.right - rect.left) * x / 640,\r\n y: rect.top + (rect.bottom - rect.top) * y / 480,\r\n };\r\n setTimeout(() => {\r\n this.game(\"DApi_Mouse\", 0, 0, 0, x, y);\r\n });\r\n }\r\n\r\n onProgress(progress) {\r\n this.setState({progress});\r\n }\r\n\r\n drawBelt(idx, slot) {\r\n if (!this.touchButtons[idx]) {\r\n return;\r\n }\r\n this.touchBelt[idx] = slot;\r\n if (slot >= 0) {\r\n this.touchButtons[idx].style.display = \"block\";\r\n this.touchCtx[idx].drawImage(this.canvas, 205 + 29 * slot, 357, 28, 28, 0, 0, 28, 28);\r\n } else {\r\n this.touchButtons[idx].style.display = \"none\";\r\n }\r\n }\r\n\r\n updateBelt(belt) {\r\n if (belt) {\r\n const used = new Set();\r\n let pos = 3;\r\n for (let i = 0; i < belt.length && pos < 6; ++i) {\r\n if (belt[i] >= 0 && !used.has(belt[i])) {\r\n this.drawBelt(pos++, i);\r\n used.add(belt[i]);\r\n }\r\n }\r\n for (; pos < 6; ++pos) {\r\n this.drawBelt(pos, -1);\r\n }\r\n } else {\r\n this.drawBelt(3, -1);\r\n this.drawBelt(4, -1);\r\n this.drawBelt(5, -1);\r\n }\r\n }\r\n\r\n start(file) {\r\n if (file && file.name.match(/\\.sv$/i)) {\r\n this.fs.then(fs => fs.upload(file)).then(console.log(`Updated ${file.name}`));\r\n return;\r\n }\r\n\r\n document.removeEventListener(\"drop\", this.onDrop, true);\r\n document.removeEventListener(\"dragover\", this.onDragOver, true);\r\n document.removeEventListener(\"dragenter\", this.onDragEnter, true);\r\n document.removeEventListener(\"dragleave\", this.onDragLeave, true);\r\n this.setState({dropping: 0});\r\n\r\n this.setState({loading: true});\r\n\r\n load_game(this, file).then(game => {\r\n this.game = game;\r\n\r\n document.addEventListener('mousemove', this.onMouseMove, true);\r\n document.addEventListener('mousedown', this.onMouseDown, true);\r\n document.addEventListener('mouseup', this.onMouseUp, true);\r\n document.addEventListener('keydown', this.onKeyDown, true);\r\n document.addEventListener('keyup', this.onKeyUp, true);\r\n document.addEventListener('contextmenu', this.onMenu, true);\r\n\r\n document.addEventListener('touchstart', this.onTouchStart, {passive: false, capture: true});\r\n document.addEventListener('touchmove', this.onTouchMove, {passive: false, capture: true});\r\n document.addEventListener('touchend', this.onTouchEnd, {passive: false, capture: true});\r\n\r\n document.addEventListener('pointerlockchange', this.onPointerLockChange);\r\n document.addEventListener('fullscreenchange', this.onFullscreenChange);\r\n window.addEventListener('resize', this.onResize);\r\n\r\n this.setState({started: true});\r\n }, e => this.onError(e.message, e.stack));\r\n }\r\n\r\n pointerLocked() {\r\n return document.pointerLockElement === this.canvas || document.mozPointerLockElement === this.canvas;\r\n }\r\n\r\n mousePos(e) {\r\n const rect = this.canvas.getBoundingClientRect();\r\n if (this.pointerLocked()) {\r\n this.cursorPos.x = Math.max(rect.left, Math.min(rect.right, this.cursorPos.x + e.movementX));\r\n this.cursorPos.y = Math.max(rect.top, Math.min(rect.bottom, this.cursorPos.y + e.movementY));\r\n } else {\r\n this.cursorPos = {x: e.clientX, y: e.clientY};\r\n }\r\n return {\r\n x: Math.max(0, Math.min(Math.round((this.cursorPos.x - rect.left) / (rect.right - rect.left) * 640), 639)),\r\n y: Math.max(0, Math.min(Math.round((this.cursorPos.y - rect.top) / (rect.bottom - rect.top) * 480), 479)),\r\n };\r\n }\r\n\r\n mouseButton(e) {\r\n switch (e.button) {\r\n case 0: return 1;\r\n case 1: return 4;\r\n case 2: return 2;\r\n case 3: return 5;\r\n case 4: return 6;\r\n default: return 1;\r\n }\r\n }\r\n eventMods(e) {\r\n return ((e.shiftKey || this.touchMods[TOUCH_SHIFT]) ? 1 : 0) + (e.ctrlKey ? 2 : 0) + (e.altKey ? 4 : 0) + (e.touches ? 8 : 0);\r\n }\r\n\r\n onResize = () => {\r\n document.exitPointerLock();\r\n }\r\n\r\n onPointerLockChange = () => {\r\n if (window.screen && window.innerHeight === window.screen.height && !this.pointerLocked()) {\r\n // assume that the user pressed escape\r\n this.game(\"DApi_Key\", 0, 0, 27);\r\n this.game(\"DApi_Key\", 1, 0, 27);\r\n }\r\n }\r\n\r\n onMouseMove = e => {\r\n if (!this.canvas) return;\r\n const {x, y} = this.mousePos(e);\r\n this.game(\"DApi_Mouse\", 0, 0, this.eventMods(e), x, y);\r\n e.preventDefault();\r\n }\r\n\r\n onMouseDown = e => {\r\n if (!this.canvas) return;\r\n const {x, y} = this.mousePos(e);\r\n if (window.screen && window.innerHeight === window.screen.height) {\r\n // we're in fullscreen, let's get pointer lock!\r\n if (!this.pointerLocked()) {\r\n this.canvas.requestPointerLock();\r\n }\r\n }\r\n this.game(\"DApi_Mouse\", 1, this.mouseButton(e), this.eventMods(e), x, y);\r\n e.preventDefault();\r\n }\r\n\r\n onMouseUp = e => {\r\n if (!this.canvas) return;\r\n const {x, y} = this.mousePos(e);\r\n this.game(\"DApi_Mouse\", 2, this.mouseButton(e), this.eventMods(e), x, y);\r\n e.preventDefault();\r\n }\r\n\r\n onKeyDown = e => {\r\n if (!this.canvas) return;\r\n this.game(\"DApi_Key\", 0, this.eventMods(e), e.keyCode);\r\n if (e.keyCode >= 32 && e.key.length === 1 && !this.showKeyboard) {\r\n this.game(\"DApi_Char\", e.key.charCodeAt(0));\r\n }\r\n this.clearKeySel();\r\n if (!this.showKeyboard) {\r\n if (e.keyCode === 8 || (e.keyCode >= 112 && e.keyCode <= 119)) {\r\n e.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n onMenu = e => {\r\n e.preventDefault();\r\n }\r\n\r\n onKeyUp = e => {\r\n if (!this.canvas) return;\r\n this.game(\"DApi_Key\", 1, this.eventMods(e), e.keyCode);\r\n this.clearKeySel();\r\n }\r\n\r\n clearKeySel() {\r\n if (this.showKeyboard) {\r\n const len = this.keyboard.value.length;\r\n this.keyboard.setSelectionRange(len, len);\r\n }\r\n }\r\n\r\n onKeyboard = () => {\r\n if (this.showKeyboard) {\r\n const text = this.keyboard.value;\r\n const valid = (text.match(/[\\x20-\\x7E]/g) || []).join(\"\").substring(0, 15);\r\n if (text !== valid) {\r\n this.keyboard.value = valid;\r\n }\r\n this.clearKeySel();\r\n const values = [...Array(15)].map((_, i) => i < valid.length ? valid.charCodeAt(i) : 0);\r\n this.game(\"DApi_SyncText\", ...values);\r\n }\r\n }\r\n\r\n parseFile = e => {\r\n const files = e.target.files;\r\n if (files.length > 0) {\r\n this.start(files[0]);\r\n }\r\n }\r\n\r\n touchButton = null;\r\n touchCanvas = null;\r\n\r\n onFullscreenChange = () => {\r\n this.setState({touch: (document.fullscreenElement === this.element)});\r\n }\r\n\r\n setTouchMod(index, value, use) {\r\n if (index < 3) {\r\n this.touchMods[index] = value;\r\n if (this.touchButtons[index]) {\r\n this.touchButtons[index].classList.toggle(\"active\", value);\r\n }\r\n } else if (use && this.touchBelt[index] >= 0) {\r\n const now = performance.now();\r\n if (!this.beltTime || now - this.beltTime > 750) {\r\n this.game(\"DApi_Char\", 49 + this.touchBelt[index]);\r\n this.beltTime = now;\r\n }\r\n }\r\n }\r\n\r\n updateTouchButton(touches, release) {\r\n let touchOther = null;\r\n const btn = this.touchButton;\r\n for (let {target, identifier, clientX, clientY} of touches) {\r\n if (btn && btn.id === identifier && this.touchButtons[btn.index] === target) {\r\n if (touches.length > 1) {\r\n btn.stick = false;\r\n }\r\n btn.clientX = clientX;\r\n btn.clientY = clientY;\r\n this.touchCanvas = [...touches].find(t => t.identifier !== identifier);\r\n if (this.touchCanvas) {\r\n this.touchCanvas = {clientX: this.touchCanvas.clientX, clientY: this.touchCanvas.clientY};\r\n }\r\n delete this.panPos;\r\n return this.touchCanvas != null;\r\n }\r\n const idx = this.touchButtons.indexOf(target);\r\n if (idx >= 0 && !touchOther) {\r\n touchOther = {id: identifier, index: idx, stick: true, original: this.touchMods[idx], clientX, clientY};\r\n }\r\n }\r\n if (btn && !touchOther && release && btn.stick) {\r\n const rect = this.touchButtons[btn.index].getBoundingClientRect();\r\n const {clientX, clientY} = btn;\r\n if (clientX >= rect.left && clientX < rect.right && clientY >= rect.top && clientY < rect.bottom) {\r\n this.setTouchMod(btn.index, !btn.original, true);\r\n } else {\r\n this.setTouchMod(btn.index, btn.original);\r\n }\r\n } else if (btn) {\r\n this.setTouchMod(btn.index, false);\r\n }\r\n this.touchButton = touchOther;\r\n if (touchOther) {\r\n this.setTouchMod(touchOther.index, true);\r\n if (touchOther.index === TOUCH_MOVE) {\r\n this.setTouchMod(TOUCH_RMB, false);\r\n } else if (touchOther.index === TOUCH_RMB) {\r\n this.setTouchMod(TOUCH_MOVE, false);\r\n }\r\n delete this.panPos;\r\n } else if (touches.length === 2) {\r\n const x = (touches[1].clientX + touches[0].clientX) / 2, y = (touches[1].clientY + touches[0].clientY) / 2;\r\n if (this.panPos) {\r\n const dx = x - this.panPos.x, dy = y - this.panPos.y;\r\n const step = this.canvas.offsetHeight / 12;\r\n if (Math.max(Math.abs(dx), Math.abs(dy)) > step) {\r\n let key;\r\n if (Math.abs(dx) > Math.abs(dy)) {\r\n key = (dx > 0 ? 0x25 : 0x27);\r\n } else {\r\n key = (dy > 0 ? 0x26 : 0x28);\r\n }\r\n this.game(\"DApi_Key\", 0, 0, key);\r\n // key up is ignored anyway\r\n this.panPos = {x, y};\r\n }\r\n } else {\r\n this.game(\"DApi_Mouse\", 0, 0, 24, 320, 180);\r\n this.game(\"DApi_Mouse\", 2, 1, 24, 320, 180);\r\n this.panPos = {x, y};\r\n }\r\n this.touchCanvas = null;\r\n return false;\r\n } else {\r\n delete this.panPos;\r\n }\r\n this.touchCanvas = [...touches].find(t => !touchOther || t.identifier !== touchOther.id);\r\n if (this.touchCanvas) {\r\n this.touchCanvas = {clientX: this.touchCanvas.clientX, clientY: this.touchCanvas.clientY};\r\n }\r\n return this.touchCanvas != null;\r\n }\r\n\r\n onTouchStart = e => {\r\n if (!this.canvas) return;\r\n e.preventDefault();\r\n if (this.updateTouchButton(e.touches, false)) {\r\n const {x, y} = this.mousePos(this.touchCanvas);\r\n this.game(\"DApi_Mouse\", 0, 0, this.eventMods(e), x, y);\r\n if (!this.touchMods[TOUCH_MOVE]) {\r\n this.game(\"DApi_Mouse\", 1, this.touchMods[TOUCH_RMB] ? 2 : 1, this.eventMods(e), x, y);\r\n }\r\n }\r\n }\r\n onTouchMove = e => {\r\n if (!this.canvas) return;\r\n e.preventDefault();\r\n if (this.updateTouchButton(e.touches, false)) {\r\n const {x, y} = this.mousePos(this.touchCanvas);\r\n this.game(\"DApi_Mouse\", 0, 0, this.eventMods(e), x, y);\r\n }\r\n }\r\n onTouchEnd = e => {\r\n if (!this.canvas) return;\r\n e.preventDefault();\r\n const prevTc = this.touchCanvas;\r\n this.updateTouchButton(e.touches, true);\r\n if (prevTc && !this.touchCanvas) {\r\n const {x, y} = this.mousePos(prevTc);\r\n this.game(\"DApi_Mouse\", 2, 1, this.eventMods(e), x, y);\r\n this.game(\"DApi_Mouse\", 2, 2, this.eventMods(e), x, y);\r\n\r\n if (this.touchMods[TOUCH_RMB] && (!this.touchButton || this.touchButton.index !== TOUCH_RMB)) {\r\n this.setTouchButton(TOUCH_RMB, false);\r\n }\r\n }\r\n if (!document.fullscreenElement) {\r\n this.element.requestFullscreen();\r\n }\r\n }\r\n\r\n setCanvas = e => this.canvas = e;\r\n setElement = e => this.element = e;\r\n setKeyboard = e => this.keyboard = e;\r\n setTouch_(i, e) {\r\n this.touchButtons[i] = e;\r\n }\r\n setTouchBelt_(i, e) {\r\n this.touchButtons[i] = e;\r\n if (e) {\r\n const canvas = document.createElement(\"canvas\");\r\n canvas.width = 28;\r\n canvas.height = 28;\r\n e.appendChild(canvas);\r\n this.touchCtx[i] = canvas.getContext(\"2d\");\r\n } else {\r\n this.touchCtx[i] = null;\r\n }\r\n }\r\n\r\n render() {\r\n const {started, loading, error, progress, dropping, touch, has_spawn} = this.state;\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {!error && }\r\n \r\n
\r\n
\r\n {!!error && (\r\n \r\n

The following error has occurred:

\r\n

{error.message}

\r\n

Click to go to GitHub issues

\r\n \r\n )}\r\n {!!loading && !started && !error && (\r\n
\r\n {(progress && progress.text) || 'Loading...'}\r\n {progress != null && !!progress.total && (\r\n \r\n )}\r\n
\r\n )}\r\n {!started && !loading && !error && (\r\n
\r\n

\r\n This is a web port of the original Diablo game, based on source code reconstructed by\r\n GalaXyHaXz and devilution team: https://github.com/diasurgical/devilution\r\n

\r\n

\r\n If you own the original game, you can drop the original DIABDAT.MPQ onto this page or click the button below to start playing.\r\n The game can be purchased from GoG.\r\n

\r\n {!has_spawn && (\r\n

\r\n Or you can play the shareware version for free (50MB download).\r\n

\r\n )}\r\n
\r\n \r\n \r\n
\r\n this.start()}>Play Shareware\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default App;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './reset.css';\r\nimport * as serviceWorker from './serviceWorker';\r\n\r\nimport App from './App';\r\n\r\nReactDOM.render(, document.getElementById('root'));\r\n\r\nserviceWorker.register();\r\n","import IdbKvStore from 'idb-kv-store';\r\n\r\nconst importStorage = () => new Promise((resolve, reject) => {\r\n let done = false;\r\n const frame = document.createElement('iframe');\r\n window.addEventListener('message', ({data}) => {\r\n if (data.method === 'storage' && !done) {\r\n done = true;\r\n resolve(data.files);\r\n frame.contentWindow.postMessage({method: 'clear'}, '*');\r\n }\r\n });\r\n frame.addEventListener('load', () => {\r\n frame.contentWindow.postMessage({method: 'transfer'}, '*');\r\n });\r\n frame.addEventListener('error', () => {\r\n if (!done) {\r\n done = true;\r\n resolve(null);\r\n }\r\n });\r\n frame.src = \"https://diablo.rivsoft.net/storage.html\";\r\n frame.style.display = \"none\";\r\n document.body.appendChild(frame);\r\n setTimeout(() => {\r\n if (!done) {\r\n done = true;\r\n resolve(null);\r\n }\r\n }, 10000);\r\n});\r\n\r\nasync function downloadFile(store, name) {\r\n const file = await store.get(name.toLowerCase());\r\n if (file) {\r\n const blob = new Blob([file], {type: 'binary/octet-stream'});\r\n const url = URL.createObjectURL(blob);\r\n const lnk = document.createElement('a');\r\n lnk.setAttribute('href', url);\r\n lnk.setAttribute('download', name);\r\n document.body.appendChild(lnk);\r\n lnk.click();\r\n document.body.removeChild(lnk);\r\n URL.revokeObjectURL(url);\r\n } else {\r\n console.error(`File ${name} does not exist`);\r\n }\r\n}\r\n\r\nasync function downloadSaves(store) {\r\n for (let name of await store.keys()) {\r\n if (name.match(/\\.sv$/i)) {\r\n downloadFile(store, name);\r\n }\r\n }\r\n}\r\n\r\nconst readFile = file => new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => resolve(reader.result);\r\n reader.onerror = () => reject(reader.error);\r\n reader.onabort = () => reject();\r\n reader.readAsArrayBuffer(file);\r\n});\r\nasync function uploadFile(store, files, file) {\r\n const data = new Uint8Array(await readFile(file));\r\n files.set(file.name.toLowerCase(), data);\r\n return store.set(file.name.toLowerCase(), data);\r\n}\r\n\r\nexport default async function create_fs(load) {\r\n try {\r\n const store = new IdbKvStore('diablo_fs');\r\n const files = new Map();\r\n for (let [name, data] of Object.entries(await store.json())) {\r\n files.set(name, data);\r\n }\r\n if (load) {\r\n const files = await importStorage();\r\n if (files) {\r\n for (let [name, data] of files) {\r\n files.set(name, data);\r\n store.set(name, data);\r\n }\r\n }\r\n }\r\n window.DownloadFile = name => downloadFile(store, name);\r\n window.DownloadSaves = () => downloadSaves(store);\r\n return {\r\n files,\r\n update: (name, data) => store.set(name, data),\r\n delete: name => store.remove(name),\r\n clear: () => store.clear(),\r\n upload: file => uploadFile(store, files, file),\r\n };\r\n } catch (e) {\r\n window.DownloadFile = () => console.error('IndexedDB is not supported');\r\n window.DownloadSaves = () => console.error('IndexedDB is not supported');\r\n return {\r\n files: new Map(),\r\n update: () => Promise.resolve(),\r\n delete: () => Promise.resolve(),\r\n clear: () => Promise.resolve(),\r\n upload: () => Promise.resolve(),\r\n };\r\n } \r\n}\r\n"],"sourceRoot":""} \ No newline at end of file diff --git a/static/media/Diablo.8cc190a9.wasm b/static/media/Diablo.8cc190a9.wasm new file mode 100644 index 0000000..18813e5 Binary files /dev/null and b/static/media/Diablo.8cc190a9.wasm differ diff --git a/static/media/Diablo.ca302877.wasm b/static/media/Diablo.ca302877.wasm deleted file mode 100644 index c36bb5d..0000000 Binary files a/static/media/Diablo.ca302877.wasm and /dev/null differ diff --git a/static/media/DiabloSpawn.1a7b93b3.wasm b/static/media/DiabloSpawn.1a7b93b3.wasm deleted file mode 100644 index 2d82b35..0000000 Binary files a/static/media/DiabloSpawn.1a7b93b3.wasm and /dev/null differ diff --git a/static/media/DiabloSpawn.8210d404.wasm b/static/media/DiabloSpawn.8210d404.wasm new file mode 100644 index 0000000..c45ce67 Binary files /dev/null and b/static/media/DiabloSpawn.8210d404.wasm differ