"use strict";window.g_aNi=class{constructor(e,a){this.g_aog=e,this.g_aNj=a,this.g_aNk=!1,this.g_anl=()=>this.g_Jj()}g_aNl(){}g_aNm(e,a,g,_){this.g_aog.g_aNn(this.g_aNj,e,a,g,_)}g_aNo(e,a,g,_){return this.g_aog.g_aNp(this.g_aNj,e,a,g,_)}g_aNq(e,a,g){this.g_aog.g_aNr()?this.g_aNm(e,a,g):this.g_aog.g_aNs()._OnMessageFromDOM({type:"event",component:this.g_aNj,handler:e,dispatchOpts:g||null,data:a,responseId:null})}g_aNt(e,a){this.g_aog.g_aNu(this.g_aNj,e,a)}g_aNv(e){for(const[a,g]of e)this.g_aNt(a,g)}g_aNw(){return this.g_aog}g_aNx(){return this.g_aNj}g_abF(){this.g_aNk||(this.g_aog.g_aNy(this.g_anl),this.g_aNk=!0)}g_abq(){this.g_aNk&&(this.g_aog.g_aNz(this.g_anl),this.g_aNk=!1)}g_Jj(){}},"use strict",window.g_aNA=class extends g_aNi{constructor(e,a){super(e,a),this.g_aNB=new Map,this.g_aNC=!0,this.g_aNt("create",e=>this.g_aND(e)),this.g_aNt("destroy",e=>this.g_aNE(e)),this.g_aNt("set-visible",e=>this.g_aNF(e)),this.g_aNt("update-position",e=>this.g_aNG(e)),this.g_aNt("update-state",e=>this.g_aDS(e)),this.g_aNt("focus",e=>this.g_aNH(e)),this.g_aNt("set-css-style",e=>this.g_aNI(e))}g_aNJ(e){this.g_aNC=!!e}g_aNK(e,g){this.g_aNt(e,e=>{const a=e.elementId,_=this.g_aNB.get(a);return g(_,e)})}g_aND(e){const a=e.elementId,g=this.g_acd(a,e);this.g_aNB.set(a,g),e.isVisible||(g.style.display="none"),this.g_aNC&&document.body.appendChild(g)}g_acd(){throw new Error("required override")}g_aNL(){}g_aNE(e){const a=e.elementId,g=this.g_aNB.get(a);this.g_aNL(g),this.g_aNC&&g.parentElement.removeChild(g),this.g_aNB.delete(a)}g_aNM(e,a,g){g||(g={}),g.elementId=a,this.g_aNm(e,g)}g_aNN(e,a,g){g||(g={}),g.elementId=a,this.g_aNq(e,g)}g_aNF(e){if(this.g_aNC){const a=this.g_aNB.get(e.elementId);a.style.display=e.isVisible?"":"none"}}g_aNG(e){if(this.g_aNC){const a=this.g_aNB.get(e.elementId);a.style.left=e.left+"px",a.style.top=e.top+"px",a.style.width=e.width+"px",a.style.height=e.height+"px";const g=e.fontSize;null!==g&&(a.style.fontSize=g+"em")}}g_aDS(e){const a=this.g_aNB.get(e.elementId);this.g_aNO(a,e)}g_aNO(){throw new Error("required override")}g_aNH(e){const a=this.g_aNB.get(e.elementId);e.focus?a.focus():a.blur()}g_aNI(e){const a=this.g_aNB.get(e.elementId);a.style[e.prop]=e.val}g_aNP(e){return this.g_aNB.get(e)}},"use strict";{function _(e){return new Promise((a,g)=>{const _=document.createElement("script");_.onload=a,_.onerror=g,_.async=!1,_.src=e,document.head.appendChild(_)})}async function t(e){const a=await n(e),g=new TextDecoder("utf-8");return g.decode(a)}function n(e){return new Promise((g,_)=>{const a=new FileReader;a.onload=e=>g(e.target.result),a.onerror=e=>_(e),a.readAsArrayBuffer(e)})}const a=/(iphone|ipod|ipad)/i.test(navigator.userAgent);let o=new Audio;const r={"audio/webm; codecs=opus":!!o.canPlayType("audio/webm; codecs=opus"),"audio/ogg; codecs=opus":!!o.canPlayType("audio/ogg; codecs=opus"),"audio/webm; codecs=vorbis":!!o.canPlayType("audio/webm; codecs=vorbis"),"audio/ogg; codecs=vorbis":!!o.canPlayType("audio/ogg; codecs=vorbis"),"audio/mp4":!!o.canPlayType("audio/mp4"),"audio/mpeg":!!o.canPlayType("audio/mpeg")};o=null;const e=[];let g=0;window.RealFile=window.File;const s=[],i=new Map,u=new Map;let p=0;const l=[];self.g_aNQ=function(e){if("function"!=typeof e)throw new Error("runOnStartup called without a function");l.push(e)},window.g_aNR=class o{constructor(e){this.g_aNS=e.g_aNT,this.g_aNU=null,this.g_amk="",this.g_aNV=e.g_aNW,this.g_aNX={},this.g_aNY=null,this.g_aNZ=null,this.g_aN_=[],this.g_aN$=null,this.g_akl=null,this.g_aoa=null,this.g_akU=-1,this.g_aOa=()=>this.g_aOb(),this.g_aOc=[],this.g_amp=e.g_aOd,"cordova"===this.g_amp&&this.g_aNS&&(console.warn("[C3 runtime] Worker mode is enabled and supported, but is disabled in Cordova due to crbug.com/939775. Reverting to DOM mode."),this.g_aNS=!1),/CrOS/.test(navigator.userAgent)&&(console.warn("[C3 runtime] Worker mode is enabled and supported, but is disabled in Chrome OS due to reports of crashes. Reverting to DOM mode."),this.g_aNS=!1),this.g_aOe=!1,this.g_aOf=null,("html5"===this.g_amp||"playable-ad"===this.g_amp)&&"file"===location.protocol.substr(0,4)&&alert("Exported games won't work until you upload them. (When running on the file: protocol, browsers block many features from working for security reasons.)"),this.g_aNu("runtime","cordova-fetch-local-file",e=>this.g_aOg(e)),this.g_aNu("runtime","create-job-worker",e=>this.g_aOh(e)),"cordova"===this.g_amp?document.addEventListener("deviceready",()=>this.g_aat(e)):this.g_aat(e)}g_em(){this.g_aOi(),this.g_aNU&&(this.g_aNU.onmessage=null,this.g_aNU=null),this.g_aNY&&(this.g_aNY.terminate(),this.g_aNY=null),this.g_aNZ&&(this.g_aNZ.g_em(),this.g_aNZ=null),this.g_akl&&(this.g_akl.parentElement.removeChild(this.g_akl),this.g_akl=null)}g_aOj(){return this.g_akl}g_fg(){return this.g_amk}g_aNr(){return this.g_aNS}g_apG(){return this.g_amp}g_aoy(){return"cordova"===this.g_amp&&a}g_aOk(){return"cordova"===this.g_amp&&!1===a}async g_aat(e){if("playable-ad"===this.g_amp){this.g_aOf=self.c3_base64files,await this.g_aOl();for(let a=0,g=e.g_aOm.length;athis._OnMessageFromRuntime(e.data),window.c3_addPortMessageHandler&&window.c3_addPortMessageHandler(e=>this.g_aOp(e)),this.g_aoa=new self.g_aOq(this),await this.g_aoa.g_ahs(),this.g_aOr(),"object"==typeof window.StatusBar&&window.StatusBar.hide(),"object"==typeof window.AndroidFullScreen&&window.AndroidFullScreen.immersiveMode(),await this.g_aOs(),this.g_aNS?await this.g_aOt(e,a.port2):await this.g_aOu(e,a.port2)}g_aOv(e){return this.g_aNX.hasOwnProperty(e)?this.g_aNX[e]:e.endsWith("../../../workermain.html")&&this.g_aNX.hasOwnProperty("workermain.html")?this.g_aNX["workermain.js"]:"playable-ad"===this.g_amp&&this.g_aOf.hasOwnProperty(e.toLowerCase())?URL.createObjectURL(this.g_aOf[e.toLowerCase()]):e}async g_aOw(g,a,_){if(g.startsWith("blob:"))return new Worker(g,_);if(this.g_aoy()){const a=await this.g_As(this.g_aNV+g),e=new Blob([a],{type:"application/javascript"});return new Worker(URL.createObjectURL(e),_)}const t=new URL(g%2ca.html),n=location.origin!==t.origin;if(n){const e=await fetch(t);if(!e.ok)throw new Error("failed to fetch worker script");const a=await e.blob();return new Worker(URL.createObjectURL(a),_)}return new Worker(t,_)}g_aOr(){if(this.g_aoy()){const g=document.documentElement.style,a=document.body.style,_=window.innerWidthnew e(this)),this.g_aOF(),self.c3_callFunction=(e,a)=>this.g_aN$.g_SY(e,a),"preview"===this.g_amp&&(self.goToLastErrorScript=()=>this.g_aNn("runtime","go-to-last-error-script"))}async g_aOu(a,g){this.g_akl=document.createElement("canvas"),this.g_akl.style.display="none",document.body.appendChild(this.g_akl),window.c3canvas=this.g_akl,this.g_aN_=s.map(e=>new e(this)),this.g_aOF();const t=a.g_aOm.map(e=>new URL(e%2cthis.html).toString());if(Array.isArray(a.g_aOC)&&t.unshift(...a.g_aOC),await Promise.all(t.map(a=>_(a))),a.g_aOG&&0_(a[1]))),Object.values(e).some(e=>!e))return void self.setTimeout(()=>this.g_aOH(e),100)}catch(g){return console.error("[Preview] Error loading project scripts: ",g),void self.setTimeout(()=>this.g_aOH(e),100)}}if("preview"===this.g_amp&&"object"!=typeof self.g_aQ.g_aNh)return console.error("[C3 runtime] Failed to load JavaScript code used in events. Check all your JavaScript code has valid syntax."),void alert("Failed to load JavaScript code used in events. Check all your JavaScript code has valid syntax.");const n=Object.assign(this.g_aOx(a),{isInWorker:!1,messagePort:g,canvas:this.g_akl,runOnStartupFunctions:l});this.g_aNZ=self.C3_CreateRuntime(n),await self.C3_InitRuntime(this.g_aNZ,n)}g_aOH(e){const a=Object.entries(e).filter(e=>!e[1]).map(e=>e[0]),g=`Failed to load project script '${a[0]}'. Check all your JavaScript code has valid syntax.`;console.error("[Preview] "+g),alert(g)}async g_aOh(){const e=await this.g_aoa.g_aOI();return{outputPort:e,transferables:[e]}}g_aNs(){if(this.g_aNS)throw new Error("not available in worker mode");return this.g_aNZ}g_aNn(g,a,_,t,n){this.g_aNU.postMessage({type:"event",component:g,handler:a,dispatchOpts:t||null,data:_,responseId:null},this.g_aOe?void 0:n)}g_aNp(_,a,t,n,i){const e=p++,o=new Promise((g,a)=>{u.set(e,{resolve:g,reject:a})});return this.g_aNU.postMessage({type:"event",component:_,handler:a,dispatchOpts:n||null,data:t,responseId:e},this.g_aOe?void 0:i),o}["_OnMessageFromRuntime"](e){const a=e.type;if("event"===a)this.g_aOJ(e);else if("result"===a)this.g_aOK(e);else if("runtime-ready"===a)this.g_aOL();else if("alert"===a)alert(e.message);else throw new Error(`unknown message '${a}'`)}g_aOJ(_){const t=_.component,n=_.handler,a=_.data,o=_.responseId,e=i.get(t);if(!e)return void console.warn(`[DOM] No event handlers for component '${t}'`);const r=e.get(n);if(!r)return void console.warn(`[DOM] No handler '${n}' for component '${t}'`);let g=null;try{g=r(a)}catch(e){return console.error(`Exception in '${t}' handler '${n}':`,e),void(null!==o&&this.g_aOM(o,!1,e.toString()))}null!==o&&(g&&g.then?g.then(e=>this.g_aOM(o,!0,e)).catch(e=>{console.error(`Rejection from '${t}' handler '${n}':`,e),this.g_aOM(o,!1,e.toString())}):this.g_aOM(o,!0,g))}g_aOM(e,a,g){let _;g&&g.transferables&&(_=g.transferables),this.g_aNU.postMessage({type:"result",responseId:e,isOk:a,result:g},_)}g_aOK(g){const a=g.responseId,_=g.isOk,t=g.result,n=u.get(a);_?n.resolve(t):n.reject(t),u.delete(a)}g_aNu(e,a,g){let _=i.get(e);if(_||(_=new Map,i.set(e,_)),_.has(a))throw new Error(`[DOM] Component '${e}' already has handler '${a}'`);_.set(a,g)}static g_aON(e){if(s.includes(e))throw new Error("DOM handler already added");s.push(e)}g_aOF(){for(const e of this.g_aN_)if("runtime"===e.g_aNx())return void(this.g_aN$=e);throw new Error("cannot find runtime DOM handler")}g_aOp(e){this.g_aNn("debugger","message",e)}g_aOL(){for(const e of this.g_aN_)e.g_aNl()}static g_alw(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement)}async g_aOO(){return await this.g_aNp("runtime","get-remote-preview-status-info")}g_aNy(e){this.g_aOc.push(e),this.g_aOP()}g_aNz(e){const a=this.g_aOc.indexOf(e);if(-1===a)throw new Error("invalid callback");this.g_aOc.splice(a,1),this.g_aOc.length||this.g_aOi()}g_aOP(){-1===this.g_akU&&this.g_aOc.length&&(this.g_akU=requestAnimationFrame(this.g_aOa))}g_aOi(){-1!==this.g_akU&&(cancelAnimationFrame(this.g_akU),this.g_akU=-1)}g_aOb(){this.g_akU=-1;for(const e of this.g_aOc)e();this.g_aOP()}g_aOQ(e){this.g_aN$.g_aOQ(e)}g_aOR(e){this.g_aN$.g_aOR(e)}g_aOS(){this.g_aN$.g_aOS()}g_aEC(e){this.g_aN$.g_aEC(e)}g_AP(e){return!!r[e]}async g_adu(e){const a=await this.g_aNp("runtime","opus-decode",{arrayBuffer:e},null,[e]);return new Float32Array(a)}g_fS(e){return /^(?:[a-z]+:)?\/\//.test(e)||"data:"===e.substr(0,5)||"blob:"===e.substr(0,5)}g_fT(e){return!this.g_fS(e)}async g_aOg(e){const a=e.filename;switch(e.as){case"text":return await this.g_At(a);case"buffer":return await this.g_As(a);default:throw new Error("unsupported type");}}g_aOT(e){const g=window.cordova.file.applicationDirectory+"www/"+e.toLowerCase();return new Promise((e,a)=>{window.resolveLocalFileSystemURL(g,g=>{g.file(e,a)},a)})}async g_At(e){const a=await this.g_aOT(e);return await t(a)}g_aOU(){if(e.length&&!(8<=g)){g++;const _=e.shift();this.g_aOV(_.filename,_.g_aOW,_.g_aOX)}}g_As(_){return new Promise((t,n)=>{e.push({filename:_,g_aOW:e=>{g--,this.g_aOU(),t(e)},g_aOX:e=>{g--,this.g_aOU(),n(e)}}),this.g_aOU()})}async g_aOV(g,a,e){try{const _=await this.g_aOT(g),t=await n(_);a(t)}catch(g){e(g)}}async g_aOl(){const e=[];for(const[a,g]of Object.entries(this.g_aOf))e.push(this.g_aOY(a,g));await Promise.all(e)}async g_aOY(e,a){if("object"==typeof a)this.g_aOf[e]=new Blob([a.str],{type:a.type});else{const g=await fetch(a),_=await g.blob();this.g_aOf[e]=_}}g_aOs(){let e=null;const g=new Promise(a=>e=a),_=new ArrayBuffer(1),t=new MessageChannel;return t.port2.onmessage=a=>{a.data&&a.data.arrayBuffer||(this.g_aOe=!0,console.warn("MessageChannel transfers determined to be broken. Disabling transferables.")),e()},t.port1.postMessage({arrayBuffer:_},[_]),g}}}{function _(e){return e.sourceCapabilities&&e.sourceCapabilities.firesTouchEvents||e.originalEvent&&e.originalEvent.sourceCapabilities&&e.originalEvent.sourceCapabilities.firesTouchEvents}function t(e){return new Promise((a,g)=>{const _=document.createElement("link");_.onload=()=>a(_),_.onerror=e=>g(e),_.rel="stylesheet",_.href=e,document.head.appendChild(_)})}function a(e){return new Promise((a,g)=>{const _=new Image;_.onload=()=>a(_),_.onerror=e=>g(e),_.src=e})}async function r(e){const g=URL.createObjectURL(e);try{return await a(g)}finally{URL.revokeObjectURL(g)}}function s(e){do{if(e.parentNode&&e.hasAttribute("contenteditable"))return!0;e=e.parentNode}while(e);return!1}function d(e){const a=e.target.tagName.toLowerCase();l.has(a)&&e.preventDefault()}function e(e){(e.metaKey||e.ctrlKey)&&e.preventDefault()}function g(){try{return window.parent&&window.parent.document.hasFocus()}catch(e){return!1}}const u=new Map([["OSLeft","MetaLeft"],["OSRight","MetaRight"]]),i={dispatchRuntimeEvent:!0,dispatchUserScriptEvent:!0},p={dispatchUserScriptEvent:!0},c={dispatchRuntimeEvent:!0},l=new Set(["canvas","body","html"]);self.C3_RasterSvgImage=async function(g,a,_){const t=document.createElement("canvas");t.width=a,t.height=_;const n=t.getContext("2d");return n.drawImage(g,0,0,a,_),t};let T=!1;document.addEventListener("pause",()=>T=!0),document.addEventListener("resume",()=>T=!1);const n=class extends g_aNi{constructor(g){super(g,"runtime"),this.g_aOZ=!0,this.g_aO_=-1,this.g_aO$="any",this.g_aPa=!1,this.g_aPb=!1,this.g_aPc=null,g.g_aNu("canvas","update-size",e=>this.g_aPd(e)),g.g_aNu("runtime","invoke-download",e=>this.g_aPe(e)),g.g_aNu("runtime","raster-svg-image",e=>this.g_aPf(e)),g.g_aNu("runtime","set-target-orientation",e=>this.g_aPg(e)),g.g_aNu("runtime","register-sw",()=>this.g_aPh()),g.g_aNu("runtime","post-to-debugger",e=>this.g_aPi(e)),g.g_aNu("runtime","go-to-script",e=>this.g_aPi(e)),g.g_aNu("runtime","before-start-ticking",()=>this.g_aPj()),g.g_aNu("runtime","debug-highlight",e=>this.g_aPk(e)),g.g_aNu("runtime","enable-device-orientation",()=>this.g_aPl()),g.g_aNu("runtime","enable-device-motion",()=>this.g_aPm()),g.g_aNu("runtime","add-stylesheet",e=>this.g_aPn(e));const _=new Set(["input","textarea","datalist"]);window.addEventListener("contextmenu",e=>{const a=e.target,g=a.tagName.toLowerCase();_.has(g)||s(a)||e.preventDefault()}),window.addEventListener("selectstart",d),window.addEventListener("gesturehold",d),window.addEventListener("touchstart",d,{passive:!1});const a=g.g_aOj();"undefined"==typeof PointerEvent?a.addEventListener("touchstart",d):(window.addEventListener("pointerdown",d,{passive:!1}),a.addEventListener("pointerdown",d)),this.g_aPo=0,window.addEventListener("mousedown",e=>{1===e.button&&e.preventDefault()}),window.addEventListener("mousewheel",e,{passive:!1}),window.addEventListener("wheel",e,{passive:!1}),window.addEventListener("resize",()=>this.g_alj()),this.g_aPp=new Set,this.g_aPq=new WeakSet,this.g_aDK=!1}g_aPj(){return document.addEventListener("visibilitychange",()=>this.g_aoc(document.hidden)),document.addEventListener("pause",()=>this.g_aoc(!0)),document.addEventListener("resume",()=>this.g_aoc(!1)),{isSuspended:!!(document.hidden||T)}}g_aNl(){window.addEventListener("focus",()=>this.g_aPr("window-focus")),window.addEventListener("blur",()=>{this.g_aPr("window-blur",{parentHasFocus:g()}),this.g_aPo=0}),window.addEventListener("fullscreenchange",()=>this.g_alk()),window.addEventListener("webkitfullscreenchange",()=>this.g_alk()),window.addEventListener("mozfullscreenchange",()=>this.g_alk()),window.addEventListener("fullscreenerror",e=>this.g_all(e)),window.addEventListener("webkitfullscreenerror",e=>this.g_all(e)),window.addEventListener("mozfullscreenerror",e=>this.g_all(e)),window.addEventListener("keydown",e=>this.g_aPs("keydown",e)),window.addEventListener("keyup",e=>this.g_aPs("keyup",e)),window.addEventListener("dblclick",e=>this.g_aPt("dblclick",e,i)),window.addEventListener("wheel",e=>this.g_aPu("wheel",e)),"undefined"==typeof PointerEvent?(window.addEventListener("mousedown",e=>this.g_aPv("pointerdown",e)),window.addEventListener("mousemove",e=>this.g_aPv("pointermove",e)),window.addEventListener("mouseup",e=>this.g_aPv("pointerup",e)),window.addEventListener("touchstart",e=>this.g_aPw("pointerdown",e)),window.addEventListener("touchmove",e=>this.g_aPw("pointermove",e)),window.addEventListener("touchend",e=>this.g_aPw("pointerup",e)),window.addEventListener("touchcancel",e=>this.g_aPw("pointercancel",e))):(window.addEventListener("pointerdown",e=>this.g_aPx("pointerdown",e)),window.addEventListener("pointermove",e=>this.g_aPx("pointermove",e)),window.addEventListener("pointerup",e=>this.g_aPx("pointerup",e)),window.addEventListener("pointercancel",e=>this.g_aPx("pointercancel",e)));const e=()=>this.g_aOS();window.addEventListener("pointerup",e,!0),window.addEventListener("touchend",e,!0),window.addEventListener("click",e,!0),window.addEventListener("keydown",e,!0),window.addEventListener("gamepadconnected",e,!0)}g_aPr(e,a){this.g_aNm(e,a||null,c)}g_alj(){const e=window.innerWidth,a=window.innerHeight;this.g_aPr("window-resize",{innerWidth:e,innerHeight:a,devicePixelRatio:window.devicePixelRatio}),this.g_aog.g_aoy()&&(-1!==this.g_aO_&&clearTimeout(this.g_aO_),this.g_aPy(e,a,0))}g_aPz(e,a,g){-1!==this.g_aO_&&clearTimeout(this.g_aO_),this.g_aO_=setTimeout(()=>this.g_aPy(e,a,g),48)}g_aPy(g,a,_){const t=window.innerWidth,n=window.innerHeight;this.g_aO_=-1,t!=g||n!=a?this.g_aPr("window-resize",{innerWidth:t,innerHeight:n,devicePixelRatio:window.devicePixelRatio}):10>_&&this.g_aPz(t,n,_+1)}g_aPg(e){this.g_aO$=e.targetOrientation}g_aPA(){const e=this.g_aO$;if(screen.orientation&&screen.orientation.lock)screen.orientation.lock(e).catch(e=>console.warn("[Construct 3] Failed to lock orientation: ",e));else try{let a=!1;screen.lockOrientation?a=screen.lockOrientation(e):screen.webkitLockOrientation?a=screen.webkitLockOrientation(e):screen.mozLockOrientation?a=screen.mozLockOrientation(e):screen.msLockOrientation&&(a=screen.msLockOrientation(e)),a||console.warn("[Construct 3] Failed to lock orientation")}catch(e){console.warn("[Construct 3] Failed to lock orientation: ",e)}}g_alk(){const e=g_aNR.g_alw();e&&"any"!==this.g_aO$&&this.g_aPA(),this.g_aNm("fullscreenchange",{isFullscreen:e,innerWidth:window.innerWidth,innerHeight:window.innerHeight})}g_all(e){console.warn("[Construct 3] Fullscreen request failed: ",e),this.g_aNm("fullscreenerror",{isFullscreen:g_aNR.g_alw(),innerWidth:window.innerWidth,innerHeight:window.innerHeight})}g_aoc(e){e?this.g_aog.g_aOi():this.g_aog.g_aOP(),this.g_aNm("visibilitychange",{hidden:e})}g_aPs(e,a){const g=u.get(a.code)||a.code;this.g_aNq(e,{code:g,key:a.key,which:a.which,repeat:a.repeat,altKey:a.altKey,ctrlKey:a.ctrlKey,metaKey:a.metaKey,shiftKey:a.shiftKey,timeStamp:a.timeStamp},i)}g_aPu(e,a){this.g_aNm(e,{clientX:a.clientX,clientY:a.clientY,deltaX:a.deltaX,deltaY:a.deltaY,deltaZ:a.deltaZ,deltaMode:a.deltaMode,timeStamp:a.timeStamp},i)}g_aPt(a,e,g){_(e)||("mousedown"===a&&window!==window.top&&window.focus(),this.g_aNq(a,{button:e.button,buttons:e.buttons,clientX:e.clientX,clientY:e.clientY,timeStamp:e.timeStamp},g))}g_aPv(a,e){if(!_(e)){"pointerdown"===a&&window!==window.top&&window.focus();const g=this.g_aPo;"pointerdown"===a&&0!==g?a="pointermove":"pointerup"==a&&0!==e.buttons&&(a="pointermove"),this.g_aNq(a,{pointerId:1,pointerType:"mouse",button:e.button,buttons:e.buttons,lastButtons:g,clientX:e.clientX,clientY:e.clientY,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,timeStamp:e.timeStamp},i),this.g_aPo=e.buttons,this.g_aPt(e.type,e,p)}}g_aPx(e,a){"pointerdown"===e&&window!==window.top&&window.focus();let g=0;if("mouse"===a.pointerType&&(g=this.g_aPo),this.g_aNq(e,{pointerId:a.pointerId,pointerType:a.pointerType,button:a.button,buttons:a.buttons,lastButtons:g,clientX:a.clientX,clientY:a.clientY,width:a.width||0,height:a.height||0,pressure:a.pressure||0,tangentialPressure:a.tangentialPressure||0,tiltX:a.tiltX||0,tiltY:a.tiltY||0,twist:a.twist||0,timeStamp:a.timeStamp},i),"mouse"===a.pointerType){let g="mousemove";"pointerdown"===e?g="mousedown":"pointerup"==e&&(g="pointerup"),this.g_aPt(g,a,p),this.g_aPo=a.buttons}}g_aPw(e,a){"pointerdown"===e&&window!==window.top&&window.focus();for(let g=0,_=a.changedTouches.length;g<_;++g){const _=a.changedTouches[g];this.g_aNq(e,{pointerId:_.identifier,pointerType:"touch",button:0,buttons:0,lastButtons:0,clientX:_.clientX,clientY:_.clientY,width:2*(_.radiusX||_.webkitRadiusX||0),height:2*(_.radiusY||_.webkitRadiusY||0),pressure:_.force||_.webkitForce||0,tangentialPressure:0,tiltX:0,tiltY:0,twist:_.rotationAngle||0,timeStamp:a.timeStamp},i)}}g_aPl(){this.g_aPa||(this.g_aPa=!0,window.addEventListener("deviceorientation",e=>this.g_aAC(e)))}g_aPm(){this.g_aPb||(this.g_aPb=!0,window.addEventListener("devicemotion",e=>this.g_aAD(e)))}g_aAC(e){this.g_aNm("deviceorientation",{alpha:e.alpha||0,beta:e.beta||0,gamma:e.gamma||0,timeStamp:e.timeStamp},i)}g_aAD(_){let a=null;const t=_.acceleration;t&&(a={x:t.x||0,y:t.y||0,z:t.z||0});let n=null;const o=_.accelerationIncludingGravity;o&&(n={x:o.x||0,y:o.y||0,z:o.z||0});let e=null;const r=_.rotationRate;r&&(e={alpha:r.alpha||0,beta:r.beta||0,gamma:r.gamma||0}),this.g_aNm("devicemotion",{acceleration:a,accelerationIncludingGravity:n,rotationRate:e,interval:_.interval,timeStamp:_.timeStamp},i)}g_aPd(e){const a=this.g_aNw(),g=a.g_aOj();g.style.width=e.styleWidth+"px",g.style.height=e.styleHeight+"px",g.style.marginLeft=e.marginLeft+"px",g.style.marginTop=e.marginTop+"px",a.g_aOr(),this.g_aOZ&&(g.style.display="",this.g_aOZ=!1)}g_aPe(g){const _=g.url,t=g.filename,n=document.createElement("a"),e=document.body;n.textContent=t,n.href=_,n.download=t,e.appendChild(n),n.click(),e.removeChild(n)}async g_aPf(_){const a=_.blob,t=_.width,n=_.height,e=await r(a),i=await self.C3_RasterSvgImage(e,t,n);return await createImageBitmap(i)}async g_aPn(e){await t(e.url)}g_aOS(){const e=[...this.g_aPp];if(this.g_aPp.clear(),!this.g_aDK)for(const g of e){const e=g.play();e&&e.catch(()=>{this.g_aPq.has(g)||this.g_aPp.add(g)})}}g_aOQ(e){if("function"!=typeof e.play)throw new Error("missing play function");this.g_aPq.delete(e);let a;try{a=e.play()}catch(a){return void this.g_aPp.add(e)}a&&a.catch(()=>{this.g_aPq.has(e)||this.g_aPp.add(e)})}g_aOR(e){this.g_aPp.delete(e),this.g_aPq.add(e)}g_aEC(e){this.g_aDK=!!e}g_aPk(e){const a=e.show;if(!a)return void(this.g_aPc&&(this.g_aPc.style.display="none"));this.g_aPc||(this.g_aPc=document.createElement("div"),this.g_aPc.id="inspectOutline",document.body.appendChild(this.g_aPc));const g=this.g_aPc;g.style.display="",g.style.left=e.left-1+"px",g.style.top=e.top-1+"px",g.style.width=e.width+2+"px",g.style.height=e.height+2+"px",g.textContent=e.name}g_aPh(){window.C3_RegisterSW&&window.C3_RegisterSW()}g_aPi(e){window.c3_postToMessagePort&&(e.from="runtime",window.c3_postToMessagePort(e))}g_SY(e,a){return this.g_aNo("js-invoke-function",{name:e,params:a})}};g_aNR.g_aON(n)}{const e=document.currentScript.src;self.g_aOq=class{constructor(a){this.g_aPB=a,this.g_amk=e?e.substr(0,e.lastIndexOf("../../../index.html")+1):a.g_fg(),this.g_aql=Math.min(navigator.hardwareConcurrency||2,16),this.g_aPC=null,this.g_aPD=[],this.g_aqj=null,this.g_aPE=null}async g_ahs(){if(this.g_aPF)throw new Error("already initialised");this.g_aPF=!0;const e=this.g_aPB.g_aOv("dispatchworker.html");this.g_aPC=await this.g_aPB.g_aOw(e,this.g_amk,{name:"DispatchWorker"});const a=new MessageChannel;this.g_aqj=a.port1,this.g_aPC.postMessage({type:"_init","in-port":a.port2},[a.port2]),this.g_aPE=await this.g_aOI()}async g_aOI(){const g=this.g_aPD.length,a=this.g_aPB.g_aOv("jobworker.html"),_=await this.g_aPB.g_aOw(a,this.g_amk,{name:"JobWorker"+g}),t=new MessageChannel,n=new MessageChannel;return this.g_aPC.postMessage({type:"_addJobWorker",port:t.port1},[t.port1]),_.postMessage({type:"init",number:g,"dispatch-port":t.port2,"output-port":n.port2},[t.port2,n.port2]),this.g_aPD.push(_),n.port1}g_aOA(){return{inputPort:this.g_aqj,outputPort:this.g_aPE,maxNumWorkers:this.g_aql}}g_aOE(){return[this.g_aqj,this.g_aPE]}}}if("use strict",window.C3_IsSupported){"undefined"!=typeof OffscreenCanvas;window.c3_runtimeInterface=new g_aNR({g_aNT:!1,g_aOB:"workermain.js",g_aOm:["scripts/c3runtime.js"],g_aNW:"scripts/",g_aOC:[],g_aOd:"html5"})}{const e=class extends g_aNi{constructor(e){super(e,"touch"),this.g_aNt("request-permission",e=>this.g_aPG(e))}async g_aPG(e){const a=e.type;let g=!0;0===a?g=await this.g_aPH():1===a&&(g=await this.g_aPI()),this.g_aNm("permission-result",{type:a,result:g})}async g_aPH(){if(!self.DeviceOrientationEvent||!self.DeviceOrientationEvent.requestPermission)return!0;try{const e=await self.DeviceOrientationEvent.requestPermission();return"granted"===e}catch(e){return console.warn("[Touch] Failed to request orientation permission: ",e),!1}}async g_aPI(){if(!self.DeviceMotionEvent||!self.DeviceMotionEvent.requestPermission)return!0;try{const e=await self.DeviceMotionEvent.requestPermission();return"granted"===e}catch(e){return console.warn("[Touch] Failed to request motion permission: ",e),!1}}};g_aNR.g_aON(e)}{const e=class extends g_aNi{constructor(e){super(e,"browser"),this.g_amp="",this.g_aNt("get-initial-state",e=>this.g_aPJ(e)),this.g_aNt("ready-for-sw-messages",()=>this.g_aPK()),this.g_aNt("alert",e=>this.g_aPL(e)),this.g_aNt("close",()=>this.g_aPM()),this.g_aNt("set-focus",e=>this.g_aNH(e)),this.g_aNt("vibrate",e=>this.g_aPN(e)),this.g_aNt("lock-orientation",e=>this.g_aPO(e)),this.g_aNt("unlock-orientation",()=>this.g_aPP()),this.g_aNt("navigate",e=>this.g_aPQ(e)),this.g_aNt("request-fullscreen",e=>this.g_aPR(e)),this.g_aNt("exit-fullscreen",()=>this.g_aPS()),window.addEventListener("online",()=>this.g_aCb(!0)),window.addEventListener("offline",()=>this.g_aCb(!1)),document.addEventListener("backbutton",()=>this.g_aPT()),"undefined"!=typeof Windows&&Windows.UI.Core.SystemNavigationManager.getForCurrentView().addEventListener("backrequested",e=>this.g_aPU(e))}g_aPJ(e){return this.g_amp=e.exportType,{location:location.toString(),isOnline:!!navigator.onLine,referrer:document.referrer,title:document.title,isCookieEnabled:!!navigator.cookieEnabled,screenWidth:screen.width,screenHeight:screen.height,windowOuterWidth:window.outerWidth,windowOuterHeight:window.outerHeight,isScirraArcade:"undefined"!=typeof window.is_scirra_arcade}}g_aPK(){window.C3_RegisterSW&&window.OfflineClientInfo&&window.OfflineClientInfo.SetMessageCallback(e=>this.g_aNm("sw-message",e.data))}g_aCb(e){this.g_aNm("online-state",{isOnline:e})}g_aPT(){this.g_aNm("backbutton")}g_aPU(e){e.handled=!0,this.g_aNm("backbutton")}g_aPV(){return"nwjs"===this.g_amp?nw.Window.get():null}g_aPL(e){alert(e.message)}g_aPM(){navigator.app&&navigator.app.exitApp?navigator.app.exitApp():navigator.device&&navigator.device.exitApp?navigator.device.exitApp():window.close()}g_aNH(e){const g=e.isFocus;if("nwjs"===this.g_amp){const e=this.g_aPV();g?e.focus():e.blur()}else g?window.focus():window.blur()}g_aPN(e){navigator.vibrate&&navigator.vibrate(e.pattern)}g_aPO(e){const g=e.orientation;if(screen.orientation&&screen.orientation.lock)screen.orientation.lock(g).catch(e=>console.warn("[Construct 3] Failed to lock orientation: ",e));else try{let e=!1;screen.lockOrientation?e=screen.lockOrientation(g):screen.webkitLockOrientation?e=screen.webkitLockOrientation(g):screen.mozLockOrientation?e=screen.mozLockOrientation(g):screen.msLockOrientation&&(e=screen.msLockOrientation(g)),e||console.warn("[Construct 3] Failed to lock orientation")}catch(e){console.warn("[Construct 3] Failed to lock orientation: ",e)}}g_aPP(){try{screen.orientation&&screen.orientation.unlock?screen.orientation.unlock():screen.unlockOrientation?screen.unlockOrientation():screen.webkitUnlockOrientation?screen.webkitUnlockOrientation():screen.mozUnlockOrientation?screen.mozUnlockOrientation():screen.msUnlockOrientation&&screen.msUnlockOrientation()}catch(e){}}g_aPQ(e){const a=e.type;if("back"===a)navigator.app&&navigator.app.backHistory?navigator.app.backHistory():window.back();else if("forward"===a)window.forward();else if("home"===a)window.g_aPW();else if("reload"===a)location.reload();else if("url"===a){const a=e.url,g=e.target,_=e.exportType;"windows-uwp"===_&&"undefined"!=typeof Windows?Windows.System.Launcher.launchUriAsync(new Windows.Foundation.Uri(a)):navigator.app&&navigator.app.loadUrl?navigator.app.loadUrl(a,{openExternal:!0}):"cordova"===_?window.open(a,"_system"):"preview"===_?window.open(a,"_blank"):!this.g_aCa&&(2===g?window.top.location=a:1===g?window.parent.location=a:window.location=a)}else if("new-window"===a){const a=e.url,g=e.tag,_=e.exportType;"windows-uwp"===_&&"undefined"!=typeof Windows?Windows.System.Launcher.launchUriAsync(new Windows.Foundation.Uri(a)):navigator.app&&navigator.app.loadUrl?navigator.app.loadUrl(a,{openExternal:!0}):"cordova"===_?window.open(a,"_system"):window.open(a,g)}}g_aPR(e){const a={navigationUI:"auto"},g=e.navUI;1===g?a.navigationUI="hide":2===g&&(a.navigationUI="show");const _=document.documentElement;_.requestFullscreen?_.requestFullscreen(a):_.mozRequestFullScreen?_.mozRequestFullScreen(a):_.msRequestFullscreen?_.msRequestFullscreen(a):_.webkitRequestFullScreen&&("undefined"==typeof Element.ALLOW_KEYBOARD_INPUT?_.webkitRequestFullScreen():_.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT))}g_aPS(){document.exitFullscreen?document.exitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.msExitFullscreen?document.msExitFullscreen():document.webkitCancelFullScreen&&document.webkitCancelFullScreen()}};g_aNR.g_aON(e)}{function e(e,g){return e.length===g.length&&(e===g||e.toLowerCase()===g.toLowerCase())}const a=class extends g_aNi{constructor(e){super(e,"audio"),this.g_aPX=null,this.g_aPY=null,this.g_aPZ=!1,this.g_aP_=()=>this.g_aP$(),this.g_aQa=[],this.g_aQb=[],this.g_aQc=null,this.g_aQd="",this.g_aQe=-1,this.g_aQf=new Map,this.g_aDJ=1,this.g_aDK=!1,this.g_aDw=0,this.g_aho=1,this.g_anB=0,this.g_aDz="HRTF",this.g_aDA="inverse",this.g_aQg=600,this.g_aDF=1e4,this.g_aDG=1,this.g_aQh=!1,this.g_aQi=!1,this.g_aQj=this.g_aog.g_AP("audio/webm; codecs=opus"),this.g_aQk=new Map,this.g_aQl=new Set,this.g_aQm=!1,this.g_aQn="",this.g_aQo=null,self.C3Audio_OnMicrophoneStream=(e,a)=>this.g_aQp(e,a),this.g_aQq=null,self.C3Audio_GetOutputStream=()=>this.g_aQr(),this.g_aNv([["create-audio-context",e=>this.g_aQs(e)],["play",e=>this.g_aQt(e)],["stop",e=>this.g_aQu(e)],["stop-all",()=>this.g_aQv()],["set-paused",e=>this.g_aQw(e)],["set-volume",e=>this.g_aQx(e)],["fade-volume",e=>this.g_aQy(e)],["set-master-volume",e=>this.g_aQz(e)],["set-muted",e=>this.g_aQA(e)],["set-silent",e=>this.g_aQB(e)],["set-looping",e=>this.g_aQC(e)],["set-playback-rate",e=>this.g_aQD(e)],["seek",e=>this.g_aQE(e)],["preload",e=>this.g_aQF(e)],["unload",e=>this.g_F_(e)],["unload-all",()=>this.g_aQG()],["set-suspended",e=>this.g_aQH(e)],["add-effect",e=>this.g_aQI(e)],["set-effect-param",e=>this.g_aQJ(e)],["remove-effects",e=>this.g_aQK(e)],["tick",e=>this.g_Ip(e)],["load-state",e=>this.g_aQL(e)]])}async g_aQs(e){e.isWKWebView&&(this.g_aQh=!0),this.g_aDw=e.timeScaleMode,this.g_aDz=["equalpower","HRTF","soundfield"][e.panningModel],this.g_aDA=["linear","inverse","exponential"][e.distanceModel],this.g_aQg=e.refDistance,this.g_aDF=e.maxDistance,this.g_aDG=e.rolloffFactor;const a={latencyHint:e.latencyHint};if("undefined"!=typeof AudioContext)this.g_aPX=new AudioContext(a);else if("undefined"!=typeof webkitAudioContext)this.g_aPX=new webkitAudioContext(a);else throw new Error("Web Audio API not supported");this.g_aPY=this.g_aPX.createGain(),this.g_aPY.connect(this.g_aPX.destination);const g=e.listenerPos;this.g_aPX.listener.setPosition(g[0],g[1],g[2]),this.g_aPX.listener.setOrientation(0,0,1,0,-1,0),window.addEventListener("pointerup",this.g_aP_,!0),window.addEventListener("touchend",this.g_aP_,!0),window.addEventListener("click",this.g_aP_,!0),window.addEventListener("keydown",this.g_aP_,!0),self.C3_GetAudioContextCurrentTime=()=>this.g_aQM();try{await Promise.all(e.preloadList.map(e=>this.g_aQN(e.originalUrl,e.url,e.type,!1)))}catch(e){console.error("[Construct 3] Preloading sounds failed: ",e)}return{sampleRate:this.g_aPX.sampleRate}}g_aP$(){if(!this.g_aPZ){const e=this.g_aPX;"suspended"===e.state&&e.resume&&e.resume();const a=e.createBuffer(1,220,22050),g=e.createBufferSource();g.buffer=a,g.connect(e.destination),g.start(0),"running"===e.state&&(this.g_aPZ=!0,window.removeEventListener("pointerup",this.g_aP_,!0),window.removeEventListener("touchend",this.g_aP_,!0),window.removeEventListener("click",this.g_aP_,!0),window.removeEventListener("keydown",this.g_aP_,!0),this.g_aP_=null)}}g_aQO(){return this.g_aPX}g_aQM(){return this.g_aPX.currentTime}g_aQP(){return this.g_aPY}g_aQQ(e){const a=this.g_aQk.get(e.toLowerCase());return a?a[0].g_aQR():this.g_aQP()}g_aQS(e,g){e=e.toLowerCase();let _=this.g_aQk.get(e);_||(_=[],this.g_aQk.set(e,_)),g.g_aiX(_.length),g.g_aQT(e),_.push(g),this.g_aQU(e)}g_aQU(e){let a=this.g_aQP();const g=this.g_aQk.get(e);if(g&&g.length){a=g[0].g_aQR();for(let e=0,a=g.length;e{const a=this.g_aPX.createBuffer(1,e.length,48e3),g=a.getChannelData(0);return g.set(e),a}):new Promise((a,g)=>{this.g_aPX.decodeAudioData(e,a,g)})}g_aOQ(e){this.g_aog.g_aOQ(e)}g_aOR(e){this.g_aog.g_aOR(e)}g_aRh(a){let g=0;for(let _=0,e=this.g_aQb.length;_g=e);a={g_aRt:0,promise:_,resolve:g},this.g_aQf.set(e,a)}a.g_aRt++}g_aRu(e){const a=this.g_aQf.get(e);if(!a)throw new Error("expected pending tag");a.g_aRt--,0===a.g_aRt&&(a.resolve(),this.g_aQf.delete(e))}g_aRv(e){e||(e=this.g_aQd);const g=this.g_aQf.get(e);return g?g.promise:Promise.resolve()}g_aRw(){if(0a.g_VJ()).map(a=>a.g_aRx());this.g_aNm("state",{tickCount:this.g_aQe,audioInstances:a,analysers:[...this.g_aQl].map(a=>a.g_aRy())}),0===a.length&&0===this.g_aQl.size&&this.g_abq()}g_aRz(e,a){this.g_aNm("trigger",{type:e,tag:a})}async g_aQt(_){const a=_.originalUrl,t=_.url,n=_.type,o=_.isMusic,e=_.tag,r=_.isLooping,g=_.vol,s=_.pos,i=_.panning;let d=_.off;if(0t||t>=g.length||(g[t].g_aRW(n,i,e,o),this.g_aRV())}g_aQK(e){const a=e.tag.toLowerCase(),g=this.g_aQk.get(a);if(g&&g.length){for(const e of g)e.g_em();this.g_aQk.delete(a),this.g_aQU(a)}}g_aRX(e){this.g_aQl.add(e),this.g_aRw()}g_aRY(e){this.g_aQl.delete(e)}g_aRV(){this.g_aQm||(this.g_aQm=!0,Promise.resolve().then(()=>this.g_aRZ()))}g_aRZ(){const e={};for(const[a,g]of this.g_aQk)e[a]=g.map(e=>e.g_aRx());this.g_aNm("fxstate",{fxstate:e}),this.g_aQm=!1}async g_aQL(e){const g=e.saveLoadMode;if(3!==g)for(const e of this.g_aQb)e.g_aRk()&&1===g||!e.g_aRk()&&2===g||e.g_Iz();for(const g of this.g_aQk.values())for(const e of g)e.g_em();this.g_aQk.clear(),this.g_aho=e.timeScale,this.g_anB=e.gameTime;const a=e.listenerPos;this.g_aPX.listener.setPosition(a[0],a[1],a[2]),this.g_aDK=e.isSilent,this.g_aog.g_aEC(this.g_aDK),this.g_aDJ=e.masterVolume;const _=[];for(const a of Object.values(e.effects))_.push(Promise.all(a.map(e=>this.g_aQI(e))));await Promise.all(_),await Promise.all(e.playing.map(e=>this.g_aR_(e,g))),this.g_aRw()}async g_aR_(_,a){if(3===a)return;const t=_.bufferOriginalUrl,n=_.bufferUrl,o=_.bufferType,e=_.isMusic,r=_.tag,g=_.isLooping,s=_.volume,i=_.playbackTime;if(e&&1===a)return;if(!e&&2===a)return;let d=null;try{d=await this.g_aRp(t,n,o,r,e)}catch(e){return void console.error("[Construct 3] Audio: error loading audio state: ",e)}d.g_aR$(_.pan),d.g_KQ(g,s,i,0),_.isPlaying||d.g_aRD(),d.g_aSa(_)}g_aQp(e,a){this.g_aQo&&this.g_aQo.disconnect(),this.g_aQn=a.toLowerCase(),this.g_aQo=this.g_aPX.createMediaStreamSource(e),this.g_aQo.connect(this.g_aQQ(this.g_aQn))}g_aQr(){return this.g_aQq||(this.g_aQq=this.g_aPX.createMediaStreamDestination(),this.g_aPY.connect(this.g_aQq)),this.g_aQq.stream}};g_aNR.g_aON(a)}"use strict",self.g_aRo=class{constructor(g,a,_,t,n){this.g_aSb=g,this.g_aSc=a,this.g_Bd=_,this.g_ko=t,this.g_aSd=n,this.g_aSe="",this.g_aSf="not-loaded",this.g_Bi=null}g_em(){this.g_aSf="not-loaded",this.g_aSb=null,this.g_Bi=null}static g_pB(g,a,_,t,n){const e="audio/webm; codecs=opus"===t&&!g.g_aQ$();return n&&e&&g.g_aRa(),!n||g.g_aQ_()||e?new g_aSg(g,a,_,t,n,e):new g_aSh(g,a,_,t,n)}g_adJ(e){return"html5"===this.g_aSe?new g_aSi(this.g_aSb,this,e):new g_aSj(this.g_aSb,this,e)}g_FU(){}g_AE(){return this.g_Bi||(this.g_Bi=this.g_FU()),this.g_Bi}g_Bj(){}g_aSk(){}g_aSl(){return"failed"===this.g_aSf}g_aQO(){return this.g_aSb.g_aQO()}g_aSm(){return this.g_aSe}g_aSn(){return this.g_aSc}g_aRn(){return this.g_Bd}g_aSo(){return this.g_ko}g_aRk(){return this.g_aSd}g_afk(){}},"use strict",self.g_aSh=class extends g_aRo{constructor(g,a,_,t,n){super(g,a,_,t,n),this.g_aSe="html5",this.g_aSp=new Audio,this.g_aSp.crossOrigin="anonymous",this.g_aSp.autoplay=!1,this.g_aSp.preload="auto",this.g_aSq=null,this.g_aSr=null,this.g_aSs=!1,this.g_aSp.addEventListener("canplaythrough",()=>this.g_aSs=!0),this.g_aSt=this.g_aQO().createGain(),this.g_aSu=null,this.g_aSp.addEventListener("canplay",()=>{this.g_aSq&&(this.g_aSf="loaded",this.g_aSq(),this.g_aSq=null,this.g_aSr=null),this.g_aSu||!this.g_aSp||(this.g_aSu=this.g_aQO().createMediaElementSource(this.g_aSp),this.g_aSu.connect(this.g_aSt))}),this.onended=null,this.g_aSp.addEventListener("ended",()=>{this.onended&&this.onended()}),this.g_aSp.addEventListener("error",e=>this.g_aSv(e))}g_em(){this.g_aSb.g_aRh(this),this.g_aSt.disconnect(),this.g_aSt=null,this.g_aSu.disconnect(),this.g_aSu=null,this.g_aSp&&!this.g_aSp.paused&&this.g_aSp.pause(),this.onended=null,this.g_aSp=null,super.g_em()}g_FU(){return this.g_aSf="loading",new Promise((e,a)=>{this.g_aSq=e,this.g_aSr=a,this.g_aSp.src=this.g_Bd})}g_aSv(e){console.error(`[Construct 3] Audio '${this.g_Bd}' error: `,e),this.g_aSr&&(this.g_aSf="failed",this.g_aSr(e),this.g_aSq=null,this.g_aSr=null)}g_Bj(){const e=4<=this.g_aSp.readyState;return e&&(this.g_aSs=!0),e||this.g_aSs}g_aSk(){return this.g_Bj()}g_aSw(){return this.g_aSp}g_aSx(){return this.g_aSt}g_afk(){return this.g_aSp.duration}},"use strict",self.g_aSg=class extends g_aRo{constructor(g,a,_,t,n,e){super(g,a,_,t,n),this.g_aSe="webaudio",this.g_aSy=null,this.g_aSz=null,this.g_aSA=!!e}g_em(){this.g_aSb.g_aRh(this),this.g_aSy=null,this.g_aSz=null,super.g_em()}async g_aSB(){if(this.g_aSy)return this.g_aSy;const e=this.g_aSb.g_aNw();if("cordova"===e.g_apG()&&e.g_fT(this.g_Bd))this.g_aSy=await e.g_As(this.g_Bd);else{const e=await fetch(this.g_Bd);if(!e.ok)throw new Error(`error fetching audio data: ${e.status} ${e.statusText}`);this.g_aSy=await e.arrayBuffer()}}async g_aSC(){return this.g_aSz?this.g_aSz:void(this.g_aSz=await this.g_aSb.g_aRg(this.g_aSy,this.g_aSA),this.g_aSy=null)}async g_FU(){try{this.g_aSf="loading",await this.g_aSB(),await this.g_aSC(),this.g_aSf="loaded"}catch(e){this.g_aSf="failed",console.error(`[Construct 3] Failed to load audio '${this.g_Bd}': `,e)}}g_Bj(){return!!(this.g_aSy||this.g_aSz)}g_aSk(){return!!this.g_aSz}g_aRL(){return this.g_aSz}g_afk(){return this.g_aSz?this.g_aSz.duration:0}},"use strict";{function _(g){return g*e}const e=180/Math.PI;self.g_aSD=class{constructor(e,a,g){this.g_aSb=e,this.g_vg=a,this.g_aSE=g,this.g_aSF=this.g_aQO().createGain(),this.g_aSF.connect(this.g_aQP()),this.g_aSG=null,this.g_aSH=!1,this.g_St=!0,this.g_aSI=!1,this.g_aSJ=!1,this.g_ZC=!1,this.g_aSK=1,this.g_aSL=!1,this.g_Jw=1;const _=this.g_aSb.g_aQZ();this.g_aSM=1===_&&!this.g_aRk()||2===_,this.g_aSN=-1,this.g_aSO=-1,this.g_aSP=!1}g_em(){this.g_aSb=null,this.g_vg=null,this.g_aSG&&(this.g_aSG.disconnect(),this.g_aSG=null),this.g_aSF.disconnect(),this.g_aSF=null}g_aQO(){return this.g_aSb.g_aQO()}g_aQP(){return this.g_aSb.g_aQQ(this.g_aSE)}g_aQY(){return this.g_aSb.g_aQY()}g_aSQ(){return this.g_aSM?this.g_aSb.g_EK():performance.now()/1e3}g_aSn(){return this.g_vg.g_aSn()}g_aRn(){return this.g_vg.g_aRn()}g_aSo(){return this.g_vg.g_aSo()}g_aRi(){return this.g_vg}g_aRk(){return this.g_vg.g_aRk()}g_aRr(e){this.g_aSE=e}g_aRl(){return this.g_aSE}g_aRm(){}g_aRq(){}g_Kf(){return!this.g_St&&!this.g_aSI&&!this.g_aRm()}g_VJ(){return!this.g_St&&!this.g_aRm()}g_aSR(){}g_afk(e){let a=this.g_vg.g_afk();return e&&(a/=this.g_Jw||.001),a}g_KQ(){}g_Iz(){}g_aRD(){}g_aSS(){return this.g_aSI}g_KP(){}g_aEv(e){this.g_aSK=e,this.g_aSF.gain.cancelScheduledValues(0),this.g_aSO=-1,this.g_aSF.gain.value=this.g_aST()}g_aEw(g,_,t){if(!this.g_aSU()){g*=this.g_aQY();const a=this.g_aSF.gain;a.cancelScheduledValues(0);const n=this.g_aSb.g_aQM(),e=n+_;a.setValueAtTime(this.g_aST(),n),a.linearRampToValueAtTime(g,e),this.g_aSK=g,this.g_aSO=e,this.g_aSP=t}}g_aRE(){this.g_aEv(this.g_aSK)}g_Jj(e){-1!==this.g_aSO&&e>=this.g_aSO&&(this.g_aSO=-1,this.g_aSP&&this.g_Iz(),this.g_aSb.g_aRz("fade-ended",this.g_aSE))}g_aST(){const e=this.g_aSK*this.g_aQY();return isFinite(e)?e:0}g_aEu(e){e=!!e,this.g_aSL===e||(this.g_aSL=e,this.g_aRF())}g_aSU(){return this.g_aSL}g_aEl(){return this.g_aSb.g_aEl()}g_aRF(){}g_aEt(){}g_Xr(){return this.g_ZC}g_Kc(e){this.g_Jw===e||(this.g_Jw=e,this.g_aRG())}g_aRG(){}g_Kd(){return this.g_Jw}g_aEB(){}g_aoV(){}g_aRA(e){e=!!e,this.g_aSH===e||(this.g_aSH=e,this.g_aSH?(!this.g_aSG&&(this.g_aSG=this.g_aQO().createPanner(),this.g_aSG.panningModel=this.g_aSb.g_aRb(),this.g_aSG.distanceModel=this.g_aSb.g_aRc(),this.g_aSG.refDistance=this.g_aSb.g_aRd(),this.g_aSG.maxDistance=this.g_aSb.g_aRe(),this.g_aSG.rolloffFactor=this.g_aSb.g_aRf()),this.g_aSF.disconnect(),this.g_aSF.connect(this.g_aSG),this.g_aSG.connect(this.g_aQP())):(this.g_aSG.disconnect(),this.g_aSF.disconnect(),this.g_aSF.connect(this.g_aQP())))}g_aRB(a,t,n,i,e,o){this.g_aSH&&(this.g_aRH(a,t,n),this.g_aSG.coneInnerAngle=_(i),this.g_aSG.coneOuterAngle=_(e),this.g_aSG.coneOuterGain=o)}g_aRH(e,a,g){this.g_aSH&&(this.g_aSG.setPosition(e,a,0),this.g_aSG.setOrientation(Math.cos(g),Math.sin(g),0))}g_aRC(e){this.g_aSN=e}g_CJ(){return this.g_aSN}g_aSV(){}g_aQX(e){const a=this.g_aSG||this.g_aSF;a.disconnect(),a.connect(e)}g_aRx(){return{tag:this.g_aSE,duration:this.g_afk(),volume:this.g_aSK,isPlaying:this.g_Kf(),playbackTime:this.g_aSR(),playbackRate:this.g_Kd(),uid:this.g_aSN,bufferOriginalUrl:this.g_aSn(),bufferUrl:"",bufferType:this.g_aSo(),isMusic:this.g_aRk(),isLooping:this.g_Xr(),isMuted:this.g_aSU(),resumePosition:this.g_aSV(),pan:this.g_aSW()}}g_aSa(e){this.g_Kc(e.playbackRate),this.g_aEu(e.isMuted)}g_aSW(){if(!this.g_aSG)return null;const e=this.g_aSG;return{pos:[e.positionX.value,e.positionY.value,e.positionZ.value],orient:[e.orientationX.value,e.orientationY.value,e.orientationZ.value],cia:e.coneInnerAngle,coa:e.coneOuterAngle,cog:e.coneOuterGain,uid:this.g_aSN}}g_aR$(e){if(!e)return void this.g_aRA(!1);this.g_aRA(!0);const a=this.g_aSG;a.setPosition(...a.pos),a.setOrientation(...a.orient),a.coneInnerAngle=a.cia,a.coneOuterAngle=a.coa,a.coneOuterGain=a.cog,this.g_aSN=a.uid}}}"use strict",self.g_aSi=class extends g_aSD{constructor(e,a,g){super(e,a,g),this.g_vg.g_aSx().connect(this.g_aSF),this.g_vg.onended=()=>this.g_aSX()}g_em(){this.g_Iz(),this.g_vg.g_aSx().disconnect(),super.g_em()}g_aSw(){return this.g_vg.g_aSw()}g_aSX(){this.g_St=!0,this.g_aSN=-1,this.g_aSb.g_aRz("ended",this.g_aSE)}g_aRm(){return this.g_aSw().ended}g_aRq(){return!!this.g_St||this.g_aRm()}g_aSR(e){let a=this.g_aSw().currentTime;return e&&(a*=this.g_Jw),this.g_ZC||(a=Math.min(a,this.g_afk())),a}g_KQ(e,a,g){const _=this.g_aSw();if(1!==_.playbackRate&&(_.playbackRate=1),_.loop!==e&&(_.loop=e),this.g_aEv(a),_.muted&&(_.muted=!1),_.currentTime!==g)try{_.currentTime=g}catch(e){console.warn(`[Construct 3] Exception seeking audio '${this.g_vg.g_aRn()}' to position '${g}': `,e)}this.g_aSb.g_aOQ(_),this.g_St=!1,this.g_aSI=!1,this.g_ZC=e,this.g_Jw=1}g_Iz(){const e=this.g_aSw();e.paused||e.pause(),this.g_aSb.g_aOR(e),this.g_St=!0,this.g_aSI=!1,this.g_aSN=-1}g_aRD(){if(!(this.g_aSI||this.g_St||this.g_aRm())){const e=this.g_aSw();e.paused||e.pause(),this.g_aSb.g_aOR(e),this.g_aSI=!0}}g_KP(){!this.g_aSI||this.g_St||this.g_aRm()||(this.g_aSb.g_aOQ(this.g_aSw()),this.g_aSI=!1)}g_aRF(){this.g_aSw().muted=this.g_aSL||this.g_aEl()}g_aEt(e){e=!!e,this.g_ZC===e||(this.g_ZC=e,this.g_aSw().loop=e)}g_aRG(){let e=this.g_Jw;this.g_aSM&&(e*=this.g_aSb.g_Jh());try{this.g_aSw().playbackRate=e}catch(a){console.warn(`[Construct 3] Unable to set playback rate '${e}':`,a)}}g_aEB(e){if(!(this.g_St||this.g_aRm()))try{this.g_aSw().currentTime=e}catch(a){console.warn(`[Construct 3] Error seeking audio to '${e}': `,a)}}g_aSV(){return this.g_aSR()}g_aoV(e){e?this.g_Kf()?(this.g_aSw().pause(),this.g_aSJ=!0):this.g_aSJ=!1:this.g_aSJ&&(this.g_aSb.g_aOQ(this.g_aSw()),this.g_aSJ=!1)}},"use strict",self.g_aSj=class extends g_aSD{constructor(e,a,g){super(e,a,g),this.g_aSY=null,this.g_aSZ=e=>this.g_aSX(e),this.g_aS_=!0,this.g_aS$=null,this.g_anw=0,this.g_aTa=0,this.g_aTb=1}g_em(){this.g_Iz(),this.g_aTc(),this.g_aSZ=null,super.g_em()}g_aTc(){this.g_aSY&&this.g_aSY.disconnect(),this.g_aSY=null,this.g_aS$=null}g_aSX(e){this.g_aSI||this.g_aSJ||e.target!==this.g_aS$||(this.g_aS_=!0,this.g_St=!0,this.g_aSN=-1,this.g_aTc(),this.g_aSb.g_aRz("ended",this.g_aSE))}g_aRm(){return!(!this.g_St&&this.g_aSY&&this.g_aSY.loop)&&!this.g_aSI&&this.g_aS_}g_aRq(){return!this.g_aSY||this.g_St||this.g_aRm()}g_aSR(e){let a=0;return a=this.g_aSI?this.g_aTa:this.g_aSQ()-this.g_anw,e&&(a*=this.g_Jw),this.g_ZC||(a=Math.min(a,this.g_afk())),a}g_KQ(e,a,g,_){this.g_aTb=1,this.g_aEv(a),this.g_aTc(),this.g_aSY=this.g_aQO().createBufferSource(),this.g_aSY.buffer=this.g_vg.g_aRL(),this.g_aSY.connect(this.g_aSF),this.g_aS$=this.g_aSY,this.g_aSY.onended=this.g_aSZ,this.g_aSY.loop=e,this.g_aSY.start(_,g),this.g_aS_=!1,this.g_St=!1,this.g_aSI=!1,this.g_ZC=e,this.g_Jw=1,this.g_anw=this.g_aSQ()-g}g_Iz(){this.g_aSY&&this.g_aSY.stop(0),this.g_St=!0,this.g_aSI=!1,this.g_aSN=-1}g_aRD(){this.g_aSI||this.g_St||this.g_aRm()||(this.g_aTa=this.g_aSR(!0),this.g_ZC&&(this.g_aTa%=this.g_afk()),this.g_aSI=!0,this.g_aSY.stop(0))}g_KP(){!this.g_aSI||this.g_St||this.g_aRm()||(this.g_aTc(),this.g_aSY=this.g_aQO().createBufferSource(),this.g_aSY.buffer=this.g_vg.g_aRL(),this.g_aSY.connect(this.g_aSF),this.g_aS$=this.g_aSY,this.g_aSY.onended=this.g_aSZ,this.g_aSY.loop=this.g_ZC,this.g_aRE(),this.g_aRG(),this.g_anw=this.g_aSQ()-this.g_aTa/(this.g_Jw||.001),this.g_aSY.start(0,this.g_aTa),this.g_aSI=!1)}g_aST(){return super.g_aST()*this.g_aTb}g_aRF(){this.g_aTb=this.g_aSL||this.g_aEl()?0:1,this.g_aRE()}g_aEt(e){e=!!e,this.g_ZC===e||(this.g_ZC=e,this.g_aSY&&(this.g_aSY.loop=e))}g_aRG(){let e=this.g_Jw;this.g_aSM&&(e*=this.g_aSb.g_Jh()),this.g_aSY&&(this.g_aSY.playbackRate.value=e)}g_aEB(e){this.g_St||this.g_aRm()||(this.g_aSI?this.g_aTa=e:(this.g_aRD(),this.g_aTa=e,this.g_KP()))}g_aSV(){return this.g_aTa}g_aoV(e){e?this.g_Kf()?(this.g_aSJ=!0,this.g_aTa=this.g_aSR(!0),this.g_ZC&&(this.g_aTa%=this.g_afk()),this.g_aSY.stop(0)):this.g_aSJ=!1:this.g_aSJ&&(this.g_aTc(),this.g_aSY=this.g_aQO().createBufferSource(),this.g_aSY.buffer=this.g_vg.g_aRL(),this.g_aSY.connect(this.g_aSF),this.g_aS$=this.g_aSY,this.g_aSY.onended=this.g_aSZ,this.g_aSY.loop=this.g_ZC,this.g_aRE(),this.g_aRG(),this.g_anw=this.g_aSQ()-this.g_aTa/(this.g_Jw||.001),this.g_aSY.start(0,this.g_aTa),this.g_aSJ=!1)}g_aSa(e){super.g_aSa(e),this.g_aTa=e.resumePosition}},"use strict";{function g(e){return Math.pow(10,e/20)}function _(a){return Math.max(Math.min(g(a),1),0)}function t(e){return 20*(Math.log(e)/2.302585092994046)}function n(e){return t(Math.max(Math.min(e,1),0))}function i(e,a){return 1-Math.exp(-a*e)}class a{constructor(e){this.g_aSb=e,this.g_aPX=e.g_aQO(),this.g_BS=-1,this.g_aSE="",this.g_ko="",this.g_aTd=null}g_em(){this.g_aPX=null}g_aiX(e){this.g_BS=e}g_Dl(){return this.g_BS}g_aQT(e){this.g_aSE=e}g_aRl(){return this.g_aSE}g_aTe(){return this.g_aPX.createGain()}g_aQR(){}g_aQV(){}g_aTf(g,a,_,t){if(g.cancelScheduledValues(0),0===t)return void(g.value=a);const n=this.g_aPX.currentTime;t+=n,0===_?g.setValueAtTime(a,t):1===_?(g.setValueAtTime(g.value,n),g.linearRampToValueAtTime(a,t)):2===_?(g.setValueAtTime(g.value,n),g.exponentialRampToValueAtTime(a,t)):void 0}g_aRx(){return{type:this.g_ko,tag:this.g_aSE,params:this.g_aTd}}}self.g_aRI=class extends a{constructor(_,a,t,n,i,e,o){super(_),this.g_ko="filter",this.g_aTd=[a,t,n,i,e,o],this.g_aTg=this.g_aTe(),this.g_aTh=this.g_aTe(),this.g_aTh.gain.value=o,this.g_aTi=this.g_aTe(),this.g_aTi.gain.value=1-o,this.g_aTj=this.g_aPX.createBiquadFilter(),this.g_aTj.type=a,this.g_aTj.frequency.value=t,this.g_aTj.detune.value=n,this.g_aTj.Q.value=i,this.g_aTj.gain.vlaue=e,this.g_aTg.connect(this.g_aTj),this.g_aTg.connect(this.g_aTi),this.g_aTj.connect(this.g_aTh)}g_em(){this.g_aTg.disconnect(),this.g_aTj.disconnect(),this.g_aTh.disconnect(),this.g_aTi.disconnect(),super.g_em()}g_aQV(e){this.g_aTh.disconnect(),this.g_aTh.connect(e),this.g_aTi.disconnect(),this.g_aTi.connect(e)}g_aQR(){return this.g_aTg}g_aRW(e,a,g,_){0===e?(a=Math.max(Math.min(a/100,1),0),this.g_aTd[5]=a,this.g_aTf(this.g_aTh.gain,a,g,_),this.g_aTf(this.g_aTi.gain,1-a,g,_)):1===e?(this.g_aTd[1]=a,this.g_aTf(this.g_aTj.frequency,a,g,_)):2===e?(this.g_aTd[2]=a,this.g_aTf(this.g_aTj.detune,a,g,_)):3===e?(this.g_aTd[3]=a,this.g_aTf(this.g_aTj.Q,a,g,_)):4===e?(this.g_aTd[4]=a,this.g_aTf(this.g_aTj.gain,a,g,_)):void 0}},self.g_aRJ=class extends a{constructor(e,a,g,_){super(e),this.g_ko="delay",this.g_aTd=[a,g,_],this.g_aTg=this.g_aTe(),this.g_aTh=this.g_aTe(),this.g_aTh.gain.value=_,this.g_aTi=this.g_aTe(),this.g_aTi.gain.value=1-_,this.g_aTk=this.g_aTe(),this.g_aTl=this.g_aPX.createDelay(a),this.g_aTl.delayTime.value=a,this.g_aTm=this.g_aTe(),this.g_aTm.gain.value=g,this.g_aTg.connect(this.g_aTk),this.g_aTg.connect(this.g_aTi),this.g_aTk.connect(this.g_aTh),this.g_aTk.connect(this.g_aTl),this.g_aTl.connect(this.g_aTm),this.g_aTm.connect(this.g_aTk)}g_em(){this.g_aTg.disconnect(),this.g_aTh.disconnect(),this.g_aTi.disconnect(),this.g_aTk.disconnect(),this.g_aTl.disconnect(),this.g_aTm.disconnect(),super.g_em()}g_aQV(e){this.g_aTh.disconnect(),this.g_aTh.connect(e),this.g_aTi.disconnect(),this.g_aTi.connect(e)}g_aQR(){return this.g_aTg}g_aRW(g,a,t,n){0===g?(a=Math.max(Math.min(a/100,1),0),this.g_aTd[2]=a,this.g_aTf(this.g_aTh.gain,a,t,n),this.g_aTf(this.g_aTi.gain,1-a,t,n)):4===g?(this.g_aTd[1]=_(a),this.g_aTf(this.g_aTm.gain,_(a),t,n)):5===g?(this.g_aTd[0]=a,this.g_aTf(this.g_aTl.delayTime,a,t,n)):void 0}},self.g_aRK=class extends a{constructor(e,a,g,_){super(e),this.g_ko="convolution",this.g_aTd=[g,_],this.g_aTn="",this.g_aTo="",this.g_aTp="",this.g_aTg=this.g_aTe(),this.g_aTh=this.g_aTe(),this.g_aTh.gain.value=_,this.g_aTi=this.g_aTe(),this.g_aTi.gain.value=1-_,this.g_aTq=this.g_aPX.createConvolver(),this.g_aTq.normalize=g,this.g_aTq.buffer=a,this.g_aTg.connect(this.g_aTq),this.g_aTg.connect(this.g_aTi),this.g_aTq.connect(this.g_aTh)}g_em(){this.g_aTg.disconnect(),this.g_aTq.disconnect(),this.g_aTh.disconnect(),this.g_aTi.disconnect(),super.g_em()}g_aQV(e){this.g_aTh.disconnect(),this.g_aTh.connect(e),this.g_aTi.disconnect(),this.g_aTi.connect(e)}g_aQR(){return this.g_aTg}g_aRW(e,a,g,_){0===e?(a=Math.max(Math.min(a/100,1),0),this.g_aTd[1]=a,this.g_aTf(this.g_aTh.gain,a,g,_),this.g_aTf(this.g_aTi.gain,1-a,g,_)):void 0}g_aRM(e,a,g){this.g_aTn=e,this.g_aTo=a,this.g_aTp=g}g_aRx(){const e=super.g_aRx();return e.bufferOriginalUrl=this.g_aTn,e.bufferUrl="",e.bufferType=this.g_aTp,e}},self.g_aRN=class extends a{constructor(g,a,_,t,n,e){super(g),this.g_ko="flanger",this.g_aTd=[a,_,t,n,e],this.g_aTg=this.g_aTe(),this.g_aTi=this.g_aTe(),this.g_aTi.gain.value=1-e/2,this.g_aTh=this.g_aTe(),this.g_aTh.gain.value=e/2,this.g_aTr=this.g_aTe(),this.g_aTr.gain.value=n,this.g_aTl=this.g_aPX.createDelay(a+_),this.g_aTl.delayTime.value=a,this.g_aTs=this.g_aPX.createOscillator(),this.g_aTs.frequency.value=t,this.g_aTt=this.g_aTe(),this.g_aTt.gain.value=_,this.g_aTg.connect(this.g_aTl),this.g_aTg.connect(this.g_aTi),this.g_aTl.connect(this.g_aTh),this.g_aTl.connect(this.g_aTr),this.g_aTr.connect(this.g_aTl),this.g_aTs.connect(this.g_aTt),this.g_aTt.connect(this.g_aTl.delayTime),this.g_aTs.start(0)}g_em(){this.g_aTs.stop(0),this.g_aTg.disconnect(),this.g_aTl.disconnect(),this.g_aTs.disconnect(),this.g_aTt.disconnect(),this.g_aTi.disconnect(),this.g_aTh.disconnect(),this.g_aTr.disconnect(),super.g_em()}g_aQV(e){this.g_aTh.disconnect(),this.g_aTh.connect(e),this.g_aTi.disconnect(),this.g_aTi.connect(e)}g_aQR(){return this.g_aTg}g_aRW(e,a,g,_){0===e?(a=Math.max(Math.min(a/100,1),0),this.g_aTd[4]=a,this.g_aTf(this.g_aTh.gain,a/2,g,_),this.g_aTf(this.g_aTi.gain,1-a/2,g,_)):6===e?(this.g_aTd[1]=a/1e3,this.g_aTf(this.g_aTt.gain,a/1e3,g,_)):7===e?(this.g_aTd[2]=a,this.g_aTf(this.g_aTs.frequency,a,g,_)):8===e?(this.g_aTd[3]=a/100,this.g_aTf(this.g_aTr.gain,a/100,g,_)):void 0}},self.g_aRO=class extends a{constructor(_,a,t,n,i,e,o){super(_),this.g_ko="phaser",this.g_aTd=[a,t,n,i,e,o],this.g_aTg=this.g_aTe(),this.g_aTi=this.g_aTe(),this.g_aTi.gain.value=1-o/2,this.g_aTh=this.g_aTe(),this.g_aTh.gain.value=o/2,this.g_aTj=this.g_aPX.createBiquadFilter(),this.g_aTj.type="allpass",this.g_aTj.frequency.value=a,this.g_aTj.detune.value=t,this.g_aTj.Q.value=n,this.g_aTs=this.g_aPX.createOscillator(),this.g_aTs.frequency.value=e,this.g_aTt=this.g_aTe(),this.g_aTt.gain.value=i,this.g_aTg.connect(this.g_aTj),this.g_aTg.connect(this.g_aTi),this.g_aTj.connect(this.g_aTh),this.g_aTs.connect(this.g_aTt),this.g_aTt.connect(this.g_aTj.frequency),this.g_aTs.start(0)}g_em(){this.g_aTs.stop(0),this.g_aTg.disconnect(),this.g_aTj.disconnect(),this.g_aTs.disconnect(),this.g_aTt.disconnect(),this.g_aTi.disconnect(),this.g_aTh.disconnect(),super.g_em()}g_aQV(e){this.g_aTh.disconnect(),this.g_aTh.connect(e),this.g_aTi.disconnect(),this.g_aTi.connect(e)}g_aQR(){return this.g_aTg}g_aRW(e,a,g,_){0===e?(a=Math.max(Math.min(a/100,1),0),this.g_aTd[5]=a,this.g_aTf(this.g_aTh.gain,a/2,g,_),this.g_aTf(this.g_aTi.gain,1-a/2,g,_)):1===e?(this.g_aTd[0]=a,this.g_aTf(this.g_aTj.frequency,a,g,_)):2===e?(this.g_aTd[1]=a,this.g_aTf(this.g_aTj.detune,a,g,_)):3===e?(this.g_aTd[2]=a,this.g_aTf(this.g_aTj.Q,a,g,_)):6===e?(this.g_aTd[3]=a,this.g_aTf(this.g_aTt.gain,a,g,_)):7===e?(this.g_aTd[4]=a,this.g_aTf(this.g_aTs.frequency,a,g,_)):void 0}},self.g_aRP=class extends a{constructor(e,a){super(e),this.g_ko="gain",this.g_aTd=[a],this.g_aTu=this.g_aTe(),this.g_aTu.gain.value=a}g_em(){this.g_aTu.disconnect(),super.g_em()}g_aQV(e){this.g_aTu.disconnect(),this.g_aTu.connect(e)}g_aQR(){return this.g_aTu}g_aRW(g,a,t,n){4===g?(this.g_aTd[0]=_(a),this.g_aTf(this.g_aTu.gain,_(a),t,n)):void 0}},self.g_aRQ=class extends a{constructor(e,a,g){super(e),this.g_ko="tremolo",this.g_aTd=[a,g],this.g_aTu=this.g_aTe(),this.g_aTu.gain.value=1-g/2,this.g_aTs=this.g_aPX.createOscillator(),this.g_aTs.frequency.value=a,this.g_aTt=this.g_aTe(),this.g_aTt.gain.value=g/2,this.g_aTs.connect(this.g_aTt),this.g_aTt.connect(this.g_aTu.gain),this.g_aTs.start(0)}g_em(){this.g_aTs.stop(0),this.g_aTs.disconnect(),this.g_aTt.disconnect(),this.g_aTu.disconnect(),super.g_em()}g_aQV(e){this.g_aTu.disconnect(),this.g_aTu.connect(e)}g_aQR(){return this.g_aTu}g_aRW(e,a,g,_){0===e?(a=Math.max(Math.min(a/100,1),0),this.g_aTd[1]=a,this.g_aTf(this.g_aTu.gain.value,1-a/2,g,_),this.g_aTf(this.g_aTt.gain.value,a/2,g,_)):7===e?(this.g_aTd[0]=a,this.g_aTf(this.g_aTs.frequency,a,g,_)):void 0}},self.g_aRR=class extends a{constructor(e,a,g){super(e),this.g_ko="ringmod",this.g_aTd=[a,g],this.g_aTg=this.g_aTe(),this.g_aTh=this.g_aTe(),this.g_aTh.gain.value=g,this.g_aTi=this.g_aTe(),this.g_aTi.gain.value=1-g,this.g_aTv=this.g_aTe(),this.g_aTv.gain.value=0,this.g_aTs=this.g_aPX.createOscillator(),this.g_aTs.frequency.value=a,this.g_aTs.connect(this.g_aTv.gain),this.g_aTs.start(0),this.g_aTg.connect(this.g_aTv),this.g_aTg.connect(this.g_aTi),this.g_aTv.connect(this.g_aTh)}g_em(){this.g_aTs.stop(0),this.g_aTs.disconnect(),this.g_aTv.disconnect(),this.g_aTg.disconnect(),this.g_aTh.disconnect(),this.g_aTi.disconnect(),super.g_em()}g_aQV(e){this.g_aTh.disconnect(),this.g_aTh.connect(e),this.g_aTi.disconnect(),this.g_aTi.connect(e)}g_aQR(){return this.g_aTg}g_aRW(e,a,g,_){0===e?(a=Math.max(Math.min(a/100,1),0),this.g_aTd[1]=a,this.g_aTf(this.g_aTh.gain,a,g,_),this.g_aTf(this.g_aTi.gain,1-a,g,_)):7===e?(this.g_aTd[0]=a,this.g_aTf(this.g_aTs.frequency,a,g,_)):void 0}},self.g_aRS=class extends a{constructor(g,a,_,t,n,e){super(g),this.g_ko="distortion",this.g_aTd=[a,_,t,n,e],this.g_aTg=this.g_aTe(),this.g_aTw=this.g_aTe(),this.g_aTx=this.g_aTe(),this.g_aTy(t,n),this.g_aTh=this.g_aTe(),this.g_aTh.gain.value=e,this.g_aTi=this.g_aTe(),this.g_aTi.gain.value=1-e,this.g_aTz=this.g_aPX.createWaveShaper(),this.g_aTA=new Float32Array(65536),this.g_aTB(a,_),this.g_aTz.curve=this.g_aTA,this.g_aTg.connect(this.g_aTw),this.g_aTg.connect(this.g_aTi),this.g_aTw.connect(this.g_aTz),this.g_aTz.connect(this.g_aTx),this.g_aTx.connect(this.g_aTh)}g_em(){this.g_aTg.disconnect(),this.g_aTw.disconnect(),this.g_aTz.disconnect(),this.g_aTx.disconnect(),this.g_aTh.disconnect(),this.g_aTi.disconnect(),super.g_em()}g_aTy(e,g){.01>e&&(e=.01),this.g_aTw.gain.value=e,this.g_aTx.gain.value=Math.pow(1/e,.6)*g}g_aTB(e,a){for(let g,_=0;32768>_;++_)g=_/32768,g=this.g_aTC(g,e,a),this.g_aTA[32768+_]=g,this.g_aTA[32768-_-1]=-g}g_aTC(e,a,_){const t=1.05*_*a-a,n=0>e?-1:1,o=0>e?-e:e;let g=og&&(g=-g),this.g_aTFthis.g_aPJ()),window.addEventListener("resize",()=>this.g_aTH())}g_aPJ(){return{screenWidth:screen.width,screenHeight:screen.height,windowOuterWidth:window.outerWidth,windowOuterHeight:window.outerHeight}}g_aTH(){this.g_aNm("window-resize",{windowOuterWidth:window.outerWidth,windowOuterHeight:window.outerHeight})}};g_aNR.g_aON(e)}