@cesdk/cesdk-js 1.5.0-alpha.0 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/.browserslistrc +4 -4
  2. package/ThirdPartyLicenses.md +59 -256
  3. package/assets/core/cesdk.wasm +0 -0
  4. package/assets/extensions/ly.img.cesdk.fonts/fonts/imgly_font_kumar_one_outline.otf +0 -0
  5. package/assets/extensions/ly.img.cesdk.fonts/manifest.json +1 -1
  6. package/assets/extensions/ly.img.cesdk.vectorpaths.abstract/manifest.json +199 -0
  7. package/assets/extensions/ly.img.cesdk.vectorpaths.abstract/thumbnails/frame.png +0 -0
  8. package/assets/extensions/ly.img.cesdk.vectorpaths.abstract/thumbnails/halfcircle.png +0 -0
  9. package/assets/extensions/ly.img.cesdk.vectorpaths.abstract/thumbnails/organic1.png +0 -0
  10. package/assets/extensions/ly.img.cesdk.vectorpaths.abstract/thumbnails/organic2.png +0 -0
  11. package/assets/extensions/ly.img.cesdk.vectorpaths.abstract/thumbnails/organic3.png +0 -0
  12. package/assets/extensions/ly.img.cesdk.vectorpaths.abstract/thumbnails/organic4.png +0 -0
  13. package/assets/extensions/ly.img.cesdk.vectorpaths.abstract/thumbnails/organicdot1.png +0 -0
  14. package/assets/extensions/ly.img.cesdk.vectorpaths.abstract/thumbnails/organicdot2.png +0 -0
  15. package/assets/extensions/ly.img.cesdk.vectorpaths.abstract/thumbnails/quartercircle-outline.png +0 -0
  16. package/assets/extensions/ly.img.cesdk.vectorpaths.abstract/thumbnails/quartercircle.png +0 -0
  17. package/assets/extensions/ly.img.cesdk.vectorpaths.abstract/thumbnails/rectanglemask.png +0 -0
  18. package/assets/extensions/ly.img.cesdk.vectorpaths.abstract/thumbnails/roundmask.png +0 -0
  19. package/assets/extensions/ly.img.cesdk.vectorpaths.abstract/thumbnails/splash1.png +0 -0
  20. package/assets/extensions/ly.img.cesdk.vectorpaths.abstract/thumbnails/splash2.png +0 -0
  21. package/assets/extensions/ly.img.cesdk.vectorpaths.abstract/thumbnails/splash3.png +0 -0
  22. package/assets/extensions/ly.img.cesdk.vectorpaths.abstract/thumbnails/splash4.png +0 -0
  23. package/assets/extensions/ly.img.cesdk.vectorpaths.abstract/thumbnails/wiggle.png +0 -0
  24. package/assets/extensions/ly.img.cesdk.vectorpaths.abstract/thumbnails/ziczac.png +0 -0
  25. package/assets/i18n/de.json +77 -10
  26. package/assets/i18n/en.json +93 -26
  27. package/assets/ui/stylesheets/cesdk.css +39 -40
  28. package/cesdk-engine.umd.d.ts +1499 -41
  29. package/cesdk-engine.umd.js +1 -2
  30. package/cesdk.umd.js +1 -1
  31. package/index.d.ts +1804 -0
  32. package/index.html +0 -1
  33. package/package.json +2 -2
  34. package/BlockAPI.d.ts +0 -792
  35. package/EventAPI.d.ts +0 -19
  36. package/SceneAPI.d.ts +0 -52
  37. package/VariableAPI.d.ts +0 -27
  38. package/api.d.ts +0 -14
  39. package/assets/core/cesdk.js +0 -1
  40. package/assets/extensions/ch.post.fonts/README.md +0 -3
  41. package/assets/extensions/ch.post.fonts/fonts/imgly_font_intro_black.otf +0 -0
  42. package/assets/extensions/ch.post.fonts/fonts/imgly_font_intro_medium.otf +0 -0
  43. package/assets/extensions/ch.post.fonts/fonts/imgly_font_madelyn_regular.otf +0 -0
  44. package/assets/extensions/ch.post.fonts/fonts/imgly_font_mixa_extra_bold.otf +0 -0
  45. package/assets/extensions/ch.post.fonts/fonts/imgly_font_sensa_brush_fill.otf +0 -0
  46. package/assets/extensions/ch.post.fonts/manifest.json +0 -42
  47. package/assets/extensions/ch.post.fonts/preview.png +0 -0
  48. package/assets/extensions/ly.img.cesdk.fonts/fonts/imgly_font_kumar_one_outline.ttf +0 -0
  49. package/types.d.ts +0 -759
