Файловый менеджер - Редактировать - /home/jogoso94/public_html/jogos/tower_boom_levelpack/scripts/main.js
�азад
function l(b,a,c,d){b.v.Bb(b.hb,a,c,d,void 0)}function m(b,a,c,d){b.v.ca?l(b,a,c,d):b.v.se()._OnMessageFromDOM({type:"event",component:b.hb,handler:a,dispatchOpts:d||null,data:c,responseId:null})}function q(b,a,c){b.v.C(b.hb,a,c)}function aa(b,a){for(const [c,d]of a)q(b,c,d)}function t(b){b.Nb||(b.v.cd(b.Md),b.Nb=!0)}window.zb=class{constructor(b,a){this.v=b;this.hb=a;this.Nb=!1;this.Md=()=>this.Ka()}Vc(){}Ka(){}}; window.bf=class{constructor(){this.Sc=-1}j(){-1!==this.Sc&&(self.clearTimeout(this.Sc),this.Sc=-1)}};"use strict";function ba(b,a){q(b,"get-element",c=>{const d=u(b,c.elementId);return a(d,c)})}function u(b,a){b=b.Lb.get(a);if(!b)throw Error(`no element with id ${a}`);return b.pd} window.af=class extends self.zb{constructor(b,a){super(b,a);this.Lb=new Map;this.zc=!0;aa(this,[["create",()=>{throw Error("required override");}],["destroy",c=>{c=c.elementId;const d=u(this,c);this.zc&&d.parentElement.removeChild(d);this.Lb.delete(c)}],["set-visible",c=>{if(this.zc){var d=this.Lb.get(c.elementId),e=d.pd;d.vd?e.style.display=c.isVisible?"":"none":d.Ie=!!c.isVisible}}],["update-position",c=>{if(this.zc){var d=this.Lb.get(c.elementId),e=d.pd;e.style.left=c.left+"px";e.style.top=c.top+ "px";e.style.width=c.width+"px";e.style.height=c.height+"px";c=c.fontSize;null!==c&&(e.style.fontSize=c+"em");d.vd||(d.vd=!0,d.Ie&&(e.style.display=""))}}],["update-state",c=>{u(this,c.elementId);throw Error("required override");}],["focus",c=>{const d=u(this,c.elementId);c.focus?d.focus():d.blur()}],["set-css-style",c=>{const d=u(this,c.elementId),e=c.prop;c=c.val;e.startsWith("--")?d.style.setProperty(e,c):d.style[e]=c}],["set-attribute",c=>{u(this,c.elementId).setAttribute(c.name,c.val)}],["remove-attribute", c=>{u(this,c.elementId).removeAttribute(c.name)}]]);ba(this,c=>c)}};"use strict";const ca=/(iphone|ipod|ipad|macos|macintosh|mac os x)/i.test(navigator.userAgent),v=/android/i.test(navigator.userAgent),da=/safari/i.test(navigator.userAgent)&&!/(chrome|chromium|edg\/|OPR\/|nwjs)/i.test(navigator.userAgent);let ea=0; function w(b){const a=document.createElement("script");a.async=!1;a.type="module";return b.Re?new Promise(c=>{const d="c3_resolve_"+ea;++ea;self[d]=c;a.textContent=b.Ve+`\n\nself["${d}"]();`;document.head.appendChild(a)}):new Promise((c,d)=>{a.onload=c;a.onerror=d;a.src=b;document.head.appendChild(a)})}let fa=!1,ha=!1;function ia(){if(!fa){try{new Worker("blob://",{get type(){ha=!0}})}catch(b){}fa=!0}return ha}let y=new Audio; const ja={"audio/webm; codecs=opus":!!y.canPlayType("audio/webm; codecs=opus"),"audio/ogg; codecs=opus":!!y.canPlayType("audio/ogg; codecs=opus"),"audio/webm; codecs=vorbis":!!y.canPlayType("audio/webm; codecs=vorbis"),"audio/ogg; codecs=vorbis":!!y.canPlayType("audio/ogg; codecs=vorbis"),"audio/mp4":!!y.canPlayType("audio/mp4"),"audio/mpeg":!!y.canPlayType("audio/mpeg")};y=null;async function ma(b){b=await na(b);return(new TextDecoder("utf-8")).decode(b)} function na(b){return new Promise((a,c)=>{const d=new FileReader;d.onload=e=>a(e.target.result);d.onerror=e=>c(e);d.readAsArrayBuffer(b)})}const z=[];let C=0;window.RealFile=window.File;const E=[],F=new Map,G=new Map;let oa=0;const pa=[];self.runOnStartup=function(b){if("function"!==typeof b)throw Error("runOnStartup called without a function");pa.push(b)};const qa=new Set(["cordova","playable-ad","instant-games"]);let ra=!1; window.Db=class b{constructor(a){this.ca=a.Xe;this.va=null;this.ba="";this.Xa=a.Ue;this.xb={};this.Qa=this.ta=null;this.Kb=[];this.J=this.wa=null;this.Hc=!1;this.sd=0;this.mb=null;this.Wa=-1;this.Me=()=>this.ze();this.Va=[];this.B=a.Nd;this.Ob="file"===location.protocol.substr(0,4);!this.ca||"undefined"!==typeof OffscreenCanvas&&navigator.userActivation&&ia()||(this.ca=!1);this.ca&&da&&(this.ca=!1);if("playable-ad"===this.B||"instant-games"===this.B)this.ca=!1;if("cordova"===this.B&&this.ca)if(v){const c= /Chrome\/(\d+)/i.exec(navigator.userAgent);c&&90<=parseInt(c[1],10)||(this.ca=!1)}else this.ca=!1;this.Rb=this.qa=null;"html5"!==this.B||window.isSecureContext||console.warn("[Construct] Warning: the browser indicates this is not a secure context. Some features may be unavailable. Use secure (HTTPS) hosting to ensure all features are available.");this.C("runtime","cordova-fetch-local-file",c=>this.ve(c));this.C("runtime","create-job-worker",()=>this.we());"cordova"===this.B?document.addEventListener("deviceready", ()=>this.fd(a)):this.fd(a)}j(){this.qc();this.va&&(this.va=this.va.onmessage=null);this.ta&&(this.ta.terminate(),this.ta=null);this.Qa&&(this.Qa.j(),this.Qa=null);this.J&&(this.J.parentElement.removeChild(this.J),this.J=null)}he(){return ca&&"cordova"===this.B}mc(){const a=navigator.userAgent;return ca&&qa.has(this.B)||navigator.standalone||/crios\/|fxios\/|edgios\//i.test(a)}fe(){return v}$c(){return v&&qa.has(this.B)}async fd(a){"macos-wkwebview"===this.B&&this.Ee();if("playable-ad"===this.B){this.qa= self.c3_base64files;this.Rb={};await this.oe();for(let d=0,e=a.Za.length;d<e;++d){var c=a.Za[d];this.Rb.hasOwnProperty(c)?a.Za[d]={Re:!0,Ve:this.Rb[c]}:this.qa.hasOwnProperty(c)&&(a.Za[d]=URL.createObjectURL(this.qa[c]))}a.dc=[]}if("nwjs"===this.B&&self.nw&&self.nw.App.manifest["c3-steam-mode"]){let d=0;this.cd(()=>{d++;document.body.style.opacity=0===d%2?"1":"0.999"})}a.Te?this.ba=a.Te:(c=location.origin,this.ba=("null"===c?"file:///":c)+location.pathname,c=this.ba.lastIndexOf("/"),-1!==c&&(this.ba= this.ba.substr(0,c+1)));a.Ze&&(this.xb=a.Ze);c=new MessageChannel;this.va=c.port1;this.va.onmessage=d=>this._OnMessageFromRuntime(d.data);window.c3_addPortMessageHandler&&window.c3_addPortMessageHandler(d=>this.ye(d));this.mb=new self.ie(this);await sa(this.mb);"object"===typeof window.StatusBar&&window.StatusBar.hide();if("object"===typeof window.AndroidFullScreen)try{await new Promise((d,e)=>{window.AndroidFullScreen.immersiveMode(d,e)})}catch(d){console.error("Failed to enter Android immersive mode: ", d)}this.ca?await this.ue(a,c.port2):await this.te(a,c.port2)}sc(a){a=this.xb.hasOwnProperty(a)?this.xb[a]:a.endsWith("/workermain.js")&&this.xb.hasOwnProperty("workermain.js")?this.xb["workermain.js"]:"playable-ad"===this.B&&this.qa.hasOwnProperty(a)?this.qa[a]:a;a instanceof Blob&&(a=URL.createObjectURL(a));return a}async hc(a,c,d){if(a.startsWith("blob:"))return new Worker(a,d);if("cordova"===this.B&&this.Ob)return a=await this.yb(d.Qe?a:this.Xa+a),new Worker(URL.createObjectURL(new Blob([a],{type:"application/javascript"})), d);a=new URL(a,c);if(location.origin!==a.origin){a=await fetch(a);if(!a.ok)throw Error("failed to fetch worker script");a=await a.blob();return new Worker(URL.createObjectURL(a),d)}return new Worker(a,d)}oa(){return Math.max(window.innerWidth,1)}ha(){return Math.max(window.innerHeight,1)}ed(a){var c=this.ba,d=location.href,e=this.oa(),f=this.ha(),g=window.devicePixelRatio,h=b.cb(),k=a.ff,n=window.cr_previewImageBlobs||this.qa,p=window.cr_previewProjectFileBlobs,A=window.cr_previewProjectFiles,x=window.df|| "";a=a.Nd;var r=(new URLSearchParams(self.location.search)).has("debug"),B=this.mb;return{runtimeBaseUrl:c,previewUrl:d,windowInnerWidth:e,windowInnerHeight:f,devicePixelRatio:g,isFullscreen:h,projectData:k,previewImageBlobs:n,previewProjectFileBlobs:p,previewProjectFileSWUrls:A,swClientId:x,exportType:a,isDebug:r,ife:!!self.ef,jobScheduler:{inputPort:B.Gc,outputPort:B.Nc,maxNumWorkers:B.Je},supportedAudioFormats:ja,opusWasmScriptUrl:window.cr_opusWasmScriptUrl||this.Xa+"opus.wasm.js",opusWasmBinaryUrl:window.cr_opusWasmBinaryUrl|| this.Xa+"opus.wasm.wasm",isFileProtocol:this.Ob,isiOSCordova:this.he(),isiOSWebView:this.mc(),isFBInstantAvailable:"undefined"!==typeof self.FBInstant}}async ue(a,c){const d=this.sc(a.Ye);"preview"===this.B?(this.ta=new Worker("previewworker.js",{type:"module",name:"Runtime"}),await new Promise((h,k)=>{const n=p=>{this.ta.removeEventListener("message",n);p.data&&"ok"===p.data.type?h():k()};this.ta.addEventListener("message",n);this.ta.postMessage({type:"construct-worker-init","import":(new URL(d, this.ba)).toString()})})):this.ta=await this.hc(d,this.ba,{type:"module",name:"Runtime",Qe:!0});this.J=document.createElement("canvas");this.J.style.display="none";const e=this.J.transferControlToOffscreen();document.body.appendChild(this.J);window.c3canvas=this.J;self.C3_InsertHTMLPlaceholders&&self.C3_InsertHTMLPlaceholders();let f=a.dc||[],g=a.Za;f=await Promise.all(f.map(h=>this.La(h)));g=await Promise.all(g.map(h=>this.La(h)));if("cordova"===this.B)for(let h=0,k=a.cc.length;h<k;++h){const n= a.cc[h],p=n[0];if(p===a.Tc||"scriptsInEvents.js"===p||p.endsWith("/scriptsInEvents.js"))n[1]=await this.La(p)}this.ta.postMessage(Object.assign(this.ed(a),{type:"init-runtime",isInWorker:!0,messagePort:c,canvas:e,workerDependencyScripts:f,engineScripts:g,projectScripts:a.cc,mainProjectScript:a.Tc,projectScriptsStatus:self.C3_ProjectScriptsStatus}),[c,e,...ta(this.mb)]);this.Kb=E.map(h=>new h(this));this.dd();ua(this.wa);self.c3_callFunction=(h,k)=>{var n=this.wa;return n.v.bd(n.hb,"js-invoke-function", {name:h,params:k},void 0,void 0)};"preview"===this.B&&(self.goToLastErrorScript=()=>this.Bb("runtime","go-to-last-error-script"))}async te(a,c){this.J=document.createElement("canvas");this.J.style.display="none";document.body.appendChild(this.J);window.c3canvas=this.J;self.C3_InsertHTMLPlaceholders&&self.C3_InsertHTMLPlaceholders();this.Kb=E.map(g=>new g(this));this.dd();var d=a.Za.map(g=>"string"===typeof g?(new URL(g,this.ba)).toString():g);if(Array.isArray(a.dc)){var e=[...a.dc].map(g=>g instanceof Blob?URL.createObjectURL(g):g);d.unshift(...e)}d=await Promise.all(d.map(g=>this.La(g)));await Promise.all(d.map(g=>w(g)));d=self.C3_ProjectScriptsStatus;e=a.Tc;const f=a.cc;for(let [g,h]of f)if(h||(h=g),g===e)try{h=await this.La(h),await w(h),"preview"!==this.B||d[g]||this.hd(g,"main script did not run to completion")}catch(k){this.hd(g,k)}else if("scriptsInEvents.js"===g||g.endsWith("/scriptsInEvents.js"))h=await this.La(h),await w(h);"preview"===this.B&&"object"!==typeof self.$e.cf?(this.Gb(), console.error("[C3 runtime] Failed to load JavaScript code used in events. Check all your JavaScript code has valid syntax."),alert("Failed to load JavaScript code used in events. Check all your JavaScript code has valid syntax.")):(a=Object.assign(this.ed(a),{isInWorker:!1,messagePort:c,canvas:this.J,runOnStartupFunctions:pa}),ua(this.wa),this.gd(),this.Qa=self.C3_CreateRuntime(a),await self.C3_InitRuntime(this.Qa,a))}hd(a,c){this.Gb();console.error(`[Preview] Failed to load project main script (${a}): `, c);alert(`Failed to load project main script (${a}). Check all your JavaScript code has valid syntax. Press F12 and check the console for error details.`)}gd(){this.Gb()}Gb(){const a=window.Oe;a&&(a.parentElement.removeChild(a),window.Oe=null)}async we(){const a=await va(this.mb);return{outputPort:a,transferables:[a]}}se(){if(this.ca)throw Error("not available in worker mode");return this.Qa}Bb(a,c,d,e,f){this.va.postMessage({type:"event",component:a,handler:c,dispatchOpts:e||null,data:d,responseId:null}, f)}bd(a,c,d,e,f){const g=oa++,h=new Promise((k,n)=>{G.set(g,{resolve:k,reject:n})});this.va.postMessage({type:"event",component:a,handler:c,dispatchOpts:e||null,data:d,responseId:g},f);return h}_OnMessageFromRuntime(a){const c=a.type;if("event"===c)return this.xe(a);if("result"===c)this.Ae(a);else if("runtime-ready"===c)this.Be();else if("alert-error"===c)this.Gb(),alert(a.message);else if("creating-runtime"===c)this.gd();else throw Error(`unknown message '${c}'`);}xe(a){const c=a.component,d=a.handler, e=a.data,f=a.responseId;if(a=F.get(c))if(a=a.get(d)){var g=null;try{g=a(e)}catch(h){console.error(`Exception in '${c}' handler '${d}':`,h);null!==f&&this.Fb(f,!1,""+h);return}if(null===f)return g;g&&g.then?g.then(h=>this.Fb(f,!0,h)).catch(h=>{console.error(`Rejection from '${c}' handler '${d}':`,h);this.Fb(f,!1,""+h)}):this.Fb(f,!0,g)}else console.warn(`[DOM] No handler '${d}' for component '${c}'`);else console.warn(`[DOM] No event handlers for component '${c}'`)}Fb(a,c,d){let e;d&&d.transferables&& (e=d.transferables);this.va.postMessage({type:"result",responseId:a,isOk:c,result:d},e)}Ae(a){const c=a.responseId,d=a.isOk;a=a.result;const e=G.get(c);d?e.resolve(a):e.reject(a);G.delete(c)}C(a,c,d){let e=F.get(a);e||(e=new Map,F.set(a,e));if(e.has(c))throw Error(`[DOM] Component '${a}' already has handler '${c}'`);e.set(c,d)}static ec(a){if(E.includes(a))throw Error("DOM handler already added");E.push(a)}dd(){for(const a of this.Kb)if("runtime"===a.hb){this.wa=a;return}throw Error("cannot find runtime DOM handler"); }ye(a){this.Bb("debugger","message",a)}Be(){for(const a of this.Kb)a.Vc()}static cb(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||ra)}static jd(a){ra=!!a}cd(a){this.Va.push(a);this.xc()}De(a){a=this.Va.indexOf(a);if(-1===a)throw Error("invalid callback");this.Va.splice(a,1);this.Va.length||this.qc()}xc(){-1===this.Wa&&this.Va.length&&(this.Wa=requestAnimationFrame(this.Me))}qc(){-1!==this.Wa&&(cancelAnimationFrame(this.Wa),this.Wa=-1)}ze(){this.Wa= -1;for(const a of this.Va)a();this.xc()}Ba(a){this.wa.Ba(a)}Ja(a){this.wa.Ja(a)}wc(){this.wa.wc()}Eb(a){this.wa.Eb(a)}ge(){return!!ja["audio/webm; codecs=opus"]}async Fe(a){a=await this.bd("runtime","opus-decode",{arrayBuffer:a},null,[a]);return new Float32Array(a)}ke(a){this.Hc=!0;this.sd=a}ee(a){return/^(?:[a-z\-]+:)?\/\//.test(a)||"data:"===a.substr(0,5)||"blob:"===a.substr(0,5)}ad(a){return!this.ee(a)}async La(a){return"cordova"===this.B&&(a.startsWith("file:")||this.Ob&&this.ad(a))?(a.startsWith(this.ba)&& (a=a.substr(this.ba.length)),a=await this.yb(a),URL.createObjectURL(new Blob([a],{type:"application/javascript"}))):a}async ve(a){const c=a.filename;switch(a.as){case "text":return await this.de(c);case "buffer":return await this.yb(c);default:throw Error("unsupported type");}}Yc(a){const c=window.cordova.file.applicationDirectory+"www/"+a;return new Promise((d,e)=>{window.resolveLocalFileSystemURL(c,f=>{f.file(d,e)},e)})}async de(a){a=await this.Yc(a);return await ma(a)}rc(){if(z.length&&!(8<=C)){C++; var a=z.shift();this.pe(a.filename,a.We,a.Pe)}}yb(a){return new Promise((c,d)=>{z.push({filename:a,We:e=>{C--;this.rc();c(e)},Pe:e=>{C--;this.rc();d(e)}});this.rc()})}async pe(a,c,d){try{const e=await this.Yc(a),f=await na(e);c(f)}catch(e){d(e)}}Ee(){var a={type:"ready"};if("windows-webview2"===this.B)window.chrome.webview.postMessage(JSON.stringify(a));else if("macos-wkwebview"===this.B)window.webkit.messageHandlers.C3Wrapper.postMessage(JSON.stringify(a));else throw Error("cannot send wrapper message"); }async oe(){const a=[];for(const [c,d]of Object.entries(this.qa))a.push(this.ne(c,d));await Promise.all(a)}async ne(a,c){if("object"===typeof c)this.qa[a]=new Blob([c.str],{type:c.type}),this.Rb[a]=c.str;else{let d=await this.re(c);d||(d=this.qe(c));this.qa[a]=d}}async re(a){try{return await (await fetch(a)).blob()}catch(c){return console.warn("Failed to fetch a data: URI. Falling back to a slower workaround. This is probably because the Content Security Policy unnecessarily blocked it. Allow data: URIs in your CSP to avoid this.", c),null}}qe(a){a=this.Ce(a);return this.me(a.data,a.Se)}Ce(a){var c=a.indexOf(",");if(0>c)throw new URIError("expected comma in data: uri");var d=a.substring(c+1);c=a.substring(5,c).split(";");a=c[0]||"";const e=c[2];d="base64"===c[1]||"base64"===e?atob(d):decodeURIComponent(d);return{Se:a,data:d}}me(a,c){var d=a.length;let e=d>>2,f=new Uint8Array(d),g=new Uint32Array(f.buffer,0,e),h,k;for(k=h=0;h<e;++h)g[h]=a.charCodeAt(k++)|a.charCodeAt(k++)<<8|a.charCodeAt(k++)<<16|a.charCodeAt(k++)<<24;for(d&= 3;d--;)f[k]=a.charCodeAt(k),++k;return new Blob([f],{type:c})}};"use strict";const H=self.Db;function wa(b){return b.sourceCapabilities&&b.sourceCapabilities.firesTouchEvents||b.originalEvent&&b.originalEvent.sourceCapabilities&&b.originalEvent.sourceCapabilities.firesTouchEvents}const xa=new Map([["OSLeft","MetaLeft"],["OSRight","MetaRight"]]),I={dispatchRuntimeEvent:!0,dispatchUserScriptEvent:!0},ya={dispatchUserScriptEvent:!0},J={dispatchRuntimeEvent:!0}; function za(b){return new Promise((a,c)=>{const d=document.createElement("link");d.onload=()=>a(d);d.onerror=e=>c(e);d.rel="stylesheet";d.href=b;document.head.appendChild(d)})}function Aa(b){return new Promise((a,c)=>{const d=new Image;d.onload=()=>a(d);d.onerror=e=>c(e);d.src=b})}async function K(b){b=URL.createObjectURL(b);try{return await Aa(b)}finally{URL.revokeObjectURL(b)}} function Ba(b){return new Promise((a,c)=>{let d=new FileReader;d.onload=e=>a(e.target.result);d.onerror=e=>c(e);d.readAsText(b)})} async function Ca(b,a,c){if(!/firefox/i.test(navigator.userAgent))return await K(b);var d=await Ba(b);d=(new DOMParser).parseFromString(d,"image/svg+xml");const e=d.documentElement;if(e.hasAttribute("width")&&e.hasAttribute("height")){const f=e.getAttribute("width"),g=e.getAttribute("height");if(!f.includes("%")&&!g.includes("%"))return await K(b)}e.setAttribute("width",a+"px");e.setAttribute("height",c+"px");d=(new XMLSerializer).serializeToString(d);b=new Blob([d],{type:"image/svg+xml"});return await K(b)} function Da(b){do{if(b.parentNode&&b.hasAttribute("contenteditable"))return!0;b=b.parentNode}while(b);return!1}const Ea=new Set(["input","textarea","datalist","select"]),Fa=new Set(["canvas","body","html"]);function L(b){b.target.tagName&&Fa.has(b.target.tagName.toLowerCase())&&b.preventDefault()}function Ga(b){(b.metaKey||b.ctrlKey)&&b.preventDefault()} self.C3_GetSvgImageSize=async function(b){b=await K(b);if(0<b.width&&0<b.height)return[b.width,b.height];b.style.position="absolute";b.style.left="0px";b.style.top="0px";b.style.visibility="hidden";document.body.appendChild(b);const a=b.getBoundingClientRect();document.body.removeChild(b);return[a.width,a.height]};self.C3_RasterSvgImageBlob=async function(b,a,c,d,e){b=await Ca(b,a,c);const f=document.createElement("canvas");f.width=d;f.height=e;f.getContext("2d").drawImage(b,0,0,a,c);return f}; let Ha=!1;document.addEventListener("pause",()=>Ha=!0);document.addEventListener("resume",()=>Ha=!1);function ua(b){b.rd=!0;b.Kc=b.v.oa();b.nb=b.v.ha()}async function Ia(b){await Promise.all(b.webfonts.map(async a=>{a=new FontFace(a.name,`url('${a.url}')`);document.fonts.add(a);await a.load()}))} async function Ja(b){var a=b.imageBitmapOpts;b=await self.C3_RasterSvgImageBlob(b.blob,b.imageWidth,b.imageHeight,b.surfaceWidth,b.surfaceHeight);a=a?await createImageBitmap(b,a):await createImageBitmap(b);return{imageBitmap:a,transferables:[a]}}async function Ka(b){return await self.C3_GetSvgImageSize(b.blob)}function La(b){window.c3_postToMessagePort&&(b.from="runtime",window.c3_postToMessagePort(b))} function Ma(b){self.setTimeout(()=>{b.qd=!0},1E3);"cordova"===b.v.B?(document.addEventListener("pause",()=>Na(b,!0)),document.addEventListener("resume",()=>Na(b,!1))):document.addEventListener("visibilitychange",()=>Na(b,document.hidden));return{isSuspended:!(!document.hidden&&!Ha)}} function Oa(b){b.ld||(b.ld=!0,window.addEventListener("deviceorientation",a=>{b.$||l(b,"deviceorientation",{absolute:!!a.absolute,alpha:a.alpha||0,beta:a.beta||0,gamma:a.gamma||0,timeStamp:a.timeStamp,webkitCompassHeading:a.webkitCompassHeading,webkitCompassAccuracy:a.webkitCompassAccuracy},I)}),window.addEventListener("deviceorientationabsolute",a=>{b.$||l(b,"deviceorientationabsolute",{absolute:!!a.absolute,alpha:a.alpha||0,beta:a.beta||0,gamma:a.gamma||0,timeStamp:a.timeStamp},I)}))} function Pa(b){b.kd||(b.kd=!0,window.addEventListener("devicemotion",a=>{if(!b.$){var c=null,d=a.acceleration;d&&(c={x:d.x||0,y:d.y||0,z:d.z||0});d=null;var e=a.accelerationIncludingGravity;e&&(d={x:e.x||0,y:e.y||0,z:e.z||0});e=null;var f=a.rotationRate;f&&(e={alpha:f.alpha||0,beta:f.beta||0,gamma:f.gamma||0});l(b,"devicemotion",{acceleration:c,accelerationIncludingGravity:d,rotationRate:e,interval:a.interval,timeStamp:a.timeStamp},I)}}))}async function Qa(b){await za(b.url)} function Ra(b,a){b.td=a.message;-1===b.Cc&&(b.Cc=setTimeout(()=>{b.Cc=-1;const c=document.getElementById("exportToVideoMessage");c&&(c.textContent=b.td)},250))}function M(b){if(!b.$){var a=H.cb();a&&"any"!==b.Qc&&Sa(b);l(b,"fullscreenchange",{isFullscreen:a,innerWidth:b.oa(),innerHeight:b.ha()})}}function Ta(b,a){console.warn("[Construct] Fullscreen request failed: ",a);l(b,"fullscreenerror",{isFullscreen:H.cb(),innerWidth:b.oa(),innerHeight:b.ha()})} function Na(b,a){a?b.v.qc():b.v.xc();l(b,"visibilitychange",{hidden:a})}function Ua(b,a,c){"Backspace"===c.key&&L(c);if(!b.$){var d=xa.get(c.code)||c.code;m(b,a,{code:d,key:c.key,which:c.which,repeat:c.repeat,altKey:c.altKey,ctrlKey:c.ctrlKey,metaKey:c.metaKey,shiftKey:c.shiftKey,timeStamp:c.timeStamp},I)}} function Va(b,a,c,d){b.$||wa(c)||m(b,a,{button:c.button,buttons:c.buttons,clientX:c.clientX,clientY:c.clientY+b.da,pageX:c.pageX,pageY:c.pageY+b.da,movementX:c.movementX||0,movementY:c.movementY||0,timeStamp:c.timeStamp},d)}function Wa(b){window!==window.top&&window.focus();Xa(b.target)&&document.activeElement&&!Xa(document.activeElement)&&document.activeElement.blur()} function N(b,a,c){if(!b.$){var d=0;"mouse"===c.pointerType&&(d=b.sb);m(b,a,{pointerId:c.pointerId,pointerType:c.pointerType,button:c.button,buttons:c.buttons,lastButtons:d,clientX:c.clientX,clientY:c.clientY+b.da,pageX:c.pageX,pageY:c.pageY+b.da,movementX:c.movementX||0,movementY:c.movementY||0,width:c.width||0,height:c.height||0,pressure:c.pressure||0,tangentialPressure:c.tangentialPressure||0,tiltX:c.tiltX||0,tiltY:c.tiltY||0,twist:c.twist||0,timeStamp:c.timeStamp},I);"mouse"===c.pointerType&&(d= "mousemove","pointerdown"===a?d="mousedown":"pointerup"===a&&(d="mouseup"),Va(b,d,c,ya),b.sb=c.buttons)}} function Ya(b,a,c){if(!b.$&&!wa(c)){var d=b.sb;"pointerdown"===a&&0!==d?a="pointermove":"pointerup"===a&&0!==c.buttons&&(a="pointermove");m(b,a,{pointerId:1,pointerType:"mouse",button:c.button,buttons:c.buttons,lastButtons:d,clientX:c.clientX,clientY:c.clientY+b.da,pageX:c.pageX,pageY:c.pageY+b.da,movementX:c.movementX||0,movementY:c.movementY||0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,timeStamp:c.timeStamp},I);b.sb=c.buttons;Va(b,c.type,c,ya)}} function O(b,a,c){if(!b.$)for(let d=0,e=c.changedTouches.length;d<e;++d){const f=c.changedTouches[d];m(b,a,{pointerId:f.identifier,pointerType:"touch",button:0,buttons:0,lastButtons:0,clientX:f.clientX,clientY:f.clientY+b.da,pageX:f.pageX,pageY:f.pageY+b.da,movementX:c.movementX||0,movementY:c.movementY||0,width:2*(f.radiusX||f.webkitRadiusX||0),height:2*(f.radiusY||f.webkitRadiusY||0),pressure:f.force||f.webkitForce||0,tangentialPressure:0,tiltX:0,tiltY:0,twist:f.rotationAngle||0,timeStamp:c.timeStamp}, I)}}function Za(b,a,c){document.body.style.transform="";b.da=0;if(0<c){var d=document.activeElement;d&&(d=d.getBoundingClientRect(),a=(d.top+d.bottom)/2-(a-c)/2,a>c&&(a=c),0>a&&(a=0),0<a&&(document.body.style.transform=`translateY(${-a}px)`,b.da=a))}}function ab(b,a,c,d){const e=b.oa(),f=b.ha();b.Ya=-1;e!=a||f!=c?l(b,"window-resize",{innerWidth:e,innerHeight:f,devicePixelRatio:window.devicePixelRatio,isFullscreen:H.cb()}):10>d&&bb(b,e,f,d+1)} function bb(b,a,c,d){-1!==b.Ya&&clearTimeout(b.Ya);b.Ya=setTimeout(()=>ab(b,a,c,d),48)} function Sa(b){b=b.Qc;if(screen.orientation&&screen.orientation.lock)screen.orientation.lock(b).catch(a=>console.warn("[Construct] Failed to lock orientation: ",a));else try{let a=!1;screen.lockOrientation?a=screen.lockOrientation(b):screen.webkitLockOrientation?a=screen.webkitLockOrientation(b):screen.mozLockOrientation?a=screen.mozLockOrientation(b):screen.msLockOrientation&&(a=screen.msLockOrientation(b));a||console.warn("[Construct] Failed to lock orientation")}catch(a){console.warn("[Construct] Failed to lock orientation: ", a)}}function Xa(b){return!b||b===document||b===window||b===document.body||"canvas"===b.tagName.toLowerCase()} H.ec(class extends self.zb{constructor(b){super(b,"runtime");this.zd=!0;this.rd=!1;this.Ya=-1;this.Qc="any";this.kd=this.ld=!1;this.$b=document.createElement("div");this.$b.className="c3-screen-reader-text";this.$b.setAttribute("aria-live","polite");document.body.appendChild(this.$b);this.Ea=null;this.$=!1;this.td="";this.Cc=-1;this.qd=!1;this.Kc=b.oa();this.nb=b.ha();this.da=this.wb=0;b.C("canvas","update-size",d=>{var e=this.v;e.Hc||(e=e.J,e.style.width=d.styleWidth+"px",e.style.height=d.styleHeight+ "px",e.style.marginLeft=d.marginLeft+"px",e.style.marginTop=d.marginTop+"px",document.documentElement.style.setProperty("--construct-scale",d.displayScale),this.zd&&(e.style.display="",this.zd=!1))});b.C("runtime","invoke-download",d=>{const e=d.url;d=d.filename;const f=document.createElement("a"),g=document.body;f.textContent=d;f.href=e;f.download=d;g.appendChild(f);f.click();g.removeChild(f)});b.C("runtime","load-webfonts",d=>Ia(d));b.C("runtime","raster-svg-image",d=>Ja(d));b.C("runtime","get-svg-image-size", d=>Ka(d));b.C("runtime","set-target-orientation",d=>{this.Qc=d.targetOrientation});b.C("runtime","register-sw",()=>{window.C3_RegisterSW&&window.C3_RegisterSW()});b.C("runtime","post-to-debugger",d=>La(d));b.C("runtime","go-to-script",d=>La(d));b.C("runtime","before-start-ticking",()=>Ma(this));b.C("runtime","debug-highlight",d=>{if(d.show){this.Ea||(this.Ea=document.createElement("div"),this.Ea.id="inspectOutline",document.body.appendChild(this.Ea));var e=this.Ea;e.style.display="";e.style.left= d.left-1+"px";e.style.top=d.top-1+"px";e.style.width=d.width+2+"px";e.style.height=d.height+2+"px";e.textContent=d.name}else this.Ea&&(this.Ea.style.display="none")});b.C("runtime","enable-device-orientation",()=>Oa(this));b.C("runtime","enable-device-motion",()=>Pa(this));b.C("runtime","add-stylesheet",d=>Qa(d));b.C("runtime","script-create-worker",d=>{const e=d.port2;(new Worker(d.url,d.opts)).postMessage({type:"construct-worker-init",port2:e},[e])});b.C("runtime","alert",d=>{alert(d.message)}); b.C("runtime","screen-reader-text",d=>{var e=d.type;"create"===e?(e=document.createElement("p"),e.id="c3-sr-"+d.id,e.textContent=d.text,this.$b.appendChild(e)):"update"===e?(e=document.getElementById("c3-sr-"+d.id))?e.textContent=d.text:console.warn(`[Construct] Missing screen reader text with id ${d.id}`):"release"===e?(e=document.getElementById("c3-sr-"+d.id))?e.remove():console.warn(`[Construct] Missing screen reader text with id ${d.id}`):console.warn(`[Construct] Unknown screen reader text update '${e}'`)}); b.C("runtime","hide-cordova-splash",()=>{navigator.splashscreen&&navigator.splashscreen.hide&&navigator.splashscreen.hide()});b.C("runtime","set-exporting-to-video",d=>{this.$=!0;const e=document.createElement("h1");e.id="exportToVideoMessage";e.textContent=d.message;document.body.prepend(e);document.body.classList.add("exportingToVideo");this.v.J.style.display="";this.v.ke(d.duration)});b.C("runtime","export-to-video-progress",d=>Ra(this,d));b.C("runtime","exported-to-video",d=>{window.Ne({type:"exported-video", arrayBuffer:d.arrayBuffer,contentType:d.contentType,time:d.time})});b.C("runtime","exported-to-image-sequence",d=>{window.Ne({type:"exported-image-sequence",blobArr:d.blobArr,time:d.time,gif:d.gif})});const a=new Set(["input","textarea","datalist"]);window.addEventListener("contextmenu",d=>{const e=d.target;a.has(e.tagName.toLowerCase())||Da(e)||d.preventDefault()});const c=b.J;window.addEventListener("selectstart",L);window.addEventListener("gesturehold",L);c.addEventListener("selectstart",L);c.addEventListener("gesturehold", L);window.addEventListener("touchstart",L,{passive:!1});"undefined"!==typeof PointerEvent?(window.addEventListener("pointerdown",L,{passive:!1}),c.addEventListener("pointerdown",L)):c.addEventListener("touchstart",L);this.sb=0;window.addEventListener("mousedown",d=>{1===d.button&&d.preventDefault()});window.addEventListener("mousewheel",Ga,{passive:!1});window.addEventListener("wheel",Ga,{passive:!1});window.addEventListener("resize",()=>{a:{if(!this.$&&this.rd){var d=this.oa();var e=this.ha();if(this.v.$c()){if(this.qd){if(this.Kc=== d&&e<this.nb){this.wb=this.nb-e;Za(this,this.nb,this.wb);d=void 0;break a}0<this.wb&&(this.wb=0,Za(this,e,this.wb))}this.Kc=d;this.nb=e}l(this,"window-resize",{innerWidth:d,innerHeight:e,devicePixelRatio:window.devicePixelRatio,isFullscreen:H.cb()});this.v.mc()&&(-1!==this.Ya&&clearTimeout(this.Ya),ab(this,d,e,0))}d=void 0}return d});window.addEventListener("fullscreenchange",()=>M(this));window.addEventListener("webkitfullscreenchange",()=>M(this));window.addEventListener("mozfullscreenchange",()=> M(this));window.addEventListener("fullscreenerror",d=>Ta(this,d));window.addEventListener("webkitfullscreenerror",d=>Ta(this,d));window.addEventListener("mozfullscreenerror",d=>Ta(this,d));if(b.mc())if(window.visualViewport){let d=Infinity;window.visualViewport.addEventListener("resize",()=>{const e=window.visualViewport.height;e>d&&(document.scrollingElement.scrollTop=0);d=e})}else window.addEventListener("focusout",()=>{{const f=document.activeElement;if(f){var d=f.tagName.toLowerCase();var e=new Set("email number password search tel text url".split(" ")); d="textarea"===d?!0:"input"===d?e.has(f.type.toLowerCase()||"text"):Da(f)}else d=!1}d||(document.scrollingElement.scrollTop=0)});self.C3WrapperOnMessage=d=>{"entered-fullscreen"===d?(H.jd(!0),M(this)):"exited-fullscreen"===d?(H.jd(!1),M(this)):console.warn("Unknown wrapper message: ",d)};this.Ra=new Set;this.Tb=new WeakSet;this.ua=!1}Vc(){window.addEventListener("focus",()=>{l(this,"window-focus",null,J)});window.addEventListener("blur",()=>{try{var a=window.parent&&window.parent.document.hasFocus()}catch(c){a= !1}l(this,"window-blur",{parentHasFocus:a},J);this.sb=0});window.addEventListener("focusin",a=>{a=a.target;(Ea.has(a.tagName.toLowerCase())||Da(a))&&l(this,"keyboard-blur",null,J)});window.addEventListener("keydown",a=>Ua(this,"keydown",a));window.addEventListener("keyup",a=>Ua(this,"keyup",a));window.addEventListener("dblclick",a=>Va(this,"dblclick",a,I));window.addEventListener("wheel",a=>{this.$||l(this,"wheel",{clientX:a.clientX,clientY:a.clientY+this.da,pageX:a.pageX,pageY:a.pageY+this.da,deltaX:a.deltaX, deltaY:a.deltaY,deltaZ:a.deltaZ,deltaMode:a.deltaMode,timeStamp:a.timeStamp},I)});"undefined"!==typeof PointerEvent?(window.addEventListener("pointerdown",a=>{Wa(a);N(this,"pointerdown",a)}),this.v.ca&&"undefined"!==typeof window.onpointerrawupdate&&self===self.top?window.addEventListener("pointerrawupdate",a=>{N(this,"pointermove",a)}):window.addEventListener("pointermove",a=>N(this,"pointermove",a)),window.addEventListener("pointerup",a=>N(this,"pointerup",a)),window.addEventListener("pointercancel", a=>N(this,"pointercancel",a))):(window.addEventListener("mousedown",a=>{Wa(a);Ya(this,"pointerdown",a)}),window.addEventListener("mousemove",a=>Ya(this,"pointermove",a)),window.addEventListener("mouseup",a=>Ya(this,"pointerup",a)),window.addEventListener("touchstart",a=>{Wa(a);O(this,"pointerdown",a)}),window.addEventListener("touchmove",a=>O(this,"pointermove",a)),window.addEventListener("touchend",a=>O(this,"pointerup",a)),window.addEventListener("touchcancel",a=>O(this,"pointercancel",a)));const b= ()=>this.wc();window.addEventListener("pointerup",b,!0);window.addEventListener("touchend",b,!0);window.addEventListener("click",b,!0);window.addEventListener("keydown",b,!0);window.addEventListener("gamepadconnected",b,!0);this.v.fe()&&!this.v.$c()&&navigator.virtualKeyboard&&(navigator.virtualKeyboard.overlaysContent=!0,navigator.virtualKeyboard.addEventListener("geometrychange",()=>{Za(this,this.ha(),navigator.virtualKeyboard.boundingRect.height)}))}oa(){return this.v.oa()}ha(){return this.v.ha()}wc(){var b= [...this.Ra];this.Ra.clear();if(!this.ua)for(const a of b)(b=a.play())&&b.catch(()=>{this.Tb.has(a)||this.Ra.add(a)})}Ba(b){if("function"!==typeof b.play)throw Error("missing play function");this.Tb.delete(b);let a;try{a=b.play()}catch(c){this.Ra.add(b);return}a&&a.catch(()=>{this.Tb.has(b)||this.Ra.add(b)})}Ja(b){this.Ra.delete(b);this.Tb.add(b)}Eb(b){this.ua=!!b}});"use strict"; async function sa(b){if(b.Ge)throw Error("already initialised");b.Ge=!0;var a=b.xa.sc(("playable-ad"===b.xa.B?b.xa.Xa:"")+"dispatchworker.js");b.Bc=await b.xa.hc(a,b.gb,{name:"DispatchWorker"});a=new MessageChannel;b.Gc=a.port1;b.Bc.postMessage({type:"_init","in-port":a.port2},[a.port2]);b.Nc=await va(b)}function ta(b){return[b.Gc,b.Nc]} async function va(b){const a=b.Ad.length;var c=b.xa.sc(("playable-ad"===b.xa.B?b.xa.Xa:"")+"jobworker.js");c=await b.xa.hc(c,b.gb,{name:"JobWorker"+a});const d=new MessageChannel,e=new MessageChannel;b.Bc.postMessage({type:"_addJobWorker",port:d.port1},[d.port1]);c.postMessage({type:"init",number:a,"dispatch-port":d.port2,"output-port":e.port2},[d.port2,e.port2]);b.Ad.push(c);return e.port1} self.ie=class{constructor(b){this.xa=b;this.gb=b.ba;this.gb="preview"===b.B?this.gb+"workers/":this.gb+b.Xa;this.Je=Math.min(navigator.hardwareConcurrency||2,16);this.Bc=null;this.Ad=[];this.Nc=this.Gc=null}};"use strict";window.C3_IsSupported&&(window.c3_runtimeInterface=new self.Db({Xe:!0,Ye:"workermain.js",Za:["scripts/c3runtime.js"],cc:[],Tc:"",Ue:"scripts/",dc:["box2d.wasm.js"],Nd:"html5"}));"use strict"; async function cb(b,a){a=a.type;let c=!0;0===a?c=await db():1===a&&(c=await eb());l(b,"permission-result",{type:a,result:c})}async function db(){if(!self.DeviceOrientationEvent||!self.DeviceOrientationEvent.requestPermission)return!0;try{return"granted"===await self.DeviceOrientationEvent.requestPermission()}catch(b){return console.warn("[Touch] Failed to request orientation permission: ",b),!1}} async function eb(){if(!self.DeviceMotionEvent||!self.DeviceMotionEvent.requestPermission)return!0;try{return"granted"===await self.DeviceMotionEvent.requestPermission()}catch(b){return console.warn("[Touch] Failed to request motion permission: ",b),!1}}self.Db.ec(class extends self.zb{constructor(b){super(b,"touch");q(this,"request-permission",a=>cb(this,a))}});"use strict";const fb=180/Math.PI; async function gb(b,a){if(a.isiOSCordova||a.isSafari)b.Wb=!0;b.Rc=a.timeScaleMode;b.Fd=["equalpower","HRTF","soundfield"][a.panningModel];b.od=["linear","inverse","exponential"][a.distanceModel];b.Gd=a.refDistance;b.Ed=a.maxDistance;b.Id=a.rolloffFactor;if(b.v.Hc)b.Wb=!0,b.g=new OfflineAudioContext({numberOfChannels:2,sampleRate:48E3,length:Math.ceil(48E3*b.v.sd)});else{var c={latencyHint:a.latencyHint};b.Ld||(c.sampleRate=48E3);if("undefined"!==typeof AudioContext)b.g=new AudioContext(c);else if("undefined"!== typeof webkitAudioContext)b.g=new webkitAudioContext(c);else throw Error("Web Audio API not supported");hb(b);b.g.onstatechange=()=>{"running"!==b.g.state&&hb(b);l(b,"audiocontext-state",{audioContextState:b.g.state})}}b.Na=b.g.createGain();b.Na.connect(b.g.destination);c=a.listenerPos;b.aa[0]=c[0];b.aa[1]=c[1];b.aa[2]=c[2];b.g.listener.setPosition(c[0],c[1],c[2]);b.g.listener.setOrientation(...b.ea);self.C3_GetAudioContextCurrentTime=()=>b.g.currentTime;try{await Promise.all(a.preloadList.map(d=> P(b,d.originalUrl,d.url,d.type,!1)))}catch(d){console.error("[Construct] Preloading sounds failed: ",d)}return{sampleRate:b.g.sampleRate,audioContextState:b.g.state,outputLatency:b.g.outputLatency||0}} async function ib(b,a){var c=a.originalUrl,d=a.url;const e=a.type,f=a.isMusic,g=a.tags,h=a.isLooping,k=a.vol,n=a.pos,p=a.panning,A=a.stereoPan;let x=a.off;0<x&&!a.trueClock&&(b.g.getOutputTimestamp?(a=b.g.getOutputTimestamp(),x=x-a.performanceTime/1E3+a.contextTime):x=x-performance.now()/1E3+b.g.currentTime);b.Bd=g.slice(0);jb(b,g);try{b.R=await kb(b,c,d,e,g,f);if(p){Q(b.R,!0);var r=b.R,B=p.innerAngle,ka=p.outerAngle,la=p.outerGain;if(r.lb){lb(r,p.x,p.y,p.z,p.angle);var D=self.$a.le;r.ra[0]!==D(B)&& (r.ra[0]=D(B),r.F.coneInnerAngle=D(B));r.ra[1]!==D(ka)&&(r.ra[1]=D(ka),r.F.coneOuterAngle=D(ka));r.ra[2]!==la&&(r.ra[2]=la,r.F.coneOuterGain=la)}p.hasOwnProperty("uid")&&(b.R.pa=p.uid)}else"number"===typeof A&&0!==A?(R(b.R,!0),mb(b.R,A)):(Q(b.R,!1),R(b.R,!1));b.R.Play(h,k,n,x)}catch(yb){console.error("[Construct] Audio: error starting playback: ",yb);return}finally{c=g.join(" ");d=b.ub.get(c);if(!d)throw Error("expected pending tag");d.Uc--;0===d.Uc&&(d.resolve(),b.ub.delete(c))}t(b)} async function nb(b,a){var c=a.tags;const d=a.vol,e=a.duration;a=a.stopOnEnd;await ob(b,c);for(const p of S(b,c)){c=p;var f=d,g=e,h=a;if(!c.Pa){var k=c.G.gain;k.cancelScheduledValues(0);var n=c.s.g.currentTime;g=n+g;k.setValueAtTime(k.value,n);k.linearRampToValueAtTime(f,g);c.Ha=f;c.Oa=g;c.Kd=h}}T(b)}async function pb(b,a){const c=a.tags;a=a.rate;await ob(b,c);for(const d of S(b,c))b=d,b.la!==a&&(b.la=a,b.Ca())} async function qb(b,a){const c=a.tags;a=a.pos;await ob(b,c);for(const d of S(b,c))d.nc(a)}async function rb(b,a){const c=a.originalUrl,d=a.url,e=a.type;a=a.isMusic;try{await kb(b,c,d,e,"",a)}catch(f){console.error("[Construct] Audio: error preloading: ",f)}}async function sb(b,a){if(a=await P(b,"",a.url,a.type,a.isMusic,!0))a.j(),a=b.ja.indexOf(a),-1!==a&&b.ja.splice(a,1)} async function tb(b,a){const c=a.type;var d=a.tags;const e=a.params;let f;if("convolution"===c)try{f=await P(b,a.bufferOriginalUrl,a.bufferUrl,a.bufferType,!1)}catch(k){console.log("[Construct] Audio: error loading convolution: ",k);return}for(const k of d){if("filter"===c)d=new self.Td(b,...e);else if("delay"===c)d=new self.Rd(b,...e);else if("convolution"===c){var g=d=new self.Qd(b,f.ia,...e),h=a.bufferType;g.md=a.bufferOriginalUrl;g.nd=h}else if("flanger"===c)d=new self.Ud(b,...e);else if("phaser"=== c)d=new self.Wd(b,...e);else if("gain"===c)d=new self.Vd(b,...e);else if("stereopan"===c)d=new self.Yd(b,...e);else if("tremolo"===c)d=new self.Zd(b,...e);else if("ringmod"===c)d=new self.Xd(b,...e);else if("distortion"===c)d=new self.Sd(b,...e);else if("compressor"===c)d=new self.Pd(b,...e);else if("analyser"===c)d=new self.Od(b,...e);else throw Error("invalid effect type");g=b;h=k;h=h.toLowerCase();let n=g.ka.get(h);n||(n=[],g.ka.set(h,n));d.yd=n.length;d.Pc=h;n.push(d);ub(g,h)}vb(b)} async function wb(b,a){const c=a.saveLoadMode;if(3!==c){var d=[];for(var e of b.H)e.za()&&1===c||!e.za()&&2===c?d.push(e):e.j();b.H=d}for(const f of b.ka.values())for(const g of f)g.j();b.ka.clear();b.ac=a.timeScale;b.Dc=a.gameTime;d=a.listenerPos;b.aa[0]=d[0];b.aa[1]=d[1];b.aa[2]=d[2];b.g.listener.setPosition(d[0],d[1],d[2]);d=a.listenerOrientation;if(Array.isArray(d)){for(e=0;6>e;++e)b.ea[e]=d[e];b.g.listener.setOrientation(...b.ea)}b.ua=a.isSilent;b.v.Eb(b.ua);b.Sb=a.masterVolume;b.Na.gain.value= b.Sb;d=[];for(const f of Object.values(a.effects))d.push(Promise.all(f.map(g=>tb(b,g))));await Promise.all(d);await Promise.all(a.playing.map(f=>xb(b,f,c)));T(b)} async function Ab(b,a){try{const c=b.g.suspend(a.time);b.xd?b.g.resume():(b.g.startRendering().then(d=>{const e=[];for(let f=0,g=d.numberOfChannels;f<g;++f){const h=d.getChannelData(f);e.push(h.buffer)}b.v.Bb("runtime","offline-audio-render-completed",{duration:d.duration,length:d.length,numberOfChannels:d.numberOfChannels,sampleRate:d.sampleRate,channelData:e},null,e)}).catch(d=>Bb(d)),b.xd=!0);await c}catch(c){Bb(c)}} function hb(b){b.Mb||(b.Fc=!1,window.addEventListener("pointerup",b.ya,!0),window.addEventListener("touchend",b.ya,!0),window.addEventListener("click",b.ya,!0),window.addEventListener("keydown",b.ya,!0),b.Mb=!0)} async function P(b,a,c,d,e,f){for(var g of b.ja)if(g.bb()===c)return await Cb(g),g;if(f)return null;if(e&&(b.Wb||b.wd)){f=0;for(let h=0,k=b.ja.length;h<k;++h)g=b.ja[h],b.ja[f]=g,g.za()?g.j():++f;b.ja.length=f}f="audio/webm; codecs=opus"===d&&!b.Ld;e&&f&&(b.wd=!0);c=!e||b.Wb||f?new self.be(b,a,c,d,e,f):new self.$d(b,a,c,d,e);b.ja.push(c);await Cb(c);b.Dd.has(a)||(l(b,"buffer-metadata",{originalUrl:a,duration:c.ga()}),b.Dd.add(a));return c} function Eb(b,a){return b===a||b.normalize().toLowerCase()===a.normalize().toLowerCase()}function Fb(b,a){return(a=b.ka.get(a.toLowerCase()))?a[0].N():b.na()}function ub(b,a){a=a.toLowerCase();let c=b.na();var d=b.ka.get(a);if(d&&d.length){c=d[0].N();for(let f=0,g=d.length;f<g;++f){var e=d[f];f+1===g?e.U(b.na()):e.U(d[f+1].N())}}for(const f of Gb(b,a))d=c,e=f.fa||f.F||f.G,e.disconnect(),e.connect(d);b.Fa&&b.Lc===a&&(b.Fa.disconnect(),b.Fa.connect(c))} function*Gb(b,a){if(a)for(const c of b.H)Eb(0<c.ma.length?c.ma[0]:"",a)&&(yield c);else b.R&&!b.R.O()&&(yield b.R)}function Hb(b,a,c){return c?b.v.Fe(a).then(d=>{const e=b.g.createBuffer(1,d.length,48E3);e.getChannelData(0).set(d);return e}):new Promise((d,e)=>{b.g.decodeAudioData(a,d,e)})}function Ib(b,a){let c=0;for(let d=0,e=b.H.length;d<e;++d){const f=b.H[d];b.H[c]=f;f.P===a?f.j():++c}b.H.length=c} function*S(b,a){if(0<a.length)for(const d of b.H){a:{b=d.ma;var c=a;for(const e of c){c=!1;for(const f of b)if(Eb(f,e)){c=!0;break}if(!c){b=!1;break a}}b=!0}b&&(yield d)}else b.R&&!b.R.O()&&(yield b.R)}async function kb(b,a,c,d,e,f){for(const g of b.H)if(g.bb()===c&&(g.fc()||f))return g.ma=e,g;a=await P(b,a,c,d,f);e="html5"===a.yc?new self.ae(a.s,a,e):new self.ce(a.s,a,e);b.H.push(e);return e} function jb(b,a){a=a.join(" ");let c=b.ub.get(a);if(!c){let d=null;c={Uc:0,promise:new Promise(e=>d=e),resolve:d};b.ub.set(a,c)}c.Uc++}function ob(b,a){return(b=b.ub.get((0===a.length?b.Bd:a).join(" ")))?b.promise:Promise.resolve()}function T(b){if(0<b.Ma.size)t(b);else for(const a of b.H)if(!a.I&&!a.O()){t(b);break}}function Jb(b,a,c,d){l(b,"trigger",{type:a,tags:c,aiid:d})}function vb(b){b.Ic||(b.Ic=!0,Promise.resolve().then(()=>Kb(b)))} function Kb(b){const a={};for(const [c,d]of b.ka)a[c]=d.map(e=>e.ab());l(b,"fxstate",{fxstate:a});b.Ic=!1} async function xb(b,a,c){if(3!==c){var d=a.bufferOriginalUrl,e=a.bufferUrl,f=a.bufferType,g=a.isMusic,h=a.tags,k=a.isLooping,n=a.volume,p=a.playbackTime;if(!g||1!==c)if(g||2!==c){c=null;try{c=await kb(b,d,e,f,h,g)}catch(A){console.error("[Construct] Audio: error loading audio state: ",A);return}b=c;(d=a.pan)?(Q(b,!0),e=b.F,f=d.pos,b.Ta[0]=f[0],b.Ta[1]=f[1],b.Ta[2]=f[2],f=d.orient,b.Sa[0]=f[0],b.Sa[1]=f[1],b.Sa[2]=f[2],e.setPosition(...b.Ta),e.setOrientation(...b.Sa),b.ra[0]=d.cia,b.ra[1]=d.coa,b.ra[2]= d.cog,e.coneInnerAngle=d.cia,e.coneOuterAngle=d.coa,e.coneOuterGain=d.cog,b.pa=d.uid):Q(b,!1);b=c;d=a.stereoPan;"number"!==typeof d?R(b,!1):(R(b,!0),mb(b,d));c.Play(k,n,p,0);a.isPlaying||c.eb();c.uc(a)}}}function Bb(b){console.error("[Audio] Offline rendering error: ",b)} self.$a=class extends self.zb{constructor(b){super(b,"audio");this.Na=this.g=null;this.Mb=this.Fc=!1;this.ya=()=>{if(!this.Fc){var a=this.g;"suspended"===a.state&&a.resume&&a.resume();var c=a.createBuffer(1,220,22050),d=a.createBufferSource();d.buffer=c;d.connect(a.destination);d.start(0);"running"===a.state&&this.Mb&&(this.Fc=!0,window.removeEventListener("pointerup",this.ya,!0),window.removeEventListener("touchend",this.ya,!0),window.removeEventListener("click",this.ya,!0),window.removeEventListener("keydown", this.ya,!0),this.Mb=!1)}};this.ja=[];this.H=[];this.R=null;this.Bd=[];this.Dd=new Set;this.Cd=-1;this.ub=new Map;this.Sb=1;this.ua=!1;this.Rc=0;this.ac=1;this.Dc=0;this.Fd="HRTF";this.od="inverse";this.Gd=600;this.Ed=1E4;this.Id=1;this.aa=[0,0,0];this.ea=[0,0,-1,0,1,0];this.wd=this.Wb=!1;this.Ld=this.v.ge();this.ka=new Map;this.Ma=new Set;this.xd=this.Ic=!1;this.Lc="";this.Fa=null;self.C3Audio_OnMicrophoneStream=(a,c)=>{this.Fa&&this.Fa.disconnect();this.Lc=c.toLowerCase();this.Fa=this.g.createMediaStreamSource(a); this.Fa.connect(Fb(this,this.Lc))};this.Jb=null;self.C3Audio_GetOutputStream=()=>{this.Jb||(this.Jb=this.g.createMediaStreamDestination(),this.Na.connect(this.Jb));return this.Jb.stream};self.C3Audio_DOMInterface=this;aa(this,[["create-audio-context",a=>gb(this,a)],["play",a=>ib(this,a)],["stop",a=>{a=a.tags;for(const c of S(this,a))c.Aa()}],["stop-all",()=>{for(const a of this.H)a.Aa()}],["set-paused",a=>{const c=a.tags;a=a.paused;for(const d of S(this,c))a?d.eb():d.Cb();T(this)}],["set-volume", a=>{const c=a.tags;a=a.vol;for(const d of S(this,c))U(d,a)}],["fade-volume",a=>nb(this,a)],["set-master-volume",a=>{this.Sb=a.vol;this.Na.gain.value=this.Sb}],["set-muted",a=>{const c=a.tags;a=a.isMuted;for(const d of S(this,c))Lb(d,a)}],["set-silent",a=>{this.ua=a.isSilent;this.v.Eb(this.ua);for(const c of this.H)c.Hb()}],["set-looping",a=>{const c=a.tags;a=a.isLooping;for(const d of S(this,c))d.oc(a)}],["set-playback-rate",a=>pb(this,a)],["set-stereo-pan",a=>{const c=a.tags;a=a.p;for(const d of S(this, c))R(d,!0),mb(d,a)}],["seek",a=>qb(this,a)],["preload",a=>rb(this,a)],["unload",a=>sb(this,a)],["unload-all",()=>{for(const a of this.ja)a.j();this.ja.length=0}],["set-suspended",a=>{a=a.isSuspended;!a&&this.g.resume&&this.g.resume();for(const c of this.H)c.pc(a);a&&this.g.suspend&&this.g.suspend()}],["add-effect",a=>tb(this,a)],["set-effect-param",a=>{var c=a.tags;const d=a.index,e=a.param,f=a.value,g=a.ramp;a=a.time;for(const h of c)c=this.ka.get(h.toLowerCase()),!c||0>d||d>=c.length||c[d].Z(e, f,g,a);vb(this)}],["remove-effects",a=>{a=a.tags;for(const c of a){a=c.toLowerCase();const d=this.ka.get(a);if(!d||!d.length)break;for(const e of d)e.j();this.ka.delete(a);ub(this,a)}}],["tick",a=>{this.ac=a.timeScale;this.Dc=a.gameTime;this.Cd=a.tickCount;if(0!==this.Rc)for(var c of this.H)c.Ca();!(c=a.listenerPos)||this.aa[0]===c[0]&&this.aa[1]===c[1]&&this.aa[2]===c[2]||(this.aa[0]=c[0],this.aa[1]=c[1],this.aa[2]=c[2],this.g.listener.setPosition(c[0],c[1],c[2]));if((c=a.listenerOrientation)&&(this.ea[0]!== c[0]||this.ea[1]!==c[1]||this.ea[2]!==c[2]||this.ea[3]!==c[3]||this.ea[4]!==c[4]||this.ea[5]!==c[5])){for(let d=0;6>d;++d)this.ea[d]=c[d];this.g.listener.setOrientation(...this.ea)}for(const d of a.instPans){a=d.uid;for(const e of this.H)e.pa===a&&lb(e,d.x,d.y,d.z,d.angle)}}],["load-state",a=>wb(this,a)],["offline-render-audio",a=>Ab(this,a)],["offline-render-finish",()=>{this.g.resume()}]])}W(){return this.g}na(){return this.Na}Ab(){return this.ua}Ba(b){this.v.Ba(b)}Ja(b){this.v.Ja(b)}Ka(){for(var b of this.Ma)b.Ka(); b=this.g.currentTime;for(var a of this.H)a.Ka(b);a=this.H.filter(c=>!c.I&&!c.O()).map(c=>c.ab());l(this,"state",{tickCount:this.Cd,outputLatency:this.g.outputLatency||0,audioInstances:a,analysers:[...this.Ma].map(c=>({tag:c.Pc,index:c.yd,peak:c.Ua,rms:c.Hd,binCount:c.l.frequencyBinCount,freqBins:c.ud}))});0===a.length&&0===this.Ma.size&&this.Nb&&(this.v.De(this.Md),this.Nb=!1)}static le(b){return b*fb}static Zc(b){return Math.max(Math.min(Math.pow(10,b/20),1),0)}static je(b){return Math.log(Math.max(Math.min(b, 1),0))/Math.log(10)*20}};self.Db.ec(self.$a);"use strict";function Cb(b){b.Qb||(b.Qb=b.tc());return b.Qb}self.Wc=class{constructor(b,a,c,d,e){this.s=b;this.Le=a;this.Ga=c;this.T=d;this.He=e;this.yc="";this.Qb=null}j(){this.Qb=this.s=null}tc(){}W(){return this.s.W()}jc(){return this.Le}bb(){return this.Ga}ic(){return this.T}za(){return this.He}ga(){}};"use strict"; self.$d=class extends self.Wc{constructor(b,a,c,d,e){super(b,a,c,d,e);this.yc="html5";this.M=new Audio;this.M.crossOrigin="anonymous";this.M.autoplay=!1;this.M.preload="auto";this.ob=this.pb=null;this.M.addEventListener("canplaythrough",()=>!0);this.tb=this.W().createGain();this.rb=null;this.M.addEventListener("canplay",()=>{this.pb&&(this.pb(),this.ob=this.pb=null);!this.rb&&this.M&&(this.rb=this.W().createMediaElementSource(this.M),this.rb.connect(this.tb))});this.onended=null;this.M.addEventListener("ended", ()=>{if(this.onended)this.onended()});this.M.addEventListener("error",f=>{console.error(`[Construct] Audio '${this.Ga}' error: `,f);this.ob&&(this.ob(f),this.ob=this.pb=null)})}j(){Ib(this.s,this);this.tb.disconnect();this.tb=null;this.rb.disconnect();this.rb=null;this.M&&!this.M.paused&&this.M.pause();this.M=this.onended=null;super.j()}tc(){return new Promise((b,a)=>{this.pb=b;this.ob=a;this.M.src=this.Ga})}V(){return this.M}ga(){return this.M.duration}};"use strict"; async function Mb(b){if(b.Da)return b.Da;var a=b.s.v;if("cordova"===a.B&&a.ad(b.Ga)&&a.Ob)b.Da=await a.yb(b.Ga);else{a=await fetch(b.Ga);if(!a.ok)throw Error(`error fetching audio data: ${a.status} ${a.statusText}`);b.Da=await a.arrayBuffer()}}async function Nb(b){if(b.ia)return b.ia;b.ia=await Hb(b.s,b.Da,b.Ke);b.Da=null} self.be=class extends self.Wc{constructor(b,a,c,d,e,f){super(b,a,c,d,e);this.yc="webaudio";this.ia=this.Da=null;this.Ke=!!f}j(){Ib(this.s,this);this.ia=this.Da=null;super.j()}async tc(){try{await Mb(this),await Nb(this)}catch(b){console.error(`[Construct] Failed to load audio '${this.Ga}': `,b)}}ga(){return this.ia?this.ia.duration:0}};"use strict";let Ob=0; function Q(b,a){a=!!a;b.lb!==a&&(b.lb=a,b.lb?(R(b,!1),b.F||(b.F=b.W().createPanner(),b.F.panningModel=b.s.Fd,b.F.distanceModel=b.s.od,b.F.refDistance=b.s.Gd,b.F.maxDistance=b.s.Ed,b.F.rolloffFactor=b.s.Id),b.G.disconnect(),b.G.connect(b.F),b.F.connect(b.na())):(b.F.disconnect(),b.G.disconnect(),b.G.connect(b.na())))} function R(b,a){a=!!a;b.Pb!==a&&(b.Pb=a,b.Pb?(Q(b,!1),b.fa=b.W().createStereoPanner(),b.G.disconnect(),b.G.connect(b.fa),b.fa.connect(b.na())):(b.fa.disconnect(),b.fa=null,b.G.disconnect(),b.G.connect(b.na())))}function mb(b,a){b.Pb&&b.Oc!==a&&(b.fa.pan.value=a,b.Oc=a)}function U(b,a){b.Ha=a;b.G.gain.cancelScheduledValues(0);b.Oa=-1;b.G.gain.value=b.kc()}function Lb(b,a){a=!!a;b.Pa!==a&&(b.Pa=a,b.Hb())} function lb(b,a,c,d,e){if(b.lb){var f=b.Ta,g=b.Sa,h=Math.cos(e);e=Math.sin(e);if(f[0]!==a||f[1]!==c||f[2]!==d)f[0]=a,f[1]=c,f[2]=d,b.F.setPosition(...f);if(g[0]!==h||g[1]!==e||0!==g[2])g[0]=h,g[1]=e,g[2]=0,b.F.setOrientation(...g)}}function V(b){return b.Jc?b.s.Dc:performance.now()/1E3} self.Xc=class{constructor(b,a,c){this.s=b;this.P=a;this.ma=c;this.Ib=Ob++;this.G=this.W().createGain();this.G.connect(this.na());this.F=null;this.lb=!1;this.Ta=[0,0,0];this.Sa=[0,0,0];this.ra=[0,0,0];this.fa=null;this.Pb=!1;this.Oc=0;this.I=!0;this.Y=this.sa=this.K=!1;this.Ha=1;this.Pa=!1;this.la=1;b=this.s.Rc;this.Jc=1===b&&!this.za()||2===b;this.Oa=this.pa=-1;this.Kd=!1}j(){this.P=this.s=null;this.F&&(this.F.disconnect(),this.F=null);this.fa&&(this.fa.disconnect(),this.fa=null);this.G.disconnect(); this.G=null}W(){return this.s.W()}na(){return Fb(this.s,0<this.ma.length?this.ma[0]:"")}jc(){return this.P.jc()}bb(){return this.P.bb()}ic(){return this.P.ic()}za(){return this.P.za()}O(){}fc(){}IsPlaying(){return!this.I&&!this.K&&!this.O()}Ia(){}ga(){return this.P.ga()}Play(){}Aa(){}eb(){}Cb(){}Ka(b){-1!==this.Oa&&b>=this.Oa&&(this.Oa=-1,this.Kd&&this.Aa(),Jb(this.s,"fade-ended",this.ma,this.Ib))}kc(){const b=this.Ha;return isFinite(b)?b:0}Ab(){return this.s.Ab()}Hb(){}oc(){}Ca(){}nc(){}pc(){}lc(){}ab(){var b= this.Ib,a=this.ma,c=this.ga(),d=-1===this.Oa?this.Ha:this.G.gain.value,e=this.IsPlaying();if(this.F){var f=this.F;f={pos:this.Ta,orient:this.Sa,cia:f.coneInnerAngle,coa:f.coneOuterAngle,cog:f.coneOuterGain,uid:this.pa}}else f=null;return{aiid:b,tags:a,duration:c,volume:d,isPlaying:e,playbackTime:this.Ia(),playbackRate:this.la,uid:this.pa,bufferOriginalUrl:this.jc(),bufferUrl:"",bufferType:this.ic(),isMusic:this.za(),isLooping:this.Y,isMuted:this.Pa,resumePosition:this.lc(),pan:f,stereoPan:this.fa? this.Oc:null}}uc(b){var a=b.playbackRate;this.la!==a&&(this.la=a,this.Ca());Lb(this,b.isMuted)}};"use strict"; self.ae=class extends self.Xc{constructor(b,a,c){super(b,a,c);this.P.tb.connect(this.G);this.P.onended=()=>this.vc()}j(){this.Aa();this.P.tb.disconnect();super.j()}V(){return this.P.V()}vc(){this.I=!0;this.pa=-1;Jb(this.s,"ended",this.ma,this.Ib)}O(){return this.V().ended}fc(){return this.I?!0:this.O()}Ia(){let b=this.V().currentTime;this.Y||(b=Math.min(b,this.ga()));return b}Play(b,a,c){const d=this.V();1!==d.playbackRate&&(d.playbackRate=1);d.loop!==b&&(d.loop=b);U(this,a);d.muted&&(d.muted=!1); if(d.currentTime!==c)try{d.currentTime=c}catch(e){console.warn(`[Construct] Exception seeking audio '${this.P.bb()}' to position '${c}': `,e)}this.s.Ba(d);this.K=this.I=!1;this.Y=b;this.la=1}Aa(){const b=this.V();b.paused||b.pause();this.s.Ja(b);this.I=!0;this.K=!1;this.pa=-1}eb(){if(!(this.K||this.I||this.O())){var b=this.V();b.paused||b.pause();this.s.Ja(b);this.K=!0}}Cb(){!this.K||this.I||this.O()||(this.s.Ba(this.V()),this.K=!1)}Hb(){this.V().muted=this.Pa||this.Ab()}oc(b){b=!!b;this.Y!==b&&(this.Y= b,this.V().loop=b)}Ca(){let b=this.la;this.Jc&&(b*=this.s.ac);try{this.V().playbackRate=b}catch(a){console.warn(`[Construct] Unable to set playback rate '${b}':`,a)}}nc(b){if(!this.I&&!this.O())try{this.V().currentTime=b}catch(a){console.warn(`[Construct] Error seeking audio to '${b}': `,a)}}lc(){return this.Ia()}pc(b){b?this.IsPlaying()?(this.V().pause(),this.sa=!0):this.sa=!1:this.sa&&(this.s.Ba(this.V()),this.sa=!1)}};"use strict"; function W(b){b.o&&(b.o.onended=null,b.o.disconnect(),b.o.buffer=null);b.o=null;b.fb=null} self.ce=class extends self.Xc{constructor(b,a,c){super(b,a,c);this.o=null;this.Ub=d=>this.vc(d);this.Ec=!0;this.fb=null;this.S=this.Vb=this.Xb=0;this.Mc=1}j(){this.Aa();W(this);this.Ub=null;super.j()}vc(b){this.K||this.sa||b.target!==this.fb||(this.I=this.Ec=!0,this.pa=-1,W(this),Jb(this.s,"ended",this.ma,this.Ib))}O(){return!this.I&&this.o&&this.o.loop||this.K?!1:this.Ec}fc(){return!this.o||this.I?!0:this.O()}Ia(){let b;b=this.K?this.S:this.Vb+(V(this)-this.Xb)*this.la;this.Y||(b=Math.min(b,this.ga())); return b}Play(b,a,c,d){this.Mc=1;U(this,a);W(this);this.o=this.W().createBufferSource();this.o.buffer=this.P.ia;this.o.connect(this.G);this.fb=this.o;this.o.onended=this.Ub;this.o.loop=b;this.o.start(d,c);this.K=this.I=this.Ec=!1;this.Y=b;this.la=1;this.Xb=V(this);this.Vb=c}Aa(){if(this.o)try{this.o.stop(0)}catch(b){}this.I=!0;this.K=!1;this.pa=-1}eb(){this.K||this.I||this.O()||(this.S=this.Ia(),this.Y&&(this.S%=this.ga()),this.K=!0,this.o.stop(0))}Cb(){!this.K||this.I||this.O()||(W(this),this.o= this.W().createBufferSource(),this.o.buffer=this.P.ia,this.o.connect(this.G),this.fb=this.o,this.o.onended=this.Ub,this.o.loop=this.Y,U(this,this.Ha),this.Ca(),this.o.start(0,this.S),this.Xb=V(this),this.Vb=this.S,this.K=!1)}kc(){return super.kc()*this.Mc}Hb(){this.Mc=this.Pa||this.Ab()?0:1;U(this,this.Ha)}oc(b){b=!!b;this.Y!==b&&(this.Y=b,this.o&&(this.o.loop=b))}Ca(){let b=this.la;this.Jc&&(b*=this.s.ac);this.o&&(this.o.playbackRate.value=b)}nc(b){this.I||this.O()||(this.K?this.S=b:(this.eb(),this.S= b,this.Cb()))}lc(){return this.S}pc(b){b?this.IsPlaying()?(this.sa=!0,this.S=this.Ia(),this.Y&&(this.S%=this.ga()),this.o.stop(0)):this.sa=!1:this.sa&&(W(this),this.o=this.W().createBufferSource(),this.o.buffer=this.P.ia,this.o.connect(this.G),this.fb=this.o,this.o.onended=this.Ub,this.o.loop=this.Y,U(this,this.Ha),this.Ca(),this.o.start(0,this.S),this.Xb=V(this),this.Vb=this.S,this.sa=!1)}uc(b){super.uc(b);this.S=b.resumePosition}};"use strict";function X(b){return b.g.createGain()} function Y(b,a,c,d,e){a.cancelScheduledValues(0);if(0===e)a.value=c;else switch(b=b.g.currentTime,e+=b,d){case 0:a.setValueAtTime(c,e);break;case 1:a.setValueAtTime(a.value,b);a.linearRampToValueAtTime(c,e);break;case 2:a.setValueAtTime(a.value,b),a.exponentialRampToValueAtTime(c,e)}}class Z{constructor(b){this.s=b;this.g=b.W();this.yd=-1;this.T=this.Pc="";this.m=null}j(){this.g=null}N(){}U(){}ab(){return{type:this.T,tag:this.Pc,params:this.m}}} self.Td=class extends Z{constructor(b,a,c,d,e,f,g){super(b);this.T="filter";this.m=[a,c,d,e,f,g];this.u=X(this);this.i=X(this);this.i.gain.value=g;this.h=X(this);this.h.gain.value=1-g;this.D=this.g.createBiquadFilter();this.D.type=a;this.D.frequency.value=c;this.D.detune.value=d;this.D.Q.value=e;this.D.gain.vlaue=f;this.u.connect(this.D);this.u.connect(this.h);this.D.connect(this.i)}j(){this.u.disconnect();this.D.disconnect();this.i.disconnect();this.h.disconnect();super.j()}U(b){this.i.disconnect(); this.i.connect(b);this.h.disconnect();this.h.connect(b)}N(){return this.u}Z(b,a,c,d){switch(b){case 0:a=Math.max(Math.min(a/100,1),0);this.m[5]=a;Y(this,this.i.gain,a,c,d);Y(this,this.h.gain,1-a,c,d);break;case 1:this.m[1]=a;Y(this,this.D.frequency,a,c,d);break;case 2:this.m[2]=a;Y(this,this.D.detune,a,c,d);break;case 3:this.m[3]=a;Y(this,this.D.Q,a,c,d);break;case 4:this.m[4]=a,Y(this,this.D.gain,a,c,d)}}}; self.Rd=class extends Z{constructor(b,a,c,d){super(b);this.T="delay";this.m=[a,c,d];this.u=X(this);this.i=X(this);this.i.gain.value=d;this.h=X(this);this.h.gain.value=1-d;this.qb=X(this);this.X=this.g.createDelay(a);this.X.delayTime.value=a;this.jb=X(this);this.jb.gain.value=c;this.u.connect(this.qb);this.u.connect(this.h);this.qb.connect(this.i);this.qb.connect(this.X);this.X.connect(this.jb);this.jb.connect(this.qb)}j(){this.u.disconnect();this.i.disconnect();this.h.disconnect();this.qb.disconnect(); this.X.disconnect();this.jb.disconnect();super.j()}U(b){this.i.disconnect();this.i.connect(b);this.h.disconnect();this.h.connect(b)}N(){return this.u}Z(b,a,c,d){const e=self.$a.Zc;switch(b){case 0:a=Math.max(Math.min(a/100,1),0);this.m[2]=a;Y(this,this.i.gain,a,c,d);Y(this,this.h.gain,1-a,c,d);break;case 4:this.m[1]=e(a);Y(this,this.jb.gain,e(a),c,d);break;case 5:this.m[0]=a,Y(this,this.X.delayTime,a,c,d)}}}; self.Qd=class extends Z{constructor(b,a,c,d){super(b);this.T="convolution";this.m=[c,d];this.nd=this.md="";this.u=X(this);this.i=X(this);this.i.gain.value=d;this.h=X(this);this.h.gain.value=1-d;this.ib=this.g.createConvolver();this.ib.normalize=c;this.ib.buffer=a;this.u.connect(this.ib);this.u.connect(this.h);this.ib.connect(this.i)}j(){this.u.disconnect();this.ib.disconnect();this.i.disconnect();this.h.disconnect();super.j()}U(b){this.i.disconnect();this.i.connect(b);this.h.disconnect();this.h.connect(b)}N(){return this.u}Z(b, a,c,d){switch(b){case 0:a=Math.max(Math.min(a/100,1),0),this.m[1]=a,Y(this,this.i.gain,a,c,d),Y(this,this.h.gain,1-a,c,d)}}ab(){const b=super.ab();b.bufferOriginalUrl=this.md;b.bufferUrl="";b.bufferType=this.nd;return b}}; self.Ud=class extends Z{constructor(b,a,c,d,e,f){super(b);this.T="flanger";this.m=[a,c,d,e,f];this.u=X(this);this.h=X(this);this.h.gain.value=1-f/2;this.i=X(this);this.i.gain.value=f/2;this.kb=X(this);this.kb.gain.value=e;this.X=this.g.createDelay(a+c);this.X.delayTime.value=a;this.A=this.g.createOscillator();this.A.frequency.value=d;this.L=X(this);this.L.gain.value=c;this.u.connect(this.X);this.u.connect(this.h);this.X.connect(this.i);this.X.connect(this.kb);this.kb.connect(this.X);this.A.connect(this.L); this.L.connect(this.X.delayTime);this.A.start(0)}j(){this.A.stop(0);this.u.disconnect();this.X.disconnect();this.A.disconnect();this.L.disconnect();this.h.disconnect();this.i.disconnect();this.kb.disconnect();super.j()}U(b){this.i.disconnect();this.i.connect(b);this.h.disconnect();this.h.connect(b)}N(){return this.u}Z(b,a,c,d){switch(b){case 0:a=Math.max(Math.min(a/100,1),0);this.m[4]=a;Y(this,this.i.gain,a/2,c,d);Y(this,this.h.gain,1-a/2,c,d);break;case 6:this.m[1]=a/1E3;Y(this,this.L.gain,a/1E3, c,d);break;case 7:this.m[2]=a;Y(this,this.A.frequency,a,c,d);break;case 8:this.m[3]=a/100,Y(this,this.kb.gain,a/100,c,d)}}}; self.Wd=class extends Z{constructor(b,a,c,d,e,f,g){super(b);this.T="phaser";this.m=[a,c,d,e,f,g];this.u=X(this);this.h=X(this);this.h.gain.value=1-g/2;this.i=X(this);this.i.gain.value=g/2;this.D=this.g.createBiquadFilter();this.D.type="allpass";this.D.frequency.value=a;this.D.detune.value=c;this.D.Q.value=d;this.A=this.g.createOscillator();this.A.frequency.value=f;this.L=X(this);this.L.gain.value=e;this.u.connect(this.D);this.u.connect(this.h);this.D.connect(this.i);this.A.connect(this.L);this.L.connect(this.D.frequency); this.A.start(0)}j(){this.A.stop(0);this.u.disconnect();this.D.disconnect();this.A.disconnect();this.L.disconnect();this.h.disconnect();this.i.disconnect();super.j()}U(b){this.i.disconnect();this.i.connect(b);this.h.disconnect();this.h.connect(b)}N(){return this.u}Z(b,a,c,d){switch(b){case 0:a=Math.max(Math.min(a/100,1),0);this.m[5]=a;Y(this,this.i.gain,a/2,c,d);Y(this,this.h.gain,1-a/2,c,d);break;case 1:this.m[0]=a;Y(this,this.D.frequency,a,c,d);break;case 2:this.m[1]=a;Y(this,this.D.detune,a,c,d); break;case 3:this.m[2]=a;Y(this,this.D.Q,a,c,d);break;case 6:this.m[3]=a;Y(this,this.L.gain,a,c,d);break;case 7:this.m[4]=a,Y(this,this.A.frequency,a,c,d)}}};self.Vd=class extends Z{constructor(b,a){super(b);this.T="gain";this.m=[a];this.l=X(this);this.l.gain.value=a}j(){this.l.disconnect();super.j()}U(b){this.l.disconnect();this.l.connect(b)}N(){return this.l}Z(b,a,c,d){const e=self.$a.Zc;switch(b){case 4:this.m[0]=e(a),Y(this,this.l.gain,e(a),c,d)}}}; self.Yd=class extends Z{constructor(b,a){super(b);this.T="stereopan";this.m=[a];this.l=this.g.createStereoPanner();this.l.pan.value=a}j(){this.l.disconnect();super.j()}U(b){this.l.disconnect();this.l.connect(b)}N(){return this.l}Z(b,a,c,d){a=Math.min(Math.max(a/100,-1),1);switch(b){case 9:this.m[0]=a,Y(this,this.l.pan,a,c,d)}}}; self.Zd=class extends Z{constructor(b,a,c){super(b);this.T="tremolo";this.m=[a,c];this.l=X(this);this.l.gain.value=1-c/2;this.A=this.g.createOscillator();this.A.frequency.value=a;this.L=X(this);this.L.gain.value=c/2;this.A.connect(this.L);this.L.connect(this.l.gain);this.A.start(0)}j(){this.A.stop(0);this.A.disconnect();this.L.disconnect();this.l.disconnect();super.j()}U(b){this.l.disconnect();this.l.connect(b)}N(){return this.l}Z(b,a,c,d){switch(b){case 0:a=Math.max(Math.min(a/100,1),0);this.m[1]= a;Y(this,this.l.gain,1-a/2,c,d);Y(this,this.L.gain,a/2,c,d);break;case 7:this.m[0]=a,Y(this,this.A.frequency,a,c,d)}}}; self.Xd=class extends Z{constructor(b,a,c){super(b);this.T="ringmod";this.m=[a,c];this.u=X(this);this.i=X(this);this.i.gain.value=c;this.h=X(this);this.h.gain.value=1-c;this.vb=X(this);this.vb.gain.value=0;this.A=this.g.createOscillator();this.A.frequency.value=a;this.A.connect(this.vb.gain);this.A.start(0);this.u.connect(this.vb);this.u.connect(this.h);this.vb.connect(this.i)}j(){this.A.stop(0);this.A.disconnect();this.vb.disconnect();this.u.disconnect();this.i.disconnect();this.h.disconnect();super.j()}U(b){this.i.disconnect(); this.i.connect(b);this.h.disconnect();this.h.connect(b)}N(){return this.u}Z(b,a,c,d){switch(b){case 0:a=Math.max(Math.min(a/100,1),0);this.m[1]=a;Y(this,this.i.gain,a,c,d);Y(this,this.h.gain,1-a,c,d);break;case 7:this.m[0]=a,Y(this,this.A.frequency,a,c,d)}}}; self.Sd=class extends Z{constructor(b,a,c,d,e,f){super(b);this.T="distortion";this.m=[a,c,d,e,f];this.u=X(this);this.Zb=X(this);this.Yb=X(this);b=d;.01>b&&(b=.01);this.Zb.gain.value=b;this.Yb.gain.value=Math.pow(1/b,.6)*e;this.i=X(this);this.i.gain.value=f;this.h=X(this);this.h.gain.value=1-f;this.bc=this.g.createWaveShaper();this.Ac=new Float32Array(65536);for(e=0;32768>e;++e)f=e/32768,b=1.05*c*a-a,d=0>f?-f:f,d<a?b=d:(d=1-Math.exp(-(1/b)*(d-a)),b=a+b*d),f=b*(0>f?-1:1),this.Ac[32768+e]=f,this.Ac[32768- e-1]=-f;this.bc.curve=this.Ac;this.u.connect(this.Zb);this.u.connect(this.h);this.Zb.connect(this.bc);this.bc.connect(this.Yb);this.Yb.connect(this.i)}j(){this.u.disconnect();this.Zb.disconnect();this.bc.disconnect();this.Yb.disconnect();this.i.disconnect();this.h.disconnect();super.j()}U(b){this.i.disconnect();this.i.connect(b);this.h.disconnect();this.h.connect(b)}N(){return this.u}Z(b,a,c,d){switch(b){case 0:a=Math.max(Math.min(a/100,1),0),this.m[4]=a,Y(this,this.i.gain,a,c,d),Y(this,this.h.gain, 1-a,c,d)}}};self.Pd=class extends Z{constructor(b,a,c,d,e,f){super(b);this.T="compressor";this.m=[a,c,d,e,f];this.l=this.g.createDynamicsCompressor();this.l.threshold.value=a;this.l.knee.value=c;this.l.ratio.value=d;this.l.attack.value=e;this.l.release.value=f}j(){this.l.disconnect();super.j()}U(b){this.l.disconnect();this.l.connect(b)}N(){return this.l}Z(){}}; self.Od=class extends Z{constructor(b,a,c){super(b);this.T="analyser";this.m=[a,c];this.l=this.g.createAnalyser();this.l.fftSize=a;this.l.smoothingTimeConstant=c;this.ud=new Float32Array(this.l.frequencyBinCount);this.Jd=new Uint8Array(a);this.Hd=this.Ua=0;b=this.s;b.Ma.add(this);T(b)}j(){this.s.Ma.delete(this);this.l.disconnect();super.j()}Ka(){this.l.getFloatFrequencyData(this.ud);this.l.getByteTimeDomainData(this.Jd);const b=this.l.fftSize;let a=this.Ua=0;for(var c=0;c<b;++c){let d=(this.Jd[c]- 128)/128;0>d&&(d=-d);this.Ua<d&&(this.Ua=d);a+=d*d}c=self.$a.je;this.Ua=c(this.Ua);this.Hd=c(Math.sqrt(a/b))}U(b){this.l.disconnect();this.l.connect(b)}N(){return this.l}Z(){}};
| ver. 1.4 |
Github
|
.
| PHP 8.2.29 | Генераци� �траницы: 0 |
proxy
|
phpinfo
|
�а�тройка