@onirix/ar-engine-sdk 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1 @@
1
+ const e={Image:1,QRCode:2,Surface:3},t={OnDetected:1,OnPose:2,OnLost:3,OnResize:4,OnTouch:5,OnHitTestResult:6},r={useVocabulary:!1,useWebXR:!0};class n extends Error{constructor(e){super(e),this.name="INTERNAL_ERROR"}}class i extends Error{constructor(e){super(e),this.name="LICENSE_ERROR"}}class o extends Error{constructor(e){super(e),this.name="CAMERA_ERROR"}}class a extends Error{constructor(e){super(e),this.name="SENSORS_ERROR"}}function s(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var u,c=s((function(e,t){e.exports=function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=90)}({17:function(e,t,r){t.__esModule=!0,t.default=void 0;var n=r(18),i=function(){function e(){}return e.getFirstMatch=function(e,t){var r=t.match(e);return r&&r.length>0&&r[1]||""},e.getSecondMatch=function(e,t){var r=t.match(e);return r&&r.length>1&&r[2]||""},e.matchAndReturnConst=function(e,t,r){if(e.test(t))return r},e.getWindowsVersionName=function(e){switch(e){case"NT":return"NT";case"XP":return"XP";case"NT 5.0":return"2000";case"NT 5.1":return"XP";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}},e.getMacOSVersionName=function(e){var t=e.split(".").splice(0,2).map(function(e){return parseInt(e,10)||0});if(t.push(0),10===t[0])switch(t[1]){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return}},e.getAndroidVersionName=function(e){var t=e.split(".").splice(0,2).map(function(e){return parseInt(e,10)||0});if(t.push(0),!(1===t[0]&&t[1]<5))return 1===t[0]&&t[1]<6?"Cupcake":1===t[0]&&t[1]>=6?"Donut":2===t[0]&&t[1]<2?"Eclair":2===t[0]&&2===t[1]?"Froyo":2===t[0]&&t[1]>2?"Gingerbread":3===t[0]?"Honeycomb":4===t[0]&&t[1]<1?"Ice Cream Sandwich":4===t[0]&&t[1]<4?"Jelly Bean":4===t[0]&&t[1]>=4?"KitKat":5===t[0]?"Lollipop":6===t[0]?"Marshmallow":7===t[0]?"Nougat":8===t[0]?"Oreo":9===t[0]?"Pie":void 0},e.getVersionPrecision=function(e){return e.split(".").length},e.compareVersions=function(t,r,n){void 0===n&&(n=!1);var i=e.getVersionPrecision(t),o=e.getVersionPrecision(r),a=Math.max(i,o),s=0,u=e.map([t,r],function(t){var r=a-e.getVersionPrecision(t),n=t+new Array(r+1).join(".0");return e.map(n.split("."),function(e){return new Array(20-e.length).join("0")+e}).reverse()});for(n&&(s=a-Math.min(i,o)),a-=1;a>=s;){if(u[0][a]>u[1][a])return 1;if(u[0][a]===u[1][a]){if(a===s)return 0;a-=1}else if(u[0][a]<u[1][a])return-1}},e.map=function(e,t){var r,n=[];if(Array.prototype.map)return Array.prototype.map.call(e,t);for(r=0;r<e.length;r+=1)n.push(t(e[r]));return n},e.find=function(e,t){var r,n;if(Array.prototype.find)return Array.prototype.find.call(e,t);for(r=0,n=e.length;r<n;r+=1){var i=e[r];if(t(i,r))return i}},e.assign=function(e){for(var t,r,n=e,i=arguments.length,o=new Array(i>1?i-1:0),a=1;a<i;a++)o[a-1]=arguments[a];if(Object.assign)return Object.assign.apply(Object,[e].concat(o));var s=function(){var e=o[t];"object"==typeof e&&null!==e&&Object.keys(e).forEach(function(t){n[t]=e[t]})};for(t=0,r=o.length;t<r;t+=1)s();return e},e.getBrowserAlias=function(e){return n.BROWSER_ALIASES_MAP[e]},e.getBrowserTypeByAlias=function(e){return n.BROWSER_MAP[e]||""},e}();t.default=i,e.exports=t.default},18:function(e,t,r){t.__esModule=!0,t.ENGINE_MAP=t.OS_MAP=t.PLATFORMS_MAP=t.BROWSER_MAP=t.BROWSER_ALIASES_MAP=void 0,t.BROWSER_ALIASES_MAP={"Amazon Silk":"amazon_silk","Android Browser":"android",Bada:"bada",BlackBerry:"blackberry",Chrome:"chrome",Chromium:"chromium",Electron:"electron",Epiphany:"epiphany",Firefox:"firefox",Focus:"focus",Generic:"generic","Google Search":"google_search",Googlebot:"googlebot","Internet Explorer":"ie","K-Meleon":"k_meleon",Maxthon:"maxthon","Microsoft Edge":"edge","MZ Browser":"mz","NAVER Whale Browser":"naver",Opera:"opera","Opera Coast":"opera_coast",PhantomJS:"phantomjs",Puffin:"puffin",QupZilla:"qupzilla",QQ:"qq",QQLite:"qqlite",Safari:"safari",Sailfish:"sailfish","Samsung Internet for Android":"samsung_internet",SeaMonkey:"seamonkey",Sleipnir:"sleipnir",Swing:"swing",Tizen:"tizen","UC Browser":"uc",Vivaldi:"vivaldi","WebOS Browser":"webos",WeChat:"wechat","Yandex Browser":"yandex",Roku:"roku"},t.BROWSER_MAP={amazon_silk:"Amazon Silk",android:"Android Browser",bada:"Bada",blackberry:"BlackBerry",chrome:"Chrome",chromium:"Chromium",electron:"Electron",epiphany:"Epiphany",firefox:"Firefox",focus:"Focus",generic:"Generic",googlebot:"Googlebot",google_search:"Google Search",ie:"Internet Explorer",k_meleon:"K-Meleon",maxthon:"Maxthon",edge:"Microsoft Edge",mz:"MZ Browser",naver:"NAVER Whale Browser",opera:"Opera",opera_coast:"Opera Coast",phantomjs:"PhantomJS",puffin:"Puffin",qupzilla:"QupZilla",qq:"QQ Browser",qqlite:"QQ Browser Lite",safari:"Safari",sailfish:"Sailfish",samsung_internet:"Samsung Internet for Android",seamonkey:"SeaMonkey",sleipnir:"Sleipnir",swing:"Swing",tizen:"Tizen",uc:"UC Browser",vivaldi:"Vivaldi",webos:"WebOS Browser",wechat:"WeChat",yandex:"Yandex Browser"},t.PLATFORMS_MAP={tablet:"tablet",mobile:"mobile",desktop:"desktop",tv:"tv"},t.OS_MAP={WindowsPhone:"Windows Phone",Windows:"Windows",MacOS:"macOS",iOS:"iOS",Android:"Android",WebOS:"WebOS",BlackBerry:"BlackBerry",Bada:"Bada",Tizen:"Tizen",Linux:"Linux",ChromeOS:"Chrome OS",PlayStation4:"PlayStation 4",Roku:"Roku"},t.ENGINE_MAP={EdgeHTML:"EdgeHTML",Blink:"Blink",Trident:"Trident",Presto:"Presto",Gecko:"Gecko",WebKit:"WebKit"}},90:function(e,t,r){t.__esModule=!0,t.default=void 0;var n,i=(n=r(91))&&n.__esModule?n:{default:n},o=r(18),a=function(){function e(){}var t;return e.getParser=function(e,t){if(void 0===t&&(t=!1),"string"!=typeof e)throw new Error("UserAgent should be a string");return new i.default(e,t)},e.parse=function(e){return new i.default(e).getResult()},(t=[{key:"BROWSER_MAP",get:function(){return o.BROWSER_MAP}},{key:"ENGINE_MAP",get:function(){return o.ENGINE_MAP}},{key:"OS_MAP",get:function(){return o.OS_MAP}},{key:"PLATFORMS_MAP",get:function(){return o.PLATFORMS_MAP}}])&&function(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}(e,t),e}();t.default=a,e.exports=t.default},91:function(e,t,r){t.__esModule=!0,t.default=void 0;var n=u(r(92)),i=u(r(93)),o=u(r(94)),a=u(r(95)),s=u(r(17));function u(e){return e&&e.__esModule?e:{default:e}}var c=function(){function e(e,t){if(void 0===t&&(t=!1),null==e||""===e)throw new Error("UserAgent parameter can't be empty");this._ua=e,this.parsedResult={},!0!==t&&this.parse()}var t=e.prototype;return t.getUA=function(){return this._ua},t.test=function(e){return e.test(this._ua)},t.parseBrowser=function(){var e=this;this.parsedResult.browser={};var t=s.default.find(n.default,function(t){if("function"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some(function(t){return e.test(t)});throw new Error("Browser's test function is not valid")});return t&&(this.parsedResult.browser=t.describe(this.getUA())),this.parsedResult.browser},t.getBrowser=function(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()},t.getBrowserName=function(e){return e?String(this.getBrowser().name).toLowerCase()||"":this.getBrowser().name||""},t.getBrowserVersion=function(){return this.getBrowser().version},t.getOS=function(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()},t.parseOS=function(){var e=this;this.parsedResult.os={};var t=s.default.find(i.default,function(t){if("function"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some(function(t){return e.test(t)});throw new Error("Browser's test function is not valid")});return t&&(this.parsedResult.os=t.describe(this.getUA())),this.parsedResult.os},t.getOSName=function(e){var t=this.getOS().name;return e?String(t).toLowerCase()||"":t||""},t.getOSVersion=function(){return this.getOS().version},t.getPlatform=function(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()},t.getPlatformType=function(e){void 0===e&&(e=!1);var t=this.getPlatform().type;return e?String(t).toLowerCase()||"":t||""},t.parsePlatform=function(){var e=this;this.parsedResult.platform={};var t=s.default.find(o.default,function(t){if("function"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some(function(t){return e.test(t)});throw new Error("Browser's test function is not valid")});return t&&(this.parsedResult.platform=t.describe(this.getUA())),this.parsedResult.platform},t.getEngine=function(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()},t.getEngineName=function(e){return e?String(this.getEngine().name).toLowerCase()||"":this.getEngine().name||""},t.parseEngine=function(){var e=this;this.parsedResult.engine={};var t=s.default.find(a.default,function(t){if("function"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some(function(t){return e.test(t)});throw new Error("Browser's test function is not valid")});return t&&(this.parsedResult.engine=t.describe(this.getUA())),this.parsedResult.engine},t.parse=function(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this},t.getResult=function(){return s.default.assign({},this.parsedResult)},t.satisfies=function(e){var t=this,r={},n=0,i={},o=0;if(Object.keys(e).forEach(function(t){var a=e[t];"string"==typeof a?(i[t]=a,o+=1):"object"==typeof a&&(r[t]=a,n+=1)}),n>0){var a=Object.keys(r),u=s.default.find(a,function(e){return t.isOS(e)});if(u){var c=this.satisfies(r[u]);if(void 0!==c)return c}var l=s.default.find(a,function(e){return t.isPlatform(e)});if(l){var d=this.satisfies(r[l]);if(void 0!==d)return d}}if(o>0){var f=Object.keys(i),h=s.default.find(f,function(e){return t.isBrowser(e,!0)});if(void 0!==h)return this.compareVersion(i[h])}},t.isBrowser=function(e,t){void 0===t&&(t=!1);var r=this.getBrowserName().toLowerCase(),n=e.toLowerCase(),i=s.default.getBrowserTypeByAlias(n);return t&&i&&(n=i.toLowerCase()),n===r},t.compareVersion=function(e){var t=[0],r=e,n=!1,i=this.getBrowserVersion();if("string"==typeof i)return">"===e[0]||"<"===e[0]?(r=e.substr(1),"="===e[1]?(n=!0,r=e.substr(2)):t=[],t.push(">"===e[0]?1:-1)):"="===e[0]?r=e.substr(1):"~"===e[0]&&(n=!0,r=e.substr(1)),t.indexOf(s.default.compareVersions(i,r,n))>-1},t.isOS=function(e){return this.getOSName(!0)===String(e).toLowerCase()},t.isPlatform=function(e){return this.getPlatformType(!0)===String(e).toLowerCase()},t.isEngine=function(e){return this.getEngineName(!0)===String(e).toLowerCase()},t.is=function(e,t){return void 0===t&&(t=!1),this.isBrowser(e,t)||this.isOS(e)||this.isPlatform(e)},t.some=function(e){var t=this;return void 0===e&&(e=[]),e.some(function(e){return t.is(e)})},e}();t.default=c,e.exports=t.default},92:function(e,t,r){t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},o=/version\/(\d+(\.?_?\d+)+)/i,a=[{test:[/googlebot/i],describe:function(e){var t={name:"Googlebot"},r=i.default.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/opera/i],describe:function(e){var t={name:"Opera"},r=i.default.getFirstMatch(o,e)||i.default.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opr\/|opios/i],describe:function(e){var t={name:"Opera"},r=i.default.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/SamsungBrowser/i],describe:function(e){var t={name:"Samsung Internet for Android"},r=i.default.getFirstMatch(o,e)||i.default.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Whale/i],describe:function(e){var t={name:"NAVER Whale Browser"},r=i.default.getFirstMatch(o,e)||i.default.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MZBrowser/i],describe:function(e){var t={name:"MZ Browser"},r=i.default.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/focus/i],describe:function(e){var t={name:"Focus"},r=i.default.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/swing/i],describe:function(e){var t={name:"Swing"},r=i.default.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/coast/i],describe:function(e){var t={name:"Opera Coast"},r=i.default.getFirstMatch(o,e)||i.default.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opt\/\d+(?:.?_?\d+)+/i],describe:function(e){var t={name:"Opera Touch"},r=i.default.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/yabrowser/i],describe:function(e){var t={name:"Yandex Browser"},r=i.default.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/ucbrowser/i],describe:function(e){var t={name:"UC Browser"},r=i.default.getFirstMatch(o,e)||i.default.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Maxthon|mxios/i],describe:function(e){var t={name:"Maxthon"},r=i.default.getFirstMatch(o,e)||i.default.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/epiphany/i],describe:function(e){var t={name:"Epiphany"},r=i.default.getFirstMatch(o,e)||i.default.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/puffin/i],describe:function(e){var t={name:"Puffin"},r=i.default.getFirstMatch(o,e)||i.default.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sleipnir/i],describe:function(e){var t={name:"Sleipnir"},r=i.default.getFirstMatch(o,e)||i.default.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/k-meleon/i],describe:function(e){var t={name:"K-Meleon"},r=i.default.getFirstMatch(o,e)||i.default.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/micromessenger/i],describe:function(e){var t={name:"WeChat"},r=i.default.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/qqbrowser/i],describe:function(e){var t={name:/qqbrowserlite/i.test(e)?"QQ Browser Lite":"QQ Browser"},r=i.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/msie|trident/i],describe:function(e){var t={name:"Internet Explorer"},r=i.default.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/\sedg\//i],describe:function(e){var t={name:"Microsoft Edge"},r=i.default.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/edg([ea]|ios)/i],describe:function(e){var t={name:"Microsoft Edge"},r=i.default.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/vivaldi/i],describe:function(e){var t={name:"Vivaldi"},r=i.default.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/seamonkey/i],describe:function(e){var t={name:"SeaMonkey"},r=i.default.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sailfish/i],describe:function(e){var t={name:"Sailfish"},r=i.default.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i,e);return r&&(t.version=r),t}},{test:[/silk/i],describe:function(e){var t={name:"Amazon Silk"},r=i.default.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/phantom/i],describe:function(e){var t={name:"PhantomJS"},r=i.default.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/slimerjs/i],describe:function(e){var t={name:"SlimerJS"},r=i.default.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(e){var t={name:"BlackBerry"},r=i.default.getFirstMatch(o,e)||i.default.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t={name:"WebOS Browser"},r=i.default.getFirstMatch(o,e)||i.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/bada/i],describe:function(e){var t={name:"Bada"},r=i.default.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/tizen/i],describe:function(e){var t={name:"Tizen"},r=i.default.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/qupzilla/i],describe:function(e){var t={name:"QupZilla"},r=i.default.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/firefox|iceweasel|fxios/i],describe:function(e){var t={name:"Firefox"},r=i.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/electron/i],describe:function(e){var t={name:"Electron"},r=i.default.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MiuiBrowser/i],describe:function(e){var t={name:"Miui"},r=i.default.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/chromium/i],describe:function(e){var t={name:"Chromium"},r=i.default.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/chrome|crios|crmo/i],describe:function(e){var t={name:"Chrome"},r=i.default.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/GSA/i],describe:function(e){var t={name:"Google Search"},r=i.default.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t={name:"Android Browser"},r=i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/playstation 4/i],describe:function(e){var t={name:"PlayStation 4"},r=i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/safari|applewebkit/i],describe:function(e){var t={name:"Safari"},r=i.default.getFirstMatch(o,e);return r&&(t.version=r),t}},{test:[/.*/i],describe:function(e){var t=-1!==e.search("\\(")?/^(.*)\/(.*)[ \t]\((.*)/:/^(.*)\/(.*) /;return{name:i.default.getFirstMatch(t,e),version:i.default.getSecondMatch(t,e)}}}];t.default=a,e.exports=t.default},93:function(e,t,r){t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},o=r(18),a=[{test:[/Roku\/DVP/],describe:function(e){var t=i.default.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,e);return{name:o.OS_MAP.Roku,version:t}}},{test:[/windows phone/i],describe:function(e){var t=i.default.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,e);return{name:o.OS_MAP.WindowsPhone,version:t}}},{test:[/windows /i],describe:function(e){var t=i.default.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,e),r=i.default.getWindowsVersionName(t);return{name:o.OS_MAP.Windows,version:t,versionName:r}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(e){var t={name:o.OS_MAP.iOS},r=i.default.getSecondMatch(/(Version\/)(\d[\d.]+)/,e);return r&&(t.version=r),t}},{test:[/macintosh/i],describe:function(e){var t=i.default.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,e).replace(/[_\s]/g,"."),r=i.default.getMacOSVersionName(t),n={name:o.OS_MAP.MacOS,version:t};return r&&(n.versionName=r),n}},{test:[/(ipod|iphone|ipad)/i],describe:function(e){var t=i.default.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,e).replace(/[_\s]/g,".");return{name:o.OS_MAP.iOS,version:t}}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t=i.default.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,e),r=i.default.getAndroidVersionName(t),n={name:o.OS_MAP.Android,version:t};return r&&(n.versionName=r),n}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t=i.default.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,e),r={name:o.OS_MAP.WebOS};return t&&t.length&&(r.version=t),r}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(e){var t=i.default.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,e)||i.default.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,e)||i.default.getFirstMatch(/\bbb(\d+)/i,e);return{name:o.OS_MAP.BlackBerry,version:t}}},{test:[/bada/i],describe:function(e){var t=i.default.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,e);return{name:o.OS_MAP.Bada,version:t}}},{test:[/tizen/i],describe:function(e){var t=i.default.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,e);return{name:o.OS_MAP.Tizen,version:t}}},{test:[/linux/i],describe:function(){return{name:o.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:o.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(e){var t=i.default.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,e);return{name:o.OS_MAP.PlayStation4,version:t}}}];t.default=a,e.exports=t.default},94:function(e,t,r){t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},o=r(18);t.default=[{test:[/googlebot/i],describe:function(){return{type:"bot",vendor:"Google"}}},{test:[/huawei/i],describe:function(e){var t=i.default.getFirstMatch(/(can-l01)/i,e)&&"Nova",r={type:o.PLATFORMS_MAP.mobile,vendor:"Huawei"};return t&&(r.model=t),r}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe:function(){return{type:o.PLATFORMS_MAP.tablet,vendor:"Nexus"}}},{test:[/ipad/i],describe:function(){return{type:o.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(){return{type:o.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/kftt build/i],describe:function(){return{type:o.PLATFORMS_MAP.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"}}},{test:[/silk/i],describe:function(){return{type:o.PLATFORMS_MAP.tablet,vendor:"Amazon"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:o.PLATFORMS_MAP.tablet}}},{test:function(e){var t=e.test(/ipod|iphone/i),r=e.test(/like (ipod|iphone)/i);return t&&!r},describe:function(e){var t=i.default.getFirstMatch(/(ipod|iphone)/i,e);return{type:o.PLATFORMS_MAP.mobile,vendor:"Apple",model:t}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:o.PLATFORMS_MAP.mobile,vendor:"Nexus"}}},{test:[/[^-]mobi/i],describe:function(){return{type:o.PLATFORMS_MAP.mobile}}},{test:function(e){return"blackberry"===e.getBrowserName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.mobile,vendor:"BlackBerry"}}},{test:function(e){return"bada"===e.getBrowserName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.mobile}}},{test:function(e){return"windows phone"===e.getBrowserName()},describe:function(){return{type:o.PLATFORMS_MAP.mobile,vendor:"Microsoft"}}},{test:function(e){var t=Number(String(e.getOSVersion()).split(".")[0]);return"android"===e.getOSName(!0)&&t>=3},describe:function(){return{type:o.PLATFORMS_MAP.tablet}}},{test:function(e){return"android"===e.getOSName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.mobile}}},{test:function(e){return"macos"===e.getOSName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.desktop,vendor:"Apple"}}},{test:function(e){return"windows"===e.getOSName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.desktop}}},{test:function(e){return"linux"===e.getOSName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.desktop}}},{test:function(e){return"playstation 4"===e.getOSName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.tv}}},{test:function(e){return"roku"===e.getOSName(!0)},describe:function(){return{type:o.PLATFORMS_MAP.tv}}}],e.exports=t.default},95:function(e,t,r){t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},o=r(18),a=[{test:function(e){return"microsoft edge"===e.getBrowserName(!0)},describe:function(e){if(/\sedg\//i.test(e))return{name:o.ENGINE_MAP.Blink};var t=i.default.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,e);return{name:o.ENGINE_MAP.EdgeHTML,version:t}}},{test:[/trident/i],describe:function(e){var t={name:o.ENGINE_MAP.Trident},r=i.default.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){return e.test(/presto/i)},describe:function(e){var t={name:o.ENGINE_MAP.Presto},r=i.default.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=e.test(/gecko/i),r=e.test(/like gecko/i);return t&&!r},describe:function(e){var t={name:o.ENGINE_MAP.Gecko},r=i.default.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(apple)?webkit\/537\.36/i],describe:function(){return{name:o.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(e){var t={name:o.ENGINE_MAP.WebKit},r=i.default.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}}];t.default=a,e.exports=t.default}})}(u={exports:{}}),u.exports));class l{constructor(){const e=c.getParser(window.navigator.userAgent);this.setupDeviceId(),this.setupPlatform(e),this.parseOS(e),this.parseType(e)}setupDeviceId(){this.device=localStorage.getItem("_deviceId"),this.device||(this.device="10000000-1000-4000-8000-100000000000".replace(/[018]/g,e=>(e^crypto.getRandomValues(new Uint8Array(1))[0]&15>>e/4).toString(16)),localStorage.setItem("_deviceId",this.device))}setupPlatform(e){this.platform=`${e.getBrowser().name}-${e.getOS().name}`}parseOS(e){this.os=e.getOS().name===c.OS_MAP.iOS||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1?l.OS.iOS:e.getOS().name===c.OS_MAP.Android?l.OS.Android:e.getOS().name===c.OS_MAP.MacOS?l.OS.Mac:e.getOS().name===c.OS_MAP.Windows?l.OS.PC:l.OS.Other}parseType(e){this.type=e.getPlatform().type===c.PLATFORMS_MAP.tablet||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1?l.Type.Tablet:e.getPlatform().type===c.PLATFORMS_MAP.mobile?l.Type.Mobile:l.Type.Desktop}}l.OS={Android:0,iOS:1,PC:2,Mac:3,Other:4},l.Type={Mobile:0,Tablet:1,Desktop:2};var d,f=(d=import.meta.url,function(e){var t,r,n=void 0!==(e=e||{})?e:{};n.ready=new Promise(function(e,n){t=e,r=n});var i,o={};for(i in n)n.hasOwnProperty(i)&&(o[i]=n[i]);var a,s,u="./this.program";a="object"==typeof window,s="function"==typeof importScripts,"object"==typeof process&&"object"==typeof process.versions&&process;var c,l,f,h="";(a||s)&&(s?h=self.location.href:document.currentScript&&(h=document.currentScript.src),d&&(h=d),h=0!==h.indexOf("blob:")?h.substr(0,h.lastIndexOf("/")+1):"",c=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},s&&(f=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),l=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 m=n.print||console.log.bind(console),p=n.printErr||console.warn.bind(console);for(i in o)o.hasOwnProperty(i)&&(n[i]=o[i]);function v(e){v.shown||(v.shown={}),v.shown[e]||(v.shown[e]=1,p(e))}o=null,n.thisProgram&&(u=n.thisProgram);var g,y,w,_,b=[],S=0,M=function(e){S=e};n.wasmBinary&&(y=n.wasmBinary),"object"!=typeof WebAssembly&&J("no native wasm support detected");var E=!1;function k(e,t){e||J("Assertion failed: "+t)}var x,F,P,A,L,D,R,O="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function C(e,t,r){for(var n=t+r,i=t;e[i]&&!(i>=n);)++i;if(i-t>16&&e.subarray&&O)return O.decode(e.subarray(t,i));for(var o="";t<i;){var a=e[t++];if(128&a){var s=63&e[t++];if(192!=(224&a)){var u=63&e[t++];if((a=224==(240&a)?(15&a)<<12|s<<6|u:(7&a)<<18|s<<12|u<<6|63&e[t++])<65536)o+=String.fromCharCode(a);else{var c=a-65536;o+=String.fromCharCode(55296|c>>10,56320|1023&c)}}else o+=String.fromCharCode((31&a)<<6|s)}else o+=String.fromCharCode(a)}return o}function T(e,t){return e?C(P,e,t):""}function z(e,t,r,n){if(!(n>0))return 0;for(var i=r,o=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>=o)break;t[r++]=s}else if(s<=2047){if(r+1>=o)break;t[r++]=192|s>>6,t[r++]=128|63&s}else if(s<=65535){if(r+2>=o)break;t[r++]=224|s>>12,t[r++]=128|s>>6&63,t[r++]=128|63&s}else{if(r+3>=o)break;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-i}function B(e,t,r){return z(e,P,t,r)}function j(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}function I(e){x=e,n.HEAP8=F=new Int8Array(e),n.HEAP16=A=new Int16Array(e),n.HEAP32=D=new Int32Array(e),n.HEAPU8=P=new Uint8Array(e),n.HEAPU16=L=new Uint16Array(e),n.HEAPU32=R=new Uint32Array(e),n.HEAPF32=new Float32Array(e),n.HEAPF64=new Float64Array(e)}"undefined"!=typeof TextDecoder&&new TextDecoder("utf-16le");var N=n.INITIAL_MEMORY||16777216;(w=n.wasmMemory?n.wasmMemory:new WebAssembly.Memory({initial:N/65536,maximum:32768}))&&(x=w.buffer),N=x.byteLength,I(x);var X=[],H=[],q=[],W=[],U=Math.abs,K=Math.ceil,Y=Math.floor,V=Math.min,G=0,Q=null;function Z(e){G++,n.monitorRunDependencies&&n.monitorRunDependencies(G)}function $(e){if(G--,n.monitorRunDependencies&&n.monitorRunDependencies(G),0==G&&Q){var t=Q;Q=null,t()}}function J(e){n.onAbort&&n.onAbort(e),p(e+=""),E=!0,e="abort("+e+"). Build with -s ASSERTIONS=1 for more info.";var t=new WebAssembly.RuntimeError(e);throw r(t),t}function ee(e){return t=e,r="data:application/octet-stream;base64,",String.prototype.startsWith?t.startsWith(r):0===t.indexOf(r);var t,r}n.preloadedImages={},n.preloadedAudios={};var te,re,ne,ie,oe="onirix_native_sdk.wasm";function ae(){try{if(y)return new Uint8Array(y);if(f)return f(oe);throw"both async and sync fetching of the wasm failed"}catch(e){J(e)}}ee(oe)||(te=oe,oe=n.locateFile?n.locateFile(te,h):h+te),ie=function(){return performance.now()};var se={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){se.mainLoop.scheduler=null,se.mainLoop.currentlyRunningMainloop++},resume:function(){se.mainLoop.currentlyRunningMainloop++;var e=se.mainLoop.timingMode,t=se.mainLoop.timingValue,r=se.mainLoop.func;se.mainLoop.func=null,function(e,t,r,n,i){k(!se.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."),se.mainLoop.func=e,se.mainLoop.arg=n;var o=se.mainLoop.currentlyRunningMainloop;se.mainLoop.runner=function(){if(!E)if(se.mainLoop.queue.length>0){var t=Date.now(),r=se.mainLoop.queue.shift();if(r.func(r.arg),se.mainLoop.remainingBlockers){var n=se.mainLoop.remainingBlockers,i=n%1==0?n-1:Math.floor(n);se.mainLoop.remainingBlockers=r.counted?i:(8*n+(i+=.5))/9}if(console.log('main loop blocker "'+r.name+'" took '+(Date.now()-t)+" ms"),se.mainLoop.updateStatus(),o<se.mainLoop.currentlyRunningMainloop)return;setTimeout(se.mainLoop.runner,0)}else o<se.mainLoop.currentlyRunningMainloop||(se.mainLoop.currentFrameNumber=se.mainLoop.currentFrameNumber+1|0,1==se.mainLoop.timingMode&&se.mainLoop.timingValue>1&&se.mainLoop.currentFrameNumber%se.mainLoop.timingValue!=0?se.mainLoop.scheduler():(0==se.mainLoop.timingMode&&(se.mainLoop.tickStartTime=ie()),se.mainLoop.runIter(e),o<se.mainLoop.currentlyRunningMainloop||("object"==typeof SDL&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),se.mainLoop.scheduler())))}}(r,0,0,se.mainLoop.arg),function(e,t){if(se.mainLoop.timingMode=e,se.mainLoop.timingValue=t,!se.mainLoop.func)return 1;if(0==e)se.mainLoop.scheduler=function(){var e=0|Math.max(0,se.mainLoop.tickStartTime+t-ie());setTimeout(se.mainLoop.runner,e)},se.mainLoop.method="timeout";else if(1==e)se.mainLoop.scheduler=function(){se.requestAnimationFrame(se.mainLoop.runner)},se.mainLoop.method="rAF";else if(2==e){if("undefined"==typeof setImmediate){var r=[],i="setimmediate";addEventListener("message",function(e){e.data!==i&&e.data.target!==i||(e.stopPropagation(),r.shift()())},!0),setImmediate=function(e){r.push(e),s?(void 0===n.setImmediates&&(n.setImmediates=[]),n.setImmediates.push(e),postMessage({target:i})):postMessage(i,"*")}}se.mainLoop.scheduler=function(){setImmediate(se.mainLoop.runner)},se.mainLoop.method="immediate"}}(e,t),se.mainLoop.scheduler()},updateStatus:function(){if(n.setStatus){var e=n.statusMessage||"Please wait...",t=se.mainLoop.remainingBlockers,r=se.mainLoop.expectedBlockers;n.setStatus(t?t<r?e+" ("+(r-t)+"/"+r+")":e:"")}},runIter:function(e){if(!E){if(n.preMainLoop&&!1===n.preMainLoop())return;try{e()}catch(e){if(e instanceof Ze)return;if("unwind"==e)return;throw e&&"object"==typeof e&&e.stack&&p("exception thrown: "+[e,e.stack]),e}n.postMainLoop&&n.postMainLoop()}}},isFullscreen:!1,pointerLock:!1,moduleContextCreatedCallbacks:[],workers:[],init:function(){if(n.preloadPlugins||(n.preloadPlugins=[]),!se.initted){se.initted=!0;try{new Blob,se.hasBlobConstructor=!0}catch(e){se.hasBlobConstructor=!1,console.log("warning: no blob constructor, cannot create blobs with mimetypes")}se.BlobBuilder="undefined"!=typeof MozBlobBuilder?MozBlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:se.hasBlobConstructor?null:console.log("warning: no BlobBuilder"),se.URLObject="undefined"!=typeof window?window.URL?window.URL:window.webkitURL:void 0,n.noImageDecoding||void 0!==se.URLObject||(console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),n.noImageDecoding=!0);var e={canHandle:function(e){return!n.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(e)},handle:function(e,t,r,i){var o=null;if(se.hasBlobConstructor)try{(o=new Blob([e],{type:se.getMimetype(t)})).size!==e.length&&(o=new Blob([new Uint8Array(e).buffer],{type:se.getMimetype(t)}))}catch(e){v("Blob constructor present but fails: "+e+"; falling back to blob builder")}if(!o){var a=new se.BlobBuilder;a.append(new Uint8Array(e).buffer),o=a.getBlob()}var s=se.URLObject.createObjectURL(o),u=new Image;u.onload=function(){k(u.complete,"Image "+t+" could not be decoded");var i=document.createElement("canvas");i.width=u.width,i.height=u.height,i.getContext("2d").drawImage(u,0,0),n.preloadedImages[t]=i,se.URLObject.revokeObjectURL(s),r&&r(e)},u.onerror=function(e){console.log("Image "+s+" could not be decoded"),i&&i()},u.src=s}};n.preloadPlugins.push(e);var t={canHandle:function(e){return!n.noAudioDecoding&&e.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},handle:function(e,t,r,i){var o=!1;function a(i){o||(o=!0,n.preloadedAudios[t]=i,r&&r(e))}function s(){o||(o=!0,n.preloadedAudios[t]=new Audio,i&&i())}if(!se.hasBlobConstructor)return s();try{var u=new Blob([e],{type:se.getMimetype(t)})}catch(e){return s()}var c=se.URLObject.createObjectURL(u),l=new Audio;l.addEventListener("canplaythrough",function(){a(l)},!1),l.onerror=function(r){o||(console.log("warning: browser could not fully decode audio "+t+", trying slower base64 approach"),l.src="data:audio/x-"+t.substr(-3)+";base64,"+function(e){for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r="",n=0,i=0,o=0;o<e.length;o++)for(n=n<<8|e[o],i+=8;i>=6;){var a=n>>i-6&63;i-=6,r+=t[a]}return 2==i?(r+=t[(3&n)<<4],r+="=="):4==i&&(r+=t[(15&n)<<2],r+="="),r}(e),a(l))},l.src=c,se.safeSetTimeout(function(){a(l)},1e4)}};n.preloadPlugins.push(t);var r=n.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",i,!1),document.addEventListener("mozpointerlockchange",i,!1),document.addEventListener("webkitpointerlockchange",i,!1),document.addEventListener("mspointerlockchange",i,!1),n.elementPointerLock&&r.addEventListener("click",function(e){!se.pointerLock&&n.canvas.requestPointerLock&&(n.canvas.requestPointerLock(),e.preventDefault())},!1))}function i(){se.pointerLock=document.pointerLockElement===n.canvas||document.mozPointerLockElement===n.canvas||document.webkitPointerLockElement===n.canvas||document.msPointerLockElement===n.canvas}},createContext:function(e,t,r,i){if(t&&n.ctx&&e==n.canvas)return n.ctx;var o,a;if(t){var s={antialias:!1,alpha:!1,majorVersion:1};if(i)for(var u in i)s[u]=i[u];"undefined"!=typeof GL&&(a=GL.createContext(e,s))&&(o=GL.getContext(a).GLctx)}else o=e.getContext("2d");return o?(r&&(t||k("undefined"==typeof GLctx,"cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),n.ctx=o,t&&GL.makeContextCurrent(a),n.useWebGL=t,se.moduleContextCreatedCallbacks.forEach(function(e){e()}),se.init()),o):null},destroyContext:function(e,t,r){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(e,t){se.lockPointer=e,se.resizeCanvas=t,void 0===se.lockPointer&&(se.lockPointer=!0),void 0===se.resizeCanvas&&(se.resizeCanvas=!1);var r=n.canvas;function i(){se.isFullscreen=!1;var e=r.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===e?(r.exitFullscreen=se.exitFullscreen,se.lockPointer&&r.requestPointerLock(),se.isFullscreen=!0,se.resizeCanvas?se.setFullscreenCanvasSize():se.updateCanvasDimensions(r)):(e.parentNode.insertBefore(r,e),e.parentNode.removeChild(e),se.resizeCanvas?se.setWindowedCanvasSize():se.updateCanvasDimensions(r)),n.onFullScreen&&n.onFullScreen(se.isFullscreen),n.onFullscreen&&n.onFullscreen(se.isFullscreen)}se.fullscreenHandlersInstalled||(se.fullscreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",i,!1),document.addEventListener("mozfullscreenchange",i,!1),document.addEventListener("webkitfullscreenchange",i,!1),document.addEventListener("MSFullscreenChange",i,!1));var o=document.createElement("div");r.parentNode.insertBefore(o,r),o.appendChild(r),o.requestFullscreen=o.requestFullscreen||o.mozRequestFullScreen||o.msRequestFullscreen||(o.webkitRequestFullscreen?function(){o.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(o.webkitRequestFullScreen?function(){o.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),o.requestFullscreen()},exitFullscreen:function(){return!!se.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===se.nextRAF)se.nextRAF=t+1e3/60;else for(;t+2>=se.nextRAF;)se.nextRAF+=1e3/60;var r=Math.max(se.nextRAF-t,0);setTimeout(e,r)},requestAnimationFrame:function(e){"function"!=typeof requestAnimationFrame?(0,se.fakeRequestAnimationFrame)(e):requestAnimationFrame(e)},safeCallback:function(e){return function(){if(!E)return e.apply(null,arguments)}},allowAsyncCallbacks:!0,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){se.allowAsyncCallbacks=!1},resumeAsyncCallbacks:function(){if(se.allowAsyncCallbacks=!0,se.queuedAsyncCallbacks.length>0){var e=se.queuedAsyncCallbacks;se.queuedAsyncCallbacks=[],e.forEach(function(e){e()})}},safeRequestAnimationFrame:function(e){return se.requestAnimationFrame(function(){E||(se.allowAsyncCallbacks?e():se.queuedAsyncCallbacks.push(e))})},safeSetTimeout:function(e,t){return setTimeout(function(){E||(se.allowAsyncCallbacks?e():se.queuedAsyncCallbacks.push(e))},t)},safeSetInterval:function(e,t){return setInterval(function(){E||se.allowAsyncCallbacks&&e()},t)},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(se.pointerLock)"mousemove"!=e.type&&"mozMovementX"in e?se.mouseMovementX=se.mouseMovementY=0:(se.mouseMovementX=se.getMovementX(e),se.mouseMovementY=se.getMovementY(e)),"undefined"!=typeof SDL?(se.mouseX=SDL.mouseX+se.mouseMovementX,se.mouseY=SDL.mouseY+se.mouseMovementY):(se.mouseX+=se.mouseMovementX,se.mouseY+=se.mouseMovementY);else{var t=n.canvas.getBoundingClientRect(),r=n.canvas.width,i=n.canvas.height,o=void 0!==window.scrollX?window.scrollX:window.pageXOffset,a=void 0!==window.scrollY?window.scrollY:window.pageYOffset;if("touchstart"===e.type||"touchend"===e.type||"touchmove"===e.type){var s=e.touch;if(void 0===s)return;var u=s.pageX-(o+t.left),c=s.pageY-(a+t.top),l={x:u*=r/t.width,y:c*=i/t.height};if("touchstart"===e.type)se.lastTouches[s.identifier]=l,se.touches[s.identifier]=l;else if("touchend"===e.type||"touchmove"===e.type){var d=se.touches[s.identifier];d||(d=l),se.lastTouches[s.identifier]=d,se.touches[s.identifier]=l}return}var f=e.pageX-(o+t.left),h=e.pageY-(a+t.top);h*=i/t.height,se.mouseMovementX=(f*=r/t.width)-se.mouseX,se.mouseMovementY=h-se.mouseY,se.mouseX=f,se.mouseY=h}},asyncLoad:function(e,t,r,n){var i=n?"":"al "+e;l(e,function(r){k(r,'Loading data file "'+e+'" failed (no arrayBuffer).'),t(new Uint8Array(r)),i&&$()},function(t){if(!r)throw'Loading data file "'+e+'" failed.';r()}),i&&Z()},resizeListeners:[],updateResizeListeners:function(){var e=n.canvas;se.resizeListeners.forEach(function(t){t(e.width,e.height)})},setCanvasSize:function(e,t,r){se.updateCanvasDimensions(n.canvas,e,t),r||se.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if("undefined"!=typeof SDL){var e=R[SDL.screen>>2];D[SDL.screen>>2]=e|=8388608}se.updateCanvasDimensions(n.canvas),se.updateResizeListeners()},setWindowedCanvasSize:function(){if("undefined"!=typeof SDL){var e=R[SDL.screen>>2];D[SDL.screen>>2]=e&=-8388609}se.updateCanvasDimensions(n.canvas),se.updateResizeListeners()},updateCanvasDimensions:function(e,t,r){t&&r?(e.widthNative=t,e.heightNative=r):(t=e.widthNative,r=e.heightNative);var i=t,o=r;if(n.forcedAspectRatio&&n.forcedAspectRatio>0&&(i/o<n.forcedAspectRatio?i=Math.round(o*n.forcedAspectRatio):o=Math.round(i/n.forcedAspectRatio)),(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===e.parentNode&&"undefined"!=typeof screen){var a=Math.min(screen.width/i,screen.height/o);i=Math.round(i*a),o=Math.round(o*a)}se.resizeCanvas?(e.width!=i&&(e.width=i),e.height!=o&&(e.height=o),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&&(i!=t||o!=r?(e.style.setProperty("width",i+"px","important"),e.style.setProperty("height",o+"px","important")):(e.style.removeProperty("width"),e.style.removeProperty("height"))))},wgetRequests:{},nextWgetRequestHandle:0,getNextWgetRequestHandle:function(){var e=se.nextWgetRequestHandle;return se.nextWgetRequestHandle++,e}};function ue(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var r=t.func;"number"==typeof r?void 0===t.arg?_.get(r)():_.get(r)(t.arg):r(void 0===t.arg?null:t.arg)}else t(n)}}function ce(e){this.excPtr=e,this.ptr=e-16,this.set_type=function(e){D[this.ptr+8>>2]=e},this.get_type=function(){return D[this.ptr+8>>2]},this.set_destructor=function(e){D[this.ptr+0>>2]=e},this.get_destructor=function(){return D[this.ptr+0>>2]},this.set_refcount=function(e){D[this.ptr+4>>2]=e},this.set_caught=function(e){F[this.ptr+12>>0]=e=e?1:0},this.get_caught=function(){return 0!=F[this.ptr+12>>0]},this.set_rethrown=function(e){F[this.ptr+13>>0]=e=e?1:0},this.get_rethrown=function(){return 0!=F[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(){D[this.ptr+4>>2]=D[this.ptr+4>>2]+1},this.release_ref=function(){var e=D[this.ptr+4>>2];return D[this.ptr+4>>2]=e-1,1===e}}function le(e){this.free=function(){Be(this.ptr),this.ptr=0},this.set_base_ptr=function(e){D[this.ptr>>2]=e},this.get_base_ptr=function(){return D[this.ptr>>2]},this.set_adjusted_ptr=function(e){D[this.ptr+4>>2]=e},this.get_adjusted_ptr=function(){return D[this.ptr+4>>2]},this.get_exception_ptr=function(){if(Ue(this.get_exception_info().get_type()))return D[this.get_base_ptr()>>2];var e=this.get_adjusted_ptr();return 0!==e?e:this.get_base_ptr()},this.get_exception_info=function(){return new ce(this.get_base_ptr())},void 0===e?(this.ptr=ze(8),this.set_adjusted_ptr(0)):this.ptr=e}var de=[],fe=0;function he(e){return Be(new ce(e).ptr)}function me(e){return D[je()>>2]=e,e}var pe={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 i=e[n];"."===i?e.splice(n,1):".."===i?(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=pe.normalizeArray(e.split("/").filter(function(e){return!!e}),!t).join("/"))||t||(e="."),e&&r&&(e+="/"),(t?"/":"")+e},dirname:function(e){var t=pe.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=pe.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?e:e.substr(t+1)},extname:function(e){return pe.splitPath(e)[3]},join:function(){var e=Array.prototype.slice.call(arguments,0);return pe.normalize(e.join("/"))},join2:function(e,t){return pe.normalize(e+"/"+t)}},ve={resolve:function(){for(var e="",t=!1,r=arguments.length-1;r>=-1&&!t;r--){var n=r>=0?arguments[r]:we.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=pe.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=ve.resolve(e).substr(1),t=ve.resolve(t).substr(1);for(var n=r(e.split("/")),i=r(t.split("/")),o=Math.min(n.length,i.length),a=o,s=0;s<o;s++)if(n[s]!==i[s]){a=s;break}var u=[];for(s=a;s<n.length;s++)u.push("..");return(u=u.concat(i.slice(a))).join("/")}},ge={ttys:[],init:function(){},shutdown:function(){},register:function(e,t){ge.ttys[e]={input:[],output:[],ops:t},we.registerDevice(e,ge.stream_ops)},stream_ops:{open:function(e){var t=ge.ttys[e.node.rdev];if(!t)throw new we.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,i){if(!e.tty||!e.tty.ops.get_char)throw new we.ErrnoError(60);for(var o=0,a=0;a<n;a++){var s;try{s=e.tty.ops.get_char(e.tty)}catch(e){throw new we.ErrnoError(29)}if(void 0===s&&0===o)throw new we.ErrnoError(6);if(null==s)break;o++,t[r+a]=s}return o&&(e.node.timestamp=Date.now()),o},write:function(e,t,r,n,i){if(!e.tty||!e.tty.ops.put_char)throw new we.ErrnoError(60);try{for(var o=0;o<n;o++)e.tty.ops.put_char(e.tty,t[r+o])}catch(e){throw new we.ErrnoError(29)}return n&&(e.node.timestamp=Date.now()),o}},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=Oe(t,!0)}return e.input.shift()},put_char:function(e,t){null===t||10===t?(m(C(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(m(C(e.output,0)),e.output=[])}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(p(C(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(p(C(e.output,0)),e.output=[])}}},ye={ops_table:null,mount:function(e){return ye.createNode(null,"/",16895,0)},createNode:function(e,t,r,n){if(we.isBlkdev(r)||we.isFIFO(r))throw new we.ErrnoError(63);ye.ops_table||(ye.ops_table={dir:{node:{getattr:ye.node_ops.getattr,setattr:ye.node_ops.setattr,lookup:ye.node_ops.lookup,mknod:ye.node_ops.mknod,rename:ye.node_ops.rename,unlink:ye.node_ops.unlink,rmdir:ye.node_ops.rmdir,readdir:ye.node_ops.readdir,symlink:ye.node_ops.symlink},stream:{llseek:ye.stream_ops.llseek}},file:{node:{getattr:ye.node_ops.getattr,setattr:ye.node_ops.setattr},stream:{llseek:ye.stream_ops.llseek,read:ye.stream_ops.read,write:ye.stream_ops.write,allocate:ye.stream_ops.allocate,mmap:ye.stream_ops.mmap,msync:ye.stream_ops.msync}},link:{node:{getattr:ye.node_ops.getattr,setattr:ye.node_ops.setattr,readlink:ye.node_ops.readlink},stream:{}},chrdev:{node:{getattr:ye.node_ops.getattr,setattr:ye.node_ops.setattr},stream:we.chrdev_stream_ops}});var i=we.createNode(e,t,r,n);return we.isDir(i.mode)?(i.node_ops=ye.ops_table.dir.node,i.stream_ops=ye.ops_table.dir.stream,i.contents={}):we.isFile(i.mode)?(i.node_ops=ye.ops_table.file.node,i.stream_ops=ye.ops_table.file.stream,i.usedBytes=0,i.contents=null):we.isLink(i.mode)?(i.node_ops=ye.ops_table.link.node,i.stream_ops=ye.ops_table.link.stream):we.isChrdev(i.mode)&&(i.node_ops=ye.ops_table.chrdev.node,i.stream_ops=ye.ops_table.chrdev.stream),i.timestamp=Date.now(),e&&(e.contents[t]=i),i},getFileDataAsRegularArray:function(e){if(e.contents&&e.contents.subarray){for(var t=[],r=0;r<e.usedBytes;++r)t.push(e.contents[r]);return t}return e.contents},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)return e.contents=null,void(e.usedBytes=0);if(!e.contents||e.contents.subarray){var r=e.contents;return e.contents=new Uint8Array(t),r&&e.contents.set(r.subarray(0,Math.min(t,e.usedBytes))),void(e.usedBytes=t)}if(e.contents||(e.contents=[]),e.contents.length>t)e.contents.length=t;else for(;e.contents.length<t;)e.contents.push(0);e.usedBytes=t}},node_ops:{getattr:function(e){var t={};return t.dev=we.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.size=we.isDir(e.mode)?4096:we.isFile(e.mode)?e.usedBytes:we.isLink(e.mode)?e.link.length: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&&ye.resizeFileStorage(e,t.size)},lookup:function(e,t){throw we.genericErrors[44]},mknod:function(e,t,r,n){return ye.createNode(e,t,r,n)},rename:function(e,t,r){if(we.isDir(e.mode)){var n;try{n=we.lookupNode(t,r)}catch(e){}if(n)for(var i in n.contents)throw new we.ErrnoError(55)}delete e.parent.contents[e.name],e.name=r,t.contents[r]=e,e.parent=t},unlink:function(e,t){delete e.contents[t]},rmdir:function(e,t){var r=we.lookupNode(e,t);for(var n in r.contents)throw new we.ErrnoError(55);delete e.contents[t]},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=ye.createNode(e,t,41471,0);return n.link=r,n},readlink:function(e){if(!we.isLink(e.mode))throw new we.ErrnoError(28);return e.link}},stream_ops:{read:function(e,t,r,n,i){var o=e.node.contents;if(i>=e.node.usedBytes)return 0;var a=Math.min(e.node.usedBytes-i,n);if(a>8&&o.subarray)t.set(o.subarray(i,i+a),r);else for(var s=0;s<a;s++)t[r+s]=o[i+s];return a},write:function(e,t,r,n,i,o){if(t.buffer===F.buffer&&(o=!1),!n)return 0;var a=e.node;if(a.timestamp=Date.now(),t.subarray&&(!a.contents||a.contents.subarray)){if(o)return a.contents=t.subarray(r,r+n),a.usedBytes=n,n;if(0===a.usedBytes&&0===i)return a.contents=t.slice(r,r+n),a.usedBytes=n,n;if(i+n<=a.usedBytes)return a.contents.set(t.subarray(r,r+n),i),n}if(ye.expandFileStorage(a,i+n),a.contents.subarray&&t.subarray)a.contents.set(t.subarray(r,r+n),i);else for(var s=0;s<n;s++)a.contents[i+s]=t[r+s];return a.usedBytes=Math.max(a.usedBytes,i+n),n},llseek:function(e,t,r){var n=t;if(1===r?n+=e.position:2===r&&we.isFile(e.node.mode)&&(n+=e.node.usedBytes),n<0)throw new we.ErrnoError(28);return n},allocate:function(e,t,r){ye.expandFileStorage(e.node,t+r),e.node.usedBytes=Math.max(e.node.usedBytes,t+r)},mmap:function(e,t,r,n,i,o){if(k(0===t),!we.isFile(e.node.mode))throw new we.ErrnoError(43);var a,s,u=e.node.contents;if(2&o||u.buffer!==x){if((n>0||n+r<u.length)&&(u=u.subarray?u.subarray(n,n+r):Array.prototype.slice.call(u,n,n+r)),s=!0,!(a=function(e){for(var t=function(e,t){return t||(t=16),Math.ceil(e/t)*t}(e,16384),r=ze(t);e<t;)F[r+e++]=0;return r}(r)))throw new we.ErrnoError(48);F.set(u,a)}else s=!1,a=u.byteOffset;return{ptr:a,allocated:s}},msync:function(e,t,r,n,i){if(!we.isFile(e.node.mode))throw new we.ErrnoError(43);return 2&i||ye.stream_ops.write(e,t,0,n,r,!1),0}}},we={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function(e){if(!(e instanceof we.ErrnoError))throw e+" : "+(t=function(){var e=new Error;if(!e.stack){try{throw new Error}catch(t){e=t}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}(),n.extraStackTrace&&(t+="\n"+n.extraStackTrace()),t.replace(/\b_Z[\w\d_]+/g,function(e){return e==e?e:e+" ["+e+"]"}));var t;return me(e.errno)},lookupPath:function(e,t){if(t=t||{},!(e=ve.resolve(we.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 we.ErrnoError(32);for(var i=pe.normalizeArray(e.split("/").filter(function(e){return!!e}),!1),o=we.root,a="/",s=0;s<i.length;s++){var u=s===i.length-1;if(u&&t.parent)break;if(o=we.lookupNode(o,i[s]),a=pe.join2(a,i[s]),we.isMountpoint(o)&&(!u||u&&t.follow_mount)&&(o=o.mounted.root),!u||t.follow)for(var c=0;we.isLink(o.mode);){var l=we.readlink(a);if(a=ve.resolve(pe.dirname(a),l),o=we.lookupPath(a,{recurse_count:t.recurse_count}).node,c++>40)throw new we.ErrnoError(32)}}return{path:a,node:o}},getPath:function(e){for(var t;;){if(we.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)%we.nameTable.length},hashAddNode:function(e){var t=we.hashName(e.parent.id,e.name);e.name_next=we.nameTable[t],we.nameTable[t]=e},hashRemoveNode:function(e){var t=we.hashName(e.parent.id,e.name);if(we.nameTable[t]===e)we.nameTable[t]=e.name_next;else for(var r=we.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=we.mayLookup(e);if(r)throw new we.ErrnoError(r,e);for(var n=we.hashName(e.id,t),i=we.nameTable[n];i;i=i.name_next)if(i.parent.id===e.id&&i.name===t)return i;return we.lookup(e,t)},createNode:function(e,t,r,n){var i=new we.FSNode(e,t,r,n);return we.hashAddNode(i),i},destroyNode:function(e){we.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,rs:1052672,"r+":2,w:577,wx:705,xw:705,"w+":578,"wx+":706,"xw+":706,a:1089,ax:1217,xa:1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(e){var t=we.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 we.ignorePermissions||(-1===t.indexOf("r")||292&e.mode)&&(-1===t.indexOf("w")||146&e.mode)&&(-1===t.indexOf("x")||73&e.mode)?0:2},mayLookup:function(e){return we.nodePermissions(e,"x")||(e.node_ops.lookup?0:2)},mayCreate:function(e,t){try{return we.lookupNode(e,t),20}catch(e){}return we.nodePermissions(e,"wx")},mayDelete:function(e,t,r){var n;try{n=we.lookupNode(e,t)}catch(e){return e.errno}var i=we.nodePermissions(e,"wx");if(i)return i;if(r){if(!we.isDir(n.mode))return 54;if(we.isRoot(n)||we.getPath(n)===we.cwd())return 10}else if(we.isDir(n.mode))return 31;return 0},mayOpen:function(e,t){return e?we.isLink(e.mode)?32:we.isDir(e.mode)&&("r"!==we.flagsToPermissionString(t)||512&t)?31:we.nodePermissions(e,we.flagsToPermissionString(t)):44},MAX_OPEN_FDS:4096,nextfd:function(e,t){t=t||we.MAX_OPEN_FDS;for(var r=e=e||0;r<=t;r++)if(!we.streams[r])return r;throw new we.ErrnoError(33)},getStream:function(e){return we.streams[e]},createStream:function(e,t,r){we.FSStream||(we.FSStream=function(){},we.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 we.FSStream;for(var i in e)n[i]=e[i];e=n;var o=we.nextfd(t,r);return e.fd=o,we.streams[o]=e,e},closeStream:function(e){we.streams[e]=null},chrdev_stream_ops:{open:function(e){var t=we.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:function(){throw new we.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){we.devices[e]={stream_ops:t}},getDevice:function(e){return we.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),we.syncFSRequests++,we.syncFSRequests>1&&p("warning: "+we.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var r=we.getMounts(we.root.mount),n=0;function i(e){return we.syncFSRequests--,t(e)}function o(e){if(e)return o.errored?void 0:(o.errored=!0,i(e));++n>=r.length&&i(null)}r.forEach(function(t){if(!t.type.syncfs)return o(null);t.type.syncfs(t,e,o)})},mount:function(e,t,r){var n,i="/"===r,o=!r;if(i&&we.root)throw new we.ErrnoError(10);if(!i&&!o){var a=we.lookupPath(r,{follow_mount:!1});if(r=a.path,we.isMountpoint(n=a.node))throw new we.ErrnoError(10);if(!we.isDir(n.mode))throw new we.ErrnoError(54)}var s={type:e,opts:t,mountpoint:r,mounts:[]},u=e.mount(s);return u.mount=s,s.root=u,i?we.root=u:n&&(n.mounted=s,n.mount&&n.mount.mounts.push(s)),u},unmount:function(e){var t=we.lookupPath(e,{follow_mount:!1});if(!we.isMountpoint(t.node))throw new we.ErrnoError(28);var r=t.node,n=r.mounted,i=we.getMounts(n);Object.keys(we.nameTable).forEach(function(e){for(var t=we.nameTable[e];t;){var r=t.name_next;-1!==i.indexOf(t.mount)&&we.destroyNode(t),t=r}}),r.mounted=null;var o=r.mount.mounts.indexOf(n);r.mount.mounts.splice(o,1)},lookup:function(e,t){return e.node_ops.lookup(e,t)},mknod:function(e,t,r){var n=we.lookupPath(e,{parent:!0}).node,i=pe.basename(e);if(!i||"."===i||".."===i)throw new we.ErrnoError(28);var o=we.mayCreate(n,i);if(o)throw new we.ErrnoError(o);if(!n.node_ops.mknod)throw new we.ErrnoError(63);return n.node_ops.mknod(n,i,t,r)},create:function(e,t){return t=void 0!==t?t:438,t&=4095,we.mknod(e,t|=32768,0)},mkdir:function(e,t){return t=void 0!==t?t:511,t&=1023,we.mknod(e,t|=16384,0)},mkdirTree:function(e,t){for(var r=e.split("/"),n="",i=0;i<r.length;++i)if(r[i]){n+="/"+r[i];try{we.mkdir(n,t)}catch(e){if(20!=e.errno)throw e}}},mkdev:function(e,t,r){return void 0===r&&(r=t,t=438),we.mknod(e,t|=8192,r)},symlink:function(e,t){if(!ve.resolve(e))throw new we.ErrnoError(44);var r=we.lookupPath(t,{parent:!0}).node;if(!r)throw new we.ErrnoError(44);var n=pe.basename(t),i=we.mayCreate(r,n);if(i)throw new we.ErrnoError(i);if(!r.node_ops.symlink)throw new we.ErrnoError(63);return r.node_ops.symlink(r,n,e)},rename:function(e,t){var r,n,i=pe.dirname(e),o=pe.dirname(t),a=pe.basename(e),s=pe.basename(t);if(r=we.lookupPath(e,{parent:!0}).node,n=we.lookupPath(t,{parent:!0}).node,!r||!n)throw new we.ErrnoError(44);if(r.mount!==n.mount)throw new we.ErrnoError(75);var u,c=we.lookupNode(r,a),l=ve.relative(e,o);if("."!==l.charAt(0))throw new we.ErrnoError(28);if("."!==(l=ve.relative(t,i)).charAt(0))throw new we.ErrnoError(55);try{u=we.lookupNode(n,s)}catch(e){}if(c!==u){var d=we.isDir(c.mode),f=we.mayDelete(r,a,d);if(f)throw new we.ErrnoError(f);if(f=u?we.mayDelete(n,s,d):we.mayCreate(n,s))throw new we.ErrnoError(f);if(!r.node_ops.rename)throw new we.ErrnoError(63);if(we.isMountpoint(c)||u&&we.isMountpoint(u))throw new we.ErrnoError(10);if(n!==r&&(f=we.nodePermissions(r,"w")))throw new we.ErrnoError(f);we.hashRemoveNode(c);try{r.node_ops.rename(c,n,s)}catch(e){throw e}finally{we.hashAddNode(c)}}},rmdir:function(e){var t=we.lookupPath(e,{parent:!0}).node,r=pe.basename(e),n=we.lookupNode(t,r),i=we.mayDelete(t,r,!0);if(i)throw new we.ErrnoError(i);if(!t.node_ops.rmdir)throw new we.ErrnoError(63);if(we.isMountpoint(n))throw new we.ErrnoError(10);t.node_ops.rmdir(t,r),we.destroyNode(n)},readdir:function(e){var t=we.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new we.ErrnoError(54);return t.node_ops.readdir(t)},unlink:function(e){var t=we.lookupPath(e,{parent:!0}).node,r=pe.basename(e),n=we.lookupNode(t,r),i=we.mayDelete(t,r,!1);if(i)throw new we.ErrnoError(i);if(!t.node_ops.unlink)throw new we.ErrnoError(63);if(we.isMountpoint(n))throw new we.ErrnoError(10);t.node_ops.unlink(t,r),we.destroyNode(n)},readlink:function(e){var t=we.lookupPath(e).node;if(!t)throw new we.ErrnoError(44);if(!t.node_ops.readlink)throw new we.ErrnoError(28);return ve.resolve(we.getPath(t.parent),t.node_ops.readlink(t))},stat:function(e,t){var r=we.lookupPath(e,{follow:!t}).node;if(!r)throw new we.ErrnoError(44);if(!r.node_ops.getattr)throw new we.ErrnoError(63);return r.node_ops.getattr(r)},lstat:function(e){return we.stat(e,!0)},chmod:function(e,t,r){var n;if(!(n="string"==typeof e?we.lookupPath(e,{follow:!r}).node:e).node_ops.setattr)throw new we.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&t|-4096&n.mode,timestamp:Date.now()})},lchmod:function(e,t){we.chmod(e,t,!0)},fchmod:function(e,t){var r=we.getStream(e);if(!r)throw new we.ErrnoError(8);we.chmod(r.node,t)},chown:function(e,t,r,n){var i;if(!(i="string"==typeof e?we.lookupPath(e,{follow:!n}).node:e).node_ops.setattr)throw new we.ErrnoError(63);i.node_ops.setattr(i,{timestamp:Date.now()})},lchown:function(e,t,r){we.chown(e,t,r,!0)},fchown:function(e,t,r){var n=we.getStream(e);if(!n)throw new we.ErrnoError(8);we.chown(n.node,t,r)},truncate:function(e,t){if(t<0)throw new we.ErrnoError(28);var r;if(!(r="string"==typeof e?we.lookupPath(e,{follow:!0}).node:e).node_ops.setattr)throw new we.ErrnoError(63);if(we.isDir(r.mode))throw new we.ErrnoError(31);if(!we.isFile(r.mode))throw new we.ErrnoError(28);var n=we.nodePermissions(r,"w");if(n)throw new we.ErrnoError(n);r.node_ops.setattr(r,{size:t,timestamp:Date.now()})},ftruncate:function(e,t){var r=we.getStream(e);if(!r)throw new we.ErrnoError(8);if(0==(2097155&r.flags))throw new we.ErrnoError(28);we.truncate(r.node,t)},utime:function(e,t,r){var n=we.lookupPath(e,{follow:!0}).node;n.node_ops.setattr(n,{timestamp:Math.max(t,r)})},open:function(e,t,r,i,o){if(""===e)throw new we.ErrnoError(44);var a;if(r=void 0===r?438:r,r=64&(t="string"==typeof t?we.modeStringToFlags(t):t)?4095&r|32768:0,"object"==typeof e)a=e;else{e=pe.normalize(e);try{a=we.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var s=!1;if(64&t)if(a){if(128&t)throw new we.ErrnoError(20)}else a=we.mknod(e,r,0),s=!0;if(!a)throw new we.ErrnoError(44);if(we.isChrdev(a.mode)&&(t&=-513),65536&t&&!we.isDir(a.mode))throw new we.ErrnoError(54);if(!s){var u=we.mayOpen(a,t);if(u)throw new we.ErrnoError(u)}512&t&&we.truncate(a,0),t&=-131713;var c=we.createStream({node:a,path:we.getPath(a),flags:t,seekable:!0,position:0,stream_ops:a.stream_ops,ungotten:[],error:!1},i,o);return c.stream_ops.open&&c.stream_ops.open(c),!n.logReadFiles||1&t||(we.readFiles||(we.readFiles={}),e in we.readFiles||(we.readFiles[e]=1,p("FS.trackingDelegate error on read file: "+e))),c},close:function(e){if(we.isClosed(e))throw new we.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{we.closeStream(e.fd)}e.fd=null},isClosed:function(e){return null===e.fd},llseek:function(e,t,r){if(we.isClosed(e))throw new we.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new we.ErrnoError(70);if(0!=r&&1!=r&&2!=r)throw new we.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,r),e.ungotten=[],e.position},read:function(e,t,r,n,i){if(n<0||i<0)throw new we.ErrnoError(28);if(we.isClosed(e))throw new we.ErrnoError(8);if(1==(2097155&e.flags))throw new we.ErrnoError(8);if(we.isDir(e.node.mode))throw new we.ErrnoError(31);if(!e.stream_ops.read)throw new we.ErrnoError(28);var o=void 0!==i;if(o){if(!e.seekable)throw new we.ErrnoError(70)}else i=e.position;var a=e.stream_ops.read(e,t,r,n,i);return o||(e.position+=a),a},write:function(e,t,r,n,i,o){if(n<0||i<0)throw new we.ErrnoError(28);if(we.isClosed(e))throw new we.ErrnoError(8);if(0==(2097155&e.flags))throw new we.ErrnoError(8);if(we.isDir(e.node.mode))throw new we.ErrnoError(31);if(!e.stream_ops.write)throw new we.ErrnoError(28);e.seekable&&1024&e.flags&&we.llseek(e,0,2);var a=void 0!==i;if(a){if(!e.seekable)throw new we.ErrnoError(70)}else i=e.position;var s=e.stream_ops.write(e,t,r,n,i,o);a||(e.position+=s);try{e.path&&we.trackingDelegate.onWriteToFile&&we.trackingDelegate.onWriteToFile(e.path)}catch(t){p("FS.trackingDelegate['onWriteToFile']('"+e.path+"') threw an exception: "+t.message)}return s},allocate:function(e,t,r){if(we.isClosed(e))throw new we.ErrnoError(8);if(t<0||r<=0)throw new we.ErrnoError(28);if(0==(2097155&e.flags))throw new we.ErrnoError(8);if(!we.isFile(e.node.mode)&&!we.isDir(e.node.mode))throw new we.ErrnoError(43);if(!e.stream_ops.allocate)throw new we.ErrnoError(138);e.stream_ops.allocate(e,t,r)},mmap:function(e,t,r,n,i,o){if(0!=(2&i)&&0==(2&o)&&2!=(2097155&e.flags))throw new we.ErrnoError(2);if(1==(2097155&e.flags))throw new we.ErrnoError(2);if(!e.stream_ops.mmap)throw new we.ErrnoError(43);return e.stream_ops.mmap(e,t,r,n,i,o)},msync:function(e,t,r,n,i){return e&&e.stream_ops.msync?e.stream_ops.msync(e,t,r,n,i):0},munmap:function(e){return 0},ioctl:function(e,t,r){if(!e.stream_ops.ioctl)throw new we.ErrnoError(59);return e.stream_ops.ioctl(e,t,r)},readFile:function(e,t){if((t=t||{}).flags=t.flags||"r",t.encoding=t.encoding||"binary","utf8"!==t.encoding&&"binary"!==t.encoding)throw new Error('Invalid encoding type "'+t.encoding+'"');var r,n=we.open(e,t.flags),i=we.stat(e).size,o=new Uint8Array(i);return we.read(n,o,0,i,0),"utf8"===t.encoding?r=C(o,0):"binary"===t.encoding&&(r=o),we.close(n),r},writeFile:function(e,t,r){(r=r||{}).flags=r.flags||"w";var n=we.open(e,r.flags,r.mode);if("string"==typeof t){var i=new Uint8Array(j(t)+1),o=z(t,i,0,i.length);we.write(n,i,0,o,void 0,r.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");we.write(n,t,0,t.byteLength,void 0,r.canOwn)}we.close(n)},cwd:function(){return we.currentPath},chdir:function(e){var t=we.lookupPath(e,{follow:!0});if(null===t.node)throw new we.ErrnoError(44);if(!we.isDir(t.node.mode))throw new we.ErrnoError(54);var r=we.nodePermissions(t.node,"x");if(r)throw new we.ErrnoError(r);we.currentPath=t.path},createDefaultDirectories:function(){we.mkdir("/tmp"),we.mkdir("/home"),we.mkdir("/home/web_user")},createDefaultDevices:function(){we.mkdir("/dev"),we.registerDevice(we.makedev(1,3),{read:function(){return 0},write:function(e,t,r,n,i){return n}}),we.mkdev("/dev/null",we.makedev(1,3)),ge.register(we.makedev(5,0),ge.default_tty_ops),ge.register(we.makedev(6,0),ge.default_tty1_ops),we.mkdev("/dev/tty",we.makedev(5,0)),we.mkdev("/dev/tty1",we.makedev(6,0));var e=function(){if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var e=new Uint8Array(1);return function(){return crypto.getRandomValues(e),e[0]}}return function(){J("randomDevice")}}();we.createDevice("/dev","random",e),we.createDevice("/dev","urandom",e),we.mkdir("/dev/shm"),we.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){we.mkdir("/proc"),we.mkdir("/proc/self"),we.mkdir("/proc/self/fd"),we.mount({mount:function(){var e=we.createNode("/proc/self","fd",16895,73);return e.node_ops={lookup:function(e,t){var r=we.getStream(+t);if(!r)throw new we.ErrnoError(8);var n={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return r.path}}};return n.parent=n,n}},e}},{},"/proc/self/fd")},createStandardStreams:function(){n.stdin?we.createDevice("/dev","stdin",n.stdin):we.symlink("/dev/tty","/dev/stdin"),n.stdout?we.createDevice("/dev","stdout",null,n.stdout):we.symlink("/dev/tty","/dev/stdout"),n.stderr?we.createDevice("/dev","stderr",null,n.stderr):we.symlink("/dev/tty1","/dev/stderr"),we.open("/dev/stdin","r"),we.open("/dev/stdout","w"),we.open("/dev/stderr","w")},ensureErrnoError:function(){we.ErrnoError||(we.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){this.errno=e},this.setErrno(e),this.message="FS error"},we.ErrnoError.prototype=new Error,we.ErrnoError.prototype.constructor=we.ErrnoError,[44].forEach(function(e){we.genericErrors[e]=new we.ErrnoError(e),we.genericErrors[e].stack="<generic error, no stack>"}))},staticInit:function(){we.ensureErrnoError(),we.nameTable=new Array(4096),we.mount(ye,{},"/"),we.createDefaultDirectories(),we.createDefaultDevices(),we.createSpecialDirectories(),we.filesystems={MEMFS:ye}},init:function(e,t,r){we.init.initialized=!0,we.ensureErrnoError(),n.stdin=e||n.stdin,n.stdout=t||n.stdout,n.stderr=r||n.stderr,we.createStandardStreams()},quit:function(){we.init.initialized=!1;var e=n._fflush;e&&e(0);for(var t=0;t<we.streams.length;t++){var r=we.streams[t];r&&we.close(r)}},getMode:function(e,t){var r=0;return e&&(r|=365),t&&(r|=146),r},findObject:function(e,t){var r=we.analyzePath(e,t);return r.exists?r.object:(me(r.error),null)},analyzePath:function(e,t){try{e=(n=we.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=we.lookupPath(e,{parent:!0});r.parentExists=!0,r.parentPath=n.path,r.parentObject=n.node,r.name=pe.basename(e),n=we.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:we.getPath(e);for(var i=t.split("/").reverse();i.length;){var o=i.pop();if(o){var a=pe.join2(e,o);try{we.mkdir(a)}catch(e){}e=a}}return a},createFile:function(e,t,r,n,i){var o=pe.join2("string"==typeof e?e:we.getPath(e),t),a=we.getMode(n,i);return we.create(o,a)},createDataFile:function(e,t,r,n,i,o){var a=t?pe.join2("string"==typeof e?e:we.getPath(e),t):e,s=we.getMode(n,i),u=we.create(a,s);if(r){if("string"==typeof r){for(var c=new Array(r.length),l=0,d=r.length;l<d;++l)c[l]=r.charCodeAt(l);r=c}we.chmod(u,146|s);var f=we.open(u,"w");we.write(f,r,0,r.length,0,o),we.close(f),we.chmod(u,s)}return u},createDevice:function(e,t,r,n){var i=pe.join2("string"==typeof e?e:we.getPath(e),t),o=we.getMode(!!r,!!n);we.createDevice.major||(we.createDevice.major=64);var a=we.makedev(we.createDevice.major++,0);return we.registerDevice(a,{open:function(e){e.seekable=!1},close:function(e){n&&n.buffer&&n.buffer.length&&n(10)},read:function(e,t,n,i,o){for(var a=0,s=0;s<i;s++){var u;try{u=r()}catch(e){throw new we.ErrnoError(29)}if(void 0===u&&0===a)throw new we.ErrnoError(6);if(null==u)break;a++,t[n+s]=u}return a&&(e.node.timestamp=Date.now()),a},write:function(e,t,r,i,o){for(var a=0;a<i;a++)try{n(t[r+a])}catch(e){throw new we.ErrnoError(29)}return i&&(e.node.timestamp=Date.now()),a}}),we.mkdev(i,o,a)},forceLoadFile:function(e){if(e.isDevice||e.isFolder||e.link||e.contents)return!0;var t=!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(!c)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=Oe(c(e.url),!0),e.usedBytes=e.contents.length}catch(e){t=!1}return t||me(29),t},createLazyFile:function(e,t,r,n,i){function o(){this.lengthKnown=!1,this.chunks=[]}if(o.prototype.get=function(e){if(!(e>this.length-1||e<0)){var t=e%this.chunkSize;return this.getter(e/this.chunkSize|0)[t]}},o.prototype.setDataGetter=function(e){this.getter=e},o.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")),i=(t=e.getResponseHeader("Accept-Ranges"))&&"bytes"===t,o=(t=e.getResponseHeader("Content-Encoding"))&&"gzip"===t,a=1048576;i||(a=n);var s=this;s.setDataGetter(function(e){var t=e*a,i=(e+1)*a-1;if(i=Math.min(i,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 i=new XMLHttpRequest;if(i.open("GET",r,!1),n!==a&&i.setRequestHeader("Range","bytes="+e+"-"+t),"undefined"!=typeof Uint8Array&&(i.responseType="arraybuffer"),i.overrideMimeType&&i.overrideMimeType("text/plain; charset=x-user-defined"),i.send(null),!(i.status>=200&&i.status<300||304===i.status))throw new Error("Couldn't load "+r+". Status: "+i.status);return void 0!==i.response?new Uint8Array(i.response||[]):Oe(i.responseText||"",!0)}(t,i)),void 0===s.chunks[e])throw new Error("doXHR failed!");return s.chunks[e]}),!o&&n||(a=n=1,n=this.getter(0).length,a=n,m("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(!s)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var a=new o;Object.defineProperties(a,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var u={isDevice:!1,contents:a}}else u={isDevice:!1,url:r};var c=we.createFile(e,t,u,n,i);u.contents?c.contents=u.contents:u.url&&(c.contents=null,c.url=u.url),Object.defineProperties(c,{usedBytes:{get:function(){return this.contents.length}}});var l={};return Object.keys(c.stream_ops).forEach(function(e){var t=c.stream_ops[e];l[e]=function(){if(!we.forceLoadFile(c))throw new we.ErrnoError(29);return t.apply(null,arguments)}}),l.read=function(e,t,r,n,i){if(!we.forceLoadFile(c))throw new we.ErrnoError(29);var o=e.node.contents;if(i>=o.length)return 0;var a=Math.min(o.length-i,n);if(o.slice)for(var s=0;s<a;s++)t[r+s]=o[i+s];else for(s=0;s<a;s++)t[r+s]=o.get(i+s);return a},c.stream_ops=l,c},createPreloadedFile:function(e,t,r,i,o,a,s,u,c,l){se.init();var d=t?ve.resolve(pe.join2(e,t)):e;function f(r){function f(r){l&&l(),u||we.createDataFile(e,t,r,i,o,c),a&&a(),$()}var h=!1;n.preloadPlugins.forEach(function(e){h||e.canHandle(d)&&(e.handle(r,d,f,function(){s&&s(),$()}),h=!0)}),h||f(r)}Z(),"string"==typeof r?se.asyncLoad(r,function(e){f(e)},s):f(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=we.indexedDB();try{var i=n.open(we.DB_NAME(),we.DB_VERSION)}catch(e){return r(e)}i.onupgradeneeded=function(){m("creating db"),i.result.createObjectStore(we.DB_STORE_NAME)},i.onsuccess=function(){var n=i.result.transaction([we.DB_STORE_NAME],"readwrite"),o=n.objectStore(we.DB_STORE_NAME),a=0,s=0,u=e.length;function c(){0==s?t():r()}e.forEach(function(e){var t=o.put(we.analyzePath(e).object.contents,e);t.onsuccess=function(){++a+s==u&&c()},t.onerror=function(){s++,a+s==u&&c()}}),n.onerror=r},i.onerror=r},loadFilesFromDB:function(e,t,r){t=t||function(){},r=r||function(){};var n=we.indexedDB();try{var i=n.open(we.DB_NAME(),we.DB_VERSION)}catch(e){return r(e)}i.onupgradeneeded=r,i.onsuccess=function(){var n=i.result;try{var o=n.transaction([we.DB_STORE_NAME],"readonly")}catch(e){return void r(e)}var a=o.objectStore(we.DB_STORE_NAME),s=0,u=0,c=e.length;function l(){0==u?t():r()}e.forEach(function(e){var t=a.get(e);t.onsuccess=function(){we.analyzePath(e).exists&&we.unlink(e),we.createDataFile(pe.dirname(e),pe.basename(e),t.result,!0,!0,!0),++s+u==c&&l()},t.onerror=function(){u++,s+u==c&&l()}}),o.onerror=r},i.onerror=r}},_e={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt:function(e,t){if("/"!==t[0]){var r;if(-100===e)r=we.cwd();else{var n=we.getStream(e);if(!n)throw new we.ErrnoError(8);r=n.path}t=pe.join2(r,t)}return t},doStat:function(e,t,r){try{var n=e(t)}catch(e){if(e&&e.node&&pe.normalize(t)!==pe.normalize(we.getPath(e.node)))return-54;throw e}return D[r>>2]=n.dev,D[r+4>>2]=0,D[r+8>>2]=n.ino,D[r+12>>2]=n.mode,D[r+16>>2]=n.nlink,D[r+20>>2]=n.uid,D[r+24>>2]=n.gid,D[r+28>>2]=n.rdev,D[r+32>>2]=0,ne=[n.size>>>0,(re=n.size,+U(re)>=1?re>0?(0|V(+Y(re/4294967296),4294967295))>>>0:~~+K((re-+(~~re>>>0))/4294967296)>>>0:0)],D[r+40>>2]=ne[0],D[r+44>>2]=ne[1],D[r+48>>2]=4096,D[r+52>>2]=n.blocks,D[r+56>>2]=n.atime.getTime()/1e3|0,D[r+60>>2]=0,D[r+64>>2]=n.mtime.getTime()/1e3|0,D[r+68>>2]=0,D[r+72>>2]=n.ctime.getTime()/1e3|0,D[r+76>>2]=0,ne=[n.ino>>>0,(re=n.ino,+U(re)>=1?re>0?(0|V(+Y(re/4294967296),4294967295))>>>0:~~+K((re-+(~~re>>>0))/4294967296)>>>0:0)],D[r+80>>2]=ne[0],D[r+84>>2]=ne[1],0},doMsync:function(e,t,r,n,i){var o=P.slice(e,e+r);we.msync(t,o,i,r,n)},doMkdir:function(e,t){return"/"===(e=pe.normalize(e))[e.length-1]&&(e=e.substr(0,e.length-1)),we.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 we.mknod(e,t,r),0},doReadlink:function(e,t,r){if(r<=0)return-28;var n=we.readlink(e),i=Math.min(r,j(n)),o=F[t+i];return B(n,t,r+1),F[t+i]=o,i},doAccess:function(e,t){if(-8&t)return-28;var r;if(!(r=we.lookupPath(e,{follow:!0}).node))return-44;var n="";return 4&t&&(n+="r"),2&t&&(n+="w"),1&t&&(n+="x"),n&&we.nodePermissions(r,n)?-2:0},doDup:function(e,t,r){var n=we.getStream(r);return n&&we.close(n),we.open(e,t,0,r,r).fd},doReadv:function(e,t,r,n){for(var i=0,o=0;o<r;o++){var a=D[t+(8*o+4)>>2],s=we.read(e,F,D[t+8*o>>2],a,n);if(s<0)return-1;if(i+=s,s<a)break}return i},doWritev:function(e,t,r,n){for(var i=0,o=0;o<r;o++){var a=we.write(e,F,D[t+8*o>>2],D[t+(8*o+4)>>2],n);if(a<0)return-1;i+=a}return i},varargs:void 0,get:function(){return _e.varargs+=4,D[_e.varargs-4>>2]},getStr:function(e){return T(e)},getStreamFromFD:function(e){var t=we.getStream(e);if(!t)throw new we.ErrnoError(8);return t},get64:function(e,t){return e}};function be(e){try{return w.grow(e-x.byteLength+65535>>>16),I(w.buffer),1}catch(e){}}var Se={xhrs:[],setu64:function(e,t){R[e>>2]=t,R[e+4>>2]=t/4294967296|0},openDatabase:function(e,t,r,n){try{var i=indexedDB.open(e,t)}catch(e){return n(e)}i.onupgradeneeded=function(e){var t=e.target.result;t.objectStoreNames.contains("FILES")&&t.deleteObjectStore("FILES"),t.createObjectStore("FILES")},i.onsuccess=function(e){r(e.target.result)},i.onerror=function(e){n(e)}},staticInit:function(){Se.openDatabase("emscripten_filesystem",1,function(e){Se.dbInstance=e,$()},function(){Se.dbInstance=!1,$()}),"undefined"!=typeof ENVIRONMENT_IS_FETCH_WORKER&&ENVIRONMENT_IS_FETCH_WORKER||Z()}};function Me(e,t,r,n,i){var o=R[e+8>>2];if(o){var a=T(o),s=e+112,u=T(s);u||(u="GET");var c=R[s+52>>2],l=R[s+56>>2],d=!!R[s+60>>2],f=R[s+68>>2],h=R[s+72>>2],m=R[s+76>>2],p=R[s+80>>2],v=R[s+84>>2],g=R[s+88>>2],y=!!(1&c),w=!!(2&c),_=!!(64&c),b=f?T(f):void 0,S=h?T(h):void 0,M=p?T(p):void 0,E=new XMLHttpRequest;if(E.withCredentials=d,E.open(u,a,!_,b,S),_||(E.timeout=l),E.url_=a,E.responseType="arraybuffer",p&&E.overrideMimeType(M),m)for(;;){var k=R[m>>2];if(!k)break;var x=R[m+4>>2];if(!x)break;m+=8;var F=T(k),A=T(x);E.setRequestHeader(F,A)}Se.xhrs.push(E),R[e+0>>2]=Se.xhrs.length;var D=v&&g?P.slice(v,v+g):null;E.onload=function(n){O(y&&!w);var i=E.response?E.response.byteLength:0;Se.setu64(e+24,0),i&&Se.setu64(e+32,i),L[e+40>>1]=E.readyState,L[e+42>>1]=E.status,E.statusText&&B(E.statusText,e+44,64),E.status>=200&&E.status<300?t&&t(e,E,n):r&&r(e,E,n)},E.onerror=function(t){O(y);var n=E.status;Se.setu64(e+24,0),Se.setu64(e+32,E.response?E.response.byteLength:0),L[e+40>>1]=E.readyState,L[e+42>>1]=n,r&&r(e,E,t)},E.ontimeout=function(t){r&&r(e,E,t)},E.onprogress=function(t){var r=y&&w&&E.response?E.response.byteLength:0,i=0;y&&w&&(i=ze(r),P.set(new Uint8Array(E.response),i)),R[e+12>>2]=i,Se.setu64(e+16,r),Se.setu64(e+24,t.loaded-r),Se.setu64(e+32,t.total),L[e+40>>1]=E.readyState,E.readyState>=3&&0===E.status&&t.loaded>0&&(E.status=200),L[e+42>>1]=E.status,E.statusText&&B(E.statusText,e+44,64),n&&n(e,E,t),i&&Be(i)},E.onreadystatechange=function(t){L[e+40>>1]=E.readyState,E.readyState>=2&&(L[e+42>>1]=E.status),i&&i(e,E,t)};try{E.send(D)}catch(t){r&&r(e,E,t)}}else r(e,0,"no url specified!");function O(t){var r=0,n=0;t&&(r=ze(n=E.response?E.response.byteLength:0),P.set(new Uint8Array(E.response),r)),R[e+12>>2]=r,Se.setu64(e+16,n)}}function Ee(e,t,r,n,i){if(e){var o=R[t+112+64>>2];o||(o=R[t+8>>2]);var a=T(o);try{var s=e.transaction(["FILES"],"readwrite").objectStore("FILES").put(r,a);s.onsuccess=function(e){L[t+40>>1]=4,L[t+42>>1]=200,B("OK",t+44,64),n(t,0,a)},s.onerror=function(e){L[t+40>>1]=4,L[t+42>>1]=413,B("Payload Too Large",t+44,64),i(t,0,e)}}catch(e){i(t,0,e)}}else i(t,0,"IndexedDB not available!")}var ke={};function xe(){if(!xe.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",_:u||"./this.program"};for(var t in ke)e[t]=ke[t];var r=[];for(var t in e)r.push(t+"="+e[t]);xe.strings=r}return xe.strings}function Fe(e){return e%4==0&&(e%100!=0||e%400==0)}function Pe(e,t){for(var r=0,n=0;n<=t;r+=e[n++]);return r}var Ae=[31,29,31,30,31,30,31,31,30,31,30,31],Le=[31,28,31,30,31,30,31,31,30,31,30,31];function De(e,t){for(var r=new Date(e.getTime());t>0;){var n=Fe(r.getFullYear()),i=r.getMonth(),o=(n?Ae:Le)[i];if(!(t>o-r.getDate()))return r.setDate(r.getDate()+t),r;t-=o-r.getDate()+1,r.setDate(1),i<11?r.setMonth(i+1):(r.setMonth(0),r.setFullYear(r.getFullYear()+1))}return r}n.requestFullscreen=function(e,t){se.requestFullscreen(e,t)},n.requestAnimationFrame=function(e){se.requestAnimationFrame(e)},n.setCanvasSize=function(e,t,r){se.setCanvasSize(e,t,r)},n.pauseMainLoop=function(){se.mainLoop.pause()},n.resumeMainLoop=function(){se.mainLoop.resume()},n.getUserMedia=function(){se.getUserMedia()},n.createContext=function(e,t,r,n){return se.createContext(e,t,r,n)};var Re=function(e,t,r,n){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=we.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=n};function Oe(e,t,r){var n=r>0?r:j(e)+1,i=new Array(n),o=z(e,i,0,i.length);return t&&(i.length=o),i}Object.defineProperties(Re.prototype,{read:{get:function(){return 365==(365&this.mode)},set:function(e){e?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146==(146&this.mode)},set:function(e){e?this.mode|=146:this.mode&=-147}},isFolder:{get:function(){return we.isDir(this.mode)}},isDevice:{get:function(){return we.isChrdev(this.mode)}}}),we.FSNode=Re,we.staticInit(),n.FS_createPath=we.createPath,n.FS_createDataFile=we.createDataFile,n.FS_createPreloadedFile=we.createPreloadedFile,n.FS_createLazyFile=we.createLazyFile,n.FS_createDevice=we.createDevice,n.FS_unlink=we.unlink,Se.staticInit(),H.push({func:function(){Te()}});var Ce={__cxa_allocate_exception:function(e){return ze(e+16)+16},__cxa_atexit:function(e,t){},__cxa_begin_catch:function(e){var t=new le(e),r=t.get_exception_info();return r.get_caught()||(r.set_caught(!0),qe.uncaught_exceptions--),r.set_rethrown(!1),de.push(t),function(e){e.add_ref()}(r),t.get_exception_ptr()},__cxa_end_catch:function(){He(0);var e=de.pop();!function(e){if(e.release_ref()&&!e.get_rethrown()){var t=e.get_destructor();t&&_.get(t)(e.excPtr),he(e.excPtr)}}(e.get_exception_info()),e.free(),fe=0},__cxa_find_matching_catch_2:function(){var e=fe;if(!e)return 0|(M(0),0);var t=new ce(e),r=t.get_type(),n=new le;if(n.set_base_ptr(e),!r)return 0|(M(0),n.ptr);var i=Array.prototype.slice.call(arguments),o=Ie(),a=Xe(4);D[a>>2]=e;for(var s=0;s<i.length;s++){var u=i[s];if(0===u||u===r)break;if(We(u,r,a)){var c=D[a>>2];return e!==c&&n.set_adjusted_ptr(c),0|(M(u),n.ptr)}}return Ne(o),0|(M(r),n.ptr)},__cxa_find_matching_catch_3:function(){var e=fe;if(!e)return 0|(M(0),0);var t=new ce(e),r=t.get_type(),n=new le;if(n.set_base_ptr(e),!r)return 0|(M(0),n.ptr);var i=Array.prototype.slice.call(arguments),o=Ie(),a=Xe(4);D[a>>2]=e;for(var s=0;s<i.length;s++){var u=i[s];if(0===u||u===r)break;if(We(u,r,a)){var c=D[a>>2];return e!==c&&n.set_adjusted_ptr(c),0|(M(u),n.ptr)}}return Ne(o),0|(M(r),n.ptr)},__cxa_free_exception:he,__cxa_rethrow:function(){var e=de.pop(),t=e.get_exception_info(),r=e.get_base_ptr();throw t.get_rethrown()?e.free():(de.push(e),t.set_rethrown(!0)),fe=r,r},__cxa_throw:function(e,t,r){throw new ce(e).init(t,r),fe=e,"uncaught_exception"in qe?qe.uncaught_exceptions++:qe.uncaught_exceptions=1,e},__cxa_uncaught_exceptions:function(){return qe.uncaught_exceptions},__resumeException:function(e){var t=new le(e),r=t.get_base_ptr();throw fe||(fe=r),t.free(),r},__sys_fcntl64:function(e,t,r){_e.varargs=r;try{var n=_e.getStreamFromFD(e);switch(t){case 0:return(i=_e.get())<0?-28:we.open(n.path,n.flags,0,i).fd;case 1:case 2:return 0;case 3:return n.flags;case 4:var i=_e.get();return n.flags|=i,0;case 12:return i=_e.get(),A[i+0>>1]=2,0;case 13:case 14:return 0;case 16:case 8:return-28;case 9:return me(28),-1;default:return-28}}catch(e){return void 0!==we&&e instanceof we.ErrnoError||J(e),-e.errno}},__sys_ioctl:function(e,t,r){_e.varargs=r;try{var n=_e.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 i=_e.get();return D[i>>2]=0,0;case 21520:return n.tty?-28:-59;case 21531:return i=_e.get(),we.ioctl(n,t,i);case 21523:case 21524:return n.tty?0:-59;default:J("bad ioctl syscall "+t)}}catch(e){return void 0!==we&&e instanceof we.ErrnoError||J(e),-e.errno}},__sys_open:function(e,t,r){_e.varargs=r;try{var n=_e.getStr(e),i=_e.get();return we.open(n,t,i).fd}catch(e){return void 0!==we&&e instanceof we.ErrnoError||J(e),-e.errno}},__sys_read:function(e,t,r){try{var n=_e.getStreamFromFD(e);return we.read(n,F,t,r)}catch(e){return void 0!==we&&e instanceof we.ErrnoError||J(e),-e.errno}},_emscripten_fetch_free:function(e){delete Se.xhrs[e-1]},abort:function(){J()},clock_gettime:function(e,t){var r;if(0===e)r=Date.now();else{if(1!==e&&4!==e)return me(28),-1;r=ie()}return D[t>>2]=r/1e3|0,D[t+4>>2]=r%1e3*1e3*1e3|0,0},emscripten_is_main_browser_thread:function(){return!s},emscripten_memcpy_big:function(e,t,r){P.copyWithin(e,t,t+r)},emscripten_resize_heap:function(e){var t=P.length,r=2147483648;if((e>>>=0)>r)return!1;for(var n,i=1;i<=4;i*=2){var o=t*(1+.2/i);if(o=Math.min(o,e+100663296),be(Math.min(r,((n=Math.max(16777216,e,o))%65536>0&&(n+=65536-n%65536),n))))return!0}return!1},emscripten_start_fetch:function(e,t,r,n,i){var o=e+112,a=T(o),s=R[o+36>>2],u=R[o+40>>2],c=R[o+44>>2],l=R[o+48>>2],d=R[o+52>>2],f=!!(4&d),h=!!(32&d),m=!!(16&d),p=function(e,r,n){s?_.get(s)(e):t&&t(e)},v=function(e,t,r){c?_.get(c)(e):n&&n(e)},g=function(e,t,n){u?_.get(u)(e):r&&r(e)},y=function(e,t,r){l?_.get(l)(e):i&&i(e)},w=function(e,r,n){Ee(Se.dbInstance,e,r.response,function(e,r,n){s?_.get(s)(e):t&&t(e)},function(e,r,n){s?_.get(s)(e):t&&t(e)})};if("EM_IDB_STORE"===a){var b=R[o+84>>2];Ee(Se.dbInstance,e,P.slice(b,b+R[o+88>>2]),p,g)}else if("EM_IDB_DELETE"===a)!function(e,t,r,n){if(e){var i=R[t+112+64>>2];i||(i=R[t+8>>2]);var o=T(i);try{var a=e.transaction(["FILES"],"readwrite").objectStore("FILES").delete(o);a.onsuccess=function(e){var n=e.target.result;R[t+12>>2]=0,Se.setu64(t+16,0),Se.setu64(t+24,0),Se.setu64(t+32,0),L[t+40>>1]=4,L[t+42>>1]=200,B("OK",t+44,64),r(t,0,n)},a.onerror=function(e){L[t+40>>1]=4,L[t+42>>1]=404,B("Not Found",t+44,64),n(t,0,e)}}catch(e){n(t,0,e)}}else n(t,0,"IndexedDB not available!")}(Se.dbInstance,e,p,g);else if(m){if(h)return 0;Me(e,f?w:p,g,v,y)}else!function(e,t,r,n){if(e){var i=R[t+112+64>>2];i||(i=R[t+8>>2]);var o=T(i);try{var a=e.transaction(["FILES"],"readonly").objectStore("FILES").get(o);a.onsuccess=function(e){if(e.target.result){var i=e.target.result,o=i.byteLength||i.length,a=ze(o);P.set(new Uint8Array(i),a),R[t+12>>2]=a,Se.setu64(t+16,o),Se.setu64(t+24,0),Se.setu64(t+32,o),L[t+40>>1]=4,L[t+42>>1]=200,B("OK",t+44,64),r(t,0,i)}else L[t+40>>1]=4,L[t+42>>1]=404,B("Not Found",t+44,64),n(t,0,"no data")},a.onerror=function(e){L[t+40>>1]=4,L[t+42>>1]=404,B("Not Found",t+44,64),n(t,0,e)}}catch(e){n(t,0,e)}}else n(t,0,"IndexedDB not available!")}(Se.dbInstance,e,p,h?g:f?function(e,t,r){Me(e,w,g,v,y)}:function(e,t,r){Me(e,p,g,v,y)});return e},environ_get:function(e,t){var r=0;return xe().forEach(function(n,i){var o=t+r;D[e+4*i>>2]=o,function(e,t,r){for(var n=0;n<e.length;++n)F[t++>>0]=e.charCodeAt(n);F[t>>0]=0}(n,o),r+=n.length+1}),0},environ_sizes_get:function(e,t){var r=xe();D[e>>2]=r.length;var n=0;return r.forEach(function(e){n+=e.length+1}),D[t>>2]=n,0},fd_close:function(e){try{var t=_e.getStreamFromFD(e);return we.close(t),0}catch(e){return void 0!==we&&e instanceof we.ErrnoError||J(e),e.errno}},fd_read:function(e,t,r,n){try{var i=_e.getStreamFromFD(e),o=_e.doReadv(i,t,r);return D[n>>2]=o,0}catch(e){return void 0!==we&&e instanceof we.ErrnoError||J(e),e.errno}},fd_seek:function(e,t,r,n,i){try{var o=_e.getStreamFromFD(e),a=4294967296*r+(t>>>0),s=9007199254740992;return a<=-s||a>=s?-61:(we.llseek(o,a,n),ne=[o.position>>>0,(re=o.position,+U(re)>=1?re>0?(0|V(+Y(re/4294967296),4294967295))>>>0:~~+K((re-+(~~re>>>0))/4294967296)>>>0:0)],D[i>>2]=ne[0],D[i+4>>2]=ne[1],o.getdents&&0===a&&0===n&&(o.getdents=null),0)}catch(e){return void 0!==we&&e instanceof we.ErrnoError||J(e),e.errno}},fd_write:function(e,t,r,n){try{var i=_e.getStreamFromFD(e),o=_e.doWritev(i,t,r);return D[n>>2]=o,0}catch(e){return void 0!==we&&e instanceof we.ErrnoError||J(e),e.errno}},getTempRet0:function(){return 0|S},gettimeofday:function(e){var t=Date.now();return D[e>>2]=t/1e3|0,D[e+4>>2]=t%1e3*1e3|0,0},invoke_diii:function(e,t,r,n){var i=Ie();try{return _.get(e)(t,r,n)}catch(e){if(Ne(i),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_fii:function(e,t,r){var n=Ie();try{return _.get(e)(t,r)}catch(e){if(Ne(n),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_fiii:function(e,t,r,n){var i=Ie();try{return _.get(e)(t,r,n)}catch(e){if(Ne(i),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_i:function(e){var t=Ie();try{return _.get(e)()}catch(e){if(Ne(t),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_ii:function(e,t){var r=Ie();try{return _.get(e)(t)}catch(e){if(Ne(r),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_iifff:function(e,t,r,n,i){var o=Ie();try{return _.get(e)(t,r,n,i)}catch(e){if(Ne(o),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_iifffi:function(e,t,r,n,i,o){var a=Ie();try{return _.get(e)(t,r,n,i,o)}catch(e){if(Ne(a),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_iii:function(e,t,r){var n=Ie();try{return _.get(e)(t,r)}catch(e){if(Ne(n),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_iiifi:function(e,t,r,n,i){var o=Ie();try{return _.get(e)(t,r,n,i)}catch(e){if(Ne(o),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_iiifiiii:function(e,t,r,n,i,o,a,s){var u=Ie();try{return _.get(e)(t,r,n,i,o,a,s)}catch(e){if(Ne(u),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_iiii:function(e,t,r,n){var i=Ie();try{return _.get(e)(t,r,n)}catch(e){if(Ne(i),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_iiiii:function(e,t,r,n,i){var o=Ie();try{return _.get(e)(t,r,n,i)}catch(e){if(Ne(o),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_iiiiid:function(e,t,r,n,i,o){var a=Ie();try{return _.get(e)(t,r,n,i,o)}catch(e){if(Ne(a),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_iiiiii:function(e,t,r,n,i,o){var a=Ie();try{return _.get(e)(t,r,n,i,o)}catch(e){if(Ne(a),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_iiiiiii:function(e,t,r,n,i,o,a){var s=Ie();try{return _.get(e)(t,r,n,i,o,a)}catch(e){if(Ne(s),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_iiiiiiii:function(e,t,r,n,i,o,a,s){var u=Ie();try{return _.get(e)(t,r,n,i,o,a,s)}catch(e){if(Ne(u),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_iiiiiiiii:function(e,t,r,n,i,o,a,s,u){var c=Ie();try{return _.get(e)(t,r,n,i,o,a,s,u)}catch(e){if(Ne(c),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_iiiiiiiiiii:function(e,t,r,n,i,o,a,s,u,c,l){var d=Ie();try{return _.get(e)(t,r,n,i,o,a,s,u,c,l)}catch(e){if(Ne(d),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_iiiiiiiiiiii:function(e,t,r,n,i,o,a,s,u,c,l,d){var f=Ie();try{return _.get(e)(t,r,n,i,o,a,s,u,c,l,d)}catch(e){if(Ne(f),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_iiiiiiiiiiiii:function(e,t,r,n,i,o,a,s,u,c,l,d,f){var h=Ie();try{return _.get(e)(t,r,n,i,o,a,s,u,c,l,d,f)}catch(e){if(Ne(h),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_iiji:function(e,t,r,n,i){var o=Ie();try{return Ve(e,t,r,n,i)}catch(e){if(Ne(o),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_jii:function(e,t,r){var n=Ie();try{return Ge(e,t,r)}catch(e){if(Ne(n),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_jiiii:function(e,t,r,n,i){var o=Ie();try{return Qe(e,t,r,n,i)}catch(e){if(Ne(o),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_v:function(e){var t=Ie();try{_.get(e)()}catch(e){if(Ne(t),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_vi:function(e,t){var r=Ie();try{_.get(e)(t)}catch(e){if(Ne(r),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_vii:function(e,t,r){var n=Ie();try{_.get(e)(t,r)}catch(e){if(Ne(n),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_viid:function(e,t,r,n){var i=Ie();try{_.get(e)(t,r,n)}catch(e){if(Ne(i),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_viii:function(e,t,r,n){var i=Ie();try{_.get(e)(t,r,n)}catch(e){if(Ne(i),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_viiidd:function(e,t,r,n,i,o){var a=Ie();try{_.get(e)(t,r,n,i,o)}catch(e){if(Ne(a),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_viiiddi:function(e,t,r,n,i,o,a){var s=Ie();try{_.get(e)(t,r,n,i,o,a)}catch(e){if(Ne(s),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_viiiddiiid:function(e,t,r,n,i,o,a,s,u,c){var l=Ie();try{_.get(e)(t,r,n,i,o,a,s,u,c)}catch(e){if(Ne(l),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_viiii:function(e,t,r,n,i){var o=Ie();try{_.get(e)(t,r,n,i)}catch(e){if(Ne(o),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_viiiidi:function(e,t,r,n,i,o,a){var s=Ie();try{_.get(e)(t,r,n,i,o,a)}catch(e){if(Ne(s),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_viiiidiid:function(e,t,r,n,i,o,a,s,u){var c=Ie();try{_.get(e)(t,r,n,i,o,a,s,u)}catch(e){if(Ne(c),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_viiiii:function(e,t,r,n,i,o){var a=Ie();try{_.get(e)(t,r,n,i,o)}catch(e){if(Ne(a),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_viiiiif:function(e,t,r,n,i,o,a){var s=Ie();try{_.get(e)(t,r,n,i,o,a)}catch(e){if(Ne(s),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_viiiiii:function(e,t,r,n,i,o,a){var s=Ie();try{_.get(e)(t,r,n,i,o,a)}catch(e){if(Ne(s),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_viiiiiii:function(e,t,r,n,i,o,a,s){var u=Ie();try{_.get(e)(t,r,n,i,o,a,s)}catch(e){if(Ne(u),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_viiiiiiifi:function(e,t,r,n,i,o,a,s,u,c){var l=Ie();try{_.get(e)(t,r,n,i,o,a,s,u,c)}catch(e){if(Ne(l),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_viiiiiiii:function(e,t,r,n,i,o,a,s,u){var c=Ie();try{_.get(e)(t,r,n,i,o,a,s,u)}catch(e){if(Ne(c),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_viiiiiiiiii:function(e,t,r,n,i,o,a,s,u,c,l){var d=Ie();try{_.get(e)(t,r,n,i,o,a,s,u,c,l)}catch(e){if(Ne(d),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_viiiiiiiiiid:function(e,t,r,n,i,o,a,s,u,c,l,d){var f=Ie();try{_.get(e)(t,r,n,i,o,a,s,u,c,l,d)}catch(e){if(Ne(f),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_viiiiiiiiiiiiiii:function(e,t,r,n,i,o,a,s,u,c,l,d,f,h,m,p){var v=Ie();try{_.get(e)(t,r,n,i,o,a,s,u,c,l,d,f,h,m,p)}catch(e){if(Ne(v),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},invoke_viijii:function(e,t,r,n,i,o,a){var s=Ie();try{Ye(e,t,r,n,i,o,a)}catch(e){if(Ne(s),e!==e+0&&"longjmp"!==e)throw e;He(1,0)}},llvm_eh_typeid_for:function(e){return e},memory:w,pthread_mutexattr_destroy:function(){},pthread_mutexattr_init:function(){},pthread_mutexattr_settype:function(){},setTempRet0:function(e){M(0|e)},strftime_l:function(e,t,r,n){return function(e,t,r,n){var i=D[n+40>>2],o={tm_sec:D[n>>2],tm_min:D[n+4>>2],tm_hour:D[n+8>>2],tm_mday:D[n+12>>2],tm_mon:D[n+16>>2],tm_year:D[n+20>>2],tm_wday:D[n+24>>2],tm_yday:D[n+28>>2],tm_isdst:D[n+32>>2],tm_gmtoff:D[n+36>>2],tm_zone:i?T(i):""},a=T(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 u in s)a=a.replace(new RegExp(u,"g"),s[u]);var c=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],l=["January","February","March","April","May","June","July","August","September","October","November","December"];function d(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 d(e,t,"0")}function h(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 p(e){var t=De(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),i=m(r),o=m(n);return h(i,t)<=0?h(o,t)<=0?t.getFullYear()+1:t.getFullYear():t.getFullYear()-1}var v={"%a":function(e){return c[e.tm_wday].substring(0,3)},"%A":function(e){return c[e.tm_wday]},"%b":function(e){return l[e.tm_mon].substring(0,3)},"%B":function(e){return l[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 d(e.tm_mday,2," ")},"%g":function(e){return p(e).toString().substring(2)},"%G":function(e){return p(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+Pe(Fe(e.tm_year+1900)?Ae:Le,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:De(t,7-t.getDay()),n=new Date(e.tm_year+1900,e.tm_mon,e.tm_mday);if(h(r,n)<0){var i=Pe(Fe(n.getFullYear())?Ae:Le,n.getMonth()-1)-31,o=31-r.getDate()+i+n.getDate();return f(Math.ceil(o/7),2)}return 0===h(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),i=m(r),o=m(n),a=De(new Date(e.tm_year+1900,0,1),e.tm_yday);return h(a,i)<0?"53":h(o,a)<=0?"01":(t=i.getFullYear()<e.tm_year+1900?e.tm_yday+32-i.getDate():e.tm_yday+1-i.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:De(t,0===t.getDay()?1:7-t.getDay()+1),n=new Date(e.tm_year+1900,e.tm_mon,e.tm_mday);if(h(r,n)<0){var i=Pe(Fe(n.getFullYear())?Ae:Le,n.getMonth()-1)-31,o=31-r.getDate()+i+n.getDate();return f(Math.ceil(o/7),2)}return 0===h(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 u in v)a.indexOf(u)>=0&&(a=a.replace(new RegExp(u,"g"),v[u](o)));var g=Oe(a,!1);return g.length>t?0:(function(e,t){F.set(e,t)}(g,e),g.length-1)}(e,t,r,n)},sysconf:function(e){switch(e){case 30:return 16384;case 85:return 131072;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return"object"==typeof navigator&&navigator.hardwareConcurrency||1}return me(28),-1},time:function(e){var t=Date.now()/1e3|0;return e&&(D[e>>2]=t),t}};!function(){var e={env:Ce,wasi_snapshot_preview1:Ce};function t(e,t){n.asm=e.exports,_=n.asm.__indirect_function_table,$()}function r(e){t(e.instance)}function i(t){return(y||!a&&!s||"function"!=typeof fetch?Promise.resolve().then(ae):fetch(oe,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+oe+"'";return e.arrayBuffer()}).catch(function(){return ae()})).then(function(t){return WebAssembly.instantiate(t,e)}).then(t,function(e){p("failed to asynchronously prepare wasm: "+e),J(e)})}if(Z(),n.instantiateWasm)try{return n.instantiateWasm(e,t)}catch(e){return p("Module.instantiateWasm callback failed with error: "+e),!1}!function(){if(y||"function"!=typeof WebAssembly.instantiateStreaming||ee(oe)||"function"!=typeof fetch)return i(r);fetch(oe,{credentials:"same-origin"}).then(function(t){return WebAssembly.instantiateStreaming(t,e).then(r,function(e){return p("wasm streaming compile failed: "+e),p("falling back to ArrayBuffer instantiation"),i(r)})})}()}();var Te=n.___wasm_call_ctors=function(){return(Te=n.___wasm_call_ctors=n.asm.__wasm_call_ctors).apply(null,arguments)};n._OX_SetLicense=function(){return(n._OX_SetLicense=n.asm.OX_SetLicense).apply(null,arguments)},n._OX_Initialize=function(){return(n._OX_Initialize=n.asm.OX_Initialize).apply(null,arguments)},n._OX_ProcessFrame=function(){return(n._OX_ProcessFrame=n.asm.OX_ProcessFrame).apply(null,arguments)},n._OX_ProcessIMU=function(){return(n._OX_ProcessIMU=n.asm.OX_ProcessIMU).apply(null,arguments)},n._OX_Destroy=function(){return(n._OX_Destroy=n.asm.OX_Destroy).apply(null,arguments)},n._OX_StartImageDetection=function(){return(n._OX_StartImageDetection=n.asm.OX_StartImageDetection).apply(null,arguments)},n._OX_LoadImageClassifier=function(){return(n._OX_LoadImageClassifier=n.asm.OX_LoadImageClassifier).apply(null,arguments)},n._OX_AddImage=function(){return(n._OX_AddImage=n.asm.OX_AddImage).apply(null,arguments)},n._OX_StopImageDetection=function(){return(n._OX_StopImageDetection=n.asm.OX_StopImageDetection).apply(null,arguments)},n._OX_StartQRCodeDetection=function(){return(n._OX_StartQRCodeDetection=n.asm.OX_StartQRCodeDetection).apply(null,arguments)},n._OX_StopQRCodeDetection=function(){return(n._OX_StopQRCodeDetection=n.asm.OX_StopQRCodeDetection).apply(null,arguments)},n._OX_StartSLAM=function(){return(n._OX_StartSLAM=n.asm.OX_StartSLAM).apply(null,arguments)},n._OX_StopSLAM=function(){return(n._OX_StopSLAM=n.asm.OX_StopSLAM).apply(null,arguments)},n._OX_SetLogCallback=function(){return(n._OX_SetLogCallback=n.asm.OX_SetLogCallback).apply(null,arguments)};var ze=n._malloc=function(){return(ze=n._malloc=n.asm.malloc).apply(null,arguments)},Be=n._free=function(){return(Be=n._free=n.asm.free).apply(null,arguments)},je=n.___errno_location=function(){return(je=n.___errno_location=n.asm.__errno_location).apply(null,arguments)};n.__get_tzname=function(){return(n.__get_tzname=n.asm._get_tzname).apply(null,arguments)},n.__get_daylight=function(){return(n.__get_daylight=n.asm._get_daylight).apply(null,arguments)},n.__get_timezone=function(){return(n.__get_timezone=n.asm._get_timezone).apply(null,arguments)};var Ie=n.stackSave=function(){return(Ie=n.stackSave=n.asm.stackSave).apply(null,arguments)},Ne=n.stackRestore=function(){return(Ne=n.stackRestore=n.asm.stackRestore).apply(null,arguments)},Xe=n.stackAlloc=function(){return(Xe=n.stackAlloc=n.asm.stackAlloc).apply(null,arguments)},He=n._setThrew=function(){return(He=n._setThrew=n.asm.setThrew).apply(null,arguments)},qe=n.__ZSt18uncaught_exceptionv=function(){return(qe=n.__ZSt18uncaught_exceptionv=n.asm._ZSt18uncaught_exceptionv).apply(null,arguments)},We=n.___cxa_can_catch=function(){return(We=n.___cxa_can_catch=n.asm.__cxa_can_catch).apply(null,arguments)},Ue=n.___cxa_is_pointer_type=function(){return(Ue=n.___cxa_is_pointer_type=n.asm.__cxa_is_pointer_type).apply(null,arguments)};n._emscripten_main_thread_process_queued_calls=function(){return(n._emscripten_main_thread_process_queued_calls=n.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)};var Ke,Ye=n.dynCall_viijii=function(){return(Ye=n.dynCall_viijii=n.asm.dynCall_viijii).apply(null,arguments)},Ve=n.dynCall_iiji=function(){return(Ve=n.dynCall_iiji=n.asm.dynCall_iiji).apply(null,arguments)},Ge=n.dynCall_jii=function(){return(Ge=n.dynCall_jii=n.asm.dynCall_jii).apply(null,arguments)},Qe=n.dynCall_jiiii=function(){return(Qe=n.dynCall_jiiii=n.asm.dynCall_jiiii).apply(null,arguments)};function Ze(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function $e(e){function r(){Ke||(Ke=!0,n.calledRun=!0,E||(n.noFSInit||we.init.initialized||we.init(),ue(H),we.ignorePermissions=!1,ue(q),t(n),n.onRuntimeInitialized&&n.onRuntimeInitialized(),function(){if(n.postRun)for("function"==typeof n.postRun&&(n.postRun=[n.postRun]);n.postRun.length;)e=n.postRun.shift(),W.unshift(e);var e;ue(W)}()))}G>0||(function(){if(n.preRun)for("function"==typeof n.preRun&&(n.preRun=[n.preRun]);n.preRun.length;)e=n.preRun.shift(),X.unshift(e);var e;ue(X)}(),G>0||(n.setStatus?(n.setStatus("Running..."),setTimeout(function(){setTimeout(function(){n.setStatus("")},1),r()},1)):r()))}if(n.dynCall_vij=function(){return(n.dynCall_vij=n.asm.dynCall_vij).apply(null,arguments)},n.dynCall_ji=function(){return(n.dynCall_ji=n.asm.dynCall_ji).apply(null,arguments)},n.dynCall_jiji=function(){return(n.dynCall_jiji=n.asm.dynCall_jiji).apply(null,arguments)},n.dynCall_iiiiij=function(){return(n.dynCall_iiiiij=n.asm.dynCall_iiiiij).apply(null,arguments)},n.dynCall_iiiiijj=function(){return(n.dynCall_iiiiijj=n.asm.dynCall_iiiiijj).apply(null,arguments)},n.dynCall_iiiiiijj=function(){return(n.dynCall_iiiiiijj=n.asm.dynCall_iiiiiijj).apply(null,arguments)},n.__growWasmMemory=function(){return(n.__growWasmMemory=n.asm.__growWasmMemory).apply(null,arguments)},n.UTF8ToString=T,n.stringToUTF8=B,n.lengthBytesUTF8=j,n.addRunDependency=Z,n.removeRunDependency=$,n.FS_createPath=we.createPath,n.FS_createDataFile=we.createDataFile,n.FS_createPreloadedFile=we.createPreloadedFile,n.FS_createLazyFile=we.createLazyFile,n.FS_createDevice=we.createDevice,n.FS_unlink=we.unlink,n.addFunction=function(e,t){return function(e,t){var r,n=_;if(!g){g=new WeakMap;for(var i=0;i<n.length;i++){var o=n.get(i);o&&g.set(o,i)}}if(g.has(e))return g.get(e);if(b.length)r=b.pop();else{r=n.length;try{n.grow(1)}catch(e){if(!(e instanceof RangeError))throw e;throw"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH."}}try{n.set(r,e)}catch(i){if(!(i instanceof TypeError))throw i;var a=function(e,t){if("function"==typeof WebAssembly.Function){for(var r={i:"i32",j:"i64",f:"f32",d:"f64"},n={parameters:[],results:"v"==t[0]?[]:[r[t[0]]]},i=1;i<t.length;++i)n.parameters.push(r[t[i]]);return new WebAssembly.Function(n,e)}var o=[1,0,1,96],a=t.slice(0,1),s=t.slice(1),u={i:127,j:126,f:125,d:124};for(o.push(s.length),i=0;i<s.length;++i)o.push(u[s[i]]);"v"==a?o.push(0):o=o.concat([1,u[a]]),o[1]=o.length-2;var c=new Uint8Array([0,97,115,109,1,0,0,0].concat(o,[2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0])),l=new WebAssembly.Module(c);return new WebAssembly.Instance(l,{e:{f:e}}).exports.f}(e,t);n.set(r,a)}return g.set(e,r),r}(e,t)},Q=function e(){Ke||$e(),Ke||(Q=e)},n.run=$e,n.preInit)for("function"==typeof n.preInit&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.pop()();return $e(),e.ready});class h{constructor(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}set(e,t,r,n,i,o,a,s,u,c,l,d,f,h,m,p){const v=this.elements;return v[0]=e,v[4]=t,v[8]=r,v[12]=n,v[1]=i,v[5]=o,v[9]=a,v[13]=s,v[2]=u,v[6]=c,v[10]=l,v[14]=d,v[3]=f,v[7]=h,v[11]=m,v[15]=p,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const r=e.elements,n=t.elements,i=this.elements,o=r[0],a=r[4],s=r[8],u=r[12],c=r[1],l=r[5],d=r[9],f=r[13],h=r[2],m=r[6],p=r[10],v=r[14],g=r[3],y=r[7],w=r[11],_=r[15],b=n[0],S=n[4],M=n[8],E=n[12],k=n[1],x=n[5],F=n[9],P=n[13],A=n[2],L=n[6],D=n[10],R=n[14],O=n[3],C=n[7],T=n[11],z=n[15];return i[0]=o*b+a*k+s*A+u*O,i[4]=o*S+a*x+s*L+u*C,i[8]=o*M+a*F+s*D+u*T,i[12]=o*E+a*P+s*R+u*z,i[1]=c*b+l*k+d*A+f*O,i[5]=c*S+l*x+d*L+f*C,i[9]=c*M+l*F+d*D+f*T,i[13]=c*E+l*P+d*R+f*z,i[2]=h*b+m*k+p*A+v*O,i[6]=h*S+m*x+p*L+v*C,i[10]=h*M+m*F+p*D+v*T,i[14]=h*E+m*P+p*R+v*z,i[3]=g*b+y*k+w*A+_*O,i[7]=g*S+y*x+w*L+_*C,i[11]=g*M+y*F+w*D+_*T,i[15]=g*E+y*P+w*R+_*z,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this}determinant(){const e=this.elements,t=e[0],r=e[4],n=e[8],i=e[12],o=e[1],a=e[5],s=e[9],u=e[13],c=e[2],l=e[6],d=e[10],f=e[14];return e[3]*(+i*s*l-n*u*l-i*a*d+r*u*d+n*a*f-r*s*f)+e[7]*(+t*s*f-t*u*d+i*o*d-n*o*f+n*u*c-i*s*c)+e[11]*(+t*u*l-t*a*f-i*o*l+r*o*f+i*a*c-r*u*c)+e[15]*(-n*a*c-t*s*l+t*a*d+n*o*l-r*o*d+r*s*c)}invert(){const e=this.elements,t=e[0],r=e[1],n=e[2],i=e[3],o=e[4],a=e[5],s=e[6],u=e[7],c=e[8],l=e[9],d=e[10],f=e[11],h=e[12],m=e[13],p=e[14],v=e[15],g=l*p*u-m*d*u+m*s*f-a*p*f-l*s*v+a*d*v,y=h*d*u-c*p*u-h*s*f+o*p*f+c*s*v-o*d*v,w=c*m*u-h*l*u+h*a*f-o*m*f-c*a*v+o*l*v,_=h*l*s-c*m*s-h*a*d+o*m*d+c*a*p-o*l*p,b=t*g+r*y+n*w+i*_;if(0===b)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const S=1/b;return e[0]=g*S,e[1]=(m*d*i-l*p*i-m*n*f+r*p*f+l*n*v-r*d*v)*S,e[2]=(a*p*i-m*s*i+m*n*u-r*p*u-a*n*v+r*s*v)*S,e[3]=(l*s*i-a*d*i-l*n*u+r*d*u+a*n*f-r*s*f)*S,e[4]=y*S,e[5]=(c*p*i-h*d*i+h*n*f-t*p*f-c*n*v+t*d*v)*S,e[6]=(h*s*i-o*p*i-h*n*u+t*p*u+o*n*v-t*s*v)*S,e[7]=(o*d*i-c*s*i+c*n*u-t*d*u-o*n*f+t*s*f)*S,e[8]=w*S,e[9]=(h*l*i-c*m*i-h*r*f+t*m*f+c*r*v-t*l*v)*S,e[10]=(o*m*i-h*a*i+h*r*u-t*m*u-o*r*v+t*a*v)*S,e[11]=(c*a*i-o*l*i-c*r*u+t*l*u+o*r*f-t*a*f)*S,e[12]=_*S,e[13]=(c*m*n-h*l*n+h*r*d-t*m*d-c*r*p+t*l*p)*S,e[14]=(h*a*n-o*m*n-h*r*s+t*m*s+o*r*p-t*a*p)*S,e[15]=(o*l*n-c*a*n+c*r*s-t*l*s-o*r*d+t*a*d)*S,this}transpose(){const e=this.elements;let t;return t=e[1],e[1]=e[4],e[4]=t,t=e[2],e[2]=e[8],e[8]=t,t=e[6],e[6]=e[9],e[9]=t,t=e[3],e[3]=e[12],e[12]=t,t=e[7],e[7]=e[13],e[13]=t,t=e[11],e[11]=e[14],e[14]=t,this}setPosition(e){const t=this.elements;return t[3]=e.x,t[7]=e.y,t[11]=e.z,this}setRotation(e){const t=this.elements,r=e.elements;return t[0]=r[0],t[1]=r[1],t[2]=r[2],t[4]=r[3],t[5]=r[4],t[6]=r[5],t[8]=r[6],t[9]=r[7],t[10]=r[8],this}extractPosition(){const e=this.elements;return new OnirixSDK.Vector3(e[3],e[7],e[11])}extractRotation(){const e=this.elements;return(new OnirixSDK.Matrix3).set(e[0],e[1],e[2],e[4],e[5],e[6],e[8],e[9],e[10])}fromArray(e){for(let t=0;t<16;t++)this.elements[t]=e[t];return this}toArray(){const e=[],t=this.elements;return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}clone(){return(new h).fromArray(this.elements)}}class m{constructor(e=0,t=0){this.x=e,this.y=t}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.x/=e,this.y/=e,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.x}clone(){return new this.constructor(this.x,this.y)}}class p{constructor(e=0,t=0,r=0){this.x=e,this.y=t,this.z=r}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.x/=e,this.y/=e,this.z/=e,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}cross(e){let t=this.x,r=this.y,n=this.z,i=e.x,o=e.y,a=e.z;return this.x=r*a-n*o,this.y=n*i-t*a,this.z=t*o-r*i,this}clone(){return new this.constructor(this.x,this.y,this.z)}}class v{constructor(e=0,t=0,r=0,n="XYZ"){this.x=e,this.y=t,this.z=r,this.order=n}setFromQuaternion(e,t){const r=(new OnirixSDK.Matrix3).makeRotationFromQuaternion(e);return this.setFromRotationMatrix(r,t)}setFromRotationMatrix(e,t){const r=e.elements,n=r[0],i=r[3],o=r[6],a=r[1],s=r[4],u=r[7],c=r[2],l=r[5],d=r[8];switch(t=t||this.order){case"XYZ":this.y=Math.asin(OnirixSDK.clamp(o,-1,1)),Math.abs(o)<.9999999?(this.x=Math.atan2(-u,d),this.z=Math.atan2(-i,n)):(this.x=Math.atan2(l,s),this.z=0);break;case"YXZ":this.x=Math.asin(-OnirixSDK.clamp(u,-1,1)),Math.abs(u)<.9999999?(this.y=Math.atan2(o,d),this.z=Math.atan2(a,s)):(this.y=Math.atan2(-c,n),this.z=0);break;case"ZXY":this.x=Math.asin(OnirixSDK.clamp(l,-1,1)),Math.abs(l)<.9999999?(this.y=Math.atan2(-c,d),this.z=Math.atan2(-i,s)):(this.y=0,this.z=Math.atan2(a,n));break;case"ZYX":this.y=Math.asin(-OnirixSDK.clamp(c,-1,1)),Math.abs(c)<.9999999?(this.x=Math.atan2(l,d),this.z=Math.atan2(a,n)):(this.x=0,this.z=Math.atan2(-i,s));break;case"YZX":this.z=Math.asin(OnirixSDK.clamp(a,-1,1)),Math.abs(a)<.9999999?(this.x=Math.atan2(-u,s),this.y=Math.atan2(-c,n)):(this.x=0,this.y=Math.atan2(o,d));break;case"XZY":this.z=Math.asin(-OnirixSDK.clamp(i,-1,1)),Math.abs(i)<.9999999?(this.x=Math.atan2(l,s),this.y=Math.atan2(o,n)):(this.x=Math.atan2(-u,d),this.y=0)}return this.order=t,this}clone(){return new this.constructor(this.x,this.y,this.z,this.order)}}class g{constructor(e=0,t=0,r=0,n=1){this.x=e,this.y=t,this.z=r,this.w=n}setFromEuler(e){const t=e.x,r=e.y,n=e.z,i=e.order,o=Math.cos,a=Math.sin,s=o(t/2),u=o(r/2),c=o(n/2),l=a(t/2),d=a(r/2),f=a(n/2);switch(i){case"XYZ":this.x=l*u*c+s*d*f,this.y=s*d*c-l*u*f,this.z=s*u*f+l*d*c,this.w=s*u*c-l*d*f;break;case"YXZ":this.x=l*u*c+s*d*f,this.y=s*d*c-l*u*f,this.z=s*u*f-l*d*c,this.w=s*u*c+l*d*f;break;case"ZXY":this.x=l*u*c-s*d*f,this.y=s*d*c+l*u*f,this.z=s*u*f+l*d*c,this.w=s*u*c-l*d*f;break;case"ZYX":this.x=l*u*c-s*d*f,this.y=s*d*c+l*u*f,this.z=s*u*f-l*d*c,this.w=s*u*c+l*d*f;break;case"YZX":this.x=l*u*c+s*d*f,this.y=s*d*c+l*u*f,this.z=s*u*f-l*d*c,this.w=s*u*c-l*d*f;break;case"XZY":this.x=l*u*c-s*d*f,this.y=s*d*c-l*u*f,this.z=s*u*f+l*d*c,this.w=s*u*c+l*d*f}return this}setFromAxisAngle(e,t){const r=t/2,n=Math.sin(r);return this.x=e.x*n,this.y=e.y*n,this.z=e.z*n,this.w=Math.cos(r),this}setFromRotationMatrix(e){const t=e.elements,r=t[0],n=t[4],i=t[8],o=t[1],a=t[5],s=t[9],u=t[2],c=t[6],l=t[10],d=r+a+l;if(d>0){const e=.5/Math.sqrt(d+1);this.w=.25/e,this.x=(c-s)*e,this.y=(i-u)*e,this.z=(o-n)*e}else if(r>a&&r>l){const e=2*Math.sqrt(1+r-a-l);this.w=(c-s)/e,this.x=.25*e,this.y=(n+o)/e,this.z=(i+u)/e}else if(a>l){const e=2*Math.sqrt(1+a-r-l);this.w=(i-u)/e,this.x=(n+o)/e,this.y=.25*e,this.z=(s+c)/e}else{const e=2*Math.sqrt(1+l-r-a);this.w=(o-n)/e,this.x=(i+u)/e,this.y=(s+c)/e,this.z=.25*e}return this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){const r=e.x,n=e.y,i=e.z,o=e.w,a=t.x,s=t.y,u=t.z,c=t.w;return this.x=r*c+o*a+n*u-i*s,this.y=n*c+o*s+i*a-r*u,this.z=i*c+o*u+r*s-n*a,this.w=o*c-r*a-n*s-i*u,this}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}}class y{constructor(){this.elements=[1,0,0,0,1,0,0,0,1]}set(e,t,r,n,i,o,a,s,u){const c=this.elements;return c[0]=e,c[1]=n,c[2]=a,c[3]=t,c[4]=i,c[5]=s,c[6]=r,c[7]=o,c[8]=u,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const r=e.elements,n=t.elements,i=this.elements,o=r[0],a=r[3],s=r[6],u=r[1],c=r[4],l=r[7],d=r[2],f=r[5],h=r[8],m=n[0],p=n[3],v=n[6],g=n[1],y=n[4],w=n[7],_=n[2],b=n[5],S=n[8];return i[0]=o*m+a*g+s*_,i[3]=o*p+a*y+s*b,i[6]=o*v+a*w+s*S,i[1]=u*m+c*g+l*_,i[4]=u*p+c*y+l*b,i[7]=u*v+c*w+l*S,i[2]=d*m+f*g+h*_,i[5]=d*p+f*y+h*b,i[8]=d*v+f*w+h*S,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this}determinant(){const e=this.elements,t=e[0],r=e[1],n=e[2],i=e[3],o=e[4],a=e[5],s=e[6],u=e[7],c=e[8];return t*o*c-t*a*u-r*i*c+r*a*s+n*i*u-n*o*s}invert(){const e=this.elements,t=e[0],r=e[1],n=e[2],i=e[3],o=e[4],a=e[5],s=e[6],u=e[7],c=e[8],l=c*o-a*u,d=a*s-c*i,f=u*i-o*s,h=t*l+r*d+n*f;if(0===h)return this.set(0,0,0,0,0,0,0,0,0);const m=1/h;return e[0]=l*m,e[1]=(n*u-c*r)*m,e[2]=(a*r-n*o)*m,e[3]=d*m,e[4]=(c*t-n*s)*m,e[5]=(n*i-a*t)*m,e[6]=f*m,e[7]=(r*s-u*t)*m,e[8]=(o*t-r*i)*m,this}transpose(){let e;const t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}makeRotationFromEuler(e){const t=this.elements,r=e.x,n=e.y,i=e.z,o=Math.cos(r),a=Math.sin(r),s=Math.cos(n),u=Math.sin(n),c=Math.cos(i),l=Math.sin(i);switch(e.order){case"XYZ":{const e=o*c,r=o*l,n=a*c,i=a*l;t[0]=s*c,t[3]=-s*l,t[6]=u,t[1]=r+n*u,t[4]=e-i*u,t[7]=-a*s,t[2]=i-e*u,t[5]=n+r*u,t[8]=o*s;break}case"YXZ":{const e=s*c,r=s*l,n=u*c,i=u*l;t[0]=e+i*a,t[3]=n*a-r,t[6]=o*u,t[1]=o*l,t[4]=o*c,t[7]=-a,t[2]=r*a-n,t[5]=i+e*a,t[8]=o*s;break}case"ZXY":{const e=s*c,r=s*l,n=u*c,i=u*l;t[0]=e-i*a,t[3]=-o*l,t[6]=n+r*a,t[1]=r+n*a,t[4]=o*c,t[7]=i-e*a,t[2]=-o*u,t[5]=a,t[8]=o*s;break}case"ZYX":{const e=o*c,r=o*l,n=a*c,i=a*l;t[0]=s*c,t[3]=n*u-r,t[6]=e*u+i,t[1]=s*l,t[4]=i*u+e,t[7]=r*u-n,t[2]=-u,t[5]=a*s,t[8]=o*s;break}case"YZX":{const e=o*s,r=o*u,n=a*s,i=a*u;t[0]=s*c,t[3]=i-e*l,t[6]=n*l+r,t[1]=l,t[4]=o*c,t[7]=-a*c,t[2]=-u*c,t[5]=r*l+n,t[8]=e-i*l;break}case"XZY":{const e=o*s,r=o*u,n=a*s,i=a*u;t[0]=s*c,t[3]=-l,t[6]=u*c,t[1]=e*l+i,t[4]=o*c,t[7]=r*l-n,t[2]=n*l-r,t[5]=a*c,t[8]=i*l+e;break}}return this}makeRotationFromQuaternion(e){const t=this.elements,r=e.x,n=e.y,i=e.z,o=e.w,a=r+r,s=n+n,u=i+i,c=r*a,l=r*s,d=r*u,f=n*s,h=n*u,m=i*u,p=o*a,v=o*s,g=o*u;return t[0]=1-(f+m),t[1]=l+g,t[2]=d-v,t[3]=l-g,t[4]=1-(c+m),t[5]=h+p,t[6]=d+v,t[7]=h-p,t[8]=1-(c+f),this}fromArray(e){for(let t=0;t<9;t++)this.elements[t]=e[t];return this}toArray(){const e=[],t=this.elements;return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e}clone(){return(new this.constructor).fromArray(this.elements)}}function w(e){return.01745329252*e}function _(e){return 57.2957795131*e}const b=(new h).set(0,1,0,0,-1,0,0,0,0,0,1,0,0,0,0,1),S=(new h).set(1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1);class M{constructor(e,t){this.uiManager=e,this.deviceManager=t}async init(t,r){try{this.useVocabulary=r.useVocabulary,this.nativeSDK=await f({preRun:n=>{r.mode===e.Image&&(this.useVocabulary&&n.FS_createPreloadedFile("/","orb.fbow","https://sdk.onirix.com/common/orb.fbow",!0,!1),n.FS_createPreloadedFile("/","classifier.otf",`https://studio.onirix.com/api/projects/self/targets/otf?token=${t}`,!0,!1))}}),this.buffer=this.nativeSDK._malloc(1228800),this.imageBuffer=this.nativeSDK._malloc(1228800),this.imuData=this.nativeSDK._malloc(72),this.cameraParamsStruct=this.nativeSDK.stackAlloc(40),this.frameLayoutStruct=this.nativeSDK.stackAlloc(28),this.nativeSDK.HEAPU32[this.cameraParamsStruct/4+0]=640,this.nativeSDK.HEAPU32[this.cameraParamsStruct/4+1]=480,this.nativeSDK.HEAPF64[this.cameraParamsStruct/8+1]=640,this.nativeSDK.HEAPF64[this.cameraParamsStruct/8+2]=640,this.nativeSDK.HEAPF64[this.cameraParamsStruct/8+3]=320,this.nativeSDK.HEAPF64[this.cameraParamsStruct/8+4]=240}catch(e){throw new n(e)}await this.checkLicense(t)}async checkLicense(e){try{const t=this.getStringBuffer(e),r=this.getStringBuffer(window.location.hostname),n=this.getStringBuffer(this.deviceManager.platform),o=this.getStringBuffer(this.deviceManager.device),a=await new Promise((e,i)=>{this.nativeSDK._OX_SetLicense([t],[r],[n],[o],this.nativeSDK.addFunction(t=>e(t),"vi"))});if(this.releaseStringBuffer(t),this.releaseStringBuffer(r),this.releaseStringBuffer(n),this.releaseStringBuffer(o),!a)throw new i("Invalid license")}catch(e){throw new i(e)}}startImageTracking(e,t,r){if(this.onDetected=e,this.onPose=t,this.onLost=r,this.useVocabulary){const e=this.getStringBuffer("orb.fbow");this.nativeSDK._OX_Initialize(this.cameraParamsStruct,[e]),this.releaseStringBuffer(e)}else this.nativeSDK._OX_Initialize(this.cameraParamsStruct,"");let n=this.getStringBuffer("classifier.otf");this.nativeSDK._OX_LoadImageClassifier([n]),this.releaseStringBuffer(n),this.nativeSDK._OX_StartImageDetection(2,this.nativeSDK.addFunction(e=>this.onDetected(this.nativeSDK.UTF8ToString(e)),"vi"),this.nativeSDK.addFunction(e=>{const t=this.nativeSDK.HEAPF64.subarray(e/8,e/8+16);let r=(new h).fromArray(t);r.multiply(S),r.invert(),this.uiManager.isPortrait()?(r.multiply(b),this.onPose(r.toArray())):this.onPose(r.toArray())},"vi"),this.nativeSDK.addFunction(e=>this.onLost(this.nativeSDK.UTF8ToString(e)),"vi"))}startQRCodeTracking(e,t,r){this.onDetected=e,this.onPose=t,this.onLost=r,this.nativeSDK._OX_Initialize(this.cameraParamsStruct,""),this.nativeSDK._OX_StartQRCodeDetection(2,this.nativeSDK.addFunction(e=>this.onDetected(this.nativeSDK.UTF8ToString(e)),"vi"),this.nativeSDK.addFunction(e=>{const t=this.nativeSDK.HEAPF64.subarray(e/8,e/8+16);let r=(new h).fromArray(t);r.multiply(S),r.invert(),this.uiManager.isPortrait()?(r.multiply(b),this.onPose(r.toArray())):this.onPose(r.toArray())},"vi"),this.nativeSDK.addFunction(e=>this.onLost(this.nativeSDK.UTF8ToString(e)),"vi"))}processFrame(e){this.nativeSDK.HEAPU8.set(e,this.buffer),this.nativeSDK.HEAPU32[this.frameLayoutStruct/4+0]=640,this.nativeSDK.HEAPU32[this.frameLayoutStruct/4+1]=480,this.nativeSDK.HEAPU32[this.frameLayoutStruct/4+2]=2560,this.nativeSDK.HEAPU32[this.frameLayoutStruct/4+3]=!1,this.nativeSDK.HEAPU32[this.frameLayoutStruct/4+4]=5,this.nativeSDK.HEAPU32[this.frameLayoutStruct/4+5]=0,this.nativeSDK.HEAPU32[this.frameLayoutStruct/4+6]=0,this.nativeSDK._OX_ProcessFrame(this.buffer,this.frameLayoutStruct)}stopImageTracking(){this.nativeSDK._OX_StopImageDetection()}stopQRCodeTracking(){this.nativeSDK._OX_StopQRCodeDetection()}addImage(e,t){this.nativeSDK.HEAPU8.set(t,this.imageBuffer),this.nativeSDK.HEAPU32[this.frameLayoutStruct/4+0]=640,this.nativeSDK.HEAPU32[this.frameLayoutStruct/4+1]=480,this.nativeSDK.HEAPU32[this.frameLayoutStruct/4+2]=2560,this.nativeSDK.HEAPU32[this.frameLayoutStruct/4+3]=!1,this.nativeSDK.HEAPU32[this.frameLayoutStruct/4+4]=5,this.nativeSDK.HEAPU32[this.frameLayoutStruct/4+5]=0,this.nativeSDK.HEAPU32[this.frameLayoutStruct/4+6]=0;const r=this.getStringBuffer(e);this.nativeSDK._OX_AddImage([r],this.imageBuffer,this.frameLayoutStruct),this.releaseStringBuffer(r)}destroy(){this.nativeSDK._OX_Destroy()}getStringBuffer(e){const t=this.nativeSDK.lengthBytesUTF8(e)+1;let r=this.nativeSDK._malloc(t);return this.nativeSDK.stringToUTF8(e,r,t),r}releaseStringBuffer(e){this.nativeSDK._free(e)}}class E{constructor(){}createRenderCanvas(){this.renderCanvas=document.createElement("canvas"),this.renderCanvas.id="renderer",document.body.appendChild(this.renderCanvas),this.renderCanvas.addEventListener("click",e=>{this.onCanvasTouch(e)})}setRenderCanvas(e){this.renderCanvas=e,this.renderCanvas.addEventListener("click",e=>{this.onCanvasTouch(e)})}removeRenderCanvas(){this.renderCanvas&&(this.renderCanvas.remove(),this.renderCanvas=null)}createVideoElement(e){let t=document.createElement("video");t.setAttribute("playsinline","true"),t.setAttribute("autoplay","true"),t.setAttribute("muted",""),this.videoCanvas=document.createElement("canvas"),this.videoCanvas.width=640,this.videoCanvas.height=480,this.videoContext=this.videoCanvas.getContext("2d"),t.srcObject=e,document.body.appendChild(t),this.videoElement=t;const r=this.videoElement.srcObject.getVideoTracks()[0].getSettings();this.videoSizeHorizontal=[Math.max(r.width,r.height),Math.min(r.width,r.height)],this.videoSizeVertical=[Math.min(r.width,r.height),Math.max(r.width,r.height)]}removeVideoElement(){this.videoElement&&(this.videoElement.remove(),this.videoElement=null)}fitVideoToScreen(){this.videoSize=window.innerWidth>window.innerHeight?this.videoSizeHorizontal:this.videoSizeVertical;let e=[],t=[];this.videoSize[0]/this.videoSize[1]>window.innerWidth/window.innerHeight?(t=[Math.floor(this.videoSize[0]*(window.innerHeight/this.videoSize[1])),window.innerHeight],e=[-(t[0]-window.innerWidth)/2,0]):(t=[window.innerWidth,Math.floor(this.videoSize[1]*(window.innerWidth/this.videoSize[0]))],e=[0,-(t[1]-window.innerHeight)/2]),document.body.style.setProperty("overflow","hidden"),this.videoElement.width=t[0],this.videoElement.height=t[1],this.videoElement.style.setProperty("position","absolute"),this.videoElement.style.setProperty("z-index","-1"),this.videoElement.style.setProperty("width",`${t[0]}px`),this.videoElement.style.setProperty("height",`${t[1]}px`),this.videoElement.style.setProperty("left",`${e[0]}px`),this.videoElement.style.setProperty("top",`${e[1]}px`),this.videoElement.style.setProperty("touch-action","none"),this.renderCanvas.width=t[0],this.renderCanvas.height=t[1],this.renderCanvas.style.setProperty("position","absolute","important"),this.renderCanvas.style.setProperty("width",`${t[0]}px`,"important"),this.renderCanvas.style.setProperty("height",`${t[1]}px`,"important"),this.renderCanvas.style.setProperty("left",`${e[0]}px`,"important"),this.renderCanvas.style.setProperty("top",`${e[1]}px`,"important"),this.renderCanvas.style.setProperty("touch-action","none","important")}async displayPermissionsDialog(e){return new Promise((t,r)=>{var n,i,o;(n=document.createElement("div")).id="ox-permissions-dialog",n.style.setProperty("position","absolute"),n.style.setProperty("z-index","999999"),n.style.setProperty("width","360px"),n.style.setProperty("height","180px"),n.style.setProperty("left","calc(50% - 180px)"),n.style.setProperty("top","calc(50% - 90px)"),n.style.setProperty("background-color","#FFFFFF"),n.style.setProperty("font-family","Arial, sans-serif"),document.body.appendChild(n),(i=document.createElement("span")).id="ox-permissions-dialog-message",i.innerText="This augmented reality experience requires access to your phone motion sensors. The browser may ask you for permissions.",i.style.setProperty("display","block"),i.style.setProperty("padding","30px 20px"),n.appendChild(i),(o=document.createElement("button")).id="ox-permissions-dialog-ok-button",o.innerText="Okay!",o.style.setProperty("display","block"),o.style.setProperty("margin","auto"),o.style.setProperty("background","#000000"),o.style.setProperty("color","#FFFFFF"),o.style.setProperty("border","none"),o.style.setProperty("border-radius","5px"),o.style.setProperty("padding","10px 20px"),n.appendChild(o),o.addEventListener("click",async function(i){i.stopPropagation(),n.remove();try{await e(),t()}catch(e){r(e)}})})}getVideoData(){let e;if(this.videoElement){if(this.isPortrait()){let e=320,r=240,n=480,i=640;var t=Math.PI/2;this.videoContext.translate(e,r),this.videoContext.rotate(t),this.videoContext.drawImage(this.videoElement,-r,-e,n,i),this.videoContext.rotate(-t),this.videoContext.translate(-e,-r)}else this.videoContext.drawImage(this.videoElement,0,0,640,480);e=this.videoContext.getImageData(0,0,640,480).data}return e}getVideoElement(){return this.videoElement}getCameraParameters(){return{fov:_(2*Math.atan(this.videoSize[1]/1280)),aspect:this.videoSize[0]/this.videoSize[1]}}isPortrait(){return window.innerWidth<window.innerHeight}setTouchListener(e){this.onTouch=e}onCanvasTouch(e){const t=new m,r=this.renderCanvas.getBoundingClientRect();t.x=(e.clientX-r.left)/r.width*2-1,t.y=-(e.clientY-r.top)/r.height*2+1,this.onTouch&&this.onTouch(t)}}class k{constructor(e){this.uiManager=e}async startCamera(){try{const e=await navigator.mediaDevices.enumerateDevices();let t=e[e.length-1];e.forEach(e=>{"videoinput"===e.kind&&(t=e)});const r={facingMode:"environment",width:640,height:480};t&&t.deviceId&&""!==t.deviceId&&(r.deviceId={exact:t.deviceId});const n=await navigator.mediaDevices.getUserMedia({video:r,audio:!1});this.stream=n,this.uiManager.createVideoElement(this.stream)}catch(e){throw new o(e)}}stopCamera(){this.stream&&(this.stream.getTracks().forEach(e=>{e.stop()}),this.uiManager.removeVideoElement())}}class x{constructor(e,t){this.uiManager=e,this.deviceManager=t}async start(e){var t=this;this.onPose=e;const r=async function(){if(t.onDeviceOrientationChange=t.onDeviceOrientationChange.bind(t),void 0!==window.DeviceOrientationEvent&&"function"==typeof window.DeviceOrientationEvent.requestPermission){let e;try{e=await window.DeviceOrientationEvent.requestPermission()}catch(e){throw new a("DeviceOrientation API is not supported")}if("granted"!=e)throw new a("DeviceOrientation permissions were rejected");window.addEventListener("deviceorientation",t.onDeviceOrientationChange)}else window.addEventListener("deviceorientation",t.onDeviceOrientationChange)};this.deviceManager.os===l.OS.iOS?await this.uiManager.displayPermissionsDialog(r):await r()}stop(){window.removeEventListener("deviceorientation",this.onDeviceOrientationChange)}onDeviceOrientationChange(e){if(e.alpha&&e.beta&&e.gamma){const t=w(e.alpha),r=w(e.beta),n=w(e.gamma);let i=new v(r,t,-n,"YXZ"),o=new g(-Math.sqrt(.5),0,0,Math.sqrt(.5)),a=new g;a.setFromEuler(i),a=a.multiply(o);let s=w(window.orientation||0);a.multiply((new g).setFromAxisAngle(new p(0,0,1),-s));let u=(new y).makeRotationFromQuaternion(a),c=new h;c.setRotation(u),this.onPose(c.toArray());const l=new p(0,0,0),d=new p(-u.elements[6],-u.elements[7],-u.elements[8]);this.emulatedHitTest(l,d)}}emulatedHitTest(e,t){if(this.onHitTestResult){const r=new p(0,1,0),n=new p(0,-1,0),i=t.dot(r);if(Math.abs(i)>1e-6){const o=n.sub(e).dot(r),a={position:e.add(t.multiplyScalar(o/i)),rotation:(new g).setFromEuler(0,1,0)};this.onHitTestResult(a)}}}setHitTestListener(e){this.onHitTestResult=e}}class F{constructor(e){this.uiManager=e}async isWebXRSupported(){let e=!1;return navigator.xr&&(e=await navigator.xr.isSessionSupported("immersive-ar")),e}async start(e,t){var r=this;this.onPose=e,this.onSessionEnd=t,await this.uiManager.displayPermissionsDialog(async function(){try{const e=await navigator.xr.requestSession("immersive-ar",{requiredFeatures:["hit-test","dom-overlay"],domOverlay:{root:document.body}});await r.onXRSessionStarted(e)}catch(e){throw new a(`error while initializing webXR API: ${e}`)}})}async stop(){this.xrSession&&(await this.xrSession.end(),this.xrSession=null,this.xrLastPose=null)}async onXRSessionStarted(e){let t=this.uiManager.renderCanvas.getContext("webgl");t||(t=this.uiManager.renderCanvas.getContext("webgl2")),t.getContextAttributes().xrCompatible||await t.makeXRCompatible(),this.xrContext=t,e.updateRenderState({baseLayer:new XRWebGLLayer(e,this.xrContext)}),this.xrLocalRefSpace=await e.requestReferenceSpace("local"),this.xrViewerRefSpace=await e.requestReferenceSpace("viewer"),this.xrHitTestSource=await e.requestHitTestSource({space:this.xrViewerRefSpace}),e.requestAnimationFrame(this.onXRFrame.bind(this)),e.addEventListener("selectstart",e=>{const t=e.inputSource.gamepad.axes;this.onTouch&&this.onTouch(new m(t[0],-t[1]))}),e.addEventListener("end",this.onSessionEnd),this.xrSession=e}onXRFrame(e,t){let r=t.session;r.requestAnimationFrame(this.onXRFrame.bind(this)),this.xrContext.bindFramebuffer(this.xrContext.FRAMEBUFFER,r.renderState.baseLayer.framebuffer);const n=t.getViewerPose(this.xrLocalRefSpace);if(n){this.onPose(n.transform.matrix);const e=null==this.xrLastPose;this.xrLastPose=n,e&&this.onResize&&this.onResize();const r=t.getHitTestResults(this.xrHitTestSource);if(r.length>0){const e=r[0].getPose(this.xrLocalRefSpace);this.onHitTestResult({position:e.transform.position,rotation:e.transform.orientation})}}}fitCanvasToXRViewport(){if(this.xrLastPose){const e=this.xrSession.renderState.baseLayer.getViewport(this.xrLastPose.views[0]);this.uiManager.renderCanvas.width=e.width,this.uiManager.renderCanvas.height=e.height}}getCameraParameters(){let e=60,t=9/16;if(this.xrSession&&this.xrLastPose){const r=this.xrLastPose.views[0].projectionMatrix;e=_(2*Math.atan(1/r[5])),t=r[5]/r[0]}return{fov:e,aspect:t}}setResizeListener(e){this.onResize=e}setTouchListener(e){this.onTouch=e}setHitTestListener(e){this.onHitTestResult=e}}class P{constructor(){this.eventListeners={},this.eventListenerCount=0}addEventListener(e,t){this.eventListeners[e]||(this.eventListeners[e]=[]);const r=this.eventListenerCount++;return this.eventListeners[e].push({id:r,func:t}),r}triggerEvent(e,t){this.eventListeners[e]&&this.eventListeners[e].map(e=>e.func(t))}removeEventListener(e){for(let t of Object.keys(this.eventListeners))for(let r=0;r<t.length;r++)if(t[r].id===e){t.splice(r,1);break}}}class A{constructor(e){this.authToken=e,this.deviceManager=new l,this.uiManager=new E,this.nativeManager=new M(this.uiManager,this.deviceManager),this.cameraManager=new k(this.uiManager),this.webXRManager=new F(this.uiManager),this.gyroManager=new x(this.uiManager,this.deviceManager),this.eventManager=new P}async init(t){this.usingWebXR=!1,this.stopSignal=!1;const r=this.readConfig(t);switch(this.mode=r.mode,await this.nativeManager.init(this.authToken,r),r.renderCanvas?this.uiManager.setRenderCanvas(r.renderCanvas):this.uiManager.createRenderCanvas(),this.mode){case e.Surface:const t=await this.webXRManager.isWebXRSupported();r.useWebXR&&t?(await this.webXRManager.start(this.onPose.bind(this),()=>this.stop()),this.webXRManager.setTouchListener(this.onTouch.bind(this)),this.webXRManager.setHitTestListener(this.onHitTestResult.bind(this)),this.webXRManager.setResizeListener(this.onResize.bind(this)),this.usingWebXR=!0):(this.gyroManager.start(this.onPose.bind(this)),this.gyroManager.setHitTestListener(this.onHitTestResult.bind(this)));break;case e.Image:this.nativeManager.startImageTracking(this.onDetected.bind(this),this.onPose.bind(this),this.onLost.bind(this)),this.processLoop();break;case e.QRCode:this.nativeManager.startQRCodeTracking(this.onDetected.bind(this),this.onPose.bind(this),this.onLost.bind(this)),this.processLoop()}return this.usingWebXR||(await this.cameraManager.startCamera(),this.uiManager.setTouchListener(this.onTouch.bind(this))),this.onResize(),window.addEventListener("resize",e=>this.onResize()),this.uiManager.renderCanvas}async stop(){switch(this.stopSignal=!0,this.mode){case e.Surface:this.usingWebXR?await this.webXRManager.stop():this.gyroManager.stop();break;case e.Image:this.nativeManager.stopImageTracking();break;case e.QRCode:this.nativeManager.stopQRCodeTracking()}this.nativeManager.destroy(),this.usingWebXR||this.cameraManager.stopCamera(),this.uiManager.renderCanvas.remove()}readConfig(e){if(!e)throw new n("A config object must be provided.");if(!e.mode)throw new n("'mode' is a required parameter.");if(e.mode<=0||e.mode>3)throw new n("Selected mode is not a valid tracking mode.");return Object.assign(r,e)}processLoop(){if(!this.stopSignal){const e=this.uiManager.getVideoData();e&&this.nativeManager.processFrame(e),requestAnimationFrame(()=>this.processLoop())}}getCameraParameters(){return this.usingWebXR?this.webXRManager.getCameraParameters():this.uiManager.getCameraParameters()}getCameraFeed(){return this.uiManager.getVideoElement()}async addImage(e){const t=await(r=e,new Promise((e,t)=>{const n=new Image;n.addEventListener("load",()=>e(n)),n.addEventListener("error",e=>t(e)),n.src=r}));var r;const n=document.createElement("canvas");n.width=640,n.height=480;const i=n.getContext("2d");i.drawImage(t,0,0);const o=i.getImageData(0,0,640,480).data;this.nativeManager.addImage("test",o)}onPose(e){this.eventManager.triggerEvent(t.OnPose,e)}onDetected(e){this.eventManager.triggerEvent(t.OnDetected,e)}onLost(e){this.eventManager.triggerEvent(t.OnLost,e)}onResize(){this.usingWebXR?this.webXRManager.fitCanvasToXRViewport():this.uiManager.fitVideoToScreen(),this.eventManager.triggerEvent(t.OnResize)}onTouch(e){this.eventManager.triggerEvent(t.OnTouch,e)}onHitTestResult(e){this.eventManager.triggerEvent(t.OnHitTestResult,e)}subscribe(e,t){return this.eventManager.addEventListener(e,t)}unsubscribe(e){this.eventManager.removeEventListener(e)}}A.TrackingMode=e,A.Events=t;export default A;