@@ -1 +0,0 @@
1
- var CESDK=function(){var e="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0;return function(t){var r,n,o=void 0!==(t=t||{})?t:{};o.ready=new Promise((function(e,t){r=e,n=t})),Object.getOwnPropertyDescriptor(o.ready,"_main")||(Object.defineProperty(o.ready,"_main",{configurable:!0,get:function(){Ne("You are getting _main on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(o.ready,"_main",{configurable:!0,set:function(){Ne("You are setting _main on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(o.ready,"_emscripten_stack_get_end")||(Object.defineProperty(o.ready,"_emscripten_stack_get_end",{configurable:!0,get:function(){Ne("You are getting _emscripten_stack_get_end on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(o.ready,"_emscripten_stack_get_end",{configurable:!0,set:function(){Ne("You are setting _emscripten_stack_get_end on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(o.ready,"_emscripten_stack_get_free")||(Object.defineProperty(o.ready,"_emscripten_stack_get_free",{configurable:!0,get:function(){Ne("You are getting _emscripten_stack_get_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(o.ready,"_emscripten_stack_get_free",{configurable:!0,set:function(){Ne("You are setting _emscripten_stack_get_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(o.ready,"_emscripten_stack_init")||(Object.defineProperty(o.ready,"_emscripten_stack_init",{configurable:!0,get:function(){Ne("You are getting _emscripten_stack_init on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(o.ready,"_emscripten_stack_init",{configurable:!0,set:function(){Ne("You are setting _emscripten_stack_init on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(o.ready,"_stackSave")||(Object.defineProperty(o.ready,"_stackSave",{configurable:!0,get:function(){Ne("You are getting _stackSave on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(o.ready,"_stackSave",{configurable:!0,set:function(){Ne("You are setting _stackSave on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(o.ready,"_stackRestore")||(Object.defineProperty(o.ready,"_stackRestore",{configurable:!0,get:function(){Ne("You are getting _stackRestore on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(o.ready,"_stackRestore",{configurable:!0,set:function(){Ne("You are setting _stackRestore on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(o.ready,"_stackAlloc")||(Object.defineProperty(o.ready,"_stackAlloc",{configurable:!0,get:function(){Ne("You are getting _stackAlloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(o.ready,"_stackAlloc",{configurable:!0,set:function(){Ne("You are setting _stackAlloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(o.ready,"___wasm_call_ctors")||(Object.defineProperty(o.ready,"___wasm_call_ctors",{configurable:!0,get:function(){Ne("You are getting ___wasm_call_ctors on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(o.ready,"___wasm_call_ctors",{configurable:!0,set:function(){Ne("You are setting ___wasm_call_ctors on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(o.ready,"_fflush")||(Object.defineProperty(o.ready,"_fflush",{configurable:!0,get:function(){Ne("You are getting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(o.ready,"_fflush",{configurable:!0,set:function(){Ne("You are setting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(o.ready,"___errno_location")||(Object.defineProperty(o.ready,"___errno_location",{configurable:!0,get:function(){Ne("You are getting ___errno_location on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(o.ready,"___errno_location",{configurable:!0,set:function(){Ne("You are setting ___errno_location on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(o.ready,"_malloc")||(Object.defineProperty(o.ready,"_malloc",{configurable:!0,get:function(){Ne("You are getting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(o.ready,"_malloc",{configurable:!0,set:function(){Ne("You are setting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(o.ready,"_free")||(Object.defineProperty(o.ready,"_free",{configurable:!0,get:function(){Ne("You are getting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(o.ready,"_free",{configurable:!0,set:function(){Ne("You are setting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(o.ready,"___dl_seterr")||(Object.defineProperty(o.ready,"___dl_seterr",{configurable:!0,get:function(){Ne("You are getting ___dl_seterr on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(o.ready,"___dl_seterr",{configurable:!0,set:function(){Ne("You are setting ___dl_seterr on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(o.ready,"_emscripten_webgl_make_context_current")||(Object.defineProperty(o.ready,"_emscripten_webgl_make_context_current",{configurable:!0,get:function(){Ne("You are getting _emscripten_webgl_make_context_current on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(o.ready,"_emscripten_webgl_make_context_current",{configurable:!0,set:function(){Ne("You are setting _emscripten_webgl_make_context_current on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(o.ready,"_emscripten_webgl_get_current_context")||(Object.defineProperty(o.ready,"_emscripten_webgl_get_current_context",{configurable:!0,get:function(){Ne("You are getting _emscripten_webgl_get_current_context on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(o.ready,"_emscripten_webgl_get_current_context",{configurable:!0,set:function(){Ne("You are setting _emscripten_webgl_get_current_context on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(o.ready,"_saveSetjmp")||(Object.defineProperty(o.ready,"_saveSetjmp",{configurable:!0,get:function(){Ne("You are getting _saveSetjmp on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(o.ready,"_saveSetjmp",{configurable:!0,set:function(){Ne("You are setting _saveSetjmp on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(o.ready,"_setThrew")||(Object.defineProperty(o.ready,"_setThrew",{configurable:!0,get:function(){Ne("You are getting _setThrew on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(o.ready,"_setThrew",{configurable:!0,set:function(){Ne("You are setting _setThrew on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(o.ready,"_memalign")||(Object.defineProperty(o.ready,"_memalign",{configurable:!0,get:function(){Ne("You are getting _memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(o.ready,"_memalign",{configurable:!0,set:function(){Ne("You are setting _memalign on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(o.ready,"_emscripten_main_thread_process_queued_calls")||(Object.defineProperty(o.ready,"_emscripten_main_thread_process_queued_calls",{configurable:!0,get:function(){Ne("You are getting _emscripten_main_thread_process_queued_calls on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(o.ready,"_emscripten_main_thread_process_queued_calls",{configurable:!0,set:function(){Ne("You are setting _emscripten_main_thread_process_queued_calls on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(o.ready,"___getTypeName")||(Object.defineProperty(o.ready,"___getTypeName",{configurable:!0,get:function(){Ne("You are getting ___getTypeName on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(o.ready,"___getTypeName",{configurable:!0,set:function(){Ne("You are setting ___getTypeName on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(o.ready,"___embind_register_native_and_builtin_types")||(Object.defineProperty(o.ready,"___embind_register_native_and_builtin_types",{configurable:!0,get:function(){Ne("You are getting ___embind_register_native_and_builtin_types on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(o.ready,"___embind_register_native_and_builtin_types",{configurable:!0,set:function(){Ne("You are setting ___embind_register_native_and_builtin_types on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(o.ready,"onRuntimeInitialized")||(Object.defineProperty(o.ready,"onRuntimeInitialized",{configurable:!0,get:function(){Ne("You are getting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(o.ready,"onRuntimeInitialized",{configurable:!0,set:function(){Ne("You are setting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),o.expectedDataFileDownloads||(o.expectedDataFileDownloads=0),o.expectedDataFileDownloads++,function(e){"object"==typeof window?window.encodeURIComponent(window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/"):"undefined"==typeof process&&"undefined"!=typeof location&&encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/");var t="cesdk.data";"function"!=typeof o.locateFilePackage||o.locateFile||(o.locateFile=o.locateFilePackage,T("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)"));var r,n,i,a,s=o.locateFile?o.locateFile(t,""):t,c=e.remote_package_size,u=null,d=o.getPreloadedPackage?o.getPreloadedPackage(s,c):null;function l(){function t(e,t){if(!e)throw t+(new Error).stack}function r(e,t,r){this.start=e,this.end=t,this.audio=r}o.FS_createPath("/","ly.img.cesdk",!0,!0),o.FS_createPath("/ly.img.cesdk","images",!0,!0),o.FS_createPath("/ly.img.cesdk","shaders",!0,!0),o.FS_createPath("/ly.img.cesdk/shaders","common",!0,!0),o.FS_createPath("/ly.img.cesdk","presets",!0,!0),o.FS_createPath("/ly.img.cesdk","fonts",!0,!0),r.prototype={requests:{},open:function(e,t){this.name=t,this.requests[t]=this,o.addRunDependency("fp "+this.name)},send:function(){},onload:function(){var e=this.byteArray.subarray(this.start,this.end);this.finish(e)},finish:function(e){o.FS_createDataFile(this.name,null,e,!0,!0,!0),o.removeRunDependency("fp "+this.name),this.requests[this.name]=null}};for(var n=e.files,i=0;i<n.length;++i)new r(n[i].start,n[i].end,n[i].audio||0).open("GET",n[i].filename);function a(n){t(n,"Loading data file failed."),t(n instanceof ArrayBuffer,"bad input to processPackageData");var i=new Uint8Array(n);r.prototype.byteArray=i;for(var a=e.files,s=0;s<a.length;++s)r.prototype.requests[a[s].filename].onload();o.removeRunDependency("datafile_cesdk.data")}o.addRunDependency("datafile_cesdk.data"),o.preloadResults||(o.preloadResults={}),o.preloadResults["cesdk.data"]={fromCache:!1},d?(a(d),d=null):u=a}d||(r=s,n=c,i=function(e){u?(u(e),u=null):d=e},(a=new XMLHttpRequest).open("GET",r,!0),a.responseType="arraybuffer",a.onprogress=function(e){var t=r,i=n;if(e.total&&(i=e.total),e.loaded){a.addedTotal?o.dataFileDownloads[t].loaded=e.loaded:(a.addedTotal=!0,o.dataFileDownloads||(o.dataFileDownloads={}),o.dataFileDownloads[t]={loaded:e.loaded,total:i});var s=0,c=0,u=0;for(var d in o.dataFileDownloads){var l=o.dataFileDownloads[d];s+=l.total,c+=l.loaded,u++}s=Math.ceil(s*o.expectedDataFileDownloads/u),o.setStatus&&o.setStatus("Downloading data... ("+c+"/"+s+")")}else o.dataFileDownloads||o.setStatus&&o.setStatus("Downloading data...")},a.onerror=function(e){throw new Error("NetworkError for: "+r)},a.onload=function(e){if(!(200==a.status||304==a.status||206==a.status||0==a.status&&a.response))throw new Error(a.statusText+" : "+a.responseURL);var t=a.response;i(t)},a.send(null)),o.calledRun?l():(o.preRun||(o.preRun=[]),o.preRun.push(l))}({files:[{filename:"/ly.img.cesdk/.DS_Store",start:0,end:6148},{filename:"/ly.img.cesdk/images/watermark.png",start:6148,end:96295},{filename:"/ly.img.cesdk/shaders/liquid.sksl",start:96295,end:98905},{filename:"/ly.img.cesdk/shaders/mirror.sksl",start:98905,end:99359},{filename:"/ly.img.cesdk/shaders/outliner.sksl",start:99359,end:100996},{filename:"/ly.img.cesdk/shaders/tv_glitch.sksl",start:100996,end:103933},{filename:"/ly.img.cesdk/shaders/mask_color.sksl",start:103933,end:104435},{filename:"/ly.img.cesdk/shaders/lut_filter.sksl",start:104435,end:107298},{filename:"/ly.img.cesdk/shaders/vignette.sksl",start:107298,end:107670},{filename:"/ly.img.cesdk/shaders/sharpie.sksl",start:107670,end:109975},{filename:"/ly.img.cesdk/shaders/hsp_selective_adjustments.sksl",start:109975,end:123575},{filename:"/ly.img.cesdk/shaders/half_tone.sksl",start:123575,end:124069},{filename:"/ly.img.cesdk/shaders/tiltshift.sksl",start:124069,end:124701},{filename:"/ly.img.cesdk/shaders/pixelize.sksl",start:124701,end:125001},{filename:"/ly.img.cesdk/shaders/linocut.sksl",start:125001,end:125786},{filename:"/ly.img.cesdk/shaders/glow.sksl",start:125786,end:126753},{filename:"/ly.img.cesdk/shaders/radial_pixel.sksl",start:126753,end:127316},{filename:"/ly.img.cesdk/shaders/black_and_white_color_mixer.sksl",start:127316,end:133633},{filename:"/ly.img.cesdk/shaders/shifter.sksl",start:133633,end:134317},{filename:"/ly.img.cesdk/shaders/posterize.sksl",start:134317,end:134529},{filename:"/ly.img.cesdk/shaders/dot_pattern.sksl",start:134529,end:135044},{filename:"/ly.img.cesdk/shaders/adjustments.sksl",start:135044,end:138933},{filename:"/ly.img.cesdk/shaders/extrude_blur.sksl",start:138933,end:141050},{filename:"/ly.img.cesdk/shaders/duotone_filter.sksl",start:141050,end:142014},{filename:"/ly.img.cesdk/shaders/cross_cut.sksl",start:142014,end:142841},{filename:"/ly.img.cesdk/shaders/placeholder_overlay_lines.sksl",start:142841,end:143422},{filename:"/ly.img.cesdk/shaders/common/ubq_constants.sksl",start:143422,end:143912},{filename:"/ly.img.cesdk/shaders/common/ubq_adjustments.sksl",start:143912,end:148475},{filename:"/ly.img.cesdk/shaders/common/ubq_color_conversions.sksl",start:148475,end:158460},{filename:"/ly.img.cesdk/shaders/common/ubq_hue_constants.sksl",start:158460,end:161627},{filename:"/ly.img.cesdk/presets/.keep",start:161627,end:161627},{filename:"/ly.img.cesdk/fonts/imgly_font_inter_semibold.otf",start:161627,end:432387}],remote_package_size:432387,package_uuid:"dce9b362-3655-41d6-a879-93fa46750d1d"});var i=o.preRun.slice();"object"==typeof window&&"object"==typeof window.performance?o.performance=performance:"object"==typeof global&&"object"==typeof global.perf_hooks&&"object"==typeof global.perf_hooks.performance?o.performance=global.perf_hooks.performance:o.performance={mark:function(){},measure:function(){}},o.emscripten_ubq_asyncFetchStates=new Map,o.emscripten_ubq_asyncFetchCompletedBytes=new Map,o.emscripten_ubq_asyncFetchTotalBytes=new Map,o.emscripten_ubq_asyncFetchHeaders=new Map,o.emscripten_ubq_asyncFetchNextHandle=0,o.emscripten_ubq_asyncFetchNextHeaderHandle=0;const a={PENDING:0,FINISHED:1,ALLOCATED:2,ERROR:3},s=["GET","POST"];if(!o.preRun)throw"Module.preRun should exist because file support used it; did a pre-js delete it?";i.forEach((function(e){if(o.preRun.indexOf(e)<0)throw"All preRun tasks that exist before user pre-js code should remain after; did you replace Module or modify Module.preRun?"}));var c,u={};for(c in o)o.hasOwnProperty(c)&&(u[c]=o[c]);var d=[],l="./this.program",f=function(e,t){throw t},p=!0,m=!1,g=!1,E=!1;if(o.ENVIRONMENT)throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -s ENVIRONMENT=web or -s ENVIRONMENT=node)");var h,_,y,v="";function w(e){return o.locateFile?o.locateFile(e,v):v+e}function b(e){if(!(e instanceof Vl)){var t=e;e&&"object"==typeof e&&e.stack&&(t=[e,e.stack]),T("exiting due to exception: "+t)}}if(E){if("object"==typeof process&&"function"==typeof require||"object"==typeof window||"function"==typeof importScripts)throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");"undefined"!=typeof read&&(h=function(e){return read(e)}),y=function(e){var t;return"function"==typeof readbuffer?new Uint8Array(readbuffer(e)):(C("object"==typeof(t=read(e,"binary"))),t)},_=function(e,t,r){setTimeout((function(){t(y(e))}),0)},"undefined"!=typeof scriptArgs?d=scriptArgs:void 0!==arguments&&(d=arguments),"function"==typeof quit&&(f=function(e,t){b(t),quit(e)}),"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print)}else{if(!p&&!m)throw new Error("environment detection error");if(m?v=self.location.href:"undefined"!=typeof document&&document.currentScript&&(v=document.currentScript.src),e&&(v=e),v=0!==v.indexOf("blob:")?v.substr(0,v.replace(/[?#].*/,"").lastIndexOf("/")+1):"","object"!=typeof window&&"function"!=typeof importScripts)throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");h=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},m&&(y=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),_=function(e,t,r){var n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType="arraybuffer",n.onload=function(){200==n.status||0==n.status&&n.response?t(n.response):r()},n.onerror=r,n.send(null)}}var O=o.print||console.log.bind(console),T=o.printErr||console.warn.bind(console);for(c in u)u.hasOwnProperty(c)&&(o[c]=u[c]);function D(e){D.shown||(D.shown={}),D.shown[e]||(D.shown[e]=1,T(e))}u=null,o.arguments&&(d=o.arguments),Object.getOwnPropertyDescriptor(o,"arguments")||Object.defineProperty(o,"arguments",{configurable:!0,get:function(){Ne("Module.arguments has been replaced with plain arguments_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),o.thisProgram&&(l=o.thisProgram),Object.getOwnPropertyDescriptor(o,"thisProgram")||Object.defineProperty(o,"thisProgram",{configurable:!0,get:function(){Ne("Module.thisProgram has been replaced with plain thisProgram (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),o.quit&&(f=o.quit),Object.getOwnPropertyDescriptor(o,"quit")||Object.defineProperty(o,"quit",{configurable:!0,get:function(){Ne("Module.quit has been replaced with plain quit_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),C(void 0===o.memoryInitializerPrefixURL,"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),C(void 0===o.pthreadMainPrefixURL,"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),C(void 0===o.cdInitializerPrefixURL,"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),C(void 0===o.filePackagePrefixURL,"Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),C(void 0===o.read,"Module.read option was removed (modify read_ in JS)"),C(void 0===o.readAsync,"Module.readAsync option was removed (modify readAsync in JS)"),C(void 0===o.readBinary,"Module.readBinary option was removed (modify readBinary in JS)"),C(void 0===o.setWindowTitle,"Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),C(void 0===o.TOTAL_MEMORY,"Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"),Object.getOwnPropertyDescriptor(o,"read")||Object.defineProperty(o,"read",{configurable:!0,get:function(){Ne("Module.read has been replaced with plain read_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Object.getOwnPropertyDescriptor(o,"readAsync")||Object.defineProperty(o,"readAsync",{configurable:!0,get:function(){Ne("Module.readAsync has been replaced with plain readAsync (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Object.getOwnPropertyDescriptor(o,"readBinary")||Object.defineProperty(o,"readBinary",{configurable:!0,get:function(){Ne("Module.readBinary has been replaced with plain readBinary (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Object.getOwnPropertyDescriptor(o,"setWindowTitle")||Object.defineProperty(o,"setWindowTitle",{configurable:!0,get:function(){Ne("Module.setWindowTitle has been replaced with plain setWindowTitle (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),C(!m,"worker environment detected but not enabled at build time. Add 'worker' to `-s ENVIRONMENT` to enable."),C(!g,"node environment detected but not enabled at build time. Add 'node' to `-s ENVIRONMENT` to enable."),C(!E,"shell environment detected but not enabled at build time. Add 'shell' to `-s ENVIRONMENT` to enable.");var P,M=0,R=function(e){M=e},S=function(){return M};o.wasmBinary&&(P=o.wasmBinary),Object.getOwnPropertyDescriptor(o,"wasmBinary")||Object.defineProperty(o,"wasmBinary",{configurable:!0,get:function(){Ne("Module.wasmBinary has been replaced with plain wasmBinary (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}});var x,A=o.noExitRuntime||!0;function F(e,t,r){switch("*"===(t=t||"i8").charAt(t.length-1)&&(t="i32"),t){case"i1":case"i8":return B[e>>0];case"i16":return W[e>>1];case"i32":case"i64":return q[e>>2];case"float":return Y[e>>2];case"double":return Number($[e>>3]);default:Ne("invalid type for getValue: "+t)}return null}Object.getOwnPropertyDescriptor(o,"noExitRuntime")||Object.defineProperty(o,"noExitRuntime",{configurable:!0,get:function(){Ne("Module.noExitRuntime has been replaced with plain noExitRuntime (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),"object"!=typeof WebAssembly&&Ne("no native wasm support detected");var k,I=!1;function C(e,t){e||Ne("Assertion failed: "+t)}var j="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function U(e,t,r){for(var n=t+r,o=t;e[o]&&!(o>=n);)++o;if(o-t>16&&e.subarray&&j)return j.decode(e.subarray(t,o));for(var i="";t<o;){var a=e[t++];if(128&a){var s=63&e[t++];if(192!=(224&a)){var c=63&e[t++];if(224==(240&a)?a=(15&a)<<12|s<<6|c:(240!=(248&a)&&D("Invalid UTF-8 leading byte 0x"+a.toString(16)+" encountered when deserializing a UTF-8 string in wasm memory to a JS string!"),a=(7&a)<<18|s<<12|c<<6|63&e[t++]),a<65536)i+=String.fromCharCode(a);else{var u=a-65536;i+=String.fromCharCode(55296|u>>10,56320|1023&u)}}else i+=String.fromCharCode((31&a)<<6|s)}else i+=String.fromCharCode(a)}return i}function N(e,t){return e?U(G,e,t):""}function L(e,t,r,n){if(!(n>0))return 0;for(var o=r,i=r+n-1,a=0;a<e.length;++a){var s=e.charCodeAt(a);if(s>=55296&&s<=57343&&(s=65536+((1023&s)<<10)|1023&e.charCodeAt(++a)),s<=127){if(r>=i)break;t[r++]=s}else if(s<=2047){if(r+1>=i)break;t[r++]=192|s>>6,t[r++]=128|63&s}else if(s<=65535){if(r+2>=i)break;t[r++]=224|s>>12,t[r++]=128|s>>6&63,t[r++]=128|63&s}else{if(r+3>=i)break;s>1114111&&D("Invalid Unicode code point 0x"+s.toString(16)+" encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF)."),t[r++]=240|s>>18,t[r++]=128|s>>12&63,t[r++]=128|s>>6&63,t[r++]=128|63&s}}return t[r]=0,r-o}function H(e,t,r){return C("number"==typeof r,"stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),L(e,G,t,r)}function X(e){for(var t=0,r=0;r<e.length;++r){var n=e.charCodeAt(r);n>=55296&&n<=57343&&(n=65536+((1023&n)<<10)|1023&e.charCodeAt(++r)),n<=127?++t:t+=n<=2047?2:n<=65535?3:4}return t}var Q,B,G,W,V,q,z,Y,$,Z="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function K(e,t){C(e%2==0,"Pointer passed to UTF16ToString must be aligned to two bytes!");for(var r=e,n=r>>1,o=n+t/2;!(n>=o)&&V[n];)++n;if((r=n<<1)-e>32&&Z)return Z.decode(G.subarray(e,r));for(var i="",a=0;!(a>=t/2);++a){var s=W[e+2*a>>1];if(0==s)break;i+=String.fromCharCode(s)}return i}function J(e,t,r){if(C(t%2==0,"Pointer passed to stringToUTF16 must be aligned to two bytes!"),C("number"==typeof r,"stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),void 0===r&&(r=2147483647),r<2)return 0;for(var n=t,o=(r-=2)<2*e.length?r/2:e.length,i=0;i<o;++i){var a=e.charCodeAt(i);W[t>>1]=a,t+=2}return W[t>>1]=0,t-n}function ee(e){return 2*e.length}function te(e,t){C(e%4==0,"Pointer passed to UTF32ToString must be aligned to four bytes!");for(var r=0,n="";!(r>=t/4);){var o=q[e+4*r>>2];if(0==o)break;if(++r,o>=65536){var i=o-65536;n+=String.fromCharCode(55296|i>>10,56320|1023&i)}else n+=String.fromCharCode(o)}return n}function re(e,t,r){if(C(t%4==0,"Pointer passed to stringToUTF32 must be aligned to four bytes!"),C("number"==typeof r,"stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),void 0===r&&(r=2147483647),r<4)return 0;for(var n=t,o=n+r-4,i=0;i<e.length;++i){var a=e.charCodeAt(i);if(a>=55296&&a<=57343&&(a=65536+((1023&a)<<10)|1023&e.charCodeAt(++i)),q[t>>2]=a,(t+=4)+4>o)break}return q[t>>2]=0,t-n}function ne(e){for(var t=0,r=0;r<e.length;++r){var n=e.charCodeAt(r);n>=55296&&n<=57343&&++r,t+=4}return t}function oe(e){var t=X(e)+1,r=Ml(t);return L(e,B,r,t),r}function ie(e,t){C(e.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),B.set(e,t)}function ae(e,t,r){for(var n=0;n<e.length;++n)C(e.charCodeAt(n)===(255&e.charCodeAt(n))),B[t++>>0]=e.charCodeAt(n);r||(B[t>>0]=0)}function se(e,t){return e%t>0&&(e+=t-e%t),e}function ce(e){Q=e,o.HEAP8=B=new Int8Array(e),o.HEAP16=W=new Int16Array(e),o.HEAP32=q=new Int32Array(e),o.HEAPU8=G=new Uint8Array(e),o.HEAPU16=V=new Uint16Array(e),o.HEAPU32=z=new Uint32Array(e),o.HEAPF32=Y=new Float32Array(e),o.HEAPF64=$=new Float64Array(e)}var ue=5242880;o.TOTAL_STACK&&C(ue===o.TOTAL_STACK,"the stack size can no longer be determined at runtime");var de,le=o.INITIAL_MEMORY||268435456;function fe(){var e=Sl();C(0==(3&e)),q[e+4>>2]=34821223,q[e+8>>2]=2310721022,q[0]=1668509029}function pe(){if(!I){var e=Sl(),t=z[e+4>>2],r=z[e+8>>2];34821223==t&&2310721022==r||Ne("Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x2135467, but received 0x"+r.toString(16)+" "+t.toString(16)),1668509029!==q[0]&&Ne("Runtime error: The application has corrupted its heap memory area (address zero)!")}}Object.getOwnPropertyDescriptor(o,"INITIAL_MEMORY")||Object.defineProperty(o,"INITIAL_MEMORY",{configurable:!0,get:function(){Ne("Module.INITIAL_MEMORY has been replaced with plain INITIAL_MEMORY (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),C(le>=ue,"INITIAL_MEMORY should be larger than TOTAL_STACK, was "+le+"! (TOTAL_STACK="+ue+")"),C("undefined"!=typeof Int32Array&&"undefined"!=typeof Float64Array&&void 0!==Int32Array.prototype.subarray&&void 0!==Int32Array.prototype.set,"JS engine does not provide full typed array support"),C(!o.wasmMemory,"Use of `wasmMemory` detected. Use -s IMPORTED_MEMORY to define wasmMemory externally"),C(268435456==le,"Detected runtime INITIAL_MEMORY setting. Use -s IMPORTED_MEMORY to define wasmMemory dynamically"),function(){var e=new Int16Array(1),t=new Int8Array(e.buffer);if(e[0]=25459,115!==t[0]||99!==t[1])throw"Runtime error: expected the system to be little-endian! (Run with -s SUPPORT_BIG_ENDIAN=1 to bypass)"}();var me=[],ge=[],Ee=[],he=[],_e=[],ye=!1,ve=!1,we=0;function be(){return A||we>0}function Oe(){if(o.preRun)for("function"==typeof o.preRun&&(o.preRun=[o.preRun]);o.preRun.length;)Re(o.preRun.shift());Ye(me)}function Te(){pe(),C(!ye),ye=!0,o.noFSInit||_t.init.initialized||_t.init(),_t.ignorePermissions=!1,dt.init(),Ye(ge)}function De(){pe(),Ye(Ee)}function Pe(){pe(),ve=!0}function Me(){if(pe(),o.postRun)for("function"==typeof o.postRun&&(o.postRun=[o.postRun]);o.postRun.length;)xe(o.postRun.shift());Ye(_e)}function Re(e){me.unshift(e)}function Se(e){ge.unshift(e)}function xe(e){_e.unshift(e)}C(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),C(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),C(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),C(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");var Ae=0,Fe=null,ke=null,Ie={};function Ce(e){for(var t=e;;){if(!Ie[e])return e;e=t+Math.random()}}function je(e){Ae++,o.monitorRunDependencies&&o.monitorRunDependencies(Ae),e?(C(!Ie[e]),Ie[e]=1,null===Fe&&"undefined"!=typeof setInterval&&(Fe=setInterval((function(){if(I)return clearInterval(Fe),void(Fe=null);var e=!1;for(var t in Ie)e||(e=!0,T("still waiting on run dependencies:")),T("dependency: "+t);e&&T("(end of list)")}),1e4))):T("warning: run dependency added without ID")}function Ue(e){if(Ae--,o.monitorRunDependencies&&o.monitorRunDependencies(Ae),e?(C(Ie[e]),delete Ie[e]):T("warning: run dependency removed without ID"),0==Ae&&(null!==Fe&&(clearInterval(Fe),Fe=null),ke)){var t=ke;ke=null,t()}}function Ne(e){o.onAbort&&o.onAbort(e),T(e="Aborted("+e+")"),I=!0,k=1;var t=new WebAssembly.RuntimeError(e);throw n(t),t}o.preloadedImages={},o.preloadedAudios={};var Le,He,Xe,Qe="data:application/octet-stream;base64,";function Be(e){return e.startsWith(Qe)}function Ge(e){return e.startsWith("file://")}function We(e,t){return function(){var r=e,n=t;return t||(n=o.asm),C(ye,"native function `"+r+"` called before runtime initialization"),C(!ve,"native function `"+r+"` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),n[e]||C(n[e],"exported native function `"+r+"` not found"),n[e].apply(null,arguments)}}function Ve(e){try{if(e==Le&&P)return new Uint8Array(P);if(y)return y(e);throw"both async and sync fetching of the wasm failed"}catch(e){Ne(e)}}function qe(){return P||!p&&!m||"function"!=typeof fetch?Promise.resolve().then((function(){return Ve(Le)})):fetch(Le,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+Le+"'";return e.arrayBuffer()})).catch((function(){return Ve(Le)}))}function ze(){var e={env:vl,wasi_snapshot_preview1:vl};function t(e,t){var r=e.exports;o.asm=r,C(x=o.asm.memory,"memory not found in wasm exports"),ce(x.buffer),C(de=o.asm.__indirect_function_table,"table not found in wasm exports"),Se(o.asm.__wasm_call_ctors),Ue("wasm-instantiate")}je("wasm-instantiate");var r=o;function i(e){C(o===r,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?"),r=null,t(e.instance)}function a(t){return qe().then((function(t){return WebAssembly.instantiate(t,e)})).then((function(e){return e})).then(t,(function(e){T("failed to asynchronously prepare wasm: "+e),Ge(Le)&&T("warning: Loading from a file URI ("+Le+") is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing"),Ne(e)}))}if(o.instantiateWasm)try{return o.instantiateWasm(e,t)}catch(e){return T("Module.instantiateWasm callback failed with error: "+e),!1}return(P||"function"!=typeof WebAssembly.instantiateStreaming||Be(Le)||"function"!=typeof fetch?a(i):fetch(Le,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,e).then(i,(function(e){return T("wasm streaming compile failed: "+e),T("falling back to ArrayBuffer instantiation"),a(i)}))}))).catch(n),{}}function Ye(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var r=t.func;"number"==typeof r?void 0===t.arg?Je(r)():Je(r)(t.arg):r(void 0===t.arg?null:t.arg)}else t(o)}}function $e(e){return D("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),e}function Ze(e){return e.replace(/\b_Z[\w\d_]+/g,(function(e){var t=$e(e);return e===t?e:t+" ["+e+"]"}))}Be(Le="cesdk.wasm")||(Le=w(Le));var Ke=[];function Je(e){var t=Ke[e];return t||(e>=Ke.length&&(Ke.length=e+1),Ke[e]=t=de.get(e)),C(de.get(e)==t,"JavaScript-side Wasm function table mirror is out of date!"),t}function et(e){if(e instanceof Vl||"unwind"==e)return k;f(1,e)}function tt(e,t,r,n){Ne("Assertion failed: "+N(e)+", at: "+[t?N(t):"unknown filename",r,n?N(n):"unknown function"])}function rt(e){return wl(e+16)+16}function nt(e,t){}function ot(e){this.excPtr=e,this.ptr=e-16,this.set_type=function(e){q[this.ptr+4>>2]=e},this.get_type=function(){return q[this.ptr+4>>2]},this.set_destructor=function(e){q[this.ptr+8>>2]=e},this.get_destructor=function(){return q[this.ptr+8>>2]},this.set_refcount=function(e){q[this.ptr>>2]=e},this.set_caught=function(e){e=e?1:0,B[this.ptr+12>>0]=e},this.get_caught=function(){return 0!=B[this.ptr+12>>0]},this.set_rethrown=function(e){e=e?1:0,B[this.ptr+13>>0]=e},this.get_rethrown=function(){return 0!=B[this.ptr+13>>0]},this.init=function(e,t){this.set_type(e),this.set_destructor(t),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){var e=q[this.ptr>>2];q[this.ptr>>2]=e+1},this.release_ref=function(){var e=q[this.ptr>>2];return q[this.ptr>>2]=e-1,C(e>0),1===e}}function it(e,t,r){throw new ot(e).init(t,r),e+" - Exception catching is disabled, this exception cannot be caught. Compile with -s NO_DISABLE_EXCEPTION_CATCHING or -s EXCEPTION_CATCHING_ALLOWED=[..] to catch."}function at(e){return q[Ol()>>2]=e,e}var st={splitPath:function(e){return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1)},normalizeArray:function(e,t){for(var r=0,n=e.length-1;n>=0;n--){var o=e[n];"."===o?e.splice(n,1):".."===o?(e.splice(n,1),r++):r&&(e.splice(n,1),r--)}if(t)for(;r;r--)e.unshift("..");return e},normalize:function(e){var t="/"===e.charAt(0),r="/"===e.substr(-1);return(e=st.normalizeArray(e.split("/").filter((function(e){return!!e})),!t).join("/"))||t||(e="."),e&&r&&(e+="/"),(t?"/":"")+e},dirname:function(e){var t=st.splitPath(e),r=t[0],n=t[1];return r||n?(n&&(n=n.substr(0,n.length-1)),r+n):"."},basename:function(e){if("/"===e)return"/";var t=(e=(e=st.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?e:e.substr(t+1)},extname:function(e){return st.splitPath(e)[3]},join:function(){var e=Array.prototype.slice.call(arguments,0);return st.normalize(e.join("/"))},join2:function(e,t){return st.normalize(e+"/"+t)}};function ct(){if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var e=new Uint8Array(1);return function(){return crypto.getRandomValues(e),e[0]}}return function(){Ne("no cryptographic support found for randomDevice. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: function(array) { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };")}}var ut={resolve:function(){for(var e="",t=!1,r=arguments.length-1;r>=-1&&!t;r--){var n=r>=0?arguments[r]:_t.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");if(!n)return"";e=n+"/"+e,t="/"===n.charAt(0)}return(t?"/":"")+(e=st.normalizeArray(e.split("/").filter((function(e){return!!e})),!t).join("/"))||"."},relative:function(e,t){function r(e){for(var t=0;t<e.length&&""===e[t];t++);for(var r=e.length-1;r>=0&&""===e[r];r--);return t>r?[]:e.slice(t,r-t+1)}e=ut.resolve(e).substr(1),t=ut.resolve(t).substr(1);for(var n=r(e.split("/")),o=r(t.split("/")),i=Math.min(n.length,o.length),a=i,s=0;s<i;s++)if(n[s]!==o[s]){a=s;break}var c=[];for(s=a;s<n.length;s++)c.push("..");return(c=c.concat(o.slice(a))).join("/")}},dt={ttys:[],init:function(){},shutdown:function(){},register:function(e,t){dt.ttys[e]={input:[],output:[],ops:t},_t.registerDevice(e,dt.stream_ops)},stream_ops:{open:function(e){var t=dt.ttys[e.node.rdev];if(!t)throw new _t.ErrnoError(43);e.tty=t,e.seekable=!1},close:function(e){e.tty.ops.flush(e.tty)},flush:function(e){e.tty.ops.flush(e.tty)},read:function(e,t,r,n,o){if(!e.tty||!e.tty.ops.get_char)throw new _t.ErrnoError(60);for(var i=0,a=0;a<n;a++){var s;try{s=e.tty.ops.get_char(e.tty)}catch(e){throw new _t.ErrnoError(29)}if(void 0===s&&0===i)throw new _t.ErrnoError(6);if(null==s)break;i++,t[r+a]=s}return i&&(e.node.timestamp=Date.now()),i},write:function(e,t,r,n,o){if(!e.tty||!e.tty.ops.put_char)throw new _t.ErrnoError(60);try{for(var i=0;i<n;i++)e.tty.ops.put_char(e.tty,t[r+i])}catch(e){throw new _t.ErrnoError(29)}return n&&(e.node.timestamp=Date.now()),i}},default_tty_ops:{get_char:function(e){if(!e.input.length){var t=null;if("undefined"!=typeof window&&"function"==typeof window.prompt?null!==(t=window.prompt("Input: "))&&(t+="\n"):"function"==typeof readline&&null!==(t=readline())&&(t+="\n"),!t)return null;e.input=_l(t,!0)}return e.input.shift()},put_char:function(e,t){null===t||10===t?(O(U(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(O(U(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(T(U(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(T(U(e.output,0)),e.output=[])}}};function lt(e,t){G.fill(0,e,e+t)}function ft(e,t){return C(t,"alignment argument is required"),Math.ceil(e/t)*t}function pt(e){e=ft(e,65536);var t=Al(65536,e);return t?(lt(t,e),t):0}var mt={ops_table:null,mount:function(e){return mt.createNode(null,"/",16895,0)},createNode:function(e,t,r,n){if(_t.isBlkdev(r)||_t.isFIFO(r))throw new _t.ErrnoError(63);mt.ops_table||(mt.ops_table={dir:{node:{getattr:mt.node_ops.getattr,setattr:mt.node_ops.setattr,lookup:mt.node_ops.lookup,mknod:mt.node_ops.mknod,rename:mt.node_ops.rename,unlink:mt.node_ops.unlink,rmdir:mt.node_ops.rmdir,readdir:mt.node_ops.readdir,symlink:mt.node_ops.symlink},stream:{llseek:mt.stream_ops.llseek}},file:{node:{getattr:mt.node_ops.getattr,setattr:mt.node_ops.setattr},stream:{llseek:mt.stream_ops.llseek,read:mt.stream_ops.read,write:mt.stream_ops.write,allocate:mt.stream_ops.allocate,mmap:mt.stream_ops.mmap,msync:mt.stream_ops.msync}},link:{node:{getattr:mt.node_ops.getattr,setattr:mt.node_ops.setattr,readlink:mt.node_ops.readlink},stream:{}},chrdev:{node:{getattr:mt.node_ops.getattr,setattr:mt.node_ops.setattr},stream:_t.chrdev_stream_ops}});var o=_t.createNode(e,t,r,n);return _t.isDir(o.mode)?(o.node_ops=mt.ops_table.dir.node,o.stream_ops=mt.ops_table.dir.stream,o.contents={}):_t.isFile(o.mode)?(o.node_ops=mt.ops_table.file.node,o.stream_ops=mt.ops_table.file.stream,o.usedBytes=0,o.contents=null):_t.isLink(o.mode)?(o.node_ops=mt.ops_table.link.node,o.stream_ops=mt.ops_table.link.stream):_t.isChrdev(o.mode)&&(o.node_ops=mt.ops_table.chrdev.node,o.stream_ops=mt.ops_table.chrdev.stream),o.timestamp=Date.now(),e&&(e.contents[t]=o,e.timestamp=o.timestamp),o},getFileDataAsTypedArray:function(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0)},expandFileStorage:function(e,t){var r=e.contents?e.contents.length:0;if(!(r>=t)){t=Math.max(t,r*(r<1048576?2:1.125)>>>0),0!=r&&(t=Math.max(t,256));var n=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(n.subarray(0,e.usedBytes),0)}},resizeFileStorage:function(e,t){if(e.usedBytes!=t)if(0==t)e.contents=null,e.usedBytes=0;else{var r=e.contents;e.contents=new Uint8Array(t),r&&e.contents.set(r.subarray(0,Math.min(t,e.usedBytes))),e.usedBytes=t}},node_ops:{getattr:function(e){var t={};return t.dev=_t.isChrdev(e.mode)?e.id:1,t.ino=e.id,t.mode=e.mode,t.nlink=1,t.uid=0,t.gid=0,t.rdev=e.rdev,_t.isDir(e.mode)?t.size=4096:_t.isFile(e.mode)?t.size=e.usedBytes:_t.isLink(e.mode)?t.size=e.link.length:t.size=0,t.atime=new Date(e.timestamp),t.mtime=new Date(e.timestamp),t.ctime=new Date(e.timestamp),t.blksize=4096,t.blocks=Math.ceil(t.size/t.blksize),t},setattr:function(e,t){void 0!==t.mode&&(e.mode=t.mode),void 0!==t.timestamp&&(e.timestamp=t.timestamp),void 0!==t.size&&mt.resizeFileStorage(e,t.size)},lookup:function(e,t){throw _t.genericErrors[44]},mknod:function(e,t,r,n){return mt.createNode(e,t,r,n)},rename:function(e,t,r){if(_t.isDir(e.mode)){var n;try{n=_t.lookupNode(t,r)}catch(e){}if(n)for(var o in n.contents)throw new _t.ErrnoError(55)}delete e.parent.contents[e.name],e.parent.timestamp=Date.now(),e.name=r,t.contents[r]=e,t.timestamp=e.parent.timestamp,e.parent=t},unlink:function(e,t){delete e.contents[t],e.timestamp=Date.now()},rmdir:function(e,t){var r=_t.lookupNode(e,t);for(var n in r.contents)throw new _t.ErrnoError(55);delete e.contents[t],e.timestamp=Date.now()},readdir:function(e){var t=[".",".."];for(var r in e.contents)e.contents.hasOwnProperty(r)&&t.push(r);return t},symlink:function(e,t,r){var n=mt.createNode(e,t,41471,0);return n.link=r,n},readlink:function(e){if(!_t.isLink(e.mode))throw new _t.ErrnoError(28);return e.link}},stream_ops:{read:function(e,t,r,n,o){var i=e.node.contents;if(o>=e.node.usedBytes)return 0;var a=Math.min(e.node.usedBytes-o,n);if(C(a>=0),a>8&&i.subarray)t.set(i.subarray(o,o+a),r);else for(var s=0;s<a;s++)t[r+s]=i[o+s];return a},write:function(e,t,r,n,o,i){if(C(!(t instanceof ArrayBuffer)),t.buffer===B.buffer&&(i=!1),!n)return 0;var a=e.node;if(a.timestamp=Date.now(),t.subarray&&(!a.contents||a.contents.subarray)){if(i)return C(0===o,"canOwn must imply no weird position inside the file"),a.contents=t.subarray(r,r+n),a.usedBytes=n,n;if(0===a.usedBytes&&0===o)return a.contents=t.slice(r,r+n),a.usedBytes=n,n;if(o+n<=a.usedBytes)return a.contents.set(t.subarray(r,r+n),o),n}if(mt.expandFileStorage(a,o+n),a.contents.subarray&&t.subarray)a.contents.set(t.subarray(r,r+n),o);else for(var s=0;s<n;s++)a.contents[o+s]=t[r+s];return a.usedBytes=Math.max(a.usedBytes,o+n),n},llseek:function(e,t,r){var n=t;if(1===r?n+=e.position:2===r&&_t.isFile(e.node.mode)&&(n+=e.node.usedBytes),n<0)throw new _t.ErrnoError(28);return n},allocate:function(e,t,r){mt.expandFileStorage(e.node,t+r),e.node.usedBytes=Math.max(e.node.usedBytes,t+r)},mmap:function(e,t,r,n,o,i){if(0!==t)throw new _t.ErrnoError(28);if(!_t.isFile(e.node.mode))throw new _t.ErrnoError(43);var a,s,c=e.node.contents;if(2&i||c.buffer!==Q){if((n>0||n+r<c.length)&&(c=c.subarray?c.subarray(n,n+r):Array.prototype.slice.call(c,n,n+r)),s=!0,!(a=pt(r)))throw new _t.ErrnoError(48);B.set(c,a)}else s=!1,a=c.byteOffset;return{ptr:a,allocated:s}},msync:function(e,t,r,n,o){if(!_t.isFile(e.node.mode))throw new _t.ErrnoError(43);return 2&o||mt.stream_ops.write(e,t,0,n,r,!1),0}}};function gt(e,t,r,n){var o=n?"":Ce("al "+e);_(e,(function(r){C(r,'Loading data file "'+e+'" failed (no arrayBuffer).'),t(new Uint8Array(r)),o&&Ue(o)}),(function(t){if(!r)throw'Loading data file "'+e+'" failed.';r()})),o&&je(o)}var Et={0:"Success",1:"Arg list too long",2:"Permission denied",3:"Address already in use",4:"Address not available",5:"Address family not supported by protocol family",6:"No more processes",7:"Socket already connected",8:"Bad file number",9:"Trying to read unreadable message",10:"Mount device busy",11:"Operation canceled",12:"No children",13:"Connection aborted",14:"Connection refused",15:"Connection reset by peer",16:"File locking deadlock error",17:"Destination address required",18:"Math arg out of domain of func",19:"Quota exceeded",20:"File exists",21:"Bad address",22:"File too large",23:"Host is unreachable",24:"Identifier removed",25:"Illegal byte sequence",26:"Connection already in progress",27:"Interrupted system call",28:"Invalid argument",29:"I/O error",30:"Socket is already connected",31:"Is a directory",32:"Too many symbolic links",33:"Too many open files",34:"Too many links",35:"Message too long",36:"Multihop attempted",37:"File or path name too long",38:"Network interface is not configured",39:"Connection reset by network",40:"Network is unreachable",41:"Too many open files in system",42:"No buffer space available",43:"No such device",44:"No such file or directory",45:"Exec format error",46:"No record locks available",47:"The link has been severed",48:"Not enough core",49:"No message of desired type",50:"Protocol not available",51:"No space left on device",52:"Function not implemented",53:"Socket is not connected",54:"Not a directory",55:"Directory not empty",56:"State not recoverable",57:"Socket operation on non-socket",59:"Not a typewriter",60:"No such device or address",61:"Value too large for defined data type",62:"Previous owner died",63:"Not super-user",64:"Broken pipe",65:"Protocol error",66:"Unknown protocol",67:"Protocol wrong type for socket",68:"Math result not representable",69:"Read only file system",70:"Illegal seek",71:"No such process",72:"Stale file handle",73:"Connection timed out",74:"Text file busy",75:"Cross-device link",100:"Device not a stream",101:"Bad font file fmt",102:"Invalid slot",103:"Invalid request code",104:"No anode",105:"Block device required",106:"Channel number out of range",107:"Level 3 halted",108:"Level 3 reset",109:"Link number out of range",110:"Protocol driver not attached",111:"No CSI structure available",112:"Level 2 halted",113:"Invalid exchange",114:"Invalid request descriptor",115:"Exchange full",116:"No data (for no delay io)",117:"Timer expired",118:"Out of streams resources",119:"Machine is not on the network",120:"Package not installed",121:"The object is remote",122:"Advertise error",123:"Srmount error",124:"Communication error on send",125:"Cross mount point (not really error)",126:"Given log. name not unique",127:"f.d. invalid for this operation",128:"Remote address changed",129:"Can access a needed shared lib",130:"Accessing a corrupted shared lib",131:".lib section in a.out corrupted",132:"Attempting to link in too many libs",133:"Attempting to exec a shared library",135:"Streams pipe error",136:"Too many users",137:"Socket type not supported",138:"Not supported",139:"Protocol family not supported",140:"Can't send after socket shutdown",141:"Too many references",142:"Host is down",148:"No medium (in tape drive)",156:"Level 2 not synchronized"},ht={},_t={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:function(e,t){if(t=t||{},!(e=ut.resolve(_t.cwd(),e)))return{path:"",node:null};var r={follow_mount:!0,recurse_count:0};for(var n in r)void 0===t[n]&&(t[n]=r[n]);if(t.recurse_count>8)throw new _t.ErrnoError(32);for(var o=st.normalizeArray(e.split("/").filter((function(e){return!!e})),!1),i=_t.root,a="/",s=0;s<o.length;s++){var c=s===o.length-1;if(c&&t.parent)break;if(i=_t.lookupNode(i,o[s]),a=st.join2(a,o[s]),_t.isMountpoint(i)&&(!c||c&&t.follow_mount)&&(i=i.mounted.root),!c||t.follow)for(var u=0;_t.isLink(i.mode);){var d=_t.readlink(a);if(a=ut.resolve(st.dirname(a),d),i=_t.lookupPath(a,{recurse_count:t.recurse_count}).node,u++>40)throw new _t.ErrnoError(32)}}return{path:a,node:i}},getPath:function(e){for(var t;;){if(_t.isRoot(e)){var r=e.mount.mountpoint;return t?"/"!==r[r.length-1]?r+"/"+t:r+t:r}t=t?e.name+"/"+t:e.name,e=e.parent}},hashName:function(e,t){for(var r=0,n=0;n<t.length;n++)r=(r<<5)-r+t.charCodeAt(n)|0;return(e+r>>>0)%_t.nameTable.length},hashAddNode:function(e){var t=_t.hashName(e.parent.id,e.name);e.name_next=_t.nameTable[t],_t.nameTable[t]=e},hashRemoveNode:function(e){var t=_t.hashName(e.parent.id,e.name);if(_t.nameTable[t]===e)_t.nameTable[t]=e.name_next;else for(var r=_t.nameTable[t];r;){if(r.name_next===e){r.name_next=e.name_next;break}r=r.name_next}},lookupNode:function(e,t){var r=_t.mayLookup(e);if(r)throw new _t.ErrnoError(r,e);for(var n=_t.hashName(e.id,t),o=_t.nameTable[n];o;o=o.name_next){var i=o.name;if(o.parent.id===e.id&&i===t)return o}return _t.lookup(e,t)},createNode:function(e,t,r,n){C("object"==typeof e);var o=new _t.FSNode(e,t,r,n);return _t.hashAddNode(o),o},destroyNode:function(e){_t.hashRemoveNode(e)},isRoot:function(e){return e===e.parent},isMountpoint:function(e){return!!e.mounted},isFile:function(e){return 32768==(61440&e)},isDir:function(e){return 16384==(61440&e)},isLink:function(e){return 40960==(61440&e)},isChrdev:function(e){return 8192==(61440&e)},isBlkdev:function(e){return 24576==(61440&e)},isFIFO:function(e){return 4096==(61440&e)},isSocket:function(e){return 49152==(49152&e)},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:function(e){var t=_t.flagModes[e];if(void 0===t)throw new Error("Unknown file open mode: "+e);return t},flagsToPermissionString:function(e){var t=["r","w","rw"][3&e];return 512&e&&(t+="w"),t},nodePermissions:function(e,t){return _t.ignorePermissions||(!t.includes("r")||292&e.mode)&&(!t.includes("w")||146&e.mode)&&(!t.includes("x")||73&e.mode)?0:2},mayLookup:function(e){return _t.nodePermissions(e,"x")||(e.node_ops.lookup?0:2)},mayCreate:function(e,t){try{return _t.lookupNode(e,t),20}catch(e){}return _t.nodePermissions(e,"wx")},mayDelete:function(e,t,r){var n;try{n=_t.lookupNode(e,t)}catch(e){return e.errno}var o=_t.nodePermissions(e,"wx");if(o)return o;if(r){if(!_t.isDir(n.mode))return 54;if(_t.isRoot(n)||_t.getPath(n)===_t.cwd())return 10}else if(_t.isDir(n.mode))return 31;return 0},mayOpen:function(e,t){return e?_t.isLink(e.mode)?32:_t.isDir(e.mode)&&("r"!==_t.flagsToPermissionString(t)||512&t)?31:_t.nodePermissions(e,_t.flagsToPermissionString(t)):44},MAX_OPEN_FDS:4096,nextfd:function(e,t){e=e||0,t=t||_t.MAX_OPEN_FDS;for(var r=e;r<=t;r++)if(!_t.streams[r])return r;throw new _t.ErrnoError(33)},getStream:function(e){return _t.streams[e]},createStream:function(e,t,r){_t.FSStream||(_t.FSStream=function(){},_t.FSStream.prototype={object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}}});var n=new _t.FSStream;for(var o in e)n[o]=e[o];e=n;var i=_t.nextfd(t,r);return e.fd=i,_t.streams[i]=e,e},closeStream:function(e){_t.streams[e]=null},chrdev_stream_ops:{open:function(e){var t=_t.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:function(){throw new _t.ErrnoError(70)}},major:function(e){return e>>8},minor:function(e){return 255&e},makedev:function(e,t){return e<<8|t},registerDevice:function(e,t){_t.devices[e]={stream_ops:t}},getDevice:function(e){return _t.devices[e]},getMounts:function(e){for(var t=[],r=[e];r.length;){var n=r.pop();t.push(n),r.push.apply(r,n.mounts)}return t},syncfs:function(e,t){"function"==typeof e&&(t=e,e=!1),_t.syncFSRequests++,_t.syncFSRequests>1&&T("warning: "+_t.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var r=_t.getMounts(_t.root.mount),n=0;function o(e){return C(_t.syncFSRequests>0),_t.syncFSRequests--,t(e)}function i(e){if(e)return i.errored?void 0:(i.errored=!0,o(e));++n>=r.length&&o(null)}r.forEach((function(t){if(!t.type.syncfs)return i(null);t.type.syncfs(t,e,i)}))},mount:function(e,t,r){if("string"==typeof e)throw e;var n,o="/"===r,i=!r;if(o&&_t.root)throw new _t.ErrnoError(10);if(!o&&!i){var a=_t.lookupPath(r,{follow_mount:!1});if(r=a.path,n=a.node,_t.isMountpoint(n))throw new _t.ErrnoError(10);if(!_t.isDir(n.mode))throw new _t.ErrnoError(54)}var s={type:e,opts:t,mountpoint:r,mounts:[]},c=e.mount(s);return c.mount=s,s.root=c,o?_t.root=c:n&&(n.mounted=s,n.mount&&n.mount.mounts.push(s)),c},unmount:function(e){var t=_t.lookupPath(e,{follow_mount:!1});if(!_t.isMountpoint(t.node))throw new _t.ErrnoError(28);var r=t.node,n=r.mounted,o=_t.getMounts(n);Object.keys(_t.nameTable).forEach((function(e){for(var t=_t.nameTable[e];t;){var r=t.name_next;o.includes(t.mount)&&_t.destroyNode(t),t=r}})),r.mounted=null;var i=r.mount.mounts.indexOf(n);C(-1!==i),r.mount.mounts.splice(i,1)},lookup:function(e,t){return e.node_ops.lookup(e,t)},mknod:function(e,t,r){var n=_t.lookupPath(e,{parent:!0}).node,o=st.basename(e);if(!o||"."===o||".."===o)throw new _t.ErrnoError(28);var i=_t.mayCreate(n,o);if(i)throw new _t.ErrnoError(i);if(!n.node_ops.mknod)throw new _t.ErrnoError(63);return n.node_ops.mknod(n,o,t,r)},create:function(e,t){return t=void 0!==t?t:438,t&=4095,t|=32768,_t.mknod(e,t,0)},mkdir:function(e,t){return t=void 0!==t?t:511,t&=1023,t|=16384,_t.mknod(e,t,0)},mkdirTree:function(e,t){for(var r=e.split("/"),n="",o=0;o<r.length;++o)if(r[o]){n+="/"+r[o];try{_t.mkdir(n,t)}catch(e){if(20!=e.errno)throw e}}},mkdev:function(e,t,r){return void 0===r&&(r=t,t=438),t|=8192,_t.mknod(e,t,r)},symlink:function(e,t){if(!ut.resolve(e))throw new _t.ErrnoError(44);var r=_t.lookupPath(t,{parent:!0}).node;if(!r)throw new _t.ErrnoError(44);var n=st.basename(t),o=_t.mayCreate(r,n);if(o)throw new _t.ErrnoError(o);if(!r.node_ops.symlink)throw new _t.ErrnoError(63);return r.node_ops.symlink(r,n,e)},rename:function(e,t){var r,n,o=st.dirname(e),i=st.dirname(t),a=st.basename(e),s=st.basename(t);if(r=_t.lookupPath(e,{parent:!0}).node,n=_t.lookupPath(t,{parent:!0}).node,!r||!n)throw new _t.ErrnoError(44);if(r.mount!==n.mount)throw new _t.ErrnoError(75);var c,u=_t.lookupNode(r,a),d=ut.relative(e,i);if("."!==d.charAt(0))throw new _t.ErrnoError(28);if("."!==(d=ut.relative(t,o)).charAt(0))throw new _t.ErrnoError(55);try{c=_t.lookupNode(n,s)}catch(e){}if(u!==c){var l=_t.isDir(u.mode),f=_t.mayDelete(r,a,l);if(f)throw new _t.ErrnoError(f);if(f=c?_t.mayDelete(n,s,l):_t.mayCreate(n,s))throw new _t.ErrnoError(f);if(!r.node_ops.rename)throw new _t.ErrnoError(63);if(_t.isMountpoint(u)||c&&_t.isMountpoint(c))throw new _t.ErrnoError(10);if(n!==r&&(f=_t.nodePermissions(r,"w")))throw new _t.ErrnoError(f);_t.hashRemoveNode(u);try{r.node_ops.rename(u,n,s)}catch(e){throw e}finally{_t.hashAddNode(u)}}},rmdir:function(e){var t=_t.lookupPath(e,{parent:!0}).node,r=st.basename(e),n=_t.lookupNode(t,r),o=_t.mayDelete(t,r,!0);if(o)throw new _t.ErrnoError(o);if(!t.node_ops.rmdir)throw new _t.ErrnoError(63);if(_t.isMountpoint(n))throw new _t.ErrnoError(10);t.node_ops.rmdir(t,r),_t.destroyNode(n)},readdir:function(e){var t=_t.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new _t.ErrnoError(54);return t.node_ops.readdir(t)},unlink:function(e){var t=_t.lookupPath(e,{parent:!0}).node,r=st.basename(e),n=_t.lookupNode(t,r),o=_t.mayDelete(t,r,!1);if(o)throw new _t.ErrnoError(o);if(!t.node_ops.unlink)throw new _t.ErrnoError(63);if(_t.isMountpoint(n))throw new _t.ErrnoError(10);t.node_ops.unlink(t,r),_t.destroyNode(n)},readlink:function(e){var t=_t.lookupPath(e).node;if(!t)throw new _t.ErrnoError(44);if(!t.node_ops.readlink)throw new _t.ErrnoError(28);return ut.resolve(_t.getPath(t.parent),t.node_ops.readlink(t))},stat:function(e,t){var r=_t.lookupPath(e,{follow:!t}).node;if(!r)throw new _t.ErrnoError(44);if(!r.node_ops.getattr)throw new _t.ErrnoError(63);return r.node_ops.getattr(r)},lstat:function(e){return _t.stat(e,!0)},chmod:function(e,t,r){var n;if(!(n="string"==typeof e?_t.lookupPath(e,{follow:!r}).node:e).node_ops.setattr)throw new _t.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&t|-4096&n.mode,timestamp:Date.now()})},lchmod:function(e,t){_t.chmod(e,t,!0)},fchmod:function(e,t){var r=_t.getStream(e);if(!r)throw new _t.ErrnoError(8);_t.chmod(r.node,t)},chown:function(e,t,r,n){var o;if(!(o="string"==typeof e?_t.lookupPath(e,{follow:!n}).node:e).node_ops.setattr)throw new _t.ErrnoError(63);o.node_ops.setattr(o,{timestamp:Date.now()})},lchown:function(e,t,r){_t.chown(e,t,r,!0)},fchown:function(e,t,r){var n=_t.getStream(e);if(!n)throw new _t.ErrnoError(8);_t.chown(n.node,t,r)},truncate:function(e,t){if(t<0)throw new _t.ErrnoError(28);var r;if(!(r="string"==typeof e?_t.lookupPath(e,{follow:!0}).node:e).node_ops.setattr)throw new _t.ErrnoError(63);if(_t.isDir(r.mode))throw new _t.ErrnoError(31);if(!_t.isFile(r.mode))throw new _t.ErrnoError(28);var n=_t.nodePermissions(r,"w");if(n)throw new _t.ErrnoError(n);r.node_ops.setattr(r,{size:t,timestamp:Date.now()})},ftruncate:function(e,t){var r=_t.getStream(e);if(!r)throw new _t.ErrnoError(8);if(0==(2097155&r.flags))throw new _t.ErrnoError(28);_t.truncate(r.node,t)},utime:function(e,t,r){var n=_t.lookupPath(e,{follow:!0}).node;n.node_ops.setattr(n,{timestamp:Math.max(t,r)})},open:function(e,t,r,n,i){if(""===e)throw new _t.ErrnoError(44);var a;if(r=void 0===r?438:r,r=64&(t="string"==typeof t?_t.modeStringToFlags(t):t)?4095&r|32768:0,"object"==typeof e)a=e;else{e=st.normalize(e);try{a=_t.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var s=!1;if(64&t)if(a){if(128&t)throw new _t.ErrnoError(20)}else a=_t.mknod(e,r,0),s=!0;if(!a)throw new _t.ErrnoError(44);if(_t.isChrdev(a.mode)&&(t&=-513),65536&t&&!_t.isDir(a.mode))throw new _t.ErrnoError(54);if(!s){var c=_t.mayOpen(a,t);if(c)throw new _t.ErrnoError(c)}512&t&&_t.truncate(a,0),t&=-131713;var u=_t.createStream({node:a,path:_t.getPath(a),id:a.id,flags:t,mode:a.mode,seekable:!0,position:0,stream_ops:a.stream_ops,node_ops:a.node_ops,ungotten:[],error:!1},n,i);return u.stream_ops.open&&u.stream_ops.open(u),!o.logReadFiles||1&t||(_t.readFiles||(_t.readFiles={}),e in _t.readFiles||(_t.readFiles[e]=1)),u},close:function(e){if(_t.isClosed(e))throw new _t.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{_t.closeStream(e.fd)}e.fd=null},isClosed:function(e){return null===e.fd},llseek:function(e,t,r){if(_t.isClosed(e))throw new _t.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new _t.ErrnoError(70);if(0!=r&&1!=r&&2!=r)throw new _t.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,r),e.ungotten=[],e.position},read:function(e,t,r,n,o){if(n<0||o<0)throw new _t.ErrnoError(28);if(_t.isClosed(e))throw new _t.ErrnoError(8);if(1==(2097155&e.flags))throw new _t.ErrnoError(8);if(_t.isDir(e.node.mode))throw new _t.ErrnoError(31);if(!e.stream_ops.read)throw new _t.ErrnoError(28);var i=void 0!==o;if(i){if(!e.seekable)throw new _t.ErrnoError(70)}else o=e.position;var a=e.stream_ops.read(e,t,r,n,o);return i||(e.position+=a),a},write:function(e,t,r,n,o,i){if(n<0||o<0)throw new _t.ErrnoError(28);if(_t.isClosed(e))throw new _t.ErrnoError(8);if(0==(2097155&e.flags))throw new _t.ErrnoError(8);if(_t.isDir(e.node.mode))throw new _t.ErrnoError(31);if(!e.stream_ops.write)throw new _t.ErrnoError(28);e.seekable&&1024&e.flags&&_t.llseek(e,0,2);var a=void 0!==o;if(a){if(!e.seekable)throw new _t.ErrnoError(70)}else o=e.position;var s=e.stream_ops.write(e,t,r,n,o,i);return a||(e.position+=s),s},allocate:function(e,t,r){if(_t.isClosed(e))throw new _t.ErrnoError(8);if(t<0||r<=0)throw new _t.ErrnoError(28);if(0==(2097155&e.flags))throw new _t.ErrnoError(8);if(!_t.isFile(e.node.mode)&&!_t.isDir(e.node.mode))throw new _t.ErrnoError(43);if(!e.stream_ops.allocate)throw new _t.ErrnoError(138);e.stream_ops.allocate(e,t,r)},mmap:function(e,t,r,n,o,i){if(0!=(2&o)&&0==(2&i)&&2!=(2097155&e.flags))throw new _t.ErrnoError(2);if(1==(2097155&e.flags))throw new _t.ErrnoError(2);if(!e.stream_ops.mmap)throw new _t.ErrnoError(43);return e.stream_ops.mmap(e,t,r,n,o,i)},msync:function(e,t,r,n,o){return e&&e.stream_ops.msync?e.stream_ops.msync(e,t,r,n,o):0},munmap:function(e){return 0},ioctl:function(e,t,r){if(!e.stream_ops.ioctl)throw new _t.ErrnoError(59);return e.stream_ops.ioctl(e,t,r)},readFile:function(e,t){if((t=t||{}).flags=t.flags||0,t.encoding=t.encoding||"binary","utf8"!==t.encoding&&"binary"!==t.encoding)throw new Error('Invalid encoding type "'+t.encoding+'"');var r,n=_t.open(e,t.flags),o=_t.stat(e).size,i=new Uint8Array(o);return _t.read(n,i,0,o,0),"utf8"===t.encoding?r=U(i,0):"binary"===t.encoding&&(r=i),_t.close(n),r},writeFile:function(e,t,r){(r=r||{}).flags=r.flags||577;var n=_t.open(e,r.flags,r.mode);if("string"==typeof t){var o=new Uint8Array(X(t)+1),i=L(t,o,0,o.length);_t.write(n,o,0,i,void 0,r.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");_t.write(n,t,0,t.byteLength,void 0,r.canOwn)}_t.close(n)},cwd:function(){return _t.currentPath},chdir:function(e){var t=_t.lookupPath(e,{follow:!0});if(null===t.node)throw new _t.ErrnoError(44);if(!_t.isDir(t.node.mode))throw new _t.ErrnoError(54);var r=_t.nodePermissions(t.node,"x");if(r)throw new _t.ErrnoError(r);_t.currentPath=t.path},createDefaultDirectories:function(){_t.mkdir("/tmp"),_t.mkdir("/home"),_t.mkdir("/home/web_user")},createDefaultDevices:function(){_t.mkdir("/dev"),_t.registerDevice(_t.makedev(1,3),{read:function(){return 0},write:function(e,t,r,n,o){return n}}),_t.mkdev("/dev/null",_t.makedev(1,3)),dt.register(_t.makedev(5,0),dt.default_tty_ops),dt.register(_t.makedev(6,0),dt.default_tty1_ops),_t.mkdev("/dev/tty",_t.makedev(5,0)),_t.mkdev("/dev/tty1",_t.makedev(6,0));var e=ct();_t.createDevice("/dev","random",e),_t.createDevice("/dev","urandom",e),_t.mkdir("/dev/shm"),_t.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){_t.mkdir("/proc");var e=_t.mkdir("/proc/self");_t.mkdir("/proc/self/fd"),_t.mount({mount:function(){var t=_t.createNode(e,"fd",16895,73);return t.node_ops={lookup:function(e,t){var r=+t,n=_t.getStream(r);if(!n)throw new _t.ErrnoError(8);var o={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return n.path}}};return o.parent=o,o}},t}},{},"/proc/self/fd")},createStandardStreams:function(){o.stdin?_t.createDevice("/dev","stdin",o.stdin):_t.symlink("/dev/tty","/dev/stdin"),o.stdout?_t.createDevice("/dev","stdout",null,o.stdout):_t.symlink("/dev/tty","/dev/stdout"),o.stderr?_t.createDevice("/dev","stderr",null,o.stderr):_t.symlink("/dev/tty1","/dev/stderr");var e=_t.open("/dev/stdin",0),t=_t.open("/dev/stdout",1),r=_t.open("/dev/stderr",1);C(0===e.fd,"invalid handle for stdin ("+e.fd+")"),C(1===t.fd,"invalid handle for stdout ("+t.fd+")"),C(2===r.fd,"invalid handle for stderr ("+r.fd+")")},ensureErrnoError:function(){_t.ErrnoError||(_t.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){for(var t in this.errno=e,ht)if(ht[t]===e){this.code=t;break}},this.setErrno(e),this.message=Et[e],this.stack&&(Object.defineProperty(this,"stack",{value:(new Error).stack,writable:!0}),this.stack=Ze(this.stack))},_t.ErrnoError.prototype=new Error,_t.ErrnoError.prototype.constructor=_t.ErrnoError,[44].forEach((function(e){_t.genericErrors[e]=new _t.ErrnoError(e),_t.genericErrors[e].stack="<generic error, no stack>"})))},staticInit:function(){_t.ensureErrnoError(),_t.nameTable=new Array(4096),_t.mount(mt,{},"/"),_t.createDefaultDirectories(),_t.createDefaultDevices(),_t.createSpecialDirectories(),_t.filesystems={MEMFS:mt}},init:function(e,t,r){C(!_t.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)"),_t.init.initialized=!0,_t.ensureErrnoError(),o.stdin=e||o.stdin,o.stdout=t||o.stdout,o.stderr=r||o.stderr,_t.createStandardStreams()},quit:function(){_t.init.initialized=!1;var e=o._fflush;e&&e(0);for(var t=0;t<_t.streams.length;t++){var r=_t.streams[t];r&&_t.close(r)}},getMode:function(e,t){var r=0;return e&&(r|=365),t&&(r|=146),r},findObject:function(e,t){var r=_t.analyzePath(e,t);return r.exists?r.object:null},analyzePath:function(e,t){try{e=(n=_t.lookupPath(e,{follow:!t})).path}catch(e){}var r={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=_t.lookupPath(e,{parent:!0});r.parentExists=!0,r.parentPath=n.path,r.parentObject=n.node,r.name=st.basename(e),n=_t.lookupPath(e,{follow:!t}),r.exists=!0,r.path=n.path,r.object=n.node,r.name=n.node.name,r.isRoot="/"===n.path}catch(e){r.error=e.errno}return r},createPath:function(e,t,r,n){e="string"==typeof e?e:_t.getPath(e);for(var o=t.split("/").reverse();o.length;){var i=o.pop();if(i){var a=st.join2(e,i);try{_t.mkdir(a)}catch(e){}e=a}}return a},createFile:function(e,t,r,n,o){var i=st.join2("string"==typeof e?e:_t.getPath(e),t),a=_t.getMode(n,o);return _t.create(i,a)},createDataFile:function(e,t,r,n,o,i){var a=t?st.join2("string"==typeof e?e:_t.getPath(e),t):e,s=_t.getMode(n,o),c=_t.create(a,s);if(r){if("string"==typeof r){for(var u=new Array(r.length),d=0,l=r.length;d<l;++d)u[d]=r.charCodeAt(d);r=u}_t.chmod(c,146|s);var f=_t.open(c,577);_t.write(f,r,0,r.length,0,i),_t.close(f),_t.chmod(c,s)}return c},createDevice:function(e,t,r,n){var o=st.join2("string"==typeof e?e:_t.getPath(e),t),i=_t.getMode(!!r,!!n);_t.createDevice.major||(_t.createDevice.major=64);var a=_t.makedev(_t.createDevice.major++,0);return _t.registerDevice(a,{open:function(e){e.seekable=!1},close:function(e){n&&n.buffer&&n.buffer.length&&n(10)},read:function(e,t,n,o,i){for(var a=0,s=0;s<o;s++){var c;try{c=r()}catch(e){throw new _t.ErrnoError(29)}if(void 0===c&&0===a)throw new _t.ErrnoError(6);if(null==c)break;a++,t[n+s]=c}return a&&(e.node.timestamp=Date.now()),a},write:function(e,t,r,o,i){for(var a=0;a<o;a++)try{n(t[r+a])}catch(e){throw new _t.ErrnoError(29)}return o&&(e.node.timestamp=Date.now()),a}}),_t.mkdev(o,i,a)},forceLoadFile:function(e){if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!h)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=_l(h(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new _t.ErrnoError(29)}},createLazyFile:function(e,t,r,n,o){function i(){this.lengthKnown=!1,this.chunks=[]}if(i.prototype.get=function(e){if(!(e>this.length-1||e<0)){var t=e%this.chunkSize,r=e/this.chunkSize|0;return this.getter(r)[t]}},i.prototype.setDataGetter=function(e){this.getter=e},i.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",r,!1),e.send(null),!(e.status>=200&&e.status<300||304===e.status))throw new Error("Couldn't load "+r+". Status: "+e.status);var t,n=Number(e.getResponseHeader("Content-length")),o=(t=e.getResponseHeader("Accept-Ranges"))&&"bytes"===t,i=(t=e.getResponseHeader("Content-Encoding"))&&"gzip"===t,a=1048576;o||(a=n);var s=this;s.setDataGetter((function(e){var t=e*a,o=(e+1)*a-1;if(o=Math.min(o,n-1),void 0===s.chunks[e]&&(s.chunks[e]=function(e,t){if(e>t)throw new Error("invalid range ("+e+", "+t+") or no bytes requested!");if(t>n-1)throw new Error("only "+n+" bytes available! programmer error!");var o=new XMLHttpRequest;if(o.open("GET",r,!1),n!==a&&o.setRequestHeader("Range","bytes="+e+"-"+t),"undefined"!=typeof Uint8Array&&(o.responseType="arraybuffer"),o.overrideMimeType&&o.overrideMimeType("text/plain; charset=x-user-defined"),o.send(null),!(o.status>=200&&o.status<300||304===o.status))throw new Error("Couldn't load "+r+". Status: "+o.status);return void 0!==o.response?new Uint8Array(o.response||[]):_l(o.responseText||"",!0)}(t,o)),void 0===s.chunks[e])throw new Error("doXHR failed!");return s.chunks[e]})),!i&&n||(a=n=1,n=this.getter(0).length,a=n,O("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=n,this._chunkSize=a,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!m)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var a=new i;Object.defineProperties(a,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var s={isDevice:!1,contents:a}}else s={isDevice:!1,url:r};var c=_t.createFile(e,t,s,n,o);s.contents?c.contents=s.contents:s.url&&(c.contents=null,c.url=s.url),Object.defineProperties(c,{usedBytes:{get:function(){return this.contents.length}}});var u={};return Object.keys(c.stream_ops).forEach((function(e){var t=c.stream_ops[e];u[e]=function(){return _t.forceLoadFile(c),t.apply(null,arguments)}})),u.read=function(e,t,r,n,o){_t.forceLoadFile(c);var i=e.node.contents;if(o>=i.length)return 0;var a=Math.min(i.length-o,n);if(C(a>=0),i.slice)for(var s=0;s<a;s++)t[r+s]=i[o+s];else for(s=0;s<a;s++)t[r+s]=i.get(o+s);return a},c.stream_ops=u,c},createPreloadedFile:function(e,t,r,n,i,a,s,c,u,d){ho.init();var l=t?ut.resolve(st.join2(e,t)):e,f=Ce("cp "+l);function p(r){function p(r){d&&d(),c||_t.createDataFile(e,t,r,n,i,u),a&&a(),Ue(f)}var m=!1;o.preloadPlugins.forEach((function(e){m||e.canHandle(l)&&(e.handle(r,l,p,(function(){s&&s(),Ue(f)})),m=!0)})),m||p(r)}je(f),"string"==typeof r?gt(r,(function(e){p(e)}),s):p(r)},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(e,t,r){t=t||function(){},r=r||function(){};var n=_t.indexedDB();try{var o=n.open(_t.DB_NAME(),_t.DB_VERSION)}catch(e){return r(e)}o.onupgradeneeded=function(){O("creating db"),o.result.createObjectStore(_t.DB_STORE_NAME)},o.onsuccess=function(){var n=o.result.transaction([_t.DB_STORE_NAME],"readwrite"),i=n.objectStore(_t.DB_STORE_NAME),a=0,s=0,c=e.length;function u(){0==s?t():r()}e.forEach((function(e){var t=i.put(_t.analyzePath(e).object.contents,e);t.onsuccess=function(){++a+s==c&&u()},t.onerror=function(){s++,a+s==c&&u()}})),n.onerror=r},o.onerror=r},loadFilesFromDB:function(e,t,r){t=t||function(){},r=r||function(){};var n=_t.indexedDB();try{var o=n.open(_t.DB_NAME(),_t.DB_VERSION)}catch(e){return r(e)}o.onupgradeneeded=r,o.onsuccess=function(){var n=o.result;try{var i=n.transaction([_t.DB_STORE_NAME],"readonly")}catch(e){return void r(e)}var a=i.objectStore(_t.DB_STORE_NAME),s=0,c=0,u=e.length;function d(){0==c?t():r()}e.forEach((function(e){var t=a.get(e);t.onsuccess=function(){_t.analyzePath(e).exists&&_t.unlink(e),_t.createDataFile(st.dirname(e),st.basename(e),t.result,!0,!0,!0),++s+c==u&&d()},t.onerror=function(){c++,s+c==u&&d()}})),i.onerror=r},o.onerror=r},absolutePath:function(){Ne("FS.absolutePath has been removed; use PATH_FS.resolve instead")},createFolder:function(){Ne("FS.createFolder has been removed; use FS.mkdir instead")},createLink:function(){Ne("FS.createLink has been removed; use FS.symlink instead")},joinPath:function(){Ne("FS.joinPath has been removed; use PATH.join instead")},mmapAlloc:function(){Ne("FS.mmapAlloc has been replaced by the top level function mmapAlloc")},standardizePath:function(){Ne("FS.standardizePath has been removed; use PATH.normalize instead")}},yt={mappings:{},DEFAULT_POLLMASK:5,calculateAt:function(e,t,r){if("/"===t[0])return t;var n;if(-100===e)n=_t.cwd();else{var o=_t.getStream(e);if(!o)throw new _t.ErrnoError(8);n=o.path}if(0==t.length){if(!r)throw new _t.ErrnoError(44);return n}return st.join2(n,t)},doStat:function(e,t,r){try{var n=e(t)}catch(e){if(e&&e.node&&st.normalize(t)!==st.normalize(_t.getPath(e.node)))return-54;throw e}return q[r>>2]=n.dev,q[r+4>>2]=0,q[r+8>>2]=n.ino,q[r+12>>2]=n.mode,q[r+16>>2]=n.nlink,q[r+20>>2]=n.uid,q[r+24>>2]=n.gid,q[r+28>>2]=n.rdev,q[r+32>>2]=0,Xe=[n.size>>>0,(He=n.size,+Math.abs(He)>=1?He>0?(0|Math.min(+Math.floor(He/4294967296),4294967295))>>>0:~~+Math.ceil((He-+(~~He>>>0))/4294967296)>>>0:0)],q[r+40>>2]=Xe[0],q[r+44>>2]=Xe[1],q[r+48>>2]=4096,q[r+52>>2]=n.blocks,q[r+56>>2]=n.atime.getTime()/1e3|0,q[r+60>>2]=0,q[r+64>>2]=n.mtime.getTime()/1e3|0,q[r+68>>2]=0,q[r+72>>2]=n.ctime.getTime()/1e3|0,q[r+76>>2]=0,Xe=[n.ino>>>0,(He=n.ino,+Math.abs(He)>=1?He>0?(0|Math.min(+Math.floor(He/4294967296),4294967295))>>>0:~~+Math.ceil((He-+(~~He>>>0))/4294967296)>>>0:0)],q[r+80>>2]=Xe[0],q[r+84>>2]=Xe[1],0},doMsync:function(e,t,r,n,o){var i=G.slice(e,e+r);_t.msync(t,i,o,r,n)},doMkdir:function(e,t){return"/"===(e=st.normalize(e))[e.length-1]&&(e=e.substr(0,e.length-1)),_t.mkdir(e,t,0),0},doMknod:function(e,t,r){switch(61440&t){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return _t.mknod(e,t,r),0},doReadlink:function(e,t,r){if(r<=0)return-28;var n=_t.readlink(e),o=Math.min(r,X(n)),i=B[t+o];return H(n,t,r+1),B[t+o]=i,o},doAccess:function(e,t){if(-8&t)return-28;var r;if(!(r=_t.lookupPath(e,{follow:!0}).node))return-44;var n="";return 4&t&&(n+="r"),2&t&&(n+="w"),1&t&&(n+="x"),n&&_t.nodePermissions(r,n)?-2:0},doDup:function(e,t,r){var n=_t.getStream(r);return n&&_t.close(n),_t.open(e,t,0,r,r).fd},doReadv:function(e,t,r,n){for(var o=0,i=0;i<r;i++){var a=q[t+8*i>>2],s=q[t+(8*i+4)>>2],c=_t.read(e,B,a,s,n);if(c<0)return-1;if(o+=c,c<s)break}return o},doWritev:function(e,t,r,n){for(var o=0,i=0;i<r;i++){var a=q[t+8*i>>2],s=q[t+(8*i+4)>>2],c=_t.write(e,B,a,s,n);if(c<0)return-1;o+=c}return o},varargs:void 0,get:function(){return C(null!=yt.varargs),yt.varargs+=4,q[yt.varargs-4>>2]},getStr:function(e){return N(e)},getStreamFromFD:function(e){var t=_t.getStream(e);if(!t)throw new _t.ErrnoError(8);return t},get64:function(e,t){return C(e>=0?0===t:-1===t),e}};function vt(e,t,r){yt.varargs=r;try{var n=yt.getStreamFromFD(e);switch(t){case 0:return(o=yt.get())<0?-28:_t.open(n.path,n.flags,0,o).fd;case 1:case 2:return 0;case 3:return n.flags;case 4:var o=yt.get();return n.flags|=o,0;case 12:return o=yt.get(),W[o+0>>1]=2,0;case 13:case 14:return 0;case 16:case 8:return-28;case 9:return at(28),-1;default:return-28}}catch(e){return void 0!==_t&&e instanceof _t.ErrnoError||Ne(e),-e.errno}}function wt(e,t){try{var r=yt.getStreamFromFD(e);return yt.doStat(_t.stat,r.path,t)}catch(e){return void 0!==_t&&e instanceof _t.ErrnoError||Ne(e),-e.errno}}function bt(e,t,r){try{var n=yt.getStreamFromFD(e);n.getdents||(n.getdents=_t.readdir(n.path));for(var o=280,i=0,a=_t.llseek(n,0,1),s=Math.floor(a/o);s<n.getdents.length&&i+o<=r;){var c,u,d=n.getdents[s];if("."===d)c=n.id,u=4;else if(".."===d)c=_t.lookupPath(n.path,{parent:!0}).id,u=4;else{var l=_t.lookupNode(n,d);c=l.id,u=_t.isChrdev(l.mode)?2:_t.isDir(l.mode)?4:_t.isLink(l.mode)?10:8}Xe=[c>>>0,(He=c,+Math.abs(He)>=1?He>0?(0|Math.min(+Math.floor(He/4294967296),4294967295))>>>0:~~+Math.ceil((He-+(~~He>>>0))/4294967296)>>>0:0)],q[t+i>>2]=Xe[0],q[t+i+4>>2]=Xe[1],Xe=[(s+1)*o>>>0,(He=(s+1)*o,+Math.abs(He)>=1?He>0?(0|Math.min(+Math.floor(He/4294967296),4294967295))>>>0:~~+Math.ceil((He-+(~~He>>>0))/4294967296)>>>0:0)],q[t+i+8>>2]=Xe[0],q[t+i+12>>2]=Xe[1],W[t+i+16>>1]=280,B[t+i+18>>0]=u,H(d,t+i+19,256),i+=o,s+=1}return _t.llseek(n,s*o,0),i}catch(e){return void 0!==_t&&e instanceof _t.ErrnoError||Ne(e),-e.errno}}function Ot(e,t,r){yt.varargs=r;try{var n=yt.getStreamFromFD(e);switch(t){case 21509:case 21505:return n.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return n.tty?0:-59;case 21519:if(!n.tty)return-59;var o=yt.get();return q[o>>2]=0,0;case 21520:return n.tty?-28:-59;case 21531:return o=yt.get(),_t.ioctl(n,t,o);case 21523:case 21524:return n.tty?0:-59;default:Ne("bad ioctl syscall "+t)}}catch(e){return void 0!==_t&&e instanceof _t.ErrnoError||Ne(e),-e.errno}}function Tt(e,t,r,n,o,i){var a;i<<=12;var s=!1;if(0!=(16&n)&&e%65536!=0)return-28;if(0!=(32&n)){if(!(a=pt(t)))return-48;s=!0}else{var c=_t.getStream(o);if(!c)return-8;var u=_t.mmap(c,e,t,i,r,n);a=u.ptr,s=u.allocated}return yt.mappings[a]={malloc:a,len:t,allocated:s,fd:o,prot:r,flags:n,offset:i},a}function Dt(e,t,r,n,o,i){try{return Tt(e,t,r,n,o,i)}catch(e){return void 0!==_t&&e instanceof _t.ErrnoError||Ne(e),-e.errno}}function Pt(e,t){var r=yt.mappings[e];if(0===t||!r)return-28;if(t===r.len){var n=_t.getStream(r.fd);n&&(2&r.prot&&yt.doMsync(e,n,t,r.flags,r.offset),_t.munmap(n)),yt.mappings[e]=null,r.allocated&&bl(r.malloc)}return 0}function Mt(e,t){try{return Pt(e,t)}catch(e){return void 0!==_t&&e instanceof _t.ErrnoError||Ne(e),-e.errno}}function Rt(e,t,r){yt.varargs=r;try{var n=yt.getStr(e),o=r?yt.get():0;return _t.open(n,t,o).fd}catch(e){return void 0!==_t&&e instanceof _t.ErrnoError||Ne(e),-e.errno}}function St(e,t){try{return e=yt.getStr(e),yt.doStat(_t.stat,e,t)}catch(e){return void 0!==_t&&e instanceof _t.ErrnoError||Ne(e),-e.errno}}function xt(e,t){Ne("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")}function At(e,t){Ne("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")}var Ft={};function kt(e){for(;e.length;){var t=e.pop();e.pop()(t)}}function It(e){return this.fromWireType(z[e>>2])}var Ct={},jt={},Ut={},Nt=48,Lt=57;function Ht(e){if(void 0===e)return"_unknown";var t=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return t>=Nt&&t<=Lt?"_"+e:e}function Xt(e,t){return e=Ht(e),new Function("body","return function "+e+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(t)}function Qt(e,t){var r=Xt(t,(function(e){this.name=t,this.message=e;var r=new Error(e).stack;void 0!==r&&(this.stack=this.toString()+"\n"+r.replace(/^Error(:[^\n]*)?\n/,""))}));return r.prototype=Object.create(e.prototype),r.prototype.constructor=r,r.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},r}var Bt=void 0;function Gt(e){throw new Bt(e)}function Wt(e,t,r){function n(t){var n=r(t);n.length!==e.length&&Gt("Mismatched type converter count");for(var o=0;o<e.length;++o)rr(e[o],n[o])}e.forEach((function(e){Ut[e]=t}));var o=new Array(t.length),i=[],a=0;t.forEach((function(e,t){jt.hasOwnProperty(e)?o[t]=jt[e]:(i.push(e),Ct.hasOwnProperty(e)||(Ct[e]=[]),Ct[e].push((function(){o[t]=jt[e],++a===i.length&&n(o)})))})),0===i.length&&n(o)}function Vt(e){var t=Ft[e];delete Ft[e];var r=t.elements,n=r.length,o=r.map((function(e){return e.getterReturnType})).concat(r.map((function(e){return e.setterArgumentType}))),i=t.rawConstructor,a=t.rawDestructor;Wt([e],o,(function(e){return r.forEach((function(t,r){var o=e[r],i=t.getter,a=t.getterContext,s=e[r+n],c=t.setter,u=t.setterContext;t.read=function(e){return o.fromWireType(i(a,e))},t.write=function(e,t){var r=[];c(u,e,s.toWireType(r,t)),kt(r)}})),[{name:t.name,fromWireType:function(e){for(var t=new Array(n),o=0;o<n;++o)t[o]=r[o].read(e);return a(e),t},toWireType:function(e,o){if(n!==o.length)throw new TypeError("Incorrect number of tuple elements for "+t.name+": expected="+n+", actual="+o.length);for(var s=i(),c=0;c<n;++c)r[c].write(s,o[c]);return null!==e&&e.push(a,s),s},argPackAdvance:8,readValueFromPointer:It,destructorFunction:a}]}))}var qt={};function zt(e){var t=qt[e];delete qt[e];var r=t.rawConstructor,n=t.rawDestructor,o=t.fields;Wt([e],o.map((function(e){return e.getterReturnType})).concat(o.map((function(e){return e.setterArgumentType}))),(function(e){var i={};return o.forEach((function(t,r){var n=t.fieldName,a=e[r],s=t.getter,c=t.getterContext,u=e[r+o.length],d=t.setter,l=t.setterContext;i[n]={read:function(e){return a.fromWireType(s(c,e))},write:function(e,t){var r=[];d(l,e,u.toWireType(r,t)),kt(r)}}})),[{name:t.name,fromWireType:function(e){var t={};for(var r in i)t[r]=i[r].read(e);return n(e),t},toWireType:function(e,t){for(var o in i)if(!(o in t))throw new TypeError('Missing field: "'+o+'"');var a=r();for(o in i)i[o].write(a,t[o]);return null!==e&&e.push(n,a),a},argPackAdvance:8,readValueFromPointer:It,destructorFunction:n}]}))}function Yt(e,t,r,n,o){}function $t(e){switch(e){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+e)}}function Zt(){for(var e=new Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);Kt=e}var Kt=void 0;function Jt(e){for(var t="",r=e;G[r];)t+=Kt[G[r++]];return t}var er=void 0;function tr(e){throw new er(e)}function rr(e,t,r){if(r=r||{},!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");var n=t.name;if(e||tr('type "'+n+'" must have a positive integer typeid pointer'),jt.hasOwnProperty(e)){if(r.ignoreDuplicateRegistrations)return;tr("Cannot register type '"+n+"' twice")}if(jt[e]=t,delete Ut[e],Ct.hasOwnProperty(e)){var o=Ct[e];delete Ct[e],o.forEach((function(e){e()}))}}function nr(e,t,r,n,o){var i=$t(r);rr(e,{name:t=Jt(t),fromWireType:function(e){return!!e},toWireType:function(e,t){return t?n:o},argPackAdvance:8,readValueFromPointer:function(e){var n;if(1===r)n=B;else if(2===r)n=W;else{if(4!==r)throw new TypeError("Unknown boolean type size: "+t);n=q}return this.fromWireType(n[e>>i])},destructorFunction:null})}function or(e){if(!(this instanceof vr))return!1;if(!(e instanceof vr))return!1;for(var t=this.$$.ptrType.registeredClass,r=this.$$.ptr,n=e.$$.ptrType.registeredClass,o=e.$$.ptr;t.baseClass;)r=t.upcast(r),t=t.baseClass;for(;n.baseClass;)o=n.upcast(o),n=n.baseClass;return t===n&&r===o}function ir(e){return{count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType}}function ar(e){tr(e.$$.ptrType.registeredClass.name+" instance already deleted")}var sr=!1;function cr(e){}function ur(e){e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)}function dr(e){e.count.value-=1,0===e.count.value&&ur(e)}function lr(e){return"undefined"==typeof FinalizationRegistry?(lr=function(e){return e},e):(sr=new FinalizationRegistry((function(e){console.warn(e.leakWarning.stack.replace(/^Error: /,"")),dr(e.$$)})),cr=function(e){sr.unregister(e)},(lr=function(e){var t=e.$$,r={$$:t},n=t.ptrType.registeredClass;return r.leakWarning=new Error("Embind found a leaked C++ instance "+n.name+" <0x"+t.ptr.toString(16)+">.\nWe'll free it automatically in this case, but this functionality is not reliable across various environments.\nMake sure to invoke .delete() manually once you're done with the instance instead.\nOriginally allocated"),"captureStackTrace"in Error&&Error.captureStackTrace(r.leakWarning,n.constructor),sr.register(e,r,e),e})(e))}function fr(){if(this.$$.ptr||ar(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e=lr(Object.create(Object.getPrototypeOf(this),{$$:{value:ir(this.$$)}}));return e.$$.count.value+=1,e.$$.deleteScheduled=!1,e}function pr(){this.$$.ptr||ar(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&tr("Object already scheduled for deletion"),cr(this),dr(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function mr(){return!this.$$.ptr}var gr=void 0,Er=[];function hr(){for(;Er.length;){var e=Er.pop();e.$$.deleteScheduled=!1,e.delete()}}function _r(){return this.$$.ptr||ar(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&tr("Object already scheduled for deletion"),Er.push(this),1===Er.length&&gr&&gr(hr),this.$$.deleteScheduled=!0,this}function yr(){vr.prototype.isAliasOf=or,vr.prototype.clone=fr,vr.prototype.delete=pr,vr.prototype.isDeleted=mr,vr.prototype.deleteLater=_r}function vr(){}var wr={};function br(e,t,r){if(void 0===e[t].overloadTable){var n=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||tr("Function '"+r+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+e[t].overloadTable+")!"),e[t].overloadTable[arguments.length].apply(this,arguments)},e[t].overloadTable=[],e[t].overloadTable[n.argCount]=n}}function Or(e,t,r){o.hasOwnProperty(e)?((void 0===r||void 0!==o[e].overloadTable&&void 0!==o[e].overloadTable[r])&&tr("Cannot register public name '"+e+"' twice"),br(o,e,e),o.hasOwnProperty(r)&&tr("Cannot register multiple overloads of a function with the same number of arguments ("+r+")!"),o[e].overloadTable[r]=t):(o[e]=t,void 0!==r&&(o[e].numArguments=r))}function Tr(e,t,r,n,o,i,a,s){this.name=e,this.constructor=t,this.instancePrototype=r,this.rawDestructor=n,this.baseClass=o,this.getActualType=i,this.upcast=a,this.downcast=s,this.pureVirtualFunctions=[]}function Dr(e,t,r){for(;t!==r;)t.upcast||tr("Expected null or instance of "+r.name+", got an instance of "+t.name),e=t.upcast(e),t=t.baseClass;return e}function Pr(e,t){if(null===t)return this.isReference&&tr("null is not a valid "+this.name),0;t.$$||tr('Cannot pass "'+hn(t)+'" as a '+this.name),t.$$.ptr||tr("Cannot pass deleted object as a pointer of type "+this.name);var r=t.$$.ptrType.registeredClass;return Dr(t.$$.ptr,r,this.registeredClass)}function Mr(e,t){var r;if(null===t)return this.isReference&&tr("null is not a valid "+this.name),this.isSmartPointer?(r=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,r),r):0;t.$$||tr('Cannot pass "'+hn(t)+'" as a '+this.name),t.$$.ptr||tr("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&t.$$.ptrType.isConst&&tr("Cannot convert argument of type "+(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name)+" to parameter type "+this.name);var n=t.$$.ptrType.registeredClass;if(r=Dr(t.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&&tr("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?r=t.$$.smartPtr:tr("Cannot convert argument of type "+(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name)+" to parameter type "+this.name);break;case 1:r=t.$$.smartPtr;break;case 2:if(t.$$.smartPtrType===this)r=t.$$.smartPtr;else{var o=t.clone();r=this.rawShare(r,ln.toHandle((function(){o.delete()}))),null!==e&&e.push(this.rawDestructor,r)}break;default:tr("Unsupporting sharing policy")}return r}function Rr(e,t){if(null===t)return this.isReference&&tr("null is not a valid "+this.name),0;t.$$||tr('Cannot pass "'+hn(t)+'" as a '+this.name),t.$$.ptr||tr("Cannot pass deleted object as a pointer of type "+this.name),t.$$.ptrType.isConst&&tr("Cannot convert argument of type "+t.$$.ptrType.name+" to parameter type "+this.name);var r=t.$$.ptrType.registeredClass;return Dr(t.$$.ptr,r,this.registeredClass)}function Sr(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e}function xr(e){this.rawDestructor&&this.rawDestructor(e)}function Ar(e){null!==e&&e.delete()}function Fr(e,t,r){if(t===r)return e;if(void 0===r.baseClass)return null;var n=Fr(e,t,r.baseClass);return null===n?null:r.downcast(n)}function kr(){return Object.keys(Ur).length}function Ir(){var e=[];for(var t in Ur)Ur.hasOwnProperty(t)&&e.push(Ur[t]);return e}function Cr(e){gr=e,Er.length&&gr&&gr(hr)}function jr(){o.getInheritedInstanceCount=kr,o.getLiveInheritedInstances=Ir,o.flushPendingDeletes=hr,o.setDelayFunction=Cr}var Ur={};function Nr(e,t){for(void 0===t&&tr("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t}function Lr(e,t){return t=Nr(e,t),Ur[t]}function Hr(e,t){return t.ptrType&&t.ptr||Gt("makeClassHandle requires ptr and ptrType"),!!t.smartPtrType!=!!t.smartPtr&&Gt("Both smartPtrType and smartPtr must be specified"),t.count={value:1},lr(Object.create(e,{$$:{value:t}}))}function Xr(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var r=Lr(this.registeredClass,t);if(void 0!==r){if(0===r.$$.count.value)return r.$$.ptr=t,r.$$.smartPtr=e,r.clone();var n=r.clone();return this.destructor(e),n}function o(){return this.isSmartPointer?Hr(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):Hr(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var i,a=this.registeredClass.getActualType(t),s=wr[a];if(!s)return o.call(this);i=this.isConst?s.constPointerType:s.pointerType;var c=Fr(t,this.registeredClass,i.registeredClass);return null===c?o.call(this):this.isSmartPointer?Hr(i.registeredClass.instancePrototype,{ptrType:i,ptr:c,smartPtrType:this,smartPtr:e}):Hr(i.registeredClass.instancePrototype,{ptrType:i,ptr:c})}function Qr(){Br.prototype.getPointee=Sr,Br.prototype.destructor=xr,Br.prototype.argPackAdvance=8,Br.prototype.readValueFromPointer=It,Br.prototype.deleteObject=Ar,Br.prototype.fromWireType=Xr}function Br(e,t,r,n,o,i,a,s,c,u,d){this.name=e,this.registeredClass=t,this.isReference=r,this.isConst=n,this.isSmartPointer=o,this.pointeeType=i,this.sharingPolicy=a,this.rawGetPointee=s,this.rawConstructor=c,this.rawShare=u,this.rawDestructor=d,o||void 0!==t.baseClass?this.toWireType=Mr:n?(this.toWireType=Pr,this.destructorFunction=null):(this.toWireType=Rr,this.destructorFunction=null)}function Gr(e,t,r){o.hasOwnProperty(e)||Gt("Replacing nonexistant public symbol"),void 0!==o[e].overloadTable&&void 0!==r?o[e].overloadTable[r]=t:(o[e]=t,o[e].argCount=r)}function Wr(e,t,r){C("dynCall_"+e in o,"bad function pointer type - no table for sig '"+e+"'"),r&&r.length?C(r.length===e.substring(1).replace(/j/g,"--").length):C(1==e.length);var n=o["dynCall_"+e];return r&&r.length?n.apply(null,[t].concat(r)):n.call(null,t)}function Vr(e,t,r){return e.includes("j")?Wr(e,t,r):(C(Je(t),"missing table entry in dynCall: "+t),Je(t).apply(null,r))}function qr(e,t){C(e.includes("j"),"getDynCaller should only be called with i64 sigs");var r=[];return function(){r.length=arguments.length;for(var n=0;n<arguments.length;n++)r[n]=arguments[n];return Vr(e,t,r)}}function zr(e,t){var r=(e=Jt(e)).includes("j")?qr(e,t):Je(t);return"function"!=typeof r&&tr("unknown function pointer with signature "+e+": "+t),r}var Yr=void 0;function $r(e){var t=Tl(e),r=Jt(t);return bl(t),r}function Zr(e,t){var r=[],n={};throw t.forEach((function e(t){n[t]||jt[t]||(Ut[t]?Ut[t].forEach(e):(r.push(t),n[t]=!0))})),new Yr(e+": "+r.map($r).join([", "]))}function Kr(e,t,r,n,o,i,a,s,c,u,d,l,f){d=Jt(d),i=zr(o,i),s&&(s=zr(a,s)),u&&(u=zr(c,u)),f=zr(l,f);var p=Ht(d);Or(p,(function(){Zr("Cannot construct "+d+" due to unbound types",[n])})),Wt([e,t,r],n?[n]:[],(function(t){var r,o;t=t[0],o=n?(r=t.registeredClass).instancePrototype:vr.prototype;var a=Xt(p,(function(){if(Object.getPrototypeOf(this)!==c)throw new er("Use 'new' to construct "+d);if(void 0===l.constructor_body)throw new er(d+" has no accessible constructor");var e=l.constructor_body[arguments.length];if(void 0===e)throw new er("Tried to invoke ctor of "+d+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(l.constructor_body).toString()+") parameters instead!");return e.apply(this,arguments)})),c=Object.create(o,{constructor:{value:a}});a.prototype=c;var l=new Tr(d,a,c,f,r,i,s,u),m=new Br(d,l,!0,!1,!1),g=new Br(d+"*",l,!1,!1,!1),E=new Br(d+" const*",l,!1,!0,!1);return wr[e]={pointerType:g,constPointerType:E},Gr(p,a),[m,g,E]}))}function Jr(e,t){for(var r=[],n=0;n<e;n++)r.push(q[(t>>2)+n]);return r}function en(e,t,r,n,o,i){C(t>0);var a=Jr(t,r);o=zr(n,o),Wt([],[e],(function(e){var r="constructor "+(e=e[0]).name;if(void 0===e.registeredClass.constructor_body&&(e.registeredClass.constructor_body=[]),void 0!==e.registeredClass.constructor_body[t-1])throw new er("Cannot register multiple constructors with identical number of parameters ("+(t-1)+") for class '"+e.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return e.registeredClass.constructor_body[t-1]=function(){Zr("Cannot construct "+e.name+" due to unbound types",a)},Wt([],a,(function(n){return n.splice(1,0,null),e.registeredClass.constructor_body[t-1]=rn(r,n,null,o,i),[]})),[]}))}function tn(e,t){if(!(e instanceof Function))throw new TypeError("new_ called with constructor type "+typeof e+" which is not a function");var r=Xt(e.name||"unknownFunctionName",(function(){}));r.prototype=e.prototype;var n=new r,o=e.apply(n,t);return o instanceof Object?o:n}function rn(e,t,r,n,o){var i=t.length;i<2&&tr("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var a=null!==t[1]&&null!==r,s=!1,c=1;c<t.length;++c)if(null!==t[c]&&void 0===t[c].destructorFunction){s=!0;break}var u="void"!==t[0].name,d="",l="";for(c=0;c<i-2;++c)d+=(0!==c?", ":"")+"arg"+c,l+=(0!==c?", ":"")+"arg"+c+"Wired";var f="return function "+Ht(e)+"("+d+") {\nif (arguments.length !== "+(i-2)+") {\nthrowBindingError('function "+e+" called with ' + arguments.length + ' arguments, expected "+(i-2)+" args!');\n}\n";s&&(f+="var destructors = [];\n");var p=s?"destructors":"null",m=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],g=[tr,n,o,kt,t[0],t[1]];for(a&&(f+="var thisWired = classParam.toWireType("+p+", this);\n"),c=0;c<i-2;++c)f+="var arg"+c+"Wired = argType"+c+".toWireType("+p+", arg"+c+"); // "+t[c+2].name+"\n",m.push("argType"+c),g.push(t[c+2]);if(a&&(l="thisWired"+(l.length>0?", ":"")+l),f+=(u?"var rv = ":"")+"invoker(fn"+(l.length>0?", ":"")+l+");\n",s)f+="runDestructors(destructors);\n";else for(c=a?1:2;c<t.length;++c){var E=1===c?"thisWired":"arg"+(c-2)+"Wired";null!==t[c].destructorFunction&&(f+=E+"_dtor("+E+"); // "+t[c].name+"\n",m.push(E+"_dtor"),g.push(t[c].destructorFunction))}return u&&(f+="var ret = retType.fromWireType(rv);\nreturn ret;\n"),f+="}\n",m.push(f),tn(Function,m).apply(null,g)}function nn(e,t,r,n,o,i,a,s){var c=Jr(r,n);t=Jt(t),i=zr(o,i),Wt([],[e],(function(e){var n=(e=e[0]).name+"."+t;function o(){Zr("Cannot call "+n+" due to unbound types",c)}t.startsWith("@@")&&(t=Symbol[t.substring(2)]),s&&e.registeredClass.pureVirtualFunctions.push(t);var u=e.registeredClass.instancePrototype,d=u[t];return void 0===d||void 0===d.overloadTable&&d.className!==e.name&&d.argCount===r-2?(o.argCount=r-2,o.className=e.name,u[t]=o):(br(u,t,n),u[t].overloadTable[r-2]=o),Wt([],c,(function(o){var s=rn(n,o,e,i,a);return void 0===u[t].overloadTable?(s.argCount=r-2,u[t]=s):u[t].overloadTable[r-2]=s,[]})),[]}))}var on=[],an=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function sn(e){e>4&&0==--an[e].refcount&&(an[e]=void 0,on.push(e))}function cn(){for(var e=0,t=5;t<an.length;++t)void 0!==an[t]&&++e;return e}function un(){for(var e=5;e<an.length;++e)if(void 0!==an[e])return an[e];return null}function dn(){o.count_emval_handles=cn,o.get_first_emval=un}var ln={toValue:function(e){return e||tr("Cannot use deleted val. handle = "+e),an[e].value},toHandle:function(e){switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var t=on.length?on.pop():an.length;return an[t]={refcount:1,value:e},t}}};function fn(e,t){rr(e,{name:t=Jt(t),fromWireType:function(e){var t=ln.toValue(e);return sn(e),t},toWireType:function(e,t){return ln.toHandle(t)},argPackAdvance:8,readValueFromPointer:It,destructorFunction:null})}function pn(e,t,r){switch(t){case 0:return function(e){var t=r?B:G;return this.fromWireType(t[e])};case 1:return function(e){var t=r?W:V;return this.fromWireType(t[e>>1])};case 2:return function(e){var t=r?q:z;return this.fromWireType(t[e>>2])};default:throw new TypeError("Unknown integer type: "+e)}}function mn(e,t,r,n){var o=$t(r);function i(){}t=Jt(t),i.values={},rr(e,{name:t,constructor:i,fromWireType:function(e){return this.constructor.values[e]},toWireType:function(e,t){return t.value},argPackAdvance:8,readValueFromPointer:pn(t,o,n),destructorFunction:null}),Or(t,i)}function gn(e,t){var r=jt[e];return void 0===r&&tr(t+" has unknown type "+$r(e)),r}function En(e,t,r){var n=gn(e,"enum");t=Jt(t);var o=n.constructor,i=Object.create(n.constructor.prototype,{value:{value:r},constructor:{value:Xt(n.name+"_"+t,(function(){}))}});o.values[r]=i,o[t]=i}function hn(e){if(null===e)return"null";var t=typeof e;return"object"===t||"array"===t||"function"===t?e.toString():""+e}function _n(e,t){switch(t){case 2:return function(e){return this.fromWireType(Y[e>>2])};case 3:return function(e){return this.fromWireType($[e>>3])};default:throw new TypeError("Unknown float type: "+e)}}function yn(e,t,r){var n=$t(r);rr(e,{name:t=Jt(t),fromWireType:function(e){return e},toWireType:function(e,t){if("number"!=typeof t&&"boolean"!=typeof t)throw new TypeError('Cannot convert "'+hn(t)+'" to '+this.name);return t},argPackAdvance:8,readValueFromPointer:_n(t,n),destructorFunction:null})}function vn(e,t,r,n,o,i){var a=Jr(t,r);e=Jt(e),o=zr(n,o),Or(e,(function(){Zr("Cannot call "+e+" due to unbound types",a)}),t-1),Wt([],a,(function(r){var n=[r[0],null].concat(r.slice(1));return Gr(e,rn(e,n,null,o,i),t-1),[]}))}function wn(e,t,r){switch(t){case 0:return r?function(e){return B[e]}:function(e){return G[e]};case 1:return r?function(e){return W[e>>1]}:function(e){return V[e>>1]};case 2:return r?function(e){return q[e>>2]}:function(e){return z[e>>2]};default:throw new TypeError("Unknown integer type: "+e)}}function bn(e,t,r,n,o){t=Jt(t),-1===o&&(o=4294967295);var i=$t(r),a=function(e){return e};if(0===n){var s=32-8*r;a=function(e){return e<<s>>>s}}var c=t.includes("unsigned");rr(e,{name:t,fromWireType:a,toWireType:function(e,r){if("number"!=typeof r&&"boolean"!=typeof r)throw new TypeError('Cannot convert "'+hn(r)+'" to '+this.name);if(r<n||r>o)throw new TypeError('Passing a number "'+hn(r)+'" from JS side to C/C++ side to an argument of type "'+t+'", which is outside the valid range ['+n+", "+o+"]!");return c?r>>>0:0|r},argPackAdvance:8,readValueFromPointer:wn(t,i,0!==n),destructorFunction:null})}function On(e,t,r){var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function o(e){var t=z,r=t[e>>=2],o=t[e+1];return new n(Q,o,r)}rr(e,{name:r=Jt(r),fromWireType:o,argPackAdvance:8,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})}function Tn(e,t,r,n,o,i,a,s,c,u,d,l){r=Jt(r),i=zr(o,i),s=zr(a,s),u=zr(c,u),l=zr(d,l),Wt([e],[t],(function(e){return e=e[0],[new Br(r,e.registeredClass,!1,!1,!0,e,n,i,s,u,l)]}))}function Dn(e,t){var r="std::string"===(t=Jt(t));rr(e,{name:t,fromWireType:function(e){var t,n=z[e>>2];if(r)for(var o=e+4,i=0;i<=n;++i){var a=e+4+i;if(i==n||0==G[a]){var s=N(o,a-o);void 0===t?t=s:(t+=String.fromCharCode(0),t+=s),o=a+1}}else{var c=new Array(n);for(i=0;i<n;++i)c[i]=String.fromCharCode(G[e+4+i]);t=c.join("")}return bl(e),t},toWireType:function(e,t){t instanceof ArrayBuffer&&(t=new Uint8Array(t));var n="string"==typeof t;n||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int8Array||tr("Cannot pass non-string to std::string");var o=(r&&n?function(){return X(t)}:function(){return t.length})(),i=wl(4+o+1);if(z[i>>2]=o,r&&n)H(t,i+4,o+1);else if(n)for(var a=0;a<o;++a){var s=t.charCodeAt(a);s>255&&(bl(i),tr("String has UTF-16 code units that do not fit in 8 bits")),G[i+4+a]=s}else for(a=0;a<o;++a)G[i+4+a]=t[a];return null!==e&&e.push(bl,i),i},argPackAdvance:8,readValueFromPointer:It,destructorFunction:function(e){bl(e)}})}function Pn(e,t,r){var n,o,i,a,s;r=Jt(r),2===t?(n=K,o=J,a=ee,i=function(){return V},s=1):4===t&&(n=te,o=re,a=ne,i=function(){return z},s=2),rr(e,{name:r,fromWireType:function(e){for(var r,o=z[e>>2],a=i(),c=e+4,u=0;u<=o;++u){var d=e+4+u*t;if(u==o||0==a[d>>s]){var l=n(c,d-c);void 0===r?r=l:(r+=String.fromCharCode(0),r+=l),c=d+t}}return bl(e),r},toWireType:function(e,n){"string"!=typeof n&&tr("Cannot pass non-string to C++ string type "+r);var i=a(n),c=wl(4+i+t);return z[c>>2]=i>>s,o(n,c+4,i+t),null!==e&&e.push(bl,c),c},argPackAdvance:8,readValueFromPointer:It,destructorFunction:function(e){bl(e)}})}function Mn(e,t,r,n,o,i){Ft[e]={name:Jt(t),rawConstructor:zr(r,n),rawDestructor:zr(o,i),elements:[]}}function Rn(e,t,r,n,o,i,a,s,c){Ft[e].elements.push({getterReturnType:t,getter:zr(r,n),getterContext:o,setterArgumentType:i,setter:zr(a,s),setterContext:c})}function Sn(e,t,r,n,o,i){qt[e]={name:Jt(t),rawConstructor:zr(r,n),rawDestructor:zr(o,i),fields:[]}}function xn(e,t,r,n,o,i,a,s,c,u){qt[e].fields.push({fieldName:Jt(t),getterReturnType:r,getter:zr(n,o),getterContext:i,setterArgumentType:a,setter:zr(s,c),setterContext:u})}function An(e,t){rr(e,{isVoid:!0,name:t=Jt(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(e,t){}})}function Fn(){throw"longjmp"}function kn(e,t,r){e=ln.toValue(e),t=gn(t,"emval::as");var n=[],o=ln.toHandle(n);return q[r>>2]=o,t.toWireType(n,e)}function In(e,t){for(var r=new Array(e),n=0;n<e;++n)r[n]=gn(q[(t>>2)+n],"parameter "+n);return r}function Cn(e,t,r,n){e=ln.toValue(e);for(var o=In(t,r),i=new Array(t),a=0;a<t;++a){var s=o[a];i[a]=s.readValueFromPointer(n),n+=s.argPackAdvance}var c=e.apply(void 0,i);return ln.toHandle(c)}function jn(e){var t=[];return q[e>>2]=ln.toHandle(t),t}var Un={};function Nn(e){var t=Un[e];return void 0===t?Jt(e):t}var Ln=[];function Hn(e,t,r,n,o){return(e=Ln[e])(t=ln.toValue(t),r=Nn(r),jn(n),o)}function Xn(e,t,r,n){(e=Ln[e])(t=ln.toValue(t),r=Nn(r),null,n)}function Qn(){return"object"==typeof globalThis?globalThis:Function("return this")()}function Bn(e){return 0===e?ln.toHandle(Qn()):(e=Nn(e),ln.toHandle(Qn()[e]))}function Gn(e){var t=Ln.length;return Ln.push(e),t}function Wn(e,t){for(var r=In(e,t),n=r[0],o=n.name+"_$"+r.slice(1).map((function(e){return e.name})).join("_")+"$",i=["retType"],a=[n],s="",c=0;c<e-1;++c)s+=(0!==c?", ":"")+"arg"+c,i.push("argType"+c),a.push(r[1+c]);var u="return function "+Ht("methodCaller_"+o)+"(handle, name, destructors, args) {\n",d=0;for(c=0;c<e-1;++c)u+=" var arg"+c+" = argType"+c+".readValueFromPointer(args"+(d?"+"+d:"")+");\n",d+=r[c+1].argPackAdvance;for(u+=" var rv = handle[name]("+s+");\n",c=0;c<e-1;++c)r[c+1].deleteObject&&(u+=" argType"+c+".deleteObject(arg"+c+");\n");return n.isVoid||(u+=" return retType.toWireType(destructors, rv);\n"),u+="};\n",i.push(u),Gn(tn(Function,i).apply(null,a))}function Vn(e,t){return e=ln.toValue(e),t=ln.toValue(t),ln.toHandle(e[t])}function qn(e){e>4&&(an[e].refcount+=1)}function zn(e,t){return(e=ln.toValue(e))instanceof ln.toValue(t)}function Yn(e){return"string"==typeof(e=ln.toValue(e))}function $n(e){for(var t="",r=0;r<e;++r)t+=(0!==r?", ":"")+"arg"+r;var n="return function emval_allocator_"+e+"(constructor, argTypes, args) {\n";for(r=0;r<e;++r)n+="var argType"+r+" = requireRegisteredType(Module['HEAP32'][(argTypes >>> 2) + "+r+'], "parameter '+r+'");\nvar arg'+r+" = argType"+r+".readValueFromPointer(args);\nargs += argType"+r+"['argPackAdvance'];\n";return n+="var obj = new constructor("+t+");\nreturn valueToHandle(obj);\n}\n",new Function("requireRegisteredType","Module","valueToHandle",n)(gn,o,ln.toHandle)}var Zn,Kn={};function Jn(e,t,r,n){e=ln.toValue(e);var o=Kn[t];return o||(o=$n(t),Kn[t]=o),o(e,r,n)}function eo(){return ln.toHandle([])}function to(e){return ln.toHandle(Nn(e))}function ro(){return ln.toHandle({})}function no(e){kt(ln.toValue(e)),sn(e)}function oo(e,t,r){e=ln.toValue(e),t=ln.toValue(t),r=ln.toValue(r),e[t]=r}function io(e,t){var r=(e=gn(e,"_emval_take_value")).readValueFromPointer(t);return ln.toHandle(r)}function ao(e){throw ln.toValue(e)}function so(){Ne("native code called abort()")}Zn=function(){return performance.now()};var co=!0;function uo(e,t){var r;if(0===e)r=Date.now();else{if(1!==e&&4!==e||!co)return at(28),-1;r=Zn()}return q[t>>2]=r/1e3|0,q[t+4>>2]=r%1e3*1e3*1e3|0,0}function lo(e,t){if(ho.mainLoop.timingMode=e,ho.mainLoop.timingValue=t,!ho.mainLoop.func)return T("emscripten_set_main_loop_timing: Cannot set timing mode for main loop since a main loop does not exist! Call emscripten_set_main_loop first to set one up."),1;if(ho.mainLoop.running||(ho.mainLoop.running=!0),0==e)ho.mainLoop.scheduler=function(){var e=0|Math.max(0,ho.mainLoop.tickStartTime+t-Zn());setTimeout(ho.mainLoop.runner,e)},ho.mainLoop.method="timeout";else if(1==e)ho.mainLoop.scheduler=function(){ho.requestAnimationFrame(ho.mainLoop.runner)},ho.mainLoop.method="rAF";else if(2==e){if("undefined"==typeof setImmediate){var r=[],n="setimmediate";addEventListener("message",(function(e){e.data!==n&&e.data.target!==n||(e.stopPropagation(),r.shift()())}),!0),setImmediate=function(e){r.push(e),m?(void 0===o.setImmediates&&(o.setImmediates=[]),o.setImmediates.push(e),postMessage({target:n})):postMessage(n,"*")}}ho.mainLoop.scheduler=function(){setImmediate(ho.mainLoop.runner)},ho.mainLoop.method="immediate"}return 0}function fo(e){Zl(e)}function po(){if(!be())try{fo(k)}catch(e){et(e)}}function mo(e,t,r,n,i){C(!ho.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),ho.mainLoop.func=e,ho.mainLoop.arg=n;var a=ho.mainLoop.currentlyRunningMainloop;function s(){return!(a<ho.mainLoop.currentlyRunningMainloop&&(po(),1))}if(ho.mainLoop.running=!1,ho.mainLoop.runner=function(){if(!I)if(ho.mainLoop.queue.length>0){var t=Date.now(),r=ho.mainLoop.queue.shift();if(r.func(r.arg),ho.mainLoop.remainingBlockers){var n=ho.mainLoop.remainingBlockers,i=n%1==0?n-1:Math.floor(n);r.counted?ho.mainLoop.remainingBlockers=i:(i+=.5,ho.mainLoop.remainingBlockers=(8*n+i)/9)}if(O('main loop blocker "'+r.name+'" took '+(Date.now()-t)+" ms"),ho.mainLoop.updateStatus(),!s())return;setTimeout(ho.mainLoop.runner,0)}else s()&&(ho.mainLoop.currentFrameNumber=ho.mainLoop.currentFrameNumber+1|0,1==ho.mainLoop.timingMode&&ho.mainLoop.timingValue>1&&ho.mainLoop.currentFrameNumber%ho.mainLoop.timingValue!=0?ho.mainLoop.scheduler():(0==ho.mainLoop.timingMode&&(ho.mainLoop.tickStartTime=Zn()),"timeout"===ho.mainLoop.method&&o.ctx&&(D("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),ho.mainLoop.method=""),ho.mainLoop.runIter(e),pe(),s()&&("object"==typeof SDL&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),ho.mainLoop.scheduler())))},i||(t&&t>0?lo(0,1e3/t):lo(1,1),ho.mainLoop.scheduler()),r)throw"unwind"}function go(e,t){if(ve||I)T("user callback triggered after runtime exited or application aborted. Ignoring.");else if(t)e();else try{e()}catch(e){et(e)}}function Eo(e,t){return setTimeout((function(){go(e)}),t)}var ho={mainLoop:{running:!1,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){ho.mainLoop.scheduler=null,ho.mainLoop.currentlyRunningMainloop++},resume:function(){ho.mainLoop.currentlyRunningMainloop++;var e=ho.mainLoop.timingMode,t=ho.mainLoop.timingValue,r=ho.mainLoop.func;ho.mainLoop.func=null,mo(r,0,!1,ho.mainLoop.arg,!0),lo(e,t),ho.mainLoop.scheduler()},updateStatus:function(){if(o.setStatus){var e=o.statusMessage||"Please wait...",t=ho.mainLoop.remainingBlockers,r=ho.mainLoop.expectedBlockers;t?t<r?o.setStatus(e+" ("+(r-t)+"/"+r+")"):o.setStatus(e):o.setStatus("")}},runIter:function(e){if(!I){if(o.preMainLoop&&!1===o.preMainLoop())return;go(e),o.postMainLoop&&o.postMainLoop()}}},isFullscreen:!1,pointerLock:!1,moduleContextCreatedCallbacks:[],workers:[],init:function(){if(o.preloadPlugins||(o.preloadPlugins=[]),!ho.initted){ho.initted=!0;try{new Blob,ho.hasBlobConstructor=!0}catch(e){ho.hasBlobConstructor=!1,O("warning: no blob constructor, cannot create blobs with mimetypes")}ho.BlobBuilder="undefined"!=typeof MozBlobBuilder?MozBlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:ho.hasBlobConstructor?null:O("warning: no BlobBuilder"),ho.URLObject="undefined"!=typeof window?window.URL?window.URL:window.webkitURL:void 0,o.noImageDecoding||void 0!==ho.URLObject||(O("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),o.noImageDecoding=!0);var e={canHandle:function(e){return!o.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(e)},handle:function(e,t,r,n){var i=null;if(ho.hasBlobConstructor)try{(i=new Blob([e],{type:ho.getMimetype(t)})).size!==e.length&&(i=new Blob([new Uint8Array(e).buffer],{type:ho.getMimetype(t)}))}catch(e){D("Blob constructor present but fails: "+e+"; falling back to blob builder")}if(!i){var a=new ho.BlobBuilder;a.append(new Uint8Array(e).buffer),i=a.getBlob()}var s=ho.URLObject.createObjectURL(i);C("string"==typeof s,"createObjectURL must return a url as a string");var c=new Image;c.onload=function(){C(c.complete,"Image "+t+" could not be decoded");var n=document.createElement("canvas");n.width=c.width,n.height=c.height,n.getContext("2d").drawImage(c,0,0),o.preloadedImages[t]=n,ho.URLObject.revokeObjectURL(s),r&&r(e)},c.onerror=function(e){O("Image "+s+" could not be decoded"),n&&n()},c.src=s}};o.preloadPlugins.push(e);var t={canHandle:function(e){return!o.noAudioDecoding&&e.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},handle:function(e,t,r,n){var i=!1;function a(n){i||(i=!0,o.preloadedAudios[t]=n,r&&r(e))}function s(){i||(i=!0,o.preloadedAudios[t]=new Audio,n&&n())}if(!ho.hasBlobConstructor)return s();try{var c=new Blob([e],{type:ho.getMimetype(t)})}catch(e){return s()}var u=ho.URLObject.createObjectURL(c);C("string"==typeof u,"createObjectURL must return a url as a string");var d=new Audio;d.addEventListener("canplaythrough",(function(){a(d)}),!1),d.onerror=function(r){i||(O("warning: browser could not fully decode audio "+t+", trying slower base64 approach"),d.src="data:audio/x-"+t.substr(-3)+";base64,"+function(e){for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r="",n=0,o=0,i=0;i<e.length;i++)for(n=n<<8|e[i],o+=8;o>=6;){var a=n>>o-6&63;o-=6,r+=t[a]}return 2==o?(r+=t[(3&n)<<4],r+="=="):4==o&&(r+=t[(15&n)<<2],r+="="),r}(e),a(d))},d.src=u,Eo((function(){a(d)}),1e4)}};o.preloadPlugins.push(t);var r=o.canvas;r&&(r.requestPointerLock=r.requestPointerLock||r.mozRequestPointerLock||r.webkitRequestPointerLock||r.msRequestPointerLock||function(){},r.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},r.exitPointerLock=r.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",n,!1),document.addEventListener("mozpointerlockchange",n,!1),document.addEventListener("webkitpointerlockchange",n,!1),document.addEventListener("mspointerlockchange",n,!1),o.elementPointerLock&&r.addEventListener("click",(function(e){!ho.pointerLock&&o.canvas.requestPointerLock&&(o.canvas.requestPointerLock(),e.preventDefault())}),!1))}function n(){ho.pointerLock=document.pointerLockElement===o.canvas||document.mozPointerLockElement===o.canvas||document.webkitPointerLockElement===o.canvas||document.msPointerLockElement===o.canvas}},createContext:function(e,t,r,n){if(t&&o.ctx&&e==o.canvas)return o.ctx;var i,a;if(t){var s={antialias:!1,alpha:!1,majorVersion:"undefined"!=typeof WebGL2RenderingContext?2:1};if(n)for(var c in n)s[c]=n[c];void 0!==Po&&(a=Po.createContext(e,s))&&(i=Po.getContext(a).GLctx)}else i=e.getContext("2d");return i?(r&&(t||C(void 0===ll,"cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),o.ctx=i,t&&Po.makeContextCurrent(a),o.useWebGL=t,ho.moduleContextCreatedCallbacks.forEach((function(e){e()})),ho.init()),i):null},destroyContext:function(e,t,r){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(e,t){ho.lockPointer=e,ho.resizeCanvas=t,void 0===ho.lockPointer&&(ho.lockPointer=!0),void 0===ho.resizeCanvas&&(ho.resizeCanvas=!1);var r=o.canvas;function n(){ho.isFullscreen=!1;var e=r.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===e?(r.exitFullscreen=ho.exitFullscreen,ho.lockPointer&&r.requestPointerLock(),ho.isFullscreen=!0,ho.resizeCanvas?ho.setFullscreenCanvasSize():ho.updateCanvasDimensions(r)):(e.parentNode.insertBefore(r,e),e.parentNode.removeChild(e),ho.resizeCanvas?ho.setWindowedCanvasSize():ho.updateCanvasDimensions(r)),o.onFullScreen&&o.onFullScreen(ho.isFullscreen),o.onFullscreen&&o.onFullscreen(ho.isFullscreen)}ho.fullscreenHandlersInstalled||(ho.fullscreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",n,!1),document.addEventListener("mozfullscreenchange",n,!1),document.addEventListener("webkitfullscreenchange",n,!1),document.addEventListener("MSFullscreenChange",n,!1));var i=document.createElement("div");r.parentNode.insertBefore(i,r),i.appendChild(r),i.requestFullscreen=i.requestFullscreen||i.mozRequestFullScreen||i.msRequestFullscreen||(i.webkitRequestFullscreen?function(){i.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(i.webkitRequestFullScreen?function(){i.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),i.requestFullscreen()},requestFullScreen:function(){Ne("Module.requestFullScreen has been replaced by Module.requestFullscreen (without a capital S)")},exitFullscreen:function(){return!!ho.isFullscreen&&((document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){}).apply(document,[]),!0)},nextRAF:0,fakeRequestAnimationFrame:function(e){var t=Date.now();if(0===ho.nextRAF)ho.nextRAF=t+1e3/60;else for(;t+2>=ho.nextRAF;)ho.nextRAF+=1e3/60;var r=Math.max(ho.nextRAF-t,0);setTimeout(e,r)},requestAnimationFrame:function(e){"function"!=typeof requestAnimationFrame?(0,ho.fakeRequestAnimationFrame)(e):requestAnimationFrame(e)},safeSetTimeout:function(e){return Eo(e)},safeRequestAnimationFrame:function(e){return ho.requestAnimationFrame((function(){go(e)}))},getMimetype:function(e){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[e.substr(e.lastIndexOf(".")+1)]},getUserMedia:function(e){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(e)},getMovementX:function(e){return e.movementX||e.mozMovementX||e.webkitMovementX||0},getMovementY:function(e){return e.movementY||e.mozMovementY||e.webkitMovementY||0},getMouseWheelDelta:function(e){var t=0;switch(e.type){case"DOMMouseScroll":t=e.detail/3;break;case"mousewheel":t=e.wheelDelta/120;break;case"wheel":switch(t=e.deltaY,e.deltaMode){case 0:t/=100;break;case 1:t/=3;break;case 2:t*=80;break;default:throw"unrecognized mouse wheel delta mode: "+e.deltaMode}break;default:throw"unrecognized mouse wheel event: "+e.type}return t},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(e){if(ho.pointerLock)"mousemove"!=e.type&&"mozMovementX"in e?ho.mouseMovementX=ho.mouseMovementY=0:(ho.mouseMovementX=ho.getMovementX(e),ho.mouseMovementY=ho.getMovementY(e)),"undefined"!=typeof SDL?(ho.mouseX=SDL.mouseX+ho.mouseMovementX,ho.mouseY=SDL.mouseY+ho.mouseMovementY):(ho.mouseX+=ho.mouseMovementX,ho.mouseY+=ho.mouseMovementY);else{var t=o.canvas.getBoundingClientRect(),r=o.canvas.width,n=o.canvas.height,i=void 0!==window.scrollX?window.scrollX:window.pageXOffset,a=void 0!==window.scrollY?window.scrollY:window.pageYOffset;if(C(void 0!==i&&void 0!==a,"Unable to retrieve scroll position, mouse positions likely broken."),"touchstart"===e.type||"touchend"===e.type||"touchmove"===e.type){var s=e.touch;if(void 0===s)return;var c=s.pageX-(i+t.left),u=s.pageY-(a+t.top),d={x:c*=r/t.width,y:u*=n/t.height};if("touchstart"===e.type)ho.lastTouches[s.identifier]=d,ho.touches[s.identifier]=d;else if("touchend"===e.type||"touchmove"===e.type){var l=ho.touches[s.identifier];l||(l=d),ho.lastTouches[s.identifier]=l,ho.touches[s.identifier]=d}return}var f=e.pageX-(i+t.left),p=e.pageY-(a+t.top);f*=r/t.width,p*=n/t.height,ho.mouseMovementX=f-ho.mouseX,ho.mouseMovementY=p-ho.mouseY,ho.mouseX=f,ho.mouseY=p}},resizeListeners:[],updateResizeListeners:function(){var e=o.canvas;ho.resizeListeners.forEach((function(t){t(e.width,e.height)}))},setCanvasSize:function(e,t,r){var n=o.canvas;ho.updateCanvasDimensions(n,e,t),r||ho.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if("undefined"!=typeof SDL){var e=z[SDL.screen>>2];e|=8388608,q[SDL.screen>>2]=e}ho.updateCanvasDimensions(o.canvas),ho.updateResizeListeners()},setWindowedCanvasSize:function(){if("undefined"!=typeof SDL){var e=z[SDL.screen>>2];e&=-8388609,q[SDL.screen>>2]=e}ho.updateCanvasDimensions(o.canvas),ho.updateResizeListeners()},updateCanvasDimensions:function(e,t,r){t&&r?(e.widthNative=t,e.heightNative=r):(t=e.widthNative,r=e.heightNative);var n=t,i=r;if(o.forcedAspectRatio&&o.forcedAspectRatio>0&&(n/i<o.forcedAspectRatio?n=Math.round(i*o.forcedAspectRatio):i=Math.round(n/o.forcedAspectRatio)),(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===e.parentNode&&"undefined"!=typeof screen){var a=Math.min(screen.width/n,screen.height/i);n=Math.round(n*a),i=Math.round(i*a)}ho.resizeCanvas?(e.width!=n&&(e.width=n),e.height!=i&&(e.height=i),void 0!==e.style&&(e.style.removeProperty("width"),e.style.removeProperty("height"))):(e.width!=t&&(e.width=t),e.height!=r&&(e.height=r),void 0!==e.style&&(n!=t||i!=r?(e.style.setProperty("width",n+"px","important"),e.style.setProperty("height",i+"px","important")):(e.style.removeProperty("width"),e.style.removeProperty("height"))))}},_o={errorCode:12288,defaultDisplayInitialized:!1,currentContext:0,currentReadSurface:0,currentDrawSurface:0,contextAttributes:{alpha:!1,depth:!1,stencil:!1,antialias:!1},stringCache:{},setErrorCode:function(e){_o.errorCode=e},chooseConfig:function(e,t,r,n,o){if(62e3!=e)return _o.setErrorCode(12296),0;if(t)for(;;){var i=q[t>>2];if(12321==i){var a=q[t+4>>2];_o.contextAttributes.alpha=a>0}else if(12325==i){var s=q[t+4>>2];_o.contextAttributes.depth=s>0}else if(12326==i){var c=q[t+4>>2];_o.contextAttributes.stencil=c>0}else if(12337==i){var u=q[t+4>>2];_o.contextAttributes.antialias=u>0}else if(12338==i)u=q[t+4>>2],_o.contextAttributes.antialias=1==u;else if(12544==i){var d=q[t+4>>2];_o.contextAttributes.lowLatency=12547!=d}else if(12344==i)break;t+=8}return r&&n||o?(o&&(q[o>>2]=1),r&&n>0&&(q[r>>2]=62002),_o.setErrorCode(12288),1):(_o.setErrorCode(12300),0)}};function yo(e,t,r,n,o){return _o.chooseConfig(e,t,r,n,o)}function vo(e){var t=e.getExtension("ANGLE_instanced_arrays");if(t)return e.vertexAttribDivisor=function(e,r){t.vertexAttribDivisorANGLE(e,r)},e.drawArraysInstanced=function(e,r,n,o){t.drawArraysInstancedANGLE(e,r,n,o)},e.drawElementsInstanced=function(e,r,n,o,i){t.drawElementsInstancedANGLE(e,r,n,o,i)},1}function wo(e){var t=e.getExtension("OES_vertex_array_object");if(t)return e.createVertexArray=function(){return t.createVertexArrayOES()},e.deleteVertexArray=function(e){t.deleteVertexArrayOES(e)},e.bindVertexArray=function(e){t.bindVertexArrayOES(e)},e.isVertexArray=function(e){return t.isVertexArrayOES(e)},1}function bo(e){var t=e.getExtension("WEBGL_draw_buffers");if(t)return e.drawBuffers=function(e,r){t.drawBuffersWEBGL(e,r)},1}function Oo(e){return!!(e.dibvbi=e.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"))}function To(e){return!!(e.mdibvbi=e.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"))}function Do(e){return!!(e.multiDrawWebgl=e.getExtension("WEBGL_multi_draw"))}var Po={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],stringCache:{},stringiCache:{},unpackAlignment:4,recordError:function(e){Po.lastError||(Po.lastError=e)},getNewId:function(e){for(var t=Po.counter++,r=e.length;r<t;r++)e[r]=null;return t},getSource:function(e,t,r,n){for(var o="",i=0;i<t;++i){var a=n?q[n+4*i>>2]:-1;o+=N(q[r+4*i>>2],a<0?void 0:a)}return o},createContext:function(e,t){e.getContextSafariWebGL2Fixed||(e.getContextSafariWebGL2Fixed=e.getContext,e.getContext=function(t,r){var n=e.getContextSafariWebGL2Fixed(t,r);return"webgl"==t==n instanceof WebGLRenderingContext?n:null});var r=t.majorVersion>1?e.getContext("webgl2",t):e.getContext("webgl",t);return r?Po.registerContext(r,t):0},registerContext:function(e,t){var r=Po.getNewId(Po.contexts),n={handle:r,attributes:t,version:t.majorVersion,GLctx:e};return e.canvas&&(e.canvas.GLctxObject=n),Po.contexts[r]=n,(void 0===t.enableExtensionsByDefault||t.enableExtensionsByDefault)&&Po.initExtensions(n),r},makeContextCurrent:function(e){return Po.currentContext=Po.contexts[e],o.ctx=ll=Po.currentContext&&Po.currentContext.GLctx,!(e&&!ll)},getContext:function(e){return Po.contexts[e]},deleteContext:function(e){Po.currentContext===Po.contexts[e]&&(Po.currentContext=null),"object"==typeof Ad&&Ad.removeAllHandlersOnTarget(Po.contexts[e].GLctx.canvas),Po.contexts[e]&&Po.contexts[e].GLctx.canvas&&(Po.contexts[e].GLctx.canvas.GLctxObject=void 0),Po.contexts[e]=null},initExtensions:function(e){if(e||(e=Po.currentContext),!e.initExtensionsDone){e.initExtensionsDone=!0;var t=e.GLctx;vo(t),wo(t),bo(t),Oo(t),To(t),e.version>=2&&(t.disjointTimerQueryExt=t.getExtension("EXT_disjoint_timer_query_webgl2")),(e.version<2||!t.disjointTimerQueryExt)&&(t.disjointTimerQueryExt=t.getExtension("EXT_disjoint_timer_query")),Do(t),(t.getSupportedExtensions()||[]).forEach((function(e){e.includes("lose_context")||e.includes("debug")||t.getExtension(e)}))}}};function Mo(e,t,r,n){if(62e3!=e)return _o.setErrorCode(12296),0;for(var i=1;;){var a=q[n>>2];if(12440!=a){if(12344==a)break;return _o.setErrorCode(12292),0}i=q[n+4>>2],n+=8}return i<2||i>3?(_o.setErrorCode(12293),0):(_o.contextAttributes.majorVersion=i-1,_o.contextAttributes.minorVersion=0,_o.context=Po.createContext(o.canvas,_o.contextAttributes),0!=_o.context?(_o.setErrorCode(12288),Po.makeContextCurrent(_o.context),o.useWebGL=!0,ho.moduleContextCreatedCallbacks.forEach((function(e){e()})),Po.makeContextCurrent(null),62004):(_o.setErrorCode(12297),0))}function Ro(e,t,r,n){return 62e3!=e?(_o.setErrorCode(12296),0):62002!=t?(_o.setErrorCode(12293),0):(_o.setErrorCode(12288),62006)}function So(e,t){return 62e3!=e?(_o.setErrorCode(12296),0):62004!=t?(_o.setErrorCode(12294),0):(Po.deleteContext(_o.context),_o.setErrorCode(12288),_o.currentContext==t&&(_o.currentContext=0),1)}function xo(e,t){return 62e3!=e?(_o.setErrorCode(12296),0):62006!=t?(_o.setErrorCode(12301),1):(_o.currentReadSurface==t&&(_o.currentReadSurface=0),_o.currentDrawSurface==t&&(_o.currentDrawSurface=0),_o.setErrorCode(12288),1)}function Ao(e,t,r,n){if(62e3!=e)return _o.setErrorCode(12296),0;if(62002!=t)return _o.setErrorCode(12293),0;if(!n)return _o.setErrorCode(12300),0;switch(_o.setErrorCode(12288),r){case 12320:return q[n>>2]=_o.contextAttributes.alpha?32:24,1;case 12321:return q[n>>2]=_o.contextAttributes.alpha?8:0,1;case 12322:case 12323:case 12324:return q[n>>2]=8,1;case 12325:return q[n>>2]=_o.contextAttributes.depth?24:0,1;case 12326:return q[n>>2]=_o.contextAttributes.stencil?8:0,1;case 12327:return q[n>>2]=12344,1;case 12328:return q[n>>2]=62002,1;case 12329:return q[n>>2]=0,1;case 12330:return q[n>>2]=4096,1;case 12331:return q[n>>2]=16777216,1;case 12332:return q[n>>2]=4096,1;case 12333:case 12334:return q[n>>2]=0,1;case 12335:return q[n>>2]=12344,1;case 12337:return q[n>>2]=_o.contextAttributes.antialias?4:0,1;case 12338:return q[n>>2]=_o.contextAttributes.antialias?1:0,1;case 12339:return q[n>>2]=4,1;case 12340:return q[n>>2]=12344,1;case 12341:case 12342:case 12343:return q[n>>2]=-1,1;case 12345:case 12346:case 12347:return q[n>>2]=0,1;case 12348:return q[n>>2]=1,1;case 12349:case 12350:return q[n>>2]=0,1;case 12351:return q[n>>2]=12430,1;case 12352:return q[n>>2]=4,1;case 12354:return q[n>>2]=0,1;default:return _o.setErrorCode(12292),0}}function Fo(e){return _o.setErrorCode(12288),62e3}function ko(){return _o.errorCode}function Io(e,t,r){return 62e3==e?(t&&(q[t>>2]=1),r&&(q[r>>2]=4),_o.defaultDisplayInitialized=!0,_o.setErrorCode(12288),1):(_o.setErrorCode(12296),0)}function Co(e,t,r,n){return 62e3!=e?(_o.setErrorCode(12296),0):0!=n&&62004!=n?(_o.setErrorCode(12294),0):0!=r&&62006!=r||0!=t&&62006!=t?(_o.setErrorCode(12301),0):(Po.makeContextCurrent(n?_o.context:null),_o.currentContext=n,_o.currentDrawSurface=t,_o.currentReadSurface=r,_o.setErrorCode(12288),1)}function jo(){if(_o.defaultDisplayInitialized)if(o.ctx){if(!o.ctx.isContextLost())return _o.setErrorCode(12288),1;_o.setErrorCode(12302)}else _o.setErrorCode(12290);else _o.setErrorCode(12289);return 0}function Uo(e){return 62e3!=e?(_o.setErrorCode(12296),0):(_o.currentContext=0,_o.currentReadSurface=0,_o.currentDrawSurface=0,_o.defaultDisplayInitialized=!1,_o.setErrorCode(12288),1)}function No(e){C("number"==typeof e),T(N(e))}function Lo(e){C("number"==typeof e),O(N(e))}function Ho(e){C("number"==typeof e),console.warn(N(e))}function Xo(){}function Qo(){return 2147483648}function Bo(e){ll.activeTexture(e)}function Go(e,t){ll.attachShader(Po.programs[e],Po.shaders[t])}function Wo(e,t){ll.beginQuery(e,Po.queries[t])}function Vo(e,t){ll.disjointTimerQueryExt.beginQueryEXT(e,Po.queries[t])}function qo(e){ll.beginTransformFeedback(e)}function zo(e,t,r){ll.bindAttribLocation(Po.programs[e],t,N(r))}function Yo(e,t){35051==e?ll.currentPixelPackBufferBinding=t:35052==e&&(ll.currentPixelUnpackBufferBinding=t),ll.bindBuffer(e,Po.buffers[t])}function $o(e,t,r){ll.bindBufferBase(e,t,Po.buffers[r])}function Zo(e,t,r,n,o){ll.bindBufferRange(e,t,Po.buffers[r],n,o)}function Ko(e,t){ll.bindFramebuffer(e,Po.framebuffers[t])}function Jo(e,t){ll.bindRenderbuffer(e,Po.renderbuffers[t])}function ei(e,t){ll.bindSampler(e,Po.samplers[t])}function ti(e,t){ll.bindTexture(e,Po.textures[t])}function ri(e,t){ll.bindTransformFeedback(e,Po.transformFeedbacks[t])}function ni(e){ll.bindVertexArray(Po.vaos[e])}function oi(e){ll.bindVertexArray(Po.vaos[e])}function ii(e,t,r,n){ll.blendColor(e,t,r,n)}function ai(e){ll.blendEquation(e)}function si(e,t){ll.blendEquationSeparate(e,t)}function ci(e,t){ll.blendFunc(e,t)}function ui(e,t,r,n){ll.blendFuncSeparate(e,t,r,n)}function di(e,t,r,n,o,i,a,s,c,u){ll.blitFramebuffer(e,t,r,n,o,i,a,s,c,u)}function li(e,t,r,n){Po.currentContext.version>=2?r?ll.bufferData(e,G,n,r,t):ll.bufferData(e,t,n):ll.bufferData(e,r?G.subarray(r,r+t):t,n)}function fi(e,t,r,n){Po.currentContext.version>=2?ll.bufferSubData(e,t,G,n,r):ll.bufferSubData(e,t,G.subarray(n,n+r))}function pi(e){return ll.checkFramebufferStatus(e)}function mi(e){ll.clear(e)}function gi(e,t,r,n){ll.clearBufferfi(e,t,r,n)}function Ei(e,t,r){ll.clearBufferfv(e,t,Y,r>>2)}function hi(e,t,r){ll.clearBufferiv(e,t,q,r>>2)}function _i(e,t,r){ll.clearBufferuiv(e,t,z,r>>2)}function yi(e,t,r,n){ll.clearColor(e,t,r,n)}function vi(e){ll.clearDepth(e)}function wi(e){ll.clearStencil(e)}function bi(e,t){return C(t===(0|t)),(e>>>0)+4294967296*t}function Oi(e,t,r,n){return ll.clientWaitSync(Po.syncs[e],t,bi(r,n))}function Ti(e,t,r,n){ll.colorMask(!!e,!!t,!!r,!!n)}function Di(e){ll.compileShader(Po.shaders[e])}function Pi(e,t,r,n,o,i,a,s){Po.currentContext.version>=2?ll.currentPixelUnpackBufferBinding?ll.compressedTexImage2D(e,t,r,n,o,i,a,s):ll.compressedTexImage2D(e,t,r,n,o,i,G,s,a):ll.compressedTexImage2D(e,t,r,n,o,i,s?G.subarray(s,s+a):null)}function Mi(e,t,r,n,o,i,a,s,c){ll.currentPixelUnpackBufferBinding?ll.compressedTexImage3D(e,t,r,n,o,i,a,s,c):ll.compressedTexImage3D(e,t,r,n,o,i,a,G,c,s)}function Ri(e,t,r,n,o,i,a,s,c){Po.currentContext.version>=2?ll.currentPixelUnpackBufferBinding?ll.compressedTexSubImage2D(e,t,r,n,o,i,a,s,c):ll.compressedTexSubImage2D(e,t,r,n,o,i,a,G,c,s):ll.compressedTexSubImage2D(e,t,r,n,o,i,a,c?G.subarray(c,c+s):null)}function Si(e,t,r,n,o,i,a,s,c,u,d){ll.currentPixelUnpackBufferBinding?ll.compressedTexSubImage3D(e,t,r,n,o,i,a,s,c,u,d):ll.compressedTexSubImage3D(e,t,r,n,o,i,a,s,c,G,d,u)}function xi(e,t,r,n,o){ll.copyBufferSubData(e,t,r,n,o)}function Ai(e,t,r,n,o,i,a,s){ll.copyTexImage2D(e,t,r,n,o,i,a,s)}function Fi(e,t,r,n,o,i,a,s){ll.copyTexSubImage2D(e,t,r,n,o,i,a,s)}function ki(e,t,r,n,o,i,a,s,c){ll.copyTexSubImage3D(e,t,r,n,o,i,a,s,c)}function Ii(){var e=Po.getNewId(Po.programs),t=ll.createProgram();return t.name=e,t.maxUniformLength=t.maxAttributeLength=t.maxUniformBlockNameLength=0,t.uniformIdCounter=1,Po.programs[e]=t,e}function Ci(e){var t=Po.getNewId(Po.shaders);return Po.shaders[t]=ll.createShader(e),t}function ji(e){ll.cullFace(e)}function Ui(e,t){for(var r=0;r<e;r++){var n=q[t+4*r>>2],o=Po.buffers[n];o&&(ll.deleteBuffer(o),o.name=0,Po.buffers[n]=null,n==ll.currentPixelPackBufferBinding&&(ll.currentPixelPackBufferBinding=0),n==ll.currentPixelUnpackBufferBinding&&(ll.currentPixelUnpackBufferBinding=0))}}function Ni(e,t){for(var r=0;r<e;++r){var n=q[t+4*r>>2],o=Po.framebuffers[n];o&&(ll.deleteFramebuffer(o),o.name=0,Po.framebuffers[n]=null)}}function Li(e){if(e){var t=Po.programs[e];t?(ll.deleteProgram(t),t.name=0,Po.programs[e]=null):Po.recordError(1281)}}function Hi(e,t){for(var r=0;r<e;r++){var n=q[t+4*r>>2],o=Po.queries[n];o&&(ll.deleteQuery(o),Po.queries[n]=null)}}function Xi(e,t){for(var r=0;r<e;r++){var n=q[t+4*r>>2],o=Po.queries[n];o&&(ll.disjointTimerQueryExt.deleteQueryEXT(o),Po.queries[n]=null)}}function Qi(e,t){for(var r=0;r<e;r++){var n=q[t+4*r>>2],o=Po.renderbuffers[n];o&&(ll.deleteRenderbuffer(o),o.name=0,Po.renderbuffers[n]=null)}}function Bi(e,t){for(var r=0;r<e;r++){var n=q[t+4*r>>2],o=Po.samplers[n];o&&(ll.deleteSampler(o),o.name=0,Po.samplers[n]=null)}}function Gi(e){if(e){var t=Po.shaders[e];t?(ll.deleteShader(t),Po.shaders[e]=null):Po.recordError(1281)}}function Wi(e){if(e){var t=Po.syncs[e];t?(ll.deleteSync(t),t.name=0,Po.syncs[e]=null):Po.recordError(1281)}}function Vi(e,t){for(var r=0;r<e;r++){var n=q[t+4*r>>2],o=Po.textures[n];o&&(ll.deleteTexture(o),o.name=0,Po.textures[n]=null)}}function qi(e,t){for(var r=0;r<e;r++){var n=q[t+4*r>>2],o=Po.transformFeedbacks[n];o&&(ll.deleteTransformFeedback(o),o.name=0,Po.transformFeedbacks[n]=null)}}function zi(e,t){for(var r=0;r<e;r++){var n=q[t+4*r>>2];ll.deleteVertexArray(Po.vaos[n]),Po.vaos[n]=null}}function Yi(e,t){for(var r=0;r<e;r++){var n=q[t+4*r>>2];ll.deleteVertexArray(Po.vaos[n]),Po.vaos[n]=null}}function $i(e){ll.depthFunc(e)}function Zi(e){ll.depthMask(!!e)}function Ki(e,t){ll.depthRange(e,t)}function Ji(e,t){ll.detachShader(Po.programs[e],Po.shaders[t])}function ea(e){ll.disable(e)}function ta(e){ll.disableVertexAttribArray(e)}function ra(e,t,r){ll.drawArrays(e,t,r)}function na(e,t,r,n){ll.drawArraysInstanced(e,t,r,n)}function oa(e,t,r,n){ll.drawArraysInstanced(e,t,r,n)}function ia(e,t,r,n){ll.drawArraysInstanced(e,t,r,n)}function aa(e,t,r,n,o){ll.dibvbi.drawArraysInstancedBaseInstanceWEBGL(e,t,r,n,o)}function sa(e,t,r,n){ll.drawArraysInstanced(e,t,r,n)}function ca(e,t,r,n){ll.drawArraysInstanced(e,t,r,n)}var ua=[];function da(e,t){for(var r=ua[e],n=0;n<e;n++)r[n]=q[t+4*n>>2];ll.drawBuffers(r)}function la(e,t){for(var r=ua[e],n=0;n<e;n++)r[n]=q[t+4*n>>2];ll.drawBuffers(r)}function fa(e,t){for(var r=ua[e],n=0;n<e;n++)r[n]=q[t+4*n>>2];ll.drawBuffers(r)}function pa(e,t,r,n){ll.drawElements(e,t,r,n)}function ma(e,t,r,n,o){ll.drawElementsInstanced(e,t,r,n,o)}function ga(e,t,r,n,o){ll.drawElementsInstanced(e,t,r,n,o)}function Ea(e,t,r,n,o){ll.drawElementsInstanced(e,t,r,n,o)}function ha(e,t,r,n,o,i,a){ll.dibvbi.drawElementsInstancedBaseVertexBaseInstanceWEBGL(e,t,r,n,o,i,a)}function _a(e,t,r,n,o){ll.drawElementsInstanced(e,t,r,n,o)}function ya(e,t,r,n,o){ll.drawElementsInstanced(e,t,r,n,o)}function va(e,t,r,n){ll.drawElements(e,t,r,n)}function wa(e,t,r,n,o,i){va(e,n,o,i)}function ba(e){ll.enable(e)}function Oa(e){ll.enableVertexAttribArray(e)}function Ta(e){ll.endQuery(e)}function Da(e){ll.disjointTimerQueryExt.endQueryEXT(e)}function Pa(){ll.endTransformFeedback()}function Ma(e,t){var r=ll.fenceSync(e,t);if(r){var n=Po.getNewId(Po.syncs);return r.name=n,Po.syncs[n]=r,n}return 0}function Ra(){ll.finish()}function Sa(){ll.flush()}function xa(e,t,r,n){ll.framebufferRenderbuffer(e,t,r,Po.renderbuffers[n])}function Aa(e,t,r,n,o){ll.framebufferTexture2D(e,t,r,Po.textures[n],o)}function Fa(e,t,r,n,o){ll.framebufferTextureLayer(e,t,Po.textures[r],n,o)}function ka(e){ll.frontFace(e)}function Ia(e,t,r,n){for(var o=0;o<e;o++){var i=ll[r](),a=i&&Po.getNewId(n);i?(i.name=a,n[a]=i):Po.recordError(1282),q[t+4*o>>2]=a}}function Ca(e,t){Ia(e,t,"createBuffer",Po.buffers)}function ja(e,t){Ia(e,t,"createFramebuffer",Po.framebuffers)}function Ua(e,t){Ia(e,t,"createQuery",Po.queries)}function Na(e,t){for(var r=0;r<e;r++){var n=ll.disjointTimerQueryExt.createQueryEXT();if(!n){for(Po.recordError(1282);r<e;)q[t+4*r++>>2]=0;return}var o=Po.getNewId(Po.queries);n.name=o,Po.queries[o]=n,q[t+4*r>>2]=o}}function La(e,t){Ia(e,t,"createRenderbuffer",Po.renderbuffers)}function Ha(e,t){Ia(e,t,"createSampler",Po.samplers)}function Xa(e,t){Ia(e,t,"createTexture",Po.textures)}function Qa(e,t){Ia(e,t,"createTransformFeedback",Po.transformFeedbacks)}function Ba(e,t){Ia(e,t,"createVertexArray",Po.vaos)}function Ga(e,t){Ia(e,t,"createVertexArray",Po.vaos)}function Wa(e){ll.generateMipmap(e)}function Va(e,t,r,n,o,i,a,s){t=Po.programs[t];var c=ll[e](t,r);if(c){var u=s&&H(c.name,s,n);o&&(q[o>>2]=u),i&&(q[i>>2]=c.size),a&&(q[a>>2]=c.type)}}function qa(e,t,r,n,o,i,a){Va("getActiveAttrib",e,t,r,n,o,i,a)}function za(e,t,r,n,o,i,a){Va("getActiveUniform",e,t,r,n,o,i,a)}function Ya(e,t,r,n,o){e=Po.programs[e];var i=ll.getActiveUniformBlockName(e,t);if(i)if(o&&r>0){var a=H(i,o,r);n&&(q[n>>2]=a)}else n&&(q[n>>2]=0)}function $a(e,t,r,n){if(n)if(e=Po.programs[e],35393!=r){var o=ll.getActiveUniformBlockParameter(e,t,r);if(null!==o)if(35395==r)for(var i=0;i<o.length;i++)q[n+4*i>>2]=o[i];else q[n>>2]=o}else{var a=ll.getActiveUniformBlockName(e,t);q[n>>2]=a.length+1}else Po.recordError(1281)}function Za(e,t,r,n,o){if(o)if(t>0&&0==r)Po.recordError(1281);else{e=Po.programs[e];for(var i=[],a=0;a<t;a++)i.push(q[r+4*a>>2]);var s=ll.getActiveUniforms(e,i,n);if(s){var c=s.length;for(a=0;a<c;a++)q[o+4*a>>2]=s[a]}}else Po.recordError(1281)}function Ka(e,t,r,n){var o=ll.getAttachedShaders(Po.programs[e]),i=o.length;i>t&&(i=t),q[r>>2]=i;for(var a=0;a<i;++a){var s=Po.shaders.indexOf(o[a]);q[n+4*a>>2]=s}}function Ja(e,t){return ll.getAttribLocation(Po.programs[e],N(t))}function es(e){return z[e>>2]+4294967296*q[e+4>>2]}function ts(e){return z[e>>2]+4294967296*z[e+4>>2]}function rs(e,t){z[e>>2]=t,z[e+4>>2]=(t-z[e>>2])/4294967296;var r=t>=0?ts(e):es(e);r!=t&&D("writeI53ToI64() out of range: serialized JS Number "+t+" to Wasm heap as bytes lo=0x"+z[e>>2].toString(16)+", hi=0x"+z[e+4>>2].toString(16)+", which deserializes back to "+r+" instead!")}function ns(e,t,r){if(t){var n=void 0;switch(e){case 36346:n=1;break;case 36344:return void(0!=r&&1!=r&&Po.recordError(1280));case 34814:case 36345:n=0;break;case 34466:var o=ll.getParameter(34467);n=o?o.length:0;break;case 33309:if(Po.currentContext.version<2)return void Po.recordError(1282);n=2*(ll.getSupportedExtensions()||[]).length;break;case 33307:case 33308:if(Po.currentContext.version<2)return void Po.recordError(1280);n=33307==e?3:0}if(void 0===n){var i=ll.getParameter(e);switch(typeof i){case"number":n=i;break;case"boolean":n=i?1:0;break;case"string":return void Po.recordError(1280);case"object":if(null===i)switch(e){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368:case 34068:n=0;break;default:return void Po.recordError(1280)}else{if(i instanceof Float32Array||i instanceof Uint32Array||i instanceof Int32Array||i instanceof Array){for(var a=0;a<i.length;++a)switch(r){case 0:q[t+4*a>>2]=i[a];break;case 2:Y[t+4*a>>2]=i[a];break;case 4:B[t+a>>0]=i[a]?1:0}return}try{n=0|i.name}catch(t){return Po.recordError(1280),void T("GL_INVALID_ENUM in glGet"+r+"v: Unknown object returned from WebGL getParameter("+e+")! (error: "+t+")")}}break;default:return Po.recordError(1280),void T("GL_INVALID_ENUM in glGet"+r+"v: Native code calling glGet"+r+"v("+e+") and it returns "+i+" of type "+typeof i+"!")}}switch(r){case 1:rs(t,n);break;case 0:q[t>>2]=n;break;case 2:Y[t>>2]=n;break;case 4:B[t>>0]=n?1:0}}else Po.recordError(1281)}function os(e,t){ns(e,t,4)}function is(e,t,r){r?rs(r,ll.getBufferParameter(e,t)):Po.recordError(1281)}function as(e,t,r){r?q[r>>2]=ll.getBufferParameter(e,t):Po.recordError(1281)}function ss(){var e=ll.getError()||Po.lastError;return Po.lastError=0,e}function cs(e,t){ns(e,t,2)}function us(e,t){return ll.getFragDataLocation(Po.programs[e],N(t))}function ds(e,t,r,n){var o=ll.getFramebufferAttachmentParameter(e,t,r);(o instanceof WebGLRenderbuffer||o instanceof WebGLTexture)&&(o=0|o.name),q[n>>2]=o}function ls(e,t,r,n){if(r){var o,i=ll.getIndexedParameter(e,t);switch(typeof i){case"boolean":o=i?1:0;break;case"number":o=i;break;case"object":if(null===i)switch(e){case 35983:case 35368:o=0;break;default:return void Po.recordError(1280)}else{if(!(i instanceof WebGLBuffer))return void Po.recordError(1280);o=0|i.name}break;default:return void Po.recordError(1280)}switch(n){case 1:rs(r,o);break;case 0:q[r>>2]=o;break;case 2:Y[r>>2]=o;break;case 4:B[r>>0]=o?1:0;break;default:throw"internal emscriptenWebGLGetIndexed() error, bad type: "+n}}else Po.recordError(1281)}function fs(e,t,r){ls(e,t,r,1)}function ps(e,t){ns(e,t,1)}function ms(e,t,r){ls(e,t,r,0)}function gs(e,t){ns(e,t,0)}function Es(e,t,r,n,o){if(n<0)Po.recordError(1281);else if(o){var i=ll.getInternalformatParameter(e,t,r);if(null!==i)for(var a=0;a<i.length&&a<n;++a)q[o+a>>2]=i[a]}else Po.recordError(1281)}function hs(e,t,r,n,o){Po.recordError(1282)}function _s(e,t,r,n){var o=ll.getProgramInfoLog(Po.programs[e]);null===o&&(o="(unknown error)");var i=t>0&&n?H(o,n,t):0;r&&(q[r>>2]=i)}function ys(e,t,r){if(r)if(e>=Po.counter)Po.recordError(1281);else if(e=Po.programs[e],35716==t){var n=ll.getProgramInfoLog(e);null===n&&(n="(unknown error)"),q[r>>2]=n.length+1}else if(35719==t){if(!e.maxUniformLength)for(var o=0;o<ll.getProgramParameter(e,35718);++o)e.maxUniformLength=Math.max(e.maxUniformLength,ll.getActiveUniform(e,o).name.length+1);q[r>>2]=e.maxUniformLength}else if(35722==t){if(!e.maxAttributeLength)for(o=0;o<ll.getProgramParameter(e,35721);++o)e.maxAttributeLength=Math.max(e.maxAttributeLength,ll.getActiveAttrib(e,o).name.length+1);q[r>>2]=e.maxAttributeLength}else if(35381==t){if(!e.maxUniformBlockNameLength)for(o=0;o<ll.getProgramParameter(e,35382);++o)e.maxUniformBlockNameLength=Math.max(e.maxUniformBlockNameLength,ll.getActiveUniformBlockName(e,o).length+1);q[r>>2]=e.maxUniformBlockNameLength}else q[r>>2]=ll.getProgramParameter(e,t);else Po.recordError(1281)}function vs(e,t,r){if(r){var n,o=Po.queries[e];rs(r,"boolean"==typeof(n=Po.currentContext.version<2?ll.disjointTimerQueryExt.getQueryObjectEXT(o,t):ll.getQueryParameter(o,t))?n?1:0:n)}else Po.recordError(1281)}function ws(e,t,r){if(r){var n,o=Po.queries[e],i=ll.disjointTimerQueryExt.getQueryObjectEXT(o,t);n="boolean"==typeof i?i?1:0:i,q[r>>2]=n}else Po.recordError(1281)}function bs(e,t,r){if(r){var n,o=Po.queries[e];rs(r,"boolean"==typeof(n=Po.currentContext.version<2?ll.disjointTimerQueryExt.getQueryObjectEXT(o,t):ll.getQueryParameter(o,t))?n?1:0:n)}else Po.recordError(1281)}function Os(e,t,r){if(r){var n,o=Po.queries[e],i=ll.getQueryParameter(o,t);n="boolean"==typeof i?i?1:0:i,q[r>>2]=n}else Po.recordError(1281)}function Ts(e,t,r){if(r){var n,o=Po.queries[e],i=ll.disjointTimerQueryExt.getQueryObjectEXT(o,t);n="boolean"==typeof i?i?1:0:i,q[r>>2]=n}else Po.recordError(1281)}function Ds(e,t,r){r?q[r>>2]=ll.getQuery(e,t):Po.recordError(1281)}function Ps(e,t,r){r?q[r>>2]=ll.disjointTimerQueryExt.getQueryEXT(e,t):Po.recordError(1281)}function Ms(e,t,r){r?q[r>>2]=ll.getRenderbufferParameter(e,t):Po.recordError(1281)}function Rs(e,t,r){r?Y[r>>2]=ll.getSamplerParameter(Po.samplers[e],t):Po.recordError(1281)}function Ss(e,t,r){r?q[r>>2]=ll.getSamplerParameter(Po.samplers[e],t):Po.recordError(1281)}function xs(e,t,r,n){var o=ll.getShaderInfoLog(Po.shaders[e]);null===o&&(o="(unknown error)");var i=t>0&&n?H(o,n,t):0;r&&(q[r>>2]=i)}function As(e,t,r,n){var o=ll.getShaderPrecisionFormat(e,t);q[r>>2]=o.rangeMin,q[r+4>>2]=o.rangeMax,q[n>>2]=o.precision}function Fs(e,t,r,n){var o=ll.getShaderSource(Po.shaders[e]);if(o){var i=t>0&&n?H(o,n,t):0;r&&(q[r>>2]=i)}}function ks(e,t,r){if(r)if(35716==t){var n=ll.getShaderInfoLog(Po.shaders[e]);null===n&&(n="(unknown error)");var o=n?n.length+1:0;q[r>>2]=o}else if(35720==t){var i=ll.getShaderSource(Po.shaders[e]),a=i?i.length+1:0;q[r>>2]=a}else q[r>>2]=ll.getShaderParameter(Po.shaders[e],t);else Po.recordError(1281)}function Is(e){var t=X(e)+1,r=wl(t);return H(e,r,t),r}function Cs(e){var t=Po.stringCache[e];if(!t){switch(e){case 7939:var r=ll.getSupportedExtensions()||[];t=Is((r=r.concat(r.map((function(e){return"GL_"+e})))).join(" "));break;case 7936:case 7937:case 37445:case 37446:var n=ll.getParameter(e);n||Po.recordError(1280),t=n&&Is(n);break;case 7938:var o=ll.getParameter(7938);t=Is(o=Po.currentContext.version>=2?"OpenGL ES 3.0 ("+o+")":"OpenGL ES 2.0 ("+o+")");break;case 35724:var i=ll.getParameter(35724),a=i.match(/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/);null!==a&&(3==a[1].length&&(a[1]=a[1]+"0"),i="OpenGL ES GLSL ES "+a[1]+" ("+i+")"),t=Is(i);break;default:Po.recordError(1280)}Po.stringCache[e]=t}return t}function js(e,t){if(Po.currentContext.version<2)return Po.recordError(1282),0;var r=Po.stringiCache[e];if(r)return t<0||t>=r.length?(Po.recordError(1281),0):r[t];switch(e){case 7939:var n=ll.getSupportedExtensions()||[];return n=(n=n.concat(n.map((function(e){return"GL_"+e})))).map((function(e){return Is(e)})),r=Po.stringiCache[e]=n,t<0||t>=r.length?(Po.recordError(1281),0):r[t];default:return Po.recordError(1280),0}}function Us(e,t,r,n,o){if(r<0)Po.recordError(1281);else if(o){var i=ll.getSyncParameter(Po.syncs[e],t);null!==i&&(q[o>>2]=i,n&&(q[n>>2]=1))}else Po.recordError(1281)}function Ns(e,t,r){r?Y[r>>2]=ll.getTexParameter(e,t):Po.recordError(1281)}function Ls(e,t,r){r?q[r>>2]=ll.getTexParameter(e,t):Po.recordError(1281)}function Hs(e,t,r,n,o,i,a){e=Po.programs[e];var s=ll.getTransformFeedbackVarying(e,t);if(s){if(a&&r>0){var c=H(s.name,a,r);n&&(q[n>>2]=c)}else n&&(q[n>>2]=0);o&&(q[o>>2]=s.size),i&&(q[i>>2]=s.type)}}function Xs(e,t){return ll.getUniformBlockIndex(Po.programs[e],N(t))}function Qs(e,t,r,n){if(n)if(t>0&&(0==r||0==n))Po.recordError(1281);else{e=Po.programs[e];for(var o=[],i=0;i<t;i++)o.push(N(q[r+4*i>>2]));var a=ll.getUniformIndices(e,o);if(a){var s=a.length;for(i=0;i<s;i++)q[n+4*i>>2]=a[i]}}else Po.recordError(1281)}function Bs(e){return parseInt(e)}function Gs(e){return"]"==e.slice(-1)&&e.lastIndexOf("[")}function Ws(e){var t,r,n=e.uniformLocsById,o=e.uniformSizeAndIdsByName;if(!n)for(e.uniformLocsById=n={},e.uniformArrayNamesById={},t=0;t<ll.getProgramParameter(e,35718);++t){var i=ll.getActiveUniform(e,t),a=i.name,s=i.size,c=Gs(a),u=c>0?a.slice(0,c):a,d=e.uniformIdCounter;for(e.uniformIdCounter+=s,o[u]=[s,d],r=0;r<s;++r)n[d]=r,e.uniformArrayNamesById[d++]=u}}function Vs(e,t){if(t=N(t),e=Po.programs[e]){Ws(e);var r=e.uniformLocsById,n=0,o=t,i=Gs(t);i>0&&(n=Bs(t.slice(i+1))>>>0,o=t.slice(0,i));var a=e.uniformSizeAndIdsByName[o];if(a&&n<a[0]&&(r[n+=a[1]]=r[n]||ll.getUniformLocation(e,t)))return n}else Po.recordError(1281);return-1}function qs(e){var t=ll.currentProgram;if(t){var r=t.uniformLocsById[e];return"number"==typeof r&&(t.uniformLocsById[e]=r=ll.getUniformLocation(t,t.uniformArrayNamesById[e]+(r>0?"["+r+"]":""))),r}Po.recordError(1282)}function zs(e,t,r,n){if(r){Ws(e=Po.programs[e]);var o=ll.getUniform(e,qs(t));if("number"==typeof o||"boolean"==typeof o)switch(n){case 0:q[r>>2]=o;break;case 2:Y[r>>2]=o}else for(var i=0;i<o.length;i++)switch(n){case 0:q[r+4*i>>2]=o[i];break;case 2:Y[r+4*i>>2]=o[i]}}else Po.recordError(1281)}function Ys(e,t,r){zs(e,t,r,2)}function $s(e,t,r){zs(e,t,r,0)}function Zs(e,t,r){zs(e,t,r,0)}function Ks(e,t,r,n){if(r){var o=ll.getVertexAttrib(e,t);if(34975==t)q[r>>2]=o&&o.name;else if("number"==typeof o||"boolean"==typeof o)switch(n){case 0:q[r>>2]=o;break;case 2:Y[r>>2]=o;break;case 5:q[r>>2]=Math.fround(o)}else for(var i=0;i<o.length;i++)switch(n){case 0:q[r+4*i>>2]=o[i];break;case 2:Y[r+4*i>>2]=o[i];break;case 5:q[r+4*i>>2]=Math.fround(o[i])}}else Po.recordError(1281)}function Js(e,t,r){Ks(e,t,r,0)}function ec(e,t,r){Ks(e,t,r,0)}function tc(e,t,r){r?q[r>>2]=ll.getVertexAttribOffset(e,t):Po.recordError(1281)}function rc(e,t,r){Ks(e,t,r,2)}function nc(e,t,r){Ks(e,t,r,5)}function oc(e,t){ll.hint(e,t)}function ic(e,t,r){for(var n=ua[t],o=0;o<t;o++)n[o]=q[r+4*o>>2];ll.invalidateFramebuffer(e,n)}function ac(e,t,r,n,o,i,a){for(var s=ua[t],c=0;c<t;c++)s[c]=q[r+4*c>>2];ll.invalidateSubFramebuffer(e,s,n,o,i,a)}function sc(e){var t=Po.buffers[e];return t?ll.isBuffer(t):0}function cc(e){return ll.isEnabled(e)}function uc(e){var t=Po.framebuffers[e];return t?ll.isFramebuffer(t):0}function dc(e){return(e=Po.programs[e])?ll.isProgram(e):0}function lc(e){var t=Po.queries[e];return t?ll.isQuery(t):0}function fc(e){var t=Po.queries[e];return t?ll.disjointTimerQueryExt.isQueryEXT(t):0}function pc(e){var t=Po.renderbuffers[e];return t?ll.isRenderbuffer(t):0}function mc(e){var t=Po.samplers[e];return t?ll.isSampler(t):0}function gc(e){var t=Po.shaders[e];return t?ll.isShader(t):0}function Ec(e){return ll.isSync(Po.syncs[e])}function hc(e){var t=Po.textures[e];return t?ll.isTexture(t):0}function _c(e){return ll.isTransformFeedback(Po.transformFeedbacks[e])}function yc(e){var t=Po.vaos[e];return t?ll.isVertexArray(t):0}function vc(e){var t=Po.vaos[e];return t?ll.isVertexArray(t):0}function wc(e){ll.lineWidth(e)}function bc(e){e=Po.programs[e],ll.linkProgram(e),e.uniformLocsById=0,e.uniformSizeAndIdsByName={}}function Oc(e,t,r,n,o,i){ll.mdibvbi.multiDrawArraysInstancedBaseInstanceWEBGL(e,q,t>>2,q,r>>2,q,n>>2,z,o>>2,i)}function Tc(e,t,r,n,o,i,a,s){ll.mdibvbi.multiDrawElementsInstancedBaseVertexBaseInstanceWEBGL(e,q,t>>2,r,q,n>>2,q,o>>2,q,i>>2,z,a>>2,s)}function Dc(){ll.pauseTransformFeedback()}function Pc(e,t){3317==e&&(Po.unpackAlignment=t),ll.pixelStorei(e,t)}function Mc(e,t){ll.polygonOffset(e,t)}function Rc(e,t,r,n){Po.recordError(1280)}function Sc(e,t,r){Po.recordError(1280)}function xc(e,t){ll.disjointTimerQueryExt.queryCounterEXT(Po.queries[e],t)}function Ac(e){ll.readBuffer(e)}function Fc(e,t,r,n){var o;return t*(e*r+(o=n)-1&-o)}function kc(e){return{5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4}[e-6402]||1}function Ic(e){return 0==(e-=5120)?B:1==e?G:2==e?W:4==e?q:6==e?Y:5==e||28922==e||28520==e||30779==e||30782==e?z:V}function Cc(e){return 31-Math.clz32(e.BYTES_PER_ELEMENT)}function jc(e,t,r,n,o,i){var a=Ic(e),s=Cc(a),c=1<<s,u=Fc(r,n,kc(t)*c,Po.unpackAlignment);return a.subarray(o>>s,o+u>>s)}function Uc(e,t,r,n,o,i,a){if(Po.currentContext.version>=2)if(ll.currentPixelPackBufferBinding)ll.readPixels(e,t,r,n,o,i,a);else{var s=Ic(i);ll.readPixels(e,t,r,n,o,i,s,a>>Cc(s))}else{var c=jc(i,o,r,n,a);c?ll.readPixels(e,t,r,n,o,i,c):Po.recordError(1280)}}function Nc(){}function Lc(e,t,r,n){ll.renderbufferStorage(e,t,r,n)}function Hc(e,t,r,n,o){ll.renderbufferStorageMultisample(e,t,r,n,o)}function Xc(){ll.resumeTransformFeedback()}function Qc(e,t){ll.sampleCoverage(e,!!t)}function Bc(e,t,r){ll.samplerParameterf(Po.samplers[e],t,r)}function Gc(e,t,r){var n=Y[r>>2];ll.samplerParameterf(Po.samplers[e],t,n)}function Wc(e,t,r){ll.samplerParameteri(Po.samplers[e],t,r)}function Vc(e,t,r){var n=q[r>>2];ll.samplerParameteri(Po.samplers[e],t,n)}function qc(e,t,r,n){ll.scissor(e,t,r,n)}function zc(){Po.recordError(1280)}function Yc(e,t,r,n){var o=Po.getSource(e,t,r,n);if(Po.currentContext.version>=2&&o.includes("#version 100")){var i="";(o=(o=o.replace(/#extension GL_OES_standard_derivatives : enable/g,"")).replace(/#extension GL_EXT_shader_texture_lod : enable/g,"")).includes("gl_FragColor")&&(i+="out mediump vec4 GL_FragColor;\n",o=o.replace(/gl_FragColor/g,"GL_FragColor")),o=(o=(o=(o=(o=(o=(o=(o=(o=(o=(o=(o=o.includes("attribute")?(o=o.replace(/attribute/g,"in")).replace(/varying/g,"out"):o.replace(/varying/g,"in")).replace(/textureCubeLodEXT/g,"textureCubeLod")).replace(/texture2DLodEXT/g,"texture2DLod")).replace(/texture2DProjLodEXT/g,"texture2DProjLod")).replace(/texture2DGradEXT/g,"texture2DGrad")).replace(/texture2DProjGradEXT/g,"texture2DProjGrad")).replace(/textureCubeGradEXT/g,"textureCubeGrad")).replace(/textureCube/g,"texture")).replace(/texture1D/g,"texture")).replace(/texture2D/g,"texture")).replace(/texture3D/g,"texture")).replace(/#version 100/g,"#version 300 es\n"+i)}ll.shaderSource(Po.shaders[e],o)}function $c(e,t,r){ll.stencilFunc(e,t,r)}function Zc(e,t,r,n){ll.stencilFuncSeparate(e,t,r,n)}function Kc(e){ll.stencilMask(e)}function Jc(e,t){ll.stencilMaskSeparate(e,t)}function eu(e,t,r){ll.stencilOp(e,t,r)}function tu(e,t,r,n){ll.stencilOpSeparate(e,t,r,n)}function ru(e,t,r,n,o,i,a,s,c){if(Po.currentContext.version>=2&&(6402==a&&6402==r&&5125==s&&(r=33190),36193==s&&(s=5131,6408==a&&6408==r&&(r=34842)),34041==r&&(r=35056)),Po.currentContext.version>=2)if(ll.currentPixelUnpackBufferBinding)ll.texImage2D(e,t,r,n,o,i,a,s,c);else if(c){var u=Ic(s);ll.texImage2D(e,t,r,n,o,i,a,s,u,c>>Cc(u))}else ll.texImage2D(e,t,r,n,o,i,a,s,null);else ll.texImage2D(e,t,r,n,o,i,a,s,c?jc(s,a,n,o,c):null)}function nu(e,t,r,n,o,i,a,s,c,u){if(ll.currentPixelUnpackBufferBinding)ll.texImage3D(e,t,r,n,o,i,a,s,c,u);else if(u){var d=Ic(c);ll.texImage3D(e,t,r,n,o,i,a,s,c,d,u>>Cc(d))}else ll.texImage3D(e,t,r,n,o,i,a,s,c,null)}function ou(e,t,r){ll.texParameterf(e,t,r)}function iu(e,t,r){var n=Y[r>>2];ll.texParameterf(e,t,n)}function au(e,t,r){ll.texParameteri(e,t,r)}function su(e,t,r){var n=q[r>>2];ll.texParameteri(e,t,n)}function cu(e,t,r,n,o){ll.texStorage2D(e,t,r,n,o)}function uu(e,t,r,n,o,i){ll.texStorage3D(e,t,r,n,o,i)}function du(e,t,r,n,o,i,a,s,c){if(Po.currentContext.version>=2&&36193==s&&(s=5131),Po.currentContext.version>=2)if(ll.currentPixelUnpackBufferBinding)ll.texSubImage2D(e,t,r,n,o,i,a,s,c);else if(c){var u=Ic(s);ll.texSubImage2D(e,t,r,n,o,i,a,s,u,c>>Cc(u))}else ll.texSubImage2D(e,t,r,n,o,i,a,s,null);else{var d=null;c&&(d=jc(s,a,o,i,c)),ll.texSubImage2D(e,t,r,n,o,i,a,s,d)}}function lu(e,t,r,n,o,i,a,s,c,u,d){if(ll.currentPixelUnpackBufferBinding)ll.texSubImage3D(e,t,r,n,o,i,a,s,c,u,d);else if(d){var l=Ic(u);ll.texSubImage3D(e,t,r,n,o,i,a,s,c,u,l,d>>Cc(l))}else ll.texSubImage3D(e,t,r,n,o,i,a,s,c,u,null)}function fu(e,t,r,n){e=Po.programs[e];for(var o=[],i=0;i<t;i++)o.push(N(q[r+4*i>>2]));ll.transformFeedbackVaryings(e,o,n)}function pu(e,t){ll.uniform1f(qs(e),t)}var mu=[];function gu(e,t,r){if(Po.currentContext.version>=2)ll.uniform1fv(qs(e),Y,r>>2,t);else{if(t<=288)for(var n=mu[t-1],o=0;o<t;++o)n[o]=Y[r+4*o>>2];else n=Y.subarray(r>>2,r+4*t>>2);ll.uniform1fv(qs(e),n)}}function Eu(e,t){ll.uniform1i(qs(e),t)}var hu=[];function _u(e,t,r){if(Po.currentContext.version>=2)ll.uniform1iv(qs(e),q,r>>2,t);else{if(t<=288)for(var n=hu[t-1],o=0;o<t;++o)n[o]=q[r+4*o>>2];else n=q.subarray(r>>2,r+4*t>>2);ll.uniform1iv(qs(e),n)}}function yu(e,t){ll.uniform1ui(qs(e),t)}function vu(e,t,r){ll.uniform1uiv(qs(e),z,r>>2,t)}function wu(e,t,r){ll.uniform2f(qs(e),t,r)}function bu(e,t,r){if(Po.currentContext.version>=2)ll.uniform2fv(qs(e),Y,r>>2,2*t);else{if(t<=144)for(var n=mu[2*t-1],o=0;o<2*t;o+=2)n[o]=Y[r+4*o>>2],n[o+1]=Y[r+(4*o+4)>>2];else n=Y.subarray(r>>2,r+8*t>>2);ll.uniform2fv(qs(e),n)}}function Ou(e,t,r){ll.uniform2i(qs(e),t,r)}function Tu(e,t,r){if(Po.currentContext.version>=2)ll.uniform2iv(qs(e),q,r>>2,2*t);else{if(t<=144)for(var n=hu[2*t-1],o=0;o<2*t;o+=2)n[o]=q[r+4*o>>2],n[o+1]=q[r+(4*o+4)>>2];else n=q.subarray(r>>2,r+8*t>>2);ll.uniform2iv(qs(e),n)}}function Du(e,t,r){ll.uniform2ui(qs(e),t,r)}function Pu(e,t,r){ll.uniform2uiv(qs(e),z,r>>2,2*t)}function Mu(e,t,r,n){ll.uniform3f(qs(e),t,r,n)}function Ru(e,t,r){if(Po.currentContext.version>=2)ll.uniform3fv(qs(e),Y,r>>2,3*t);else{if(t<=96)for(var n=mu[3*t-1],o=0;o<3*t;o+=3)n[o]=Y[r+4*o>>2],n[o+1]=Y[r+(4*o+4)>>2],n[o+2]=Y[r+(4*o+8)>>2];else n=Y.subarray(r>>2,r+12*t>>2);ll.uniform3fv(qs(e),n)}}function Su(e,t,r,n){ll.uniform3i(qs(e),t,r,n)}function xu(e,t,r){if(Po.currentContext.version>=2)ll.uniform3iv(qs(e),q,r>>2,3*t);else{if(t<=96)for(var n=hu[3*t-1],o=0;o<3*t;o+=3)n[o]=q[r+4*o>>2],n[o+1]=q[r+(4*o+4)>>2],n[o+2]=q[r+(4*o+8)>>2];else n=q.subarray(r>>2,r+12*t>>2);ll.uniform3iv(qs(e),n)}}function Au(e,t,r,n){ll.uniform3ui(qs(e),t,r,n)}function Fu(e,t,r){ll.uniform3uiv(qs(e),z,r>>2,3*t)}function ku(e,t,r,n,o){ll.uniform4f(qs(e),t,r,n,o)}function Iu(e,t,r){if(Po.currentContext.version>=2)ll.uniform4fv(qs(e),Y,r>>2,4*t);else{if(t<=72){var n=mu[4*t-1],o=Y;r>>=2;for(var i=0;i<4*t;i+=4){var a=r+i;n[i]=o[a],n[i+1]=o[a+1],n[i+2]=o[a+2],n[i+3]=o[a+3]}}else n=Y.subarray(r>>2,r+16*t>>2);ll.uniform4fv(qs(e),n)}}function Cu(e,t,r,n,o){ll.uniform4i(qs(e),t,r,n,o)}function ju(e,t,r){if(Po.currentContext.version>=2)ll.uniform4iv(qs(e),q,r>>2,4*t);else{if(t<=72)for(var n=hu[4*t-1],o=0;o<4*t;o+=4)n[o]=q[r+4*o>>2],n[o+1]=q[r+(4*o+4)>>2],n[o+2]=q[r+(4*o+8)>>2],n[o+3]=q[r+(4*o+12)>>2];else n=q.subarray(r>>2,r+16*t>>2);ll.uniform4iv(qs(e),n)}}function Uu(e,t,r,n,o){ll.uniform4ui(qs(e),t,r,n,o)}function Nu(e,t,r){ll.uniform4uiv(qs(e),z,r>>2,4*t)}function Lu(e,t,r){e=Po.programs[e],ll.uniformBlockBinding(e,t,r)}function Hu(e,t,r,n){if(Po.currentContext.version>=2)ll.uniformMatrix2fv(qs(e),!!r,Y,n>>2,4*t);else{if(t<=72)for(var o=mu[4*t-1],i=0;i<4*t;i+=4)o[i]=Y[n+4*i>>2],o[i+1]=Y[n+(4*i+4)>>2],o[i+2]=Y[n+(4*i+8)>>2],o[i+3]=Y[n+(4*i+12)>>2];else o=Y.subarray(n>>2,n+16*t>>2);ll.uniformMatrix2fv(qs(e),!!r,o)}}function Xu(e,t,r,n){ll.uniformMatrix2x3fv(qs(e),!!r,Y,n>>2,6*t)}function Qu(e,t,r,n){ll.uniformMatrix2x4fv(qs(e),!!r,Y,n>>2,8*t)}function Bu(e,t,r,n){if(Po.currentContext.version>=2)ll.uniformMatrix3fv(qs(e),!!r,Y,n>>2,9*t);else{if(t<=32)for(var o=mu[9*t-1],i=0;i<9*t;i+=9)o[i]=Y[n+4*i>>2],o[i+1]=Y[n+(4*i+4)>>2],o[i+2]=Y[n+(4*i+8)>>2],o[i+3]=Y[n+(4*i+12)>>2],o[i+4]=Y[n+(4*i+16)>>2],o[i+5]=Y[n+(4*i+20)>>2],o[i+6]=Y[n+(4*i+24)>>2],o[i+7]=Y[n+(4*i+28)>>2],o[i+8]=Y[n+(4*i+32)>>2];else o=Y.subarray(n>>2,n+36*t>>2);ll.uniformMatrix3fv(qs(e),!!r,o)}}function Gu(e,t,r,n){ll.uniformMatrix3x2fv(qs(e),!!r,Y,n>>2,6*t)}function Wu(e,t,r,n){ll.uniformMatrix3x4fv(qs(e),!!r,Y,n>>2,12*t)}function Vu(e,t,r,n){if(Po.currentContext.version>=2)ll.uniformMatrix4fv(qs(e),!!r,Y,n>>2,16*t);else{if(t<=18){var o=mu[16*t-1],i=Y;n>>=2;for(var a=0;a<16*t;a+=16){var s=n+a;o[a]=i[s],o[a+1]=i[s+1],o[a+2]=i[s+2],o[a+3]=i[s+3],o[a+4]=i[s+4],o[a+5]=i[s+5],o[a+6]=i[s+6],o[a+7]=i[s+7],o[a+8]=i[s+8],o[a+9]=i[s+9],o[a+10]=i[s+10],o[a+11]=i[s+11],o[a+12]=i[s+12],o[a+13]=i[s+13],o[a+14]=i[s+14],o[a+15]=i[s+15]}}else o=Y.subarray(n>>2,n+64*t>>2);ll.uniformMatrix4fv(qs(e),!!r,o)}}function qu(e,t,r,n){ll.uniformMatrix4x2fv(qs(e),!!r,Y,n>>2,8*t)}function zu(e,t,r,n){ll.uniformMatrix4x3fv(qs(e),!!r,Y,n>>2,12*t)}function Yu(e){e=Po.programs[e],ll.useProgram(e),ll.currentProgram=e}function $u(e){ll.validateProgram(Po.programs[e])}function Zu(e,t){ll.vertexAttrib1f(e,t)}function Ku(e,t){ll.vertexAttrib1f(e,Y[t>>2])}function Ju(e,t,r){ll.vertexAttrib2f(e,t,r)}function ed(e,t){ll.vertexAttrib2f(e,Y[t>>2],Y[t+4>>2])}function td(e,t,r,n){ll.vertexAttrib3f(e,t,r,n)}function rd(e,t){ll.vertexAttrib3f(e,Y[t>>2],Y[t+4>>2],Y[t+8>>2])}function nd(e,t,r,n,o){ll.vertexAttrib4f(e,t,r,n,o)}function od(e,t){ll.vertexAttrib4f(e,Y[t>>2],Y[t+4>>2],Y[t+8>>2],Y[t+12>>2])}function id(e,t){ll.vertexAttribDivisor(e,t)}function ad(e,t){ll.vertexAttribDivisor(e,t)}function sd(e,t){ll.vertexAttribDivisor(e,t)}function cd(e,t){ll.vertexAttribDivisor(e,t)}function ud(e,t){ll.vertexAttribDivisor(e,t)}function dd(e,t,r,n,o){ll.vertexAttribI4i(e,t,r,n,o)}function ld(e,t){ll.vertexAttribI4i(e,q[t>>2],q[t+4>>2],q[t+8>>2],q[t+12>>2])}function fd(e,t,r,n,o){ll.vertexAttribI4ui(e,t,r,n,o)}function pd(e,t){ll.vertexAttribI4ui(e,z[t>>2],z[t+4>>2],z[t+8>>2],z[t+12>>2])}function md(e,t,r,n,o){ll.vertexAttribIPointer(e,t,r,n,o)}function gd(e,t,r,n,o,i){ll.vertexAttribPointer(e,t,r,!!n,o,i)}function Ed(e,t,r,n){ll.viewport(e,t,r,n)}function hd(e,t,r,n){ll.waitSync(Po.syncs[e],t,bi(r,n))}function _d(e,t,r){G.copyWithin(e,t,t+r)}function yd(e){try{return x.grow(e-Q.byteLength+65535>>>16),ce(x.buffer),1}catch(t){T("emscripten_realloc_buffer: Attempted to grow heap from "+Q.byteLength+" bytes to "+e+" bytes, but got error: "+t)}}function vd(e){var t=G.length;C((e>>>=0)>t);var r=2147483648;if(e>r)return T("Cannot enlarge memory, asked to go up to "+e+" bytes, but the limit is 2147483648 bytes!"),!1;for(var n=1;n<=4;n*=2){var o=t*(1+.2/n);o=Math.min(o,e+100663296);var i=Math.min(r,se(Math.max(e,o),65536));if(yd(i))return!0}return T("Failed to grow the heap from "+t+" bytes to "+i+" bytes, not enough memory!"),!1}function wd(e){if(o.emscripten_ubq_asyncFetchStates.has(e)){const t=o.emscripten_ubq_asyncFetchStates.get(e);if(t.state==a.ALLOCATED)return!0;if(t.state==a.FINISHED){const r=t.result.length,n=o._malloc(r);return o.HEAPU8.set(t.result,n),t.resultAddress=n,t.resultLength=r,t.state=a.ALLOCATED,o.emscripten_ubq_asyncFetchStates.set(e,t),!0}}return!1}function bd(e,t,r,n){let i=o.UTF8ToString(e,t),a=o.UTF8ToString(r,n),s=o.emscripten_ubq_asyncFetchNextHeaderHandle++;return o.emscripten_ubq_asyncFetchHeaders.set(s,{key:i,value:a}),s}function Od(e){return o.emscripten_ubq_asyncFetchHeaders.has(e)?o.emscripten_ubq_asyncFetchHeaders.get(e):0}function Td(e,t,r,n,i,c,u,d,l){let f=o.UTF8ToString(t,r),p=o.UTF8ToString(d,l),m=o.emscripten_ubq_asyncFetchNextHandle++;o.emscripten_ubq_asyncFetchStates.set(m,{state:a.PENDING});let g={};for(let e=0;e<i;e++){const t=o.getValue(n+4*e,"i32"),r=o.emscripten_ubq_asyncFetchHeaders.get(t);g[r.key]=r.value}const E=s[e];let h;return"GET"!==E&&"HEAD"!==E&&(h=new Uint8Array(o.HEAPU8.buffer,c,u)),fetch(f,{method:E,headers:g,body:h,mode:"cors",credentials:p}).then((e=>{if(e.status>=200&&e.status<=209){let t=0;return e.headers.has("Content-Length")&&(t=+e.headers.get("Content-Length")),o.emscripten_ubq_asyncFetchTotalBytes.set(m,t),async function(e,t){const r=e.getReader();let n=0,i=[];for(;;){const{done:e,value:t}=await r.read();if(e)break;i.push(t),n+=t.length,o.emscripten_ubq_asyncFetchCompletedBytes.set(m,n)}let a=new Uint8Array(n),s=0;for(let e of i)a.set(e,s),s+=e.length;return a}(e.body)}return Promise.reject(e.statusText)})).then((e=>{o.emscripten_ubq_asyncFetchStates.set(m,{state:a.FINISHED,result:e})})).catch((e=>{o.emscripten_ubq_asyncFetchStates.set(m,{state:a.ERROR,error:e})})),m}function Dd(e){return!!o.emscripten_ubq_asyncFetchStates.has(e)&&(o.emscripten_ubq_asyncFetchStates.delete(e),!0)}function Pd(e){return o.emscripten_ubq_asyncFetchCompletedBytes.has(e)?o.emscripten_ubq_asyncFetchCompletedBytes.get(e):0}function Md(e){if(o.emscripten_ubq_asyncFetchStates.has(e)){const t=o.emscripten_ubq_asyncFetchStates.get(e);if(t.state==a.ALLOCATED)return t.resultAddress}return-1}function Rd(e){if(o.emscripten_ubq_asyncFetchStates.has(e)){const t=o.emscripten_ubq_asyncFetchStates.get(e);if(t.state==a.ALLOCATED)return t.resultLength}return-1}function Sd(e){return o.emscripten_ubq_asyncFetchStates.has(e)?o.emscripten_ubq_asyncFetchStates.get(e).state:-1}function xd(e){return o.emscripten_ubq_asyncFetchTotalBytes.has(e)?o.emscripten_ubq_asyncFetchTotalBytes.get(e):0}var Ad={inEventHandler:0,removeAllEventListeners:function(){for(var e=Ad.eventHandlers.length-1;e>=0;--e)Ad._removeHandler(e);Ad.eventHandlers=[],Ad.deferredCalls=[]},registerRemoveEventListeners:function(){Ad.removeEventListenersRegistered||(he.push(Ad.removeAllEventListeners),Ad.removeEventListenersRegistered=!0)},deferredCalls:[],deferCall:function(e,t,r){function n(e,t){if(e.length!=t.length)return!1;for(var r in e)if(e[r]!=t[r])return!1;return!0}for(var o in Ad.deferredCalls){var i=Ad.deferredCalls[o];if(i.targetFunction==e&&n(i.argsList,r))return}Ad.deferredCalls.push({targetFunction:e,precedence:t,argsList:r}),Ad.deferredCalls.sort((function(e,t){return e.precedence<t.precedence}))},removeDeferredCalls:function(e){for(var t=0;t<Ad.deferredCalls.length;++t)Ad.deferredCalls[t].targetFunction==e&&(Ad.deferredCalls.splice(t,1),--t)},canPerformEventHandlerRequests:function(){return Ad.inEventHandler&&Ad.currentEventHandler.allowsDeferredCalls},runDeferredCalls:function(){if(Ad.canPerformEventHandlerRequests())for(var e=0;e<Ad.deferredCalls.length;++e){var t=Ad.deferredCalls[e];Ad.deferredCalls.splice(e,1),--e,t.targetFunction.apply(null,t.argsList)}},eventHandlers:[],removeAllHandlersOnTarget:function(e,t){for(var r=0;r<Ad.eventHandlers.length;++r)Ad.eventHandlers[r].target!=e||t&&t!=Ad.eventHandlers[r].eventTypeString||Ad._removeHandler(r--)},_removeHandler:function(e){var t=Ad.eventHandlers[e];t.target.removeEventListener(t.eventTypeString,t.eventListenerFunc,t.useCapture),Ad.eventHandlers.splice(e,1)},registerOrRemoveHandler:function(e){var t=function(t){++Ad.inEventHandler,Ad.currentEventHandler=e,Ad.runDeferredCalls(),e.handlerFunc(t),Ad.runDeferredCalls(),--Ad.inEventHandler};if(e.callbackfunc)e.eventListenerFunc=t,e.target.addEventListener(e.eventTypeString,t,e.useCapture),Ad.eventHandlers.push(e),Ad.registerRemoveEventListeners();else for(var r=0;r<Ad.eventHandlers.length;++r)Ad.eventHandlers[r].target==e.target&&Ad.eventHandlers[r].eventTypeString==e.eventTypeString&&Ad._removeHandler(r--)},getNodeNameForTarget:function(e){return e?e==window?"#window":e==screen?"#screen":e&&e.nodeName?e.nodeName:"":""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}},Fd=["default","low-power","high-performance"];function kd(e){return e>2?N(e):e}var Id=[0,document,window];function Cd(e){return e=kd(e),Id[e]||document.querySelector(e)}function jd(e){return Cd(e)}function Ud(e,t){C(t);var r=t>>2,n=q[r+6],o={alpha:!!q[r+0],depth:!!q[r+1],stencil:!!q[r+2],antialias:!!q[r+3],premultipliedAlpha:!!q[r+4],preserveDrawingBuffer:!!q[r+5],powerPreference:Fd[n],failIfMajorPerformanceCaveat:!!q[r+7],majorVersion:q[r+8],minorVersion:q[r+9],enableExtensionsByDefault:q[r+10],explicitSwapControl:q[r+11],proxyContextToMainThread:q[r+12],renderViaOffscreenBackBuffer:q[r+13]},i=jd(e);return i?o.explicitSwapControl?0:Po.createContext(i,o):0}function Nd(e,t){return Ud(e,t)}function Ld(){return Po.currentContext?Po.currentContext.handle:0}function Hd(){return Ld()}function Xd(e){return Po.makeContextCurrent(e)?0:-5}function Qd(e){Po.currentContext==e&&(Po.currentContext=0),Po.deleteContext(e)}function Bd(e){C(e);for(var t=e>>2,r=0;r<14;++r)q[t+r]=0;q[t+0]=q[t+1]=q[t+3]=q[t+4]=q[t+8]=q[t+10]=1}o._emscripten_webgl_get_current_context=Hd,o._emscripten_webgl_make_context_current=Xd;var Gd={};function Wd(){return l||"./this.program"}function Vd(){if(!Vd.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:Wd()};for(var t in Gd)void 0===Gd[t]?delete e[t]:e[t]=Gd[t];var r=[];for(var t in e)r.push(t+"="+e[t]);Vd.strings=r}return Vd.strings}function qd(e,t){var r=0;return Vd().forEach((function(n,o){var i=t+r;q[e+4*o>>2]=i,ae(n,i),r+=n.length+1})),0}function zd(e,t){var r=Vd();q[e>>2]=r.length;var n=0;return r.forEach((function(e){n+=e.length+1})),q[t>>2]=n,0}function Yd(e){try{var t=yt.getStreamFromFD(e);return _t.close(t),0}catch(e){return void 0!==_t&&e instanceof _t.ErrnoError||Ne(e),e.errno}}function $d(e,t,r,n,o,i){try{C(!o,"offsets over 2^32 not yet supported");var a=yt.getStreamFromFD(e),s=yt.doReadv(a,t,r,n);return q[i>>2]=s,0}catch(e){return void 0!==_t&&e instanceof _t.ErrnoError||Ne(e),e.errno}}function Zd(e,t,r,n){try{var o=yt.getStreamFromFD(e),i=yt.doReadv(o,t,r);return q[n>>2]=i,0}catch(e){return void 0!==_t&&e instanceof _t.ErrnoError||Ne(e),e.errno}}function Kd(e,t,r,n,o){try{var i=yt.getStreamFromFD(e),a=4294967296*r+(t>>>0),s=9007199254740992;return a<=-s||a>=s?-61:(_t.llseek(i,a,n),Xe=[i.position>>>0,(He=i.position,+Math.abs(He)>=1?He>0?(0|Math.min(+Math.floor(He/4294967296),4294967295))>>>0:~~+Math.ceil((He-+(~~He>>>0))/4294967296)>>>0:0)],q[o>>2]=Xe[0],q[o+4>>2]=Xe[1],i.getdents&&0===a&&0===n&&(i.getdents=null),0)}catch(e){return void 0!==_t&&e instanceof _t.ErrnoError||Ne(e),e.errno}}function Jd(e,t,r,n){try{var o=yt.getStreamFromFD(e),i=yt.doWritev(o,t,r);return q[n>>2]=i,0}catch(e){return void 0!==_t&&e instanceof _t.ErrnoError||Ne(e),e.errno}}function el(){return S()}function tl(e){var t=Date.now();return q[e>>2]=t/1e3|0,q[e+4>>2]=t%1e3*1e3|0,0}function rl(e){R(e)}function nl(e){return e%4==0&&(e%100!=0||e%400==0)}function ol(e,t){for(var r=0,n=0;n<=t;r+=e[n++]);return r}var il=[31,29,31,30,31,30,31,31,30,31,30,31],al=[31,28,31,30,31,30,31,31,30,31,30,31];function sl(e,t){for(var r=new Date(e.getTime());t>0;){var n=nl(r.getFullYear()),o=r.getMonth(),i=(n?il:al)[o];if(!(t>i-r.getDate()))return r.setDate(r.getDate()+t),r;t-=i-r.getDate()+1,r.setDate(1),o<11?r.setMonth(o+1):(r.setMonth(0),r.setFullYear(r.getFullYear()+1))}return r}function cl(e,t,r,n){var o=q[n+40>>2],i={tm_sec:q[n>>2],tm_min:q[n+4>>2],tm_hour:q[n+8>>2],tm_mday:q[n+12>>2],tm_mon:q[n+16>>2],tm_year:q[n+20>>2],tm_wday:q[n+24>>2],tm_yday:q[n+28>>2],tm_isdst:q[n+32>>2],tm_gmtoff:q[n+36>>2],tm_zone:o?N(o):""},a=N(r),s={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var c in s)a=a.replace(new RegExp(c,"g"),s[c]);var u=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],d=["January","February","March","April","May","June","July","August","September","October","November","December"];function l(e,t,r){for(var n="number"==typeof e?e.toString():e||"";n.length<t;)n=r[0]+n;return n}function f(e,t){return l(e,t,"0")}function p(e,t){function r(e){return e<0?-1:e>0?1:0}var n;return 0===(n=r(e.getFullYear()-t.getFullYear()))&&0===(n=r(e.getMonth()-t.getMonth()))&&(n=r(e.getDate()-t.getDate())),n}function m(e){switch(e.getDay()){case 0:return new Date(e.getFullYear()-1,11,29);case 1:return e;case 2:return new Date(e.getFullYear(),0,3);case 3:return new Date(e.getFullYear(),0,2);case 4:return new Date(e.getFullYear(),0,1);case 5:return new Date(e.getFullYear()-1,11,31);case 6:return new Date(e.getFullYear()-1,11,30)}}function g(e){var t=sl(new Date(e.tm_year+1900,0,1),e.tm_yday),r=new Date(t.getFullYear(),0,4),n=new Date(t.getFullYear()+1,0,4),o=m(r),i=m(n);return p(o,t)<=0?p(i,t)<=0?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}var E={"%a":function(e){return u[e.tm_wday].substring(0,3)},"%A":function(e){return u[e.tm_wday]},"%b":function(e){return d[e.tm_mon].substring(0,3)},"%B":function(e){return d[e.tm_mon]},"%C":function(e){return f((e.tm_year+1900)/100|0,2)},"%d":function(e){return f(e.tm_mday,2)},"%e":function(e){return l(e.tm_mday,2," ")},"%g":function(e){return g(e).toString().substring(2)},"%G":function(e){return g(e)},"%H":function(e){return f(e.tm_hour,2)},"%I":function(e){var t=e.tm_hour;return 0==t?t=12:t>12&&(t-=12),f(t,2)},"%j":function(e){return f(e.tm_mday+ol(nl(e.tm_year+1900)?il:al,e.tm_mon-1),3)},"%m":function(e){return f(e.tm_mon+1,2)},"%M":function(e){return f(e.tm_min,2)},"%n":function(){return"\n"},"%p":function(e){return e.tm_hour>=0&&e.tm_hour<12?"AM":"PM"},"%S":function(e){return f(e.tm_sec,2)},"%t":function(){return"\t"},"%u":function(e){return e.tm_wday||7},"%U":function(e){var t=new Date(e.tm_year+1900,0,1),r=0===t.getDay()?t:sl(t,7-t.getDay()),n=new Date(e.tm_year+1900,e.tm_mon,e.tm_mday);if(p(r,n)<0){var o=ol(nl(n.getFullYear())?il:al,n.getMonth()-1)-31,i=31-r.getDate()+o+n.getDate();return f(Math.ceil(i/7),2)}return 0===p(r,t)?"01":"00"},"%V":function(e){var t,r=new Date(e.tm_year+1900,0,4),n=new Date(e.tm_year+1901,0,4),o=m(r),i=m(n),a=sl(new Date(e.tm_year+1900,0,1),e.tm_yday);return p(a,o)<0?"53":p(i,a)<=0?"01":(t=o.getFullYear()<e.tm_year+1900?e.tm_yday+32-o.getDate():e.tm_yday+1-o.getDate(),f(Math.ceil(t/7),2))},"%w":function(e){return e.tm_wday},"%W":function(e){var t=new Date(e.tm_year,0,1),r=1===t.getDay()?t:sl(t,0===t.getDay()?1:7-t.getDay()+1),n=new Date(e.tm_year+1900,e.tm_mon,e.tm_mday);if(p(r,n)<0){var o=ol(nl(n.getFullYear())?il:al,n.getMonth()-1)-31,i=31-r.getDate()+o+n.getDate();return f(Math.ceil(i/7),2)}return 0===p(r,t)?"01":"00"},"%y":function(e){return(e.tm_year+1900).toString().substring(2)},"%Y":function(e){return e.tm_year+1900},"%z":function(e){var t=e.tm_gmtoff,r=t>=0;return t=(t=Math.abs(t)/60)/60*100+t%60,(r?"+":"-")+String("0000"+t).slice(-4)},"%Z":function(e){return e.tm_zone},"%%":function(){return"%"}};for(var c in E)a.includes(c)&&(a=a.replace(new RegExp(c,"g"),E[c](i)));var h=_l(a,!1);return h.length>t?0:(ie(h,e),h.length-1)}function ul(e,t,r,n){return cl(e,t,r,n)}function dl(e){var t=Date.now()/1e3|0;return e&&(q[e>>2]=t),t}var ll,fl=function(e,t,r,n){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=_t.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=n},pl=365,ml=146;Object.defineProperties(fl.prototype,{read:{get:function(){return(this.mode&pl)===pl},set:function(e){e?this.mode|=pl:this.mode&=~pl}},write:{get:function(){return(this.mode&ml)===ml},set:function(e){e?this.mode|=ml:this.mode&=~ml}},isFolder:{get:function(){return _t.isDir(this.mode)}},isDevice:{get:function(){return _t.isChrdev(this.mode)}}}),_t.FSNode=fl,_t.staticInit(),o.FS_createPath=_t.createPath,o.FS_createDataFile=_t.createDataFile,o.FS_createPreloadedFile=_t.createPreloadedFile,o.FS_createLazyFile=_t.createLazyFile,o.FS_createDevice=_t.createDevice,o.FS_unlink=_t.unlink,ht={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},Bt=o.InternalError=Qt(Error,"InternalError"),Zt(),er=o.BindingError=Qt(Error,"BindingError"),yr(),Qr(),jr(),Yr=o.UnboundTypeError=Qt(Error,"UnboundTypeError"),dn(),o.requestFullscreen=function(e,t){ho.requestFullscreen(e,t)},o.requestFullScreen=function(){ho.requestFullScreen()},o.requestAnimationFrame=function(e){ho.requestAnimationFrame(e)},o.setCanvasSize=function(e,t,r){ho.setCanvasSize(e,t,r)},o.pauseMainLoop=function(){ho.mainLoop.pause()},o.resumeMainLoop=function(){ho.mainLoop.resume()},o.getUserMedia=function(){ho.getUserMedia()},o.createContext=function(e,t,r,n){return ho.createContext(e,t,r,n)};for(var gl=0;gl<32;++gl)ua.push(new Array(gl));var El=new Float32Array(288);for(gl=0;gl<288;++gl)mu[gl]=El.subarray(0,gl+1);var hl=new Int32Array(288);for(gl=0;gl<288;++gl)hu[gl]=hl.subarray(0,gl+1);function _l(e,t,r){var n=r>0?r:X(e)+1,o=new Array(n),i=L(e,o,0,o.length);return t&&(o.length=i),o}"function"==typeof atob&&atob;var yl,vl={__assert_fail:tt,__cxa_allocate_exception:rt,__cxa_atexit:nt,__cxa_throw:it,__syscall_fcntl64:vt,__syscall_fstat64:wt,__syscall_getdents64:bt,__syscall_ioctl:Ot,__syscall_mmap2:Dt,__syscall_munmap:Mt,__syscall_open:Rt,__syscall_stat64:St,_dlopen_js:xt,_dlsym_js:At,_embind_finalize_value_array:Vt,_embind_finalize_value_object:zt,_embind_register_bigint:Yt,_embind_register_bool:nr,_embind_register_class:Kr,_embind_register_class_constructor:en,_embind_register_class_function:nn,_embind_register_emval:fn,_embind_register_enum:mn,_embind_register_enum_value:En,_embind_register_float:yn,_embind_register_function:vn,_embind_register_integer:bn,_embind_register_memory_view:On,_embind_register_smart_ptr:Tn,_embind_register_std_string:Dn,_embind_register_std_wstring:Pn,_embind_register_value_array:Mn,_embind_register_value_array_element:Rn,_embind_register_value_object:Sn,_embind_register_value_object_field:xn,_embind_register_void:An,_emscripten_throw_longjmp:Fn,_emval_as:kn,_emval_call:Cn,_emval_call_method:Hn,_emval_call_void_method:Xn,_emval_decref:sn,_emval_get_global:Bn,_emval_get_method_caller:Wn,_emval_get_property:Vn,_emval_incref:qn,_emval_instanceof:zn,_emval_is_string:Yn,_emval_new:Jn,_emval_new_array:eo,_emval_new_cstring:to,_emval_new_object:ro,_emval_run_destructors:no,_emval_set_property:oo,_emval_take_value:io,_emval_throw:ao,abort:so,clock_gettime:uo,eglChooseConfig:yo,eglCreateContext:Mo,eglCreateWindowSurface:Ro,eglDestroyContext:So,eglDestroySurface:xo,eglGetConfigAttrib:Ao,eglGetDisplay:Fo,eglGetError:ko,eglInitialize:Io,eglMakeCurrent:Co,eglSwapBuffers:jo,eglTerminate:Uo,emscripten_console_error:No,emscripten_console_log:Lo,emscripten_console_warn:Ho,emscripten_debugger:Xo,emscripten_get_heap_max:Qo,emscripten_glActiveTexture:Bo,emscripten_glAttachShader:Go,emscripten_glBeginQuery:Wo,emscripten_glBeginQueryEXT:Vo,emscripten_glBeginTransformFeedback:qo,emscripten_glBindAttribLocation:zo,emscripten_glBindBuffer:Yo,emscripten_glBindBufferBase:$o,emscripten_glBindBufferRange:Zo,emscripten_glBindFramebuffer:Ko,emscripten_glBindRenderbuffer:Jo,emscripten_glBindSampler:ei,emscripten_glBindTexture:ti,emscripten_glBindTransformFeedback:ri,emscripten_glBindVertexArray:ni,emscripten_glBindVertexArrayOES:oi,emscripten_glBlendColor:ii,emscripten_glBlendEquation:ai,emscripten_glBlendEquationSeparate:si,emscripten_glBlendFunc:ci,emscripten_glBlendFuncSeparate:ui,emscripten_glBlitFramebuffer:di,emscripten_glBufferData:li,emscripten_glBufferSubData:fi,emscripten_glCheckFramebufferStatus:pi,emscripten_glClear:mi,emscripten_glClearBufferfi:gi,emscripten_glClearBufferfv:Ei,emscripten_glClearBufferiv:hi,emscripten_glClearBufferuiv:_i,emscripten_glClearColor:yi,emscripten_glClearDepthf:vi,emscripten_glClearStencil:wi,emscripten_glClientWaitSync:Oi,emscripten_glColorMask:Ti,emscripten_glCompileShader:Di,emscripten_glCompressedTexImage2D:Pi,emscripten_glCompressedTexImage3D:Mi,emscripten_glCompressedTexSubImage2D:Ri,emscripten_glCompressedTexSubImage3D:Si,emscripten_glCopyBufferSubData:xi,emscripten_glCopyTexImage2D:Ai,emscripten_glCopyTexSubImage2D:Fi,emscripten_glCopyTexSubImage3D:ki,emscripten_glCreateProgram:Ii,emscripten_glCreateShader:Ci,emscripten_glCullFace:ji,emscripten_glDeleteBuffers:Ui,emscripten_glDeleteFramebuffers:Ni,emscripten_glDeleteProgram:Li,emscripten_glDeleteQueries:Hi,emscripten_glDeleteQueriesEXT:Xi,emscripten_glDeleteRenderbuffers:Qi,emscripten_glDeleteSamplers:Bi,emscripten_glDeleteShader:Gi,emscripten_glDeleteSync:Wi,emscripten_glDeleteTextures:Vi,emscripten_glDeleteTransformFeedbacks:qi,emscripten_glDeleteVertexArrays:zi,emscripten_glDeleteVertexArraysOES:Yi,emscripten_glDepthFunc:$i,emscripten_glDepthMask:Zi,emscripten_glDepthRangef:Ki,emscripten_glDetachShader:Ji,emscripten_glDisable:ea,emscripten_glDisableVertexAttribArray:ta,emscripten_glDrawArrays:ra,emscripten_glDrawArraysInstanced:na,emscripten_glDrawArraysInstancedANGLE:oa,emscripten_glDrawArraysInstancedARB:ia,emscripten_glDrawArraysInstancedBaseInstanceWEBGL:aa,emscripten_glDrawArraysInstancedEXT:sa,emscripten_glDrawArraysInstancedNV:ca,emscripten_glDrawBuffers:da,emscripten_glDrawBuffersEXT:la,emscripten_glDrawBuffersWEBGL:fa,emscripten_glDrawElements:pa,emscripten_glDrawElementsInstanced:ma,emscripten_glDrawElementsInstancedANGLE:ga,emscripten_glDrawElementsInstancedARB:Ea,emscripten_glDrawElementsInstancedBaseVertexBaseInstanceWEBGL:ha,emscripten_glDrawElementsInstancedEXT:_a,emscripten_glDrawElementsInstancedNV:ya,emscripten_glDrawRangeElements:wa,emscripten_glEnable:ba,emscripten_glEnableVertexAttribArray:Oa,emscripten_glEndQuery:Ta,emscripten_glEndQueryEXT:Da,emscripten_glEndTransformFeedback:Pa,emscripten_glFenceSync:Ma,emscripten_glFinish:Ra,emscripten_glFlush:Sa,emscripten_glFramebufferRenderbuffer:xa,emscripten_glFramebufferTexture2D:Aa,emscripten_glFramebufferTextureLayer:Fa,emscripten_glFrontFace:ka,emscripten_glGenBuffers:Ca,emscripten_glGenFramebuffers:ja,emscripten_glGenQueries:Ua,emscripten_glGenQueriesEXT:Na,emscripten_glGenRenderbuffers:La,emscripten_glGenSamplers:Ha,emscripten_glGenTextures:Xa,emscripten_glGenTransformFeedbacks:Qa,emscripten_glGenVertexArrays:Ba,emscripten_glGenVertexArraysOES:Ga,emscripten_glGenerateMipmap:Wa,emscripten_glGetActiveAttrib:qa,emscripten_glGetActiveUniform:za,emscripten_glGetActiveUniformBlockName:Ya,emscripten_glGetActiveUniformBlockiv:$a,emscripten_glGetActiveUniformsiv:Za,emscripten_glGetAttachedShaders:Ka,emscripten_glGetAttribLocation:Ja,emscripten_glGetBooleanv:os,emscripten_glGetBufferParameteri64v:is,emscripten_glGetBufferParameteriv:as,emscripten_glGetError:ss,emscripten_glGetFloatv:cs,emscripten_glGetFragDataLocation:us,emscripten_glGetFramebufferAttachmentParameteriv:ds,emscripten_glGetInteger64i_v:fs,emscripten_glGetInteger64v:ps,emscripten_glGetIntegeri_v:ms,emscripten_glGetIntegerv:gs,emscripten_glGetInternalformativ:Es,emscripten_glGetProgramBinary:hs,emscripten_glGetProgramInfoLog:_s,emscripten_glGetProgramiv:ys,emscripten_glGetQueryObjecti64vEXT:vs,emscripten_glGetQueryObjectivEXT:ws,emscripten_glGetQueryObjectui64vEXT:bs,emscripten_glGetQueryObjectuiv:Os,emscripten_glGetQueryObjectuivEXT:Ts,emscripten_glGetQueryiv:Ds,emscripten_glGetQueryivEXT:Ps,emscripten_glGetRenderbufferParameteriv:Ms,emscripten_glGetSamplerParameterfv:Rs,emscripten_glGetSamplerParameteriv:Ss,emscripten_glGetShaderInfoLog:xs,emscripten_glGetShaderPrecisionFormat:As,emscripten_glGetShaderSource:Fs,emscripten_glGetShaderiv:ks,emscripten_glGetString:Cs,emscripten_glGetStringi:js,emscripten_glGetSynciv:Us,emscripten_glGetTexParameterfv:Ns,emscripten_glGetTexParameteriv:Ls,emscripten_glGetTransformFeedbackVarying:Hs,emscripten_glGetUniformBlockIndex:Xs,emscripten_glGetUniformIndices:Qs,emscripten_glGetUniformLocation:Vs,emscripten_glGetUniformfv:Ys,emscripten_glGetUniformiv:$s,emscripten_glGetUniformuiv:Zs,emscripten_glGetVertexAttribIiv:Js,emscripten_glGetVertexAttribIuiv:ec,emscripten_glGetVertexAttribPointerv:tc,emscripten_glGetVertexAttribfv:rc,emscripten_glGetVertexAttribiv:nc,emscripten_glHint:oc,emscripten_glInvalidateFramebuffer:ic,emscripten_glInvalidateSubFramebuffer:ac,emscripten_glIsBuffer:sc,emscripten_glIsEnabled:cc,emscripten_glIsFramebuffer:uc,emscripten_glIsProgram:dc,emscripten_glIsQuery:lc,emscripten_glIsQueryEXT:fc,emscripten_glIsRenderbuffer:pc,emscripten_glIsSampler:mc,emscripten_glIsShader:gc,emscripten_glIsSync:Ec,emscripten_glIsTexture:hc,emscripten_glIsTransformFeedback:_c,emscripten_glIsVertexArray:yc,emscripten_glIsVertexArrayOES:vc,emscripten_glLineWidth:wc,emscripten_glLinkProgram:bc,emscripten_glMultiDrawArraysInstancedBaseInstanceWEBGL:Oc,emscripten_glMultiDrawElementsInstancedBaseVertexBaseInstanceWEBGL:Tc,emscripten_glPauseTransformFeedback:Dc,emscripten_glPixelStorei:Pc,emscripten_glPolygonOffset:Mc,emscripten_glProgramBinary:Rc,emscripten_glProgramParameteri:Sc,emscripten_glQueryCounterEXT:xc,emscripten_glReadBuffer:Ac,emscripten_glReadPixels:Uc,emscripten_glReleaseShaderCompiler:Nc,emscripten_glRenderbufferStorage:Lc,emscripten_glRenderbufferStorageMultisample:Hc,emscripten_glResumeTransformFeedback:Xc,emscripten_glSampleCoverage:Qc,emscripten_glSamplerParameterf:Bc,emscripten_glSamplerParameterfv:Gc,emscripten_glSamplerParameteri:Wc,emscripten_glSamplerParameteriv:Vc,emscripten_glScissor:qc,emscripten_glShaderBinary:zc,emscripten_glShaderSource:Yc,emscripten_glStencilFunc:$c,emscripten_glStencilFuncSeparate:Zc,emscripten_glStencilMask:Kc,emscripten_glStencilMaskSeparate:Jc,emscripten_glStencilOp:eu,emscripten_glStencilOpSeparate:tu,emscripten_glTexImage2D:ru,emscripten_glTexImage3D:nu,emscripten_glTexParameterf:ou,emscripten_glTexParameterfv:iu,emscripten_glTexParameteri:au,emscripten_glTexParameteriv:su,emscripten_glTexStorage2D:cu,emscripten_glTexStorage3D:uu,emscripten_glTexSubImage2D:du,emscripten_glTexSubImage3D:lu,emscripten_glTransformFeedbackVaryings:fu,emscripten_glUniform1f:pu,emscripten_glUniform1fv:gu,emscripten_glUniform1i:Eu,emscripten_glUniform1iv:_u,emscripten_glUniform1ui:yu,emscripten_glUniform1uiv:vu,emscripten_glUniform2f:wu,emscripten_glUniform2fv:bu,emscripten_glUniform2i:Ou,emscripten_glUniform2iv:Tu,emscripten_glUniform2ui:Du,emscripten_glUniform2uiv:Pu,emscripten_glUniform3f:Mu,emscripten_glUniform3fv:Ru,emscripten_glUniform3i:Su,emscripten_glUniform3iv:xu,emscripten_glUniform3ui:Au,emscripten_glUniform3uiv:Fu,emscripten_glUniform4f:ku,emscripten_glUniform4fv:Iu,emscripten_glUniform4i:Cu,emscripten_glUniform4iv:ju,emscripten_glUniform4ui:Uu,emscripten_glUniform4uiv:Nu,emscripten_glUniformBlockBinding:Lu,emscripten_glUniformMatrix2fv:Hu,emscripten_glUniformMatrix2x3fv:Xu,emscripten_glUniformMatrix2x4fv:Qu,emscripten_glUniformMatrix3fv:Bu,emscripten_glUniformMatrix3x2fv:Gu,emscripten_glUniformMatrix3x4fv:Wu,emscripten_glUniformMatrix4fv:Vu,emscripten_glUniformMatrix4x2fv:qu,emscripten_glUniformMatrix4x3fv:zu,emscripten_glUseProgram:Yu,emscripten_glValidateProgram:$u,emscripten_glVertexAttrib1f:Zu,emscripten_glVertexAttrib1fv:Ku,emscripten_glVertexAttrib2f:Ju,emscripten_glVertexAttrib2fv:ed,emscripten_glVertexAttrib3f:td,emscripten_glVertexAttrib3fv:rd,emscripten_glVertexAttrib4f:nd,emscripten_glVertexAttrib4fv:od,emscripten_glVertexAttribDivisor:id,emscripten_glVertexAttribDivisorANGLE:ad,emscripten_glVertexAttribDivisorARB:sd,emscripten_glVertexAttribDivisorEXT:cd,emscripten_glVertexAttribDivisorNV:ud,emscripten_glVertexAttribI4i:dd,emscripten_glVertexAttribI4iv:ld,emscripten_glVertexAttribI4ui:fd,emscripten_glVertexAttribI4uiv:pd,emscripten_glVertexAttribIPointer:md,emscripten_glVertexAttribPointer:gd,emscripten_glViewport:Ed,emscripten_glWaitSync:hd,emscripten_memcpy_big:_d,emscripten_resize_heap:vd,emscripten_ubq_fetch_allocateFetchResult:wd,emscripten_ubq_fetch_createHeader:bd,emscripten_ubq_fetch_deleteHeader:Od,emscripten_ubq_fetch_dispatchAsyncFetch:Td,emscripten_ubq_fetch_freeFetchResult:Dd,emscripten_ubq_fetch_getFetchCompletedBytes:Pd,emscripten_ubq_fetch_getFetchResultAddress:Md,emscripten_ubq_fetch_getFetchResultLength:Rd,emscripten_ubq_fetch_getFetchState:Sd,emscripten_ubq_fetch_getFetchTotalBytes:xd,emscripten_webgl_create_context:Nd,emscripten_webgl_destroy_context:Qd,emscripten_webgl_init_context_attributes:Bd,emscripten_webgl_make_context_current:Xd,environ_get:qd,environ_sizes_get:zd,exit:fo,fd_close:Yd,fd_pread:$d,fd_read:Zd,fd_seek:Kd,fd_write:Jd,getTempRet0:el,gettimeofday:tl,invoke_ii:Fl,invoke_iii:kl,invoke_iiii:Cl,invoke_iiiii:Xl,invoke_iiiiii:Nl,invoke_iiiiiii:Hl,invoke_v:Wl,invoke_vi:jl,invoke_vii:Ul,invoke_viii:Il,invoke_viiii:Ll,invoke_viiiii:Ql,invoke_viiiiii:Gl,invoke_viiiiiiiii:Bl,setTempRet0:rl,strftime_l:ul,time:dl},wl=(ze(),o.___wasm_call_ctors=We("__wasm_call_ctors"),o._malloc=We("malloc")),bl=(o._main=We("main"),o._free=We("free")),Ol=o.___errno_location=We("__errno_location"),Tl=(o._fflush=We("fflush"),o._saveSetjmp=We("saveSetjmp"),o.___getTypeName=We("__getTypeName")),Dl=(o.___embind_register_native_and_builtin_types=We("__embind_register_native_and_builtin_types"),o._emscripten_main_thread_process_queued_calls=We("emscripten_main_thread_process_queued_calls"),o.___dl_seterr=We("__dl_seterr"),o.stackSave=We("stackSave")),Pl=o.stackRestore=We("stackRestore"),Ml=o.stackAlloc=We("stackAlloc"),Rl=o._emscripten_stack_init=function(){return(Rl=o._emscripten_stack_init=o.asm.emscripten_stack_init).apply(null,arguments)},Sl=(o._emscripten_stack_get_free=function(){return(o._emscripten_stack_get_free=o.asm.emscripten_stack_get_free).apply(null,arguments)},o._emscripten_stack_get_end=function(){return(Sl=o._emscripten_stack_get_end=o.asm.emscripten_stack_get_end).apply(null,arguments)}),xl=o._setThrew=We("setThrew"),Al=o._memalign=We("memalign");function Fl(e,t){var r=Dl();try{return Je(e)(t)}catch(e){if(Pl(r),e!==e+0&&"longjmp"!==e)throw e;xl(1,0)}}function kl(e,t,r){var n=Dl();try{return Je(e)(t,r)}catch(e){if(Pl(n),e!==e+0&&"longjmp"!==e)throw e;xl(1,0)}}function Il(e,t,r,n){var o=Dl();try{Je(e)(t,r,n)}catch(e){if(Pl(o),e!==e+0&&"longjmp"!==e)throw e;xl(1,0)}}function Cl(e,t,r,n){var o=Dl();try{return Je(e)(t,r,n)}catch(e){if(Pl(o),e!==e+0&&"longjmp"!==e)throw e;xl(1,0)}}function jl(e,t){var r=Dl();try{Je(e)(t)}catch(e){if(Pl(r),e!==e+0&&"longjmp"!==e)throw e;xl(1,0)}}function Ul(e,t,r){var n=Dl();try{Je(e)(t,r)}catch(e){if(Pl(n),e!==e+0&&"longjmp"!==e)throw e;xl(1,0)}}function Nl(e,t,r,n,o,i){var a=Dl();try{return Je(e)(t,r,n,o,i)}catch(e){if(Pl(a),e!==e+0&&"longjmp"!==e)throw e;xl(1,0)}}function Ll(e,t,r,n,o){var i=Dl();try{Je(e)(t,r,n,o)}catch(e){if(Pl(i),e!==e+0&&"longjmp"!==e)throw e;xl(1,0)}}function Hl(e,t,r,n,o,i,a){var s=Dl();try{return Je(e)(t,r,n,o,i,a)}catch(e){if(Pl(s),e!==e+0&&"longjmp"!==e)throw e;xl(1,0)}}function Xl(e,t,r,n,o){var i=Dl();try{return Je(e)(t,r,n,o)}catch(e){if(Pl(i),e!==e+0&&"longjmp"!==e)throw e;xl(1,0)}}function Ql(e,t,r,n,o,i){var a=Dl();try{Je(e)(t,r,n,o,i)}catch(e){if(Pl(a),e!==e+0&&"longjmp"!==e)throw e;xl(1,0)}}function Bl(e,t,r,n,o,i,a,s,c,u){var d=Dl();try{Je(e)(t,r,n,o,i,a,s,c,u)}catch(e){if(Pl(d),e!==e+0&&"longjmp"!==e)throw e;xl(1,0)}}function Gl(e,t,r,n,o,i,a){var s=Dl();try{Je(e)(t,r,n,o,i,a)}catch(e){if(Pl(s),e!==e+0&&"longjmp"!==e)throw e;xl(1,0)}}function Wl(e){var t=Dl();try{Je(e)()}catch(e){if(Pl(t),e!==e+0&&"longjmp"!==e)throw e;xl(1,0)}}function Vl(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function ql(e){C(0==Ae,'cannot call main when async dependencies remain! (listen on Module["onRuntimeInitialized"])'),C(0==me.length,"cannot call main when preRun functions remain to be called");var t=o._main,r=(e=e||[]).length+1,n=Ml(4*(r+1));q[n>>2]=oe(l);for(var i=1;i<r;i++)q[(n>>2)+i]=oe(e[i-1]);q[(n>>2)+r]=0;try{var a=t(r,n);return Zl(a,!0),a}catch(e){return et(e)}}function zl(){Rl(),fe()}function Yl(e){function t(){yl||(yl=!0,o.calledRun=!0,I||(Te(),De(),r(o),o.onRuntimeInitialized&&o.onRuntimeInitialized(),Jl&&ql(e),Me()))}e=e||d,Ae>0||(zl(),Oe(),Ae>0||(o.setStatus?(o.setStatus("Running..."),setTimeout((function(){setTimeout((function(){o.setStatus("")}),1),t()}),1)):t(),pe()))}function $l(){var e=O,t=T,r=!1;O=T=function(e){r=!0};try{var n=o._fflush;n&&n(0),["stdout","stderr"].forEach((function(e){var t=_t.analyzePath("/dev/"+e);if(t){var n=t.object.rdev,o=dt.ttys[n];o&&o.output&&o.output.length&&(r=!0)}}))}catch(e){}O=e,T=t,r&&D("stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc.")}function Zl(e,t){if(k=e,$l(),be()){if(!t){var r="program exited (with status: "+e+"), but EXIT_RUNTIME is not set, so halting execution but not exiting the runtime or preventing further async execution (build with EXIT_RUNTIME=1, if you want a true shutdown)";n(r),T(r)}}else Pe();Kl(e)}function Kl(e){k=e,be()||(o.onExit&&o.onExit(e),I=!0),f(e,new Vl(e))}if(o.dynCall_ji=We("dynCall_ji"),o.dynCall_jij=We("dynCall_jij"),o.dynCall_iiiijii=We("dynCall_iiiijii"),o.dynCall_viiij=We("dynCall_viiij"),o.dynCall_viji=We("dynCall_viji"),o.dynCall_vijiii=We("dynCall_vijiii"),o.dynCall_viiiiij=We("dynCall_viiiiij"),o.dynCall_jiiiijiiiii=We("dynCall_jiiiijiiiii"),o.dynCall_jii=We("dynCall_jii"),o.dynCall_iiij=We("dynCall_iiij"),o.dynCall_iiiij=We("dynCall_iiiij"),o.dynCall_viij=We("dynCall_viij"),o.dynCall_iij=We("dynCall_iij"),o.dynCall_vij=We("dynCall_vij"),o.dynCall_jiiii=We("dynCall_jiiii"),o.dynCall_jiiiiii=We("dynCall_jiiiiii"),o.dynCall_jiiiiji=We("dynCall_jiiiiji"),o.dynCall_iijj=We("dynCall_iijj"),o.dynCall_jiji=We("dynCall_jiji"),o.dynCall_iiiiij=We("dynCall_iiiiij"),o.dynCall_iiiiijj=We("dynCall_iiiiijj"),o.dynCall_iiiiiijj=We("dynCall_iiiiiijj"),o.dynCall_viijii=We("dynCall_viijii"),Object.getOwnPropertyDescriptor(o,"intArrayFromString")||(o.intArrayFromString=function(){Ne("'intArrayFromString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"intArrayToString")||(o.intArrayToString=function(){Ne("'intArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ccall")||(o.ccall=function(){Ne("'ccall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"cwrap")||(o.cwrap=function(){Ne("'cwrap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setValue")||(o.setValue=function(){Ne("'setValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),o.getValue=F,Object.getOwnPropertyDescriptor(o,"allocate")||(o.allocate=function(){Ne("'allocate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"UTF8ArrayToString")||(o.UTF8ArrayToString=function(){Ne("'UTF8ArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),o.UTF8ToString=N,Object.getOwnPropertyDescriptor(o,"stringToUTF8Array")||(o.stringToUTF8Array=function(){Ne("'stringToUTF8Array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stringToUTF8")||(o.stringToUTF8=function(){Ne("'stringToUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"lengthBytesUTF8")||(o.lengthBytesUTF8=function(){Ne("'lengthBytesUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stackTrace")||(o.stackTrace=function(){Ne("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"addOnPreRun")||(o.addOnPreRun=function(){Ne("'addOnPreRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"addOnInit")||(o.addOnInit=function(){Ne("'addOnInit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"addOnPreMain")||(o.addOnPreMain=function(){Ne("'addOnPreMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"addOnExit")||(o.addOnExit=function(){Ne("'addOnExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"addOnPostRun")||(o.addOnPostRun=function(){Ne("'addOnPostRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeStringToMemory")||(o.writeStringToMemory=function(){Ne("'writeStringToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeArrayToMemory")||(o.writeArrayToMemory=function(){Ne("'writeArrayToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeAsciiToMemory")||(o.writeAsciiToMemory=function(){Ne("'writeAsciiToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),o.addRunDependency=je,o.removeRunDependency=Ue,Object.getOwnPropertyDescriptor(o,"FS_createFolder")||(o.FS_createFolder=function(){Ne("'FS_createFolder' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),o.FS_createPath=_t.createPath,o.FS_createDataFile=_t.createDataFile,o.FS_createPreloadedFile=_t.createPreloadedFile,o.FS_createLazyFile=_t.createLazyFile,Object.getOwnPropertyDescriptor(o,"FS_createLink")||(o.FS_createLink=function(){Ne("'FS_createLink' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),o.FS_createDevice=_t.createDevice,o.FS_unlink=_t.unlink,Object.getOwnPropertyDescriptor(o,"getLEB")||(o.getLEB=function(){Ne("'getLEB' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getFunctionTables")||(o.getFunctionTables=function(){Ne("'getFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"alignFunctionTables")||(o.alignFunctionTables=function(){Ne("'alignFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerFunctions")||(o.registerFunctions=function(){Ne("'registerFunctions' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"addFunction")||(o.addFunction=function(){Ne("'addFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"removeFunction")||(o.removeFunction=function(){Ne("'removeFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getFuncWrapper")||(o.getFuncWrapper=function(){Ne("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"prettyPrint")||(o.prettyPrint=function(){Ne("'prettyPrint' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"dynCall")||(o.dynCall=function(){Ne("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getCompilerSetting")||(o.getCompilerSetting=function(){Ne("'getCompilerSetting' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"print")||(o.print=function(){Ne("'print' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"printErr")||(o.printErr=function(){Ne("'printErr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getTempRet0")||(o.getTempRet0=function(){Ne("'getTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setTempRet0")||(o.setTempRet0=function(){Ne("'setTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"callMain")||(o.callMain=function(){Ne("'callMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"abort")||(o.abort=function(){Ne("'abort' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"keepRuntimeAlive")||(o.keepRuntimeAlive=function(){Ne("'keepRuntimeAlive' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"zeroMemory")||(o.zeroMemory=function(){Ne("'zeroMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stringToNewUTF8")||(o.stringToNewUTF8=function(){Ne("'stringToNewUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setFileTime")||(o.setFileTime=function(){Ne("'setFileTime' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscripten_realloc_buffer")||(o.emscripten_realloc_buffer=function(){Ne("'emscripten_realloc_buffer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ENV")||(o.ENV=function(){Ne("'ENV' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"withStackSave")||(o.withStackSave=function(){Ne("'withStackSave' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ERRNO_CODES")||(o.ERRNO_CODES=function(){Ne("'ERRNO_CODES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ERRNO_MESSAGES")||(o.ERRNO_MESSAGES=function(){Ne("'ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setErrNo")||(o.setErrNo=function(){Ne("'setErrNo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"inetPton4")||(o.inetPton4=function(){Ne("'inetPton4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"inetNtop4")||(o.inetNtop4=function(){Ne("'inetNtop4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"inetPton6")||(o.inetPton6=function(){Ne("'inetPton6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"inetNtop6")||(o.inetNtop6=function(){Ne("'inetNtop6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"readSockaddr")||(o.readSockaddr=function(){Ne("'readSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeSockaddr")||(o.writeSockaddr=function(){Ne("'writeSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"DNS")||(o.DNS=function(){Ne("'DNS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getHostByName")||(o.getHostByName=function(){Ne("'getHostByName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"GAI_ERRNO_MESSAGES")||(o.GAI_ERRNO_MESSAGES=function(){Ne("'GAI_ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"Protocols")||(o.Protocols=function(){Ne("'Protocols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"Sockets")||(o.Sockets=function(){Ne("'Sockets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getRandomDevice")||(o.getRandomDevice=function(){Ne("'getRandomDevice' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"traverseStack")||(o.traverseStack=function(){Ne("'traverseStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"UNWIND_CACHE")||(o.UNWIND_CACHE=function(){Ne("'UNWIND_CACHE' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"readAsmConstArgsArray")||(o.readAsmConstArgsArray=function(){Ne("'readAsmConstArgsArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"readAsmConstArgs")||(o.readAsmConstArgs=function(){Ne("'readAsmConstArgs' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"mainThreadEM_ASM")||(o.mainThreadEM_ASM=function(){Ne("'mainThreadEM_ASM' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"jstoi_q")||(o.jstoi_q=function(){Ne("'jstoi_q' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"jstoi_s")||(o.jstoi_s=function(){Ne("'jstoi_s' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getExecutableName")||(o.getExecutableName=function(){Ne("'getExecutableName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"listenOnce")||(o.listenOnce=function(){Ne("'listenOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"autoResumeAudioContext")||(o.autoResumeAudioContext=function(){Ne("'autoResumeAudioContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"dynCallLegacy")||(o.dynCallLegacy=function(){Ne("'dynCallLegacy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getDynCaller")||(o.getDynCaller=function(){Ne("'getDynCaller' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"dynCall")||(o.dynCall=function(){Ne("'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"callRuntimeCallbacks")||(o.callRuntimeCallbacks=function(){Ne("'callRuntimeCallbacks' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"wasmTableMirror")||(o.wasmTableMirror=function(){Ne("'wasmTableMirror' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setWasmTableEntry")||(o.setWasmTableEntry=function(){Ne("'setWasmTableEntry' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getWasmTableEntry")||(o.getWasmTableEntry=function(){Ne("'getWasmTableEntry' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"handleException")||(o.handleException=function(){Ne("'handleException' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"runtimeKeepalivePush")||(o.runtimeKeepalivePush=function(){Ne("'runtimeKeepalivePush' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"runtimeKeepalivePop")||(o.runtimeKeepalivePop=function(){Ne("'runtimeKeepalivePop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"callUserCallback")||(o.callUserCallback=function(){Ne("'callUserCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"maybeExit")||(o.maybeExit=function(){Ne("'maybeExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"safeSetTimeout")||(o.safeSetTimeout=function(){Ne("'safeSetTimeout' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"asmjsMangle")||(o.asmjsMangle=function(){Ne("'asmjsMangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"asyncLoad")||(o.asyncLoad=function(){Ne("'asyncLoad' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"alignMemory")||(o.alignMemory=function(){Ne("'alignMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"mmapAlloc")||(o.mmapAlloc=function(){Ne("'mmapAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"reallyNegative")||(o.reallyNegative=function(){Ne("'reallyNegative' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"unSign")||(o.unSign=function(){Ne("'unSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"reSign")||(o.reSign=function(){Ne("'reSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"formatString")||(o.formatString=function(){Ne("'formatString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"PATH")||(o.PATH=function(){Ne("'PATH' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"PATH_FS")||(o.PATH_FS=function(){Ne("'PATH_FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SYSCALLS")||(o.SYSCALLS=function(){Ne("'SYSCALLS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"syscallMmap2")||(o.syscallMmap2=function(){Ne("'syscallMmap2' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"syscallMunmap")||(o.syscallMunmap=function(){Ne("'syscallMunmap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getSocketFromFD")||(o.getSocketFromFD=function(){Ne("'getSocketFromFD' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getSocketAddress")||(o.getSocketAddress=function(){Ne("'getSocketAddress' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"JSEvents")||(o.JSEvents=function(){Ne("'JSEvents' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerKeyEventCallback")||(o.registerKeyEventCallback=function(){Ne("'registerKeyEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),o.specialHTMLTargets=Id,Object.getOwnPropertyDescriptor(o,"maybeCStringToJsString")||(o.maybeCStringToJsString=function(){Ne("'maybeCStringToJsString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"findEventTarget")||(o.findEventTarget=function(){Ne("'findEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"findCanvasEventTarget")||(o.findCanvasEventTarget=function(){Ne("'findCanvasEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getBoundingClientRect")||(o.getBoundingClientRect=function(){Ne("'getBoundingClientRect' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillMouseEventData")||(o.fillMouseEventData=function(){Ne("'fillMouseEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerMouseEventCallback")||(o.registerMouseEventCallback=function(){Ne("'registerMouseEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerWheelEventCallback")||(o.registerWheelEventCallback=function(){Ne("'registerWheelEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerUiEventCallback")||(o.registerUiEventCallback=function(){Ne("'registerUiEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerFocusEventCallback")||(o.registerFocusEventCallback=function(){Ne("'registerFocusEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillDeviceOrientationEventData")||(o.fillDeviceOrientationEventData=function(){Ne("'fillDeviceOrientationEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerDeviceOrientationEventCallback")||(o.registerDeviceOrientationEventCallback=function(){Ne("'registerDeviceOrientationEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillDeviceMotionEventData")||(o.fillDeviceMotionEventData=function(){Ne("'fillDeviceMotionEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerDeviceMotionEventCallback")||(o.registerDeviceMotionEventCallback=function(){Ne("'registerDeviceMotionEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"screenOrientation")||(o.screenOrientation=function(){Ne("'screenOrientation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillOrientationChangeEventData")||(o.fillOrientationChangeEventData=function(){Ne("'fillOrientationChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerOrientationChangeEventCallback")||(o.registerOrientationChangeEventCallback=function(){Ne("'registerOrientationChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillFullscreenChangeEventData")||(o.fillFullscreenChangeEventData=function(){Ne("'fillFullscreenChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerFullscreenChangeEventCallback")||(o.registerFullscreenChangeEventCallback=function(){Ne("'registerFullscreenChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerRestoreOldStyle")||(o.registerRestoreOldStyle=function(){Ne("'registerRestoreOldStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"hideEverythingExceptGivenElement")||(o.hideEverythingExceptGivenElement=function(){Ne("'hideEverythingExceptGivenElement' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"restoreHiddenElements")||(o.restoreHiddenElements=function(){Ne("'restoreHiddenElements' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setLetterbox")||(o.setLetterbox=function(){Ne("'setLetterbox' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"currentFullscreenStrategy")||(o.currentFullscreenStrategy=function(){Ne("'currentFullscreenStrategy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"restoreOldWindowedStyle")||(o.restoreOldWindowedStyle=function(){Ne("'restoreOldWindowedStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"softFullscreenResizeWebGLRenderTarget")||(o.softFullscreenResizeWebGLRenderTarget=function(){Ne("'softFullscreenResizeWebGLRenderTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"doRequestFullscreen")||(o.doRequestFullscreen=function(){Ne("'doRequestFullscreen' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillPointerlockChangeEventData")||(o.fillPointerlockChangeEventData=function(){Ne("'fillPointerlockChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerPointerlockChangeEventCallback")||(o.registerPointerlockChangeEventCallback=function(){Ne("'registerPointerlockChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerPointerlockErrorEventCallback")||(o.registerPointerlockErrorEventCallback=function(){Ne("'registerPointerlockErrorEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"requestPointerLock")||(o.requestPointerLock=function(){Ne("'requestPointerLock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillVisibilityChangeEventData")||(o.fillVisibilityChangeEventData=function(){Ne("'fillVisibilityChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerVisibilityChangeEventCallback")||(o.registerVisibilityChangeEventCallback=function(){Ne("'registerVisibilityChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerTouchEventCallback")||(o.registerTouchEventCallback=function(){Ne("'registerTouchEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillGamepadEventData")||(o.fillGamepadEventData=function(){Ne("'fillGamepadEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerGamepadEventCallback")||(o.registerGamepadEventCallback=function(){Ne("'registerGamepadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerBeforeUnloadEventCallback")||(o.registerBeforeUnloadEventCallback=function(){Ne("'registerBeforeUnloadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"fillBatteryEventData")||(o.fillBatteryEventData=function(){Ne("'fillBatteryEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"battery")||(o.battery=function(){Ne("'battery' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerBatteryEventCallback")||(o.registerBatteryEventCallback=function(){Ne("'registerBatteryEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setCanvasElementSize")||(o.setCanvasElementSize=function(){Ne("'setCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getCanvasElementSize")||(o.getCanvasElementSize=function(){Ne("'getCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"demangle")||(o.demangle=function(){Ne("'demangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"demangleAll")||(o.demangleAll=function(){Ne("'demangleAll' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"jsStackTrace")||(o.jsStackTrace=function(){Ne("'jsStackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stackTrace")||(o.stackTrace=function(){Ne("'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getEnvStrings")||(o.getEnvStrings=function(){Ne("'getEnvStrings' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"checkWasiClock")||(o.checkWasiClock=function(){Ne("'checkWasiClock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeI53ToI64")||(o.writeI53ToI64=function(){Ne("'writeI53ToI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeI53ToI64Clamped")||(o.writeI53ToI64Clamped=function(){Ne("'writeI53ToI64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeI53ToI64Signaling")||(o.writeI53ToI64Signaling=function(){Ne("'writeI53ToI64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeI53ToU64Clamped")||(o.writeI53ToU64Clamped=function(){Ne("'writeI53ToU64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeI53ToU64Signaling")||(o.writeI53ToU64Signaling=function(){Ne("'writeI53ToU64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"readI53FromI64")||(o.readI53FromI64=function(){Ne("'readI53FromI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"readI53FromU64")||(o.readI53FromU64=function(){Ne("'readI53FromU64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"convertI32PairToI53")||(o.convertI32PairToI53=function(){Ne("'convertI32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"convertU32PairToI53")||(o.convertU32PairToI53=function(){Ne("'convertU32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setImmediateWrapped")||(o.setImmediateWrapped=function(){Ne("'setImmediateWrapped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"clearImmediateWrapped")||(o.clearImmediateWrapped=function(){Ne("'clearImmediateWrapped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"polyfillSetImmediate")||(o.polyfillSetImmediate=function(){Ne("'polyfillSetImmediate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"uncaughtExceptionCount")||(o.uncaughtExceptionCount=function(){Ne("'uncaughtExceptionCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"exceptionLast")||(o.exceptionLast=function(){Ne("'exceptionLast' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"exceptionCaught")||(o.exceptionCaught=function(){Ne("'exceptionCaught' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ExceptionInfo")||(o.ExceptionInfo=function(){Ne("'ExceptionInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"CatchInfo")||(o.CatchInfo=function(){Ne("'CatchInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"exception_addRef")||(o.exception_addRef=function(){Ne("'exception_addRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"exception_decRef")||(o.exception_decRef=function(){Ne("'exception_decRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"Browser")||(o.Browser=function(){Ne("'Browser' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"funcWrappers")||(o.funcWrappers=function(){Ne("'funcWrappers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getFuncWrapper")||(o.getFuncWrapper=function(){Ne("'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setMainLoop")||(o.setMainLoop=function(){Ne("'setMainLoop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"wget")||(o.wget=function(){Ne("'wget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"FS")||(o.FS=function(){Ne("'FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"MEMFS")||(o.MEMFS=function(){Ne("'MEMFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"TTY")||(o.TTY=function(){Ne("'TTY' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"PIPEFS")||(o.PIPEFS=function(){Ne("'PIPEFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SOCKFS")||(o.SOCKFS=function(){Ne("'SOCKFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"_setNetworkCallback")||(o._setNetworkCallback=function(){Ne("'_setNetworkCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"tempFixedLengthArray")||(o.tempFixedLengthArray=function(){Ne("'tempFixedLengthArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"miniTempWebGLFloatBuffers")||(o.miniTempWebGLFloatBuffers=function(){Ne("'miniTempWebGLFloatBuffers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"heapObjectForWebGLType")||(o.heapObjectForWebGLType=function(){Ne("'heapObjectForWebGLType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"heapAccessShiftForWebGLHeap")||(o.heapAccessShiftForWebGLHeap=function(){Ne("'heapAccessShiftForWebGLHeap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"GL")||(o.GL=function(){Ne("'GL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscriptenWebGLGet")||(o.emscriptenWebGLGet=function(){Ne("'emscriptenWebGLGet' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"computeUnpackAlignedImageSize")||(o.computeUnpackAlignedImageSize=function(){Ne("'computeUnpackAlignedImageSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscriptenWebGLGetTexPixelData")||(o.emscriptenWebGLGetTexPixelData=function(){Ne("'emscriptenWebGLGetTexPixelData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscriptenWebGLGetUniform")||(o.emscriptenWebGLGetUniform=function(){Ne("'emscriptenWebGLGetUniform' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"webglGetUniformLocation")||(o.webglGetUniformLocation=function(){Ne("'webglGetUniformLocation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"webglPrepareUniformLocationsBeforeFirstUse")||(o.webglPrepareUniformLocationsBeforeFirstUse=function(){Ne("'webglPrepareUniformLocationsBeforeFirstUse' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"webglGetLeftBracePos")||(o.webglGetLeftBracePos=function(){Ne("'webglGetLeftBracePos' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscriptenWebGLGetVertexAttrib")||(o.emscriptenWebGLGetVertexAttrib=function(){Ne("'emscriptenWebGLGetVertexAttrib' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"writeGLArray")||(o.writeGLArray=function(){Ne("'writeGLArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"AL")||(o.AL=function(){Ne("'AL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SDL_unicode")||(o.SDL_unicode=function(){Ne("'SDL_unicode' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SDL_ttfContext")||(o.SDL_ttfContext=function(){Ne("'SDL_ttfContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SDL_audio")||(o.SDL_audio=function(){Ne("'SDL_audio' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SDL")||(o.SDL=function(){Ne("'SDL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"SDL_gfx")||(o.SDL_gfx=function(){Ne("'SDL_gfx' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"GLUT")||(o.GLUT=function(){Ne("'GLUT' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"EGL")||(o.EGL=function(){Ne("'EGL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"GLFW_Window")||(o.GLFW_Window=function(){Ne("'GLFW_Window' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"GLFW")||(o.GLFW=function(){Ne("'GLFW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"GLEW")||(o.GLEW=function(){Ne("'GLEW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"IDBStore")||(o.IDBStore=function(){Ne("'IDBStore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"runAndAbortIfError")||(o.runAndAbortIfError=function(){Ne("'runAndAbortIfError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emval_handle_array")||(o.emval_handle_array=function(){Ne("'emval_handle_array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emval_free_list")||(o.emval_free_list=function(){Ne("'emval_free_list' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emval_symbols")||(o.emval_symbols=function(){Ne("'emval_symbols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"init_emval")||(o.init_emval=function(){Ne("'init_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"count_emval_handles")||(o.count_emval_handles=function(){Ne("'count_emval_handles' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"get_first_emval")||(o.get_first_emval=function(){Ne("'get_first_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getStringOrSymbol")||(o.getStringOrSymbol=function(){Ne("'getStringOrSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"Emval")||(o.Emval=function(){Ne("'Emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emval_newers")||(o.emval_newers=function(){Ne("'emval_newers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"craftEmvalAllocator")||(o.craftEmvalAllocator=function(){Ne("'craftEmvalAllocator' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emval_get_global")||(o.emval_get_global=function(){Ne("'emval_get_global' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emval_methodCallers")||(o.emval_methodCallers=function(){Ne("'emval_methodCallers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"InternalError")||(o.InternalError=function(){Ne("'InternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"BindingError")||(o.BindingError=function(){Ne("'BindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"UnboundTypeError")||(o.UnboundTypeError=function(){Ne("'UnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"PureVirtualError")||(o.PureVirtualError=function(){Ne("'PureVirtualError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"init_embind")||(o.init_embind=function(){Ne("'init_embind' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"throwInternalError")||(o.throwInternalError=function(){Ne("'throwInternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"throwBindingError")||(o.throwBindingError=function(){Ne("'throwBindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"throwUnboundTypeError")||(o.throwUnboundTypeError=function(){Ne("'throwUnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ensureOverloadTable")||(o.ensureOverloadTable=function(){Ne("'ensureOverloadTable' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"exposePublicSymbol")||(o.exposePublicSymbol=function(){Ne("'exposePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"replacePublicSymbol")||(o.replacePublicSymbol=function(){Ne("'replacePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"extendError")||(o.extendError=function(){Ne("'extendError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"createNamedFunction")||(o.createNamedFunction=function(){Ne("'createNamedFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registeredInstances")||(o.registeredInstances=function(){Ne("'registeredInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getBasestPointer")||(o.getBasestPointer=function(){Ne("'getBasestPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerInheritedInstance")||(o.registerInheritedInstance=function(){Ne("'registerInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"unregisterInheritedInstance")||(o.unregisterInheritedInstance=function(){Ne("'unregisterInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getInheritedInstance")||(o.getInheritedInstance=function(){Ne("'getInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getInheritedInstanceCount")||(o.getInheritedInstanceCount=function(){Ne("'getInheritedInstanceCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getLiveInheritedInstances")||(o.getLiveInheritedInstances=function(){Ne("'getLiveInheritedInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registeredTypes")||(o.registeredTypes=function(){Ne("'registeredTypes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"awaitingDependencies")||(o.awaitingDependencies=function(){Ne("'awaitingDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"typeDependencies")||(o.typeDependencies=function(){Ne("'typeDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registeredPointers")||(o.registeredPointers=function(){Ne("'registeredPointers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"registerType")||(o.registerType=function(){Ne("'registerType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"whenDependentTypesAreResolved")||(o.whenDependentTypesAreResolved=function(){Ne("'whenDependentTypesAreResolved' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"embind_charCodes")||(o.embind_charCodes=function(){Ne("'embind_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"embind_init_charCodes")||(o.embind_init_charCodes=function(){Ne("'embind_init_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"readLatin1String")||(o.readLatin1String=function(){Ne("'readLatin1String' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getTypeName")||(o.getTypeName=function(){Ne("'getTypeName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"heap32VectorToArray")||(o.heap32VectorToArray=function(){Ne("'heap32VectorToArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"requireRegisteredType")||(o.requireRegisteredType=function(){Ne("'requireRegisteredType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"getShiftFromSize")||(o.getShiftFromSize=function(){Ne("'getShiftFromSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"integerReadValueFromPointer")||(o.integerReadValueFromPointer=function(){Ne("'integerReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"enumReadValueFromPointer")||(o.enumReadValueFromPointer=function(){Ne("'enumReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"floatReadValueFromPointer")||(o.floatReadValueFromPointer=function(){Ne("'floatReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"simpleReadValueFromPointer")||(o.simpleReadValueFromPointer=function(){Ne("'simpleReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"runDestructors")||(o.runDestructors=function(){Ne("'runDestructors' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"new_")||(o.new_=function(){Ne("'new_' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"craftInvokerFunction")||(o.craftInvokerFunction=function(){Ne("'craftInvokerFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"embind__requireFunction")||(o.embind__requireFunction=function(){Ne("'embind__requireFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"tupleRegistrations")||(o.tupleRegistrations=function(){Ne("'tupleRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"structRegistrations")||(o.structRegistrations=function(){Ne("'structRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"genericPointerToWireType")||(o.genericPointerToWireType=function(){Ne("'genericPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"constNoSmartPtrRawPointerToWireType")||(o.constNoSmartPtrRawPointerToWireType=function(){Ne("'constNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"nonConstNoSmartPtrRawPointerToWireType")||(o.nonConstNoSmartPtrRawPointerToWireType=function(){Ne("'nonConstNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"init_RegisteredPointer")||(o.init_RegisteredPointer=function(){Ne("'init_RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"RegisteredPointer")||(o.RegisteredPointer=function(){Ne("'RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"RegisteredPointer_getPointee")||(o.RegisteredPointer_getPointee=function(){Ne("'RegisteredPointer_getPointee' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"RegisteredPointer_destructor")||(o.RegisteredPointer_destructor=function(){Ne("'RegisteredPointer_destructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"RegisteredPointer_deleteObject")||(o.RegisteredPointer_deleteObject=function(){Ne("'RegisteredPointer_deleteObject' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"RegisteredPointer_fromWireType")||(o.RegisteredPointer_fromWireType=function(){Ne("'RegisteredPointer_fromWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"runDestructor")||(o.runDestructor=function(){Ne("'runDestructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"releaseClassHandle")||(o.releaseClassHandle=function(){Ne("'releaseClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"finalizationRegistry")||(o.finalizationRegistry=function(){Ne("'finalizationRegistry' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"detachFinalizer_deps")||(o.detachFinalizer_deps=function(){Ne("'detachFinalizer_deps' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"detachFinalizer")||(o.detachFinalizer=function(){Ne("'detachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"attachFinalizer")||(o.attachFinalizer=function(){Ne("'attachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"makeClassHandle")||(o.makeClassHandle=function(){Ne("'makeClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"init_ClassHandle")||(o.init_ClassHandle=function(){Ne("'init_ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ClassHandle")||(o.ClassHandle=function(){Ne("'ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ClassHandle_isAliasOf")||(o.ClassHandle_isAliasOf=function(){Ne("'ClassHandle_isAliasOf' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"throwInstanceAlreadyDeleted")||(o.throwInstanceAlreadyDeleted=function(){Ne("'throwInstanceAlreadyDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ClassHandle_clone")||(o.ClassHandle_clone=function(){Ne("'ClassHandle_clone' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ClassHandle_delete")||(o.ClassHandle_delete=function(){Ne("'ClassHandle_delete' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"deletionQueue")||(o.deletionQueue=function(){Ne("'deletionQueue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ClassHandle_isDeleted")||(o.ClassHandle_isDeleted=function(){Ne("'ClassHandle_isDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"ClassHandle_deleteLater")||(o.ClassHandle_deleteLater=function(){Ne("'ClassHandle_deleteLater' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"flushPendingDeletes")||(o.flushPendingDeletes=function(){Ne("'flushPendingDeletes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"delayFunction")||(o.delayFunction=function(){Ne("'delayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"setDelayFunction")||(o.setDelayFunction=function(){Ne("'setDelayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"RegisteredClass")||(o.RegisteredClass=function(){Ne("'RegisteredClass' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"shallowCopyInternalPointer")||(o.shallowCopyInternalPointer=function(){Ne("'shallowCopyInternalPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"downcastPointer")||(o.downcastPointer=function(){Ne("'downcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"upcastPointer")||(o.upcastPointer=function(){Ne("'upcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"validateThis")||(o.validateThis=function(){Ne("'validateThis' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"char_0")||(o.char_0=function(){Ne("'char_0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"char_9")||(o.char_9=function(){Ne("'char_9' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"makeLegalFunctionName")||(o.makeLegalFunctionName=function(){Ne("'makeLegalFunctionName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"emscriptenWebGLGetIndexed")||(o.emscriptenWebGLGetIndexed=function(){Ne("'emscriptenWebGLGetIndexed' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"warnOnce")||(o.warnOnce=function(){Ne("'warnOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stackSave")||(o.stackSave=function(){Ne("'stackSave' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stackRestore")||(o.stackRestore=function(){Ne("'stackRestore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stackAlloc")||(o.stackAlloc=function(){Ne("'stackAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"AsciiToString")||(o.AsciiToString=function(){Ne("'AsciiToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stringToAscii")||(o.stringToAscii=function(){Ne("'stringToAscii' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"UTF16ToString")||(o.UTF16ToString=function(){Ne("'UTF16ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stringToUTF16")||(o.stringToUTF16=function(){Ne("'stringToUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"lengthBytesUTF16")||(o.lengthBytesUTF16=function(){Ne("'lengthBytesUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"UTF32ToString")||(o.UTF32ToString=function(){Ne("'UTF32ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"stringToUTF32")||(o.stringToUTF32=function(){Ne("'stringToUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"lengthBytesUTF32")||(o.lengthBytesUTF32=function(){Ne("'lengthBytesUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"allocateUTF8")||(o.allocateUTF8=function(){Ne("'allocateUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(o,"allocateUTF8OnStack")||(o.allocateUTF8OnStack=function(){Ne("'allocateUTF8OnStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}),o.writeStackCookie=fe,o.checkStackCookie=pe,Object.getOwnPropertyDescriptor(o,"ALLOC_NORMAL")||Object.defineProperty(o,"ALLOC_NORMAL",{configurable:!0,get:function(){Ne("'ALLOC_NORMAL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),Object.getOwnPropertyDescriptor(o,"ALLOC_STACK")||Object.defineProperty(o,"ALLOC_STACK",{configurable:!0,get:function(){Ne("'ALLOC_STACK' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),ke=function e(){yl||Yl(),yl||(ke=e)},o.run=Yl,o.preInit)for("function"==typeof o.preInit&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();var Jl=!0;return o.noInitialRun&&(Jl=!1),Yl(),t.ready}}();export default CESDK;