From 77004cc44b103fe7eaf410f28b1aab7fdd2991ff Mon Sep 17 00:00:00 2001 From: Olivier Biot Date: Sun, 21 Aug 2022 18:29:35 +0800 Subject: [PATCH] update dist files --- dist/melonjs.js | 107 +++++++++++++++++++++++++++++++-------- dist/melonjs.min.js | 4 +- dist/melonjs.module.d.ts | 48 ++++++++++++++---- dist/melonjs.module.js | 98 ++++++++++++++++++++++++++++------- 4 files changed, 205 insertions(+), 52 deletions(-) diff --git a/dist/melonjs.js b/dist/melonjs.js index 1e91244461..8e307ec8ae 100644 --- a/dist/melonjs.js +++ b/dist/melonjs.js @@ -10111,11 +10111,55 @@ /** @ignore */ Point.prototype.onResetEvent = function onResetEvent (x, y) { - if ( x === void 0 ) x = 0; - if ( y === void 0 ) y = 0; + if ( x === void 0 ) x = 0; + if ( y === void 0 ) y = 0; - this.x = x; - this.y = y; + this.set(x, y); + }; + + /** + * set the Point x and y properties to the given values + * @param {number} x + * @param {number} y + * @returns {Point} Reference to this object for method chaining + */ + Point.prototype.set = function set (x, y) { + if ( x === void 0 ) x = 0; + if ( y === void 0 ) y = 0; + + this.x = x; + this.y = y; + return this; + }; + + /** + * return true if the two points are the same + * @name equals + * @memberof Point + * @method + * @param {Point} point + * @returns {boolean} + */ + /** + * return true if this point is equal to the given values + * @name equals + * @memberof Point + * @param {number} x + * @param {number} y + * @returns {boolean} + */ + Point.prototype.equals = function equals () { + var _x, _y; + if (arguments.length === 2) { + // x, y + _x = arguments[0]; + _y = arguments[1]; + } else { + // point + _x = arguments[0].x; + _y = arguments[0].y; + } + return ((this.x === _x) && (this.y === _y)); }; /** @@ -18219,18 +18263,6 @@ */ this.mask = undefined; - /** - * define a tint for this renderable. a (255, 255, 255) r, g, b value will remove the tint effect. - * @type {Color} - * @default (255, 255, 255) - * @example - * // add a red tint to this renderable - * this.tint.setColor(255, 128, 128); - * // remove the tint - * this.tint.setColor(255, 255, 255); - */ - this.tint = pool.pull("Color", 255, 255, 255, 1.0); - /** * the blend mode to be applied to this renderable (see renderer setBlendMode for available blend mode) * @type {string} @@ -18282,7 +18314,7 @@ Renderable.prototype = Object.create( Rect && Rect.prototype ); Renderable.prototype.constructor = Renderable; - var prototypeAccessors = { isFloating: { configurable: true },inViewport: { configurable: true },isFlippedX: { configurable: true },isFlippedY: { configurable: true } }; + var prototypeAccessors = { isFloating: { configurable: true },tint: { configurable: true },inViewport: { configurable: true },isFlippedX: { configurable: true },isFlippedY: { configurable: true } }; /** * Whether the renderable object is floating, or contained in a floating container @@ -18293,6 +18325,34 @@ return this.floating === true || (typeof this.ancestor !== "undefined" && this.ancestor.floating === true); }; + /** + * define a tint for this renderable. a (255, 255, 255) r, g, b value will remove the tint effect. + * @type {Color} + * @default (255, 255, 255) + * @example + * // add a red tint to this renderable + * this.tint.setColor(255, 128, 128); + * // remove the tint + * this.tint.setColor(255, 255, 255); + */ + prototypeAccessors.tint.get = function () { + if (typeof this._tint === "undefined") { + this._tint = pool.pull("Color", 255, 255, 255, 1.0); + } + return this._tint; + }; + prototypeAccessors.tint.set = function (value) { + if (typeof this._tint === "undefined") { + this._tint = pool.pull("Color", 255, 255, 255, 1.0); + } + if (value instanceof Color) { + this._tint.copy(value); + } else { + // string (#RGB, #ARGB, #RRGGBB, #AARRGGBB) + this._tint.parseCSS(value); + } + }; + /** * Whether the renderable object is visible and within the viewport * @type {boolean} @@ -18746,9 +18806,9 @@ this.mask = undefined; } - if (typeof this.tint !== "undefined") { - pool.push(this.tint); - this.tint = undefined; + if (typeof this._tint !== "undefined") { + pool.push(this._tint); + this._tint = undefined; } this.ancestor = undefined; @@ -29195,7 +29255,12 @@ } if (typeof (settings.tint) !== "undefined") { - this.tint.setColor(settings.tint); + if (settings.tint instanceof Color) { + this.tint.copy(settings.tint); + } else { + // string (#RGB, #ARGB, #RRGGBB, #AARRGGBB) + this.tint.parseCSS(settings.tint); + } } // set the sprite name if specified diff --git a/dist/melonjs.min.js b/dist/melonjs.min.js index d77568238a..e232659e47 100644 --- a/dist/melonjs.min.js +++ b/dist/melonjs.min.js @@ -5,7 +5,7 @@ * http://www.opensource.org/licenses/mit-license * @copyright (C) 2011 - 2022 Olivier Biot (AltByte Pte Ltd) */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).me={})}(this,(function(t){"use strict";var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},i=function(t){return t&&t.Math==Math&&t},o=i("object"==typeof globalThis&&globalThis)||i("object"==typeof window&&window)||i("object"==typeof self&&self)||i("object"==typeof e&&e)||function(){return this}()||Function("return this")(),n={},r=function(t){try{return!!t()}catch(t){return!0}},s=!r((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),a=!r((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")})),h=a,l=Function.prototype.call,u=h?l.bind(l):function(){return l.apply(l,arguments)},c={},p={}.propertyIsEnumerable,d=Object.getOwnPropertyDescriptor,f=d&&!p.call({1:2},1);c.f=f?function(t){var e=d(this,t);return!!e&&e.enumerable}:p;var y,g,v=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},m=a,x=Function.prototype,_=x.bind,b=x.call,w=m&&_.bind(b,b),T=m?function(t){return t&&w(t)}:function(t){return t&&function(){return b.apply(t,arguments)}},A=T,E=A({}.toString),S=A("".slice),C=function(t){return S(E(t),8,-1)},M=r,P=C,O=Object,I=T("".split),k=M((function(){return!O("z").propertyIsEnumerable(0)}))?function(t){return"String"==P(t)?I(t,""):O(t)}:O,R=TypeError,B=function(t){if(null==t)throw R("Can't call method on "+t);return t},D=k,L=B,z=function(t){return D(L(t))},F=function(t){return"function"==typeof t},V=F,j=function(t){return"object"==typeof t?null!==t:V(t)},U=o,N=F,G=function(t){return N(t)?t:void 0},X=function(t,e){return arguments.length<2?G(U[t]):U[t]&&U[t][e]},H=T({}.isPrototypeOf),Y=o,W=X("navigator","userAgent")||"",q=Y.process,K=Y.Deno,Z=q&&q.versions||K&&K.version,Q=Z&&Z.v8;Q&&(g=(y=Q.split("."))[0]>0&&y[0]<4?1:+(y[0]+y[1])),!g&&W&&(!(y=W.match(/Edge\/(\d+)/))||y[1]>=74)&&(y=W.match(/Chrome\/(\d+)/))&&(g=+y[1]);var J=g,$=r,tt=!!Object.getOwnPropertySymbols&&!$((function(){var t=Symbol();return!String(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&J&&J<41})),et=tt&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,it=X,ot=F,nt=H,rt=Object,st=et?function(t){return"symbol"==typeof t}:function(t){var e=it("Symbol");return ot(e)&&nt(e.prototype,rt(t))},at=String,ht=F,lt=function(t){try{return at(t)}catch(t){return"Object"}},ut=TypeError,ct=function(t){if(ht(t))return t;throw ut(lt(t)+" is not a function")},pt=u,dt=F,ft=j,yt=TypeError,gt={exports:{}},vt=o,mt=Object.defineProperty,xt=function(t,e){try{mt(vt,t,{value:e,configurable:!0,writable:!0})}catch(i){vt[t]=e}return e},_t=xt,bt="__core-js_shared__",wt=o[bt]||_t(bt,{}),Tt=wt;(gt.exports=function(t,e){return Tt[t]||(Tt[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.24.1",mode:"global",copyright:"© 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.24.1/LICENSE",source:"https://github.com/zloirock/core-js"});var At=B,Et=Object,St=function(t){return Et(At(t))},Ct=T({}.hasOwnProperty),Mt=Object.hasOwn||function(t,e){return Ct(St(t),e)},Pt=T,Ot=0,It=Math.random(),kt=Pt(1..toString),Rt=function(t){return"Symbol("+(void 0===t?"":t)+")_"+kt(++Ot+It,36)},Bt=o,Dt=gt.exports,Lt=Mt,zt=Rt,Ft=tt,Vt=et,jt=Dt("wks"),Ut=Bt.Symbol,Nt=Ut&&Ut.for,Gt=Vt?Ut:Ut&&Ut.withoutSetter||zt,Xt=function(t){if(!Lt(jt,t)||!Ft&&"string"!=typeof jt[t]){var e="Symbol."+t;Ft&&Lt(Ut,t)?jt[t]=Ut[t]:jt[t]=Vt&&Nt?Nt(e):Gt(e)}return jt[t]},Ht=u,Yt=j,Wt=st,qt=function(t,e){var i=t[e];return null==i?void 0:ct(i)},Kt=function(t,e){var i,o;if("string"===e&&dt(i=t.toString)&&!ft(o=pt(i,t)))return o;if(dt(i=t.valueOf)&&!ft(o=pt(i,t)))return o;if("string"!==e&&dt(i=t.toString)&&!ft(o=pt(i,t)))return o;throw yt("Can't convert object to primitive value")},Zt=TypeError,Qt=Xt("toPrimitive"),Jt=function(t,e){if(!Yt(t)||Wt(t))return t;var i,o=qt(t,Qt);if(o){if(void 0===e&&(e="default"),i=Ht(o,t,e),!Yt(i)||Wt(i))return i;throw Zt("Can't convert object to primitive value")}return void 0===e&&(e="number"),Kt(t,e)},$t=st,te=function(t){var e=Jt(t,"string");return $t(e)?e:e+""},ee=j,ie=o.document,oe=ee(ie)&&ee(ie.createElement),ne=function(t){return oe?ie.createElement(t):{}},re=!s&&!r((function(){return 7!=Object.defineProperty(ne("div"),"a",{get:function(){return 7}}).a})),se=s,ae=u,he=c,le=v,ue=z,ce=te,pe=Mt,de=re,fe=Object.getOwnPropertyDescriptor;n.f=se?fe:function(t,e){if(t=ue(t),e=ce(e),de)try{return fe(t,e)}catch(t){}if(pe(t,e))return le(!ae(he.f,t,e),t[e])};var ye={},ge=s&&r((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype})),ve=j,me=String,xe=TypeError,_e=function(t){if(ve(t))return t;throw xe(me(t)+" is not an object")},be=s,we=re,Te=ge,Ae=_e,Ee=te,Se=TypeError,Ce=Object.defineProperty,Me=Object.getOwnPropertyDescriptor,Pe="enumerable",Oe="configurable",Ie="writable";ye.f=be?Te?function(t,e,i){if(Ae(t),e=Ee(e),Ae(i),"function"==typeof t&&"prototype"===e&&"value"in i&&Ie in i&&!i.writable){var o=Me(t,e);o&&o.writable&&(t[e]=i.value,i={configurable:Oe in i?i.configurable:o.configurable,enumerable:Pe in i?i.enumerable:o.enumerable,writable:!1})}return Ce(t,e,i)}:Ce:function(t,e,i){if(Ae(t),e=Ee(e),Ae(i),we)try{return Ce(t,e,i)}catch(t){}if("get"in i||"set"in i)throw Se("Accessors not supported");return"value"in i&&(t[e]=i.value),t};var ke=ye,Re=v,Be=s?function(t,e,i){return ke.f(t,e,Re(1,i))}:function(t,e,i){return t[e]=i,t},De={exports:{}},Le=s,ze=Mt,Fe=Function.prototype,Ve=Le&&Object.getOwnPropertyDescriptor,je=ze(Fe,"name"),Ue={EXISTS:je,PROPER:je&&"something"===function(){}.name,CONFIGURABLE:je&&(!Le||Le&&Ve(Fe,"name").configurable)},Ne=F,Ge=wt,Xe=T(Function.toString);Ne(Ge.inspectSource)||(Ge.inspectSource=function(t){return Xe(t)});var He,Ye,We,qe=Ge.inspectSource,Ke=F,Ze=qe,Qe=o.WeakMap,Je=Ke(Qe)&&/native code/.test(Ze(Qe)),$e=gt.exports,ti=Rt,ei=$e("keys"),ii={},oi=Je,ni=o,ri=T,si=j,ai=Be,hi=Mt,li=wt,ui=function(t){return ei[t]||(ei[t]=ti(t))},ci=ii,pi="Object already initialized",di=ni.TypeError,fi=ni.WeakMap;if(oi||li.state){var yi=li.state||(li.state=new fi),gi=ri(yi.get),vi=ri(yi.has),mi=ri(yi.set);He=function(t,e){if(vi(yi,t))throw new di(pi);return e.facade=t,mi(yi,t,e),e},Ye=function(t){return gi(yi,t)||{}},We=function(t){return vi(yi,t)}}else{var xi=ui("state");ci[xi]=!0,He=function(t,e){if(hi(t,xi))throw new di(pi);return e.facade=t,ai(t,xi,e),e},Ye=function(t){return hi(t,xi)?t[xi]:{}},We=function(t){return hi(t,xi)}}var _i={set:He,get:Ye,has:We,enforce:function(t){return We(t)?Ye(t):He(t,{})},getterFor:function(t){return function(e){var i;if(!si(e)||(i=Ye(e)).type!==t)throw di("Incompatible receiver, "+t+" required");return i}}},bi=r,wi=F,Ti=Mt,Ai=s,Ei=Ue.CONFIGURABLE,Si=qe,Ci=_i.enforce,Mi=_i.get,Pi=Object.defineProperty,Oi=Ai&&!bi((function(){return 8!==Pi((function(){}),"length",{value:8}).length})),Ii=String(String).split("String"),ki=De.exports=function(t,e,i){"Symbol("===String(e).slice(0,7)&&(e="["+String(e).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),i&&i.getter&&(e="get "+e),i&&i.setter&&(e="set "+e),(!Ti(t,"name")||Ei&&t.name!==e)&&(Ai?Pi(t,"name",{value:e,configurable:!0}):t.name=e),Oi&&i&&Ti(i,"arity")&&t.length!==i.arity&&Pi(t,"length",{value:i.arity});try{i&&Ti(i,"constructor")&&i.constructor?Ai&&Pi(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var o=Ci(t);return Ti(o,"source")||(o.source=Ii.join("string"==typeof e?e:"")),t};Function.prototype.toString=ki((function(){return wi(this)&&Mi(this).source||Si(this)}),"toString");var Ri=F,Bi=ye,Di=De.exports,Li=xt,zi={},Fi=Math.ceil,Vi=Math.floor,ji=Math.trunc||function(t){var e=+t;return(e>0?Vi:Fi)(e)},Ui=ji,Ni=function(t){var e=+t;return e!=e||0===e?0:Ui(e)},Gi=Ni,Xi=Math.max,Hi=Math.min,Yi=Ni,Wi=Math.min,qi=function(t){return t>0?Wi(Yi(t),9007199254740991):0},Ki=z,Zi=function(t,e){var i=Gi(t);return i<0?Xi(i+e,0):Hi(i,e)},Qi=function(t){return qi(t.length)},Ji=function(t){return function(e,i,o){var n,r=Ki(e),s=Qi(r),a=Zi(o,s);if(t&&i!=i){for(;s>a;)if((n=r[a++])!=n)return!0}else for(;s>a;a++)if((t||a in r)&&r[a]===i)return t||a||0;return!t&&-1}},$i={includes:Ji(!0),indexOf:Ji(!1)},to=Mt,eo=z,io=$i.indexOf,oo=ii,no=T([].push),ro=function(t,e){var i,o=eo(t),n=0,r=[];for(i in o)!to(oo,i)&&to(o,i)&&no(r,i);for(;e.length>n;)to(o,i=e[n++])&&(~io(r,i)||no(r,i));return r},so=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"].concat("length","prototype");zi.f=Object.getOwnPropertyNames||function(t){return ro(t,so)};var ao={};ao.f=Object.getOwnPropertySymbols;var ho=X,lo=zi,uo=ao,co=_e,po=T([].concat),fo=ho("Reflect","ownKeys")||function(t){var e=lo.f(co(t)),i=uo.f;return i?po(e,i(t)):e},yo=Mt,go=fo,vo=n,mo=ye,xo=r,_o=F,bo=/#|\.prototype\./,wo=function(t,e){var i=Ao[To(t)];return i==So||i!=Eo&&(_o(e)?xo(e):!!e)},To=wo.normalize=function(t){return String(t).replace(bo,".").toLowerCase()},Ao=wo.data={},Eo=wo.NATIVE="N",So=wo.POLYFILL="P",Co=wo,Mo=o,Po=n.f,Oo=Be,Io=function(t,e,i,o){o||(o={});var n=o.enumerable,r=void 0!==o.name?o.name:e;if(Ri(i)&&Di(i,r,o),o.global)n?t[e]=i:Li(e,i);else{try{o.unsafe?t[e]&&(n=!0):delete t[e]}catch(t){}n?t[e]=i:Bi.f(t,e,{value:i,enumerable:!1,configurable:!o.nonConfigurable,writable:!o.nonWritable})}return t},ko=xt,Ro=function(t,e,i){for(var o=go(e),n=mo.f,r=vo.f,s=0;s>1,t|=t>>2,t|=t>>4,t|=t>>8,t|=t>>16,++t}function On(t){return t*Tn}function In(t,e,i){return ti?i:+t}function kn(t,e){return~~(Math.random()*(e-t))+t}function Rn(t,e){return Math.random()*(e-t)+t}function Bn(t,e){return~~(Math.pow(Math.random(),2)*(e-t))+t}function Dn(t,e,i){return void 0===i&&(i=2),Math.abs(t-e)0;)i[o]=arguments[o+2];return setTimeout.apply(void 0,[t.bind(e),.01].concat(i))}function Hn(t,e,i){var o,n=globalThis.performance.now();return"boolean"!=typeof i&&(i=!1),function(){var r=globalThis.performance.now(),s=r-n,a=arguments;if(!(s>4)+"0123456789ABCDEF".charAt(t%16)}function Qn(t,e,i){return i<0&&(i+=1),i>1&&(i-=1),i<1/6?t+6*(e-t)*i:i<.5?e:i<2/3?t+(e-t)*(2/3-i)*6:t}Kn.prototype.onResetEvent=function(t,e){return void 0===t&&(t=0),void 0===e&&(e=0),this.x=t,this.y=e,this},Kn.prototype._set=function(t,e){return this.x=t,this.y=e,this},Kn.prototype.set=function(t,e){if(t!==+t||e!==+e)throw new Error("invalid x,y parameters (not a number)");return this._set(t,e)},Kn.prototype.setZero=function(){return this.set(0,0)},Kn.prototype.setV=function(t){return this._set(t.x,t.y)},Kn.prototype.add=function(t){return this._set(this.x+t.x,this.y+t.y)},Kn.prototype.sub=function(t){return this._set(this.x-t.x,this.y-t.y)},Kn.prototype.scale=function(t,e){return this._set(this.x*t,this.y*(void 0!==e?e:t))},Kn.prototype.toIso=function(){return this._set(this.x-this.y,.5*(this.x+this.y))},Kn.prototype.to2d=function(){return this._set(this.y+this.x/2,this.y-this.x/2)},Kn.prototype.scaleV=function(t){return this._set(this.x*t.x,this.y*t.y)},Kn.prototype.div=function(t){return this._set(this.x/t,this.y/t)},Kn.prototype.abs=function(){return this._set(this.x<0?-this.x:this.x,this.y<0?-this.y:this.y)},Kn.prototype.clamp=function(t,e){return new Kn(In(this.x,t,e),In(this.y,t,e))},Kn.prototype.clampSelf=function(t,e){return this._set(In(this.x,t,e),In(this.y,t,e))},Kn.prototype.minV=function(t){return this._set(this.xt.x?this.x:t.x,this.y>t.y?this.y:t.y)},Kn.prototype.floor=function(){return new Kn(Math.floor(this.x),Math.floor(this.y))},Kn.prototype.floorSelf=function(){return this._set(Math.floor(this.x),Math.floor(this.y))},Kn.prototype.ceil=function(){return new Kn(Math.ceil(this.x),Math.ceil(this.y))},Kn.prototype.ceilSelf=function(){return this._set(Math.ceil(this.x),Math.ceil(this.y))},Kn.prototype.negate=function(){return new Kn(-this.x,-this.y)},Kn.prototype.negateSelf=function(){return this._set(-this.x,-this.y)},Kn.prototype.copy=function(t){return this._set(t.x,t.y)},Kn.prototype.equals=function(){var t,e;return 2===arguments.length?(t=arguments[0],e=arguments[1]):(t=arguments[0].x,e=arguments[0].y),this.x===t&&this.y===e},Kn.prototype.normalize=function(){return this.div(this.length()||1)},Kn.prototype.perp=function(){return this._set(this.y,-this.x)},Kn.prototype.rotate=function(t,e){var i=0,o=0;"object"==typeof e&&(i=e.x,o=e.y);var n=this.x-i,r=this.y-o,s=Math.cos(t),a=Math.sin(t);return this._set(n*s-r*a+i,n*a+r*s+o)},Kn.prototype.dot=function(t){return this.x*t.x+this.y*t.y},Kn.prototype.cross=function(t){return this.x*t.y-this.y*t.x},Kn.prototype.length2=function(){return this.dot(this)},Kn.prototype.length=function(){return Math.sqrt(this.length2())},Kn.prototype.lerp=function(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this},Kn.prototype.moveTowards=function(t,e){var i=Math.atan2(t.y-this.y,t.x-this.x),o=this.distance(t);return 0===o||e>=0&&o<=e*e?t:(this.x+=Math.cos(i)*e,this.y+=Math.sin(i)*e,this)},Kn.prototype.distance=function(t){var e=this.x-t.x,i=this.y-t.y;return Math.sqrt(e*e+i*i)},Kn.prototype.angle=function(t){return Math.acos(In(this.dot(t)/(this.length()*t.length()),-1,1))},Kn.prototype.project=function(t){return this.scale(this.dot(t)/t.length2())},Kn.prototype.projectN=function(t){return this.scale(this.dot(t))},Kn.prototype.clone=function(){return qn.pull("Vector2d",this.x,this.y)},Kn.prototype.toString=function(){return"x:"+this.x+",y:"+this.y};var Jn=/^rgba?\((\d+), ?(\d+), ?(\d+)(, ?([\d\.]+))?\)$/,$n=/^#([\da-fA-F])([\da-fA-F])([\da-fA-F])$/,tr=/^#([\da-fA-F])([\da-fA-F])([\da-fA-F])([\da-fA-F])$/,er=/^#([\da-fA-F]{2})([\da-fA-F]{2})([\da-fA-F]{2})$/,ir=/^#([\da-fA-F]{2})([\da-fA-F]{2})([\da-fA-F]{2})([\da-fA-F]{2})$/,or=new Map;[["black",[0,0,0]],["silver",[192,192,129]],["gray",[128,128,128]],["white",[255,255,255]],["maroon",[128,0,0]],["red",[255,0,0]],["purple",[128,0,128]],["fuchsia",[255,0,255]],["green",[0,128,0]],["lime",[0,255,0]],["olive",[128,128,0]],["yellow",[255,255,0]],["navy",[0,0,128]],["blue",[0,0,255]],["teal",[0,128,128]],["aqua",[0,255,255]],["orange",[255,165,0]],["aliceblue",[240,248,245]],["antiquewhite",[250,235,215]],["aquamarine",[127,255,212]],["azure",[240,255,255]],["beige",[245,245,220]],["bisque",[255,228,196]],["blanchedalmond",[255,235,205]],["blueviolet",[138,43,226]],["brown",[165,42,42]],["burlywood",[222,184,35]],["cadetblue",[95,158,160]],["chartreuse",[127,255,0]],["chocolate",[210,105,30]],["coral",[255,127,80]],["cornflowerblue",[100,149,237]],["cornsilk",[255,248,220]],["crimson",[220,20,60]],["darkblue",[0,0,139]],["darkcyan",[0,139,139]],["darkgoldenrod",[184,134,11]],["darkgray[*]",[169,169,169]],["darkgreen",[0,100,0]],["darkgrey[*]",[169,169,169]],["darkkhaki",[189,183,107]],["darkmagenta",[139,0,139]],["darkolivegreen",[85,107,47]],["darkorange",[255,140,0]],["darkorchid",[153,50,204]],["darkred",[139,0,0]],["darksalmon",[233,150,122]],["darkseagreen",[143,188,143]],["darkslateblue",[72,61,139]],["darkslategray",[47,79,79]],["darkslategrey",[47,79,79]],["darkturquoise",[0,206,209]],["darkviolet",[148,0,211]],["deeppink",[255,20,147]],["deepskyblue",[0,191,255]],["dimgray",[105,105,105]],["dimgrey",[105,105,105]],["dodgerblue",[30,144,255]],["firebrick",[178,34,34]],["floralwhite",[255,250,240]],["forestgreen",[34,139,34]],["gainsboro",[220,220,220]],["ghostwhite",[248,248,255]],["gold",[255,215,0]],["goldenrod",[218,165,32]],["greenyellow",[173,255,47]],["grey",[128,128,128]],["honeydew",[240,255,240]],["hotpink",[255,105,180]],["indianred",[205,92,92]],["indigo",[75,0,130]],["ivory",[255,255,240]],["khaki",[240,230,140]],["lavender",[230,230,250]],["lavenderblush",[255,240,245]],["lawngreen",[124,252,0]],["lemonchiffon",[255,250,205]],["lightblue",[173,216,230]],["lightcoral",[240,128,128]],["lightcyan",[224,255,255]],["lightgoldenrodyellow",[250,250,210]],["lightgray",[211,211,211]],["lightgreen",[144,238,144]],["lightgrey",[211,211,211]],["lightpink",[255,182,193]],["lightsalmon",[255,160,122]],["lightseagreen",[32,178,170]],["lightskyblue",[135,206,250]],["lightslategray",[119,136,153]],["lightslategrey",[119,136,153]],["lightsteelblue",[176,196,222]],["lightyellow",[255,255,224]],["limegreen",[50,205,50]],["linen",[250,240,230]],["mediumaquamarine",[102,205,170]],["mediumblue",[0,0,205]],["mediumorchid",[186,85,211]],["mediumpurple",[147,112,219]],["mediumseagreen",[60,179,113]],["mediumslateblue",[123,104,238]],["mediumspringgreen",[0,250,154]],["mediumturquoise",[72,209,204]],["mediumvioletred",[199,21,133]],["midnightblue",[25,25,112]],["mintcream",[245,255,250]],["mistyrose",[255,228,225]],["moccasin",[255,228,181]],["navajowhite",[255,222,173]],["oldlace",[253,245,230]],["olivedrab",[107,142,35]],["orangered",[255,69,0]],["orchid",[218,112,214]],["palegoldenrod",[238,232,170]],["palegreen",[152,251,152]],["paleturquoise",[175,238,238]],["palevioletred",[219,112,147]],["papayawhip",[255,239,213]],["peachpuff",[255,218,185]],["peru",[205,133,63]],["pink",[255,192,203]],["plum",[221,160,221]],["powderblue",[176,224,230]],["rosybrown",[188,143,143]],["royalblue",[65,105,225]],["saddlebrown",[139,69,19]],["salmon",[250,128,114]],["sandybrown",[244,164,96]],["seagreen",[46,139,87]],["seashell",[255,245,238]],["sienna",[160,82,45]],["skyblue",[135,206,235]],["slateblue",[106,90,205]],["slategray",[112,128,144]],["slategrey",[112,128,144]],["snow",[255,250,250]],["springgreen",[0,255,127]],["steelblue",[70,130,180]],["tan",[210,180,140]],["thistle",[216,191,216]],["tomato",[255,99,71]],["turquoise",[64,224,208]],["violet",[238,130,238]],["wheat",[245,222,179]],["whitesmoke",[245,245,245]],["yellowgreen",[154,205,50]]].forEach((function(t){or.set(t[0],t[1])}));var nr=function(t,e,i,o){void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),void 0===o&&(o=1),this.onResetEvent(t,e,i,o)},rr={r:{configurable:!0},g:{configurable:!0},b:{configurable:!0},alpha:{configurable:!0}};nr.prototype.onResetEvent=function(t,e,i,o){return void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),void 0===o&&(o=1),void 0===this.glArray&&(this.glArray=new Float32Array([0,0,0,1])),this.setColor(t,e,i,o)},rr.r.get=function(){return~~(255*this.glArray[0])},rr.r.set=function(t){this.glArray[0]=In(~~t||0,0,255)/255},rr.g.get=function(){return~~(255*this.glArray[1])},rr.g.set=function(t){this.glArray[1]=In(~~t||0,0,255)/255},rr.b.get=function(){return~~(255*this.glArray[2])},rr.b.set=function(t){this.glArray[2]=In(~~t||0,0,255)/255},rr.alpha.get=function(){return this.glArray[3]},rr.alpha.set=function(t){this.glArray[3]=void 0===t?1:In(+t,0,1)},nr.prototype.setColor=function(t,e,i,o){return void 0===o&&(o=1),this.r=t,this.g=e,this.b=i,this.alpha=o,this},nr.prototype.setHSV=function(t,e,i){var o,n,r,s=Math.floor(6*t),a=6*t-s,h=i*(1-e),l=i*(1-a*e),u=i*(1-(1-a)*e);switch(s%6){case 0:o=i,n=u,r=h;break;case 1:o=l,n=i,r=h;break;case 2:o=h,n=i,r=u;break;case 3:o=h,n=l,r=i;break;case 4:o=u,n=h,r=i;break;case 5:o=i,n=h,r=l}return this.setColor(255*o,255*n,255*r)},nr.prototype.setHSL=function(t,e,i){var o,n,r;if(0===e)o=n=r=i;else{var s=i<.5?i*(1+e):i+e-i*e,a=2*i-s;o=Qn(a,s,t+1/3),n=Qn(a,s,t),r=Qn(a,s,t-1/3)}return this.setColor(255*o,255*n,255*r)},nr.prototype.clone=function(){return qn.pull("Color").copy(this)},nr.prototype.copy=function(t){return t instanceof nr?(this.glArray.set(t.glArray),this):this.parseCSS(t)},nr.prototype.add=function(t){return this.glArray[0]=In(this.glArray[0]+t.glArray[0],0,1),this.glArray[1]=In(this.glArray[1]+t.glArray[1],0,1),this.glArray[2]=In(this.glArray[2]+t.glArray[2],0,1),this.glArray[3]=(this.glArray[3]+t.glArray[3])/2,this},nr.prototype.darken=function(t){return t=In(t,0,1),this.glArray[0]*=t,this.glArray[1]*=t,this.glArray[2]*=t,this},nr.prototype.lerp=function(t,e){return e=In(e,0,1),this.glArray[0]+=(t.glArray[0]-this.glArray[0])*e,this.glArray[1]+=(t.glArray[1]-this.glArray[1])*e,this.glArray[2]+=(t.glArray[2]-this.glArray[2])*e,this},nr.prototype.lighten=function(t){return t=In(t,0,1),this.glArray[0]=In(this.glArray[0]+(1-this.glArray[0])*t,0,1),this.glArray[1]=In(this.glArray[1]+(1-this.glArray[1])*t,0,1),this.glArray[2]=In(this.glArray[2]+(1-this.glArray[2])*t,0,1),this},nr.prototype.random=function(t,e){return void 0===t&&(t=0),void 0===e&&(e=255),t<0&&(t=0),e>255&&(e=255),this.setColor(kn(t,e),kn(t,e),kn(t,e),this.alpha)},nr.prototype.equals=function(t){return this.glArray[0]===t.glArray[0]&&this.glArray[1]===t.glArray[1]&&this.glArray[2]===t.glArray[2]&&this.glArray[3]===t.glArray[3]},nr.prototype.parseCSS=function(t){return or.has(t)?this.setColor.apply(this,or.get(t)):this.parseRGB(t)},nr.prototype.parseRGB=function(t){var e=Jn.exec(t);return e?this.setColor(+e[1],+e[2],+e[3],+e[5]):this.parseHex(t)},nr.prototype.parseHex=function(t,e){var i;if(void 0===e&&(e=!1),i=ir.exec(t))return this.setColor(parseInt(i[!1===e?1:2],16),parseInt(i[!1===e?2:3],16),parseInt(i[!1===e?3:4],16),(In(parseInt(i[!1===e?4:1],16),0,255)/255).toFixed(1));if(i=er.exec(t))return this.setColor(parseInt(i[1],16),parseInt(i[2],16),parseInt(i[3],16));if(i=tr.exec(t)){var o=i[!1===e?1:2],n=i[!1===e?2:3],r=i[!1===e?3:4],s=i[!1===e?4:1];return this.setColor(parseInt(o+o,16),parseInt(n+n,16),parseInt(r+r,16),(In(parseInt(s+s,16),0,255)/255).toFixed(1))}if(i=$n.exec(t))return this.setColor(parseInt(i[1]+i[1],16),parseInt(i[2]+i[2],16),parseInt(i[3]+i[3],16));throw new Error("invalid parameter: "+t)},nr.prototype.toUint32=function(t){return void 0===t&&(t=1),((255*t&255)<<24)+((255&this.r)<<16)+((255&this.g)<<8)+(255&this.b)},nr.prototype.toArray=function(){return this.glArray},nr.prototype.toHex=function(){return"#"+Zn(this.r)+Zn(this.g)+Zn(this.b)},nr.prototype.toHex8=function(t){return void 0===t&&(t=this.alpha),"#"+Zn(this.r)+Zn(this.g)+Zn(this.b)+Zn(255*t)},nr.prototype.toRGB=function(){return"rgb("+this.r+","+this.g+","+this.b+")"},nr.prototype.toRGBA=function(t){return void 0===t&&(t=this.alpha),"rgba("+this.r+","+this.g+","+this.b+","+t+")"},Object.defineProperties(nr.prototype,rr);var sr=function(){for(var t,e=[],i=arguments.length;i--;)e[i]=arguments[i];(t=this).onResetEvent.apply(t,e)},ar={tx:{configurable:!0},ty:{configurable:!0},tz:{configurable:!0}};sr.prototype.onResetEvent=function(){void 0===this.val&&(this.val=new Float32Array(16)),arguments.length&&arguments[0]instanceof sr?this.copy(arguments[0]):16===arguments.length?this.setTransform.apply(this,arguments):this.identity()},ar.tx.get=function(){return this.val[12]},ar.ty.get=function(){return this.val[13]},ar.tz.get=function(){return this.val[14]},sr.prototype.identity=function(){return this.setTransform(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)},sr.prototype.setTransform=function(t,e,i,o,n,r,s,a,h,l,u,c,p,d,f,y){var g=this.val;return g[0]=t,g[1]=e,g[2]=i,g[3]=o,g[4]=n,g[5]=r,g[6]=s,g[7]=a,g[8]=h,g[9]=l,g[10]=u,g[11]=c,g[12]=p,g[13]=d,g[14]=f,g[15]=y,this},sr.prototype.copy=function(t){return this.val.set(t.val),this},sr.prototype.fromMat2d=function(t){var e=t.val;return this.setTransform(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1)},sr.prototype.multiply=function(t){var e=this.val,i=t.val,o=e[0],n=e[1],r=e[2],s=e[3],a=e[4],h=e[5],l=e[6],u=e[7],c=e[8],p=e[9],d=e[10],f=e[11],y=e[12],g=e[13],v=e[14],m=e[15],x=i[0],_=i[1],b=i[2],w=i[3];return e[0]=x*o+_*a+b*c+w*y,e[1]=x*n+_*h+b*p+w*g,e[2]=x*r+_*l+b*d+w*v,e[3]=x*s+_*u+b*f+w*m,x=i[4],_=i[5],b=i[6],w=i[7],e[4]=x*o+_*a+b*c+w*y,e[5]=x*n+_*h+b*p+w*g,e[6]=x*r+_*l+b*d+w*v,e[7]=x*s+_*u+b*f+w*m,x=i[8],_=i[9],b=i[10],w=i[11],e[8]=x*o+_*a+b*c+w*y,e[9]=x*n+_*h+b*p+w*g,e[10]=x*r+_*l+b*d+w*v,e[11]=x*s+_*u+b*f+w*m,x=i[12],_=i[13],b=i[14],w=i[15],e[12]=x*o+_*a+b*c+w*y,e[13]=x*n+_*h+b*p+w*g,e[14]=x*r+_*l+b*d+w*v,e[15]=x*s+_*u+b*f+w*m,this},sr.prototype.transpose=function(){var t=this.val,e=t[1],i=t[2],o=t[3],n=t[6],r=t[7],s=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=e,t[6]=t[9],t[7]=t[13],t[8]=i,t[9]=n,t[11]=t[14],t[12]=o,t[13]=r,t[14]=s,this},sr.prototype.invert=function(){var t=this.val,e=t[0],i=t[1],o=t[2],n=t[3],r=t[4],s=t[5],a=t[6],h=t[7],l=t[8],u=t[9],c=t[10],p=t[11],d=t[12],f=t[13],y=t[14],g=t[15],v=e*s-i*r,m=e*a-o*r,x=e*h-n*r,_=i*a-o*s,b=i*h-n*s,w=o*h-n*a,T=l*f-u*d,A=l*y-c*d,E=l*g-p*d,S=u*y-c*f,C=u*g-p*f,M=c*g-p*y,P=v*M-m*C+x*S+_*E-b*A+w*T;return P?(P=1/P,t[0]=(s*M-a*C+h*S)*P,t[1]=(o*C-i*M-n*S)*P,t[2]=(f*w-y*b+g*_)*P,t[3]=(c*b-u*w-p*_)*P,t[4]=(a*E-r*M-h*A)*P,t[5]=(e*M-o*E+n*A)*P,t[6]=(y*x-d*w-g*m)*P,t[7]=(l*w-c*x+p*m)*P,t[8]=(r*C-s*E+h*T)*P,t[9]=(i*E-e*C-n*T)*P,t[10]=(d*b-f*x+g*v)*P,t[11]=(u*x-l*b-p*v)*P,t[12]=(s*A-r*S-a*T)*P,t[13]=(e*S-i*A+o*T)*P,t[14]=(f*m-d*_-y*v)*P,t[15]=(l*_-u*m+c*v)*P,this):null},sr.prototype.apply=function(t){var e=this.val,i=t.x,o=t.y,n=void 0!==t.z?t.z:1,r=e[3]*i+e[7]*o+e[11]*n+e[15]||1;return t.x=(e[0]*i+e[4]*o+e[8]*n+e[12])/r,t.y=(e[1]*i+e[5]*o+e[9]*n+e[13])/r,void 0!==t.z&&(t.z=(e[2]*i+e[6]*o+e[10]*n+e[14])/r),t},sr.prototype.applyInverse=function(t){var e=qn.pull("Matrix3d",this).invert();return e.apply(t),qn.push(e),t},sr.prototype.ortho=function(t,e,i,o,n,r){var s=this.val,a=1/(t-e),h=1/(i-o),l=1/(n-r);return s[0]=-2*a,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=-2*h,s[6]=0,s[7]=0,s[8]=0,s[9]=0,s[10]=2*l,s[11]=0,s[12]=(t+e)*a,s[13]=(o+i)*h,s[14]=(r+n)*l,s[15]=1,this},sr.prototype.scale=function(t,e,i){var o=this.val,n=t,r=void 0===e?n:e,s=void 0===i?0:i;return o[0]=o[0]*n,o[1]=o[1]*n,o[2]=o[2]*n,o[3]=o[3]*n,o[4]=o[4]*r,o[5]=o[5]*r,o[6]=o[6]*r,o[7]=o[7]*r,o[8]=o[8]*s,o[9]=o[9]*s,o[10]=o[10]*s,o[11]=o[11]*s,this},sr.prototype.scaleV=function(t){return this.scale(t.x,t.y,t.z)},sr.prototype.scaleX=function(t){return this.scale(t,1)},sr.prototype.scaleY=function(t){return this.scale(1,t)},sr.prototype.rotate=function(t,e){if(0!==t){var i,o,n,r,s,a,h,l,u,c,p,d,f,y,g,v,m,x,_,b,w,T,A,E,S=this.val,C=e.x,M=e.y,P=e.z,O=Math.sqrt(C*C+M*M+P*P);if(O1?(t=arguments[0],e=arguments[1],i=void 0===arguments[2]?0:arguments[2]):(t=arguments[0].x,e=arguments[0].y,i=void 0===arguments[0].z?0:arguments[0].z),o[12]=o[0]*t+o[4]*e+o[8]*i+o[12],o[13]=o[1]*t+o[5]*e+o[9]*i+o[13],o[14]=o[2]*t+o[6]*e+o[10]*i+o[14],o[15]=o[3]*t+o[7]*e+o[11]*i+o[15],this},sr.prototype.isIdentity=function(){var t=this.val;return 1===t[0]&&0===t[1]&&0===t[2]&&0===t[3]&&0===t[4]&&1===t[5]&&0===t[6]&&0===t[7]&&0===t[8]&&0===t[9]&&1===t[10]&&0===t[11]&&0===t[12]&&0===t[13]&&0===t[14]&&1===t[15]},sr.prototype.equals=function(t){var e=t.val,i=this.val;return i[0]===e[0]&&i[1]===e[1]&&i[2]===e[2]&&i[3]===e[3]&&i[4]===e[4]&&i[5]===e[5]&&i[6]===e[6]&&i[7]===e[7]&&i[8]===e[8]&&i[9]===e[9]&&i[10]===e[10]&&i[11]===e[11]&&i[12]===e[12]&&i[13]===e[13]&&i[14]===e[14]&&i[15]===e[15]},sr.prototype.clone=function(){return qn.pull("Matrix3d",this)},sr.prototype.toArray=function(){return this.val},sr.prototype.toString=function(){var t=this.val;return"me.Matrix3d("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+", "+t[8]+", "+t[9]+", "+t[10]+", "+t[11]+", "+t[12]+", "+t[13]+", "+t[14]+", "+t[15]+")"},Object.defineProperties(sr.prototype,ar);var hr=function(){for(var t,e=[],i=arguments.length;i--;)e[i]=arguments[i];(t=this).onResetEvent.apply(t,e)},lr={tx:{configurable:!0},ty:{configurable:!0}};hr.prototype.onResetEvent=function(){return void 0===this.val&&(this.val=new Float32Array(9)),arguments.length&&arguments[0]instanceof hr?this.copy(arguments[0]):arguments.length&&arguments[0]instanceof sr?this.fromMat3d(arguments[0]):arguments.length>=6?this.setTransform.apply(this,arguments):this.identity(),this},lr.tx.get=function(){return this.val[6]},lr.ty.get=function(){return this.val[7]},hr.prototype.identity=function(){return this.setTransform(1,0,0,0,1,0,0,0,1),this},hr.prototype.setTransform=function(){var t=this.val;return 9===arguments.length?(t[0]=arguments[0],t[1]=arguments[1],t[2]=arguments[2],t[3]=arguments[3],t[4]=arguments[4],t[5]=arguments[5],t[6]=arguments[6],t[7]=arguments[7],t[8]=arguments[8]):6===arguments.length&&(t[0]=arguments[0],t[1]=arguments[2],t[2]=arguments[4],t[3]=arguments[1],t[4]=arguments[3],t[5]=arguments[5],t[6]=0,t[7]=0,t[8]=1),this},hr.prototype.copy=function(t){return this.val.set(t.val),this},hr.prototype.fromMat3d=function(t){var e=t.val,i=this.val;return i[0]=e[0],i[1]=e[1],i[2]=e[2],i[3]=e[4],i[4]=e[5],i[5]=e[6],i[6]=e[8],i[7]=e[9],i[8]=e[10],this},hr.prototype.multiply=function(t){var e=t.val,i=this.val,o=i[0],n=i[1],r=i[3],s=i[4],a=e[0],h=e[1],l=e[3],u=e[4],c=e[6],p=e[7];return i[0]=o*a+r*h,i[1]=n*a+s*h,i[3]=o*l+r*u,i[4]=n*l+s*u,i[6]+=o*c+r*p,i[7]+=n*c+s*p,this},hr.prototype.transpose=function(){var t=this.val,e=t[1],i=t[2],o=t[5];return t[1]=t[3],t[2]=t[6],t[3]=e,t[5]=t[7],t[6]=i,t[7]=o,this},hr.prototype.invert=function(){var t=this.val,e=t[0],i=t[1],o=t[2],n=t[3],r=t[4],s=t[5],a=t[6],h=t[7],l=t[8],u=l*r-s*h,c=s*a-l*n,p=h*n-r*a,d=e*u+i*c+o*p;return t[0]=u/d,t[1]=(o*h-l*i)/d,t[2]=(s*i-o*r)/d,t[3]=c/d,t[4]=(l*e-o*a)/d,t[5]=(o*n-s*e)/d,t[6]=p/d,t[7]=(i*a-h*e)/d,t[8]=(r*e-i*n)/d,this},hr.prototype.apply=function(t){var e=this.val,i=t.x,o=t.y,n=void 0!==t.z?t.z:1;return t.x=i*e[0]+o*e[3]+n*e[6],t.y=i*e[1]+o*e[4]+n*e[7],void 0!==t.z&&(t.z=i*e[2]+o*e[5]+n*e[8]),t},hr.prototype.applyInverse=function(t){var e=this.val,i=t.x,o=t.y,n=1/(e[0]*e[4]+e[3]*-e[1]);return t.x=e[4]*n*i+-e[3]*n*o+(e[7]*e[3]-e[6]*e[4])*n,t.y=e[0]*n*o+-e[1]*n*i+(-e[7]*e[0]+e[6]*e[1])*n,t},hr.prototype.scale=function(t,e){var i=this.val,o=t,n=void 0===e?o:e;return i[0]*=o,i[1]*=o,i[3]*=n,i[4]*=n,this},hr.prototype.scaleV=function(t){return this.scale(t.x,t.y)},hr.prototype.scaleX=function(t){return this.scale(t,1)},hr.prototype.scaleY=function(t){return this.scale(1,t)},hr.prototype.rotate=function(t){if(0!==t){var e=this.val,i=e[0],o=e[1],n=e[2],r=e[3],s=e[4],a=e[5],h=Math.sin(t),l=Math.cos(t);e[0]=l*i+h*r,e[1]=l*o+h*s,e[2]=l*n+h*a,e[3]=l*r-h*i,e[4]=l*s-h*o,e[5]=l*a-h*n}return this},hr.prototype.translate=function(){var t,e,i=this.val;return 2===arguments.length?(t=arguments[0],e=arguments[1]):(t=arguments[0].x,e=arguments[0].y),i[6]+=i[0]*t+i[3]*e,i[7]+=i[1]*t+i[4]*e,this},hr.prototype.isIdentity=function(){var t=this.val;return 1===t[0]&&0===t[1]&&0===t[2]&&0===t[3]&&1===t[4]&&0===t[5]&&0===t[6]&&0===t[7]&&1===t[8]},hr.prototype.equals=function(t){var e=t.val,i=this.val;return i[0]===e[0]&&i[1]===e[1]&&i[2]===e[2]&&i[3]===e[3]&&i[4]===e[4]&&i[5]===e[5]&&i[6]===e[6]&&i[7]===e[7]&&i[8]===e[8]},hr.prototype.clone=function(){return qn.pull("Matrix2d",this)},hr.prototype.toArray=function(){return this.val},hr.prototype.toString=function(){var t=this.val;return"me.Matrix2d("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+", "+t[8]+")"},Object.defineProperties(hr.prototype,lr);var ur={exports:{}};!function(t){var e=Object.prototype.hasOwnProperty,i="~";function o(){}function n(t,e,i){this.fn=t,this.context=e,this.once=i||!1}function r(t,e,o,r,s){if("function"!=typeof o)throw new TypeError("The listener must be a function");var a=new n(o,r||t,s),h=i?i+e:e;return t._events[h]?t._events[h].fn?t._events[h]=[t._events[h],a]:t._events[h].push(a):(t._events[h]=a,t._eventsCount++),t}function s(t,e){0==--t._eventsCount?t._events=new o:delete t._events[e]}function a(){this._events=new o,this._eventsCount=0}Object.create&&(o.prototype=Object.create(null),(new o).__proto__||(i=!1)),a.prototype.eventNames=function(){var t,o,n=[];if(0===this._eventsCount)return n;for(o in t=this._events)e.call(t,o)&&n.push(i?o.slice(1):o);return Object.getOwnPropertySymbols?n.concat(Object.getOwnPropertySymbols(t)):n},a.prototype.listeners=function(t){var e=i?i+t:t,o=this._events[e];if(!o)return[];if(o.fn)return[o.fn];for(var n=0,r=o.length,s=new Array(r);n0;)e[i]=arguments[i+1];return cr.emit.apply(cr,[t].concat(e))}function qr(t,e,i){return cr.on(t,e,i)}function Kr(t,e,i){return cr.once(t,e,i)}function Zr(t,e){return cr.off(t,e)}var Qr=Object.freeze({__proto__:null,DOM_READY:pr,BOOT:dr,STATE_PAUSE:fr,STATE_RESUME:yr,STATE_STOP:gr,STATE_RESTART:vr,STATE_CHANGE:mr,VIDEO_INIT:xr,GAME_INIT:_r,GAME_RESET:br,GAME_BEFORE_UPDATE:wr,GAME_AFTER_UPDATE:Tr,GAME_UPDATE:Ar,GAME_BEFORE_DRAW:Er,GAME_AFTER_DRAW:Sr,LEVEL_LOADED:Cr,LOADER_COMPLETE:Mr,LOADER_PROGRESS:Pr,KEYDOWN:Or,KEYUP:Ir,GAMEPAD_CONNECTED:kr,GAMEPAD_DISCONNECTED:Rr,GAMEPAD_UPDATE:Br,POINTERMOVE:Dr,POINTERLOCKCHANGE:Lr,DRAGSTART:zr,DRAGEND:Fr,WINDOW_ONRESIZE:Vr,CANVAS_ONRESIZE:jr,VIEWPORT_ONRESIZE:Ur,WINDOW_ONORIENTATION_CHANGE:Nr,WINDOW_ONSCROLL:Gr,VIEWPORT_ONCHANGE:Xr,ONCONTEXT_LOST:Hr,ONCONTEXT_RESTORED:Yr,emit:Wr,on:qr,once:Kr,off:Zr}),Jr={},$r=!1;try{$r="undefined"!=typeof globalThis&&void 0!==globalThis.localStorage}catch(t){$r=!1}function ts(t){return"add"===t||"remove"===t}qr(dr,(function(){if(!0===$r){var t=globalThis.localStorage.getItem("me.save");if("string"==typeof t&&t.length>0)(JSON.parse(t)||[]).forEach((function(t){Jr[t]=JSON.parse(globalThis.localStorage.getItem("me.save."+t))}))}}));var es={add:function(t){var e=es;Object.keys(t).forEach((function(i){var o;ts(i)||(o=i,Object.defineProperty(e,o,{configurable:!0,enumerable:!0,get:function(){return Jr[o]},set:function(t){Jr[o]=t,!0===$r&&globalThis.localStorage.setItem("me.save."+o,JSON.stringify(t))}}),i in Jr||(e[i]=t[i]))})),!0===$r&&globalThis.localStorage.setItem("me.save",JSON.stringify(Object.keys(Jr)))},remove:function(t){ts(t)||void 0!==Jr[t]&&(delete Jr[t],!0===$r&&(globalThis.localStorage.removeItem("me.save."+t),globalThis.localStorage.setItem("me.save",JSON.stringify(Object.keys(Jr)))))}},is=!1,os=!1;function ns(){if(!os){if(void 0!==globalThis.document&&!globalThis.document.body)return setTimeout(ns,13);void 0!==globalThis.document&&"function"==typeof globalThis.document.removeEventListener&&globalThis.document.removeEventListener("DOMContentLoaded",ns,!1),"function"==typeof globalThis.removeEventListener&&globalThis.removeEventListener("load",ns,!1),Wr(pr),os=!0}}var rs=void 0!==globalThis.navigator?globalThis.navigator.userAgent:"",ss=/iPhone|iPad|iPod/i.test(rs),as=/Android/i.test(rs),hs=/Android 2/i.test(rs),ls=/Linux/i.test(rs),us=/CrOS/.test(rs),cs=/Windows Phone/i.test(rs),ps=/BlackBerry/i.test(rs),ds=/Kindle|Silk.*Mobile Safari/i.test(rs),fs=void 0!==globalThis.ejecta,ys=/MicroMessenger/i.test(rs),gs=void 0!==globalThis.process&&void 0!==globalThis.process.release&&"node"===globalThis.process.release.name,vs=/Mobi/i.test(rs)||ss||as||cs||ps||ds||!1,ms=!1,xs=!1,_s=!0,bs={left:0,top:0,x:0,y:0,width:0,height:0,right:0,bottom:0};function ws(t){return t.preventDefault(),"function"==typeof globalThis.scroll&&globalThis.scroll(0,0),!1}function Ts(t){Hs=t.accelerationIncludingGravity.x,Ys=t.accelerationIncludingGravity.y,Ws=t.accelerationIncludingGravity.z}function As(t){qs=t.gamma,Ks=t.beta,Zs=t.alpha}var Es=Object.freeze({__proto__:null,ua:rs,iOS:ss,android:as,android2:hs,linux:ls,chromeOS:us,wp:cs,BlackBerry:ps,Kindle:ds,ejecta:fs,isWeixin:ys,nodeJS:gs,isMobile:vs}),Ss=!!("ontouchstart"in globalThis),Cs=!!globalThis.PointerEvent,Ms=Ss||Cs,Ps=Ms?Cs?globalThis.navigator.maxTouchPoints||1:10:1,Os=void 0!==globalThis.document&&"onwheel"in globalThis.document.createElement("div"),Is=void 0!==globalThis.document&&void 0!==globalThis.document.pointerLockElement,ks=!!globalThis.DeviceOrientationEvent,Rs="undefined"!=typeof screen&&void 0!==screen.orientation,Bs=!!globalThis.DeviceMotionEvent,Ds=void 0!==globalThis.document&&(_n("fullscreenEnabled",globalThis.document)||globalThis.document.mozFullScreenEnabled);!0===Ds&&(globalThis.document.exitFullscreen=_n("cancelFullScreen",globalThis.document)||_n("exitFullscreen",globalThis.document));var Ls=!(!globalThis.AudioContext&&!globalThis.webkitAudioContext),zs=void 0!==globalThis.Audio,Fs=Ls||zs,Vs=function(){try{return!!globalThis.localStorage}catch(t){return!1}}(),js=function(){try{return void 0!==globalThis.OffscreenCanvas&&null!==new globalThis.OffscreenCanvas(0,0).getContext("2d")}catch(t){return!1}}(),Us="function"==typeof globalThis.atob,Ns=void 0!==globalThis.navigator&&(globalThis.navigator.language||globalThis.navigator.browserLanguage||globalThis.navigator.userLanguage)||"en",Gs=globalThis.devicePixelRatio||1,Xs=Es.isMobile,Hs=0,Ys=0,Ws=0,qs=0,Ks=0,Zs=0;function Qs(t){!function(t){os?t.call(globalThis,[]):(Kr(pr,t,globalThis),is||("undefined"!=typeof process&&"node"===process.release.name||void 0!==globalThis.document&&"complete"===globalThis.document.readyState?globalThis.setTimeout(ns,0):(void 0!==globalThis.document&&"function"==typeof globalThis.document.addEventListener&&globalThis.document.addEventListener("DOMContentLoaded",ns,!1),globalThis.addEventListener("load",ns,!1)),is=!0))}(t)}function Js(t){var e=Cs?"pointermove":Ss?"touchmove":"mousemove";!1!==t?!1===_s&&(globalThis.document.removeEventListener(e,ws),_s=!0):!0===_s&&(globalThis.document.addEventListener(e,ws,{passive:!1}),_s=!1)}function $s(){return!!Ds&&!(!_n("fullscreenElement",document)&&!document.mozFullScreenElement)}function ta(){var t="portrait",e="landscape",i=globalThis.screen;if(!0===Rs){var o=_n("orientation",i);if(void 0!==o&&"string"==typeof o.type)return o.type;if("string"==typeof o)return o}return"number"==typeof globalThis.orientation?90===Math.abs(globalThis.orientation)?e:t:globalThis.outerWidth>globalThis.outerHeight?e:t}function ea(t){var e=ia(t);return null!==e.parentNode&&(e=e.parentNode),e}function ia(t){var e=null;return"undefined"!==t&&("string"==typeof t?e=document.getElementById(t):"object"==typeof t&&t.nodeType===Node.ELEMENT_NODE&&(e=t)),e||(e=document.body),e}function oa(t){return"object"==typeof t&&t!==document.body&&void 0!==t.getBoundingClientRect?t.getBoundingClientRect():(bs.width=bs.right=globalThis.innerWidth,bs.height=bs.bottom=globalThis.innerHeight,bs)}function na(t){return oa(ea(t))}function ra(t){var e=!1;try{var i=document.createElement("canvas"),o={stencil:!0,failIfMajorPerformanceCaveat:t.failIfMajorPerformanceCaveat};e=!(!globalThis.WebGLRenderingContext||!i.getContext("webgl",o)&&!i.getContext("experimental-webgl",o))}catch(t){e=!1}return e}function sa(t){return t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.HIGH_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.HIGH_FLOAT).precision>0?"highp":t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.MEDIUM_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}function aa(){"function"==typeof globalThis.focus&&globalThis.focus()}var ha=Object.freeze({__proto__:null,onDeviceRotate:As,platform:Es,touchEvent:Ss,pointerEvent:Cs,touch:Ms,maxTouchPoints:Ps,wheel:Os,hasPointerLockSupport:Is,hasDeviceOrientation:ks,screenOrientation:Rs,hasAccelerometer:Bs,hasFullscreenSupport:Ds,hasWebAudio:Ls,hasHTML5Audio:zs,sound:Fs,localStorage:Vs,offscreenCanvas:js,nativeBase64:Us,language:Ns,devicePixelRatio:Gs,isMobile:Xs,get accelerationX(){return Hs},get accelerationY(){return Ys},get accelerationZ(){return Ws},get gamma(){return qs},get beta(){return Ks},get alpha(){return Zs},pauseOnBlur:!0,resumeOnFocus:!0,autoFocus:!0,stopOnBlur:!1,onReady:Qs,enableSwipe:Js,isFullscreen:$s,requestFullscreen:function(t){Ds&&!$s()&&((t=t||Uc()).requestFullscreen=_n("requestFullscreen",t)||t.mozRequestFullScreen,t.requestFullscreen())},exitFullscreen:function(){Ds&&$s()&&document.exitFullscreen()},getScreenOrientation:ta,lockOrientation:function(t){var e=globalThis.screen;if(void 0!==e){var i=_n("lockOrientation",e);if(void 0!==i)return i(t)}return!1},unlockOrientation:function(){var t=globalThis.screen;if(void 0!==t){var e=_n("unlockOrientation",t);if(void 0!==e)return e()}return!1},isPortrait:function(){return ta().includes("portrait")},isLandscape:function(){return ta().includes("landscape")},getStorage:function(t){if(void 0===t&&(t="local"),"local"===t)return es;throw new Error("storage type "+t+" not supported")},getParentElement:ea,getElement:ia,getElementBounds:oa,getParentBounds:na,isWebGLSupported:ra,getMaxShaderPrecision:sa,focus:aa,watchAccelerometer:function(){return Bs&&!ms&&(DeviceOrientationEvent&&"function"==typeof DeviceOrientationEvent.requestPermission?DeviceOrientationEvent.requestPermission().then((function(t){"granted"===t&&(globalThis.addEventListener("devicemotion",Ts,!1),ms=!0)})).catch(console.error):(globalThis.addEventListener("devicemotion",Ts,!1),ms=!0)),ms},unwatchAccelerometer:function(){ms&&(globalThis.removeEventListener("devicemotion",Ts,!1),ms=!1)},watchDeviceOrientation:function(){return ks&&!xs&&("function"==typeof DeviceOrientationEvent.requestPermission?DeviceOrientationEvent.requestPermission().then((function(t){"granted"===t&&(globalThis.addEventListener("deviceorientation",As,!1),xs=!0)})).catch(console.error):(globalThis.addEventListener("deviceorientation",As,!1),xs=!0)),xs},unwatchDeviceOrientation:function(){xs&&(globalThis.removeEventListener("deviceorientation",As,!1),xs=!1)},vibrate:function(t){void 0!==globalThis.navigator&&"function"==typeof globalThis.navigator.vibrate&&globalThis.navigator.vibrate(t)}}),la={bool:"1i",int:"1i",float:"1f",vec2:"2fv",vec3:"3fv",vec4:"4fv",bvec2:"2iv",bvec3:"3iv",bvec4:"4iv",ivec2:"2iv",ivec3:"3iv",ivec4:"4iv",mat2:"Matrix2fv",mat3:"Matrix3fv",mat4:"Matrix4fv",sampler2D:"1i"};function ua(t,e,i){var o=t.createShader(e);if(t.shaderSource(o,i),t.compileShader(o),!t.getShaderParameter(o,t.COMPILE_STATUS))throw new Error(t.getShaderInfoLog(o));return o}function ca(t,e){return"precision"!==t.substring(0,9)?"precision "+e+" float;"+t:t}function pa(t){return t=(t=(t=(t=t.replace(/\/\*[\s\S]*?\*\/|([^\\:]|^)\/\/.*$/gm,"$1")).replace(/(\\n\s+)|(\s+\\n)/g,"")).replace(/(\\r|\\n)+/g,"")).replace(/\s*([;,[\](){}\\\/\-+*|^&!=<>?~%])\s*/g,"$1")}var da=function(t,e,i,o){this.gl=t,this.vertex=ca(pa(e),o||sa(this.gl)),this.fragment=ca(pa(i),o||sa(this.gl)),this.attributes=function(t,e){for(var i,o={},n=/attribute\s+\w+\s+(\w+)/g,r=0;i=n.exec(e.vertex);)o[i[1]]=r++;return o}(this.gl,this),this.program=function(t,e,i,o){var n=ua(t,t.VERTEX_SHADER,e),r=ua(t,t.FRAGMENT_SHADER,i),s=t.createProgram();for(var a in t.attachShader(s,n),t.attachShader(s,r),o)t.bindAttribLocation(s,o[a],a);if(t.linkProgram(s),!t.getProgramParameter(s,t.LINK_STATUS)){var h="Error initializing Shader "+this+"\ngl.VALIDATE_STATUS: "+t.getProgramParameter(s,t.VALIDATE_STATUS)+"\ngl.getError()"+t.getError()+"\ngl.getProgramInfoLog()"+t.getProgramInfoLog(s);throw t.deleteProgram(s),s=null,new Error(h)}return t.useProgram(s),t.deleteShader(n),t.deleteShader(r),s}(this.gl,this.vertex,this.fragment,this.attributes),this.uniforms=function(t,e){var i,o={},n=/uniform\s+(\w+)\s+(\w+)/g,r={},s={},a={};return[e.vertex,e.fragment].forEach((function(t){for(;i=n.exec(t);)r[i[2]]=i[1]})),Object.keys(r).forEach((function(i){var o=r[i];a[i]=t.getUniformLocation(e.program,i),s[i]={get:function(t){return function(){return a[t]}}(i),set:function(e,i,o){return 0===i.indexOf("mat")?function(i){t[o](a[e],!1,i)}:function(i){var n=o;i.length&&"v"!==o.slice(-1)&&(n+="v"),t[n](a[e],i)}}(i,o,"uniform"+la[o])}})),Object.defineProperties(o,s),o}(this.gl,this),qr(Hr,this.destroy,this)};da.prototype.bind=function(){this.gl.useProgram(this.program)},da.prototype.getAttribLocation=function(t){var e=this.attributes[t];return void 0!==e?e:-1},da.prototype.setUniform=function(t,e){var i=this.uniforms;if(void 0===i[t])throw new Error("undefined ("+t+") uniform for shader "+this);"object"==typeof e&&"function"==typeof e.toArray?i[t]=e.toArray():i[t]=e},da.prototype.setVertexAttributes=function(t,e,i){for(var o=0;o=this.maxVertex},fa.prototype.resize=function(){this.maxVertex<<=1;var t=this.bufferF32;return this.buffer=new ArrayBuffer(this.maxVertex*this.vertexSize*this.quadSize),this.bufferF32=new Float32Array(this.buffer),this.bufferU32=new Uint32Array(this.buffer),this.bufferF32.set(t),this},fa.prototype.push=function(t,e,i,o,n){var r=this.vertexCount*this.vertexSize;return this.vertexCount>=this.maxVertex&&this.resize(),this.bufferF32[r+0]=t,this.bufferF32[r+1]=e,void 0!==i&&(this.bufferF32[r+2]=i,this.bufferF32[r+3]=o),void 0!==n&&(this.bufferU32[r+4]=n),this.vertexCount++,this},fa.prototype.toFloat32=function(t,e){return void 0!==e?this.bufferF32.subarray(t,e):this.bufferF32},fa.prototype.toUint32=function(t,e){return void 0!==e?this.bufferU32.subarray(t,e):this.bufferU32},fa.prototype.length=function(){return this.vertexCount},fa.prototype.isEmpty=function(){return 0===this.vertexCount};var ya=[new Kn,new Kn,new Kn,new Kn],ga=function(t){this.init(t)};ga.prototype.init=function(t){var e=this,i=t.gl;this.currentTextureUnit=-1,this.boundTextures=[],this.renderer=t,this.gl=t.gl,this.color=t.currentColor,this.viewMatrix=t.currentTransform,this.activeShader=null,this.mode=i.TRIANGLES,this.attributes=[],this.vertexByteSize=0,this.vertexSize=0,this.primitiveShader=new da(this.gl,"// Current vertex point\nattribute vec2 aVertex;\n\n// Projection matrix\nuniform mat4 uProjectionMatrix;\n\n// Vertex color\nuniform vec4 uColor;\n\n// Fragment color\nvarying vec4 vColor;\n\nvoid main(void) {\n // Transform the vertex position by the projection matrix\n gl_Position = uProjectionMatrix * vec4(aVertex, 0.0, 1.0);\n // Pass the remaining attributes to the fragment shader\n vColor = vec4(uColor.rgb * uColor.a, uColor.a);\n}\n","varying vec4 vColor;\n\nvoid main(void) {\n gl_FragColor = vColor;\n}\n"),this.quadShader=new da(this.gl,"attribute vec2 aVertex;\nattribute vec2 aRegion;\nattribute vec4 aColor;\n\nuniform mat4 uProjectionMatrix;\n\nvarying vec2 vRegion;\nvarying vec4 vColor;\n\nvoid main(void) {\n // Transform the vertex position by the projection matrix\n gl_Position = uProjectionMatrix * vec4(aVertex, 0.0, 1.0);\n // Pass the remaining attributes to the fragment shader\n vColor = vec4(aColor.bgr * aColor.a, aColor.a);\n vRegion = aRegion;\n}\n","uniform sampler2D uSampler;\nvarying vec4 vColor;\nvarying vec2 vRegion;\n\nvoid main(void) {\n gl_FragColor = texture2D(uSampler, vRegion) * vColor;\n}\n"),this.addAttribute("aVertex",2,i.FLOAT,!1,0*Float32Array.BYTES_PER_ELEMENT),this.addAttribute("aRegion",2,i.FLOAT,!1,2*Float32Array.BYTES_PER_ELEMENT),this.addAttribute("aColor",4,i.UNSIGNED_BYTE,!0,4*Float32Array.BYTES_PER_ELEMENT),this.vertexBuffer=new fa(this.vertexSize,6),i.bindBuffer(i.ARRAY_BUFFER,i.createBuffer()),i.bufferData(i.ARRAY_BUFFER,this.vertexBuffer.buffer,i.STREAM_DRAW),qr(jr,(function(t,i){e.flush(),e.setViewport(0,0,t,i)}))},ga.prototype.reset=function(){this.gl=this.renderer.gl,this.flush(),this.setViewport(0,0,this.renderer.getCanvas().width,this.renderer.getCanvas().height),this.clearColor(0,0,0,0);for(var t=0;t1)?l.REPEAT:l.CLAMP_TO_EDGE,d=0===o.search(/^repeat(-y)?$/)&&(u||this.renderer.WebGLVersion>1)?l.REPEAT:l.CLAMP_TO_EDGE;return this.bindTexture2D(c,t),l.texParameteri(l.TEXTURE_2D,l.TEXTURE_WRAP_S,p),l.texParameteri(l.TEXTURE_2D,l.TEXTURE_WRAP_T,d),l.texParameteri(l.TEXTURE_2D,l.TEXTURE_MAG_FILTER,i),l.texParameteri(l.TEXTURE_2D,l.TEXTURE_MIN_FILTER,i),l.pixelStorei(l.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a),n||r||s?l.texImage2D(l.TEXTURE_2D,0,l.RGBA,n,r,s,l.RGBA,l.UNSIGNED_BYTE,e):l.texImage2D(l.TEXTURE_2D,0,l.RGBA,l.RGBA,l.UNSIGNED_BYTE,e),u&&!1!==h&&l.generateMipmap(l.TEXTURE_2D),c},ga.prototype.deleteTexture2D=function(t){this.gl.deleteTexture(t),this.unbindTexture2D(t)},ga.prototype.getTexture2D=function(t){return this.boundTextures[t]},ga.prototype.bindTexture2D=function(t,e){var i=this.gl;t!==this.boundTextures[e]?(this.flush(),this.currentTextureUnit!==e&&(this.currentTextureUnit=e,i.activeTexture(i.TEXTURE0+e)),i.bindTexture(i.TEXTURE_2D,t),this.boundTextures[e]=t):this.currentTextureUnit!==e&&(this.flush(),this.currentTextureUnit=e,i.activeTexture(i.TEXTURE0+e))},ga.prototype.unbindTexture2D=function(t,e){return void 0===e&&(e=this.boundTextures.indexOf(t)),-1!==e&&(delete this.boundTextures[e],e===this.currentTextureUnit&&(this.currentTextureUnit=-1)),e},ga.prototype.uploadTexture=function(t,e,i,o,n){void 0===n&&(n=!1);var r=this.renderer.cache.getUnit(t),s=this.boundTextures[r];return void 0===s||n?this.createTexture2D(r,t.getTexture(),this.renderer.settings.antiAlias?this.gl.LINEAR:this.gl.NEAREST,t.repeat,e,i,o,t.premultipliedAlpha):this.bindTexture2D(s,r),this.currentTextureUnit},ga.prototype.setProjection=function(t){this.activeShader.setUniform("uProjectionMatrix",t)},ga.prototype.useShader=function(t){this.activeShader!==t&&(this.flush(),this.activeShader=t,this.activeShader.bind(),this.activeShader.setUniform("uProjectionMatrix",this.renderer.projectionMatrix),this.activeShader.setVertexAttributes(this.gl,this.attributes,this.vertexByteSize))},ga.prototype.addQuad=function(t,e,i,o,n,r,s,a,h,l){if(!(this.color.alpha<1/255)){this.useShader(this.quadShader),this.vertexBuffer.isFull(6)&&this.flush();var u=this.uploadTexture(t);this.quadShader.setUniform("uSampler",u);var c=this.viewMatrix,p=ya[0].set(e,i),d=ya[1].set(e+o,i),f=ya[2].set(e,i+n),y=ya[3].set(e+o,i+n);c.isIdentity()||(c.apply(p),c.apply(d),c.apply(f),c.apply(y)),this.vertexBuffer.push(p.x,p.y,r,s,l),this.vertexBuffer.push(d.x,d.y,a,s,l),this.vertexBuffer.push(f.x,f.y,r,h,l),this.vertexBuffer.push(f.x,f.y,r,h,l),this.vertexBuffer.push(d.x,d.y,a,s,l),this.vertexBuffer.push(y.x,y.y,a,h,l)}},ga.prototype.flush=function(t){void 0===t&&(t=this.mode);var e=this.vertexBuffer,i=e.vertexCount;if(i>0){var o=this.gl,n=e.vertexSize;this.renderer.WebGLVersion>1?o.bufferData(o.ARRAY_BUFFER,e.toFloat32(),o.STREAM_DRAW,0,i*n):o.bufferData(o.ARRAY_BUFFER,e.toFloat32(0,i*n),o.STREAM_DRAW),o.drawArrays(t,0,i),e.clear()}},ga.prototype.drawVertices=function(t,e,i){void 0===i&&(i=e.length),this.useShader(this.primitiveShader),this.primitiveShader.setUniform("uColor",this.color);for(var o=this.viewMatrix,n=this.vertexBuffer,r=o.isIdentity(),s=0;s80*i){o=r=t[0],n=s=t[1];for(var f=i;fr&&(r=a),h>s&&(s=h);l=0!==(l=Math.max(r-o,s-n))?32767/l:0}return ba(p,d,i,o,n,l,0),d}function xa(t,e,i,o,n){var r,s;if(n===Ga(t,e,i,o)>0)for(r=e;r=e;r-=o)s=ja(r,t[r],t[r+1],s);return s&&Ba(s,s.next)&&(Ua(s),s=s.next),s}function _a(t,e){if(!t)return t;e||(e=t);var i,o=t;do{if(i=!1,o.steiner||!Ba(o,o.next)&&0!==Ra(o.prev,o,o.next))o=o.next;else{if(Ua(o),(o=e=o.prev)===o.next)break;i=!0}}while(i||o!==e);return e}function ba(t,e,i,o,n,r,s){if(t){!s&&r&&function(t,e,i,o){var n=t;do{0===n.z&&(n.z=Pa(n.x,n.y,e,i,o)),n.prevZ=n.prev,n.nextZ=n.next,n=n.next}while(n!==t);n.prevZ.nextZ=null,n.prevZ=null,function(t){var e,i,o,n,r,s,a,h,l=1;do{for(i=t,t=null,r=null,s=0;i;){for(s++,o=i,a=0,e=0;e0||h>0&&o;)0!==a&&(0===h||!o||i.z<=o.z)?(n=i,i=i.nextZ,a--):(n=o,o=o.nextZ,h--),r?r.nextZ=n:t=n,n.prevZ=r,r=n;i=o}r.nextZ=null,l*=2}while(s>1)}(n)}(t,o,n,r);for(var a,h,l=t;t.prev!==t.next;)if(a=t.prev,h=t.next,r?Ta(t,o,n,r):wa(t))e.push(a.i/i|0),e.push(t.i/i|0),e.push(h.i/i|0),Ua(t),t=h.next,l=h.next;else if((t=h)===l){s?1===s?ba(t=Aa(_a(t),e,i),e,i,o,n,r,2):2===s&&Ea(t,e,i,o,n,r):ba(_a(t),e,i,o,n,r,1);break}}}function wa(t){var e=t.prev,i=t,o=t.next;if(Ra(e,i,o)>=0)return!1;for(var n=e.x,r=i.x,s=o.x,a=e.y,h=i.y,l=o.y,u=nr?n>s?n:s:r>s?r:s,d=a>h?a>l?a:l:h>l?h:l,f=o.next;f!==e;){if(f.x>=u&&f.x<=p&&f.y>=c&&f.y<=d&&Ia(n,a,r,h,s,l,f.x,f.y)&&Ra(f.prev,f,f.next)>=0)return!1;f=f.next}return!0}function Ta(t,e,i,o){var n=t.prev,r=t,s=t.next;if(Ra(n,r,s)>=0)return!1;for(var a=n.x,h=r.x,l=s.x,u=n.y,c=r.y,p=s.y,d=ah?a>l?a:l:h>l?h:l,g=u>c?u>p?u:p:c>p?c:p,v=Pa(d,f,e,i,o),m=Pa(y,g,e,i,o),x=t.prevZ,_=t.nextZ;x&&x.z>=v&&_&&_.z<=m;){if(x.x>=d&&x.x<=y&&x.y>=f&&x.y<=g&&x!==n&&x!==s&&Ia(a,u,h,c,l,p,x.x,x.y)&&Ra(x.prev,x,x.next)>=0)return!1;if(x=x.prevZ,_.x>=d&&_.x<=y&&_.y>=f&&_.y<=g&&_!==n&&_!==s&&Ia(a,u,h,c,l,p,_.x,_.y)&&Ra(_.prev,_,_.next)>=0)return!1;_=_.nextZ}for(;x&&x.z>=v;){if(x.x>=d&&x.x<=y&&x.y>=f&&x.y<=g&&x!==n&&x!==s&&Ia(a,u,h,c,l,p,x.x,x.y)&&Ra(x.prev,x,x.next)>=0)return!1;x=x.prevZ}for(;_&&_.z<=m;){if(_.x>=d&&_.x<=y&&_.y>=f&&_.y<=g&&_!==n&&_!==s&&Ia(a,u,h,c,l,p,_.x,_.y)&&Ra(_.prev,_,_.next)>=0)return!1;_=_.nextZ}return!0}function Aa(t,e,i){var o=t;do{var n=o.prev,r=o.next.next;!Ba(n,r)&&Da(n,o,o.next,r)&&Fa(n,r)&&Fa(r,n)&&(e.push(n.i/i|0),e.push(o.i/i|0),e.push(r.i/i|0),Ua(o),Ua(o.next),o=t=r),o=o.next}while(o!==t);return _a(o)}function Ea(t,e,i,o,n,r){var s=t;do{for(var a=s.next.next;a!==s.prev;){if(s.i!==a.i&&ka(s,a)){var h=Va(s,a);return s=_a(s,s.next),h=_a(h,h.next),ba(s,e,i,o,n,r,0),void ba(h,e,i,o,n,r,0)}a=a.next}s=s.next}while(s!==t)}function Sa(t,e){return t.x-e.x}function Ca(t,e){var i=function(t,e){var i,o=e,n=t.x,r=t.y,s=-1/0;do{if(r<=o.y&&r>=o.next.y&&o.next.y!==o.y){var a=o.x+(r-o.y)*(o.next.x-o.x)/(o.next.y-o.y);if(a<=n&&a>s&&(s=a,i=o.x=o.x&&o.x>=u&&n!==o.x&&Ia(ri.x||o.x===i.x&&Ma(i,o)))&&(i=o,p=h)),o=o.next}while(o!==l);return i}(t,e);if(!i)return e;var o=Va(i,t);return _a(o,o.next),_a(i,i.next)}function Ma(t,e){return Ra(t.prev,t,e.prev)<0&&Ra(e.next,t,t.next)<0}function Pa(t,e,i,o,n){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-i)*n|0)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-o)*n|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function Oa(t){var e=t,i=t;do{(e.x=(t-s)*(r-a)&&(t-s)*(o-a)>=(i-s)*(e-a)&&(i-s)*(r-a)>=(n-s)*(o-a)}function ka(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var i=t;do{if(i.i!==t.i&&i.next.i!==t.i&&i.i!==e.i&&i.next.i!==e.i&&Da(i,i.next,t,e))return!0;i=i.next}while(i!==t);return!1}(t,e)&&(Fa(t,e)&&Fa(e,t)&&function(t,e){var i=t,o=!1,n=(t.x+e.x)/2,r=(t.y+e.y)/2;do{i.y>r!=i.next.y>r&&i.next.y!==i.y&&n<(i.next.x-i.x)*(r-i.y)/(i.next.y-i.y)+i.x&&(o=!o),i=i.next}while(i!==t);return o}(t,e)&&(Ra(t.prev,t,e.prev)||Ra(t,e.prev,e))||Ba(t,e)&&Ra(t.prev,t,t.next)>0&&Ra(e.prev,e,e.next)>0)}function Ra(t,e,i){return(e.y-t.y)*(i.x-e.x)-(e.x-t.x)*(i.y-e.y)}function Ba(t,e){return t.x===e.x&&t.y===e.y}function Da(t,e,i,o){var n=za(Ra(t,e,i)),r=za(Ra(t,e,o)),s=za(Ra(i,o,t)),a=za(Ra(i,o,e));return n!==r&&s!==a||(!(0!==n||!La(t,i,e))||(!(0!==r||!La(t,o,e))||(!(0!==s||!La(i,t,o))||!(0!==a||!La(i,e,o)))))}function La(t,e,i){return e.x<=Math.max(t.x,i.x)&&e.x>=Math.min(t.x,i.x)&&e.y<=Math.max(t.y,i.y)&&e.y>=Math.min(t.y,i.y)}function za(t){return t>0?1:t<0?-1:0}function Fa(t,e){return Ra(t.prev,t,t.next)<0?Ra(t,e,t.next)>=0&&Ra(t,t.prev,e)>=0:Ra(t,e,t.prev)<0||Ra(t,t.next,e)<0}function Va(t,e){var i=new Na(t.i,t.x,t.y),o=new Na(e.i,e.x,e.y),n=t.next,r=e.prev;return t.next=e,e.prev=t,i.next=n,n.prev=i,o.next=i,i.prev=o,r.next=o,o.prev=r,o}function ja(t,e,i,o){var n=new Na(t,e,i);return o?(n.next=o.next,n.prev=o,o.next.prev=n,o.next=n):(n.prev=n,n.next=n),n}function Ua(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function Na(t,e,i){this.i=t,this.x=e,this.y=i,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function Ga(t,e,i,o){for(var n=0,r=e,s=i-o;r0&&(o+=t[n-1].length,i.holes.push(o))}return i};var Xa=function(t,e,i){this.pos=qn.pull("Vector2d"),this._bounds,this.points=[],this.edges=[],this.indices=[],this.normals=[],this.shapeType="Polygon",this.setShape(t,e,i)};Xa.prototype.onResetEvent=function(t,e,i){this.setShape(t,e,i)},Xa.prototype.setShape=function(t,e,i){return this.pos.set(t,e),this.setVertices(i),this},Xa.prototype.setVertices=function(t){var e=this;if(!Array.isArray(t))return this;if(t[0]instanceof Kn)this.points=t;else if(this.points.length=0,"object"==typeof t[0])t.forEach((function(t){e.points.push(qn.pull("Vector2d",t.x,t.y))}));else for(var i=0;i0&&(n|=2),3===n)return!1;return 0!==n||null},Xa.prototype.translate=function(){var t,e;return 2===arguments.length?(t=arguments[0],e=arguments[1]):(t=arguments[0].x,e=arguments[0].y),this.pos.x+=t,this.pos.y+=e,this.getBounds().translate(t,e),this},Xa.prototype.shift=function(){var t,e;2===arguments.length?(t=arguments[0],e=arguments[1]):(t=arguments[0].x,e=arguments[0].y),this.pos.x=t,this.pos.y=e,this.updateBounds()},Xa.prototype.contains=function(){var t,e;2===arguments.length?(t=arguments[0],e=arguments[1]):(t=arguments[0].x,e=arguments[0].y);for(var i=!1,o=this.pos.x,n=this.pos.y,r=this.points,s=r.length,a=0,h=s-1;ae!=c>e&&t<(p-u)*(e-l)/(c-l)+u&&(i=!i)}return i},Xa.prototype.getBounds=function(){return void 0===this._bounds&&(this._bounds=qn.pull("Bounds")),this._bounds},Xa.prototype.updateBounds=function(){var t=this.getBounds();return t.update(this.points),t.translate(this.pos),t},Xa.prototype.clone=function(){var t=[];return this.points.forEach((function(e){t.push(e.clone())})),new Xa(this.pos.x,this.pos.y,t)};var Ha=function(t){function e(e,i,o,n){t.call(this,e,i,[qn.pull("Vector2d",0,0),qn.pull("Vector2d",o,0),qn.pull("Vector2d",o,n),qn.pull("Vector2d",0,n)]),this.shapeType="Rectangle"}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var i={left:{configurable:!0},right:{configurable:!0},top:{configurable:!0},bottom:{configurable:!0},width:{configurable:!0},height:{configurable:!0},centerX:{configurable:!0},centerY:{configurable:!0}};return e.prototype.onResetEvent=function(t,e,i,o){this.setShape(t,e,i,o)},e.prototype.setShape=function(t,e,i,o){var n=i;return this.pos.set(t,e),4===arguments.length&&((n=this.points)[0].set(0,0),n[1].set(i,0),n[2].set(i,o),n[3].set(0,o)),this.setVertices(n),this},i.left.get=function(){return this.pos.x},i.right.get=function(){var t=this.width;return this.pos.x+t||t},i.top.get=function(){return this.pos.y},i.bottom.get=function(){var t=this.height;return this.pos.y+t||t},i.width.get=function(){return this.points[2].x},i.width.set=function(t){this.points[1].x=this.points[2].x=t,this.recalc(),this.updateBounds()},i.height.get=function(){return this.points[2].y},i.height.set=function(t){this.points[2].y=this.points[3].y=t,this.recalc(),this.updateBounds()},i.centerX.get=function(){return isFinite(this.width)?this.pos.x+this.width/2:this.width},i.centerX.set=function(t){this.pos.x=t-this.width/2},i.centerY.get=function(){return isFinite(this.height)?this.pos.y+this.height/2:this.height},i.centerY.set=function(t){this.pos.y=t-this.height/2},e.prototype.centerOn=function(t,e){return this.centerX=t,this.centerY=e,this},e.prototype.resize=function(t,e){return this.width=t,this.height=e,this},e.prototype.scale=function(t,e){return void 0===e&&(e=t),this.width*=t,this.height*=e,this},e.prototype.clone=function(){return new e(this.pos.x,this.pos.y,this.width,this.height)},e.prototype.copy=function(t){return this.setShape(t.pos.x,t.pos.y,t.width,t.height)},e.prototype.union=function(t){var e=Math.min(this.left,t.left),i=Math.min(this.top,t.top);return this.resize(Math.max(this.right,t.right)-e,Math.max(this.bottom,t.bottom)-i),this.pos.set(e,i),this},e.prototype.overlaps=function(t){return this.left=this.left&&i<=this.right&&o>=this.top&&n<=this.bottom},e.prototype.equals=function(t){return t.left===this.left&&t.right===this.right&&t.top===this.top&&t.bottom===this.bottom},e.prototype.isFinite=function(){return isFinite(this.pos.x)&&isFinite(this.pos.y)&&isFinite(this.width)&&isFinite(this.height)},e.prototype.toPolygon=function(){return qn.pull("Polygon",this.pos.x,this.pos.y,this.points)},Object.defineProperties(e.prototype,i),e}(Xa),Ya=function(t){function e(e,i,o,n,r){void 0===r&&(r=20),t.call(this,e,i,o,n),this.radius=r}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var i={radius:{configurable:!0}};return e.prototype.onResetEvent=function(e,i,o,n,r){t.prototype.setShape.call(this,e,i,o,n),this.radius=r},i.radius.get=function(){return this._radius},i.radius.set=function(t){this.width<2*t&&(t=this.width/2),this.height<2*t&&(t=this.height/2),this._radius=t},e.prototype.copy=function(e){return t.prototype.setShape.call(this,e.pos.x,e.pos.y,e.width,e.height),this.radius=e.radius,this},e.prototype.contains=function(){var e,i,o,n,r=arguments[0];if(2===arguments.length)e=r,i=arguments[1];else{if(r instanceof t)return t.prototype.contains.call(this,r);e=r.x,i=r.y}if(e=this.right||i=this.bottom)return!1;if(e>=this.left+this.radius&&e<=this.right-this.radius||i>=this.top+this.radius&&i<=this.bottom-this.radius)return!0;var s=Math.max(0,Math.min(this.radius,this.width/2)),a=Math.max(0,Math.min(this.radius,this.height/2));if(ethis.right-s&&ithis.right-s&&i>this.bottom-a)o=e-this.right+s,n=i-this.bottom+a;else{if(!(ethis.bottom-a))return!1;o=e-this.left-s,n=i-this.bottom+a}return o*o+n*n<=s*a},e.prototype.equals=function(e){return t.prototype.equals.call(this,e)&&this.radius===e.radius},e.prototype.clone=function(){return new e(this.pos.x,this.pos.y,this.width,this.height,this.radius)},Object.defineProperties(e.prototype,i),e}(Ha),Wa=function(t,e,i,o){this.pos=qn.pull("Vector2d"),this._bounds=void 0,this.radius=NaN,this.radiusV=qn.pull("Vector2d"),this.radiusSq=qn.pull("Vector2d"),this.ratio=qn.pull("Vector2d"),this.shapeType="Ellipse",this.setShape(t,e,i,o)};Wa.prototype.onResetEvent=function(t,e,i,o){this.setShape(t,e,i,o)},Wa.prototype.setShape=function(t,e,i,o){var n=i/2,r=o/2;this.pos.set(t,e),this.radius=Math.max(n,r),this.ratio.set(n/this.radius,r/this.radius),this.radiusV.set(this.radius,this.radius).scaleV(this.ratio);var s=this.radius*this.radius;return this.radiusSq.set(s,s).scaleV(this.ratio),this.getBounds().setMinMax(t,e,t+i,t+o),this.getBounds().translate(-this.radiusV.x,-this.radiusV.y),this},Wa.prototype.rotate=function(t,e){return this.pos.rotate(t,e),this.getBounds().shift(this.pos),this.getBounds().translate(-this.radiusV.x,-this.radiusV.y),this},Wa.prototype.scale=function(t,e){return e=void 0!==e?e:t,this.setShape(this.pos.x,this.pos.y,2*this.radiusV.x*t,2*this.radiusV.y*e)},Wa.prototype.scaleV=function(t){return this.scale(t.x,t.y)},Wa.prototype.transform=function(t){return this},Wa.prototype.translate=function(){var t,e;return 2===arguments.length?(t=arguments[0],e=arguments[1]):(t=arguments[0].x,e=arguments[0].y),this.pos.x+=t,this.pos.y+=e,this.getBounds().translate(t,e),this},Wa.prototype.contains=function(){var t,e;return 2===arguments.length?(t=arguments[0],e=arguments[1]):(t=arguments[0].x,e=arguments[0].y),t-=this.pos.x,e-=this.pos.y,t*t/this.radiusSq.x+e*e/this.radiusSq.y<=1},Wa.prototype.getBounds=function(){return void 0===this._bounds&&(this._bounds=qn.pull("Bounds")),this._bounds},Wa.prototype.clone=function(){return new Wa(this.pos.x,this.pos.y,2*this.radiusV.x,2*this.radiusV.y)};var qa=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.contains=function(){var t,e;2===arguments.length?(t=arguments[0],e=arguments[1]):(t=arguments[0].x,e=arguments[0].y),t-=this.pos.x,e-=this.pos.y;var i=this.points[0],o=this.points[1];return(e-i.y)*(o.x-i.x)==(o.y-i.y)*(t-i.x)},e.prototype.recalc=function(){var t=this.edges,e=this.normals,i=this.indices,o=this.points;if(2!==o.length)throw new Error("Requires exactly 2 points");return void 0===t[0]&&(t[0]=qn.pull("Vector2d")),t[0].copy(o[1]).sub(o[0]),void 0===e[0]&&(e[0]=qn.pull("Vector2d")),e[0].copy(t[0]).perp().normalize(),i.length=0,this},e.prototype.clone=function(){var t=[];return this.points.forEach((function(e){t.push(e.clone())})),new e(this.pos.x,this.pos.y,t)},e}(Xa),Ka=function(t){this._center=new Kn,this.onResetEvent(t)},Za={x:{configurable:!0},y:{configurable:!0},width:{configurable:!0},height:{configurable:!0},left:{configurable:!0},right:{configurable:!0},top:{configurable:!0},bottom:{configurable:!0},centerX:{configurable:!0},centerY:{configurable:!0},center:{configurable:!0}};Ka.prototype.onResetEvent=function(t){void 0===this.min?(this.min={x:1/0,y:1/0},this.max={x:-1/0,y:-1/0}):this.clear(),void 0!==t&&this.update(t)},Ka.prototype.clear=function(){this.setMinMax(1/0,1/0,-1/0,-1/0)},Ka.prototype.setMinMax=function(t,e,i,o){this.min.x=t,this.min.y=e,this.max.x=i,this.max.y=o},Za.x.get=function(){return this.min.x},Za.x.set=function(t){var e=this.max.x-this.min.x;this.min.x=t,this.max.x=t+e},Za.y.get=function(){return this.min.y},Za.y.set=function(t){var e=this.max.y-this.min.y;this.min.y=t,this.max.y=t+e},Za.width.get=function(){return this.max.x-this.min.x},Za.width.set=function(t){this.max.x=this.min.x+t},Za.height.get=function(){return this.max.y-this.min.y},Za.height.set=function(t){this.max.y=this.min.y+t},Za.left.get=function(){return this.min.x},Za.right.get=function(){return this.max.x},Za.top.get=function(){return this.min.y},Za.bottom.get=function(){return this.max.y},Za.centerX.get=function(){return this.min.x+this.width/2},Za.centerY.get=function(){return this.min.y+this.height/2},Za.center.get=function(){return this._center.set(this.centerX,this.centerY)},Ka.prototype.update=function(t){this.add(t,!0)},Ka.prototype.add=function(t,e){void 0===e&&(e=!1),!0===e&&this.clear();for(var i=0;ithis.max.x&&(this.max.x=o.x),o.xthis.max.y&&(this.max.y=o.y),o.ythis.max.x&&(this.max.x=t.max.x),t.min.xthis.max.y&&(this.max.y=t.max.y),t.min.y=this.min.x&&e<=this.max.x&&i>=this.min.y&&o<=this.max.y},Ka.prototype.overlaps=function(t){return!(this.rightt.right||this.bottomt.bottom)},Ka.prototype.isFinite=function(){return isFinite(this.min.x)&&isFinite(this.max.x)&&isFinite(this.min.y)&&isFinite(this.max.y)},Ka.prototype.translate=function(){var t,e;2===arguments.length?(t=arguments[0],e=arguments[1]):(t=arguments[0].x,e=arguments[0].y),this.min.x+=t,this.max.x+=t,this.min.y+=e,this.max.y+=e},Ka.prototype.shift=function(){var t,e;2===arguments.length?(t=arguments[0],e=arguments[1]):(t=arguments[0].x,e=arguments[0].y);var i=this.max.x-this.min.x,o=this.max.y-this.min.y;this.min.x=t,this.max.x=t+i,this.min.y=e,this.max.y=e+o},Ka.prototype.clone=function(){var t=new Ka;return t.addBounds(this),t},Ka.prototype.toPolygon=function(){return qn.pull("Polygon",this.x,this.y,[qn.pull("Vector2d",0,0),qn.pull("Vector2d",this.width,0),qn.pull("Vector2d",this.width,this.height),qn.pull("Vector2d",0,this.height)])},Object.defineProperties(Ka.prototype,Za);var Qa=function(){this.points=[],this.arcResolution=5,this.vertices=[]};Qa.prototype.beginPath=function(){this.points.forEach((function(t){qn.push(t)})),this.points.length=0},Qa.prototype.closePath=function(){var t=this.points;t.length>1&&!t[t.length-1].equals(t[0])&&t.push(qn.pull("Vector2d",t[0].x,t[0].y))},Qa.prototype.triangulatePath=function(){var t=0,e=this.points,i=this.vertices,o=va.exports(e.flatMap((function(t){return[t.x,t.y]})));for(t=0;to.length;)qn.push(i[i.length-1]),i.length-=1;return i},Qa.prototype.moveTo=function(t,e){this.points.push(qn.pull("Vector2d",t,e))},Qa.prototype.lineTo=function(t,e){this.points.push(qn.pull("Vector2d",t,e))},Qa.prototype.arc=function(t,e,i,o,n,r){void 0===r&&(r=!1);var s=this.points;if(o!==n){var a=r?Math.abs(o-n)>=En:Math.abs(n-o)>=En;(o%=En)<0&&(o+=En),(n%=En)<0&&(n+=En),o>=n&&(n+=En);var h=n-o,l=1;r&&(l=-1,h=En-h),a&&(h=En);for(var u=h*i/this.arcResolution,c=h/u,p=o,d=0;d=En:Math.abs(s-r)>=En;(r%=En)<0&&(r+=En),(s%=En)<0&&(s+=En),r>=s&&(s+=En);var u=s-r,c=1;a&&(c=-1,u=En-u),l&&(u=En);for(var p=(u*i+u*o)/2/this.arcResolution,d=u/p,f=r,y=Math.cos(n),g=Math.sin(n),v=0;v=0&&t.top<=this.getHeight()&&t.bottom>=0},$a.prototype.resize=function(t,e){var i=this.getCanvas();t===i.width&&e===i.height||(i.width=t,i.height=e,this.currentScissor[0]=0,this.currentScissor[1]=0,this.currentScissor[2]=t,this.currentScissor[3]=e,Wr(jr,t,e))},$a.prototype.setAntiAlias=function(t,e){var i=t.canvas;bn("imageSmoothingEnabled",!0===e,t),!0!==e?(i.style["image-rendering"]="optimizeSpeed",i.style["image-rendering"]="-moz-crisp-edges",i.style["image-rendering"]="-o-crisp-edges",i.style["image-rendering"]="-webkit-optimize-contrast",i.style["image-rendering"]="optimize-contrast",i.style["image-rendering"]="crisp-edges",i.style["image-rendering"]="pixelated",i.style.msInterpolationMode="nearest-neighbor"):i.style["image-rendering"]="auto"},$a.prototype.setProjection=function(t){this.projectionMatrix.copy(t)},$a.prototype.stroke=function(t,e){if(t instanceof Ya)this.strokeRoundRect(t.left,t.top,t.width,t.height,t.radius,e);else if(t instanceof Ha||t instanceof Ka)this.strokeRect(t.left,t.top,t.width,t.height,e);else if(t instanceof qa||t instanceof Xa)this.strokePolygon(t,e);else if(t instanceof Wa)this.strokeEllipse(t.pos.x,t.pos.y,t.radiusV.x,t.radiusV.y,e);else{if(!(t instanceof Ja))throw new Error("Invalid geometry for fill/stroke");this.strokePoint(t.x,t.y)}},$a.prototype.fill=function(t){this.stroke(t,!0)},$a.prototype.tint=function(t,e,i){var o=jc(t.width,t.height,!0),n=this.getContext2d(o);return n.save(),n.fillStyle=e instanceof nr?e.toRGB():e,n.fillRect(0,0,t.width,t.height),n.globalCompositeOperation=i||"multiply",n.drawImage(t,0,0),n.globalCompositeOperation="destination-atop",n.drawImage(t,0,0),n.restore(),o},$a.prototype.setMask=function(t){},$a.prototype.clearMask=function(){},$a.prototype.setTint=function(t,e){void 0===e&&(e=t.alpha),this.currentTint.copy(t),this.currentTint.alpha*=e},$a.prototype.clearTint=function(){this.currentTint.setColor(255,255,255,1)},$a.prototype.drawFont=function(){};var th={}; +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).me={})}(this,(function(t){"use strict";var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},i=function(t){return t&&t.Math==Math&&t},o=i("object"==typeof globalThis&&globalThis)||i("object"==typeof window&&window)||i("object"==typeof self&&self)||i("object"==typeof e&&e)||function(){return this}()||Function("return this")(),n={},r=function(t){try{return!!t()}catch(t){return!0}},s=!r((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),a=!r((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")})),h=a,l=Function.prototype.call,u=h?l.bind(l):function(){return l.apply(l,arguments)},c={},p={}.propertyIsEnumerable,d=Object.getOwnPropertyDescriptor,f=d&&!p.call({1:2},1);c.f=f?function(t){var e=d(this,t);return!!e&&e.enumerable}:p;var y,g,v=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},m=a,x=Function.prototype,_=x.bind,b=x.call,w=m&&_.bind(b,b),T=m?function(t){return t&&w(t)}:function(t){return t&&function(){return b.apply(t,arguments)}},A=T,E=A({}.toString),S=A("".slice),C=function(t){return S(E(t),8,-1)},M=r,P=C,O=Object,I=T("".split),k=M((function(){return!O("z").propertyIsEnumerable(0)}))?function(t){return"String"==P(t)?I(t,""):O(t)}:O,R=TypeError,B=function(t){if(null==t)throw R("Can't call method on "+t);return t},D=k,L=B,z=function(t){return D(L(t))},F=function(t){return"function"==typeof t},V=F,j=function(t){return"object"==typeof t?null!==t:V(t)},U=o,N=F,G=function(t){return N(t)?t:void 0},X=function(t,e){return arguments.length<2?G(U[t]):U[t]&&U[t][e]},H=T({}.isPrototypeOf),Y=o,W=X("navigator","userAgent")||"",q=Y.process,K=Y.Deno,Z=q&&q.versions||K&&K.version,Q=Z&&Z.v8;Q&&(g=(y=Q.split("."))[0]>0&&y[0]<4?1:+(y[0]+y[1])),!g&&W&&(!(y=W.match(/Edge\/(\d+)/))||y[1]>=74)&&(y=W.match(/Chrome\/(\d+)/))&&(g=+y[1]);var J=g,$=r,tt=!!Object.getOwnPropertySymbols&&!$((function(){var t=Symbol();return!String(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&J&&J<41})),et=tt&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,it=X,ot=F,nt=H,rt=Object,st=et?function(t){return"symbol"==typeof t}:function(t){var e=it("Symbol");return ot(e)&&nt(e.prototype,rt(t))},at=String,ht=F,lt=function(t){try{return at(t)}catch(t){return"Object"}},ut=TypeError,ct=function(t){if(ht(t))return t;throw ut(lt(t)+" is not a function")},pt=u,dt=F,ft=j,yt=TypeError,gt={exports:{}},vt=o,mt=Object.defineProperty,xt=function(t,e){try{mt(vt,t,{value:e,configurable:!0,writable:!0})}catch(i){vt[t]=e}return e},_t=xt,bt="__core-js_shared__",wt=o[bt]||_t(bt,{}),Tt=wt;(gt.exports=function(t,e){return Tt[t]||(Tt[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.24.1",mode:"global",copyright:"© 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.24.1/LICENSE",source:"https://github.com/zloirock/core-js"});var At=B,Et=Object,St=function(t){return Et(At(t))},Ct=T({}.hasOwnProperty),Mt=Object.hasOwn||function(t,e){return Ct(St(t),e)},Pt=T,Ot=0,It=Math.random(),kt=Pt(1..toString),Rt=function(t){return"Symbol("+(void 0===t?"":t)+")_"+kt(++Ot+It,36)},Bt=o,Dt=gt.exports,Lt=Mt,zt=Rt,Ft=tt,Vt=et,jt=Dt("wks"),Ut=Bt.Symbol,Nt=Ut&&Ut.for,Gt=Vt?Ut:Ut&&Ut.withoutSetter||zt,Xt=function(t){if(!Lt(jt,t)||!Ft&&"string"!=typeof jt[t]){var e="Symbol."+t;Ft&&Lt(Ut,t)?jt[t]=Ut[t]:jt[t]=Vt&&Nt?Nt(e):Gt(e)}return jt[t]},Ht=u,Yt=j,Wt=st,qt=function(t,e){var i=t[e];return null==i?void 0:ct(i)},Kt=function(t,e){var i,o;if("string"===e&&dt(i=t.toString)&&!ft(o=pt(i,t)))return o;if(dt(i=t.valueOf)&&!ft(o=pt(i,t)))return o;if("string"!==e&&dt(i=t.toString)&&!ft(o=pt(i,t)))return o;throw yt("Can't convert object to primitive value")},Zt=TypeError,Qt=Xt("toPrimitive"),Jt=function(t,e){if(!Yt(t)||Wt(t))return t;var i,o=qt(t,Qt);if(o){if(void 0===e&&(e="default"),i=Ht(o,t,e),!Yt(i)||Wt(i))return i;throw Zt("Can't convert object to primitive value")}return void 0===e&&(e="number"),Kt(t,e)},$t=st,te=function(t){var e=Jt(t,"string");return $t(e)?e:e+""},ee=j,ie=o.document,oe=ee(ie)&&ee(ie.createElement),ne=function(t){return oe?ie.createElement(t):{}},re=!s&&!r((function(){return 7!=Object.defineProperty(ne("div"),"a",{get:function(){return 7}}).a})),se=s,ae=u,he=c,le=v,ue=z,ce=te,pe=Mt,de=re,fe=Object.getOwnPropertyDescriptor;n.f=se?fe:function(t,e){if(t=ue(t),e=ce(e),de)try{return fe(t,e)}catch(t){}if(pe(t,e))return le(!ae(he.f,t,e),t[e])};var ye={},ge=s&&r((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype})),ve=j,me=String,xe=TypeError,_e=function(t){if(ve(t))return t;throw xe(me(t)+" is not an object")},be=s,we=re,Te=ge,Ae=_e,Ee=te,Se=TypeError,Ce=Object.defineProperty,Me=Object.getOwnPropertyDescriptor,Pe="enumerable",Oe="configurable",Ie="writable";ye.f=be?Te?function(t,e,i){if(Ae(t),e=Ee(e),Ae(i),"function"==typeof t&&"prototype"===e&&"value"in i&&Ie in i&&!i.writable){var o=Me(t,e);o&&o.writable&&(t[e]=i.value,i={configurable:Oe in i?i.configurable:o.configurable,enumerable:Pe in i?i.enumerable:o.enumerable,writable:!1})}return Ce(t,e,i)}:Ce:function(t,e,i){if(Ae(t),e=Ee(e),Ae(i),we)try{return Ce(t,e,i)}catch(t){}if("get"in i||"set"in i)throw Se("Accessors not supported");return"value"in i&&(t[e]=i.value),t};var ke=ye,Re=v,Be=s?function(t,e,i){return ke.f(t,e,Re(1,i))}:function(t,e,i){return t[e]=i,t},De={exports:{}},Le=s,ze=Mt,Fe=Function.prototype,Ve=Le&&Object.getOwnPropertyDescriptor,je=ze(Fe,"name"),Ue={EXISTS:je,PROPER:je&&"something"===function(){}.name,CONFIGURABLE:je&&(!Le||Le&&Ve(Fe,"name").configurable)},Ne=F,Ge=wt,Xe=T(Function.toString);Ne(Ge.inspectSource)||(Ge.inspectSource=function(t){return Xe(t)});var He,Ye,We,qe=Ge.inspectSource,Ke=F,Ze=qe,Qe=o.WeakMap,Je=Ke(Qe)&&/native code/.test(Ze(Qe)),$e=gt.exports,ti=Rt,ei=$e("keys"),ii={},oi=Je,ni=o,ri=T,si=j,ai=Be,hi=Mt,li=wt,ui=function(t){return ei[t]||(ei[t]=ti(t))},ci=ii,pi="Object already initialized",di=ni.TypeError,fi=ni.WeakMap;if(oi||li.state){var yi=li.state||(li.state=new fi),gi=ri(yi.get),vi=ri(yi.has),mi=ri(yi.set);He=function(t,e){if(vi(yi,t))throw new di(pi);return e.facade=t,mi(yi,t,e),e},Ye=function(t){return gi(yi,t)||{}},We=function(t){return vi(yi,t)}}else{var xi=ui("state");ci[xi]=!0,He=function(t,e){if(hi(t,xi))throw new di(pi);return e.facade=t,ai(t,xi,e),e},Ye=function(t){return hi(t,xi)?t[xi]:{}},We=function(t){return hi(t,xi)}}var _i={set:He,get:Ye,has:We,enforce:function(t){return We(t)?Ye(t):He(t,{})},getterFor:function(t){return function(e){var i;if(!si(e)||(i=Ye(e)).type!==t)throw di("Incompatible receiver, "+t+" required");return i}}},bi=r,wi=F,Ti=Mt,Ai=s,Ei=Ue.CONFIGURABLE,Si=qe,Ci=_i.enforce,Mi=_i.get,Pi=Object.defineProperty,Oi=Ai&&!bi((function(){return 8!==Pi((function(){}),"length",{value:8}).length})),Ii=String(String).split("String"),ki=De.exports=function(t,e,i){"Symbol("===String(e).slice(0,7)&&(e="["+String(e).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),i&&i.getter&&(e="get "+e),i&&i.setter&&(e="set "+e),(!Ti(t,"name")||Ei&&t.name!==e)&&(Ai?Pi(t,"name",{value:e,configurable:!0}):t.name=e),Oi&&i&&Ti(i,"arity")&&t.length!==i.arity&&Pi(t,"length",{value:i.arity});try{i&&Ti(i,"constructor")&&i.constructor?Ai&&Pi(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var o=Ci(t);return Ti(o,"source")||(o.source=Ii.join("string"==typeof e?e:"")),t};Function.prototype.toString=ki((function(){return wi(this)&&Mi(this).source||Si(this)}),"toString");var Ri=F,Bi=ye,Di=De.exports,Li=xt,zi={},Fi=Math.ceil,Vi=Math.floor,ji=Math.trunc||function(t){var e=+t;return(e>0?Vi:Fi)(e)},Ui=ji,Ni=function(t){var e=+t;return e!=e||0===e?0:Ui(e)},Gi=Ni,Xi=Math.max,Hi=Math.min,Yi=Ni,Wi=Math.min,qi=function(t){return t>0?Wi(Yi(t),9007199254740991):0},Ki=z,Zi=function(t,e){var i=Gi(t);return i<0?Xi(i+e,0):Hi(i,e)},Qi=function(t){return qi(t.length)},Ji=function(t){return function(e,i,o){var n,r=Ki(e),s=Qi(r),a=Zi(o,s);if(t&&i!=i){for(;s>a;)if((n=r[a++])!=n)return!0}else for(;s>a;a++)if((t||a in r)&&r[a]===i)return t||a||0;return!t&&-1}},$i={includes:Ji(!0),indexOf:Ji(!1)},to=Mt,eo=z,io=$i.indexOf,oo=ii,no=T([].push),ro=function(t,e){var i,o=eo(t),n=0,r=[];for(i in o)!to(oo,i)&&to(o,i)&&no(r,i);for(;e.length>n;)to(o,i=e[n++])&&(~io(r,i)||no(r,i));return r},so=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"].concat("length","prototype");zi.f=Object.getOwnPropertyNames||function(t){return ro(t,so)};var ao={};ao.f=Object.getOwnPropertySymbols;var ho=X,lo=zi,uo=ao,co=_e,po=T([].concat),fo=ho("Reflect","ownKeys")||function(t){var e=lo.f(co(t)),i=uo.f;return i?po(e,i(t)):e},yo=Mt,go=fo,vo=n,mo=ye,xo=r,_o=F,bo=/#|\.prototype\./,wo=function(t,e){var i=Ao[To(t)];return i==So||i!=Eo&&(_o(e)?xo(e):!!e)},To=wo.normalize=function(t){return String(t).replace(bo,".").toLowerCase()},Ao=wo.data={},Eo=wo.NATIVE="N",So=wo.POLYFILL="P",Co=wo,Mo=o,Po=n.f,Oo=Be,Io=function(t,e,i,o){o||(o={});var n=o.enumerable,r=void 0!==o.name?o.name:e;if(Ri(i)&&Di(i,r,o),o.global)n?t[e]=i:Li(e,i);else{try{o.unsafe?t[e]&&(n=!0):delete t[e]}catch(t){}n?t[e]=i:Bi.f(t,e,{value:i,enumerable:!1,configurable:!o.nonConfigurable,writable:!o.nonWritable})}return t},ko=xt,Ro=function(t,e,i){for(var o=go(e),n=mo.f,r=vo.f,s=0;s>1,t|=t>>2,t|=t>>4,t|=t>>8,t|=t>>16,++t}function On(t){return t*Tn}function In(t,e,i){return ti?i:+t}function kn(t,e){return~~(Math.random()*(e-t))+t}function Rn(t,e){return Math.random()*(e-t)+t}function Bn(t,e){return~~(Math.pow(Math.random(),2)*(e-t))+t}function Dn(t,e,i){return void 0===i&&(i=2),Math.abs(t-e)0;)i[o]=arguments[o+2];return setTimeout.apply(void 0,[t.bind(e),.01].concat(i))}function Hn(t,e,i){var o,n=globalThis.performance.now();return"boolean"!=typeof i&&(i=!1),function(){var r=globalThis.performance.now(),s=r-n,a=arguments;if(!(s>4)+"0123456789ABCDEF".charAt(t%16)}function Qn(t,e,i){return i<0&&(i+=1),i>1&&(i-=1),i<1/6?t+6*(e-t)*i:i<.5?e:i<2/3?t+(e-t)*(2/3-i)*6:t}Kn.prototype.onResetEvent=function(t,e){return void 0===t&&(t=0),void 0===e&&(e=0),this.x=t,this.y=e,this},Kn.prototype._set=function(t,e){return this.x=t,this.y=e,this},Kn.prototype.set=function(t,e){if(t!==+t||e!==+e)throw new Error("invalid x,y parameters (not a number)");return this._set(t,e)},Kn.prototype.setZero=function(){return this.set(0,0)},Kn.prototype.setV=function(t){return this._set(t.x,t.y)},Kn.prototype.add=function(t){return this._set(this.x+t.x,this.y+t.y)},Kn.prototype.sub=function(t){return this._set(this.x-t.x,this.y-t.y)},Kn.prototype.scale=function(t,e){return this._set(this.x*t,this.y*(void 0!==e?e:t))},Kn.prototype.toIso=function(){return this._set(this.x-this.y,.5*(this.x+this.y))},Kn.prototype.to2d=function(){return this._set(this.y+this.x/2,this.y-this.x/2)},Kn.prototype.scaleV=function(t){return this._set(this.x*t.x,this.y*t.y)},Kn.prototype.div=function(t){return this._set(this.x/t,this.y/t)},Kn.prototype.abs=function(){return this._set(this.x<0?-this.x:this.x,this.y<0?-this.y:this.y)},Kn.prototype.clamp=function(t,e){return new Kn(In(this.x,t,e),In(this.y,t,e))},Kn.prototype.clampSelf=function(t,e){return this._set(In(this.x,t,e),In(this.y,t,e))},Kn.prototype.minV=function(t){return this._set(this.xt.x?this.x:t.x,this.y>t.y?this.y:t.y)},Kn.prototype.floor=function(){return new Kn(Math.floor(this.x),Math.floor(this.y))},Kn.prototype.floorSelf=function(){return this._set(Math.floor(this.x),Math.floor(this.y))},Kn.prototype.ceil=function(){return new Kn(Math.ceil(this.x),Math.ceil(this.y))},Kn.prototype.ceilSelf=function(){return this._set(Math.ceil(this.x),Math.ceil(this.y))},Kn.prototype.negate=function(){return new Kn(-this.x,-this.y)},Kn.prototype.negateSelf=function(){return this._set(-this.x,-this.y)},Kn.prototype.copy=function(t){return this._set(t.x,t.y)},Kn.prototype.equals=function(){var t,e;return 2===arguments.length?(t=arguments[0],e=arguments[1]):(t=arguments[0].x,e=arguments[0].y),this.x===t&&this.y===e},Kn.prototype.normalize=function(){return this.div(this.length()||1)},Kn.prototype.perp=function(){return this._set(this.y,-this.x)},Kn.prototype.rotate=function(t,e){var i=0,o=0;"object"==typeof e&&(i=e.x,o=e.y);var n=this.x-i,r=this.y-o,s=Math.cos(t),a=Math.sin(t);return this._set(n*s-r*a+i,n*a+r*s+o)},Kn.prototype.dot=function(t){return this.x*t.x+this.y*t.y},Kn.prototype.cross=function(t){return this.x*t.y-this.y*t.x},Kn.prototype.length2=function(){return this.dot(this)},Kn.prototype.length=function(){return Math.sqrt(this.length2())},Kn.prototype.lerp=function(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this},Kn.prototype.moveTowards=function(t,e){var i=Math.atan2(t.y-this.y,t.x-this.x),o=this.distance(t);return 0===o||e>=0&&o<=e*e?t:(this.x+=Math.cos(i)*e,this.y+=Math.sin(i)*e,this)},Kn.prototype.distance=function(t){var e=this.x-t.x,i=this.y-t.y;return Math.sqrt(e*e+i*i)},Kn.prototype.angle=function(t){return Math.acos(In(this.dot(t)/(this.length()*t.length()),-1,1))},Kn.prototype.project=function(t){return this.scale(this.dot(t)/t.length2())},Kn.prototype.projectN=function(t){return this.scale(this.dot(t))},Kn.prototype.clone=function(){return qn.pull("Vector2d",this.x,this.y)},Kn.prototype.toString=function(){return"x:"+this.x+",y:"+this.y};var Jn=/^rgba?\((\d+), ?(\d+), ?(\d+)(, ?([\d\.]+))?\)$/,$n=/^#([\da-fA-F])([\da-fA-F])([\da-fA-F])$/,tr=/^#([\da-fA-F])([\da-fA-F])([\da-fA-F])([\da-fA-F])$/,er=/^#([\da-fA-F]{2})([\da-fA-F]{2})([\da-fA-F]{2})$/,ir=/^#([\da-fA-F]{2})([\da-fA-F]{2})([\da-fA-F]{2})([\da-fA-F]{2})$/,or=new Map;[["black",[0,0,0]],["silver",[192,192,129]],["gray",[128,128,128]],["white",[255,255,255]],["maroon",[128,0,0]],["red",[255,0,0]],["purple",[128,0,128]],["fuchsia",[255,0,255]],["green",[0,128,0]],["lime",[0,255,0]],["olive",[128,128,0]],["yellow",[255,255,0]],["navy",[0,0,128]],["blue",[0,0,255]],["teal",[0,128,128]],["aqua",[0,255,255]],["orange",[255,165,0]],["aliceblue",[240,248,245]],["antiquewhite",[250,235,215]],["aquamarine",[127,255,212]],["azure",[240,255,255]],["beige",[245,245,220]],["bisque",[255,228,196]],["blanchedalmond",[255,235,205]],["blueviolet",[138,43,226]],["brown",[165,42,42]],["burlywood",[222,184,35]],["cadetblue",[95,158,160]],["chartreuse",[127,255,0]],["chocolate",[210,105,30]],["coral",[255,127,80]],["cornflowerblue",[100,149,237]],["cornsilk",[255,248,220]],["crimson",[220,20,60]],["darkblue",[0,0,139]],["darkcyan",[0,139,139]],["darkgoldenrod",[184,134,11]],["darkgray[*]",[169,169,169]],["darkgreen",[0,100,0]],["darkgrey[*]",[169,169,169]],["darkkhaki",[189,183,107]],["darkmagenta",[139,0,139]],["darkolivegreen",[85,107,47]],["darkorange",[255,140,0]],["darkorchid",[153,50,204]],["darkred",[139,0,0]],["darksalmon",[233,150,122]],["darkseagreen",[143,188,143]],["darkslateblue",[72,61,139]],["darkslategray",[47,79,79]],["darkslategrey",[47,79,79]],["darkturquoise",[0,206,209]],["darkviolet",[148,0,211]],["deeppink",[255,20,147]],["deepskyblue",[0,191,255]],["dimgray",[105,105,105]],["dimgrey",[105,105,105]],["dodgerblue",[30,144,255]],["firebrick",[178,34,34]],["floralwhite",[255,250,240]],["forestgreen",[34,139,34]],["gainsboro",[220,220,220]],["ghostwhite",[248,248,255]],["gold",[255,215,0]],["goldenrod",[218,165,32]],["greenyellow",[173,255,47]],["grey",[128,128,128]],["honeydew",[240,255,240]],["hotpink",[255,105,180]],["indianred",[205,92,92]],["indigo",[75,0,130]],["ivory",[255,255,240]],["khaki",[240,230,140]],["lavender",[230,230,250]],["lavenderblush",[255,240,245]],["lawngreen",[124,252,0]],["lemonchiffon",[255,250,205]],["lightblue",[173,216,230]],["lightcoral",[240,128,128]],["lightcyan",[224,255,255]],["lightgoldenrodyellow",[250,250,210]],["lightgray",[211,211,211]],["lightgreen",[144,238,144]],["lightgrey",[211,211,211]],["lightpink",[255,182,193]],["lightsalmon",[255,160,122]],["lightseagreen",[32,178,170]],["lightskyblue",[135,206,250]],["lightslategray",[119,136,153]],["lightslategrey",[119,136,153]],["lightsteelblue",[176,196,222]],["lightyellow",[255,255,224]],["limegreen",[50,205,50]],["linen",[250,240,230]],["mediumaquamarine",[102,205,170]],["mediumblue",[0,0,205]],["mediumorchid",[186,85,211]],["mediumpurple",[147,112,219]],["mediumseagreen",[60,179,113]],["mediumslateblue",[123,104,238]],["mediumspringgreen",[0,250,154]],["mediumturquoise",[72,209,204]],["mediumvioletred",[199,21,133]],["midnightblue",[25,25,112]],["mintcream",[245,255,250]],["mistyrose",[255,228,225]],["moccasin",[255,228,181]],["navajowhite",[255,222,173]],["oldlace",[253,245,230]],["olivedrab",[107,142,35]],["orangered",[255,69,0]],["orchid",[218,112,214]],["palegoldenrod",[238,232,170]],["palegreen",[152,251,152]],["paleturquoise",[175,238,238]],["palevioletred",[219,112,147]],["papayawhip",[255,239,213]],["peachpuff",[255,218,185]],["peru",[205,133,63]],["pink",[255,192,203]],["plum",[221,160,221]],["powderblue",[176,224,230]],["rosybrown",[188,143,143]],["royalblue",[65,105,225]],["saddlebrown",[139,69,19]],["salmon",[250,128,114]],["sandybrown",[244,164,96]],["seagreen",[46,139,87]],["seashell",[255,245,238]],["sienna",[160,82,45]],["skyblue",[135,206,235]],["slateblue",[106,90,205]],["slategray",[112,128,144]],["slategrey",[112,128,144]],["snow",[255,250,250]],["springgreen",[0,255,127]],["steelblue",[70,130,180]],["tan",[210,180,140]],["thistle",[216,191,216]],["tomato",[255,99,71]],["turquoise",[64,224,208]],["violet",[238,130,238]],["wheat",[245,222,179]],["whitesmoke",[245,245,245]],["yellowgreen",[154,205,50]]].forEach((function(t){or.set(t[0],t[1])}));var nr=function(t,e,i,o){void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),void 0===o&&(o=1),this.onResetEvent(t,e,i,o)},rr={r:{configurable:!0},g:{configurable:!0},b:{configurable:!0},alpha:{configurable:!0}};nr.prototype.onResetEvent=function(t,e,i,o){return void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),void 0===o&&(o=1),void 0===this.glArray&&(this.glArray=new Float32Array([0,0,0,1])),this.setColor(t,e,i,o)},rr.r.get=function(){return~~(255*this.glArray[0])},rr.r.set=function(t){this.glArray[0]=In(~~t||0,0,255)/255},rr.g.get=function(){return~~(255*this.glArray[1])},rr.g.set=function(t){this.glArray[1]=In(~~t||0,0,255)/255},rr.b.get=function(){return~~(255*this.glArray[2])},rr.b.set=function(t){this.glArray[2]=In(~~t||0,0,255)/255},rr.alpha.get=function(){return this.glArray[3]},rr.alpha.set=function(t){this.glArray[3]=void 0===t?1:In(+t,0,1)},nr.prototype.setColor=function(t,e,i,o){return void 0===o&&(o=1),this.r=t,this.g=e,this.b=i,this.alpha=o,this},nr.prototype.setHSV=function(t,e,i){var o,n,r,s=Math.floor(6*t),a=6*t-s,h=i*(1-e),l=i*(1-a*e),u=i*(1-(1-a)*e);switch(s%6){case 0:o=i,n=u,r=h;break;case 1:o=l,n=i,r=h;break;case 2:o=h,n=i,r=u;break;case 3:o=h,n=l,r=i;break;case 4:o=u,n=h,r=i;break;case 5:o=i,n=h,r=l}return this.setColor(255*o,255*n,255*r)},nr.prototype.setHSL=function(t,e,i){var o,n,r;if(0===e)o=n=r=i;else{var s=i<.5?i*(1+e):i+e-i*e,a=2*i-s;o=Qn(a,s,t+1/3),n=Qn(a,s,t),r=Qn(a,s,t-1/3)}return this.setColor(255*o,255*n,255*r)},nr.prototype.clone=function(){return qn.pull("Color").copy(this)},nr.prototype.copy=function(t){return t instanceof nr?(this.glArray.set(t.glArray),this):this.parseCSS(t)},nr.prototype.add=function(t){return this.glArray[0]=In(this.glArray[0]+t.glArray[0],0,1),this.glArray[1]=In(this.glArray[1]+t.glArray[1],0,1),this.glArray[2]=In(this.glArray[2]+t.glArray[2],0,1),this.glArray[3]=(this.glArray[3]+t.glArray[3])/2,this},nr.prototype.darken=function(t){return t=In(t,0,1),this.glArray[0]*=t,this.glArray[1]*=t,this.glArray[2]*=t,this},nr.prototype.lerp=function(t,e){return e=In(e,0,1),this.glArray[0]+=(t.glArray[0]-this.glArray[0])*e,this.glArray[1]+=(t.glArray[1]-this.glArray[1])*e,this.glArray[2]+=(t.glArray[2]-this.glArray[2])*e,this},nr.prototype.lighten=function(t){return t=In(t,0,1),this.glArray[0]=In(this.glArray[0]+(1-this.glArray[0])*t,0,1),this.glArray[1]=In(this.glArray[1]+(1-this.glArray[1])*t,0,1),this.glArray[2]=In(this.glArray[2]+(1-this.glArray[2])*t,0,1),this},nr.prototype.random=function(t,e){return void 0===t&&(t=0),void 0===e&&(e=255),t<0&&(t=0),e>255&&(e=255),this.setColor(kn(t,e),kn(t,e),kn(t,e),this.alpha)},nr.prototype.equals=function(t){return this.glArray[0]===t.glArray[0]&&this.glArray[1]===t.glArray[1]&&this.glArray[2]===t.glArray[2]&&this.glArray[3]===t.glArray[3]},nr.prototype.parseCSS=function(t){return or.has(t)?this.setColor.apply(this,or.get(t)):this.parseRGB(t)},nr.prototype.parseRGB=function(t){var e=Jn.exec(t);return e?this.setColor(+e[1],+e[2],+e[3],+e[5]):this.parseHex(t)},nr.prototype.parseHex=function(t,e){var i;if(void 0===e&&(e=!1),i=ir.exec(t))return this.setColor(parseInt(i[!1===e?1:2],16),parseInt(i[!1===e?2:3],16),parseInt(i[!1===e?3:4],16),(In(parseInt(i[!1===e?4:1],16),0,255)/255).toFixed(1));if(i=er.exec(t))return this.setColor(parseInt(i[1],16),parseInt(i[2],16),parseInt(i[3],16));if(i=tr.exec(t)){var o=i[!1===e?1:2],n=i[!1===e?2:3],r=i[!1===e?3:4],s=i[!1===e?4:1];return this.setColor(parseInt(o+o,16),parseInt(n+n,16),parseInt(r+r,16),(In(parseInt(s+s,16),0,255)/255).toFixed(1))}if(i=$n.exec(t))return this.setColor(parseInt(i[1]+i[1],16),parseInt(i[2]+i[2],16),parseInt(i[3]+i[3],16));throw new Error("invalid parameter: "+t)},nr.prototype.toUint32=function(t){return void 0===t&&(t=1),((255*t&255)<<24)+((255&this.r)<<16)+((255&this.g)<<8)+(255&this.b)},nr.prototype.toArray=function(){return this.glArray},nr.prototype.toHex=function(){return"#"+Zn(this.r)+Zn(this.g)+Zn(this.b)},nr.prototype.toHex8=function(t){return void 0===t&&(t=this.alpha),"#"+Zn(this.r)+Zn(this.g)+Zn(this.b)+Zn(255*t)},nr.prototype.toRGB=function(){return"rgb("+this.r+","+this.g+","+this.b+")"},nr.prototype.toRGBA=function(t){return void 0===t&&(t=this.alpha),"rgba("+this.r+","+this.g+","+this.b+","+t+")"},Object.defineProperties(nr.prototype,rr);var sr=function(){for(var t,e=[],i=arguments.length;i--;)e[i]=arguments[i];(t=this).onResetEvent.apply(t,e)},ar={tx:{configurable:!0},ty:{configurable:!0},tz:{configurable:!0}};sr.prototype.onResetEvent=function(){void 0===this.val&&(this.val=new Float32Array(16)),arguments.length&&arguments[0]instanceof sr?this.copy(arguments[0]):16===arguments.length?this.setTransform.apply(this,arguments):this.identity()},ar.tx.get=function(){return this.val[12]},ar.ty.get=function(){return this.val[13]},ar.tz.get=function(){return this.val[14]},sr.prototype.identity=function(){return this.setTransform(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)},sr.prototype.setTransform=function(t,e,i,o,n,r,s,a,h,l,u,c,p,d,f,y){var g=this.val;return g[0]=t,g[1]=e,g[2]=i,g[3]=o,g[4]=n,g[5]=r,g[6]=s,g[7]=a,g[8]=h,g[9]=l,g[10]=u,g[11]=c,g[12]=p,g[13]=d,g[14]=f,g[15]=y,this},sr.prototype.copy=function(t){return this.val.set(t.val),this},sr.prototype.fromMat2d=function(t){var e=t.val;return this.setTransform(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1)},sr.prototype.multiply=function(t){var e=this.val,i=t.val,o=e[0],n=e[1],r=e[2],s=e[3],a=e[4],h=e[5],l=e[6],u=e[7],c=e[8],p=e[9],d=e[10],f=e[11],y=e[12],g=e[13],v=e[14],m=e[15],x=i[0],_=i[1],b=i[2],w=i[3];return e[0]=x*o+_*a+b*c+w*y,e[1]=x*n+_*h+b*p+w*g,e[2]=x*r+_*l+b*d+w*v,e[3]=x*s+_*u+b*f+w*m,x=i[4],_=i[5],b=i[6],w=i[7],e[4]=x*o+_*a+b*c+w*y,e[5]=x*n+_*h+b*p+w*g,e[6]=x*r+_*l+b*d+w*v,e[7]=x*s+_*u+b*f+w*m,x=i[8],_=i[9],b=i[10],w=i[11],e[8]=x*o+_*a+b*c+w*y,e[9]=x*n+_*h+b*p+w*g,e[10]=x*r+_*l+b*d+w*v,e[11]=x*s+_*u+b*f+w*m,x=i[12],_=i[13],b=i[14],w=i[15],e[12]=x*o+_*a+b*c+w*y,e[13]=x*n+_*h+b*p+w*g,e[14]=x*r+_*l+b*d+w*v,e[15]=x*s+_*u+b*f+w*m,this},sr.prototype.transpose=function(){var t=this.val,e=t[1],i=t[2],o=t[3],n=t[6],r=t[7],s=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=e,t[6]=t[9],t[7]=t[13],t[8]=i,t[9]=n,t[11]=t[14],t[12]=o,t[13]=r,t[14]=s,this},sr.prototype.invert=function(){var t=this.val,e=t[0],i=t[1],o=t[2],n=t[3],r=t[4],s=t[5],a=t[6],h=t[7],l=t[8],u=t[9],c=t[10],p=t[11],d=t[12],f=t[13],y=t[14],g=t[15],v=e*s-i*r,m=e*a-o*r,x=e*h-n*r,_=i*a-o*s,b=i*h-n*s,w=o*h-n*a,T=l*f-u*d,A=l*y-c*d,E=l*g-p*d,S=u*y-c*f,C=u*g-p*f,M=c*g-p*y,P=v*M-m*C+x*S+_*E-b*A+w*T;return P?(P=1/P,t[0]=(s*M-a*C+h*S)*P,t[1]=(o*C-i*M-n*S)*P,t[2]=(f*w-y*b+g*_)*P,t[3]=(c*b-u*w-p*_)*P,t[4]=(a*E-r*M-h*A)*P,t[5]=(e*M-o*E+n*A)*P,t[6]=(y*x-d*w-g*m)*P,t[7]=(l*w-c*x+p*m)*P,t[8]=(r*C-s*E+h*T)*P,t[9]=(i*E-e*C-n*T)*P,t[10]=(d*b-f*x+g*v)*P,t[11]=(u*x-l*b-p*v)*P,t[12]=(s*A-r*S-a*T)*P,t[13]=(e*S-i*A+o*T)*P,t[14]=(f*m-d*_-y*v)*P,t[15]=(l*_-u*m+c*v)*P,this):null},sr.prototype.apply=function(t){var e=this.val,i=t.x,o=t.y,n=void 0!==t.z?t.z:1,r=e[3]*i+e[7]*o+e[11]*n+e[15]||1;return t.x=(e[0]*i+e[4]*o+e[8]*n+e[12])/r,t.y=(e[1]*i+e[5]*o+e[9]*n+e[13])/r,void 0!==t.z&&(t.z=(e[2]*i+e[6]*o+e[10]*n+e[14])/r),t},sr.prototype.applyInverse=function(t){var e=qn.pull("Matrix3d",this).invert();return e.apply(t),qn.push(e),t},sr.prototype.ortho=function(t,e,i,o,n,r){var s=this.val,a=1/(t-e),h=1/(i-o),l=1/(n-r);return s[0]=-2*a,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=-2*h,s[6]=0,s[7]=0,s[8]=0,s[9]=0,s[10]=2*l,s[11]=0,s[12]=(t+e)*a,s[13]=(o+i)*h,s[14]=(r+n)*l,s[15]=1,this},sr.prototype.scale=function(t,e,i){var o=this.val,n=t,r=void 0===e?n:e,s=void 0===i?0:i;return o[0]=o[0]*n,o[1]=o[1]*n,o[2]=o[2]*n,o[3]=o[3]*n,o[4]=o[4]*r,o[5]=o[5]*r,o[6]=o[6]*r,o[7]=o[7]*r,o[8]=o[8]*s,o[9]=o[9]*s,o[10]=o[10]*s,o[11]=o[11]*s,this},sr.prototype.scaleV=function(t){return this.scale(t.x,t.y,t.z)},sr.prototype.scaleX=function(t){return this.scale(t,1)},sr.prototype.scaleY=function(t){return this.scale(1,t)},sr.prototype.rotate=function(t,e){if(0!==t){var i,o,n,r,s,a,h,l,u,c,p,d,f,y,g,v,m,x,_,b,w,T,A,E,S=this.val,C=e.x,M=e.y,P=e.z,O=Math.sqrt(C*C+M*M+P*P);if(O1?(t=arguments[0],e=arguments[1],i=void 0===arguments[2]?0:arguments[2]):(t=arguments[0].x,e=arguments[0].y,i=void 0===arguments[0].z?0:arguments[0].z),o[12]=o[0]*t+o[4]*e+o[8]*i+o[12],o[13]=o[1]*t+o[5]*e+o[9]*i+o[13],o[14]=o[2]*t+o[6]*e+o[10]*i+o[14],o[15]=o[3]*t+o[7]*e+o[11]*i+o[15],this},sr.prototype.isIdentity=function(){var t=this.val;return 1===t[0]&&0===t[1]&&0===t[2]&&0===t[3]&&0===t[4]&&1===t[5]&&0===t[6]&&0===t[7]&&0===t[8]&&0===t[9]&&1===t[10]&&0===t[11]&&0===t[12]&&0===t[13]&&0===t[14]&&1===t[15]},sr.prototype.equals=function(t){var e=t.val,i=this.val;return i[0]===e[0]&&i[1]===e[1]&&i[2]===e[2]&&i[3]===e[3]&&i[4]===e[4]&&i[5]===e[5]&&i[6]===e[6]&&i[7]===e[7]&&i[8]===e[8]&&i[9]===e[9]&&i[10]===e[10]&&i[11]===e[11]&&i[12]===e[12]&&i[13]===e[13]&&i[14]===e[14]&&i[15]===e[15]},sr.prototype.clone=function(){return qn.pull("Matrix3d",this)},sr.prototype.toArray=function(){return this.val},sr.prototype.toString=function(){var t=this.val;return"me.Matrix3d("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+", "+t[8]+", "+t[9]+", "+t[10]+", "+t[11]+", "+t[12]+", "+t[13]+", "+t[14]+", "+t[15]+")"},Object.defineProperties(sr.prototype,ar);var hr=function(){for(var t,e=[],i=arguments.length;i--;)e[i]=arguments[i];(t=this).onResetEvent.apply(t,e)},lr={tx:{configurable:!0},ty:{configurable:!0}};hr.prototype.onResetEvent=function(){return void 0===this.val&&(this.val=new Float32Array(9)),arguments.length&&arguments[0]instanceof hr?this.copy(arguments[0]):arguments.length&&arguments[0]instanceof sr?this.fromMat3d(arguments[0]):arguments.length>=6?this.setTransform.apply(this,arguments):this.identity(),this},lr.tx.get=function(){return this.val[6]},lr.ty.get=function(){return this.val[7]},hr.prototype.identity=function(){return this.setTransform(1,0,0,0,1,0,0,0,1),this},hr.prototype.setTransform=function(){var t=this.val;return 9===arguments.length?(t[0]=arguments[0],t[1]=arguments[1],t[2]=arguments[2],t[3]=arguments[3],t[4]=arguments[4],t[5]=arguments[5],t[6]=arguments[6],t[7]=arguments[7],t[8]=arguments[8]):6===arguments.length&&(t[0]=arguments[0],t[1]=arguments[2],t[2]=arguments[4],t[3]=arguments[1],t[4]=arguments[3],t[5]=arguments[5],t[6]=0,t[7]=0,t[8]=1),this},hr.prototype.copy=function(t){return this.val.set(t.val),this},hr.prototype.fromMat3d=function(t){var e=t.val,i=this.val;return i[0]=e[0],i[1]=e[1],i[2]=e[2],i[3]=e[4],i[4]=e[5],i[5]=e[6],i[6]=e[8],i[7]=e[9],i[8]=e[10],this},hr.prototype.multiply=function(t){var e=t.val,i=this.val,o=i[0],n=i[1],r=i[3],s=i[4],a=e[0],h=e[1],l=e[3],u=e[4],c=e[6],p=e[7];return i[0]=o*a+r*h,i[1]=n*a+s*h,i[3]=o*l+r*u,i[4]=n*l+s*u,i[6]+=o*c+r*p,i[7]+=n*c+s*p,this},hr.prototype.transpose=function(){var t=this.val,e=t[1],i=t[2],o=t[5];return t[1]=t[3],t[2]=t[6],t[3]=e,t[5]=t[7],t[6]=i,t[7]=o,this},hr.prototype.invert=function(){var t=this.val,e=t[0],i=t[1],o=t[2],n=t[3],r=t[4],s=t[5],a=t[6],h=t[7],l=t[8],u=l*r-s*h,c=s*a-l*n,p=h*n-r*a,d=e*u+i*c+o*p;return t[0]=u/d,t[1]=(o*h-l*i)/d,t[2]=(s*i-o*r)/d,t[3]=c/d,t[4]=(l*e-o*a)/d,t[5]=(o*n-s*e)/d,t[6]=p/d,t[7]=(i*a-h*e)/d,t[8]=(r*e-i*n)/d,this},hr.prototype.apply=function(t){var e=this.val,i=t.x,o=t.y,n=void 0!==t.z?t.z:1;return t.x=i*e[0]+o*e[3]+n*e[6],t.y=i*e[1]+o*e[4]+n*e[7],void 0!==t.z&&(t.z=i*e[2]+o*e[5]+n*e[8]),t},hr.prototype.applyInverse=function(t){var e=this.val,i=t.x,o=t.y,n=1/(e[0]*e[4]+e[3]*-e[1]);return t.x=e[4]*n*i+-e[3]*n*o+(e[7]*e[3]-e[6]*e[4])*n,t.y=e[0]*n*o+-e[1]*n*i+(-e[7]*e[0]+e[6]*e[1])*n,t},hr.prototype.scale=function(t,e){var i=this.val,o=t,n=void 0===e?o:e;return i[0]*=o,i[1]*=o,i[3]*=n,i[4]*=n,this},hr.prototype.scaleV=function(t){return this.scale(t.x,t.y)},hr.prototype.scaleX=function(t){return this.scale(t,1)},hr.prototype.scaleY=function(t){return this.scale(1,t)},hr.prototype.rotate=function(t){if(0!==t){var e=this.val,i=e[0],o=e[1],n=e[2],r=e[3],s=e[4],a=e[5],h=Math.sin(t),l=Math.cos(t);e[0]=l*i+h*r,e[1]=l*o+h*s,e[2]=l*n+h*a,e[3]=l*r-h*i,e[4]=l*s-h*o,e[5]=l*a-h*n}return this},hr.prototype.translate=function(){var t,e,i=this.val;return 2===arguments.length?(t=arguments[0],e=arguments[1]):(t=arguments[0].x,e=arguments[0].y),i[6]+=i[0]*t+i[3]*e,i[7]+=i[1]*t+i[4]*e,this},hr.prototype.isIdentity=function(){var t=this.val;return 1===t[0]&&0===t[1]&&0===t[2]&&0===t[3]&&1===t[4]&&0===t[5]&&0===t[6]&&0===t[7]&&1===t[8]},hr.prototype.equals=function(t){var e=t.val,i=this.val;return i[0]===e[0]&&i[1]===e[1]&&i[2]===e[2]&&i[3]===e[3]&&i[4]===e[4]&&i[5]===e[5]&&i[6]===e[6]&&i[7]===e[7]&&i[8]===e[8]},hr.prototype.clone=function(){return qn.pull("Matrix2d",this)},hr.prototype.toArray=function(){return this.val},hr.prototype.toString=function(){var t=this.val;return"me.Matrix2d("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+", "+t[8]+")"},Object.defineProperties(hr.prototype,lr);var ur={exports:{}};!function(t){var e=Object.prototype.hasOwnProperty,i="~";function o(){}function n(t,e,i){this.fn=t,this.context=e,this.once=i||!1}function r(t,e,o,r,s){if("function"!=typeof o)throw new TypeError("The listener must be a function");var a=new n(o,r||t,s),h=i?i+e:e;return t._events[h]?t._events[h].fn?t._events[h]=[t._events[h],a]:t._events[h].push(a):(t._events[h]=a,t._eventsCount++),t}function s(t,e){0==--t._eventsCount?t._events=new o:delete t._events[e]}function a(){this._events=new o,this._eventsCount=0}Object.create&&(o.prototype=Object.create(null),(new o).__proto__||(i=!1)),a.prototype.eventNames=function(){var t,o,n=[];if(0===this._eventsCount)return n;for(o in t=this._events)e.call(t,o)&&n.push(i?o.slice(1):o);return Object.getOwnPropertySymbols?n.concat(Object.getOwnPropertySymbols(t)):n},a.prototype.listeners=function(t){var e=i?i+t:t,o=this._events[e];if(!o)return[];if(o.fn)return[o.fn];for(var n=0,r=o.length,s=new Array(r);n0;)e[i]=arguments[i+1];return cr.emit.apply(cr,[t].concat(e))}function qr(t,e,i){return cr.on(t,e,i)}function Kr(t,e,i){return cr.once(t,e,i)}function Zr(t,e){return cr.off(t,e)}var Qr=Object.freeze({__proto__:null,DOM_READY:pr,BOOT:dr,STATE_PAUSE:fr,STATE_RESUME:yr,STATE_STOP:gr,STATE_RESTART:vr,STATE_CHANGE:mr,VIDEO_INIT:xr,GAME_INIT:_r,GAME_RESET:br,GAME_BEFORE_UPDATE:wr,GAME_AFTER_UPDATE:Tr,GAME_UPDATE:Ar,GAME_BEFORE_DRAW:Er,GAME_AFTER_DRAW:Sr,LEVEL_LOADED:Cr,LOADER_COMPLETE:Mr,LOADER_PROGRESS:Pr,KEYDOWN:Or,KEYUP:Ir,GAMEPAD_CONNECTED:kr,GAMEPAD_DISCONNECTED:Rr,GAMEPAD_UPDATE:Br,POINTERMOVE:Dr,POINTERLOCKCHANGE:Lr,DRAGSTART:zr,DRAGEND:Fr,WINDOW_ONRESIZE:Vr,CANVAS_ONRESIZE:jr,VIEWPORT_ONRESIZE:Ur,WINDOW_ONORIENTATION_CHANGE:Nr,WINDOW_ONSCROLL:Gr,VIEWPORT_ONCHANGE:Xr,ONCONTEXT_LOST:Hr,ONCONTEXT_RESTORED:Yr,emit:Wr,on:qr,once:Kr,off:Zr}),Jr={},$r=!1;try{$r="undefined"!=typeof globalThis&&void 0!==globalThis.localStorage}catch(t){$r=!1}function ts(t){return"add"===t||"remove"===t}qr(dr,(function(){if(!0===$r){var t=globalThis.localStorage.getItem("me.save");if("string"==typeof t&&t.length>0)(JSON.parse(t)||[]).forEach((function(t){Jr[t]=JSON.parse(globalThis.localStorage.getItem("me.save."+t))}))}}));var es={add:function(t){var e=es;Object.keys(t).forEach((function(i){var o;ts(i)||(o=i,Object.defineProperty(e,o,{configurable:!0,enumerable:!0,get:function(){return Jr[o]},set:function(t){Jr[o]=t,!0===$r&&globalThis.localStorage.setItem("me.save."+o,JSON.stringify(t))}}),i in Jr||(e[i]=t[i]))})),!0===$r&&globalThis.localStorage.setItem("me.save",JSON.stringify(Object.keys(Jr)))},remove:function(t){ts(t)||void 0!==Jr[t]&&(delete Jr[t],!0===$r&&(globalThis.localStorage.removeItem("me.save."+t),globalThis.localStorage.setItem("me.save",JSON.stringify(Object.keys(Jr)))))}},is=!1,os=!1;function ns(){if(!os){if(void 0!==globalThis.document&&!globalThis.document.body)return setTimeout(ns,13);void 0!==globalThis.document&&"function"==typeof globalThis.document.removeEventListener&&globalThis.document.removeEventListener("DOMContentLoaded",ns,!1),"function"==typeof globalThis.removeEventListener&&globalThis.removeEventListener("load",ns,!1),Wr(pr),os=!0}}var rs=void 0!==globalThis.navigator?globalThis.navigator.userAgent:"",ss=/iPhone|iPad|iPod/i.test(rs),as=/Android/i.test(rs),hs=/Android 2/i.test(rs),ls=/Linux/i.test(rs),us=/CrOS/.test(rs),cs=/Windows Phone/i.test(rs),ps=/BlackBerry/i.test(rs),ds=/Kindle|Silk.*Mobile Safari/i.test(rs),fs=void 0!==globalThis.ejecta,ys=/MicroMessenger/i.test(rs),gs=void 0!==globalThis.process&&void 0!==globalThis.process.release&&"node"===globalThis.process.release.name,vs=/Mobi/i.test(rs)||ss||as||cs||ps||ds||!1,ms=!1,xs=!1,_s=!0,bs={left:0,top:0,x:0,y:0,width:0,height:0,right:0,bottom:0};function ws(t){return t.preventDefault(),"function"==typeof globalThis.scroll&&globalThis.scroll(0,0),!1}function Ts(t){Hs=t.accelerationIncludingGravity.x,Ys=t.accelerationIncludingGravity.y,Ws=t.accelerationIncludingGravity.z}function As(t){qs=t.gamma,Ks=t.beta,Zs=t.alpha}var Es=Object.freeze({__proto__:null,ua:rs,iOS:ss,android:as,android2:hs,linux:ls,chromeOS:us,wp:cs,BlackBerry:ps,Kindle:ds,ejecta:fs,isWeixin:ys,nodeJS:gs,isMobile:vs}),Ss=!!("ontouchstart"in globalThis),Cs=!!globalThis.PointerEvent,Ms=Ss||Cs,Ps=Ms?Cs?globalThis.navigator.maxTouchPoints||1:10:1,Os=void 0!==globalThis.document&&"onwheel"in globalThis.document.createElement("div"),Is=void 0!==globalThis.document&&void 0!==globalThis.document.pointerLockElement,ks=!!globalThis.DeviceOrientationEvent,Rs="undefined"!=typeof screen&&void 0!==screen.orientation,Bs=!!globalThis.DeviceMotionEvent,Ds=void 0!==globalThis.document&&(_n("fullscreenEnabled",globalThis.document)||globalThis.document.mozFullScreenEnabled);!0===Ds&&(globalThis.document.exitFullscreen=_n("cancelFullScreen",globalThis.document)||_n("exitFullscreen",globalThis.document));var Ls=!(!globalThis.AudioContext&&!globalThis.webkitAudioContext),zs=void 0!==globalThis.Audio,Fs=Ls||zs,Vs=function(){try{return!!globalThis.localStorage}catch(t){return!1}}(),js=function(){try{return void 0!==globalThis.OffscreenCanvas&&null!==new globalThis.OffscreenCanvas(0,0).getContext("2d")}catch(t){return!1}}(),Us="function"==typeof globalThis.atob,Ns=void 0!==globalThis.navigator&&(globalThis.navigator.language||globalThis.navigator.browserLanguage||globalThis.navigator.userLanguage)||"en",Gs=globalThis.devicePixelRatio||1,Xs=Es.isMobile,Hs=0,Ys=0,Ws=0,qs=0,Ks=0,Zs=0;function Qs(t){!function(t){os?t.call(globalThis,[]):(Kr(pr,t,globalThis),is||("undefined"!=typeof process&&"node"===process.release.name||void 0!==globalThis.document&&"complete"===globalThis.document.readyState?globalThis.setTimeout(ns,0):(void 0!==globalThis.document&&"function"==typeof globalThis.document.addEventListener&&globalThis.document.addEventListener("DOMContentLoaded",ns,!1),globalThis.addEventListener("load",ns,!1)),is=!0))}(t)}function Js(t){var e=Cs?"pointermove":Ss?"touchmove":"mousemove";!1!==t?!1===_s&&(globalThis.document.removeEventListener(e,ws),_s=!0):!0===_s&&(globalThis.document.addEventListener(e,ws,{passive:!1}),_s=!1)}function $s(){return!!Ds&&!(!_n("fullscreenElement",document)&&!document.mozFullScreenElement)}function ta(){var t="portrait",e="landscape",i=globalThis.screen;if(!0===Rs){var o=_n("orientation",i);if(void 0!==o&&"string"==typeof o.type)return o.type;if("string"==typeof o)return o}return"number"==typeof globalThis.orientation?90===Math.abs(globalThis.orientation)?e:t:globalThis.outerWidth>globalThis.outerHeight?e:t}function ea(t){var e=ia(t);return null!==e.parentNode&&(e=e.parentNode),e}function ia(t){var e=null;return"undefined"!==t&&("string"==typeof t?e=document.getElementById(t):"object"==typeof t&&t.nodeType===Node.ELEMENT_NODE&&(e=t)),e||(e=document.body),e}function oa(t){return"object"==typeof t&&t!==document.body&&void 0!==t.getBoundingClientRect?t.getBoundingClientRect():(bs.width=bs.right=globalThis.innerWidth,bs.height=bs.bottom=globalThis.innerHeight,bs)}function na(t){return oa(ea(t))}function ra(t){var e=!1;try{var i=document.createElement("canvas"),o={stencil:!0,failIfMajorPerformanceCaveat:t.failIfMajorPerformanceCaveat};e=!(!globalThis.WebGLRenderingContext||!i.getContext("webgl",o)&&!i.getContext("experimental-webgl",o))}catch(t){e=!1}return e}function sa(t){return t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.HIGH_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.HIGH_FLOAT).precision>0?"highp":t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.MEDIUM_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}function aa(){"function"==typeof globalThis.focus&&globalThis.focus()}var ha=Object.freeze({__proto__:null,onDeviceRotate:As,platform:Es,touchEvent:Ss,pointerEvent:Cs,touch:Ms,maxTouchPoints:Ps,wheel:Os,hasPointerLockSupport:Is,hasDeviceOrientation:ks,screenOrientation:Rs,hasAccelerometer:Bs,hasFullscreenSupport:Ds,hasWebAudio:Ls,hasHTML5Audio:zs,sound:Fs,localStorage:Vs,offscreenCanvas:js,nativeBase64:Us,language:Ns,devicePixelRatio:Gs,isMobile:Xs,get accelerationX(){return Hs},get accelerationY(){return Ys},get accelerationZ(){return Ws},get gamma(){return qs},get beta(){return Ks},get alpha(){return Zs},pauseOnBlur:!0,resumeOnFocus:!0,autoFocus:!0,stopOnBlur:!1,onReady:Qs,enableSwipe:Js,isFullscreen:$s,requestFullscreen:function(t){Ds&&!$s()&&((t=t||Uc()).requestFullscreen=_n("requestFullscreen",t)||t.mozRequestFullScreen,t.requestFullscreen())},exitFullscreen:function(){Ds&&$s()&&document.exitFullscreen()},getScreenOrientation:ta,lockOrientation:function(t){var e=globalThis.screen;if(void 0!==e){var i=_n("lockOrientation",e);if(void 0!==i)return i(t)}return!1},unlockOrientation:function(){var t=globalThis.screen;if(void 0!==t){var e=_n("unlockOrientation",t);if(void 0!==e)return e()}return!1},isPortrait:function(){return ta().includes("portrait")},isLandscape:function(){return ta().includes("landscape")},getStorage:function(t){if(void 0===t&&(t="local"),"local"===t)return es;throw new Error("storage type "+t+" not supported")},getParentElement:ea,getElement:ia,getElementBounds:oa,getParentBounds:na,isWebGLSupported:ra,getMaxShaderPrecision:sa,focus:aa,watchAccelerometer:function(){return Bs&&!ms&&(DeviceOrientationEvent&&"function"==typeof DeviceOrientationEvent.requestPermission?DeviceOrientationEvent.requestPermission().then((function(t){"granted"===t&&(globalThis.addEventListener("devicemotion",Ts,!1),ms=!0)})).catch(console.error):(globalThis.addEventListener("devicemotion",Ts,!1),ms=!0)),ms},unwatchAccelerometer:function(){ms&&(globalThis.removeEventListener("devicemotion",Ts,!1),ms=!1)},watchDeviceOrientation:function(){return ks&&!xs&&("function"==typeof DeviceOrientationEvent.requestPermission?DeviceOrientationEvent.requestPermission().then((function(t){"granted"===t&&(globalThis.addEventListener("deviceorientation",As,!1),xs=!0)})).catch(console.error):(globalThis.addEventListener("deviceorientation",As,!1),xs=!0)),xs},unwatchDeviceOrientation:function(){xs&&(globalThis.removeEventListener("deviceorientation",As,!1),xs=!1)},vibrate:function(t){void 0!==globalThis.navigator&&"function"==typeof globalThis.navigator.vibrate&&globalThis.navigator.vibrate(t)}}),la={bool:"1i",int:"1i",float:"1f",vec2:"2fv",vec3:"3fv",vec4:"4fv",bvec2:"2iv",bvec3:"3iv",bvec4:"4iv",ivec2:"2iv",ivec3:"3iv",ivec4:"4iv",mat2:"Matrix2fv",mat3:"Matrix3fv",mat4:"Matrix4fv",sampler2D:"1i"};function ua(t,e,i){var o=t.createShader(e);if(t.shaderSource(o,i),t.compileShader(o),!t.getShaderParameter(o,t.COMPILE_STATUS))throw new Error(t.getShaderInfoLog(o));return o}function ca(t,e){return"precision"!==t.substring(0,9)?"precision "+e+" float;"+t:t}function pa(t){return t=(t=(t=(t=t.replace(/\/\*[\s\S]*?\*\/|([^\\:]|^)\/\/.*$/gm,"$1")).replace(/(\\n\s+)|(\s+\\n)/g,"")).replace(/(\\r|\\n)+/g,"")).replace(/\s*([;,[\](){}\\\/\-+*|^&!=<>?~%])\s*/g,"$1")}var da=function(t,e,i,o){this.gl=t,this.vertex=ca(pa(e),o||sa(this.gl)),this.fragment=ca(pa(i),o||sa(this.gl)),this.attributes=function(t,e){for(var i,o={},n=/attribute\s+\w+\s+(\w+)/g,r=0;i=n.exec(e.vertex);)o[i[1]]=r++;return o}(this.gl,this),this.program=function(t,e,i,o){var n=ua(t,t.VERTEX_SHADER,e),r=ua(t,t.FRAGMENT_SHADER,i),s=t.createProgram();for(var a in t.attachShader(s,n),t.attachShader(s,r),o)t.bindAttribLocation(s,o[a],a);if(t.linkProgram(s),!t.getProgramParameter(s,t.LINK_STATUS)){var h="Error initializing Shader "+this+"\ngl.VALIDATE_STATUS: "+t.getProgramParameter(s,t.VALIDATE_STATUS)+"\ngl.getError()"+t.getError()+"\ngl.getProgramInfoLog()"+t.getProgramInfoLog(s);throw t.deleteProgram(s),s=null,new Error(h)}return t.useProgram(s),t.deleteShader(n),t.deleteShader(r),s}(this.gl,this.vertex,this.fragment,this.attributes),this.uniforms=function(t,e){var i,o={},n=/uniform\s+(\w+)\s+(\w+)/g,r={},s={},a={};return[e.vertex,e.fragment].forEach((function(t){for(;i=n.exec(t);)r[i[2]]=i[1]})),Object.keys(r).forEach((function(i){var o=r[i];a[i]=t.getUniformLocation(e.program,i),s[i]={get:function(t){return function(){return a[t]}}(i),set:function(e,i,o){return 0===i.indexOf("mat")?function(i){t[o](a[e],!1,i)}:function(i){var n=o;i.length&&"v"!==o.slice(-1)&&(n+="v"),t[n](a[e],i)}}(i,o,"uniform"+la[o])}})),Object.defineProperties(o,s),o}(this.gl,this),qr(Hr,this.destroy,this)};da.prototype.bind=function(){this.gl.useProgram(this.program)},da.prototype.getAttribLocation=function(t){var e=this.attributes[t];return void 0!==e?e:-1},da.prototype.setUniform=function(t,e){var i=this.uniforms;if(void 0===i[t])throw new Error("undefined ("+t+") uniform for shader "+this);"object"==typeof e&&"function"==typeof e.toArray?i[t]=e.toArray():i[t]=e},da.prototype.setVertexAttributes=function(t,e,i){for(var o=0;o=this.maxVertex},fa.prototype.resize=function(){this.maxVertex<<=1;var t=this.bufferF32;return this.buffer=new ArrayBuffer(this.maxVertex*this.vertexSize*this.quadSize),this.bufferF32=new Float32Array(this.buffer),this.bufferU32=new Uint32Array(this.buffer),this.bufferF32.set(t),this},fa.prototype.push=function(t,e,i,o,n){var r=this.vertexCount*this.vertexSize;return this.vertexCount>=this.maxVertex&&this.resize(),this.bufferF32[r+0]=t,this.bufferF32[r+1]=e,void 0!==i&&(this.bufferF32[r+2]=i,this.bufferF32[r+3]=o),void 0!==n&&(this.bufferU32[r+4]=n),this.vertexCount++,this},fa.prototype.toFloat32=function(t,e){return void 0!==e?this.bufferF32.subarray(t,e):this.bufferF32},fa.prototype.toUint32=function(t,e){return void 0!==e?this.bufferU32.subarray(t,e):this.bufferU32},fa.prototype.length=function(){return this.vertexCount},fa.prototype.isEmpty=function(){return 0===this.vertexCount};var ya=[new Kn,new Kn,new Kn,new Kn],ga=function(t){this.init(t)};ga.prototype.init=function(t){var e=this,i=t.gl;this.currentTextureUnit=-1,this.boundTextures=[],this.renderer=t,this.gl=t.gl,this.color=t.currentColor,this.viewMatrix=t.currentTransform,this.activeShader=null,this.mode=i.TRIANGLES,this.attributes=[],this.vertexByteSize=0,this.vertexSize=0,this.primitiveShader=new da(this.gl,"// Current vertex point\nattribute vec2 aVertex;\n\n// Projection matrix\nuniform mat4 uProjectionMatrix;\n\n// Vertex color\nuniform vec4 uColor;\n\n// Fragment color\nvarying vec4 vColor;\n\nvoid main(void) {\n // Transform the vertex position by the projection matrix\n gl_Position = uProjectionMatrix * vec4(aVertex, 0.0, 1.0);\n // Pass the remaining attributes to the fragment shader\n vColor = vec4(uColor.rgb * uColor.a, uColor.a);\n}\n","varying vec4 vColor;\n\nvoid main(void) {\n gl_FragColor = vColor;\n}\n"),this.quadShader=new da(this.gl,"attribute vec2 aVertex;\nattribute vec2 aRegion;\nattribute vec4 aColor;\n\nuniform mat4 uProjectionMatrix;\n\nvarying vec2 vRegion;\nvarying vec4 vColor;\n\nvoid main(void) {\n // Transform the vertex position by the projection matrix\n gl_Position = uProjectionMatrix * vec4(aVertex, 0.0, 1.0);\n // Pass the remaining attributes to the fragment shader\n vColor = vec4(aColor.bgr * aColor.a, aColor.a);\n vRegion = aRegion;\n}\n","uniform sampler2D uSampler;\nvarying vec4 vColor;\nvarying vec2 vRegion;\n\nvoid main(void) {\n gl_FragColor = texture2D(uSampler, vRegion) * vColor;\n}\n"),this.addAttribute("aVertex",2,i.FLOAT,!1,0*Float32Array.BYTES_PER_ELEMENT),this.addAttribute("aRegion",2,i.FLOAT,!1,2*Float32Array.BYTES_PER_ELEMENT),this.addAttribute("aColor",4,i.UNSIGNED_BYTE,!0,4*Float32Array.BYTES_PER_ELEMENT),this.vertexBuffer=new fa(this.vertexSize,6),i.bindBuffer(i.ARRAY_BUFFER,i.createBuffer()),i.bufferData(i.ARRAY_BUFFER,this.vertexBuffer.buffer,i.STREAM_DRAW),qr(jr,(function(t,i){e.flush(),e.setViewport(0,0,t,i)}))},ga.prototype.reset=function(){this.gl=this.renderer.gl,this.flush(),this.setViewport(0,0,this.renderer.getCanvas().width,this.renderer.getCanvas().height),this.clearColor(0,0,0,0);for(var t=0;t1)?l.REPEAT:l.CLAMP_TO_EDGE,d=0===o.search(/^repeat(-y)?$/)&&(u||this.renderer.WebGLVersion>1)?l.REPEAT:l.CLAMP_TO_EDGE;return this.bindTexture2D(c,t),l.texParameteri(l.TEXTURE_2D,l.TEXTURE_WRAP_S,p),l.texParameteri(l.TEXTURE_2D,l.TEXTURE_WRAP_T,d),l.texParameteri(l.TEXTURE_2D,l.TEXTURE_MAG_FILTER,i),l.texParameteri(l.TEXTURE_2D,l.TEXTURE_MIN_FILTER,i),l.pixelStorei(l.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a),n||r||s?l.texImage2D(l.TEXTURE_2D,0,l.RGBA,n,r,s,l.RGBA,l.UNSIGNED_BYTE,e):l.texImage2D(l.TEXTURE_2D,0,l.RGBA,l.RGBA,l.UNSIGNED_BYTE,e),u&&!1!==h&&l.generateMipmap(l.TEXTURE_2D),c},ga.prototype.deleteTexture2D=function(t){this.gl.deleteTexture(t),this.unbindTexture2D(t)},ga.prototype.getTexture2D=function(t){return this.boundTextures[t]},ga.prototype.bindTexture2D=function(t,e){var i=this.gl;t!==this.boundTextures[e]?(this.flush(),this.currentTextureUnit!==e&&(this.currentTextureUnit=e,i.activeTexture(i.TEXTURE0+e)),i.bindTexture(i.TEXTURE_2D,t),this.boundTextures[e]=t):this.currentTextureUnit!==e&&(this.flush(),this.currentTextureUnit=e,i.activeTexture(i.TEXTURE0+e))},ga.prototype.unbindTexture2D=function(t,e){return void 0===e&&(e=this.boundTextures.indexOf(t)),-1!==e&&(delete this.boundTextures[e],e===this.currentTextureUnit&&(this.currentTextureUnit=-1)),e},ga.prototype.uploadTexture=function(t,e,i,o,n){void 0===n&&(n=!1);var r=this.renderer.cache.getUnit(t),s=this.boundTextures[r];return void 0===s||n?this.createTexture2D(r,t.getTexture(),this.renderer.settings.antiAlias?this.gl.LINEAR:this.gl.NEAREST,t.repeat,e,i,o,t.premultipliedAlpha):this.bindTexture2D(s,r),this.currentTextureUnit},ga.prototype.setProjection=function(t){this.activeShader.setUniform("uProjectionMatrix",t)},ga.prototype.useShader=function(t){this.activeShader!==t&&(this.flush(),this.activeShader=t,this.activeShader.bind(),this.activeShader.setUniform("uProjectionMatrix",this.renderer.projectionMatrix),this.activeShader.setVertexAttributes(this.gl,this.attributes,this.vertexByteSize))},ga.prototype.addQuad=function(t,e,i,o,n,r,s,a,h,l){if(!(this.color.alpha<1/255)){this.useShader(this.quadShader),this.vertexBuffer.isFull(6)&&this.flush();var u=this.uploadTexture(t);this.quadShader.setUniform("uSampler",u);var c=this.viewMatrix,p=ya[0].set(e,i),d=ya[1].set(e+o,i),f=ya[2].set(e,i+n),y=ya[3].set(e+o,i+n);c.isIdentity()||(c.apply(p),c.apply(d),c.apply(f),c.apply(y)),this.vertexBuffer.push(p.x,p.y,r,s,l),this.vertexBuffer.push(d.x,d.y,a,s,l),this.vertexBuffer.push(f.x,f.y,r,h,l),this.vertexBuffer.push(f.x,f.y,r,h,l),this.vertexBuffer.push(d.x,d.y,a,s,l),this.vertexBuffer.push(y.x,y.y,a,h,l)}},ga.prototype.flush=function(t){void 0===t&&(t=this.mode);var e=this.vertexBuffer,i=e.vertexCount;if(i>0){var o=this.gl,n=e.vertexSize;this.renderer.WebGLVersion>1?o.bufferData(o.ARRAY_BUFFER,e.toFloat32(),o.STREAM_DRAW,0,i*n):o.bufferData(o.ARRAY_BUFFER,e.toFloat32(0,i*n),o.STREAM_DRAW),o.drawArrays(t,0,i),e.clear()}},ga.prototype.drawVertices=function(t,e,i){void 0===i&&(i=e.length),this.useShader(this.primitiveShader),this.primitiveShader.setUniform("uColor",this.color);for(var o=this.viewMatrix,n=this.vertexBuffer,r=o.isIdentity(),s=0;s80*i){o=r=t[0],n=s=t[1];for(var f=i;fr&&(r=a),h>s&&(s=h);l=0!==(l=Math.max(r-o,s-n))?32767/l:0}return ba(p,d,i,o,n,l,0),d}function xa(t,e,i,o,n){var r,s;if(n===Ga(t,e,i,o)>0)for(r=e;r=e;r-=o)s=ja(r,t[r],t[r+1],s);return s&&Ba(s,s.next)&&(Ua(s),s=s.next),s}function _a(t,e){if(!t)return t;e||(e=t);var i,o=t;do{if(i=!1,o.steiner||!Ba(o,o.next)&&0!==Ra(o.prev,o,o.next))o=o.next;else{if(Ua(o),(o=e=o.prev)===o.next)break;i=!0}}while(i||o!==e);return e}function ba(t,e,i,o,n,r,s){if(t){!s&&r&&function(t,e,i,o){var n=t;do{0===n.z&&(n.z=Pa(n.x,n.y,e,i,o)),n.prevZ=n.prev,n.nextZ=n.next,n=n.next}while(n!==t);n.prevZ.nextZ=null,n.prevZ=null,function(t){var e,i,o,n,r,s,a,h,l=1;do{for(i=t,t=null,r=null,s=0;i;){for(s++,o=i,a=0,e=0;e0||h>0&&o;)0!==a&&(0===h||!o||i.z<=o.z)?(n=i,i=i.nextZ,a--):(n=o,o=o.nextZ,h--),r?r.nextZ=n:t=n,n.prevZ=r,r=n;i=o}r.nextZ=null,l*=2}while(s>1)}(n)}(t,o,n,r);for(var a,h,l=t;t.prev!==t.next;)if(a=t.prev,h=t.next,r?Ta(t,o,n,r):wa(t))e.push(a.i/i|0),e.push(t.i/i|0),e.push(h.i/i|0),Ua(t),t=h.next,l=h.next;else if((t=h)===l){s?1===s?ba(t=Aa(_a(t),e,i),e,i,o,n,r,2):2===s&&Ea(t,e,i,o,n,r):ba(_a(t),e,i,o,n,r,1);break}}}function wa(t){var e=t.prev,i=t,o=t.next;if(Ra(e,i,o)>=0)return!1;for(var n=e.x,r=i.x,s=o.x,a=e.y,h=i.y,l=o.y,u=nr?n>s?n:s:r>s?r:s,d=a>h?a>l?a:l:h>l?h:l,f=o.next;f!==e;){if(f.x>=u&&f.x<=p&&f.y>=c&&f.y<=d&&Ia(n,a,r,h,s,l,f.x,f.y)&&Ra(f.prev,f,f.next)>=0)return!1;f=f.next}return!0}function Ta(t,e,i,o){var n=t.prev,r=t,s=t.next;if(Ra(n,r,s)>=0)return!1;for(var a=n.x,h=r.x,l=s.x,u=n.y,c=r.y,p=s.y,d=ah?a>l?a:l:h>l?h:l,g=u>c?u>p?u:p:c>p?c:p,v=Pa(d,f,e,i,o),m=Pa(y,g,e,i,o),x=t.prevZ,_=t.nextZ;x&&x.z>=v&&_&&_.z<=m;){if(x.x>=d&&x.x<=y&&x.y>=f&&x.y<=g&&x!==n&&x!==s&&Ia(a,u,h,c,l,p,x.x,x.y)&&Ra(x.prev,x,x.next)>=0)return!1;if(x=x.prevZ,_.x>=d&&_.x<=y&&_.y>=f&&_.y<=g&&_!==n&&_!==s&&Ia(a,u,h,c,l,p,_.x,_.y)&&Ra(_.prev,_,_.next)>=0)return!1;_=_.nextZ}for(;x&&x.z>=v;){if(x.x>=d&&x.x<=y&&x.y>=f&&x.y<=g&&x!==n&&x!==s&&Ia(a,u,h,c,l,p,x.x,x.y)&&Ra(x.prev,x,x.next)>=0)return!1;x=x.prevZ}for(;_&&_.z<=m;){if(_.x>=d&&_.x<=y&&_.y>=f&&_.y<=g&&_!==n&&_!==s&&Ia(a,u,h,c,l,p,_.x,_.y)&&Ra(_.prev,_,_.next)>=0)return!1;_=_.nextZ}return!0}function Aa(t,e,i){var o=t;do{var n=o.prev,r=o.next.next;!Ba(n,r)&&Da(n,o,o.next,r)&&Fa(n,r)&&Fa(r,n)&&(e.push(n.i/i|0),e.push(o.i/i|0),e.push(r.i/i|0),Ua(o),Ua(o.next),o=t=r),o=o.next}while(o!==t);return _a(o)}function Ea(t,e,i,o,n,r){var s=t;do{for(var a=s.next.next;a!==s.prev;){if(s.i!==a.i&&ka(s,a)){var h=Va(s,a);return s=_a(s,s.next),h=_a(h,h.next),ba(s,e,i,o,n,r,0),void ba(h,e,i,o,n,r,0)}a=a.next}s=s.next}while(s!==t)}function Sa(t,e){return t.x-e.x}function Ca(t,e){var i=function(t,e){var i,o=e,n=t.x,r=t.y,s=-1/0;do{if(r<=o.y&&r>=o.next.y&&o.next.y!==o.y){var a=o.x+(r-o.y)*(o.next.x-o.x)/(o.next.y-o.y);if(a<=n&&a>s&&(s=a,i=o.x=o.x&&o.x>=u&&n!==o.x&&Ia(ri.x||o.x===i.x&&Ma(i,o)))&&(i=o,p=h)),o=o.next}while(o!==l);return i}(t,e);if(!i)return e;var o=Va(i,t);return _a(o,o.next),_a(i,i.next)}function Ma(t,e){return Ra(t.prev,t,e.prev)<0&&Ra(e.next,t,t.next)<0}function Pa(t,e,i,o,n){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-i)*n|0)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-o)*n|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function Oa(t){var e=t,i=t;do{(e.x=(t-s)*(r-a)&&(t-s)*(o-a)>=(i-s)*(e-a)&&(i-s)*(r-a)>=(n-s)*(o-a)}function ka(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var i=t;do{if(i.i!==t.i&&i.next.i!==t.i&&i.i!==e.i&&i.next.i!==e.i&&Da(i,i.next,t,e))return!0;i=i.next}while(i!==t);return!1}(t,e)&&(Fa(t,e)&&Fa(e,t)&&function(t,e){var i=t,o=!1,n=(t.x+e.x)/2,r=(t.y+e.y)/2;do{i.y>r!=i.next.y>r&&i.next.y!==i.y&&n<(i.next.x-i.x)*(r-i.y)/(i.next.y-i.y)+i.x&&(o=!o),i=i.next}while(i!==t);return o}(t,e)&&(Ra(t.prev,t,e.prev)||Ra(t,e.prev,e))||Ba(t,e)&&Ra(t.prev,t,t.next)>0&&Ra(e.prev,e,e.next)>0)}function Ra(t,e,i){return(e.y-t.y)*(i.x-e.x)-(e.x-t.x)*(i.y-e.y)}function Ba(t,e){return t.x===e.x&&t.y===e.y}function Da(t,e,i,o){var n=za(Ra(t,e,i)),r=za(Ra(t,e,o)),s=za(Ra(i,o,t)),a=za(Ra(i,o,e));return n!==r&&s!==a||(!(0!==n||!La(t,i,e))||(!(0!==r||!La(t,o,e))||(!(0!==s||!La(i,t,o))||!(0!==a||!La(i,e,o)))))}function La(t,e,i){return e.x<=Math.max(t.x,i.x)&&e.x>=Math.min(t.x,i.x)&&e.y<=Math.max(t.y,i.y)&&e.y>=Math.min(t.y,i.y)}function za(t){return t>0?1:t<0?-1:0}function Fa(t,e){return Ra(t.prev,t,t.next)<0?Ra(t,e,t.next)>=0&&Ra(t,t.prev,e)>=0:Ra(t,e,t.prev)<0||Ra(t,t.next,e)<0}function Va(t,e){var i=new Na(t.i,t.x,t.y),o=new Na(e.i,e.x,e.y),n=t.next,r=e.prev;return t.next=e,e.prev=t,i.next=n,n.prev=i,o.next=i,i.prev=o,r.next=o,o.prev=r,o}function ja(t,e,i,o){var n=new Na(t,e,i);return o?(n.next=o.next,n.prev=o,o.next.prev=n,o.next=n):(n.prev=n,n.next=n),n}function Ua(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function Na(t,e,i){this.i=t,this.x=e,this.y=i,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function Ga(t,e,i,o){for(var n=0,r=e,s=i-o;r0&&(o+=t[n-1].length,i.holes.push(o))}return i};var Xa=function(t,e,i){this.pos=qn.pull("Vector2d"),this._bounds,this.points=[],this.edges=[],this.indices=[],this.normals=[],this.shapeType="Polygon",this.setShape(t,e,i)};Xa.prototype.onResetEvent=function(t,e,i){this.setShape(t,e,i)},Xa.prototype.setShape=function(t,e,i){return this.pos.set(t,e),this.setVertices(i),this},Xa.prototype.setVertices=function(t){var e=this;if(!Array.isArray(t))return this;if(t[0]instanceof Kn)this.points=t;else if(this.points.length=0,"object"==typeof t[0])t.forEach((function(t){e.points.push(qn.pull("Vector2d",t.x,t.y))}));else for(var i=0;i0&&(n|=2),3===n)return!1;return 0!==n||null},Xa.prototype.translate=function(){var t,e;return 2===arguments.length?(t=arguments[0],e=arguments[1]):(t=arguments[0].x,e=arguments[0].y),this.pos.x+=t,this.pos.y+=e,this.getBounds().translate(t,e),this},Xa.prototype.shift=function(){var t,e;2===arguments.length?(t=arguments[0],e=arguments[1]):(t=arguments[0].x,e=arguments[0].y),this.pos.x=t,this.pos.y=e,this.updateBounds()},Xa.prototype.contains=function(){var t,e;2===arguments.length?(t=arguments[0],e=arguments[1]):(t=arguments[0].x,e=arguments[0].y);for(var i=!1,o=this.pos.x,n=this.pos.y,r=this.points,s=r.length,a=0,h=s-1;ae!=c>e&&t<(p-u)*(e-l)/(c-l)+u&&(i=!i)}return i},Xa.prototype.getBounds=function(){return void 0===this._bounds&&(this._bounds=qn.pull("Bounds")),this._bounds},Xa.prototype.updateBounds=function(){var t=this.getBounds();return t.update(this.points),t.translate(this.pos),t},Xa.prototype.clone=function(){var t=[];return this.points.forEach((function(e){t.push(e.clone())})),new Xa(this.pos.x,this.pos.y,t)};var Ha=function(t){function e(e,i,o,n){t.call(this,e,i,[qn.pull("Vector2d",0,0),qn.pull("Vector2d",o,0),qn.pull("Vector2d",o,n),qn.pull("Vector2d",0,n)]),this.shapeType="Rectangle"}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var i={left:{configurable:!0},right:{configurable:!0},top:{configurable:!0},bottom:{configurable:!0},width:{configurable:!0},height:{configurable:!0},centerX:{configurable:!0},centerY:{configurable:!0}};return e.prototype.onResetEvent=function(t,e,i,o){this.setShape(t,e,i,o)},e.prototype.setShape=function(t,e,i,o){var n=i;return this.pos.set(t,e),4===arguments.length&&((n=this.points)[0].set(0,0),n[1].set(i,0),n[2].set(i,o),n[3].set(0,o)),this.setVertices(n),this},i.left.get=function(){return this.pos.x},i.right.get=function(){var t=this.width;return this.pos.x+t||t},i.top.get=function(){return this.pos.y},i.bottom.get=function(){var t=this.height;return this.pos.y+t||t},i.width.get=function(){return this.points[2].x},i.width.set=function(t){this.points[1].x=this.points[2].x=t,this.recalc(),this.updateBounds()},i.height.get=function(){return this.points[2].y},i.height.set=function(t){this.points[2].y=this.points[3].y=t,this.recalc(),this.updateBounds()},i.centerX.get=function(){return isFinite(this.width)?this.pos.x+this.width/2:this.width},i.centerX.set=function(t){this.pos.x=t-this.width/2},i.centerY.get=function(){return isFinite(this.height)?this.pos.y+this.height/2:this.height},i.centerY.set=function(t){this.pos.y=t-this.height/2},e.prototype.centerOn=function(t,e){return this.centerX=t,this.centerY=e,this},e.prototype.resize=function(t,e){return this.width=t,this.height=e,this},e.prototype.scale=function(t,e){return void 0===e&&(e=t),this.width*=t,this.height*=e,this},e.prototype.clone=function(){return new e(this.pos.x,this.pos.y,this.width,this.height)},e.prototype.copy=function(t){return this.setShape(t.pos.x,t.pos.y,t.width,t.height)},e.prototype.union=function(t){var e=Math.min(this.left,t.left),i=Math.min(this.top,t.top);return this.resize(Math.max(this.right,t.right)-e,Math.max(this.bottom,t.bottom)-i),this.pos.set(e,i),this},e.prototype.overlaps=function(t){return this.left=this.left&&i<=this.right&&o>=this.top&&n<=this.bottom},e.prototype.equals=function(t){return t.left===this.left&&t.right===this.right&&t.top===this.top&&t.bottom===this.bottom},e.prototype.isFinite=function(){return isFinite(this.pos.x)&&isFinite(this.pos.y)&&isFinite(this.width)&&isFinite(this.height)},e.prototype.toPolygon=function(){return qn.pull("Polygon",this.pos.x,this.pos.y,this.points)},Object.defineProperties(e.prototype,i),e}(Xa),Ya=function(t){function e(e,i,o,n,r){void 0===r&&(r=20),t.call(this,e,i,o,n),this.radius=r}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var i={radius:{configurable:!0}};return e.prototype.onResetEvent=function(e,i,o,n,r){t.prototype.setShape.call(this,e,i,o,n),this.radius=r},i.radius.get=function(){return this._radius},i.radius.set=function(t){this.width<2*t&&(t=this.width/2),this.height<2*t&&(t=this.height/2),this._radius=t},e.prototype.copy=function(e){return t.prototype.setShape.call(this,e.pos.x,e.pos.y,e.width,e.height),this.radius=e.radius,this},e.prototype.contains=function(){var e,i,o,n,r=arguments[0];if(2===arguments.length)e=r,i=arguments[1];else{if(r instanceof t)return t.prototype.contains.call(this,r);e=r.x,i=r.y}if(e=this.right||i=this.bottom)return!1;if(e>=this.left+this.radius&&e<=this.right-this.radius||i>=this.top+this.radius&&i<=this.bottom-this.radius)return!0;var s=Math.max(0,Math.min(this.radius,this.width/2)),a=Math.max(0,Math.min(this.radius,this.height/2));if(ethis.right-s&&ithis.right-s&&i>this.bottom-a)o=e-this.right+s,n=i-this.bottom+a;else{if(!(ethis.bottom-a))return!1;o=e-this.left-s,n=i-this.bottom+a}return o*o+n*n<=s*a},e.prototype.equals=function(e){return t.prototype.equals.call(this,e)&&this.radius===e.radius},e.prototype.clone=function(){return new e(this.pos.x,this.pos.y,this.width,this.height,this.radius)},Object.defineProperties(e.prototype,i),e}(Ha),Wa=function(t,e,i,o){this.pos=qn.pull("Vector2d"),this._bounds=void 0,this.radius=NaN,this.radiusV=qn.pull("Vector2d"),this.radiusSq=qn.pull("Vector2d"),this.ratio=qn.pull("Vector2d"),this.shapeType="Ellipse",this.setShape(t,e,i,o)};Wa.prototype.onResetEvent=function(t,e,i,o){this.setShape(t,e,i,o)},Wa.prototype.setShape=function(t,e,i,o){var n=i/2,r=o/2;this.pos.set(t,e),this.radius=Math.max(n,r),this.ratio.set(n/this.radius,r/this.radius),this.radiusV.set(this.radius,this.radius).scaleV(this.ratio);var s=this.radius*this.radius;return this.radiusSq.set(s,s).scaleV(this.ratio),this.getBounds().setMinMax(t,e,t+i,t+o),this.getBounds().translate(-this.radiusV.x,-this.radiusV.y),this},Wa.prototype.rotate=function(t,e){return this.pos.rotate(t,e),this.getBounds().shift(this.pos),this.getBounds().translate(-this.radiusV.x,-this.radiusV.y),this},Wa.prototype.scale=function(t,e){return e=void 0!==e?e:t,this.setShape(this.pos.x,this.pos.y,2*this.radiusV.x*t,2*this.radiusV.y*e)},Wa.prototype.scaleV=function(t){return this.scale(t.x,t.y)},Wa.prototype.transform=function(t){return this},Wa.prototype.translate=function(){var t,e;return 2===arguments.length?(t=arguments[0],e=arguments[1]):(t=arguments[0].x,e=arguments[0].y),this.pos.x+=t,this.pos.y+=e,this.getBounds().translate(t,e),this},Wa.prototype.contains=function(){var t,e;return 2===arguments.length?(t=arguments[0],e=arguments[1]):(t=arguments[0].x,e=arguments[0].y),t-=this.pos.x,e-=this.pos.y,t*t/this.radiusSq.x+e*e/this.radiusSq.y<=1},Wa.prototype.getBounds=function(){return void 0===this._bounds&&(this._bounds=qn.pull("Bounds")),this._bounds},Wa.prototype.clone=function(){return new Wa(this.pos.x,this.pos.y,2*this.radiusV.x,2*this.radiusV.y)};var qa=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.contains=function(){var t,e;2===arguments.length?(t=arguments[0],e=arguments[1]):(t=arguments[0].x,e=arguments[0].y),t-=this.pos.x,e-=this.pos.y;var i=this.points[0],o=this.points[1];return(e-i.y)*(o.x-i.x)==(o.y-i.y)*(t-i.x)},e.prototype.recalc=function(){var t=this.edges,e=this.normals,i=this.indices,o=this.points;if(2!==o.length)throw new Error("Requires exactly 2 points");return void 0===t[0]&&(t[0]=qn.pull("Vector2d")),t[0].copy(o[1]).sub(o[0]),void 0===e[0]&&(e[0]=qn.pull("Vector2d")),e[0].copy(t[0]).perp().normalize(),i.length=0,this},e.prototype.clone=function(){var t=[];return this.points.forEach((function(e){t.push(e.clone())})),new e(this.pos.x,this.pos.y,t)},e}(Xa),Ka=function(t){this._center=new Kn,this.onResetEvent(t)},Za={x:{configurable:!0},y:{configurable:!0},width:{configurable:!0},height:{configurable:!0},left:{configurable:!0},right:{configurable:!0},top:{configurable:!0},bottom:{configurable:!0},centerX:{configurable:!0},centerY:{configurable:!0},center:{configurable:!0}};Ka.prototype.onResetEvent=function(t){void 0===this.min?(this.min={x:1/0,y:1/0},this.max={x:-1/0,y:-1/0}):this.clear(),void 0!==t&&this.update(t)},Ka.prototype.clear=function(){this.setMinMax(1/0,1/0,-1/0,-1/0)},Ka.prototype.setMinMax=function(t,e,i,o){this.min.x=t,this.min.y=e,this.max.x=i,this.max.y=o},Za.x.get=function(){return this.min.x},Za.x.set=function(t){var e=this.max.x-this.min.x;this.min.x=t,this.max.x=t+e},Za.y.get=function(){return this.min.y},Za.y.set=function(t){var e=this.max.y-this.min.y;this.min.y=t,this.max.y=t+e},Za.width.get=function(){return this.max.x-this.min.x},Za.width.set=function(t){this.max.x=this.min.x+t},Za.height.get=function(){return this.max.y-this.min.y},Za.height.set=function(t){this.max.y=this.min.y+t},Za.left.get=function(){return this.min.x},Za.right.get=function(){return this.max.x},Za.top.get=function(){return this.min.y},Za.bottom.get=function(){return this.max.y},Za.centerX.get=function(){return this.min.x+this.width/2},Za.centerY.get=function(){return this.min.y+this.height/2},Za.center.get=function(){return this._center.set(this.centerX,this.centerY)},Ka.prototype.update=function(t){this.add(t,!0)},Ka.prototype.add=function(t,e){void 0===e&&(e=!1),!0===e&&this.clear();for(var i=0;ithis.max.x&&(this.max.x=o.x),o.xthis.max.y&&(this.max.y=o.y),o.ythis.max.x&&(this.max.x=t.max.x),t.min.xthis.max.y&&(this.max.y=t.max.y),t.min.y=this.min.x&&e<=this.max.x&&i>=this.min.y&&o<=this.max.y},Ka.prototype.overlaps=function(t){return!(this.rightt.right||this.bottomt.bottom)},Ka.prototype.isFinite=function(){return isFinite(this.min.x)&&isFinite(this.max.x)&&isFinite(this.min.y)&&isFinite(this.max.y)},Ka.prototype.translate=function(){var t,e;2===arguments.length?(t=arguments[0],e=arguments[1]):(t=arguments[0].x,e=arguments[0].y),this.min.x+=t,this.max.x+=t,this.min.y+=e,this.max.y+=e},Ka.prototype.shift=function(){var t,e;2===arguments.length?(t=arguments[0],e=arguments[1]):(t=arguments[0].x,e=arguments[0].y);var i=this.max.x-this.min.x,o=this.max.y-this.min.y;this.min.x=t,this.max.x=t+i,this.min.y=e,this.max.y=e+o},Ka.prototype.clone=function(){var t=new Ka;return t.addBounds(this),t},Ka.prototype.toPolygon=function(){return qn.pull("Polygon",this.x,this.y,[qn.pull("Vector2d",0,0),qn.pull("Vector2d",this.width,0),qn.pull("Vector2d",this.width,this.height),qn.pull("Vector2d",0,this.height)])},Object.defineProperties(Ka.prototype,Za);var Qa=function(){this.points=[],this.arcResolution=5,this.vertices=[]};Qa.prototype.beginPath=function(){this.points.forEach((function(t){qn.push(t)})),this.points.length=0},Qa.prototype.closePath=function(){var t=this.points;t.length>1&&!t[t.length-1].equals(t[0])&&t.push(qn.pull("Vector2d",t[0].x,t[0].y))},Qa.prototype.triangulatePath=function(){var t=0,e=this.points,i=this.vertices,o=va.exports(e.flatMap((function(t){return[t.x,t.y]})));for(t=0;to.length;)qn.push(i[i.length-1]),i.length-=1;return i},Qa.prototype.moveTo=function(t,e){this.points.push(qn.pull("Vector2d",t,e))},Qa.prototype.lineTo=function(t,e){this.points.push(qn.pull("Vector2d",t,e))},Qa.prototype.arc=function(t,e,i,o,n,r){void 0===r&&(r=!1);var s=this.points;if(o!==n){var a=r?Math.abs(o-n)>=En:Math.abs(n-o)>=En;(o%=En)<0&&(o+=En),(n%=En)<0&&(n+=En),o>=n&&(n+=En);var h=n-o,l=1;r&&(l=-1,h=En-h),a&&(h=En);for(var u=h*i/this.arcResolution,c=h/u,p=o,d=0;d=En:Math.abs(s-r)>=En;(r%=En)<0&&(r+=En),(s%=En)<0&&(s+=En),r>=s&&(s+=En);var u=s-r,c=1;a&&(c=-1,u=En-u),l&&(u=En);for(var p=(u*i+u*o)/2/this.arcResolution,d=u/p,f=r,y=Math.cos(n),g=Math.sin(n),v=0;v=0&&t.top<=this.getHeight()&&t.bottom>=0},$a.prototype.resize=function(t,e){var i=this.getCanvas();t===i.width&&e===i.height||(i.width=t,i.height=e,this.currentScissor[0]=0,this.currentScissor[1]=0,this.currentScissor[2]=t,this.currentScissor[3]=e,Wr(jr,t,e))},$a.prototype.setAntiAlias=function(t,e){var i=t.canvas;bn("imageSmoothingEnabled",!0===e,t),!0!==e?(i.style["image-rendering"]="optimizeSpeed",i.style["image-rendering"]="-moz-crisp-edges",i.style["image-rendering"]="-o-crisp-edges",i.style["image-rendering"]="-webkit-optimize-contrast",i.style["image-rendering"]="optimize-contrast",i.style["image-rendering"]="crisp-edges",i.style["image-rendering"]="pixelated",i.style.msInterpolationMode="nearest-neighbor"):i.style["image-rendering"]="auto"},$a.prototype.setProjection=function(t){this.projectionMatrix.copy(t)},$a.prototype.stroke=function(t,e){if(t instanceof Ya)this.strokeRoundRect(t.left,t.top,t.width,t.height,t.radius,e);else if(t instanceof Ha||t instanceof Ka)this.strokeRect(t.left,t.top,t.width,t.height,e);else if(t instanceof qa||t instanceof Xa)this.strokePolygon(t,e);else if(t instanceof Wa)this.strokeEllipse(t.pos.x,t.pos.y,t.radiusV.x,t.radiusV.y,e);else{if(!(t instanceof Ja))throw new Error("Invalid geometry for fill/stroke");this.strokePoint(t.x,t.y)}},$a.prototype.fill=function(t){this.stroke(t,!0)},$a.prototype.tint=function(t,e,i){var o=jc(t.width,t.height,!0),n=this.getContext2d(o);return n.save(),n.fillStyle=e instanceof nr?e.toRGB():e,n.fillRect(0,0,t.width,t.height),n.globalCompositeOperation=i||"multiply",n.drawImage(t,0,0),n.globalCompositeOperation="destination-atop",n.drawImage(t,0,0),n.restore(),o},$a.prototype.setMask=function(t){},$a.prototype.clearMask=function(){},$a.prototype.setTint=function(t,e){void 0===e&&(e=t.alpha),this.currentTint.copy(t),this.currentTint.alpha*=e},$a.prototype.clearTint=function(){this.currentTint.setColor(255,255,255,1)},$a.prototype.drawFont=function(){};var th={}; /*! * howler.js v2.2.3 * howlerjs.com @@ -26,4 +26,4 @@ * * MIT License */ -function(){var t;HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(t){var e=this;if(!e.ctx||!e.ctx.listener)return e;for(var i=e._howls.length-1;i>=0;i--)e._howls[i].stereo(t);return e},HowlerGlobal.prototype.pos=function(t,e,i){var o=this;return o.ctx&&o.ctx.listener?(e="number"!=typeof e?o._pos[1]:e,i="number"!=typeof i?o._pos[2]:i,"number"!=typeof t?o._pos:(o._pos=[t,e,i],void 0!==o.ctx.listener.positionX?(o.ctx.listener.positionX.setTargetAtTime(o._pos[0],Howler.ctx.currentTime,.1),o.ctx.listener.positionY.setTargetAtTime(o._pos[1],Howler.ctx.currentTime,.1),o.ctx.listener.positionZ.setTargetAtTime(o._pos[2],Howler.ctx.currentTime,.1)):o.ctx.listener.setPosition(o._pos[0],o._pos[1],o._pos[2]),o)):o},HowlerGlobal.prototype.orientation=function(t,e,i,o,n,r){var s=this;if(!s.ctx||!s.ctx.listener)return s;var a=s._orientation;return e="number"!=typeof e?a[1]:e,i="number"!=typeof i?a[2]:i,o="number"!=typeof o?a[3]:o,n="number"!=typeof n?a[4]:n,r="number"!=typeof r?a[5]:r,"number"!=typeof t?a:(s._orientation=[t,e,i,o,n,r],void 0!==s.ctx.listener.forwardX?(s.ctx.listener.forwardX.setTargetAtTime(t,Howler.ctx.currentTime,.1),s.ctx.listener.forwardY.setTargetAtTime(e,Howler.ctx.currentTime,.1),s.ctx.listener.forwardZ.setTargetAtTime(i,Howler.ctx.currentTime,.1),s.ctx.listener.upX.setTargetAtTime(o,Howler.ctx.currentTime,.1),s.ctx.listener.upY.setTargetAtTime(n,Howler.ctx.currentTime,.1),s.ctx.listener.upZ.setTargetAtTime(r,Howler.ctx.currentTime,.1)):s.ctx.listener.setOrientation(t,e,i,o,n,r),s)},Howl.prototype.init=(t=Howl.prototype.init,function(e){var i=this;return i._orientation=e.orientation||[1,0,0],i._stereo=e.stereo||null,i._pos=e.pos||null,i._pannerAttr={coneInnerAngle:void 0!==e.coneInnerAngle?e.coneInnerAngle:360,coneOuterAngle:void 0!==e.coneOuterAngle?e.coneOuterAngle:360,coneOuterGain:void 0!==e.coneOuterGain?e.coneOuterGain:0,distanceModel:void 0!==e.distanceModel?e.distanceModel:"inverse",maxDistance:void 0!==e.maxDistance?e.maxDistance:1e4,panningModel:void 0!==e.panningModel?e.panningModel:"HRTF",refDistance:void 0!==e.refDistance?e.refDistance:1,rolloffFactor:void 0!==e.rolloffFactor?e.rolloffFactor:1},i._onstereo=e.onstereo?[{fn:e.onstereo}]:[],i._onpos=e.onpos?[{fn:e.onpos}]:[],i._onorientation=e.onorientation?[{fn:e.onorientation}]:[],t.call(this,e)}),Howl.prototype.stereo=function(t,i){var o=this;if(!o._webAudio)return o;if("loaded"!==o._state)return o._queue.push({event:"stereo",action:function(){o.stereo(t,i)}}),o;var n=void 0===Howler.ctx.createStereoPanner?"spatial":"stereo";if(void 0===i){if("number"!=typeof t)return o._stereo;o._stereo=t,o._pos=[t,0,0]}for(var r=o._getSoundIds(i),s=0;s3)throw new Error("melonJS: failed loading "+t);eh[t].load()};function sh(){return!th.Howler.noAudio}function ah(t,e,i,o){var n=[];if(0===nh.length)throw new Error("target audio extension(s) should be set through me.audio.init() before calling the preloader.");if(!0===vn(t.src))n.push(t.src);else for(var r=0;r0;)e[i]=arguments[i+1];var o=eh[t];if(o&&void 0!==o)return o.seek.apply(o,e);throw new Error("audio clip "+t+" does not exist")},rate:function(t){for(var e=[],i=arguments.length-1;i-- >0;)e[i]=arguments[i+1];var o=eh[t];if(o&&void 0!==o)return o.rate.apply(o,e);throw new Error("audio clip "+t+" does not exist")},stop:function(t,e){if(void 0!==t){var i=eh[t];if(!i||void 0===i)throw new Error("audio clip "+t+" does not exist");i.stop(e),i.off("end",void 0,e)}else th.Howler.stop()},pause:function(t,e){var i=eh[t];if(!i||void 0===i)throw new Error("audio clip "+t+" does not exist");i.pause(e)},resume:function(t,e){var i=eh[t];if(!i||void 0===i)throw new Error("audio clip "+t+" does not exist");i.play(e)},playTrack:function(t,e){return hh(ih=t,!0,null,e)},stopTrack:function(){null!==ih&&(eh[ih].stop(),ih=null)},pauseTrack:lh,resumeTrack:uh,getCurrentTrack:function(){return ih},setVolume:function(t){th.Howler.volume(t)},getVolume:function(){return th.Howler.volume()},mute:ch,unmute:function(t,e){ch(t,e,!1)},muteAll:ph,unmuteAll:dh,muted:function(){return th.Howler._muted},unload:fh,unloadAll:yh}),vh=function(t){function e(e,i,o){if(void 0===e&&(e=0),void 0===i&&(i=0),t.call(this,e,i),void 0===o)throw new Error("undefined `onUpdate` callback");this.setCallback(o.onUpdate,o.scope)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var i={x:{configurable:!0},y:{configurable:!0}};return e.prototype.onResetEvent=function(t,e,i){return void 0===t&&(t=0),void 0===e&&(e=0),this.setMuted(t,e),void 0!==i&&this.setCallback(i.onUpdate,i.scope),this},i.x.get=function(){return this._x},i.x.set=function(t){var e=this.onUpdate.call(this.scope,t,this._y,this._x,this._y);this._x=e&&"x"in e?e.x:t},i.y.get=function(){return this._y},i.y.set=function(t){var e=this.onUpdate.call(this.scope,this._x,t,this._x,this._y);this._y=e&&"y"in e?e.y:t},e.prototype._set=function(t,e){var i=this.onUpdate.call(this.scope,t,e,this._x,this._y);return i&&"x"in i&&"y"in i?(this._x=i.x,this._y=i.y):(this._x=t,this._y=e),this},e.prototype.setMuted=function(t,e){return this._x=t,this._y=e,this},e.prototype.setCallback=function(t,e){if(void 0===e&&(e=null),"function"!=typeof t)throw new Error("invalid `onUpdate` callback");return this.onUpdate=t,this.scope=e,this},e.prototype.add=function(t){return this._set(this._x+t.x,this._y+t.y)},e.prototype.sub=function(t){return this._set(this._x-t.x,this._y-t.y)},e.prototype.scale=function(t,e){return this._set(this._x*t,this._y*(void 0!==e?e:t))},e.prototype.scaleV=function(t){return this._set(this._x*t.x,this._y*t.y)},e.prototype.div=function(t){return this._set(this._x/t,this._y/t)},e.prototype.abs=function(){return this._set(this._x<0?-this._x:this._x,this._y<0?-this._y:this._y)},e.prototype.clamp=function(t,i){return new e(In(this.x,t,i),In(this.y,t,i),{onUpdate:this.onUpdate,scope:this.scope})},e.prototype.clampSelf=function(t,e){return this._set(In(this._x,t,e),In(this._y,t,e))},e.prototype.minV=function(t){return this._set(this._xt.x?this._x:t.x,this._y>t.y?this._y:t.y)},e.prototype.floor=function(){return new e(Math.floor(this._x),Math.floor(this._y),{onUpdate:this.onUpdate,scope:this.scope})},e.prototype.floorSelf=function(){return this._set(Math.floor(this._x),Math.floor(this._y))},e.prototype.ceil=function(){return new e(Math.ceil(this._x),Math.ceil(this._y),{onUpdate:this.onUpdate,scope:this.scope})},e.prototype.ceilSelf=function(){return this._set(Math.ceil(this._x),Math.ceil(this._y))},e.prototype.negate=function(){return new e(-this._x,-this._y,{onUpdate:this.onUpdate,scope:this.scope})},e.prototype.negateSelf=function(){return this._set(-this._x,-this._y)},e.prototype.copy=function(t){return this._set(t.x,t.y)},e.prototype.equals=function(t){return this._x===t.x&&this._y===t.y},e.prototype.perp=function(){return this._set(this._y,-this._x)},e.prototype.rotate=function(t,e){var i=0,o=0;"object"==typeof e&&(i=e.x,o=e.y);var n=this._x-i,r=this._y-o,s=Math.cos(t),a=Math.sin(t);return this._set(n*s-r*a+i,n*a+r*s+o)},e.prototype.dot=function(t){return this._x*t.x+this._y*t.y},e.prototype.cross=function(t){return this._x*t.y-this._y*t.x},e.prototype.lerp=function(t,e){return this._set(this._x+(t.x-this._x)*e,this._y+(t.y-this._y)*e)},e.prototype.moveTowards=function(t,e){var i=Math.atan2(t.y-this._y,t.x-this._x),o=this.distance(t);return 0===o||e>=0&&o<=e*e?t:(this._x+=Math.cos(i)*e,this._y+=Math.sin(i)*e,this)},e.prototype.distance=function(t){return Math.sqrt((this._x-t.x)*(this._x-t.x)+(this._y-t.y)*(this._y-t.y))},e.prototype.clone=function(){return qn.pull("ObservableVector2d",this._x,this._y,{onUpdate:this.onUpdate,scope:this.scope})},e.prototype.toVector2d=function(){return qn.pull("Vector2d",this._x,this._y)},e.prototype.toString=function(){return"x:"+this._x+",y:"+this._y},Object.defineProperties(e.prototype,i),e}(Kn),mh=function(t,e,i){void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),this.onResetEvent(t,e,i)};mh.prototype.onResetEvent=function(t,e,i){return void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),this.x=t,this.y=e,this.z=i,this},mh.prototype._set=function(t,e,i){return void 0===i&&(i=0),this.x=t,this.y=e,this.z=i,this},mh.prototype.set=function(t,e,i){if(t!==+t||e!==+e||void 0!==i&&i!==+i)throw new Error("invalid x, y, z parameters (not a number)");return this._set(t,e,i)},mh.prototype.setZero=function(){return this.set(0,0,0)},mh.prototype.setV=function(t){return this._set(t.x,t.y,t.z)},mh.prototype.add=function(t){return this._set(this.x+t.x,this.y+t.y,this.z+(t.z||0))},mh.prototype.sub=function(t){return this._set(this.x-t.x,this.y-t.y,this.z-(t.z||0))},mh.prototype.scale=function(t,e,i){return e=void 0!==e?e:t,this._set(this.x*t,this.y*e,this.z*(i||1))},mh.prototype.scaleV=function(t){return this.scale(t.x,t.y,t.z)},mh.prototype.toIso=function(){return this._set(this.x-this.y,.5*(this.x+this.y),this.z)},mh.prototype.to2d=function(){return this._set(this.y+this.x/2,this.y-this.x/2,this.z)},mh.prototype.div=function(t){return this._set(this.x/t,this.y/t,this.z/t)},mh.prototype.abs=function(){return this._set(this.x<0?-this.x:this.x,this.y<0?-this.y:this.y,this.z<0?-this.z:this.z)},mh.prototype.clamp=function(t,e){return new mh(In(this.x,t,e),In(this.y,t,e),In(this.z,t,e))},mh.prototype.clampSelf=function(t,e){return this._set(In(this.x,t,e),In(this.y,t,e),In(this.z,t,e))},mh.prototype.minV=function(t){var e=t.z||0;return this._set(this.xt.x?this.x:t.x,this.y>t.y?this.y:t.y,this.z>e?this.z:e)},mh.prototype.floor=function(){return new mh(Math.floor(this.x),Math.floor(this.y),Math.floor(this.z))},mh.prototype.floorSelf=function(){return this._set(Math.floor(this.x),Math.floor(this.y),Math.floor(this.z))},mh.prototype.ceil=function(){return new mh(Math.ceil(this.x),Math.ceil(this.y),Math.ceil(this.z))},mh.prototype.ceilSelf=function(){return this._set(Math.ceil(this.x),Math.ceil(this.y),Math.ceil(this.z))},mh.prototype.negate=function(){return new mh(-this.x,-this.y,-this.z)},mh.prototype.negateSelf=function(){return this._set(-this.x,-this.y,-this.z)},mh.prototype.copy=function(t){return this._set(t.x,t.y,t.z||0)},mh.prototype.equals=function(){var t,e,i;return arguments.length>=2?(t=arguments[0],e=arguments[1],i=arguments[2]):(t=arguments[0].x,e=arguments[0].y,i=arguments[0].z),void 0===i&&(i=this.z),this.x===t&&this.y===e&&this.z===i},mh.prototype.normalize=function(){return this.div(this.length()||1)},mh.prototype.perp=function(){return this._set(this.y,-this.x,this.z)},mh.prototype.rotate=function(t,e){var i=0,o=0;"object"==typeof e&&(i=e.x,o=e.y);var n=this.x-i,r=this.y-o,s=Math.cos(t),a=Math.sin(t);return this._set(n*s-r*a+i,n*a+r*s+o,this.z)},mh.prototype.dot=function(t){return this.x*t.x+this.y*t.y+this.z*(void 0!==t.z?t.z:this.z)},mh.prototype.cross=function(t){var e=this.x,i=this.y,o=this.z,n=t.x,r=t.y,s=t.z;return this.x=i*s-o*r,this.y=o*n-e*s,this.z=e*r-i*n,this},mh.prototype.length2=function(){return this.dot(this)},mh.prototype.length=function(){return Math.sqrt(this.length2())},mh.prototype.lerp=function(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this},mh.prototype.moveTowards=function(t,e){var i=Math.atan2(t.y-this.y,t.x-this.x),o=this.x-t.x,n=this.y-t.y,r=Math.sqrt(o*o+n*n);return 0===r||e>=0&&r<=e*e?t:(this.x+=Math.cos(i)*e,this.y+=Math.sin(i)*e,this)},mh.prototype.distance=function(t){var e=this.x-t.x,i=this.y-t.y,o=this.z-(t.z||0);return Math.sqrt(e*e+i*i+o*o)},mh.prototype.angle=function(t){return Math.acos(In(this.dot(t)/(this.length()*t.length()),-1,1))},mh.prototype.project=function(t){var e=this.dot(t)/t.length2();return this.scale(e,e,e)},mh.prototype.projectN=function(t){var e=this.dot(t)/t.length2();return this.scale(e,e,e)},mh.prototype.clone=function(){return qn.pull("Vector3d",this.x,this.y,this.z)},mh.prototype.toString=function(){return"x:"+this.x+",y:"+this.y+",z:"+this.z};var xh=function(t){function e(e,i,o,n){if(void 0===e&&(e=0),void 0===i&&(i=0),void 0===o&&(o=0),t.call(this,e,i,o),void 0===n)throw new Error("undefined `onUpdate` callback");this.setCallback(n.onUpdate,n.scope)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var i={x:{configurable:!0},y:{configurable:!0},z:{configurable:!0}};return e.prototype.onResetEvent=function(t,e,i,o){return void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),this.setMuted(t,e,i),void 0!==o&&this.setCallback(o.onUpdate,o.scope),this},i.x.get=function(){return this._x},i.x.set=function(t){var e=this.onUpdate.call(this.scope,t,this._y,this._z,this._x,this._y,this._z);this._x=e&&"x"in e?e.x:t},i.y.get=function(){return this._y},i.y.set=function(t){var e=this.onUpdate.call(this.scope,this._x,t,this._z,this._x,this._y,this._z);this._y=e&&"y"in e?e.y:t},i.z.get=function(){return this._z},i.z.set=function(t){var e=this.onUpdate.call(this.scope,this._x,this._y,t,this._x,this._y,this._z);this._z=e&&"z"in e?e.z:t},e.prototype._set=function(t,e,i){var o=this.onUpdate.call(this.scope,t,e,i,this._x,this._y,this._z);return o&&"x"in o&&"y"in o&&"z"in o?(this._x=o.x,this._y=o.y,this._z=o.z):(this._x=t,this._y=e,this._z=i||0),this},e.prototype.setMuted=function(t,e,i){return this._x=t,this._y=e,this._z=i||0,this},e.prototype.setCallback=function(t,e){if(void 0===e&&(e=null),"function"!=typeof t)throw new Error("invalid `onUpdate` callback");return this.onUpdate=t,this.scope=e,this},e.prototype.add=function(t){return this._set(this._x+t.x,this._y+t.y,this._z+(t.z||0))},e.prototype.sub=function(t){return this._set(this._x-t.x,this._y-t.y,this._z-(t.z||0))},e.prototype.scale=function(t,e,i){return e=void 0!==e?e:t,this._set(this._x*t,this._y*e,this._z*(i||1))},e.prototype.scaleV=function(t){return this._set(this._x*t.x,this._y*t.y,this._z*(t.z||1))},e.prototype.div=function(t){return this._set(this._x/t,this._y/t,this._z/t)},e.prototype.abs=function(){return this._set(this._x<0?-this._x:this._x,this._y<0?-this._y:this._y,this._Z<0?-this._z:this._z)},e.prototype.clamp=function(t,i){return new e(In(this._x,t,i),In(this._y,t,i),In(this._z,t,i),{onUpdate:this.onUpdate,scope:this.scope})},e.prototype.clampSelf=function(t,e){return this._set(In(this._x,t,e),In(this._y,t,e),In(this._z,t,e))},e.prototype.minV=function(t){var e=t.z||0;return this._set(this._xt.x?this._x:t.x,this._y>t.y?this._y:t.y,this._z>e?this._z:e)},e.prototype.floor=function(){return new e(Math.floor(this._x),Math.floor(this._y),Math.floor(this._z),{onUpdate:this.onUpdate,scope:this.scope})},e.prototype.floorSelf=function(){return this._set(Math.floor(this._x),Math.floor(this._y),Math.floor(this._z))},e.prototype.ceil=function(){return new e(Math.ceil(this._x),Math.ceil(this._y),Math.ceil(this._z),{onUpdate:this.onUpdate,scope:this.scope})},e.prototype.ceilSelf=function(){return this._set(Math.ceil(this._x),Math.ceil(this._y),Math.ceil(this._z))},e.prototype.negate=function(){return new e(-this._x,-this._y,-this._z,{onUpdate:this.onUpdate,scope:this.scope})},e.prototype.negateSelf=function(){return this._set(-this._x,-this._y,-this._z)},e.prototype.copy=function(t){return this._set(t.x,t.y,t.z||0)},e.prototype.equals=function(t){return this._x===t.x&&this._y===t.y&&this._z===(t.z||this._z)},e.prototype.perp=function(){return this._set(this._y,-this._x,this._z)},e.prototype.rotate=function(t,e){var i=0,o=0;"object"==typeof e&&(i=e.x,o=e.y);var n=this.x-i,r=this.y-o,s=Math.cos(t),a=Math.sin(t);return this._set(n*s-r*a+i,n*a+r*s+o,this.z)},e.prototype.dot=function(t){return this._x*t.x+this._y*t.y+this._z*(t.z||1)},e.prototype.cross=function(t){var e=this._x,i=this._y,o=this._z,n=t.x,r=t.y,s=t.z;return this._set(i*s-o*r,o*n-e*s,e*r-i*n)},e.prototype.lerp=function(t,e){return this._set(this._x+(t.x-this._x)*e,this._y+(t.y-this._y)*e,this._z+(t.z-this._z)*e)},e.prototype.moveTowards=function(t,e){var i=Math.atan2(t.y-this._y,t.x-this._x),o=this._x-t.x,n=this._y-t.y,r=Math.sqrt(o*o+n*n);return 0===r||e>=0&&r<=e*e?t:this._set(this._x+Math.cos(i)*e,this._y+Math.sin(i)*e,this._z)},e.prototype.distance=function(t){var e=this._x-t.x,i=this._y-t.y,o=this._z-(t.z||0);return Math.sqrt(e*e+i*i+o*o)},e.prototype.clone=function(){return qn.pull("ObservableVector3d",this._x,this._y,this._z,{onUpdate:this.onUpdate})},e.prototype.toVector3d=function(){return qn.pull("Vector3d",this._x,this._y,this._z)},e.prototype.toString=function(){return"x:"+this._x+",y:"+this._y+",z:"+this._z},Object.defineProperties(e.prototype,i),e}(mh),_h={},bh={},wh={},Th={},Ah={},Eh={},Sh=function(t,e,i){e=e||t.keyCode||t.button;var o=Eh[e];if(Wr(Or,o,e,!o||!wh[o]),o){if(!wh[o]){var n=void 0!==i?i:e;Th[o][n]||(_h[o]++,Th[o][n]=!0)}return!Ah[e]||"function"!=typeof t.preventDefault||t.preventDefault()}return!0},Ch=function(t,e,i){e=e||t.keyCode||t.button;var o=Eh[e];if(Wr(Ir,o,e),o){var n=void 0!==i?i:e;return Th[o][n]=void 0,_h[o]>0&&_h[o]--,wh[o]=!1,!Ah[e]||"function"!=typeof t.preventDefault||t.preventDefault()}return!0},Mh=null;function Ph(){null===Mh&&!1===vs&&"function"==typeof(Mh=globalThis).addEventListener&&(Mh.addEventListener("keydown",Sh,!1),Mh.addEventListener("keyup",Ch,!1))}function Oh(t,e,i){!0===e?Sh({},t,i):Ch({},t,i)}function Ih(t){return Eh[t]}var kh,Rh=new Kn,Bh=function(t){function e(e,i,o,n){void 0===e&&(e=0),void 0===i&&(i=0),void 0===o&&(o=1),void 0===n&&(n=1),t.call(this),this.setMinMax(e,i,e+o,i+n),this.LEFT=0,this.MIDDLE=1,this.RIGHT=2,this.event=void 0,this.type=void 0,this.button=0,this.isPrimary=!1,this.pageX=0,this.pageY=0,this.clientX=0,this.clientY=0,this.movementX=0,this.movementY=0,this.deltaMode=0,this.deltaX=0,this.deltaY=0,this.deltaZ=0,this.gameX=0,this.gameY=0,this.gameScreenX=0,this.gameScreenY=0,this.gameWorldX=0,this.gameWorldY=0,this.gameLocalX=0,this.gameLocalY=0,this.pointerId=void 0,this.isNormalized=!1,this.locked=!1,this.bind=[0,0,0]}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setEvent=function(t,e,i,o,n,r){void 0===e&&(e=0),void 0===i&&(i=0),void 0===o&&(o=0),void 0===n&&(n=0),void 0===r&&(r=1),this.event=t,this.pageX=e,this.pageY=i,this.clientX=o,this.clientY=n,cl(this.pageX,this.pageY,Rh),this.gameScreenX=this.x=Rh.x,this.gameScreenY=this.y=Rh.y,this.isNormalized=void 0!==globalThis.PointerEvent&&!(t instanceof globalThis.PointerEvent),this.locked=ul,this.movementX=t.movementX||0,this.movementY=t.movementY||0,"wheel"===t.type?(this.deltaMode=t.deltaMode||0,this.deltaX=t.deltaX||0,this.deltaY=t.deltaY||0,this.deltaZ=t.deltaZ||0):(this.deltaMode=0,this.deltaX=0,this.deltaY=0,this.deltaZ=0),this.pointerId=r,this.isPrimary=void 0===t.isPrimary||t.isPrimary,this.button=t.button||0,this.type=t.type,void 0!==$l.viewport&&$l.viewport.localToWorld(this.gameScreenX,this.gameScreenY,Rh),this.gameWorldX=Rh.x,this.gameWorldY=Rh.y,!1===this.isNormalized?(this.width=t.width||1,this.height=t.height||1):"number"==typeof t.radiusX?(this.width=2*t.radiusX||1,this.height=2*t.radiusY||1):this.width=this.height=1},e}(Ka),Dh=[],Lh=new Map,zh=!1,Fh=0,Vh=[],jh=["wheel"],Uh=["pointermove","mousemove","touchmove"],Nh=["pointerdown","mousedown","touchstart"],Gh=["pointerup","mouseup","touchend"],Xh=["pointercancel","mousecancel","touchcancel"],Hh=["pointerenter","mouseenter","touchenter"],Yh=["pointerover","mouseover","touchover"],Wh=["pointerleave","mouseleave","touchleave"],qh=[jh[0],Uh[0],Nh[0],Gh[0],Xh[0],Hh[0],Yh[0],Wh[0]],Kh=[jh[0],Uh[1],Nh[1],Gh[1],Xh[1],Hh[1],Yh[1],Wh[1]],Zh=[Uh[2],Nh[2],Gh[2],Xh[2],Hh[2],Yh[2],Wh[2]],Qh={wheel:jh,pointermove:Uh,pointerdown:Nh,pointerup:Gh,pointercancel:Xh,pointerenter:Hh,pointerover:Yh,pointerleave:Wh},Jh=[];function $h(){if(!zh){kh=new Ha(0,0,1,1);for(var t=0;t=0&&(n=t.callbacks[e][r]);r--)if(!1===n(i))return!0}return!1}function ol(t){for(var e=!1;t.length>0;){var i=t.pop();if(Dh.push(i),!0===i.isNormalized&&void 0!==i.event.timeStamp){if(i.event.timeStamp0;)n.callbacks[t].pop();0===n.callbacks[t].length&&delete n.callbacks[t]}0===Object.keys(n.callbacks).length&&Lh.delete(e)}}function yl(t){if(Lh.has(t))for(var e=0;e0?i===this.GAMEPAD.BUTTONS.L2?Math.max(0,t-2e4)/111070:(t-1)/131070:(65536+t)/131070+.5}var ml=/^([0-9a-f]{1,4})-([0-9a-f]{1,4})-/i,xl=/^0+/;function _l(t,e){var i=t.replace(ml,(function(t,e,i){return"000".slice(e.length-1)+e+"-"+"000".slice(i.length-1)+i+"-"})),o=t.replace(ml,(function(t,e,i){return e.replace(xl,"")+"-"+i.replace(xl,"")+"-"}));e.analog=e.analog||e.buttons.map((function(){return-1})),e.normalize_fn=e.normalize_fn||function(t){return t},Tl.set(i,e),Tl.set(o,e)}var bl,wl={},Tl=new Map;[["45e-28e-Xbox 360 Wired Controller",{axes:[0,1,3,4],buttons:[11,12,13,14,8,9,-1,-1,5,4,6,7,0,1,2,3,10],analog:[-1,-1,-1,-1,-1,-1,2,5,-1,-1,-1,-1,-1,-1,-1,-1,-1],normalize_fn:function(t,e,i){return i===this.GAMEPAD.BUTTONS.L2||i===this.GAMEPAD.BUTTONS.R2?(t+1)/2:t}}],["54c-268-PLAYSTATION(R)3 Controller",{axes:[0,1,2,3],buttons:[14,13,15,12,10,11,8,9,0,3,1,2,4,6,7,5,16]}],["54c-5c4-Wireless Controller",{axes:[0,1,2,3],buttons:[1,0,2,3,4,5,6,7,8,9,10,11,14,15,16,17,12,13]}],["2836-1-OUYA Game Controller",{axes:[0,3,7,9],buttons:[3,6,4,5,7,8,15,16,-1,-1,9,10,11,12,13,14,-1],analog:[-1,-1,-1,-1,-1,-1,5,11,-1,-1,-1,-1,-1,-1,-1,-1,-1],normalize_fn:vl}],["OUYA Game Controller (Vendor: 2836 Product: 0001)",{axes:[0,1,3,4],buttons:[0,3,1,2,4,5,12,13,-1,-1,6,7,8,9,10,11,-1],analog:[-1,-1,-1,-1,-1,-1,2,5,-1,-1,-1,-1,-1,-1,-1,-1,-1],normalize_fn:vl}]].forEach((function(t){_l(t[0],t[1])}));var Al=function(){var t=navigator.getGamepads();Object.keys(wl).forEach((function(e){var i=t[e];if(i){var o=null;"standard"!==i.mapping&&(o=Tl.get(i.id));var n=wl[e];Object.keys(n.buttons).forEach((function(t){var r=n.buttons[t],s=t,a=-1;if(!(o&&(s=o.buttons[t],a=o.analog[t],s<0&&a<0))){var h=i.buttons[s]||{};if(o&&a>=0){var l=o.normalize_fn(i.axes[a],-1,+t);h={value:l,pressed:h.pressed||Math.abs(l)>=gl}}Wr(Br,e,"buttons",+t,h),!r.pressed&&h.pressed?Oh(r.keyCode,!0,s+256):r.pressed&&!h.pressed&&Oh(r.keyCode,!1,s+256),r.value=h.value,r.pressed=h.pressed}})),Object.keys(n.axes).forEach((function(t){var r=n.axes[t],s=t;if(!(o&&(s=o.axes[t])<0)){var a=i.axes[s];if(void 0!==a){o&&(a=o.normalize_fn(a,+t,-1));var h=Math.sign(a)||1;if(0!==r[h].keyCode){var l=Math.abs(a)>=gl+Math.abs(r[h].threshold);Wr(Br,e,"axes",+t,a),!r[h].pressed&&l?(r[-h].pressed&&(Oh(r[-h].keyCode,!1,s+256),r[-h].value=0,r[-h].pressed=!1),Oh(r[h].keyCode,!0,s+256)):!r[h].pressed&&!r[-h].pressed||l||Oh(r[h=r[h].pressed?h:-h].keyCode,!1,s+256),r[h].value=a,r[h].pressed=l}}}}))}}))};globalThis.navigator&&"function"==typeof globalThis.navigator.getGamepads&&(globalThis.addEventListener("gamepadconnected",(function(t){Wr(kr,t.gamepad)}),!1),globalThis.addEventListener("gamepaddisconnected",(function(t){Wr(Rr,t.gamepad)}),!1));for(var El=_l,Sl=!0,Cl=Object.freeze({__proto__:null,preventDefault:Sl,get pointerEventTarget(){return hl},pointer:ll,get locked(){return ul},get throttlingInterval(){return al},globalToLocal:cl,setTouchAction:pl,bindPointer:function(){var t=arguments.length<2?ll.LEFT:arguments[0],e=arguments.length<2?arguments[0]:arguments[1];if($h(),!Ih(e))throw new Error("no action defined for keycode "+e);ll.bind[t]=e},unbindPointer:function(t){ll.bind[void 0===t?ll.LEFT:t]=null},registerPointerEvent:dl,releasePointerEvent:fl,releaseAllPointerEvents:yl,requestPointerLock:function(){return!!Is&&(Uc().requestPointerLock(),!0)},exitPointerLock:function(){return!!Is&&(document.exitPointerLock(),!0)},get keyBoardEventTarget(){return Mh},KEY:{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,PRINT_SCREEN:42,INSERT:45,DELETE:46,NUM0:48,NUM1:49,NUM2:50,NUM3:51,NUM4:52,NUM5:53,NUM6:54,NUM7:55,NUM8:56,NUM9:57,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,WINDOW_KEY:91,NUMPAD0:96,NUMPAD1:97,NUMPAD2:98,NUMPAD3:99,NUMPAD4:100,NUMPAD5:101,NUMPAD6:102,NUMPAD7:103,NUMPAD8:104,NUMPAD9:105,MULTIPLY:106,ADD:107,SUBSTRACT:109,DECIMAL:110,DIVIDE:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,TILDE:126,NUM_LOCK:144,SCROLL_LOCK:145,SEMICOLON:186,PLUS:187,COMMA:188,MINUS:189,PERIOD:190,FORWAND_SLASH:191,GRAVE_ACCENT:192,OPEN_BRACKET:219,BACK_SLASH:220,CLOSE_BRACKET:221,SINGLE_QUOTE:222},initKeyboardEvent:Ph,isKeyPressed:function(t){return!(!_h[t]||wh[t])&&(bh[t]&&(wh[t]=!0),!0)},keyStatus:function(t){return _h[t]>0},triggerKeyEvent:Oh,bindKey:function(t,e,i,o){void 0===o&&(o=Sl),Eh[t]=e,Ah[t]=o,_h[e]=0,bh[e]=i||!1,wh[e]=!1,Th[e]={}},getBindingKey:Ih,unlockKey:function(t){wh[t]=!1},unbindKey:function(t){var e=Eh[t];_h[e]=0,bh[e]=!1,Th[e]={},Eh[t]=null,Ah[t]=null},GAMEPAD:{AXES:{LX:0,LY:1,RX:2,RY:3,EXTRA_1:4,EXTRA_2:5,EXTRA_3:6,EXTRA_4:7},BUTTONS:{FACE_1:0,FACE_2:1,FACE_3:2,FACE_4:3,L1:4,R1:5,L2:6,R2:7,SELECT:8,BACK:8,START:9,FORWARD:9,L3:10,R3:11,UP:12,DOWN:13,LEFT:14,RIGHT:15,HOME:16,EXTRA_1:17,EXTRA_2:18,EXTRA_3:19,EXTRA_4:20}},bindGamepad:function(t,e,i){if(!Ih(i))throw new Error("no action defined for keycode "+i);void 0===bl&&"function"==typeof navigator.getGamepads&&(bl=qr(wr,Al)),wl[t]||(wl[t]={axes:{},buttons:{}});var o={keyCode:i,value:0,pressed:!1,threshold:e.threshold},n=wl[t][e.type];if("buttons"===e.type)n[e.code]=o;else if("axes"===e.type){var r=Math.sign(e.threshold)||1;n[e.code]||(n[e.code]={});var s=n[e.code];s[r]=o,s[-r]||(s[-r]={keyCode:0,value:0,pressed:!1,threshold:-r})}},unbindGamepad:function(t,e){if(!wl[t])throw new Error("no bindings for gamepad "+t);wl[t].buttons[e]={}},setGamepadDeadzone:function(t){gl=t},setGamepadMapping:El}),Ml=function(t){function e(e,i,o,n){t.call(this,e,i,o,n),this.isRenderable=!0,this.isKinematic=!0,this.body=void 0,void 0===this.currentTransform&&(this.currentTransform=qn.pull("Matrix2d")),this.currentTransform.identity(),this.GUID=void 0,this.onVisibilityChange=void 0,this.alwaysUpdate=!1,this.updateWhenPaused=!1,this.isPersistent=!1,this.floating=!1,this.anchorPoint instanceof vh?this.anchorPoint.setMuted(.5,.5).setCallback(this.onAnchorUpdate,this):this.anchorPoint=qn.pull("ObservableVector2d",.5,.5,{onUpdate:this.onAnchorUpdate,scope:this}),this.autoTransform=!0,this.alpha=1,this.ancestor=void 0,this.mask=void 0,this.tint=qn.pull("Color",255,255,255,1),this.blendMode="normal",this.name="",this.pos instanceof xh?this.pos.setMuted(e,i,0).setCallback(this.updateBoundsPos,this):this.pos=qn.pull("ObservableVector3d",e,i,0,{onUpdate:this.updateBoundsPos,scope:this}),this.isDirty=!1,this._flip={x:!1,y:!1},this._inViewport=!1,this.setOpacity(1)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var i={isFloating:{configurable:!0},inViewport:{configurable:!0},isFlippedX:{configurable:!0},isFlippedY:{configurable:!0}};return i.isFloating.get=function(){return!0===this.floating||void 0!==this.ancestor&&!0===this.ancestor.floating},i.inViewport.get=function(){return this._inViewport},i.inViewport.set=function(t){this._inViewport!==t&&(this._inViewport=t,"function"==typeof this.onVisibilityChange&&this.onVisibilityChange.call(this,t))},i.isFlippedX.get=function(){return!0===this._flip.x},i.isFlippedY.get=function(){return!0===this._flip.y},e.prototype.getBounds=function(){return void 0===this._bounds&&(t.prototype.getBounds.call(this),this.isFinite()?this._bounds.setMinMax(this.pos.x,this.pos.y,this.pos.x+this.width,this.pos.y+this.height):this._bounds.setMinMax(this.pos.x,this.pos.y,this.width,this.height)),this._bounds},e.prototype.getOpacity=function(){return this.alpha},e.prototype.setOpacity=function(t){"number"==typeof t&&(this.alpha=In(t,0,1),isNaN(this.alpha)&&(this.alpha=1),this.isDirty=!0)},e.prototype.flipX=function(t){return void 0===t&&(t=!0),this._flip.x=!!t,this.isDirty=!0,this},e.prototype.flipY=function(t){return void 0===t&&(t=!0),this._flip.y=!!t,this.isDirty=!0,this},e.prototype.transform=function(t){return this.currentTransform.multiply(t),this.updateBoundsPos(this.pos.x,this.pos.y),this.isDirty=!0,this},e.prototype.angleTo=function(t){var i,o,n=this.getBounds();if(t instanceof e){var r=t.getBounds();i=r.centerX-n.centerX,o=r.centerY-n.centerY}else i=t.x-n.centerX,o=t.y-n.centerY;return Math.atan2(o,i)},e.prototype.distanceTo=function(t){var i,o,n=this.getBounds();if(t instanceof e){var r=t.getBounds();i=n.centerX-r.centerX,o=n.centerY-r.centerY}else i=n.centerX-t.x,o=n.centerY-t.y;return Math.sqrt(i*i+o*o)},e.prototype.lookAt=function(t){var i;i=t instanceof e?t.pos:t;var o=this.angleTo(i);return this.rotate(o),this},e.prototype.rotate=function(t,e){return isNaN(t)||(this.currentTransform.rotate(t,e),this.isDirty=!0),this},e.prototype.scale=function(e,i){return this.currentTransform.scale(e,i),t.prototype.scale.call(this,e,i),this.isDirty=!0,this},e.prototype.scaleV=function(t){return this.scale(t.x,t.y),this},e.prototype.update=function(t){return this.isDirty},e.prototype.updateBounds=function(){return t.prototype.updateBounds.call(this),this.updateBoundsPos(this.pos.x,this.pos.y),this.getBounds()},e.prototype.updateBoundsPos=function(t,e){var i=this.getBounds();i.shift(t,e),void 0!==this.anchorPoint&&i.isFinite()&&i.translate(-this.anchorPoint.x*i.width,-this.anchorPoint.y*i.height),this.ancestor instanceof Yl&&!0!==this.floating&&i.translate(this.ancestor.getAbsolutePosition()),this.isDirty=!0},e.prototype.getAbsolutePosition=function(){return void 0===this._absPos&&(this._absPos=qn.pull("Vector2d")),this._absPos.set(this.pos.x,this.pos.y),this.ancestor instanceof Yl&&!0!==this.floating&&this._absPos.add(this.ancestor.getAbsolutePosition()),this._absPos},e.prototype.onAnchorUpdate=function(t,e){this.anchorPoint.setMuted(t,e),this.updateBoundsPos(this.pos.x,this.pos.y)},e.prototype.preDraw=function(t){var e=this.getBounds(),i=e.width*this.anchorPoint.x,o=e.height*this.anchorPoint.y;if(t.save(),t.setGlobalAlpha(t.globalAlpha()*this.getOpacity()),this._flip.x||this._flip.y){var n=this._flip.x?this.centerX-i:0,r=this._flip.y?this.centerY-o:0;t.translate(n,r),t.scale(this._flip.x?-1:1,this._flip.y?-1:1),t.translate(-n,-r)}void 0!==this.mask&&(t.translate(this.pos.x,this.pos.y),t.setMask(this.mask),t.translate(-this.pos.x,-this.pos.y)),!0!==this.autoTransform||this.currentTransform.isIdentity()||(t.translate(this.pos.x,this.pos.y),t.transform(this.currentTransform),t.translate(-this.pos.x,-this.pos.y)),t.translate(-i,-o),t.setTint(this.tint,this.getOpacity()),this.blendMode!==t.getBlendMode()&&t.setBlendMode(this.blendMode)},e.prototype.draw=function(t,e){},e.prototype.postDraw=function(t){t.clearTint(),void 0!==this.mask&&t.clearMask(),t.restore(),this.isDirty=!1},e.prototype.onCollision=function(t,e){return!1},e.prototype.destroy=function(){qn.push(this.currentTransform),this.currentTransform=void 0,qn.push(this.anchorPoint),this.anchorPoint=void 0,qn.push(this.pos),this.pos=void 0,void 0!==this._absPos&&(qn.push(this._absPos),this._absPos=void 0),qn.push(this._bounds),this._bounds=void 0,this.onVisibilityChange=void 0,void 0!==this.mask&&(qn.push(this.mask),this.mask=void 0),void 0!==this.tint&&(qn.push(this.tint),this.tint=void 0),this.ancestor=void 0,void 0!==this.body&&(this.body.destroy.apply(this.body,arguments),this.body=void 0),yl(this),this.onDestroyEvent.apply(this,arguments)},e.prototype.onDestroyEvent=function(){},Object.defineProperties(e.prototype,i),e}(Ha),Pl=[],Ol=0;Ol<10;Ol++)Pl.push(new Kn);for(var Il=[],kl=0;kl<5;kl++)Il.push([]);function Rl(t,e,i){for(var o=Number.MAX_VALUE,n=-Number.MAX_VALUE,r=t.length,s=0;sn&&(n=a)}i[0]=o,i[1]=n}function Bl(t,e,i,o,n,r){var s=Il.pop(),a=Il.pop(),h=Pl.pop().copy(e).sub(t),l=h.dot(n);if(Rl(i,n,s),Rl(o,n,a),a[0]+=l,a[1]+=l,s[0]>a[1]||a[0]>s[1])return Pl.push(h),Il.push(s),Il.push(a),!0;if(r){var u=0;if(s[0]a[1])u=s[0]-a[1],r.aInB=!1;else{var d=s[1]-a[0],f=a[1]-s[0];u=di?1:0}function Ll(t,e,i,o,n){for(var r=Pl.pop().copy(i.pos).add(i.ancestor.getAbsolutePosition()).add(o.pos).sub(t.pos).add(t.ancestor.getAbsolutePosition()).sub(e.pos),s=o.radius,a=s*s,h=e.points,l=e.edges,u=l.length,c=Pl.pop(),p=Pl.pop(),d=Pl.pop(),f=0,y=0;ya&&(n.aInB=!1);var _=Dl(c,d),b=!0;if(-1===_){var w=null;if(u>1&&(c.copy(l[v]),1!==(_=Dl(c,w=Pl.pop().copy(r).sub(h[v])))&&(b=!1)),b){if((f=d.length())>s)return Pl.push(r),Pl.push(c),Pl.push(p),Pl.push(d),w&&Pl.push(w),!1;n&&(n.bInA=!1,x=d.normalize(),m=s-f)}w&&Pl.push(w)}else if(1===_){if(u>1&&(c.copy(l[g]),d.copy(r).sub(h[g]),-1!==(_=Dl(c,d))&&(b=!1)),b){if((f=d.length())>s)return Pl.push(r),Pl.push(c),Pl.push(p),Pl.push(d),!1;n&&(n.bInA=!1,x=d.normalize(),m=s-f)}}else{p.copy(e.normals[y]),f=d.dot(p);var T=Math.abs(f);if((1===u||f>0)&&T>s)return Pl.push(r),Pl.push(c),Pl.push(p),Pl.push(d),!1;n&&(x=p,m=s-f,(f>=0||m<2*s)&&(n.bInA=!1))}x&&n&&Math.abs(m)l)return Pl.push(r),!1;if(n){var c=Math.sqrt(u);n.a=t,n.b=i,n.overlap=h-c,n.overlapN.copy(r.normalize()),n.overlapV.copy(r).scale(n.overlap),n.aInB=s<=a&&c<=a-s,n.bInA=a<=s&&c<=s-a}return Pl.push(r),!0},testPolygonEllipse:Ll,testEllipsePolygon:function(t,e,i,o,n){var r=Ll(i,o,t,e,n);if(r&&n){var s=n.a,a=n.aInB;n.overlapN.negateSelf(),n.overlapV.negateSelf(),n.a=n.b,n.b=s,n.aInB=n.bInA,n.bInA=a}return r}}),Fl=function(){this.a=null,this.b=null,this.overlapN=new Kn,this.overlapV=new Kn,this.aInB=!0,this.bInA=!0,this.indexShapeA=-1,this.indexShapeB=-1,this.overlap=Number.MAX_VALUE};Fl.prototype.clear=function(){return this.aInB=!0,this.bInA=!0,this.overlap=Number.MAX_VALUE,this.indexShapeA=-1,this.indexShapeB=-1,this};var Vl={pos:new Kn(0,0),ancestor:{_absPos:new Kn(0,0),getAbsolutePosition:function(){return this._absPos}}},jl=new Fl;function Ul(t,e){return!0!==t.isKinematic&&!0!==e.isKinematic&&"object"==typeof t.body&&"object"==typeof e.body&&!(!0===t.body.isStatic&&!0===e.body.isStatic)&&0!=(t.body.collisionMask&e.body.collisionType)&&0!=(t.body.collisionType&e.body.collisionMask)}var Nl={maxChildren:8,maxDepth:4,types:{NO_OBJECT:0,PLAYER_OBJECT:1,NPC_OBJECT:2,ENEMY_OBJECT:4,COLLECTABLE_OBJECT:8,ACTION_OBJECT:16,PROJECTILE_OBJECT:32,WORLD_SHAPE:64,USER:128,ALL_OBJECT:4294967295},rayCast:function(t,e){return function(t,e){void 0===e&&(e=[]);for(var i,o=0,n=$l.world.broadphase.retrieve(t),r=n.length;i=n[--r];)if(i.body&&t.getBounds().overlaps(i.getBounds())){var s=i.body.shapes.length;if(0===i.body.shapes.length)continue;var a=t,h=0;do{var l=i.body.getShape(h);zl["test"+a.shapeType+l.shapeType].call(this,Vl,a,i,l)&&(e[o]=i,o++),h++}while(h0&&(this.vel.x*=-this.bounce)),0!==e.y&&(this.vel.y=~~(.5+this.vel.y-e.y)||0,this.bounce>0&&(this.vel.y*=-this.bounce),!this.ignoreGravity)){var i=!0===this.falling?1:!0===this.jumping?-1:0;this.falling=e.y>=i,this.jumping=e.y<=-i}},Gl.prototype.forEach=function(t,e){var i=this,o=0,n=this.shapes,r=n.length;if("function"!=typeof t)throw new Error(t+" is not a function");for(arguments.length>1&&(i=e);o0){var i=this.friction.x*e,o=this.vel.x+i,n=this.vel.x-i;this.vel.x=o<0?o:n>0?n:0}if(this.friction.y>0){var r=this.friction.y*e,s=this.vel.y+r,a=this.vel.y-r;this.vel.y=s<0?s:a>0?a:0}return 0!==this.vel.y&&(this.vel.y=In(this.vel.y,-this.maxVel.y,this.maxVel.y)),0!==this.vel.x&&(this.vel.x=In(this.vel.x,-this.maxVel.x,this.maxVel.x)),this.falling=this.vel.y*Math.sign(this.force.y)>0,this.jumping=!this.falling&&this.jumping,this.ancestor.pos.add(this.vel),0!==this.vel.x||0!==this.vel.y},Gl.prototype.destroy=function(){qn.push(this.bounds),qn.push(this.vel),qn.push(this.force),qn.push(this.friction),qn.push(this.maxVel),this.shapes.forEach((function(t){qn.push(t,!1)})),this.onBodyUpdate=void 0,this.ancestor=void 0,this.bounds=void 0,this.vel=void 0,this.force=void 0,this.friction=void 0,this.maxVel=void 0,this.shapes.length=0,this.setStatic(!1)};var Xl=function(t,e){this.removeChildNow(t,e)},Hl=0,Yl=function(t){function e(e,i,o,n,r){void 0===e&&(e=0),void 0===i&&(i=0),void 0===o&&(o=$l.viewport.width),void 0===n&&(n=$l.viewport.height),void 0===r&&(r=!1),t.call(this,e,i,o,n),this.pendingSort=null,this.root=r,this.children=void 0,this.sortOn=$l.sortOn,this.autoSort=!0,this.autoDepth=!0,this.clipping=!1,this.onChildChange=function(t){},this.enableChildBoundsUpdate=!1,this.backgroundColor=qn.pull("Color",0,0,0,0),this.drawCount=0,this.autoTransform=!0,this.isKinematic=!1,this.anchorPoint.set(0,0),!0===this.root&&qr(jr,this.updateBounds.bind(this,!0))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.reset=function(){this.pendingSort&&(clearTimeout(this.pendingSort),this.pendingSort=null);for(var t,e=this.getChildren(),i=e.length;i>=0;t=e[--i])t&&!0!==t.isPersistent&&this.removeChildNow(t);void 0!==this.currentTransform&&this.currentTransform.identity(),this.backgroundColor.setColor(0,0,0,0)},e.prototype.addChild=function(t,i){return t.ancestor instanceof e?t.ancestor.removeChildNow(t):t.isRenderable&&(t.GUID=Yc.createGUID(t.id)),t.ancestor=this,this.getChildren().push(t),void 0!==t.pos&&("number"==typeof i?t.pos.z=i:!0===this.autoDepth&&(t.pos.z=this.getChildren().length)),!0===this.autoSort&&this.sort(),"function"==typeof t.onActivateEvent&&this.isAttachedToRoot()&&t.onActivateEvent(),!0===this.isAttachedToRoot()&&$l.repaint(),this.enableChildBoundsUpdate&&this.updateBounds(!0),t.body instanceof Gl&&$l.world.addBody(t.body),this.onChildChange.call(this,this.getChildren().length-1),t},e.prototype.addChildAt=function(t,i){if(i>=0&&i1&&(i=e);o=0&&t=0&&e0?e[0]:null},e.prototype.getChildren=function(){return void 0===this.children&&(this.children=[]),this.children},e.prototype.updateBounds=function(e){void 0===e&&(e=!1),t.prototype.updateBounds.call(this);var i=this.getBounds();return!0!==e&&!0!==this.enableChildBoundsUpdate||this.forEach((function(t){t.isRenderable&&(t.getBounds().isFinite()&&i.addBounds(t.getBounds()))})),i},e.prototype.isAttachedToRoot=function(){if(!0===this.root)return!0;for(var t=this.ancestor;t;){if(!0===t.root)return!0;t=t.ancestor}return!1},e.prototype.updateBoundsPos=function(e,i){var o=this;return t.prototype.updateBoundsPos.call(this,e,i),this.forEach((function(t){t.isRenderable&&t.updateBoundsPos(t.pos.x+e-o.pos.x,t.pos.y+i-o.pos.y)})),this.getBounds()},e.prototype.onActivateEvent=function(){this.forEach((function(t){"function"==typeof t.onActivateEvent&&t.onActivateEvent()}))},e.prototype.removeChild=function(t,e){if(!this.hasChild(t))throw new Error("Child is not mine.");Yc.function.defer(Xl,this,t,e)},e.prototype.removeChildNow=function(t,e){if(this.hasChild(t)&&this.getChildIndex(t)>=0){"function"==typeof t.onDeactivateEvent&&t.onDeactivateEvent(),t.body instanceof Gl&&$l.world.removeBody(t.body),e||!1===qn.push(t,!1)&&"function"==typeof t.destroy&&t.destroy();var i=this.getChildIndex(t);i>=0&&(this.getChildren().splice(i,1),t.ancestor=void 0),!0===this.isAttachedToRoot()&&$l.repaint(),this.enableChildBoundsUpdate&&this.updateBounds(!0),this.onChildChange.call(this,i)}},e.prototype.setChildsProperty=function(t,i,o){this.forEach((function(n){!0===o&&n instanceof e&&n.setChildsProperty(t,i,o),n[t]=i}))},e.prototype.moveUp=function(t){var e=this.getChildIndex(t);e-1>=0&&(this.swapChildren(t,this.getChildAt(e-1)),this.isDirty=!0)},e.prototype.moveDown=function(t){var e=this.getChildIndex(t);e>=0&&e+10){var i=this.getChildren();i.splice(0,0,i.splice(e,1)[0]),t.pos.z=i[1].pos.z+1,this.isDirty=!0}},e.prototype.moveToBottom=function(t){var e=this.getChildIndex(t),i=this.getChildren();e>=0&&e0||i.floating)&&Hl++,i.inViewport=!1,bu.current().cameras.forEach((function(t){t.isVisible(i,o)&&(i.inViewport=!0)})),this.isDirty|=(i.inViewport||i.alwaysUpdate)&&i.update(e),Hl>0&&Hl--):this.isDirty|=i.update(e));return t.prototype.update.call(this,e)},e.prototype.draw=function(t,e){var i=!1,o=this.getBounds();this.drawCount=0,!1===this.root&&!0===this.clipping&&!0===o.isFinite()&&t.clipRect(o.left,o.top,o.width,o.height),t.translate(this.pos.x,this.pos.y),this.backgroundColor.alpha>1/255&&t.clearColor(this.backgroundColor);for(var n,r=this.getChildren(),s=r.length;n=r[--s];)n.isRenderable&&(i=!0===n.floating,(n.inViewport||i)&&(i&&(t.save(),t.resetTransform()),n.preDraw(t),n.draw(t,e),n.postDraw(t),i&&t.restore(),this.drawCount++))},e}(Ml),Wl=[];function ql(t,e,i,o,n){if(void 0===i&&(i=4),void 0===o&&(o=4),void 0===n&&(n=0),Wl.length>0){var r=Wl.pop();return r.world=t,r.bounds=e,r.max_objects=i,r.max_levels=o,r.level=n,r}return new Zl(t,e,i,o,n)}var Kl=new Kn,Zl=function(t,e,i,o,n){void 0===i&&(i=4),void 0===o&&(o=4),void 0===n&&(n=0),this.world=t,this.bounds=e,this.max_objects=i,this.max_levels=o,this.level=n,this.bounds=e,this.objects=[],this.nodes=[]};Zl.prototype.split=function(){this.level;var t=this.bounds.width/2,e=this.bounds.height/2,i=this.bounds.left,o=this.bounds.top;this.nodes[0]=ql(this.world,this.bounds,{left:i+t,top:o,width:t,height:e},this.max_objects,this.max_levels),this.nodes[1]=ql(this.world,this.bounds,{left:i,top:o,width:t,height:e},this.max_objects,this.max_levels),this.nodes[2]=ql(this.world,this.bounds,{left:i,top:o+e,width:t,height:e},this.max_objects,this.max_levels),this.nodes[3]=ql(this.world,this.bounds,{left:i+t,top:o+e,width:t,height:e},this.max_objects,this.max_levels)},Zl.prototype.getIndex=function(t){var e,i=t.getBounds(),o=-1,n=(e=!0===t.isFloating?this.world.app.viewport.localToWorld(i.left,i.top,Kl):Kl.set(t.left,t.top)).x,r=e.y,s=i.width,a=i.height,h=this.bounds.left+this.bounds.width/2,l=this.bounds.top+this.bounds.height/2,u=rl;return nh&&(u?o=0:c&&(o=3)),o},Zl.prototype.insertContainer=function(t){for(var e,i=t.children.length;i--,e=t.children[i];)!0!==e.isKinematic&&(e instanceof Yl?("rootContainer"!==e.name&&this.insert(e),this.insertContainer(e)):"function"==typeof e.getBounds&&this.insert(e))},Zl.prototype.insert=function(t){var e=-1;if(this.nodes.length>0&&-1!==(e=this.getIndex(t)))this.nodes[e].insert(t);else if(this.objects.push(t),this.objects.length>this.max_objects&&this.level0){var o=this.getIndex(t);if(-1!==o)i=i.concat(this.nodes[o].retrieve(t));else for(var n=0;n0){var i=this.getIndex(t);-1!==i&&(e=zn(this.nodes[i],t))&&this.nodes[i].isPrunable()&&this.nodes.splice(i,1)}return!1===e&&-1!==this.objects.indexOf(t)&&(zn(this.objects,t),e=!0),e},Zl.prototype.isPrunable=function(){return!(this.hasChildren()||this.objects.length>0)},Zl.prototype.hasChildren=function(){for(var t=0;t0||e.objects.length>0)return!0}return!1},Zl.prototype.clear=function(t){this.objects.length=0;for(var e=0;ethis.world.fps},Jl.prototype.getParentContainer=function(t){return t.ancestor},Jl.prototype.repaint=function(){this.isDirty=!0},Jl.prototype.update=function(t,e){if(++this.frameCounter%this.frameRate==0){for(this.frameCounter=0,Wr(wr,t),this.accumulator+=Kc.getDelta(),this.accumulator=Math.min(this.accumulator,this.accumulatorMax),this.updateDelta=Kc.interpolation?Kc.getDelta():this.stepSize,this.accumulatorUpdateDelta=Kc.interpolation?this.updateDelta:Math.max(this.updateDelta,this.updateAverageDelta);this.accumulator>=this.accumulatorUpdateDelta||Kc.interpolation;)if(this.lastUpdateStart=globalThis.performance.now(),!0!==bu.isPaused()&&Wr(Ar,t),this.isDirty=e.update(this.updateDelta)||this.isDirty,this.lastUpdate=globalThis.performance.now(),this.updateAverageDelta=this.lastUpdate-this.lastUpdateStart,this.accumulator-=this.accumulatorUpdateDelta,Kc.interpolation){this.accumulator=0;break}Wr(Tr,this.lastUpdate)}},Jl.prototype.draw=function(t){!0===Vc.isContextValid&&(this.isDirty||this.isAlwaysDirty)&&(Wr(Er,globalThis.performance.now()),Vc.clear(),t.draw(Vc),this.isDirty=!1,Vc.flush(),Wr(Sr,globalThis.performance.now()))};var $l=new Jl;qr(dr,(function(){$l.init()}));var tu,eu=Math.min,iu=Math.max,ou=new Kn,nu=function(t){function e(e,i,o,n){t.call(this,e,i,o-e,n-i),this.AXIS={NONE:0,HORIZONTAL:1,VERTICAL:2,BOTH:3},this.bounds=qn.pull("Bounds"),this.smoothFollow=!0,this.damping=1,this.near=-1e3,this.far=1e3,this.projectionMatrix=new sr,this.invCurrentTransform=new hr,this.offset=new Kn,this.target=null,this.follow_axis=this.AXIS.NONE,this._shake={intensity:0,duration:0,axis:this.AXIS.BOTH,onComplete:null},this._fadeOut={color:null,tween:null},this._fadeIn={color:null,tween:null},this.name="default",this.setDeadzone(this.width/6,this.height/6),this.anchorPoint.set(0,0),this.isKinematic=!1,this.bounds.setMinMax(e,i,o,n),this._updateProjectionMatrix(),qr(br,this.reset,this),qr(jr,this.resize,this)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._updateProjectionMatrix=function(){this.projectionMatrix.ortho(0,this.width,this.height,0,this.near,this.far)},e.prototype._followH=function(t){var e=this.pos.x;return t.x-this.pos.x>this.deadzone.right?e=eu(t.x-this.deadzone.right,this.bounds.width-this.width):t.x-this.pos.xthis.deadzone.bottom?e=eu(t.y-this.deadzone.bottom,this.bounds.height-this.height):t.y-this.pos.y0&&(this._shake.duration-=e,this._shake.duration<=0?(this._shake.duration=0,this.offset.setZero(),"function"==typeof this._shake.onComplete&&this._shake.onComplete()):(this._shake.axis!==this.AXIS.BOTH&&this._shake.axis!==this.AXIS.HORIZONTAL||(this.offset.x=(Math.random()-.5)*this._shake.intensity),this._shake.axis!==this.AXIS.BOTH&&this._shake.axis!==this.AXIS.VERTICAL||(this.offset.y=(Math.random()-.5)*this._shake.intensity)),this.isDirty=!0),!0===this.isDirty&&Wr(Xr,this.pos),null==this._fadeIn.tween&&null==this._fadeOut.tween||(this.isDirty=!0),this.currentTransform.isIdentity()?this.invCurrentTransform.identity():this.invCurrentTransform.copy(this.currentTransform).invert(),t.prototype.update.call(this,e)},e.prototype.shake=function(t,e,i,o,n){0!==this._shake.duration&&!0!==n||(this._shake.intensity=t,this._shake.duration=e,this._shake.axis=i||this.AXIS.BOTH,this._shake.onComplete="function"==typeof o?o:void 0)},e.prototype.fadeOut=function(t,e,i){void 0===e&&(e=1e3),this._fadeOut.color=qn.pull("Color").copy(t),this._fadeOut.tween=qn.pull("Tween",this._fadeOut.color).to({alpha:0},e).onComplete(i||null),this._fadeOut.tween.isPersistent=!0,this._fadeOut.tween.start()},e.prototype.fadeIn=function(t,e,i){void 0===e&&(e=1e3),this._fadeIn.color=qn.pull("Color").copy(t);var o=this._fadeIn.color.alpha;this._fadeIn.color.alpha=0,this._fadeIn.tween=qn.pull("Tween",this._fadeIn.color).to({alpha:o},e).onComplete(i||null),this._fadeIn.tween.isPersistent=!0,this._fadeIn.tween.start()},e.prototype.focusOn=function(t){var e=t.getBounds();this.moveTo(t.pos.x+e.left+e.width/2,t.pos.y+e.top+e.height/2)},e.prototype.isVisible=function(t,e){return void 0===e&&(e=t.floating),!0===e||!0===t.floating?Vc.overlaps(t.getBounds()):t.getBounds().overlaps(this)},e.prototype.localToWorld=function(t,e,i){return(i=i||qn.pull("Vector2d")).set(t,e).add(this.pos).sub($l.world.pos),this.currentTransform.isIdentity()||this.invCurrentTransform.apply(i),i},e.prototype.worldToLocal=function(t,e,i){return(i=i||qn.pull("Vector2d")).set(t,e),this.currentTransform.isIdentity()||this.currentTransform.apply(i),i.sub(this.pos).add($l.world.pos)},e.prototype.drawFX=function(t){this._fadeIn.tween&&(t.save(),t.resetTransform(),t.setColor(this._fadeIn.color),t.fillRect(0,0,this.width,this.height),t.restore(),1===this._fadeIn.color.alpha&&(this._fadeIn.tween=null,qn.push(this._fadeIn.color),this._fadeIn.color=null)),this._fadeOut.tween&&(t.save(),t.resetTransform(),t.setColor(this._fadeOut.color),t.fillRect(0,0,this.width,this.height),t.restore(),0===this._fadeOut.color.alpha&&(this._fadeOut.tween=null,qn.push(this._fadeOut.color),this._fadeOut.color=null))},e.prototype.draw=function(t,e){var i=this.pos.x+this.offset.x,o=this.pos.y+this.offset.y;e.currentTransform.translate(-i,-o),t.setProjection(this.projectionMatrix),t.clipRect(0,0,this.width,this.height),this.preDraw(t),e.preDraw(t,this),e.draw(t,this),this.drawFX(t),e.postDraw(t,this),this.postDraw(t),e.currentTransform.translate(i,o)},e}(Ml),ru={cameras:[]},su=function(t){this.cameras=new Map,this.lights=new Map,this.ambientLight=new nr(0,0,0,0),this.settings=Object.assign(ru,t||{})};su.prototype.reset=function(){var t=this;if(this.settings.cameras.forEach((function(e){t.cameras.set(e.name,e)})),!1===this.cameras.has("default")){if(void 0===tu){var e=Vc.getWidth(),i=Vc.getHeight();tu=new nu(0,0,e,i)}this.cameras.set("default",tu)}$l.reset(),this.onResetEvent.apply(this,arguments)},su.prototype.update=function(t){var e=$l.world.update(t);return this.cameras.forEach((function(i){!0===i.update(t)&&(e=!0)})),this.lights.forEach((function(i){!0===i.update(t)&&(e=!0)})),e},su.prototype.draw=function(t){var e=this;this.cameras.forEach((function(i){i.draw(t,$l.world),0!==e.ambientLight.alpha&&(t.save(),e.lights.forEach((function(e){t.setMask(e.getVisibleArea(),!0)})),t.setColor(e.ambientLight),t.fillRect(0,0,i.width,i.height),t.clearMask(),t.restore()),e.lights.forEach((function(e){e.preDraw(t,$l.world),e.draw(t,$l.world),e.postDraw(t,$l.world)}))}))},su.prototype.destroy=function(){this.cameras.clear(),this.lights.forEach((function(t){t.destroy()})),this.lights.clear(),this.onDestroyEvent.apply(this,arguments)},su.prototype.onResetEvent=function(){"function"==typeof this.settings.onResetEvent&&this.settings.onResetEvent.apply(this,arguments)},su.prototype.onDestroyEvent=function(){"function"==typeof this.settings.onDestroyEvent&&this.settings.onDestroyEvent.apply(this,arguments)};var au=function(t){function e(e,i,o,n){t.call(this,e,i,o,n),this.barHeight=n,this.anchorPoint.set(0,0),qr(Pr,this.onProgressUpdate,this),qr(Ur,this.resize,this),this.anchorPoint.set(0,0),this.progress=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.onProgressUpdate=function(t){this.progress=~~(t*this.width),this.isDirty=!0},e.prototype.draw=function(t,e){t.setColor("black"),t.fillRect(this.pos.x,e.centerY,t.getWidth(),this.barHeight/2),t.setColor("#55aa00"),t.fillRect(this.pos.x,e.centerY,this.progress,this.barHeight/2)},e.prototype.onDestroyEvent=function(){Zr(Pr,this.onProgressUpdate),Zr(Ur,this.resize)},e}(Ml),hu=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.onResetEvent=function(){$l.world.backgroundColor.parseCSS("#202020"),$l.world.addChild(new au(0,Vc.getHeight()/2,Vc.getWidth(),8),1),cc.load({name:"melonjs_logo",type:"image",src:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAMAAABrrFhUAAAA8FBMVEUgICBrqDHRZVtqpzEhJCAjKCBurTIfHyDQZFptrDEWAB8OAB7VZ1wtIiIAEhYlISDYaF4SAB4pIiEAFhkcFh8eGyBopDAMAB5noS8kKyAAGhtjmy4bEB9lni8ZBR/HYFdPeim/XFQ9XCUaCh9flS1VhCtSfyorOSEVHh4HHB1EZyatVExhmC5ajCxHbSc0SyMuQCInMiFKcSgxRSI6VSRBYiWdTUZdki09JyZ8PzpYiSs3UCRlNjK1WE9ckC1MdShbjywyJCONRkDKYliUSUNeMzBDKShXMC2kUEl1PDeEQj1OLStnNjNxOjZsODQAAAcMh1CFAAAU4UlEQVR42uyaa3fSMBjHk5EQkgClkBZKoXblNhlswIooc2N6pp7jUb//x/FpRbnt4JWwzv7eraQvfs/zby7tUEpKSkpKSkpKSkpKSkpKSkqKTsg30P8E+FIArJllqQaglMXQt6tPuhogGSlaLWFKKU2hEB33eqPRqDemRAlhRhdbVjwIBj8xogajhpBSkNH1dOJ37mYDt1mr2UCt1mwOZned7qQfjhxPVs0WovTpRIFFNkpIU42CSWfm2phnIzjHP+DLS9hutjuL4IqZUigC9yU/CWDBhBROOJkPbBxL4swKjDf/jEvBbXe4CMeiKixKEx0EAq03JbqeDJs4Ul9a7mE5AqqAazM/pJCb5JaAUmWa42nHBflYDf8y8WC4qznv9yRKZAUIRUKO+/Maz/J1+d8ugu0rK3kVoNSTVhDZr8v/WRGyQw8lC0KJMK989+/sVzXILiRNzmrACGXSC4Z2lsf2f08GN2lyHgJCLUn6bRw1/2dim+A9hIKiJMAQ6NOJu7f5a7r8B+u/7N7BAzMZBaBIkkkz0t83sfMsgDHsgN1BOybaFNvww2qblMgEUGKqi2aU/X3u2HZnHf8iuL4aO0S1PKDVQM54dBn0F50718bfq5CwOYBQIaaDVfd37MG91u5MwhER8WHQU8qC2wCEmFJefEYUrBdedGe15b4xQasAtaqXt/wh/W87W1679YNeCxQbjNCItTchBFheRErAmHEYb575ch/Qeuz9ByXpdHH2QX2wx4NuMBbSbJCfn3IJWZ4dndBvZ6Bytt949A8AbZjT6OHftQeDTHtx2VgebhFj6KfAmGisJaS46k+mj/4sELW/N+QP6UOIXf/Sqwq0p/F7okA8KU312BcAqmTf3k1/1Hx7HlgyskfsL96h7b3XMNCRcYQzz+KH9N3FSC57fxiYUTDOWLmAjgcjpBo2d9oPKxdv95Fs0UPGl5XPinWDVYqGwdBxYFQJH/Mdfc5nQUuyw77KYYXKm/ub09PzV/Xn5SNVAOJ/B/Hf0W8HwiQUHRTwf/2slM/nS6WbN/XjZIDK6534w8zv9r1In6GDUq6/y+VzMaVTdGYg7cDj38/wHX17YknQPzSGUb8p5U5icqX7ovaZkBFk+nw7/hx3epIdvPtAufIpf7Ikl39W0B0BRpToQPy32j8IZUPPW+xC8S0E4Afv6noLwGgL3WZ32u8roetbTqF4v1aA/JdKGWmEUc8ZgP/m0j+4riKKNFEoflwrQO6D1gQwKnrulj/mXUto048XgZV+/vQMaYQ5otfc8s/Wpprav5oFz5cRgHXwo85VgFHw55nN+Ld7UvMnPOP5y2elXMRJ6VzDA7DPH2e7XstBemHl+vubfAk4efGc6SsAo9542x9fVJH+D/lQgfrnF+fn9++KWv0bdHP+z3A7rFKC9MMMo1KsVIr1ssYHgFiqvemfdUemg45EuVAuFMpIH4SI4ZZ/2xEOQ8eCAUgjVHa3/G+txuN/Z/+vYE51suU/9NT/5G8GIL3uPxfsCfwf11fyrW1FgRiGTkna0vZpYHQUXRHdVZBhvCMorP7/V+3oyprgPiy2Dxk2HzA06TknpyHz19CjVfcpf9kj+6SBtqgcMPz/q/vPdPgwLP/DsCM1f2vTf7Ifap5/hYXQ/FGnX7S16LdABADc23oqVP91kYfgrU5b1GxKHSCo7tILzR/z9eJ8nliv0zqAMZ8ATEJfaP6+7jlj3CDlXpHVfsfnH+eyn4kMzMdGQRNO7fNkGEXbGTigBkDq1lZzU07BnaXzIab6LCMAuEEmdWcD8+ax9uNTckxFqyWxwKBgKXZrzerHtAbcPhFQ0R8oAExdChXADIt1Tz0KkGi9TjML1CBLqgA0YZGIFZhZqVNUtf9GCdBbF0IF4Be/vvQYz6pyxhRwH+QC4CpXoAgELvE6iKMtfwJLzv+5YU2iDasOR0MJMBdMgFsMK6ICrppGY+rELGAdhFpAYoXYgRdBRzsLUtB3L/z+7zpITFvHYhQAdorGyQudAdCuNe8qoJjVNgYAF0M+9iFbAe9tK2w4BKIIdVJ0CLASv7jeBFo7cBwCrxcgP1IAjEv5ALipwII1gmGGMR4A2uEB+blJK4x4E1kdZhQA5xYowPe58z3lwKfH199WbQRAc/LpuwPWu17k0qaFCnANAgHSvKJcZdMCxJtgOsQuKsexG2uCwMxa8O8aUa/axHZCe/OUZA42ag0Avqi5ll2nYSAaRQEbZI+NrbKwEFFYJURCiEcpqEE0aZOmBfH/f4PLQ+OEttwxLKg3jq5Or3TG9jyOJ/FjgSIGZvBRLhB1oFvi7/3X5CIDhZHodOLtfyyEXUlh0IGzyDoQM+rbGljFRNaE2ZOXj0MT3pALxGQo8v1z1ILRBb6+hTJoZgLvBoMYRjZAeALuv/v/hZCzeTxWRIu/iwEvbqQMmKcxUekwHqF/KQSo74OCVX8rCyQoC9C/QYBZENZTcYMlRkqjWFlVZfn9OWGXwcoDVFKewD+fo33v9AwQD3HGFqH5XsXHACWVA7BObfp+YyoL4BKpLvb+MuvBlVn1q03iwIONVNFy1jPUBvGyPOaGJT4GGOPAHd9v66bIuy7Pi3p5GKoTrYSdeRXaQrk7LD02P2Gbejv2FqrYdugFxgHM5ChBEFNpIn/czxaObdMJrcXP4Z94sdxZUGZmAZmA+7ws0im4a9oenFQsKg58uE8NhBgE43+LlBysa65FmvJweIppMzobsmJKWve+EFrMsUJ3+wEqGaUKPA9XkSYNhj0xUd8xYkbBsU516lnMhv+LFs1nKCX7BZYVjIUQZ8FC830PRjG6LnSqBzCSPcloP0U9IaLZhknntlynSGhOS+yV/bWuEla1EPwSONXdAc0VKYv4ZcyoWQBGEDp/2zdI/zyrYgfyR6CAL7nm18BC18pJFnlLhuUMsScgvs9CwjrXyOgCq/Q9yIQpBa0Q/DqW6+JoJSNX9AGNT4S2uezhx8B9kBvu2AZGjpQubwLRglHKLnX6Z7DodmgBQjDHkji7O3+MoFFZgITx+pLiMdiChL1G7DUL8DWQLBDPw3dGh5Yjn38YT+TuMrhuvy71HbGiGyzRAg8DVYQQzO49evYg7ArLiP7v82/7n3OcZ8u6F36+IzjfVCqivwkTetqNCHpP2nvdfS74PJTr7zH+NM9pTflPwTMbcN1YkgEwFcL7EXIddf85LQ1SrtZ8FsO6uh13w7Abt02nZ7tjbiuR1+2Xn2COYPxaCCM3+KCqQz86fnpDSgOkPQg+i/dtb8E6P/zUt8Vln+/pF4fVD7D103Gbz8B8cIbULeJlHXqLM2ZQZDHEuGMnpsF+m0Alpfk+pKmAtZdCJNf5wUGJYAervRB8eggotSH2SlAy2myBchi14VbCxKlzka+BScWCqofBUASYCbsVKAQzD65g7CbmEl9OCTQtocEm74ysiPsq6imhilLVxANyUfR2o9i0SN7YstH8DP+9db+DYcD/iFsgqnXWd02SXAc9CrLpx124yFd2w35HlQ4tEPCHxPwO9haY7oG1NbQbMnLPYPbw2YNIMYAlxeTIDlP+WP0axAUhTrGzefUXEeK+kXetvU3DUDQtqdxKSQwJG1romIbQSLWhfuChFRioG92rsP//c3AiwbErxfKxBMoFf/am5cyPc+899/hDkTOJHZ4IKMQQrC6irDZTh+YVa9VHlsbuyK6uEe7tINCdK9hVutGkUgL/S0pox5cEchPX2X9qrXVfuIQIoAcsDN2sj+yb5XuVU8JZlgkpZ+PMzMbhvG0AwKqfteh6O3VZbqL8J4tNhggAluxxBgaNEIK7A/BNWvkWC7DCV/X+3qsMU0+LkqiS75NyMUhD+LqqrjdT51TPlQeAVTZ11nXpW1nm1sDOWhA1blBBcGEincwV1crqwV7Vq6r0U8ZxiCEevONwtzaaKnGS6X3lCGRHSwaAuyzU4Uyr5tjaLv4wL6+cm3BbxwFw9pSujJsfowBY2UfAutHeyRftZGwXb4RxY2+XDQHAgQGAlblMHI382xeRABwnSicBpyDYjS/HADYILhiYFAMA6k8DUDgANCQAfue0bPy3AeC3QD48AGK2gHLOgJFwAKhDENfgvwkArkGGCH0SDcAuEeKp8MhQYcEAtFT4EU2Fn9nB0HvJAExQHEMwRIfDogFgw2GI7eGXIhkANyESlxITvQLc/2UwAO+cLILgW4BMikIg46TF01QwAGxaHOwBuoI9uQBwhRGMPbs09nouFwCo3fAlLG6GCooFAMVRrGVaXTUz5XGxAHjK44xAQioArUBiZgskYiUyUrcAKhygdDEiqT2xPACZDS6qSe2+y04hIROAFM5aSO6F2qe5pmxDAMBJivJCydFhqsiOK9SHhQLQNb/ahTHFycsglh7EFogB4IQUSyORsqT841Aay8aBxR7VqYlQHPfK33SysAUVwY/qzF/ZO5kRfKLljAkidJMfZaEPgJXVD+ubNnUZqL0yS0upwKAOWidW7ZY++UhSIRQxp79KmAvth8sIha5Q8VZJ0B6YdquFaZlBTjyl7UMQEQcXyG8fZ93TN+MHCJv75l4bzWQ3+RhlRI8A2UzGozpEdpvjgSDRYALh7TY6qS+PWpHvBcT9nmdizk+nmQHsNq+xAHoRuLkYt21k32qlQ/01D0es0gVUCIcAZUimdbG+u7z/XOP7PQgsiu395WpbNKUKaEKqNmbyeZFoNiEKOscrDHkf1bxpmz91GdZY2HWHhjWHlt3kRc6bS/I2IoijIkyadZ7nJTNZU5PpByHAAmhXvkgfGqXUACY77fOc5h2SeXRciTNQ2Gkef56oOAsNtF1KQwCRIN/9CxqFZII8E5WXFpdFiZeW2oNHyRrIhSAfGrMHUCUfrKN8yAI+oYyUkFK2HaVFW2khtR/rPzDal+UkZGjwzOMAwRSJkReScwyi5QGdEvxI2wqZSEdNeGryRNYl018dT9X/zlIzndt0eHR4MNSnVXyPgoAGR3tKYidJ8dOa4PRCTTD2eRl7CUyEmAqirIHqbuxveuOcAjIuApwAHjNFKqmC5lsZIdH8zGuuzp8mYJQCTgGo/FARix7KMSQzYzn8vAAU8gFGcPQS+DJ8AH4rndH8PqQ3S35yd2U7isNAMFHasWw/WcopQhRBIBICQsggJCIx/P9XrTMcDWbZY5YQs36Yh4EZXNXl7vJB3Hkjd7fCkCfc3/ZGbgh4zp5xwYbuBdBWGr00pF2OrT0E6p/sIH6V1uRHTANeDv1NE/j4rB1mFYMHgTYJsJtnrGORL1W9w107NA4/u+gqjL+cFXprU2+cbSvA828GxFKImwRmLpDiji6WwCdvsuDjOU1MA7iI+WzXBj4MmfFpQKuAeC7wOdss6n8afe8qjaUaqNdRWoeEPt1g4wPGpFkMUJKuIruDAaA/ahsToVmXr4NnYanq4GI4eq4waLKJZxADYF12MvFIEO3EZKPLTMxxhADo1ztK0zgtxIND3JhieKnTeKEEhacT4F9OHOB+qRkMXHZwcCOzgwxFv76IfKszMxgg4bqNDDa26cSs01hsmKMtDlj9X8La4sfAdHkvHn6vHhngtGcGAJT+EX+3RxnwDDV+GPf7rIYUQGQa/tyj3RFA063GwN4f98cAJT6f3HaIDaukO1FS8GCuMTCveGz10yhJvIWGP+rWolKSFkMtEw7LvuaGMa/yW/y208iO8GMxXEXslnRnE8LrUyEFIpqhht8edb5aRWNeawzYLJMvnxhQsMKZw16KHw2RzoC7iF+dCOJ0PGX2a/Hj0sNFA5gIPl4zDFD+KzX8dfzhoyh0zwCzP/nrREA8MQu0HtjOSHTeAcwDxcDVPt/d1iGQVygQiKx2rq1FIPh4BX7MA/G5AOEwCNZKBN3PjuJEbCLX0cZgVL90kY6SxFcW5E4EZegTq9N+ECssdszWyZ8X/DX4UYc+n+oydFx7SgR0Z4sogEzWgc684x6s9PV1GMS6DbsmguGMc9IRBUC4HM3d+w+d9jIlAxKOIi0R2A5z85HkHWRDCiQV5YIxR8PP7KWAfiblsSxyV++P6tDhQz5dBS38emLfhV9ZkKa/Q8xknKAdu04Fiw/OLfKssFCLAJf1xEH4PZpQ3ZBvMCdddcvejxLhE3hO8KnkzQ7hX8t/LfvdnwAiiz327IoCli9jwUFxQP8l9kBgLKzNvhX/Pc/zpo+JqD4M+NpBEVzlAjeaNqkYA4Hv00s8wetswJDj6/BPfQNOKlCAsN7+rIPtSMjXKy4SIH8rBGoBEPCkqGYHx8XMfx3+wUdombE9RzhfBg8ocIPDUnHAfULgr0JP1R8Vs13kovZvEq2TqfCbsC1xMkXFzsY46RxsPxuQioRWCQC/RA5AFPhUCL9cL6JW+j+Dz1rXTfuXPzaSiNEcY3XHgT3YLRvCheSeBQR5oKpdIQfLS6WQUM4mA8e9Qa/7TWPCf/FpfLwcIgU6B0zBGe6zWVklMlQ8jD2/BX0mg3pjLkUo07jcZIsWPEP0OvwgA9l78r9vBAT5jB5QcESjYDlRvpsuN01dES/lnEupfqQeVKtmtMx2+dBhJ/APmHSdaWGW+rERPyymAVKgtRMq5rYIg2g4z/P9YbFY7PN8PoyC4wuI/QH8yUokxDIu/Ofk7YVFFmllSyfhjJCxFvIXaqa99Ah+MKnF2KzBf0dBElbrAdNk8IAKbL9/txJIlK1EajT8Yzb0hTXb2pjC/7k5X55qvqzCxHT458mL4M10iDL4bsMSEuxGifDeAv5RBcBFPDsEWMq/H3vmOttlIbhFzKt8v5SBL/hquW85QBL+Xvmuk3+W/H2CfyuDccvBIrKxsP859jb0LNqvy1RweK/gYwMCiZDVKMsDdlLCr2m4vEWBD+bTTcFFCu8XfI0Dr53XjbL9yeRh/dNgo0+yo+10s1LcJW+O/ryo05IQ8ricZYt5pGg4Wr6bxo6/taP5YTprKh624AmYavn+urVgfC6F9KpSef7JYTtQ7jcInLYFyhcP8sMkW27KwudCcA/I+4f+Tgnn+a5CKCT3SVWs6ros63q1qgg9/do7vY3+L6H/0a4dqgAAg1AULYPBsjax+P//uA3TwuJAxj3RJiYf7xJ5rBVVLNzHcA8T7fkZl6iePpchSDvs8b9XBwAAAAAAqGQCc31B4/xqSwwAAAAASUVORK5CYII="},(function(){$l.world.addChild(new pc(Vc.getWidth()/2,Vc.getHeight()/2,{image:"melonjs_logo",framewidth:256,frameheight:256}),2)}))},e.prototype.onDestroyEvent=function(){cc.unload({name:"melonjs_logo",type:"image"})},e}(su),lu=-1,uu=-1,cu=!1,pu={},du={color:"",duration:0},fu=null,yu=null,gu=0;function vu(){-1===uu&&-1!==lu&&(uu=globalThis.requestAnimationFrame(mu))}function mu(t){var e=pu[lu].stage;$l.update(t,e),$l.draw(e),-1!==uu&&(uu=globalThis.requestAnimationFrame(mu))}function xu(){globalThis.cancelAnimationFrame(uu),uu=-1}function _u(t){xu(),pu[lu]&&pu[lu].stage.destroy(),pu[t]&&(pu[lu=t].stage.reset.apply(pu[lu].stage,yu),vu(),Wr(mr),fu&&fu(),$l.repaint())}qr(dr,(function(){bu.set(bu.LOADING,new hu),bu.set(bu.DEFAULT,new su),qr(xr,(function(){bu.change(bu.DEFAULT,!0)})),"function"==typeof globalThis.addEventListener&&(globalThis.addEventListener("blur",(function(){bu.pause(!0)}),!1),globalThis.addEventListener("focus",(function(){bu.resume(!0),aa()}),!1)),void 0!==globalThis.document&&"function"==typeof globalThis.document.addEventListener&&globalThis.document.addEventListener("visibilitychange",(function(){"visible"===globalThis.document.visibilityState?bu.resume(!0):bu.pause(!0)}),!1)}));var bu={LOADING:0,MENU:1,READY:2,PLAY:3,GAMEOVER:4,GAME_END:5,SCORE:6,CREDITS:7,SETTINGS:8,DEFAULT:9,USER:100,stop:function(t){void 0===t&&(t=!1),lu!==this.LOADING&&this.isRunning()&&(xu(),!0===t&&t(),gu=globalThis.performance.now(),Wr(gr))},pause:function(t){void 0===t&&(t=!1),lu===this.LOADING||this.isPaused()||(cu=!0,!0===t&&lh(),gu=globalThis.performance.now(),Wr(fr))},restart:function(t){void 0===t&&(t=!1),this.isRunning()||(vu(),!0===t&&uh(),gu=globalThis.performance.now()-gu,$l.repaint(),Wr(vr,gu))},resume:function(t){void 0===t&&(t=!1),this.isPaused()&&(cu&&-1!==lu&&(cu=!1),!0===t&&uh(),gu=globalThis.performance.now()-gu,Wr(yr,gu))},isRunning:function(){return-1!==uu},isPaused:function(){return cu},set:function(t,e,i){if(void 0===i&&(i=!1),!(e instanceof su))throw new Error(e+" is not an instance of me.Stage");pu[t]={},pu[t].stage=e,pu[t].transition=!0,!0===i&&this.change(t)},get:function(t){return void 0===t&&(t=lu),void 0!==pu[t]?pu[t].stage:void 0},current:function(){return this.get()},transition:function(t,e,i){"fade"===t&&(du.color=e,du.duration=i)},setTransition:function(t,e){pu[t].transition=e},change:function(t,e){if(void 0===pu[t])throw new Error("Undefined Stage for state '"+t+"'");this.isCurrent(t)||(yu=null,arguments.length>1&&(yu=Array.prototype.slice.call(arguments,1)),du.duration&&pu[t].transition?(fu=function(){$l.viewport.fadeOut(du.color,du.duration)},$l.viewport.fadeIn(du.color,du.duration,(function(){Xn(_u,this,t)}))):!0===e?_u(t):Xn(_u,this,t))},isCurrent:function(t){return lu===t}};function wu(t,e,i){var o;if("string"!=typeof i)return i;switch(e){case"int":case"float":i=Number(i);break;case"bool":i="true"===i;break;default:if(!i||yn(i))i=!i||"true"===i;else if(fn(i))i=Number(i);else if(0===i.search(/^json:/i)){o=i.split(/^json:/i)[1];try{i=JSON.parse(o)}catch(t){throw new Error("Unable to parse JSON: "+o)}}else if(0===i.search(/^eval:/i)){o=i.split(/^eval:/i)[1];try{i=Function("'use strict';return ("+o+")")()}catch(t){throw new Error("Unable to evaluate: "+o)}}else((o=i.match(/^#([\da-fA-F])([\da-fA-F]{3})$/))||(o=i.match(/^#([\da-fA-F]{2})([\da-fA-F]{6})$/)))&&(i="#"+o[2]+o[1]);0===t.search(/^(ratio|anchorPoint)$/)&&"number"==typeof i&&(i={x:i,y:i})}return i}function Tu(t,e,i){switch(i=i||"none",e=e||"none"){case"csv":return function(t){for(var e=t.replace("\n","").trim().split(","),i=[],o=0;o=0;--o)s[i]+=r.charCodeAt(i*e+o)<<(o<<3);return s}(t,4);return"none"===i?o:function(){throw new Error("GZIP/ZLIB compressed TMX Tile Map not supported!")}();case"none":return t;case"xml":throw new Error("XML encoding is deprecated, use base64 instead");default:throw new Error("Unknown layer encoding: "+e)}}function Au(t,e){var i=e.nodeName;switch(i){case"data":var o=Eu(e);o.text=o.text||o.chunk.text,o.encoding=o.encoding||"xml",t.data=Tu(o.text,o.encoding,o.compression),t.encoding="none";break;case"imagelayer":case"layer":case"objectgroup":case"group":var n=Eu(e);n.type="layer"===i?"tilelayer":i,n.image&&(n.image=n.image.source),t.layers=t.layers||[],t.layers.push(n);break;case"animation":t.animation=Eu(e).frames;break;case"frame":case"object":var r=i+"s";t[r]=t[r]||[],t[r].push(Eu(e));break;case"tile":var s=Eu(e);s.image&&(s.imagewidth=s.image.width,s.imageheight=s.image.height,s.image=s.image.source),t.tiles=t.tiles||{},t.tiles[s.id]=s;break;case"tileset":var a=Eu(e);a.image&&(a.imagewidth=a.image.width,a.imageheight=a.image.height,a.image=a.image.source),t.tilesets=t.tilesets||[],t.tilesets.push(a);break;case"polygon":case"polyline":t[i]=[];for(var h,l=Eu(e).points.split(" "),u=0;u0)for(var i=0;i0&&(this.maskLevel=0,this.getContext().restore())},e}($a);function Ou(t,e){var i=0;!function(t){t.layerData=new Array(t.cols);for(var e=0;e0,this.isAnimated&&(this.preRender=!1),this.getBounds().addBounds(this.getRenderer().getBounds(),!0),this.getBounds().shift(this.pos),!0!==this.preRender||this.canvasRenderer||(this.canvasRenderer=new Pu({canvas:jc(this.width,this.height),widht:this.width,heigth:this.height,transparent:!0}),function(t,e){for(var i=0;i=0&&o=0&&nthis.cols?this.cols:s.x,s.y=s.y>this.rows?this.rows:s.y,e.renderorder){case"right-up":s.y=r.y+(r.y=s.y)-s.y,n=-1;break;case"left-down":s.x=r.x+(r.x=s.x)-s.x,o=-1;break;case"left-up":s.x=r.x+(r.x=s.x)-s.x,s.y=r.y+(r.y=s.y)-s.y,o=-1,n=-1}for(var a=r.y;a!==s.y;a+=n)for(var h=r.x;h!==s.x;h+=o){var l=e.cellAt(h,a,!1);l&&this.drawTile(t,h,a,l)}qn.push(r),qn.push(s)},e}(ku),Bu=function(t){function e(e){t.call(this,e.cols,e.rows,e.tilewidth,e.tileheight),this.hTilewidth=this.tilewidth/2,this.hTileheight=this.tileheight/2,this.originX=this.rows*this.hTilewidth}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.canRender=function(e){return"isometric"===e.orientation&&t.prototype.canRender.call(this,e)},e.prototype.getBounds=function(t){var e=t instanceof Iu?qn.pull("Bounds"):this.bounds;return e.setMinMax(0,0,(this.cols+this.rows)*(this.tilewidth/2),(this.cols+this.rows)*(this.tileheight/2)),e},e.prototype.pixelToTileCoords=function(t,e,i){return(i||new Kn).set(e/this.tileheight+(t-this.originX)/this.tilewidth,e/this.tileheight-(t-this.originX)/this.tilewidth)},e.prototype.tileToPixelCoords=function(t,e,i){return(i||new Kn).set((t-e)*this.hTilewidth+this.originX,(t+e)*this.hTileheight)},e.prototype.adjustPosition=function(t){var e=t.x/this.hTilewidth,i=t.y/this.tileheight,o=qn.pull("Vector2d");this.tileToPixelCoords(e,i,o),t.x=o.x,t.y=o.y,qn.push(o)},e.prototype.drawTile=function(t,e,i,o){var n=o.tileset;n.drawTile(t,(this.cols-1)*n.tilewidth+(e-i)*n.tilewidth>>1,-n.tilewidth+(e+i)*n.tileheight>>2,o)},e.prototype.drawTileLayer=function(t,e,i){var o=e.tileset,n=this.pixelToTileCoords(i.pos.x-o.tilewidth,i.pos.y-o.tileheight,qn.pull("Vector2d")).floorSelf(),r=this.pixelToTileCoords(i.pos.x+i.width+o.tilewidth,i.pos.y+i.height+o.tileheight,qn.pull("Vector2d")).ceilSelf(),s=this.tileToPixelCoords(r.x,r.y,qn.pull("Vector2d")),a=this.tileToPixelCoords(n.x,n.y,qn.pull("Vector2d"));a.x-=this.hTilewidth,a.y+=this.tileheight;var h=a.y-i.pos.y>this.hTileheight,l=i.pos.x-a.x1&&(e.height+=this.rowheight)):(e.setMinMax(0,0,this.cols*(this.tilewidth+this.sidelengthx),this.rows*this.rowheight+this.sideoffsety),e.height>1&&(e.width+=this.columnwidth)),e},e.prototype.doStaggerX=function(t){return this.staggerX&&1&t^this.staggerEven},e.prototype.doStaggerY=function(t){return!this.staggerX&&1&t^this.staggerEven},e.prototype.topLeft=function(t,e,i){var o=i||new Kn;return this.staggerX?1&t^this.staggerEven?o.set(t-1,e):o.set(t-1,e-1):1&e^this.staggerEven?o.set(t,e-1):o.set(t-1,e-1),o},e.prototype.topRight=function(t,e,i){var o=i||new Kn;return this.staggerX?1&t^this.staggerEven?o.set(t+1,e):o.set(t+1,e-1):1&e^this.staggerEven?o.set(t+1,e-1):o.set(t,e-1),o},e.prototype.bottomLeft=function(t,e,i){var o=i||new Kn;return this.staggerX?1&t^this.staggerEven?o.set(t-1,e+1):o.set(t-1,e):1&e^this.staggerEven?o.set(t,e+1):o.set(t-1,e+1),o},e.prototype.bottomRight=function(t,e,i){var o=i||new Kn;return this.staggerX?1&t^this.staggerEven?o.set(t+1,e+1):o.set(t+1,e):1&e^this.staggerEven?o.set(t+1,e+1):o.set(t,e+1),o},e.prototype.pixelToTileCoords=function(t,e,i){var o=i||new Kn;this.staggerX?t-=this.staggerEven?this.tilewidth:this.sideoffsetx:e-=this.staggerEven?this.tileheight:this.sideoffsety;var n,r,s,a,h=qn.pull("Vector2d",Math.floor(t/(2*this.columnwidth)),Math.floor(e/(2*this.rowheight))),l=qn.pull("Vector2d",t-h.x*(2*this.columnwidth),e-h.y*(2*this.rowheight));this.staggerX?(h.x=2*h.x,this.staggerEven&&++h.x):(h.y=2*h.y,this.staggerEven&&++h.y),this.staggerX?(s=(n=this.sidelengthx/2)+this.columnwidth,a=this.tileheight/2,this.centers[0].set(n,a),this.centers[1].set(s,a-this.rowheight),this.centers[2].set(s,a+this.rowheight),this.centers[3].set(s+this.columnwidth,a)):(r=this.sidelengthy/2,s=this.tilewidth/2,a=r+this.rowheight,this.centers[0].set(s,r),this.centers[1].set(s-this.columnwidth,a),this.centers[2].set(s+this.columnwidth,a),this.centers[3].set(s,a+this.rowheight));for(var u=0,c=Number.MAX_VALUE,p=0;p<4;++p){var d=this.centers[p].sub(l).length2();da.y&&(s=this.topLeft(s.x,s.y,s)),-this.sideoffsety+h>a.y&&(s=this.topRight(s.x,s.y,s)),this.sideoffsety+h0;var h=t.tileoffset;h&&(this.tileoffset.x=+h.x,this.tileoffset.y=+h.y);var l=t.tileproperties;if(l)for(e in l)l.hasOwnProperty(e)&&this.setTileProperty(+e+this.firstgid,l[e]);if(!1===this.isCollection){if(this.image=cc.getImage(t.image),!this.image)throw new Error("melonJS: '"+t.image+"' file for tileset '"+this.name+"' not found!");this.texture=Vc.cache.get(this.image,{framewidth:this.tilewidth,frameheight:this.tileheight,margin:this.margin,spacing:this.spacing}),this.atlas=this.texture.getAtlas();var u=+t.columns||Math.round(this.image.width/(this.tilewidth+this.spacing)),c=Math.round(this.image.height/(this.tileheight+this.spacing));t.tilecount%u>0&&++c,this.lastgid=this.firstgid+(u*c-1||0),t.tilecount&&this.lastgid-this.firstgid+1!=+t.tilecount&&console.warn("Computed tilecount ("+(this.lastgid-this.firstgid+1)+") does not match expected tilecount ("+t.tilecount+")")}};Vu.prototype.getTileImage=function(t){return this.imageCollection[t]},Vu.prototype.setTileProperty=function(t,e){this.TileProperties[t]=e},Vu.prototype.contains=function(t){return t>=this.firstgid&&t<=this.lastgid},Vu.prototype.getViewTileId=function(t){var e=t-this.firstgid;return this.animations.has(e)?this.animations.get(e).cur.tileid:e},Vu.prototype.getTileProperties=function(t){return this.TileProperties[t]},Vu.prototype.update=function(t){var e=0,i=Kc.getTime(),o=!1;return this._lastUpdate!==i&&(this._lastUpdate=i,this.animations.forEach((function(i){for(i.dt+=t,e=i.cur.duration;i.dt>=e;)i.dt-=e,i.idx=(i.idx+1)%i.frames.length,i.cur=i.frames[i.idx],e=i.cur.duration,o=!0}))),o},Vu.prototype.drawTile=function(t,e,i,o){if(o.flipped&&(t.save(),t.translate(e,i),t.transform(o.currentTransform),e=i=0),!0===this.isCollection)t.drawImage(this.imageCollection[o.tileId],0,0,o.width,o.height,e,i,o.width,o.height);else{var n=this.atlas[this.getViewTileId(o.tileId)].offset;t.drawImage(this.image,n.x,n.y,this.tilewidth,this.tileheight,e,i,this.tilewidth+t.uvOffset,this.tileheight+t.uvOffset)}o.flipped&&t.restore()};var ju=function(){this.tilesets=[],this.length=0};ju.prototype.add=function(t){this.tilesets.push(t),this.length++},ju.prototype.getTilesetByIndex=function(t){return this.tilesets[t]},ju.prototype.getTilesetByGid=function(t){var e=-1;t&=536870911;for(var i=0,o=this.tilesets.length;i=this.tilesets[i].firstgid&&(e=i)}if(-1!==e)return this.tilesets[e];throw new Error("no matching tileset found for gid "+t)};var Uu=function(t,e,i){this.points=void 0,this.name=e.name,this.x=+e.x,this.y=+e.y,this.z=+i,this.width=+e.width||0,this.height=+e.height||0,this.gid=+e.gid||null,this.tintcolor=e.tintcolor,this.type=e.type,this.class=void 0!==e.class?e.class:e.type,this.text=void 0,this.rotation=On(+e.rotation||0),this.id=+e.id||void 0,this.orientation=t.orientation,this.shapes=void 0,this.isEllipse=!1,this.isPoint=!1,this.isPolygon=!1,this.isPolyLine=!1,"number"==typeof this.gid?this.setTile(t.tilesets):void 0!==e.ellipse?this.isEllipse=!0:void 0!==e.point?this.isPoint=!0:void 0!==e.polygon?(this.points=e.polygon,this.isPolygon=!0):void 0!==e.polyline&&(this.points=e.polyline,this.isPolyLine=!0),void 0!==e.text?(this.text=e.text,this.text.font=e.text.fontfamily||"sans-serif",this.text.size=e.text.pixelsize||16,this.text.fillStyle=e.text.color||"#000000",this.text.textAlign=e.text.halign||"left",this.text.textBaseline=e.text.valign||"top",this.text.width=this.width,this.text.height=this.height,Su(this.text,e)):(Su(this,e),this.shapes||(this.shapes=this.parseTMXShapes())),t.isEditor||t.getRenderer().adjustPosition(this)};Uu.prototype.setTile=function(t){var e=t.getTilesetByGid(this.gid);!1===e.isCollection&&(this.width=this.framewidth=e.tilewidth,this.height=this.frameheight=e.tileheight),this.tile=new Mu(this.x,this.y,this.gid,e)},Uu.prototype.parseTMXShapes=function(){var t=0,e=[];if(!0===this.isEllipse)e.push(qn.pull("Ellipse",this.width/2,this.height/2,this.width,this.height).rotate(this.rotation));else if(!0===this.isPoint)e.push(qn.pull("Point",this.x,this.y));else if(!0===this.isPolygon){var i=qn.pull("Polygon",0,0,this.points);if(!1===i.isConvex())throw new Error("collision polygones in Tiled should be defined as Convex");e.push(i.rotate(this.rotation))}else if(!0===this.isPolyLine){var o,n,r=this.points,s=r.length-1;for(t=0;t0&&(e.autoSort=!0,e.autoDepth=!0,i.push(e))}return i},Xu.prototype.getLayers=function(){return this.readMapObjects(this.data),this.layers},Xu.prototype.destroy=function(){this.tilesets=void 0,this.layers.length=0,this.objectGroups.length=0,this.initialized=!1};var Hu={},Yu=[],Wu=0;function qu(t,e,i){e.container.reset(),$l.reset(),Hu[Ku.getCurrentLevelId()]&&Hu[Ku.getCurrentLevelId()].destroy(),Wu=Yu.indexOf(t),function(t,e,i,o){var n=Hu[t];Yc.resetGUID(t,n.nextobjectid),e.anchorPoint.set(0,0),n.addTo(e,i,o)}(t,e.container,e.flatten,e.setViewportBounds),Wr(Cr,t),e.onLoaded(t),i&&bu.restart()}var Ku={add:function(t,e,i){if("tmx"===t)return null==Hu[e]&&(Hu[e]=new Xu(e,cc.getTMX(e)),Yu.push(e),i&&i(),!0);throw new Error("no level loader defined for format "+t)},load:function(t,e){if(e=Object.assign({container:$l.world,onLoaded:$l.onLevelLoaded,flatten:$l.mergeGroup,setViewportBounds:!0},e||{}),void 0===Hu[t])throw new Error("level "+t+" not found");if(!(Hu[t]instanceof Xu))throw new Error("no level loader defined");return bu.isRunning()?(bu.stop(),Yc.function.defer(qu,this,t,e,!0)):qu(t,e),!0},getCurrentLevelId:function(){return Yu[Wu]},getCurrentLevel:function(){return Hu[this.getCurrentLevelId()]},reload:function(t){return this.load(this.getCurrentLevelId(),t)},next:function(t){return Wu+1=0&&this.load(Yu[Wu-1],t)},levelCount:function(){return Yu.length}},Zu={},Qu={},Ju={},$u={},tc={},ec=0,ic=0,oc=0;function nc(t){if(ic===ec){if("function"!=typeof t&&!cc.onload)throw new Error("no load callback defined");clearTimeout(oc);var e=t||cc.onload;setTimeout((function(){e(),Wr(Mr)}),300)}else oc=setTimeout((function(){nc(t)}),100)}function rc(t,e,i){Zu[t.name]=new Image,"function"==typeof e&&(Zu[t.name].onload=e),"function"==typeof i&&(Zu[t.name].onerror=i),"string"==typeof cc.crossOrigin&&(Zu[t.name].crossOrigin=cc.crossOrigin),Zu[t.name].src=t.src+cc.nocache}function sc(t,e,i){!0===vn(t.src)&&(t.src.startsWith("url(")||(t.src="url("+t.src+")"));var o=new FontFace(t.name,t.src);o.load().then((function(){document.fonts.add(o),document.body.style.fontFamily=t.name,"function"==typeof e&&e()}),(function(){"function"==typeof i&&i(t.name)}))}function ac(t,e,i){function o(e){Qu[t.name]=e,"tmx"===t.type&&Ku.add(t.type,t.name)}if(t.data)return o(t.data),void("function"==typeof e&&e());var n=new XMLHttpRequest,r=Nn(t.src);n.overrideMimeType&&("json"===r?n.overrideMimeType("application/json"):n.overrideMimeType("text/xml")),n.open("GET",t.src+cc.nocache,!0),n.withCredentials=cc.withCredentials,n.ontimeout=i,n.onreadystatechange=function(){if(4===n.readyState)if(200===n.status||0===n.status&&n.responseText){var s=null;switch(r){case"xml":case"tmx":case"tsx":if(rs.match(/msie/i)||!n.responseXML){if(!globalThis.DOMParser)throw new Error("XML file format loading not supported, use the JSON file format instead");s=(new DOMParser).parseFromString(n.responseText,"text/xml")}else s=n.responseXML;var a=Eu(s);switch(r){case"tmx":s=a.map;break;case"tsx":s=a.tilesets[0]}break;case"json":s=JSON.parse(n.responseText);break;default:throw new Error("TMX file format "+r+"not supported !")}o(s),"function"==typeof e&&e()}else"function"==typeof i&&i(t.name)},n.send()}function hc(t,e,i){var o=new XMLHttpRequest;o.overrideMimeType&&o.overrideMimeType("application/json"),o.open("GET",t.src+cc.nocache,!0),o.withCredentials=cc.withCredentials,o.ontimeout=i,o.onreadystatechange=function(){4===o.readyState&&(200===o.status||0===o.status&&o.responseText?($u[t.name]=JSON.parse(o.responseText),"function"==typeof e&&e()):"function"==typeof i&&i(t.name))},o.send()}function lc(t,e,i){var o=new XMLHttpRequest;o.open("GET",t.src+cc.nocache,!0),o.withCredentials=cc.withCredentials,o.responseType="arraybuffer",o.onerror=i,o.onload=function(){var i=o.response;if(i){for(var n=new Uint8Array(i),r=[],s=0;s0){var i=this.getAnimationFrameObjectByIndex(this.current.idx).delay;for(this.dt+=e;this.dt>=i;){this.isDirty=!0,this.dt-=i;var o=this.current.length>1?this.current.idx+1:this.current.idx;if(this.setAnimationFrame(o),0===this.current.idx&&"function"==typeof this.resetAnim&&!1===this.resetAnim()){this.setAnimationFrame(this.current.length-1),this.dt%=i;break}i=this.getAnimationFrameObjectByIndex(this.current.idx).delay}}return this._flicker.isFlickering&&(this._flicker.duration-=e,this._flicker.duration<0&&("function"==typeof this._flicker.callback&&this._flicker.callback(),this.flicker(-1)),this.isDirty=!0),t.prototype.update.call(this,e)},e.prototype.destroy=function(){qn.push(this.offset),this.offset=void 0,t.prototype.destroy.call(this)},e.prototype.draw=function(t,e){if(!this._flicker.isFlickering||(this._flicker.state=!this._flicker.state,this._flicker.state)){var i=this.current,o=this.pos.x,n=this.pos.y,r=i.width,s=i.height,a=i.offset,h=this.offset;0!==i.angle&&(t.translate(-o,-n),t.rotate(i.angle),o-=s,r=i.height,s=i.width),t.drawImage(this.image,h.x+a.x,h.y+a.y,r,s,o,n,r,s)}},e}(Ml);function dc(t,e,i,o){return void 0===i&&(i="default"),void 0===o&&(o="no-repeat"),{meta:{app:"melonJS",size:{w:t,h:e},repeat:o,image:"default"},frames:[{filename:i,frame:{x:0,y:0,w:t,h:e}}]}}var fc=function(t,e,i){var o=this;if(this.format=null,this.sources=new Map,this.atlases=new Map,void 0!==t)for(var n in t=Array.isArray(t)?t:[t]){var r=t[n];if(void 0!==r.meta){if(r.meta.app.includes("texturepacker")||r.meta.app.includes("free-tex-packer")){if(this.format="texturepacker",void 0===e){var s=cc.getImage(r.meta.image);if(!s)throw new Error("Atlas texture '"+s+"' not found");this.sources.set(r.meta.image,s)}else this.sources.set(r.meta.image||"default","string"==typeof e?cc.getImage(e):e);this.repeat="no-repeat"}else if(r.meta.app.includes("ShoeBox")){if(!r.meta.exporter||!r.meta.exporter.includes("melonJS"))throw new Error("ShoeBox requires the JSON exporter : https://github.com/melonjs/melonJS/tree/master/media/shoebox_JSON_export.sbx");this.format="ShoeBox",this.repeat="no-repeat",this.sources.set("default","string"==typeof e?cc.getImage(e):e)}else r.meta.app.includes("melonJS")&&(this.format="melonJS",this.repeat=r.meta.repeat||"no-repeat",this.sources.set("default","string"==typeof e?cc.getImage(e):e));this.atlases.set(r.meta.image||"default",this.parse(r))}else void 0!==r.framewidth&&void 0!==r.frameheight&&(this.format="Spritesheet (fixed cell size)",this.repeat="no-repeat",void 0!==e&&(r.image="string"==typeof e?cc.getImage(e):e),this.atlases.set("default",this.parseFromSpriteSheet(r)),this.sources.set("default",r.image))}if(0===this.atlases.length)throw new Error("texture atlas format not supported");!1!==i&&this.sources.forEach((function(t){i instanceof Oc?i.set(t,o):Vc.cache.set(t,o)}))};fc.prototype.parse=function(t){var e=this,i={};return t.frames.forEach((function(o){if(o.hasOwnProperty("filename")){var n,r,s=o.frame,a=o.spriteSourceSize&&o.sourceSize&&o.pivot;a&&(n=o.sourceSize.w*o.pivot.x-(o.trimmed?o.spriteSourceSize.x:0),r=o.sourceSize.h*o.pivot.y-(o.trimmed?o.spriteSourceSize.y:0)),i[o.filename]={name:o.filename,texture:t.meta.image||"default",offset:new Kn(s.x,s.y),anchorPoint:a?new Kn(n/s.w,r/s.h):null,trimmed:!!o.trimmed,width:s.w,height:s.h,angle:!0===o.rotated?-Sn:0},e.addUVs(i,o.filename,t.meta.size.w,t.meta.size.h)}})),i},fc.prototype.parseFromSpriteSheet=function(t){var e={},i=t.image,o=t.spacing||0,n=t.margin||0,r=i.width,s=i.height,a=qn.pull("Vector2d",~~((r-n+o)/(t.framewidth+o)),~~((s-n+o)/(t.frameheight+o)));if(r%(t.framewidth+o)!=0||s%(t.frameheight+o)!=0){var h=a.x*(t.framewidth+o),l=a.y*(t.frameheight+o);h-r!==o&&l-s!==o&&(r=h,s=l,console.warn("Spritesheet Texture for image: "+i.src+" is not divisible by "+(t.framewidth+o)+"x"+(t.frameheight+o)+", truncating effective size to "+r+"x"+s))}for(var u=0,c=a.x*a.y;u0&&n[n.length-1])||6!==r[0]&&2!==r[0])){s=0;continue}if(3===r[0]&&(!n||r[1]>n[0]&&r[1]=t.length&&(t=void 0),{value:t&&t[o++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")},_c=e&&e.__read||function(t,e){var i="function"==typeof Symbol&&t[Symbol.iterator];if(!i)return t;var o,n,r=i.call(t),s=[];try{for(;(void 0===e||e-- >0)&&!(o=r.next()).done;)s.push(o.value)}catch(t){n={error:t}}finally{try{o&&!o.done&&(i=r.return)&&i.call(r)}finally{if(n)throw n.error}}return s};Object.defineProperty(vc,"__esModule",{value:!0}),vc.Multimap=void 0;var bc=function(){function t(t,e){var i,o;if(this.size_=0,this.map=new Map,this.operator=t,e)try{for(var n=xc(e),r=n.next();!r.done;r=n.next()){var s=_c(r.value,2),a=s[0],h=s[1];this.put(a,h)}}catch(t){i={error:t}}finally{try{r&&!r.done&&(o=n.return)&&o.call(n)}finally{if(i)throw i.error}}return this}return Object.defineProperty(t.prototype,"size",{get:function(){return this.size_},enumerable:!1,configurable:!0}),t.prototype.get=function(t){var e=this.map.get(t);return e?this.operator.clone(e):this.operator.create()},t.prototype.put=function(t,e){var i=this.map.get(t);return i||(i=this.operator.create()),!!this.operator.add(e,i)&&(this.map.set(t,i),this.size_++,!0)},t.prototype.putAll=function(e,i){var o,n,r,s,a=0;if(i){var h=e,l=i;try{for(var u=xc(l),c=u.next();!c.done;c=u.next()){var p=c.value;this.put(h,p),a++}}catch(t){o={error:t}}finally{try{c&&!c.done&&(n=u.return)&&n.call(u)}finally{if(o)throw o.error}}}else{if(!(e instanceof t))throw new TypeError("unexpected arguments");try{for(var d=xc(e.entries()),f=d.next();!f.done;f=d.next()){var y=_c(f.value,2);h=y[0],p=y[1];this.put(h,p),a++}}catch(t){r={error:t}}finally{try{f&&!f.done&&(s=d.return)&&s.call(d)}finally{if(r)throw r.error}}}return a>0},t.prototype.has=function(t){return this.map.has(t)},t.prototype.hasEntry=function(t,e){return this.operator.has(e,this.get(t))},t.prototype.delete=function(t){return this.size_-=this.operator.size(this.get(t)),this.map.delete(t)},t.prototype.deleteEntry=function(t,e){var i=this.get(t);return!!this.operator.delete(e,i)&&(this.map.set(t,i),this.size_--,!0)},t.prototype.clear=function(){this.map.clear(),this.size_=0},t.prototype.keys=function(){return this.map.keys()},t.prototype.entries=function(){var t=this;return function(){var e,i,o,n,r,s,a,h,l,u,c,p,d,f;return mc(this,(function(y){switch(y.label){case 0:y.trys.push([0,11,12,13]),e=xc(t.map.entries()),i=e.next(),y.label=1;case 1:if(i.done)return[3,10];o=_c(i.value,2),n=o[0],r=o[1],y.label=2;case 2:y.trys.push([2,7,8,9]),d=void 0,s=xc(r),a=s.next(),y.label=3;case 3:return a.done?[3,6]:(h=a.value,[4,[n,h]]);case 4:y.sent(),y.label=5;case 5:return a=s.next(),[3,3];case 6:return[3,9];case 7:return l=y.sent(),d={error:l},[3,9];case 8:try{a&&!a.done&&(f=s.return)&&f.call(s)}finally{if(d)throw d.error}return[7];case 9:return i=e.next(),[3,1];case 10:return[3,13];case 11:return u=y.sent(),c={error:u},[3,13];case 12:try{i&&!i.done&&(p=e.return)&&p.call(e)}finally{if(c)throw c.error}return[7];case 13:return[2]}}))}()},t.prototype.values=function(){var t=this;return function(){var e,i,o,n,r,s;return mc(this,(function(a){switch(a.label){case 0:a.trys.push([0,5,6,7]),e=xc(t.entries()),i=e.next(),a.label=1;case 1:return i.done?[3,4]:(o=_c(i.value,2),[4,o[1]]);case 2:a.sent(),a.label=3;case 3:return i=e.next(),[3,1];case 4:return[3,7];case 5:return n=a.sent(),r={error:n},[3,7];case 6:try{i&&!i.done&&(s=e.return)&&s.call(e)}finally{if(r)throw r.error}return[7];case 7:return[2]}}))}()},t.prototype.forEach=function(t,e){var i,o;try{for(var n=xc(this.entries()),r=n.next();!r.done;r=n.next()){var s=_c(r.value,2),a=s[0],h=s[1];t.call(void 0===e?this:e,h,a,this)}}catch(t){i={error:t}}finally{try{r&&!r.done&&(o=n.return)&&o.call(n)}finally{if(i)throw i.error}}},t.prototype[Symbol.iterator]=function(){return this.entries()},t.prototype.asMap=function(){var t,e,i=new Map;try{for(var o=xc(this.keys()),n=o.next();!n.done;n=o.next()){var r=n.value;i.set(r,this.operator.clone(this.get(r)))}}catch(e){t={error:e}}finally{try{n&&!n.done&&(e=o.return)&&e.call(o)}finally{if(t)throw t.error}}return i},t}();vc.Multimap=bc;var wc,Tc=e&&e.__extends||(wc=function(t,e){return wc=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])},wc(t,e)},function(t,e){function i(){this.constructor=t}wc(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)});Object.defineProperty(gc,"__esModule",{value:!0}),gc.ArrayMultimap=void 0;var Ac=function(t){function e(e){return t.call(this,new Ec,e)||this}return Tc(e,t),Object.defineProperty(e.prototype,Symbol.toStringTag,{get:function(){return"ArrayMultimap"},enumerable:!1,configurable:!0}),e}(vc.Multimap);gc.ArrayMultimap=Ac;var Ec=function(){function t(){}return t.prototype.create=function(){return[]},t.prototype.clone=function(t){return t.slice()},t.prototype.add=function(t,e){return e.push(t),!0},t.prototype.size=function(t){return t.length},t.prototype.delete=function(t,e){var i=e.indexOf(t);return i>-1&&(e.splice(i,1),!0)},t.prototype.has=function(t,e){return e.includes(t)},t}(),Sc={},Cc=e&&e.__extends||function(){var t=function(e,i){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])},t(e,i)};return function(e,i){function o(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(o.prototype=i.prototype,new o)}}();Object.defineProperty(Sc,"__esModule",{value:!0}),Sc.SetMultimap=void 0;var Mc=function(t){function e(e){return t.call(this,new Pc,e)||this}return Cc(e,t),Object.defineProperty(e.prototype,Symbol.toStringTag,{get:function(){return"SetMultimap"},enumerable:!1,configurable:!0}),e}(vc.Multimap);Sc.SetMultimap=Mc;var Pc=function(){function t(){}return t.prototype.create=function(){return new Set},t.prototype.clone=function(t){return new Set(t)},t.prototype.add=function(t,e){var i=e.size;return e.add(t),i!==e.size},t.prototype.size=function(t){return t.size},t.prototype.delete=function(t,e){return e.delete(t)},t.prototype.has=function(t,e){return e.has(t)},t}();!function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.SetMultimap=t.ArrayMultimap=void 0;var e=gc;Object.defineProperty(t,"ArrayMultimap",{enumerable:!0,get:function(){return e.ArrayMultimap}});var i=Sc;Object.defineProperty(t,"SetMultimap",{enumerable:!0,get:function(){return i.SetMultimap}})}(yc);var Oc=function(t){this.cache=new yc.ArrayMultimap,this.tinted=new Map,this.units=new Map,this.max_size=t||1/0,this.clear()};Oc.prototype.clear=function(){this.cache.clear(),this.tinted.clear(),this.units.clear(),this.length=0},Oc.prototype.validate=function(){if(this.length>=this.max_size)throw new Error("Texture cache overflow: "+this.max_size+" texture units available for this GPU.")},Oc.prototype.get=function(t,e){var i;return void 0===e?i=this.cache.get(t)[0]:this.cache.forEach((function(o,n){var r=o.getAtlas();n===t&&r[0].width===e.framewidth&&r[0].height===e.frameheight&&(i=o)})),void 0===i&&(e||(e=dc(t.width,t.height,t.src?Un(t.src):void 0)),i=new fc(e,t,!1),this.set(t,i)),i},Oc.prototype.delete=function(t){this.cache.has(t)||this.cache.delete(t)},Oc.prototype.tint=function(t,e){var i=this.tinted.get(t);return void 0===i&&(i=this.tinted.set(t,new Map)),i.has(e)||i.set(e,Vc.tint(t,e,"multiply")),i.get(e)},Oc.prototype.set=function(t,e){var i=t.width,o=t.height;if(!(1!==Vc.WebGLVersion||Mn(i)&&Mn(o))){var n=void 0!==t.src?t.src:t;console.warn("[Texture] "+n+" is not a POT texture ("+i+"x"+o+")")}return this.cache.put(t,e)},Oc.prototype.getUnit=function(t){return this.units.has(t)||(this.validate(),this.units.set(t,this.length++)),this.units.get(t)};var Ic=function(t){function e(e){var i=this;t.call(this,e),this.WebGLVersion=1,this.GPUVendor=null,this.GPURenderer=null,this.context=this.gl=this.getContextGL(this.getCanvas(),e.transparent),this.maxTextures=this.gl.getParameter(this.gl.MAX_TEXTURE_IMAGE_UNITS),this._colorStack=[],this._matrixStack=[],this._scissorStack=[],this._blendStack=[],this.currentTransform=new hr,this.currentCompositor=null,this.compositors=new Map;var o=new(this.settings.compositor||ga)(this);this.compositors.set("default",o),this.setCompositor(o),this.gl.disable(this.gl.DEPTH_TEST),this.gl.disable(this.gl.SCISSOR_TEST),this.gl.enable(this.gl.BLEND),this.setBlendMode(this.settings.blendMode);var n=this.gl.getExtension("WEBGL_debug_renderer_info");null!==n&&(this.GPUVendor=this.gl.getParameter(n.UNMASKED_VENDOR_WEBGL),this.GPURenderer=this.gl.getParameter(n.UNMASKED_RENDERER_WEBGL)),this.cache=new Oc(this.maxTextures),this.getCanvas().addEventListener("webglcontextlost",(function(t){t.preventDefault(),i.isContextValid=!1,Wr(Hr,i)}),!1),this.getCanvas().addEventListener("webglcontextrestored",(function(){i.reset(),i.isContextValid=!0,Wr(Yr,i)}),!1)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.reset=function(){var e=this;t.prototype.reset.call(this),this.compositors.forEach((function(t){!1===e.isContextValid?t.init(e):t.reset()})),this.gl.disable(this.gl.SCISSOR_TEST),void 0!==this.fontContext2D&&this.createFontTexture(this.cache)},e.prototype.setCompositor=function(t){if(void 0===t&&(t="default"),"string"==typeof t&&(t=this.compositors.get(t)),void 0===t)throw new Error("Invalid WebGL Compositor");this.currentCompositor!==t&&(null!==this.currentCompositor&&this.currentCompositor.flush(),this.currentCompositor=t)},e.prototype.resetTransform=function(){this.currentTransform.identity()},e.prototype.createFontTexture=function(t){if(void 0===this.fontTexture){var e=this.getCanvas(),i=e.width,o=e.height;1===this.WebGLVersion&&(Mn(i)||(i=Pn(e.width)),Mn(o)||(o=Pn(e.height)));var n=jc(i,o,!0);this.fontContext2D=this.getContext2d(n),this.fontTexture=new fc(dc(e.width,e.height,"fontTexture"),n,t),this.currentCompositor.uploadTexture(this.fontTexture,0,0,0)}else t.set(this.fontContext2D.canvas,this.fontTexture)},e.prototype.createPattern=function(t,e){if(!(1!==Vc.WebGLVersion||Mn(t.width)&&Mn(t.height))){var i=void 0!==t.src?t.src:t;throw new Error("[WebGL Renderer] "+i+" is not a POT texture ("+t.width+"x"+t.height+")")}var o=new fc(dc(t.width,t.height,"pattern",e),t);return this.currentCompositor.uploadTexture(o),o},e.prototype.flush=function(){this.currentCompositor.flush()},e.prototype.setProjection=function(e){t.prototype.setProjection.call(this,e),this.currentCompositor.setProjection(e)},e.prototype.clear=function(){this.currentCompositor.clear(this.settings.transparent?0:1)},e.prototype.clearColor=function(t,e){var i;if(void 0===t&&(t="#000000"),void 0===e&&(e=!1),t instanceof nr)i=t.toArray();else{var o=qn.pull("me.Color");i=o.parseCSS(t).toArray(),qn.push(o)}this.currentCompositor.clearColor(i[0],i[1],i[2],!0===e?1:i[3])},e.prototype.clearRect=function(t,e,i,o){this.save(),this.clipRect(t,e,i,o),this.clearColor(),this.restore()},e.prototype.drawFont=function(t){var e=this.getFontContext();this.currentCompositor.uploadTexture(this.fontTexture,0,0,0,!0);var i=this.fontTexture.getUVs(t.left+","+t.top+","+t.width+","+t.height);this.currentCompositor.addQuad(this.fontTexture,t.left,t.top,t.width,t.height,i[0],i[1],i[2],i[3],this.currentTint.toUint32(this.getGlobalAlpha())),e.clearRect(t.left,t.top,t.width,t.height)},e.prototype.drawImage=function(t,e,i,o,n,r,s,a,h){void 0===o?(o=a=t.width,n=h=t.height,r=e,s=i,e=0,i=0):void 0===r&&(r=e,s=i,a=o,h=n,o=t.width,n=t.height,e=0,i=0),!1===this.settings.subPixel&&(r|=0,s|=0);var l=this.cache.get(t),u=l.getUVs(e+","+i+","+o+","+n);this.currentCompositor.addQuad(l,r,s,a,h,u[0],u[1],u[2],u[3],this.currentTint.toUint32(this.getGlobalAlpha()))},e.prototype.drawPattern=function(t,e,i,o,n){var r=t.getUVs("0,0,"+o+","+n);this.currentCompositor.addQuad(t,e,i,o,n,r[0],r[1],r[2],r[3],this.currentTint.toUint32(this.getGlobalAlpha()))},e.prototype.getContextGL=function(t,e){if(void 0===e&&(e=!1),null==t)throw new Error("You must pass a canvas element in order to create a GL context");var i,o={alpha:e,antialias:this.settings.antiAlias,depth:!1,stencil:!0,preserveDrawingBuffer:!1,premultipliedAlpha:!!e&&this.settings.premultipliedAlpha,powerPreference:this.settings.powerPreference,failIfMajorPerformanceCaveat:this.settings.failIfMajorPerformanceCaveat};if(!1===this.settings.preferWebGL1&&(i=t.getContext("webgl2",o))&&(this.WebGLVersion=2),i||(this.WebGLVersion=1,i=t.getContext("webgl",o)||t.getContext("experimental-webgl",o)),!i)throw new Error("A WebGL context could not be created.");return i},e.prototype.getContext=function(){return this.gl},e.prototype.setBlendMode=function(t,e){if(void 0===t&&(t="normal"),void 0===e&&(e=this.gl),this.currentBlendMode!==t)switch(this.flush(),e.enable(e.BLEND),this.currentBlendMode=t,t){case"screen":e.blendFunc(e.ONE,e.ONE_MINUS_SRC_COLOR);break;case"lighter":case"additive":e.blendFunc(e.ONE,e.ONE);break;case"multiply":e.blendFunc(e.DST_COLOR,e.ONE_MINUS_SRC_ALPHA);break;default:e.blendFunc(e.ONE,e.ONE_MINUS_SRC_ALPHA),this.currentBlendMode="normal"}},e.prototype.getFontContext=function(){return void 0===this.fontContext2D&&(console.warn("[WebGL Renderer] WARNING : Using Standard me.Text with WebGL will severly impact performances !"),this.createFontTexture(this.cache)),this.fontContext2D},e.prototype.restore=function(){if(0!==this._matrixStack.length){var t=this._colorStack.pop(),e=this._matrixStack.pop();this.currentColor.copy(t),this.currentTransform.copy(e),this.setBlendMode(this._blendStack.pop()),qn.push(t),qn.push(e)}0!==this._scissorStack.length?this.currentScissor.set(this._scissorStack.pop()):(this.gl.disable(this.gl.SCISSOR_TEST),this.currentScissor[0]=0,this.currentScissor[1]=0,this.currentScissor[2]=this.getCanvas().width,this.currentScissor[3]=this.getCanvas().height)},e.prototype.save=function(){this._colorStack.push(this.currentColor.clone()),this._matrixStack.push(this.currentTransform.clone()),this.gl.isEnabled(this.gl.SCISSOR_TEST)&&this._scissorStack.push(this.currentScissor.slice()),this._blendStack.push(this.getBlendMode())},e.prototype.rotate=function(t){this.currentTransform.rotate(t)},e.prototype.scale=function(t,e){this.currentTransform.scale(t,e)},e.prototype.setAntiAlias=function(e,i){t.prototype.setAntiAlias.call(this,e,i)},e.prototype.setGlobalAlpha=function(t){this.currentColor.alpha=t},e.prototype.getGlobalAlpha=function(){return this.currentColor.alpha},e.prototype.setColor=function(t){var e=this.currentColor.alpha;this.currentColor.copy(t),this.currentColor.alpha*=e},e.prototype.setLineWidth=function(t){this.getContext().lineWidth(t)},e.prototype.strokeArc=function(t,e,i,o,n,r,s){void 0===r&&(r=!1),void 0===s&&(s=!1),this.getGlobalAlpha()<1/255||(this.path2D.beginPath(),this.path2D.arc(t,e,i,o,n,r),!1===s?this.currentCompositor.drawVertices(this.gl.LINE_STRIP,this.path2D.points):(this.path2D.closePath(),this.currentCompositor.drawVertices(this.gl.TRIANGLES,this.path2D.triangulatePath())))},e.prototype.fillArc=function(t,e,i,o,n,r){void 0===r&&(r=!1),this.strokeArc(t,e,i,o,n,r,!0)},e.prototype.strokeEllipse=function(t,e,i,o,n){void 0===n&&(n=!1),this.getGlobalAlpha()<1/255||(this.path2D.beginPath(),this.path2D.ellipse(t,e,i,o,0,0,360),this.path2D.closePath(),!1===n?this.currentCompositor.drawVertices(this.gl.LINE_LOOP,this.path2D.points):this.currentCompositor.drawVertices(this.gl.TRIANGLES,this.path2D.triangulatePath()))},e.prototype.fillEllipse=function(t,e,i,o){this.strokeEllipse(t,e,i,o,!1)},e.prototype.strokeLine=function(t,e,i,o){this.getGlobalAlpha()<1/255||(this.path2D.beginPath(),this.path2D.moveTo(t,e),this.path2D.lineTo(i,o),this.currentCompositor.drawVertices(this.gl.LINE_STRIP,this.path2D.points))},e.prototype.fillLine=function(t,e,i,o){this.strokeLine(t,e,i,o)},e.prototype.strokePolygon=function(t,e){if(void 0===e&&(e=!1),!(this.getGlobalAlpha()<1/255)){var i;this.translate(t.pos.x,t.pos.y),this.path2D.beginPath(),this.path2D.moveTo(t.points[0].x,t.points[0].y);for(var o=1;o0&&(this.flush(),this.maskLevel=0,this.gl.disable(this.gl.STENCIL_TEST))},e}($a),kc=1,Rc=0,Bc=0,Dc={parent:void 0,renderer:2,autoScale:!1,scale:1,scaleMethod:"manual",transparent:!1,premultipliedAlpha:!0,blendMode:"normal",antiAlias:!1,failIfMajorPerformanceCaveat:!0,subPixel:!1,preferWebGL1:!1,powerPreference:"default",verbose:!1,consoleHeader:!0};function Lc(){var t=Vc.settings,e=1,i=1;if(t.autoScale){var o=1/0,n=1/0;if(globalThis.getComputedStyle){var r=globalThis.getComputedStyle(Vc.getCanvas(),null);o=parseInt(r.maxWidth,10)||1/0,n=parseInt(r.maxHeight,10)||1/0}var s=na(Uc()),a=Math.min(o,s.width),h=Math.min(n,s.height),l=a/h;if("fill-min"===t.scaleMethod&&l>kc||"fill-max"===t.scaleMethod&&lkc||"flex-height"===t.scaleMethod){var c=Math.min(n,Rc*(h/a));e=i=h/c,Vc.resize(Rc,Math.floor(c))}else"flex"===t.scaleMethod?Vc.resize(Math.floor(a),Math.floor(h)):"stretch"===t.scaleMethod?(e=a/Rc,i=h/Bc):e=i=l0;)o[n]=arguments[n+3];return this.timers.push({fn:t,delay:e,elapsed:0,repeat:!1,timerId:++this.timerId,pauseable:!0===i||!0,args:o}),this.timerId},Wc.prototype.setInterval=function(t,e,i){for(var o=[],n=arguments.length-3;n-- >0;)o[n]=arguments[n+3];return this.timers.push({fn:t,delay:e,elapsed:0,repeat:!0,timerId:++this.timerId,pauseable:!0===i||!0,args:o}),this.timerId},Wc.prototype.clearTimeout=function(t){Yc.function.defer(this.clearTimer.bind(this),this,t)},Wc.prototype.clearInterval=function(t){Yc.function.defer(this.clearTimer.bind(this),this,t)},Wc.prototype.getTime=function(){return this.now},Wc.prototype.getDelta=function(){return this.delta},Wc.prototype.countFPS=function(){this.framecount++,this.framedelta+=this.delta,this.framecount%10==0&&(this.fps=In(Math.round(1e3*this.framecount/this.framedelta),0,this.maxfps),this.framedelta=0,this.framecount=0)},Wc.prototype.update=function(t){this.last=this.now,this.now=t,this.delta=this.now-this.last,this.delta<0&&(this.delta=0),this.tick=this.delta>this.minstep&&this.interpolation?this.delta/this.step:1,this.updateTimers()},Wc.prototype.clearTimer=function(t){for(var e=0,i=this.timers.length;e=i.delay&&(i.fn.apply(null,i.args),!0===i.repeat?i.elapsed-=i.delay:this.clearTimeout(i.timerId))}};var qc,Kc=new Wc,Zc=0,Qc=["ms","moz","webkit","o"],Jc=globalThis.requestAnimationFrame,$c=globalThis.cancelAnimationFrame;for(qc=0;qc2&&(i=Array.prototype.slice.call(arguments,1)),i[0]=t;var o=new(t.bind.apply(t,i));if(void 0===o||!(o instanceof ep.Base))throw new Error("Plugin should extend the me.plugin.Base Class !");if(Yc.checkVersion(o.version)>0)throw new Error("Plugin version mismatch, expected: "+o.version+", got: "+zp);tp[e]=o}},ip={Linear:{None:function(t){return t}},Quadratic:{In:function(t){return t*t},Out:function(t){return t*(2-t)},InOut:function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)}},Cubic:{In:function(t){return t*t*t},Out:function(t){return--t*t*t+1},InOut:function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)}},Quartic:{In:function(t){return t*t*t*t},Out:function(t){return 1- --t*t*t*t},InOut:function(t){return(t*=2)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)}},Quintic:{In:function(t){return t*t*t*t*t},Out:function(t){return--t*t*t*t*t+1},InOut:function(t){return(t*=2)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)}},Sinusoidal:{In:function(t){return 1-Math.cos(t*Math.PI/2)},Out:function(t){return Math.sin(t*Math.PI/2)},InOut:function(t){return.5*(1-Math.cos(Math.PI*t))}},Exponential:{In:function(t){return 0===t?0:Math.pow(1024,t-1)},Out:function(t){return 1===t?1:1-Math.pow(2,-10*t)},InOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(2-Math.pow(2,-10*(t-1)))}},Circular:{In:function(t){return 1-Math.sqrt(1-t*t)},Out:function(t){return Math.sqrt(1- --t*t)},InOut:function(t){return(t*=2)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)}},Elastic:{In:function(t){return 0===t?0:1===t?1:-Math.pow(2,10*(t-1))*Math.sin(5*(t-1.1)*Math.PI)},Out:function(t){return 0===t?0:1===t?1:Math.pow(2,-10*t)*Math.sin(5*(t-.1)*Math.PI)+1},InOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?-.5*Math.pow(2,10*(t-1))*Math.sin(5*(t-1.1)*Math.PI):.5*Math.pow(2,-10*(t-1))*Math.sin(5*(t-1.1)*Math.PI)+1}},Back:{In:function(t){var e=1.70158;return t*t*((e+1)*t-e)},Out:function(t){var e=1.70158;return--t*t*((e+1)*t+e)+1},InOut:function(t){var e=2.5949095;return(t*=2)<1?t*t*((e+1)*t-e)*.5:.5*((t-=2)*t*((e+1)*t+e)+2)}},Bounce:{In:function(t){return 1-ip.Bounce.Out(1-t)},Out:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},InOut:function(t){return t<.5?.5*ip.Bounce.In(2*t):.5*ip.Bounce.Out(2*t-1)+.5}}},op={Linear:function(t,e){var i=t.length-1,o=i*e,n=Math.floor(o),r=op.Utils.Linear;return e<0?r(t[0],t[1],o):e>1?r(t[i],t[i-1],i-o):r(t[n],t[n+1>i?i:n+1],o-n)},Bezier:function(t,e){var i,o=0,n=t.length-1,r=Math.pow,s=op.Utils.Bernstein;for(i=0;i<=n;i++)o+=r(1-e,n-i)*r(e,i)*t[i]*s(n,i);return o},CatmullRom:function(t,e){var i=t.length-1,o=i*e,n=Math.floor(o),r=op.Utils.CatmullRom;return t[0]===t[i]?(e<0&&(n=Math.floor(o=i*(1+e))),r(t[(n-1+i)%i],t[n],t[(n+1)%i],t[(n+2)%i],o-n)):e<0?t[0]-(r(t[0],t[0],t[1],t[1],-o)-t[0]):e>1?t[i]-(r(t[i],t[i],t[i-1],t[i-1],o-i)-t[i]):r(t[n?n-1:0],t[n],t[i1;i--)o*=i;return t[e]=o,o}}(),CatmullRom:function(t,e,i,o,n){var r=.5*(i-t),s=.5*(o-e),a=n*n;return(2*e-2*i+r+s)*(n*a)+(-3*e+3*i-2*r-s)*a+r*n+e}}},np=function(t){this.setProperties(t)},rp={Easing:{configurable:!0},Interpolation:{configurable:!0}};np.prototype.onResetEvent=function(t){this.setProperties(t)},np.prototype.setProperties=function(t){for(var e in this._object=t,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._repeat=0,this._yoyo=!1,this._reversed=!1,this._delayTime=0,this._startTime=null,this._easingFunction=ip.Linear.None,this._interpolationFunction=op.Linear,this._chainedTweens=[],this._onStartCallback=null,this._onStartCallbackFired=!1,this._onUpdateCallback=null,this._onCompleteCallback=null,this._tweenTimeTracker=$l.lastUpdate,this.isPersistent=!1,this.updateWhenPaused=!1,this.isRenderable=!1,t)"object"!=typeof t&&(this._valuesStart[e]=parseFloat(t[e]))},np.prototype._resumeCallback=function(t){this._startTime&&(this._startTime+=t)},np.prototype.onActivateEvent=function(){qr(yr,this._resumeCallback,this)},np.prototype.onDeactivateEvent=function(){Zr(yr,this._resumeCallback)},np.prototype.to=function(t,e){return this._valuesEnd=t,void 0!==e&&("number"==typeof e?this._duration=e:"object"==typeof e&&(e.duration&&(this._duration=e.duration),e.yoyo&&this.yoyo(e.yoyo),e.easing&&this.easing(e.easing),e.repeat&&this.repeat(e.repeat),e.delay&&this.delay(e.delay),e.interpolation&&this.interpolation(e.interpolation),e.autoStart&&this.start())),this},np.prototype.start=function(t){for(var e in void 0===t&&(t=Kc.getTime()),this._onStartCallbackFired=!1,$l.world.addChild(this),this._startTime=t+this._delayTime,this._valuesEnd){if(this._valuesEnd[e]instanceof Array){if(0===this._valuesEnd[e].length)continue;this._valuesEnd[e]=[this._object[e]].concat(this._valuesEnd[e])}this._valuesStart[e]=this._object[e],this._valuesStart[e]instanceof Array==!1&&(this._valuesStart[e]*=1),this._valuesStartRepeat[e]=this._valuesStart[e]||0}return this},np.prototype.stop=function(){return $l.world.removeChildNow(this),this},np.prototype.delay=function(t){return this._delayTime=t,this},np.prototype.repeat=function(t){return this._repeat=t,this},np.prototype.yoyo=function(t){return this._yoyo=t,this},np.prototype.easing=function(t){if("function"!=typeof t)throw new Error("invalid easing function for me.Tween.easing()");return this._easingFunction=t,this},np.prototype.interpolation=function(t){return this._interpolationFunction=t,this},np.prototype.chain=function(){return this._chainedTweens=arguments,this},np.prototype.onStart=function(t){return this._onStartCallback=t,this},np.prototype.onUpdate=function(t){return this._onUpdateCallback=t,this},np.prototype.onComplete=function(t){return this._onCompleteCallback=t,this},np.prototype.update=function(t){this._tweenTimeTracker=$l.lastUpdate>this._tweenTimeTracker?$l.lastUpdate:this._tweenTimeTracker+t;var e,i=this._tweenTimeTracker;if(i1?1:o;var n=this._easingFunction(o);for(e in this._valuesEnd){var r=this._valuesStart[e]||0,s=this._valuesEnd[e];s instanceof Array?this._object[e]=this._interpolationFunction(s,n):("string"==typeof s&&(s=r+parseFloat(s)),"number"==typeof s&&(this._object[e]=r+(s-r)*n))}if(null!==this._onUpdateCallback&&this._onUpdateCallback.call(this._object,n),1===o){if(this._repeat>0){for(e in isFinite(this._repeat)&&this._repeat--,this._valuesStartRepeat){if("string"==typeof this._valuesEnd[e]&&(this._valuesStartRepeat[e]=this._valuesStartRepeat[e]+parseFloat(this._valuesEnd[e])),this._yoyo){var a=this._valuesStartRepeat[e];this._valuesStartRepeat[e]=this._valuesEnd[e],this._valuesEnd[e]=a}this._valuesStart[e]=this._valuesStartRepeat[e]}return this._yoyo&&(this._reversed=!this._reversed),this._startTime=i+this._delayTime,!0}$l.world.removeChildNow(this),null!==this._onCompleteCallback&&this._onCompleteCallback.call(this._object);for(var h=0,l=this._chainedTweens.length;h0&&this.wordWrapWidth>0&&(this._text=this.metrics.wordWrap(this._text,this.wordWrapWidth,dp(Vc,this))),e.addBounds(this.metrics.measureText(this._text,dp(Vc,this)),!0),!0===this.offScreenCanvas){var i=Math.ceil(this.metrics.width),o=Math.ceil(this.metrics.height);Vc instanceof Ic&&(this.glTextureUnit=Vc.cache.getUnit(Vc.cache.get(this.canvasTexture.canvas)),Vc.currentCompositor.unbindTexture2D(null,this.glTextureUnit),1===Vc.WebGLVersion&&(i=Pn(this.metrics.width),o=Pn(this.metrics.height))),(this.canvasTexture.width0&&this.wordWrapWidth>0&&(this._text=this.metrics.wordWrap(this._text,this.wordWrapWidth)),this.getBounds().addBounds(this.metrics.measureText(this._text),!0),this},i.fillStyle.get=function(){return this.tint},i.fillStyle.set=function(t){t instanceof nr?this.tint.copy(t):this.tint.parseCSS(t)},e.prototype.resize=function(t){return this.fontScale.set(t,t),this.getBounds().addBounds(this.metrics.measureText(this._text),!0),this.isDirty=!0,this},e.prototype.measureText=function(t){return void 0===t&&(t=this._text),this.metrics.measureText(t)},e.prototype.draw=function(t,e,i,o){var n=t.globalAlpha();void 0===this.ancestor?(this.setText(e),t.setGlobalAlpha(n*this.getOpacity())):(i=this.pos.x,o=this.pos.y);for(var r=i,s=this.metrics.lineHeight(),a=0,h=0;h>>9];if(e)return e[511&t]||0}return 0},gp.prototype.setKerning=function(t,e){this.kerning||(this.kerning={});var i=this.kerning[t>>>9];void 0===i&&(this.kerning[t>>>9]={},i=this.kerning[t>>>9]),i[511&t]=e};var vp=["M","N","B","D","C","E","F","K","A","G","H","I","J","L","O","P","Q","R","S","T","U","V","W","X","Y","Z"];function mp(t,e){var i=t.match(e);if(!i)throw new Error("Could not find pattern "+e+" in string: "+t);return i[0].split("=")[1]}function xp(t){var e=" ".charCodeAt(0),i=t[e];i||((i=new gp).id=e,i.xadvance=function(t){for(var e=Object.keys(t),i=0;i32)return t[e[i]];return null}(t).xadvance,t[e]=i)}var _p=function(t){this.onResetEvent(t)};_p.prototype.onResetEvent=function(t){this.padTop=0,this.padRight=0,this.padBottom=0,this.padLeft=0,this.lineHeight=0,this.capHeight=1,this.descent=0,this.glyphs={},this.parse(t)},_p.prototype.parse=function(t){if(!t)throw new Error("File containing font data was empty, cannot load the bitmap font.");var e=t.split(/\r\n|\n/),i=t.match(/padding\=\d+,\d+,\d+,\d+/g);if(!i)throw new Error("Padding not found in first line");var o=i[0].split("=")[1].split(",");this.padTop=parseFloat(o[0]),this.padLeft=parseFloat(o[1]),this.padBottom=parseFloat(o[2]),this.padRight=parseFloat(o[3]),this.lineHeight=parseFloat(mp(e[1],/lineHeight\=\d+/g));var n,r=parseFloat(mp(e[1],/base\=\d+/g)),s=this.padTop+this.padBottom,a=null;for(n=4;n0&&a.height>0&&(this.descent=Math.min(r+a.yoffset,this.descent)),this.glyphs[d]=a}}this.descent+=this.padBottom,xp(this.glyphs);var f=null;for(n=0;n=u?(e=1,o=1,i=u/l,n=l/u,r=s.createRadialGradient(a,h*n,0,a,u*n,l)):(i=1,n=1,e=l/u,o=u/l,r=s.createRadialGradient(a*o,h,0,a*o,h,u)),r.addColorStop(0,t.color.toRGBA(t.intensity)),r.addColorStop(1,t.color.toRGBA(0)),s.fillStyle=r,s.setTransform(e,0,0,i,0,0),s.fillRect(0,0,t.texture.width*o,t.texture.height*n)}(this)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getVisibleArea=function(){return this.visibleArea.setShape(this.getBounds().centerX,this.getBounds().centerY,this.width,this.height)},e.prototype.draw=function(t,e){t.drawImage(this.texture.canvas,this.getBounds().x,this.getBounds().y)},e.prototype.destroy=function(){qn.push(this.color),this.color=void 0,qn.push(this.texture),this.texture=void 0,qn.push(this.visibleArea),this.visibleArea=void 0,t.prototype.destroy.call(this)},e}(Ml),Mp=function(t){function e(e,i,o,n){t.call(this,e,i,o,n),this.isKinematic=!1,this.dragging=!1,this.dragId=null,this.grabOffset=new Kn(0,0),this.initEvents()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initEvents=function(){var t=this;dl("pointerdown",this,(function(e){Wr(zr,e,t)})),dl("pointerup",this,(function(e){Wr(Fr,e,t)})),dl("pointercancel",this,(function(e){Wr(Fr,e,t)})),qr(Dr,this.dragMove.bind(this)),qr(zr,(function(e,i){i===t&&t.dragStart(e)})),qr(Fr,(function(e,i){i===t&&t.dragEnd(e)}))},e.prototype.dragStart=function(t){if(!1===this.dragging)return this.dragging=!0,this.grabOffset.set(t.gameX,t.gameY),this.grabOffset.sub(this.pos),!1},e.prototype.dragMove=function(t){!0===this.dragging&&(this.pos.set(t.gameX,t.gameY,this.pos.z),this.pos.sub(this.grabOffset))},e.prototype.dragEnd=function(){if(!0===this.dragging)return this.dragging=!1,!1},e.prototype.destroy=function(){Zr(Dr,this.dragMove),Zr(zr,this.dragStart),Zr(Fr,this.dragEnd),fl("pointerdown",this),fl("pointerup",this),fl("pointercancel",this),t.prototype.destroy.call(this)},e}(Ml),Pp=function(t){function e(e,i,o,n){t.call(this,e,i,o,n),this.isKinematic=!1,this.CHECKMETHOD_OVERLAP="overlaps",this.CHECKMETHOD_CONTAINS="contains",this.checkMethod=this.CHECKMETHOD_OVERLAP,qr(Fr,this.checkOnMe,this)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setCheckMethod=function(t){"function"==typeof this.getBounds()[this.checkMethod]&&(this.checkMethod=t)},e.prototype.checkOnMe=function(t,e){e&&this.getBounds()[this.checkMethod](e.getBounds())&&this.drop(e)},e.prototype.drop=function(t){},e.prototype.destroy=function(){Zr(Fr,this.checkOnMe),t.prototype.destroy.call(this)},e}(Ml),Op={width:1,height:1,image:void 0,textureSize:8,tint:"#fff",totalParticles:50,angle:Math.PI/2,angleVariation:0,minLife:1e3,maxLife:3e3,speed:2,speedVariation:1,minRotation:0,maxRotation:0,minStartScale:1,maxStartScale:1,minEndScale:0,maxEndScale:0,gravity:0,wind:0,followTrajectory:!1,textureAdditive:!1,blendMode:"normal",onlyInViewport:!0,floating:!1,maxParticles:10,frequency:100,duration:1/0,framesToSkip:0};var Ip=function(t){function e(e,i,o){void 0===o&&(o={}),t.call(this,e,i,1|o.width,1|o.height),this.settings={},this.centerOn(e,i),this._stream=!1,this._frequencyTimer=0,this._durationTimer=0,this._enabled=!1,this.alwaysUpdate=!0,this.autoSort=!1,this._updateCount=0,this._dt=0,this.reset(o)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.reset=function(t){void 0===t&&(t={}),Object.assign(this.settings,Op,t),void 0===this.settings.image&&(this._defaultParticle=function(t,e){void 0===t&&(t=8),void 0===e&&(e=8);var i=qn.pull("CanvasTexture",t,e,{offscreenCanvas:!0});return i.context.fillStyle="#fff",i.context.fillRect(0,0,t,e),i}(t.textureSize,t.textureSize),this.settings.image=this._defaultParticle.canvas),this.floating=this.settings.floating,this.isDirty=!0},e.prototype.getRandomPointX=function(){return Rn(0,this.getBounds().width)},e.prototype.getRandomPointY=function(){return Rn(0,this.getBounds().height)},e.prototype.addParticles=function(t){for(var e=0;ethis.settings.framesToSkip&&(this._updateCount=0),this._updateCount>0)return this._dt+=e,this.isDirty;if(e+=this._dt,this._dt=0,this.isDirty|=t.prototype.update.call(this,e),this._enabled&&this._stream){if(this._durationTimer!==1/0&&(this._durationTimer-=e,this._durationTimer<=0))return this.stopStream(),this.isDirty;this._frequencyTimer+=e;var i=this.children.length;i=this.settings.frequency&&(i+this.settings.maxParticles<=this.settings.totalParticles?this.addParticles(this.settings.maxParticles):this.addParticles(this.settings.totalParticles-i),this._frequencyTimer=0,this.isDirty=!0)}return this.isDirty},e.prototype.destroy=function(){t.prototype.destroy.call(this,arguments),void 0!==this._defaultParticle&&(qn.push(this._defaultParticle),this._defaultParticle=void 0),this.settings.image=void 0,this.settings=void 0},e}(Yl),kp=function(t){function e(e){t.call(this,e.getRandomPointX(),e.getRandomPointY(),e.settings.image.width,e.settings.image.height),this.onResetEvent(e,!0)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.onResetEvent=function(t,e){void 0===e&&(e=!1),!1===e?(this.pos.set(t.getRandomPointX(),t.getRandomPointY()),this.resize(t.settings.image.width,t.settings.image.height),this.currentTransform.identity()):this.vel=qn.pull("Vector2d"),this.image=t.settings.image,this.alwaysUpdate=!0,"string"==typeof t.settings.tint&&this.tint.parseCSS(t.settings.tint),!0===t.settings.textureAdditive&&(this.blendMode="additive"),"normal"!==t.settings.blendMode&&(this.blendMode=t.settings.blendMode);var i=t.settings.angle+(t.settings.angleVariation>0?(Rn(0,2)-1)*t.settings.angleVariation:0),o=t.settings.speed+(t.settings.speedVariation>0?(Rn(0,2)-1)*t.settings.speedVariation:0);this.vel.set(o*Math.cos(i),-o*Math.sin(i)),this.life=Rn(t.settings.minLife,t.settings.maxLife),this.startLife=this.life,this.startScale=In(Rn(t.settings.minStartScale,t.settings.maxStartScale),t.settings.minStartScale,t.settings.maxStartScale),this.endScale=In(Rn(t.settings.minEndScale,t.settings.maxEndScale),t.settings.minEndScale,t.settings.maxEndScale),this.gravity=t.settings.gravity,this.wind=t.settings.wind,this.followTrajectory=t.settings.followTrajectory,this.onlyInViewport=t.settings.onlyInViewport,this._deltaInv=Kc.maxfps/1e3,t.settings.followTrajectory||(this.angle=Rn(t.settings.minRotation,t.settings.maxRotation))},e.prototype.update=function(e){var i=e*this._deltaInv;if(this.life=this.life>e?this.life-e:0,this.life<=0)return this.ancestor.removeChild(this),!1;var o=this.life/this.startLife,n=this.startScale;this.startScale>this.endScale?n=(n*=o)this.endScale?this.endScale:n),this.alpha=o,this.vel.x+=this.wind*i,this.vel.y+=this.gravity*i;var r=this.followTrajectory?Math.atan2(this.vel.y,this.vel.x):this.angle;return this.pos.x+=this.vel.x*i,this.pos.y+=this.vel.y*i,this.currentTransform.setTransform(n,0,0,0,n,0,this.pos.x,this.pos.y,1).rotate(r),this.isDirty=this.inViewport||!this.onlyInViewport,t.prototype.update.call(this,e)},e.prototype.draw=function(t){var e=this.width,i=this.height;t.drawImage(this.image,0,0,e,i,-e/2,-i/2,e,i)},e}(Ml),Rp=function(t){function e(e,i,o){if("number"!=typeof o.width||"number"!=typeof o.height)throw new Error("height and width properties are mandatory when passing settings parameters to an object entity");t.call(this,e,i,o.width,o.height),this.children=[],o.image&&(o.framewidth=o.framewidth||o.width,o.frameheight=o.frameheight||o.height,this.renderable=new pc(0,0,o)),o.anchorPoint?this.anchorPoint.set(o.anchorPoint.x,o.anchorPoint.y):this.anchorPoint.set(0,0),"string"==typeof o.name&&(this.name=o.name),this.type=o.type||"",this.id=o.id||"",this.alive=!0,void 0===o.shapes&&(o.shapes=qn.pull("Polygon",0,0,[qn.pull("Vector2d",0,0),qn.pull("Vector2d",this.width,0),qn.pull("Vector2d",this.width,this.height),qn.pull("Vector2d",0,this.height)])),this.body=new Gl(this,o.shapes,this.onBodyUpdate.bind(this)),0===this.width&&0===this.height&&this.resize(this.body.getBounds().width,this.body.getBounds().height),this.body.setCollisionMask(o.collisionMask),this.body.setCollisionType(o.collisionType),this.autoTransform=!1}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var i={renderable:{configurable:!0}};return i.renderable.get=function(){return this.children[0]},i.renderable.set=function(e){if(!(e instanceof t))throw new Error(e+"should extend me.Renderable");this.children[0]=e,this.children[0].ancestor=this},e.prototype.update=function(e){return this.renderable&&(this.isDirty|=this.renderable.update(e)),t.prototype.update.call(this,e)},e.prototype.onBodyUpdate=function(t){this.getBounds().addBounds(t.getBounds(),!0),this.updateBoundsPos(this.pos.x,this.pos.y)},e.prototype.preDraw=function(e){e.save(),e.translate(this.pos.x+this.body.getBounds().x,this.pos.y+this.body.getBounds().y),this.renderable instanceof t&&e.translate(this.anchorPoint.x*this.body.getBounds().width,this.anchorPoint.y*this.body.getBounds().height)},e.prototype.draw=function(e,i){var o=this.renderable;o instanceof t&&(o.preDraw(e),o.draw(e,i),o.postDraw(e))},e.prototype.destroy=function(){this.renderable&&(this.renderable.destroy.apply(this.renderable,arguments),this.children.splice(0,1)),t.prototype.destroy.call(this,arguments)},e.prototype.onDeactivateEvent=function(){this.renderable&&this.renderable.onDeactivateEvent&&this.renderable.onDeactivateEvent()},Object.defineProperties(e.prototype,i),e}(Ml);function Bp(t,e,i){var o="melonJS: %s is deprecated since version %s, please use %s",n=(new Error).stack;console.groupCollapsed?console.groupCollapsed("%c"+o,"font-weight:normal;color:yellow;",t,i,e):console.warn(o,t,i,e),void 0!==n&&console.warn(n),console.groupCollapsed&&console.groupEnd()}Object.defineProperty($a.prototype,"Texture",{get:function(){return Bp("me.video.renderer.Texture","me.TextureAtlas","10.4.0"),fc}});var Dp=function(t){function e(e,i,o){Bp("DraggableEntity","Draggable","10.5.0"),t.call(this,e,i,o.width,o.height)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Mp),Lp=function(t){function e(e,i,o){Bp("DroptargetEntity","DropTarget","10.5.0"),t.call(this,e,i,o.width,o.height)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Pp);$a.prototype.getScreenCanvas=function(){return Bp("getScreenCanvas","getCanvas","13.1.0"),this.getCanvas()},$a.prototype.getScreenContext=function(){return Bp("getScreenContext","getContext","13.1.0"),this.getContext()};var zp="13.2.0";t.initialized=!1;function Fp(){!0!==t.initialized&&(qn.register("me.Entity",Rp),qn.register("me.Collectable",Ep),qn.register("me.Trigger",Sp),qn.register("me.Light2d",Cp),qn.register("me.Tween",np,!0),qn.register("me.Color",nr,!0),qn.register("me.Particle",kp,!0),qn.register("me.Sprite",pc),qn.register("me.NineSliceSprite",Tp),qn.register("me.Renderable",Ml),qn.register("me.Text",fp,!0),qn.register("me.BitmapText",yp),qn.register("me.BitmapTextData",_p,!0),qn.register("me.ImageLayer",wp),qn.register("me.ColorLayer",bp,!0),qn.register("me.Vector2d",Kn,!0),qn.register("me.Vector3d",mh,!0),qn.register("me.ObservableVector2d",vh,!0),qn.register("me.ObservableVector3d",xh,!0),qn.register("me.Matrix2d",hr,!0),qn.register("me.Matrix3d",sr,!0),qn.register("me.Rect",Ha,!0),qn.register("me.RoundRect",Ya,!0),qn.register("me.Polygon",Xa,!0),qn.register("me.Line",qa,!0),qn.register("me.Point",Ja,!0),qn.register("me.Ellipse",Wa,!0),qn.register("me.Bounds",Ka,!0),qn.register("Entity",Rp),qn.register("Collectable",Ep),qn.register("Trigger",Sp),qn.register("Light2d",Cp),qn.register("Tween",np,!0),qn.register("Color",nr,!0),qn.register("Particle",kp,!0),qn.register("Sprite",pc),qn.register("NineSliceSprite",Tp),qn.register("Renderable",Ml),qn.register("Text",fp,!0),qn.register("BitmapText",yp),qn.register("BitmapTextData",_p,!0),qn.register("ImageLayer",wp),qn.register("ColorLayer",bp,!0),qn.register("Vector2d",Kn,!0),qn.register("Vector3d",mh,!0),qn.register("ObservableVector2d",vh,!0),qn.register("ObservableVector3d",xh,!0),qn.register("Matrix2d",hr,!0),qn.register("Matrix3d",sr,!0),qn.register("Rect",Ha,!0),qn.register("RoundRect",Ya,!0),qn.register("Polygon",Xa,!0),qn.register("Line",qa,!0),qn.register("Point",Ja,!0),qn.register("Ellipse",Wa,!0),qn.register("Bounds",Ka,!0),qn.register("CanvasTexture",ap,!0),Wr(dr),cc.setNocache(Yc.getUriFragment().nocache||!1),Ph(),t.initialized=!0)}Qs((function(){Fp()})),t.BitmapText=yp,t.BitmapTextData=_p,t.Body=Gl,t.Bounds=Ka,t.Camera2d=nu,t.CanvasRenderer=Pu,t.Collectable=Ep,t.Color=nr,t.ColorLayer=bp,t.Container=Yl,t.Draggable=Mp,t.DraggableEntity=Dp,t.DropTarget=Pp,t.DroptargetEntity=Lp,t.Ellipse=Wa,t.Entity=Rp,t.GLShader=da,t.GUI_Object=Ap,t.ImageLayer=wp,t.Light2d=Cp,t.Line=qa,t.Math=Ln,t.Matrix2d=hr,t.Matrix3d=sr,t.NineSliceSprite=Tp,t.ObservableVector2d=vh,t.ObservableVector3d=xh,t.Particle=kp,t.ParticleEmitter=Ip,t.ParticleEmitterSettings=Op,t.Point=Ja,t.Pointer=Bh,t.Polygon=Xa,t.QuadTree=Zl,t.Rect=Ha,t.Renderable=Ml,t.Renderer=$a,t.RoundRect=Ya,t.Sprite=pc,t.Stage=su,t.TMXHexagonalRenderer=zu,t.TMXIsometricRenderer=Bu,t.TMXLayer=Iu,t.TMXOrthogonalRenderer=Ru,t.TMXRenderer=ku,t.TMXStaggeredRenderer=Fu,t.TMXTileMap=Xu,t.TMXTileset=Vu,t.TMXTilesetGroup=ju,t.Text=fp,t.TextureAtlas=fc,t.Tile=Mu,t.Trigger=Sp,t.Tween=np,t.Vector2d=Kn,t.Vector3d=mh,t.WebGLCompositor=ga,t.WebGLRenderer=Ic,t.World=Ql,t.audio=gh,t.boot=Fp,t.collision=Nl,t.device=ha,t.event=Qr,t.game=$l,t.input=Cl,t.level=Ku,t.loader=cc,t.plugin=ep,t.plugins=tp,t.pool=qn,t.save=es,t.skipAutoInit=!1,t.state=bu,t.timer=Kc,t.utils=Yc,t.version=zp,t.video=Gc,t.warning=Bp,Object.defineProperty(t,"__esModule",{value:!0})})); \ No newline at end of file +function(){var t;HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(t){var e=this;if(!e.ctx||!e.ctx.listener)return e;for(var i=e._howls.length-1;i>=0;i--)e._howls[i].stereo(t);return e},HowlerGlobal.prototype.pos=function(t,e,i){var o=this;return o.ctx&&o.ctx.listener?(e="number"!=typeof e?o._pos[1]:e,i="number"!=typeof i?o._pos[2]:i,"number"!=typeof t?o._pos:(o._pos=[t,e,i],void 0!==o.ctx.listener.positionX?(o.ctx.listener.positionX.setTargetAtTime(o._pos[0],Howler.ctx.currentTime,.1),o.ctx.listener.positionY.setTargetAtTime(o._pos[1],Howler.ctx.currentTime,.1),o.ctx.listener.positionZ.setTargetAtTime(o._pos[2],Howler.ctx.currentTime,.1)):o.ctx.listener.setPosition(o._pos[0],o._pos[1],o._pos[2]),o)):o},HowlerGlobal.prototype.orientation=function(t,e,i,o,n,r){var s=this;if(!s.ctx||!s.ctx.listener)return s;var a=s._orientation;return e="number"!=typeof e?a[1]:e,i="number"!=typeof i?a[2]:i,o="number"!=typeof o?a[3]:o,n="number"!=typeof n?a[4]:n,r="number"!=typeof r?a[5]:r,"number"!=typeof t?a:(s._orientation=[t,e,i,o,n,r],void 0!==s.ctx.listener.forwardX?(s.ctx.listener.forwardX.setTargetAtTime(t,Howler.ctx.currentTime,.1),s.ctx.listener.forwardY.setTargetAtTime(e,Howler.ctx.currentTime,.1),s.ctx.listener.forwardZ.setTargetAtTime(i,Howler.ctx.currentTime,.1),s.ctx.listener.upX.setTargetAtTime(o,Howler.ctx.currentTime,.1),s.ctx.listener.upY.setTargetAtTime(n,Howler.ctx.currentTime,.1),s.ctx.listener.upZ.setTargetAtTime(r,Howler.ctx.currentTime,.1)):s.ctx.listener.setOrientation(t,e,i,o,n,r),s)},Howl.prototype.init=(t=Howl.prototype.init,function(e){var i=this;return i._orientation=e.orientation||[1,0,0],i._stereo=e.stereo||null,i._pos=e.pos||null,i._pannerAttr={coneInnerAngle:void 0!==e.coneInnerAngle?e.coneInnerAngle:360,coneOuterAngle:void 0!==e.coneOuterAngle?e.coneOuterAngle:360,coneOuterGain:void 0!==e.coneOuterGain?e.coneOuterGain:0,distanceModel:void 0!==e.distanceModel?e.distanceModel:"inverse",maxDistance:void 0!==e.maxDistance?e.maxDistance:1e4,panningModel:void 0!==e.panningModel?e.panningModel:"HRTF",refDistance:void 0!==e.refDistance?e.refDistance:1,rolloffFactor:void 0!==e.rolloffFactor?e.rolloffFactor:1},i._onstereo=e.onstereo?[{fn:e.onstereo}]:[],i._onpos=e.onpos?[{fn:e.onpos}]:[],i._onorientation=e.onorientation?[{fn:e.onorientation}]:[],t.call(this,e)}),Howl.prototype.stereo=function(t,i){var o=this;if(!o._webAudio)return o;if("loaded"!==o._state)return o._queue.push({event:"stereo",action:function(){o.stereo(t,i)}}),o;var n=void 0===Howler.ctx.createStereoPanner?"spatial":"stereo";if(void 0===i){if("number"!=typeof t)return o._stereo;o._stereo=t,o._pos=[t,0,0]}for(var r=o._getSoundIds(i),s=0;s3)throw new Error("melonJS: failed loading "+t);eh[t].load()};function sh(){return!th.Howler.noAudio}function ah(t,e,i,o){var n=[];if(0===nh.length)throw new Error("target audio extension(s) should be set through me.audio.init() before calling the preloader.");if(!0===vn(t.src))n.push(t.src);else for(var r=0;r0;)e[i]=arguments[i+1];var o=eh[t];if(o&&void 0!==o)return o.seek.apply(o,e);throw new Error("audio clip "+t+" does not exist")},rate:function(t){for(var e=[],i=arguments.length-1;i-- >0;)e[i]=arguments[i+1];var o=eh[t];if(o&&void 0!==o)return o.rate.apply(o,e);throw new Error("audio clip "+t+" does not exist")},stop:function(t,e){if(void 0!==t){var i=eh[t];if(!i||void 0===i)throw new Error("audio clip "+t+" does not exist");i.stop(e),i.off("end",void 0,e)}else th.Howler.stop()},pause:function(t,e){var i=eh[t];if(!i||void 0===i)throw new Error("audio clip "+t+" does not exist");i.pause(e)},resume:function(t,e){var i=eh[t];if(!i||void 0===i)throw new Error("audio clip "+t+" does not exist");i.play(e)},playTrack:function(t,e){return hh(ih=t,!0,null,e)},stopTrack:function(){null!==ih&&(eh[ih].stop(),ih=null)},pauseTrack:lh,resumeTrack:uh,getCurrentTrack:function(){return ih},setVolume:function(t){th.Howler.volume(t)},getVolume:function(){return th.Howler.volume()},mute:ch,unmute:function(t,e){ch(t,e,!1)},muteAll:ph,unmuteAll:dh,muted:function(){return th.Howler._muted},unload:fh,unloadAll:yh}),vh=function(t){function e(e,i,o){if(void 0===e&&(e=0),void 0===i&&(i=0),t.call(this,e,i),void 0===o)throw new Error("undefined `onUpdate` callback");this.setCallback(o.onUpdate,o.scope)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var i={x:{configurable:!0},y:{configurable:!0}};return e.prototype.onResetEvent=function(t,e,i){return void 0===t&&(t=0),void 0===e&&(e=0),this.setMuted(t,e),void 0!==i&&this.setCallback(i.onUpdate,i.scope),this},i.x.get=function(){return this._x},i.x.set=function(t){var e=this.onUpdate.call(this.scope,t,this._y,this._x,this._y);this._x=e&&"x"in e?e.x:t},i.y.get=function(){return this._y},i.y.set=function(t){var e=this.onUpdate.call(this.scope,this._x,t,this._x,this._y);this._y=e&&"y"in e?e.y:t},e.prototype._set=function(t,e){var i=this.onUpdate.call(this.scope,t,e,this._x,this._y);return i&&"x"in i&&"y"in i?(this._x=i.x,this._y=i.y):(this._x=t,this._y=e),this},e.prototype.setMuted=function(t,e){return this._x=t,this._y=e,this},e.prototype.setCallback=function(t,e){if(void 0===e&&(e=null),"function"!=typeof t)throw new Error("invalid `onUpdate` callback");return this.onUpdate=t,this.scope=e,this},e.prototype.add=function(t){return this._set(this._x+t.x,this._y+t.y)},e.prototype.sub=function(t){return this._set(this._x-t.x,this._y-t.y)},e.prototype.scale=function(t,e){return this._set(this._x*t,this._y*(void 0!==e?e:t))},e.prototype.scaleV=function(t){return this._set(this._x*t.x,this._y*t.y)},e.prototype.div=function(t){return this._set(this._x/t,this._y/t)},e.prototype.abs=function(){return this._set(this._x<0?-this._x:this._x,this._y<0?-this._y:this._y)},e.prototype.clamp=function(t,i){return new e(In(this.x,t,i),In(this.y,t,i),{onUpdate:this.onUpdate,scope:this.scope})},e.prototype.clampSelf=function(t,e){return this._set(In(this._x,t,e),In(this._y,t,e))},e.prototype.minV=function(t){return this._set(this._xt.x?this._x:t.x,this._y>t.y?this._y:t.y)},e.prototype.floor=function(){return new e(Math.floor(this._x),Math.floor(this._y),{onUpdate:this.onUpdate,scope:this.scope})},e.prototype.floorSelf=function(){return this._set(Math.floor(this._x),Math.floor(this._y))},e.prototype.ceil=function(){return new e(Math.ceil(this._x),Math.ceil(this._y),{onUpdate:this.onUpdate,scope:this.scope})},e.prototype.ceilSelf=function(){return this._set(Math.ceil(this._x),Math.ceil(this._y))},e.prototype.negate=function(){return new e(-this._x,-this._y,{onUpdate:this.onUpdate,scope:this.scope})},e.prototype.negateSelf=function(){return this._set(-this._x,-this._y)},e.prototype.copy=function(t){return this._set(t.x,t.y)},e.prototype.equals=function(t){return this._x===t.x&&this._y===t.y},e.prototype.perp=function(){return this._set(this._y,-this._x)},e.prototype.rotate=function(t,e){var i=0,o=0;"object"==typeof e&&(i=e.x,o=e.y);var n=this._x-i,r=this._y-o,s=Math.cos(t),a=Math.sin(t);return this._set(n*s-r*a+i,n*a+r*s+o)},e.prototype.dot=function(t){return this._x*t.x+this._y*t.y},e.prototype.cross=function(t){return this._x*t.y-this._y*t.x},e.prototype.lerp=function(t,e){return this._set(this._x+(t.x-this._x)*e,this._y+(t.y-this._y)*e)},e.prototype.moveTowards=function(t,e){var i=Math.atan2(t.y-this._y,t.x-this._x),o=this.distance(t);return 0===o||e>=0&&o<=e*e?t:(this._x+=Math.cos(i)*e,this._y+=Math.sin(i)*e,this)},e.prototype.distance=function(t){return Math.sqrt((this._x-t.x)*(this._x-t.x)+(this._y-t.y)*(this._y-t.y))},e.prototype.clone=function(){return qn.pull("ObservableVector2d",this._x,this._y,{onUpdate:this.onUpdate,scope:this.scope})},e.prototype.toVector2d=function(){return qn.pull("Vector2d",this._x,this._y)},e.prototype.toString=function(){return"x:"+this._x+",y:"+this._y},Object.defineProperties(e.prototype,i),e}(Kn),mh=function(t,e,i){void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),this.onResetEvent(t,e,i)};mh.prototype.onResetEvent=function(t,e,i){return void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),this.x=t,this.y=e,this.z=i,this},mh.prototype._set=function(t,e,i){return void 0===i&&(i=0),this.x=t,this.y=e,this.z=i,this},mh.prototype.set=function(t,e,i){if(t!==+t||e!==+e||void 0!==i&&i!==+i)throw new Error("invalid x, y, z parameters (not a number)");return this._set(t,e,i)},mh.prototype.setZero=function(){return this.set(0,0,0)},mh.prototype.setV=function(t){return this._set(t.x,t.y,t.z)},mh.prototype.add=function(t){return this._set(this.x+t.x,this.y+t.y,this.z+(t.z||0))},mh.prototype.sub=function(t){return this._set(this.x-t.x,this.y-t.y,this.z-(t.z||0))},mh.prototype.scale=function(t,e,i){return e=void 0!==e?e:t,this._set(this.x*t,this.y*e,this.z*(i||1))},mh.prototype.scaleV=function(t){return this.scale(t.x,t.y,t.z)},mh.prototype.toIso=function(){return this._set(this.x-this.y,.5*(this.x+this.y),this.z)},mh.prototype.to2d=function(){return this._set(this.y+this.x/2,this.y-this.x/2,this.z)},mh.prototype.div=function(t){return this._set(this.x/t,this.y/t,this.z/t)},mh.prototype.abs=function(){return this._set(this.x<0?-this.x:this.x,this.y<0?-this.y:this.y,this.z<0?-this.z:this.z)},mh.prototype.clamp=function(t,e){return new mh(In(this.x,t,e),In(this.y,t,e),In(this.z,t,e))},mh.prototype.clampSelf=function(t,e){return this._set(In(this.x,t,e),In(this.y,t,e),In(this.z,t,e))},mh.prototype.minV=function(t){var e=t.z||0;return this._set(this.xt.x?this.x:t.x,this.y>t.y?this.y:t.y,this.z>e?this.z:e)},mh.prototype.floor=function(){return new mh(Math.floor(this.x),Math.floor(this.y),Math.floor(this.z))},mh.prototype.floorSelf=function(){return this._set(Math.floor(this.x),Math.floor(this.y),Math.floor(this.z))},mh.prototype.ceil=function(){return new mh(Math.ceil(this.x),Math.ceil(this.y),Math.ceil(this.z))},mh.prototype.ceilSelf=function(){return this._set(Math.ceil(this.x),Math.ceil(this.y),Math.ceil(this.z))},mh.prototype.negate=function(){return new mh(-this.x,-this.y,-this.z)},mh.prototype.negateSelf=function(){return this._set(-this.x,-this.y,-this.z)},mh.prototype.copy=function(t){return this._set(t.x,t.y,t.z||0)},mh.prototype.equals=function(){var t,e,i;return arguments.length>=2?(t=arguments[0],e=arguments[1],i=arguments[2]):(t=arguments[0].x,e=arguments[0].y,i=arguments[0].z),void 0===i&&(i=this.z),this.x===t&&this.y===e&&this.z===i},mh.prototype.normalize=function(){return this.div(this.length()||1)},mh.prototype.perp=function(){return this._set(this.y,-this.x,this.z)},mh.prototype.rotate=function(t,e){var i=0,o=0;"object"==typeof e&&(i=e.x,o=e.y);var n=this.x-i,r=this.y-o,s=Math.cos(t),a=Math.sin(t);return this._set(n*s-r*a+i,n*a+r*s+o,this.z)},mh.prototype.dot=function(t){return this.x*t.x+this.y*t.y+this.z*(void 0!==t.z?t.z:this.z)},mh.prototype.cross=function(t){var e=this.x,i=this.y,o=this.z,n=t.x,r=t.y,s=t.z;return this.x=i*s-o*r,this.y=o*n-e*s,this.z=e*r-i*n,this},mh.prototype.length2=function(){return this.dot(this)},mh.prototype.length=function(){return Math.sqrt(this.length2())},mh.prototype.lerp=function(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this},mh.prototype.moveTowards=function(t,e){var i=Math.atan2(t.y-this.y,t.x-this.x),o=this.x-t.x,n=this.y-t.y,r=Math.sqrt(o*o+n*n);return 0===r||e>=0&&r<=e*e?t:(this.x+=Math.cos(i)*e,this.y+=Math.sin(i)*e,this)},mh.prototype.distance=function(t){var e=this.x-t.x,i=this.y-t.y,o=this.z-(t.z||0);return Math.sqrt(e*e+i*i+o*o)},mh.prototype.angle=function(t){return Math.acos(In(this.dot(t)/(this.length()*t.length()),-1,1))},mh.prototype.project=function(t){var e=this.dot(t)/t.length2();return this.scale(e,e,e)},mh.prototype.projectN=function(t){var e=this.dot(t)/t.length2();return this.scale(e,e,e)},mh.prototype.clone=function(){return qn.pull("Vector3d",this.x,this.y,this.z)},mh.prototype.toString=function(){return"x:"+this.x+",y:"+this.y+",z:"+this.z};var xh=function(t){function e(e,i,o,n){if(void 0===e&&(e=0),void 0===i&&(i=0),void 0===o&&(o=0),t.call(this,e,i,o),void 0===n)throw new Error("undefined `onUpdate` callback");this.setCallback(n.onUpdate,n.scope)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var i={x:{configurable:!0},y:{configurable:!0},z:{configurable:!0}};return e.prototype.onResetEvent=function(t,e,i,o){return void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),this.setMuted(t,e,i),void 0!==o&&this.setCallback(o.onUpdate,o.scope),this},i.x.get=function(){return this._x},i.x.set=function(t){var e=this.onUpdate.call(this.scope,t,this._y,this._z,this._x,this._y,this._z);this._x=e&&"x"in e?e.x:t},i.y.get=function(){return this._y},i.y.set=function(t){var e=this.onUpdate.call(this.scope,this._x,t,this._z,this._x,this._y,this._z);this._y=e&&"y"in e?e.y:t},i.z.get=function(){return this._z},i.z.set=function(t){var e=this.onUpdate.call(this.scope,this._x,this._y,t,this._x,this._y,this._z);this._z=e&&"z"in e?e.z:t},e.prototype._set=function(t,e,i){var o=this.onUpdate.call(this.scope,t,e,i,this._x,this._y,this._z);return o&&"x"in o&&"y"in o&&"z"in o?(this._x=o.x,this._y=o.y,this._z=o.z):(this._x=t,this._y=e,this._z=i||0),this},e.prototype.setMuted=function(t,e,i){return this._x=t,this._y=e,this._z=i||0,this},e.prototype.setCallback=function(t,e){if(void 0===e&&(e=null),"function"!=typeof t)throw new Error("invalid `onUpdate` callback");return this.onUpdate=t,this.scope=e,this},e.prototype.add=function(t){return this._set(this._x+t.x,this._y+t.y,this._z+(t.z||0))},e.prototype.sub=function(t){return this._set(this._x-t.x,this._y-t.y,this._z-(t.z||0))},e.prototype.scale=function(t,e,i){return e=void 0!==e?e:t,this._set(this._x*t,this._y*e,this._z*(i||1))},e.prototype.scaleV=function(t){return this._set(this._x*t.x,this._y*t.y,this._z*(t.z||1))},e.prototype.div=function(t){return this._set(this._x/t,this._y/t,this._z/t)},e.prototype.abs=function(){return this._set(this._x<0?-this._x:this._x,this._y<0?-this._y:this._y,this._Z<0?-this._z:this._z)},e.prototype.clamp=function(t,i){return new e(In(this._x,t,i),In(this._y,t,i),In(this._z,t,i),{onUpdate:this.onUpdate,scope:this.scope})},e.prototype.clampSelf=function(t,e){return this._set(In(this._x,t,e),In(this._y,t,e),In(this._z,t,e))},e.prototype.minV=function(t){var e=t.z||0;return this._set(this._xt.x?this._x:t.x,this._y>t.y?this._y:t.y,this._z>e?this._z:e)},e.prototype.floor=function(){return new e(Math.floor(this._x),Math.floor(this._y),Math.floor(this._z),{onUpdate:this.onUpdate,scope:this.scope})},e.prototype.floorSelf=function(){return this._set(Math.floor(this._x),Math.floor(this._y),Math.floor(this._z))},e.prototype.ceil=function(){return new e(Math.ceil(this._x),Math.ceil(this._y),Math.ceil(this._z),{onUpdate:this.onUpdate,scope:this.scope})},e.prototype.ceilSelf=function(){return this._set(Math.ceil(this._x),Math.ceil(this._y),Math.ceil(this._z))},e.prototype.negate=function(){return new e(-this._x,-this._y,-this._z,{onUpdate:this.onUpdate,scope:this.scope})},e.prototype.negateSelf=function(){return this._set(-this._x,-this._y,-this._z)},e.prototype.copy=function(t){return this._set(t.x,t.y,t.z||0)},e.prototype.equals=function(t){return this._x===t.x&&this._y===t.y&&this._z===(t.z||this._z)},e.prototype.perp=function(){return this._set(this._y,-this._x,this._z)},e.prototype.rotate=function(t,e){var i=0,o=0;"object"==typeof e&&(i=e.x,o=e.y);var n=this.x-i,r=this.y-o,s=Math.cos(t),a=Math.sin(t);return this._set(n*s-r*a+i,n*a+r*s+o,this.z)},e.prototype.dot=function(t){return this._x*t.x+this._y*t.y+this._z*(t.z||1)},e.prototype.cross=function(t){var e=this._x,i=this._y,o=this._z,n=t.x,r=t.y,s=t.z;return this._set(i*s-o*r,o*n-e*s,e*r-i*n)},e.prototype.lerp=function(t,e){return this._set(this._x+(t.x-this._x)*e,this._y+(t.y-this._y)*e,this._z+(t.z-this._z)*e)},e.prototype.moveTowards=function(t,e){var i=Math.atan2(t.y-this._y,t.x-this._x),o=this._x-t.x,n=this._y-t.y,r=Math.sqrt(o*o+n*n);return 0===r||e>=0&&r<=e*e?t:this._set(this._x+Math.cos(i)*e,this._y+Math.sin(i)*e,this._z)},e.prototype.distance=function(t){var e=this._x-t.x,i=this._y-t.y,o=this._z-(t.z||0);return Math.sqrt(e*e+i*i+o*o)},e.prototype.clone=function(){return qn.pull("ObservableVector3d",this._x,this._y,this._z,{onUpdate:this.onUpdate})},e.prototype.toVector3d=function(){return qn.pull("Vector3d",this._x,this._y,this._z)},e.prototype.toString=function(){return"x:"+this._x+",y:"+this._y+",z:"+this._z},Object.defineProperties(e.prototype,i),e}(mh),_h={},bh={},wh={},Th={},Ah={},Eh={},Sh=function(t,e,i){e=e||t.keyCode||t.button;var o=Eh[e];if(Wr(Or,o,e,!o||!wh[o]),o){if(!wh[o]){var n=void 0!==i?i:e;Th[o][n]||(_h[o]++,Th[o][n]=!0)}return!Ah[e]||"function"!=typeof t.preventDefault||t.preventDefault()}return!0},Ch=function(t,e,i){e=e||t.keyCode||t.button;var o=Eh[e];if(Wr(Ir,o,e),o){var n=void 0!==i?i:e;return Th[o][n]=void 0,_h[o]>0&&_h[o]--,wh[o]=!1,!Ah[e]||"function"!=typeof t.preventDefault||t.preventDefault()}return!0},Mh=null;function Ph(){null===Mh&&!1===vs&&"function"==typeof(Mh=globalThis).addEventListener&&(Mh.addEventListener("keydown",Sh,!1),Mh.addEventListener("keyup",Ch,!1))}function Oh(t,e,i){!0===e?Sh({},t,i):Ch({},t,i)}function Ih(t){return Eh[t]}var kh,Rh=new Kn,Bh=function(t){function e(e,i,o,n){void 0===e&&(e=0),void 0===i&&(i=0),void 0===o&&(o=1),void 0===n&&(n=1),t.call(this),this.setMinMax(e,i,e+o,i+n),this.LEFT=0,this.MIDDLE=1,this.RIGHT=2,this.event=void 0,this.type=void 0,this.button=0,this.isPrimary=!1,this.pageX=0,this.pageY=0,this.clientX=0,this.clientY=0,this.movementX=0,this.movementY=0,this.deltaMode=0,this.deltaX=0,this.deltaY=0,this.deltaZ=0,this.gameX=0,this.gameY=0,this.gameScreenX=0,this.gameScreenY=0,this.gameWorldX=0,this.gameWorldY=0,this.gameLocalX=0,this.gameLocalY=0,this.pointerId=void 0,this.isNormalized=!1,this.locked=!1,this.bind=[0,0,0]}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setEvent=function(t,e,i,o,n,r){void 0===e&&(e=0),void 0===i&&(i=0),void 0===o&&(o=0),void 0===n&&(n=0),void 0===r&&(r=1),this.event=t,this.pageX=e,this.pageY=i,this.clientX=o,this.clientY=n,cl(this.pageX,this.pageY,Rh),this.gameScreenX=this.x=Rh.x,this.gameScreenY=this.y=Rh.y,this.isNormalized=void 0!==globalThis.PointerEvent&&!(t instanceof globalThis.PointerEvent),this.locked=ul,this.movementX=t.movementX||0,this.movementY=t.movementY||0,"wheel"===t.type?(this.deltaMode=t.deltaMode||0,this.deltaX=t.deltaX||0,this.deltaY=t.deltaY||0,this.deltaZ=t.deltaZ||0):(this.deltaMode=0,this.deltaX=0,this.deltaY=0,this.deltaZ=0),this.pointerId=r,this.isPrimary=void 0===t.isPrimary||t.isPrimary,this.button=t.button||0,this.type=t.type,void 0!==$l.viewport&&$l.viewport.localToWorld(this.gameScreenX,this.gameScreenY,Rh),this.gameWorldX=Rh.x,this.gameWorldY=Rh.y,!1===this.isNormalized?(this.width=t.width||1,this.height=t.height||1):"number"==typeof t.radiusX?(this.width=2*t.radiusX||1,this.height=2*t.radiusY||1):this.width=this.height=1},e}(Ka),Dh=[],Lh=new Map,zh=!1,Fh=0,Vh=[],jh=["wheel"],Uh=["pointermove","mousemove","touchmove"],Nh=["pointerdown","mousedown","touchstart"],Gh=["pointerup","mouseup","touchend"],Xh=["pointercancel","mousecancel","touchcancel"],Hh=["pointerenter","mouseenter","touchenter"],Yh=["pointerover","mouseover","touchover"],Wh=["pointerleave","mouseleave","touchleave"],qh=[jh[0],Uh[0],Nh[0],Gh[0],Xh[0],Hh[0],Yh[0],Wh[0]],Kh=[jh[0],Uh[1],Nh[1],Gh[1],Xh[1],Hh[1],Yh[1],Wh[1]],Zh=[Uh[2],Nh[2],Gh[2],Xh[2],Hh[2],Yh[2],Wh[2]],Qh={wheel:jh,pointermove:Uh,pointerdown:Nh,pointerup:Gh,pointercancel:Xh,pointerenter:Hh,pointerover:Yh,pointerleave:Wh},Jh=[];function $h(){if(!zh){kh=new Ha(0,0,1,1);for(var t=0;t=0&&(n=t.callbacks[e][r]);r--)if(!1===n(i))return!0}return!1}function ol(t){for(var e=!1;t.length>0;){var i=t.pop();if(Dh.push(i),!0===i.isNormalized&&void 0!==i.event.timeStamp){if(i.event.timeStamp0;)n.callbacks[t].pop();0===n.callbacks[t].length&&delete n.callbacks[t]}0===Object.keys(n.callbacks).length&&Lh.delete(e)}}function yl(t){if(Lh.has(t))for(var e=0;e0?i===this.GAMEPAD.BUTTONS.L2?Math.max(0,t-2e4)/111070:(t-1)/131070:(65536+t)/131070+.5}var ml=/^([0-9a-f]{1,4})-([0-9a-f]{1,4})-/i,xl=/^0+/;function _l(t,e){var i=t.replace(ml,(function(t,e,i){return"000".slice(e.length-1)+e+"-"+"000".slice(i.length-1)+i+"-"})),o=t.replace(ml,(function(t,e,i){return e.replace(xl,"")+"-"+i.replace(xl,"")+"-"}));e.analog=e.analog||e.buttons.map((function(){return-1})),e.normalize_fn=e.normalize_fn||function(t){return t},Tl.set(i,e),Tl.set(o,e)}var bl,wl={},Tl=new Map;[["45e-28e-Xbox 360 Wired Controller",{axes:[0,1,3,4],buttons:[11,12,13,14,8,9,-1,-1,5,4,6,7,0,1,2,3,10],analog:[-1,-1,-1,-1,-1,-1,2,5,-1,-1,-1,-1,-1,-1,-1,-1,-1],normalize_fn:function(t,e,i){return i===this.GAMEPAD.BUTTONS.L2||i===this.GAMEPAD.BUTTONS.R2?(t+1)/2:t}}],["54c-268-PLAYSTATION(R)3 Controller",{axes:[0,1,2,3],buttons:[14,13,15,12,10,11,8,9,0,3,1,2,4,6,7,5,16]}],["54c-5c4-Wireless Controller",{axes:[0,1,2,3],buttons:[1,0,2,3,4,5,6,7,8,9,10,11,14,15,16,17,12,13]}],["2836-1-OUYA Game Controller",{axes:[0,3,7,9],buttons:[3,6,4,5,7,8,15,16,-1,-1,9,10,11,12,13,14,-1],analog:[-1,-1,-1,-1,-1,-1,5,11,-1,-1,-1,-1,-1,-1,-1,-1,-1],normalize_fn:vl}],["OUYA Game Controller (Vendor: 2836 Product: 0001)",{axes:[0,1,3,4],buttons:[0,3,1,2,4,5,12,13,-1,-1,6,7,8,9,10,11,-1],analog:[-1,-1,-1,-1,-1,-1,2,5,-1,-1,-1,-1,-1,-1,-1,-1,-1],normalize_fn:vl}]].forEach((function(t){_l(t[0],t[1])}));var Al=function(){var t=navigator.getGamepads();Object.keys(wl).forEach((function(e){var i=t[e];if(i){var o=null;"standard"!==i.mapping&&(o=Tl.get(i.id));var n=wl[e];Object.keys(n.buttons).forEach((function(t){var r=n.buttons[t],s=t,a=-1;if(!(o&&(s=o.buttons[t],a=o.analog[t],s<0&&a<0))){var h=i.buttons[s]||{};if(o&&a>=0){var l=o.normalize_fn(i.axes[a],-1,+t);h={value:l,pressed:h.pressed||Math.abs(l)>=gl}}Wr(Br,e,"buttons",+t,h),!r.pressed&&h.pressed?Oh(r.keyCode,!0,s+256):r.pressed&&!h.pressed&&Oh(r.keyCode,!1,s+256),r.value=h.value,r.pressed=h.pressed}})),Object.keys(n.axes).forEach((function(t){var r=n.axes[t],s=t;if(!(o&&(s=o.axes[t])<0)){var a=i.axes[s];if(void 0!==a){o&&(a=o.normalize_fn(a,+t,-1));var h=Math.sign(a)||1;if(0!==r[h].keyCode){var l=Math.abs(a)>=gl+Math.abs(r[h].threshold);Wr(Br,e,"axes",+t,a),!r[h].pressed&&l?(r[-h].pressed&&(Oh(r[-h].keyCode,!1,s+256),r[-h].value=0,r[-h].pressed=!1),Oh(r[h].keyCode,!0,s+256)):!r[h].pressed&&!r[-h].pressed||l||Oh(r[h=r[h].pressed?h:-h].keyCode,!1,s+256),r[h].value=a,r[h].pressed=l}}}}))}}))};globalThis.navigator&&"function"==typeof globalThis.navigator.getGamepads&&(globalThis.addEventListener("gamepadconnected",(function(t){Wr(kr,t.gamepad)}),!1),globalThis.addEventListener("gamepaddisconnected",(function(t){Wr(Rr,t.gamepad)}),!1));for(var El=_l,Sl=!0,Cl=Object.freeze({__proto__:null,preventDefault:Sl,get pointerEventTarget(){return hl},pointer:ll,get locked(){return ul},get throttlingInterval(){return al},globalToLocal:cl,setTouchAction:pl,bindPointer:function(){var t=arguments.length<2?ll.LEFT:arguments[0],e=arguments.length<2?arguments[0]:arguments[1];if($h(),!Ih(e))throw new Error("no action defined for keycode "+e);ll.bind[t]=e},unbindPointer:function(t){ll.bind[void 0===t?ll.LEFT:t]=null},registerPointerEvent:dl,releasePointerEvent:fl,releaseAllPointerEvents:yl,requestPointerLock:function(){return!!Is&&(Uc().requestPointerLock(),!0)},exitPointerLock:function(){return!!Is&&(document.exitPointerLock(),!0)},get keyBoardEventTarget(){return Mh},KEY:{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,PRINT_SCREEN:42,INSERT:45,DELETE:46,NUM0:48,NUM1:49,NUM2:50,NUM3:51,NUM4:52,NUM5:53,NUM6:54,NUM7:55,NUM8:56,NUM9:57,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,WINDOW_KEY:91,NUMPAD0:96,NUMPAD1:97,NUMPAD2:98,NUMPAD3:99,NUMPAD4:100,NUMPAD5:101,NUMPAD6:102,NUMPAD7:103,NUMPAD8:104,NUMPAD9:105,MULTIPLY:106,ADD:107,SUBSTRACT:109,DECIMAL:110,DIVIDE:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,TILDE:126,NUM_LOCK:144,SCROLL_LOCK:145,SEMICOLON:186,PLUS:187,COMMA:188,MINUS:189,PERIOD:190,FORWAND_SLASH:191,GRAVE_ACCENT:192,OPEN_BRACKET:219,BACK_SLASH:220,CLOSE_BRACKET:221,SINGLE_QUOTE:222},initKeyboardEvent:Ph,isKeyPressed:function(t){return!(!_h[t]||wh[t])&&(bh[t]&&(wh[t]=!0),!0)},keyStatus:function(t){return _h[t]>0},triggerKeyEvent:Oh,bindKey:function(t,e,i,o){void 0===o&&(o=Sl),Eh[t]=e,Ah[t]=o,_h[e]=0,bh[e]=i||!1,wh[e]=!1,Th[e]={}},getBindingKey:Ih,unlockKey:function(t){wh[t]=!1},unbindKey:function(t){var e=Eh[t];_h[e]=0,bh[e]=!1,Th[e]={},Eh[t]=null,Ah[t]=null},GAMEPAD:{AXES:{LX:0,LY:1,RX:2,RY:3,EXTRA_1:4,EXTRA_2:5,EXTRA_3:6,EXTRA_4:7},BUTTONS:{FACE_1:0,FACE_2:1,FACE_3:2,FACE_4:3,L1:4,R1:5,L2:6,R2:7,SELECT:8,BACK:8,START:9,FORWARD:9,L3:10,R3:11,UP:12,DOWN:13,LEFT:14,RIGHT:15,HOME:16,EXTRA_1:17,EXTRA_2:18,EXTRA_3:19,EXTRA_4:20}},bindGamepad:function(t,e,i){if(!Ih(i))throw new Error("no action defined for keycode "+i);void 0===bl&&"function"==typeof navigator.getGamepads&&(bl=qr(wr,Al)),wl[t]||(wl[t]={axes:{},buttons:{}});var o={keyCode:i,value:0,pressed:!1,threshold:e.threshold},n=wl[t][e.type];if("buttons"===e.type)n[e.code]=o;else if("axes"===e.type){var r=Math.sign(e.threshold)||1;n[e.code]||(n[e.code]={});var s=n[e.code];s[r]=o,s[-r]||(s[-r]={keyCode:0,value:0,pressed:!1,threshold:-r})}},unbindGamepad:function(t,e){if(!wl[t])throw new Error("no bindings for gamepad "+t);wl[t].buttons[e]={}},setGamepadDeadzone:function(t){gl=t},setGamepadMapping:El}),Ml=function(t){function e(e,i,o,n){t.call(this,e,i,o,n),this.isRenderable=!0,this.isKinematic=!0,this.body=void 0,void 0===this.currentTransform&&(this.currentTransform=qn.pull("Matrix2d")),this.currentTransform.identity(),this.GUID=void 0,this.onVisibilityChange=void 0,this.alwaysUpdate=!1,this.updateWhenPaused=!1,this.isPersistent=!1,this.floating=!1,this.anchorPoint instanceof vh?this.anchorPoint.setMuted(.5,.5).setCallback(this.onAnchorUpdate,this):this.anchorPoint=qn.pull("ObservableVector2d",.5,.5,{onUpdate:this.onAnchorUpdate,scope:this}),this.autoTransform=!0,this.alpha=1,this.ancestor=void 0,this.mask=void 0,this.blendMode="normal",this.name="",this.pos instanceof xh?this.pos.setMuted(e,i,0).setCallback(this.updateBoundsPos,this):this.pos=qn.pull("ObservableVector3d",e,i,0,{onUpdate:this.updateBoundsPos,scope:this}),this.isDirty=!1,this._flip={x:!1,y:!1},this._inViewport=!1,this.setOpacity(1)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var i={isFloating:{configurable:!0},tint:{configurable:!0},inViewport:{configurable:!0},isFlippedX:{configurable:!0},isFlippedY:{configurable:!0}};return i.isFloating.get=function(){return!0===this.floating||void 0!==this.ancestor&&!0===this.ancestor.floating},i.tint.get=function(){return void 0===this._tint&&(this._tint=qn.pull("Color",255,255,255,1)),this._tint},i.tint.set=function(t){void 0===this._tint&&(this._tint=qn.pull("Color",255,255,255,1)),t instanceof nr?this._tint.copy(t):this._tint.parseCSS(t)},i.inViewport.get=function(){return this._inViewport},i.inViewport.set=function(t){this._inViewport!==t&&(this._inViewport=t,"function"==typeof this.onVisibilityChange&&this.onVisibilityChange.call(this,t))},i.isFlippedX.get=function(){return!0===this._flip.x},i.isFlippedY.get=function(){return!0===this._flip.y},e.prototype.getBounds=function(){return void 0===this._bounds&&(t.prototype.getBounds.call(this),this.isFinite()?this._bounds.setMinMax(this.pos.x,this.pos.y,this.pos.x+this.width,this.pos.y+this.height):this._bounds.setMinMax(this.pos.x,this.pos.y,this.width,this.height)),this._bounds},e.prototype.getOpacity=function(){return this.alpha},e.prototype.setOpacity=function(t){"number"==typeof t&&(this.alpha=In(t,0,1),isNaN(this.alpha)&&(this.alpha=1),this.isDirty=!0)},e.prototype.flipX=function(t){return void 0===t&&(t=!0),this._flip.x=!!t,this.isDirty=!0,this},e.prototype.flipY=function(t){return void 0===t&&(t=!0),this._flip.y=!!t,this.isDirty=!0,this},e.prototype.transform=function(t){return this.currentTransform.multiply(t),this.updateBoundsPos(this.pos.x,this.pos.y),this.isDirty=!0,this},e.prototype.angleTo=function(t){var i,o,n=this.getBounds();if(t instanceof e){var r=t.getBounds();i=r.centerX-n.centerX,o=r.centerY-n.centerY}else i=t.x-n.centerX,o=t.y-n.centerY;return Math.atan2(o,i)},e.prototype.distanceTo=function(t){var i,o,n=this.getBounds();if(t instanceof e){var r=t.getBounds();i=n.centerX-r.centerX,o=n.centerY-r.centerY}else i=n.centerX-t.x,o=n.centerY-t.y;return Math.sqrt(i*i+o*o)},e.prototype.lookAt=function(t){var i;i=t instanceof e?t.pos:t;var o=this.angleTo(i);return this.rotate(o),this},e.prototype.rotate=function(t,e){return isNaN(t)||(this.currentTransform.rotate(t,e),this.isDirty=!0),this},e.prototype.scale=function(e,i){return this.currentTransform.scale(e,i),t.prototype.scale.call(this,e,i),this.isDirty=!0,this},e.prototype.scaleV=function(t){return this.scale(t.x,t.y),this},e.prototype.update=function(t){return this.isDirty},e.prototype.updateBounds=function(){return t.prototype.updateBounds.call(this),this.updateBoundsPos(this.pos.x,this.pos.y),this.getBounds()},e.prototype.updateBoundsPos=function(t,e){var i=this.getBounds();i.shift(t,e),void 0!==this.anchorPoint&&i.isFinite()&&i.translate(-this.anchorPoint.x*i.width,-this.anchorPoint.y*i.height),this.ancestor instanceof Yl&&!0!==this.floating&&i.translate(this.ancestor.getAbsolutePosition()),this.isDirty=!0},e.prototype.getAbsolutePosition=function(){return void 0===this._absPos&&(this._absPos=qn.pull("Vector2d")),this._absPos.set(this.pos.x,this.pos.y),this.ancestor instanceof Yl&&!0!==this.floating&&this._absPos.add(this.ancestor.getAbsolutePosition()),this._absPos},e.prototype.onAnchorUpdate=function(t,e){this.anchorPoint.setMuted(t,e),this.updateBoundsPos(this.pos.x,this.pos.y)},e.prototype.preDraw=function(t){var e=this.getBounds(),i=e.width*this.anchorPoint.x,o=e.height*this.anchorPoint.y;if(t.save(),t.setGlobalAlpha(t.globalAlpha()*this.getOpacity()),this._flip.x||this._flip.y){var n=this._flip.x?this.centerX-i:0,r=this._flip.y?this.centerY-o:0;t.translate(n,r),t.scale(this._flip.x?-1:1,this._flip.y?-1:1),t.translate(-n,-r)}void 0!==this.mask&&(t.translate(this.pos.x,this.pos.y),t.setMask(this.mask),t.translate(-this.pos.x,-this.pos.y)),!0!==this.autoTransform||this.currentTransform.isIdentity()||(t.translate(this.pos.x,this.pos.y),t.transform(this.currentTransform),t.translate(-this.pos.x,-this.pos.y)),t.translate(-i,-o),t.setTint(this.tint,this.getOpacity()),this.blendMode!==t.getBlendMode()&&t.setBlendMode(this.blendMode)},e.prototype.draw=function(t,e){},e.prototype.postDraw=function(t){t.clearTint(),void 0!==this.mask&&t.clearMask(),t.restore(),this.isDirty=!1},e.prototype.onCollision=function(t,e){return!1},e.prototype.destroy=function(){qn.push(this.currentTransform),this.currentTransform=void 0,qn.push(this.anchorPoint),this.anchorPoint=void 0,qn.push(this.pos),this.pos=void 0,void 0!==this._absPos&&(qn.push(this._absPos),this._absPos=void 0),qn.push(this._bounds),this._bounds=void 0,this.onVisibilityChange=void 0,void 0!==this.mask&&(qn.push(this.mask),this.mask=void 0),void 0!==this._tint&&(qn.push(this._tint),this._tint=void 0),this.ancestor=void 0,void 0!==this.body&&(this.body.destroy.apply(this.body,arguments),this.body=void 0),yl(this),this.onDestroyEvent.apply(this,arguments)},e.prototype.onDestroyEvent=function(){},Object.defineProperties(e.prototype,i),e}(Ha),Pl=[],Ol=0;Ol<10;Ol++)Pl.push(new Kn);for(var Il=[],kl=0;kl<5;kl++)Il.push([]);function Rl(t,e,i){for(var o=Number.MAX_VALUE,n=-Number.MAX_VALUE,r=t.length,s=0;sn&&(n=a)}i[0]=o,i[1]=n}function Bl(t,e,i,o,n,r){var s=Il.pop(),a=Il.pop(),h=Pl.pop().copy(e).sub(t),l=h.dot(n);if(Rl(i,n,s),Rl(o,n,a),a[0]+=l,a[1]+=l,s[0]>a[1]||a[0]>s[1])return Pl.push(h),Il.push(s),Il.push(a),!0;if(r){var u=0;if(s[0]a[1])u=s[0]-a[1],r.aInB=!1;else{var d=s[1]-a[0],f=a[1]-s[0];u=di?1:0}function Ll(t,e,i,o,n){for(var r=Pl.pop().copy(i.pos).add(i.ancestor.getAbsolutePosition()).add(o.pos).sub(t.pos).add(t.ancestor.getAbsolutePosition()).sub(e.pos),s=o.radius,a=s*s,h=e.points,l=e.edges,u=l.length,c=Pl.pop(),p=Pl.pop(),d=Pl.pop(),f=0,y=0;ya&&(n.aInB=!1);var _=Dl(c,d),b=!0;if(-1===_){var w=null;if(u>1&&(c.copy(l[v]),1!==(_=Dl(c,w=Pl.pop().copy(r).sub(h[v])))&&(b=!1)),b){if((f=d.length())>s)return Pl.push(r),Pl.push(c),Pl.push(p),Pl.push(d),w&&Pl.push(w),!1;n&&(n.bInA=!1,x=d.normalize(),m=s-f)}w&&Pl.push(w)}else if(1===_){if(u>1&&(c.copy(l[g]),d.copy(r).sub(h[g]),-1!==(_=Dl(c,d))&&(b=!1)),b){if((f=d.length())>s)return Pl.push(r),Pl.push(c),Pl.push(p),Pl.push(d),!1;n&&(n.bInA=!1,x=d.normalize(),m=s-f)}}else{p.copy(e.normals[y]),f=d.dot(p);var T=Math.abs(f);if((1===u||f>0)&&T>s)return Pl.push(r),Pl.push(c),Pl.push(p),Pl.push(d),!1;n&&(x=p,m=s-f,(f>=0||m<2*s)&&(n.bInA=!1))}x&&n&&Math.abs(m)l)return Pl.push(r),!1;if(n){var c=Math.sqrt(u);n.a=t,n.b=i,n.overlap=h-c,n.overlapN.copy(r.normalize()),n.overlapV.copy(r).scale(n.overlap),n.aInB=s<=a&&c<=a-s,n.bInA=a<=s&&c<=s-a}return Pl.push(r),!0},testPolygonEllipse:Ll,testEllipsePolygon:function(t,e,i,o,n){var r=Ll(i,o,t,e,n);if(r&&n){var s=n.a,a=n.aInB;n.overlapN.negateSelf(),n.overlapV.negateSelf(),n.a=n.b,n.b=s,n.aInB=n.bInA,n.bInA=a}return r}}),Fl=function(){this.a=null,this.b=null,this.overlapN=new Kn,this.overlapV=new Kn,this.aInB=!0,this.bInA=!0,this.indexShapeA=-1,this.indexShapeB=-1,this.overlap=Number.MAX_VALUE};Fl.prototype.clear=function(){return this.aInB=!0,this.bInA=!0,this.overlap=Number.MAX_VALUE,this.indexShapeA=-1,this.indexShapeB=-1,this};var Vl={pos:new Kn(0,0),ancestor:{_absPos:new Kn(0,0),getAbsolutePosition:function(){return this._absPos}}},jl=new Fl;function Ul(t,e){return!0!==t.isKinematic&&!0!==e.isKinematic&&"object"==typeof t.body&&"object"==typeof e.body&&!(!0===t.body.isStatic&&!0===e.body.isStatic)&&0!=(t.body.collisionMask&e.body.collisionType)&&0!=(t.body.collisionType&e.body.collisionMask)}var Nl={maxChildren:8,maxDepth:4,types:{NO_OBJECT:0,PLAYER_OBJECT:1,NPC_OBJECT:2,ENEMY_OBJECT:4,COLLECTABLE_OBJECT:8,ACTION_OBJECT:16,PROJECTILE_OBJECT:32,WORLD_SHAPE:64,USER:128,ALL_OBJECT:4294967295},rayCast:function(t,e){return function(t,e){void 0===e&&(e=[]);for(var i,o=0,n=$l.world.broadphase.retrieve(t),r=n.length;i=n[--r];)if(i.body&&t.getBounds().overlaps(i.getBounds())){var s=i.body.shapes.length;if(0===i.body.shapes.length)continue;var a=t,h=0;do{var l=i.body.getShape(h);zl["test"+a.shapeType+l.shapeType].call(this,Vl,a,i,l)&&(e[o]=i,o++),h++}while(h0&&(this.vel.x*=-this.bounce)),0!==e.y&&(this.vel.y=~~(.5+this.vel.y-e.y)||0,this.bounce>0&&(this.vel.y*=-this.bounce),!this.ignoreGravity)){var i=!0===this.falling?1:!0===this.jumping?-1:0;this.falling=e.y>=i,this.jumping=e.y<=-i}},Gl.prototype.forEach=function(t,e){var i=this,o=0,n=this.shapes,r=n.length;if("function"!=typeof t)throw new Error(t+" is not a function");for(arguments.length>1&&(i=e);o0){var i=this.friction.x*e,o=this.vel.x+i,n=this.vel.x-i;this.vel.x=o<0?o:n>0?n:0}if(this.friction.y>0){var r=this.friction.y*e,s=this.vel.y+r,a=this.vel.y-r;this.vel.y=s<0?s:a>0?a:0}return 0!==this.vel.y&&(this.vel.y=In(this.vel.y,-this.maxVel.y,this.maxVel.y)),0!==this.vel.x&&(this.vel.x=In(this.vel.x,-this.maxVel.x,this.maxVel.x)),this.falling=this.vel.y*Math.sign(this.force.y)>0,this.jumping=!this.falling&&this.jumping,this.ancestor.pos.add(this.vel),0!==this.vel.x||0!==this.vel.y},Gl.prototype.destroy=function(){qn.push(this.bounds),qn.push(this.vel),qn.push(this.force),qn.push(this.friction),qn.push(this.maxVel),this.shapes.forEach((function(t){qn.push(t,!1)})),this.onBodyUpdate=void 0,this.ancestor=void 0,this.bounds=void 0,this.vel=void 0,this.force=void 0,this.friction=void 0,this.maxVel=void 0,this.shapes.length=0,this.setStatic(!1)};var Xl=function(t,e){this.removeChildNow(t,e)},Hl=0,Yl=function(t){function e(e,i,o,n,r){void 0===e&&(e=0),void 0===i&&(i=0),void 0===o&&(o=$l.viewport.width),void 0===n&&(n=$l.viewport.height),void 0===r&&(r=!1),t.call(this,e,i,o,n),this.pendingSort=null,this.root=r,this.children=void 0,this.sortOn=$l.sortOn,this.autoSort=!0,this.autoDepth=!0,this.clipping=!1,this.onChildChange=function(t){},this.enableChildBoundsUpdate=!1,this.backgroundColor=qn.pull("Color",0,0,0,0),this.drawCount=0,this.autoTransform=!0,this.isKinematic=!1,this.anchorPoint.set(0,0),!0===this.root&&qr(jr,this.updateBounds.bind(this,!0))}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.reset=function(){this.pendingSort&&(clearTimeout(this.pendingSort),this.pendingSort=null);for(var t,e=this.getChildren(),i=e.length;i>=0;t=e[--i])t&&!0!==t.isPersistent&&this.removeChildNow(t);void 0!==this.currentTransform&&this.currentTransform.identity(),this.backgroundColor.setColor(0,0,0,0)},e.prototype.addChild=function(t,i){return t.ancestor instanceof e?t.ancestor.removeChildNow(t):t.isRenderable&&(t.GUID=Yc.createGUID(t.id)),t.ancestor=this,this.getChildren().push(t),void 0!==t.pos&&("number"==typeof i?t.pos.z=i:!0===this.autoDepth&&(t.pos.z=this.getChildren().length)),!0===this.autoSort&&this.sort(),"function"==typeof t.onActivateEvent&&this.isAttachedToRoot()&&t.onActivateEvent(),!0===this.isAttachedToRoot()&&$l.repaint(),this.enableChildBoundsUpdate&&this.updateBounds(!0),t.body instanceof Gl&&$l.world.addBody(t.body),this.onChildChange.call(this,this.getChildren().length-1),t},e.prototype.addChildAt=function(t,i){if(i>=0&&i1&&(i=e);o=0&&t=0&&e0?e[0]:null},e.prototype.getChildren=function(){return void 0===this.children&&(this.children=[]),this.children},e.prototype.updateBounds=function(e){void 0===e&&(e=!1),t.prototype.updateBounds.call(this);var i=this.getBounds();return!0!==e&&!0!==this.enableChildBoundsUpdate||this.forEach((function(t){t.isRenderable&&(t.getBounds().isFinite()&&i.addBounds(t.getBounds()))})),i},e.prototype.isAttachedToRoot=function(){if(!0===this.root)return!0;for(var t=this.ancestor;t;){if(!0===t.root)return!0;t=t.ancestor}return!1},e.prototype.updateBoundsPos=function(e,i){var o=this;return t.prototype.updateBoundsPos.call(this,e,i),this.forEach((function(t){t.isRenderable&&t.updateBoundsPos(t.pos.x+e-o.pos.x,t.pos.y+i-o.pos.y)})),this.getBounds()},e.prototype.onActivateEvent=function(){this.forEach((function(t){"function"==typeof t.onActivateEvent&&t.onActivateEvent()}))},e.prototype.removeChild=function(t,e){if(!this.hasChild(t))throw new Error("Child is not mine.");Yc.function.defer(Xl,this,t,e)},e.prototype.removeChildNow=function(t,e){if(this.hasChild(t)&&this.getChildIndex(t)>=0){"function"==typeof t.onDeactivateEvent&&t.onDeactivateEvent(),t.body instanceof Gl&&$l.world.removeBody(t.body),e||!1===qn.push(t,!1)&&"function"==typeof t.destroy&&t.destroy();var i=this.getChildIndex(t);i>=0&&(this.getChildren().splice(i,1),t.ancestor=void 0),!0===this.isAttachedToRoot()&&$l.repaint(),this.enableChildBoundsUpdate&&this.updateBounds(!0),this.onChildChange.call(this,i)}},e.prototype.setChildsProperty=function(t,i,o){this.forEach((function(n){!0===o&&n instanceof e&&n.setChildsProperty(t,i,o),n[t]=i}))},e.prototype.moveUp=function(t){var e=this.getChildIndex(t);e-1>=0&&(this.swapChildren(t,this.getChildAt(e-1)),this.isDirty=!0)},e.prototype.moveDown=function(t){var e=this.getChildIndex(t);e>=0&&e+10){var i=this.getChildren();i.splice(0,0,i.splice(e,1)[0]),t.pos.z=i[1].pos.z+1,this.isDirty=!0}},e.prototype.moveToBottom=function(t){var e=this.getChildIndex(t),i=this.getChildren();e>=0&&e0||i.floating)&&Hl++,i.inViewport=!1,bu.current().cameras.forEach((function(t){t.isVisible(i,o)&&(i.inViewport=!0)})),this.isDirty|=(i.inViewport||i.alwaysUpdate)&&i.update(e),Hl>0&&Hl--):this.isDirty|=i.update(e));return t.prototype.update.call(this,e)},e.prototype.draw=function(t,e){var i=!1,o=this.getBounds();this.drawCount=0,!1===this.root&&!0===this.clipping&&!0===o.isFinite()&&t.clipRect(o.left,o.top,o.width,o.height),t.translate(this.pos.x,this.pos.y),this.backgroundColor.alpha>1/255&&t.clearColor(this.backgroundColor);for(var n,r=this.getChildren(),s=r.length;n=r[--s];)n.isRenderable&&(i=!0===n.floating,(n.inViewport||i)&&(i&&(t.save(),t.resetTransform()),n.preDraw(t),n.draw(t,e),n.postDraw(t),i&&t.restore(),this.drawCount++))},e}(Ml),Wl=[];function ql(t,e,i,o,n){if(void 0===i&&(i=4),void 0===o&&(o=4),void 0===n&&(n=0),Wl.length>0){var r=Wl.pop();return r.world=t,r.bounds=e,r.max_objects=i,r.max_levels=o,r.level=n,r}return new Zl(t,e,i,o,n)}var Kl=new Kn,Zl=function(t,e,i,o,n){void 0===i&&(i=4),void 0===o&&(o=4),void 0===n&&(n=0),this.world=t,this.bounds=e,this.max_objects=i,this.max_levels=o,this.level=n,this.bounds=e,this.objects=[],this.nodes=[]};Zl.prototype.split=function(){this.level;var t=this.bounds.width/2,e=this.bounds.height/2,i=this.bounds.left,o=this.bounds.top;this.nodes[0]=ql(this.world,this.bounds,{left:i+t,top:o,width:t,height:e},this.max_objects,this.max_levels),this.nodes[1]=ql(this.world,this.bounds,{left:i,top:o,width:t,height:e},this.max_objects,this.max_levels),this.nodes[2]=ql(this.world,this.bounds,{left:i,top:o+e,width:t,height:e},this.max_objects,this.max_levels),this.nodes[3]=ql(this.world,this.bounds,{left:i+t,top:o+e,width:t,height:e},this.max_objects,this.max_levels)},Zl.prototype.getIndex=function(t){var e,i=t.getBounds(),o=-1,n=(e=!0===t.isFloating?this.world.app.viewport.localToWorld(i.left,i.top,Kl):Kl.set(t.left,t.top)).x,r=e.y,s=i.width,a=i.height,h=this.bounds.left+this.bounds.width/2,l=this.bounds.top+this.bounds.height/2,u=rl;return nh&&(u?o=0:c&&(o=3)),o},Zl.prototype.insertContainer=function(t){for(var e,i=t.children.length;i--,e=t.children[i];)!0!==e.isKinematic&&(e instanceof Yl?("rootContainer"!==e.name&&this.insert(e),this.insertContainer(e)):"function"==typeof e.getBounds&&this.insert(e))},Zl.prototype.insert=function(t){var e=-1;if(this.nodes.length>0&&-1!==(e=this.getIndex(t)))this.nodes[e].insert(t);else if(this.objects.push(t),this.objects.length>this.max_objects&&this.level0){var o=this.getIndex(t);if(-1!==o)i=i.concat(this.nodes[o].retrieve(t));else for(var n=0;n0){var i=this.getIndex(t);-1!==i&&(e=zn(this.nodes[i],t))&&this.nodes[i].isPrunable()&&this.nodes.splice(i,1)}return!1===e&&-1!==this.objects.indexOf(t)&&(zn(this.objects,t),e=!0),e},Zl.prototype.isPrunable=function(){return!(this.hasChildren()||this.objects.length>0)},Zl.prototype.hasChildren=function(){for(var t=0;t0||e.objects.length>0)return!0}return!1},Zl.prototype.clear=function(t){this.objects.length=0;for(var e=0;ethis.world.fps},Jl.prototype.getParentContainer=function(t){return t.ancestor},Jl.prototype.repaint=function(){this.isDirty=!0},Jl.prototype.update=function(t,e){if(++this.frameCounter%this.frameRate==0){for(this.frameCounter=0,Wr(wr,t),this.accumulator+=Kc.getDelta(),this.accumulator=Math.min(this.accumulator,this.accumulatorMax),this.updateDelta=Kc.interpolation?Kc.getDelta():this.stepSize,this.accumulatorUpdateDelta=Kc.interpolation?this.updateDelta:Math.max(this.updateDelta,this.updateAverageDelta);this.accumulator>=this.accumulatorUpdateDelta||Kc.interpolation;)if(this.lastUpdateStart=globalThis.performance.now(),!0!==bu.isPaused()&&Wr(Ar,t),this.isDirty=e.update(this.updateDelta)||this.isDirty,this.lastUpdate=globalThis.performance.now(),this.updateAverageDelta=this.lastUpdate-this.lastUpdateStart,this.accumulator-=this.accumulatorUpdateDelta,Kc.interpolation){this.accumulator=0;break}Wr(Tr,this.lastUpdate)}},Jl.prototype.draw=function(t){!0===Vc.isContextValid&&(this.isDirty||this.isAlwaysDirty)&&(Wr(Er,globalThis.performance.now()),Vc.clear(),t.draw(Vc),this.isDirty=!1,Vc.flush(),Wr(Sr,globalThis.performance.now()))};var $l=new Jl;qr(dr,(function(){$l.init()}));var tu,eu=Math.min,iu=Math.max,ou=new Kn,nu=function(t){function e(e,i,o,n){t.call(this,e,i,o-e,n-i),this.AXIS={NONE:0,HORIZONTAL:1,VERTICAL:2,BOTH:3},this.bounds=qn.pull("Bounds"),this.smoothFollow=!0,this.damping=1,this.near=-1e3,this.far=1e3,this.projectionMatrix=new sr,this.invCurrentTransform=new hr,this.offset=new Kn,this.target=null,this.follow_axis=this.AXIS.NONE,this._shake={intensity:0,duration:0,axis:this.AXIS.BOTH,onComplete:null},this._fadeOut={color:null,tween:null},this._fadeIn={color:null,tween:null},this.name="default",this.setDeadzone(this.width/6,this.height/6),this.anchorPoint.set(0,0),this.isKinematic=!1,this.bounds.setMinMax(e,i,o,n),this._updateProjectionMatrix(),qr(br,this.reset,this),qr(jr,this.resize,this)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._updateProjectionMatrix=function(){this.projectionMatrix.ortho(0,this.width,this.height,0,this.near,this.far)},e.prototype._followH=function(t){var e=this.pos.x;return t.x-this.pos.x>this.deadzone.right?e=eu(t.x-this.deadzone.right,this.bounds.width-this.width):t.x-this.pos.xthis.deadzone.bottom?e=eu(t.y-this.deadzone.bottom,this.bounds.height-this.height):t.y-this.pos.y0&&(this._shake.duration-=e,this._shake.duration<=0?(this._shake.duration=0,this.offset.setZero(),"function"==typeof this._shake.onComplete&&this._shake.onComplete()):(this._shake.axis!==this.AXIS.BOTH&&this._shake.axis!==this.AXIS.HORIZONTAL||(this.offset.x=(Math.random()-.5)*this._shake.intensity),this._shake.axis!==this.AXIS.BOTH&&this._shake.axis!==this.AXIS.VERTICAL||(this.offset.y=(Math.random()-.5)*this._shake.intensity)),this.isDirty=!0),!0===this.isDirty&&Wr(Xr,this.pos),null==this._fadeIn.tween&&null==this._fadeOut.tween||(this.isDirty=!0),this.currentTransform.isIdentity()?this.invCurrentTransform.identity():this.invCurrentTransform.copy(this.currentTransform).invert(),t.prototype.update.call(this,e)},e.prototype.shake=function(t,e,i,o,n){0!==this._shake.duration&&!0!==n||(this._shake.intensity=t,this._shake.duration=e,this._shake.axis=i||this.AXIS.BOTH,this._shake.onComplete="function"==typeof o?o:void 0)},e.prototype.fadeOut=function(t,e,i){void 0===e&&(e=1e3),this._fadeOut.color=qn.pull("Color").copy(t),this._fadeOut.tween=qn.pull("Tween",this._fadeOut.color).to({alpha:0},e).onComplete(i||null),this._fadeOut.tween.isPersistent=!0,this._fadeOut.tween.start()},e.prototype.fadeIn=function(t,e,i){void 0===e&&(e=1e3),this._fadeIn.color=qn.pull("Color").copy(t);var o=this._fadeIn.color.alpha;this._fadeIn.color.alpha=0,this._fadeIn.tween=qn.pull("Tween",this._fadeIn.color).to({alpha:o},e).onComplete(i||null),this._fadeIn.tween.isPersistent=!0,this._fadeIn.tween.start()},e.prototype.focusOn=function(t){var e=t.getBounds();this.moveTo(t.pos.x+e.left+e.width/2,t.pos.y+e.top+e.height/2)},e.prototype.isVisible=function(t,e){return void 0===e&&(e=t.floating),!0===e||!0===t.floating?Vc.overlaps(t.getBounds()):t.getBounds().overlaps(this)},e.prototype.localToWorld=function(t,e,i){return(i=i||qn.pull("Vector2d")).set(t,e).add(this.pos).sub($l.world.pos),this.currentTransform.isIdentity()||this.invCurrentTransform.apply(i),i},e.prototype.worldToLocal=function(t,e,i){return(i=i||qn.pull("Vector2d")).set(t,e),this.currentTransform.isIdentity()||this.currentTransform.apply(i),i.sub(this.pos).add($l.world.pos)},e.prototype.drawFX=function(t){this._fadeIn.tween&&(t.save(),t.resetTransform(),t.setColor(this._fadeIn.color),t.fillRect(0,0,this.width,this.height),t.restore(),1===this._fadeIn.color.alpha&&(this._fadeIn.tween=null,qn.push(this._fadeIn.color),this._fadeIn.color=null)),this._fadeOut.tween&&(t.save(),t.resetTransform(),t.setColor(this._fadeOut.color),t.fillRect(0,0,this.width,this.height),t.restore(),0===this._fadeOut.color.alpha&&(this._fadeOut.tween=null,qn.push(this._fadeOut.color),this._fadeOut.color=null))},e.prototype.draw=function(t,e){var i=this.pos.x+this.offset.x,o=this.pos.y+this.offset.y;e.currentTransform.translate(-i,-o),t.setProjection(this.projectionMatrix),t.clipRect(0,0,this.width,this.height),this.preDraw(t),e.preDraw(t,this),e.draw(t,this),this.drawFX(t),e.postDraw(t,this),this.postDraw(t),e.currentTransform.translate(i,o)},e}(Ml),ru={cameras:[]},su=function(t){this.cameras=new Map,this.lights=new Map,this.ambientLight=new nr(0,0,0,0),this.settings=Object.assign(ru,t||{})};su.prototype.reset=function(){var t=this;if(this.settings.cameras.forEach((function(e){t.cameras.set(e.name,e)})),!1===this.cameras.has("default")){if(void 0===tu){var e=Vc.getWidth(),i=Vc.getHeight();tu=new nu(0,0,e,i)}this.cameras.set("default",tu)}$l.reset(),this.onResetEvent.apply(this,arguments)},su.prototype.update=function(t){var e=$l.world.update(t);return this.cameras.forEach((function(i){!0===i.update(t)&&(e=!0)})),this.lights.forEach((function(i){!0===i.update(t)&&(e=!0)})),e},su.prototype.draw=function(t){var e=this;this.cameras.forEach((function(i){i.draw(t,$l.world),0!==e.ambientLight.alpha&&(t.save(),e.lights.forEach((function(e){t.setMask(e.getVisibleArea(),!0)})),t.setColor(e.ambientLight),t.fillRect(0,0,i.width,i.height),t.clearMask(),t.restore()),e.lights.forEach((function(e){e.preDraw(t,$l.world),e.draw(t,$l.world),e.postDraw(t,$l.world)}))}))},su.prototype.destroy=function(){this.cameras.clear(),this.lights.forEach((function(t){t.destroy()})),this.lights.clear(),this.onDestroyEvent.apply(this,arguments)},su.prototype.onResetEvent=function(){"function"==typeof this.settings.onResetEvent&&this.settings.onResetEvent.apply(this,arguments)},su.prototype.onDestroyEvent=function(){"function"==typeof this.settings.onDestroyEvent&&this.settings.onDestroyEvent.apply(this,arguments)};var au=function(t){function e(e,i,o,n){t.call(this,e,i,o,n),this.barHeight=n,this.anchorPoint.set(0,0),qr(Pr,this.onProgressUpdate,this),qr(Ur,this.resize,this),this.anchorPoint.set(0,0),this.progress=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.onProgressUpdate=function(t){this.progress=~~(t*this.width),this.isDirty=!0},e.prototype.draw=function(t,e){t.setColor("black"),t.fillRect(this.pos.x,e.centerY,t.getWidth(),this.barHeight/2),t.setColor("#55aa00"),t.fillRect(this.pos.x,e.centerY,this.progress,this.barHeight/2)},e.prototype.onDestroyEvent=function(){Zr(Pr,this.onProgressUpdate),Zr(Ur,this.resize)},e}(Ml),hu=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.onResetEvent=function(){$l.world.backgroundColor.parseCSS("#202020"),$l.world.addChild(new au(0,Vc.getHeight()/2,Vc.getWidth(),8),1),cc.load({name:"melonjs_logo",type:"image",src:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAMAAABrrFhUAAAA8FBMVEUgICBrqDHRZVtqpzEhJCAjKCBurTIfHyDQZFptrDEWAB8OAB7VZ1wtIiIAEhYlISDYaF4SAB4pIiEAFhkcFh8eGyBopDAMAB5noS8kKyAAGhtjmy4bEB9lni8ZBR/HYFdPeim/XFQ9XCUaCh9flS1VhCtSfyorOSEVHh4HHB1EZyatVExhmC5ajCxHbSc0SyMuQCInMiFKcSgxRSI6VSRBYiWdTUZdki09JyZ8PzpYiSs3UCRlNjK1WE9ckC1MdShbjywyJCONRkDKYliUSUNeMzBDKShXMC2kUEl1PDeEQj1OLStnNjNxOjZsODQAAAcMh1CFAAAU4UlEQVR42uyaa3fSMBjHk5EQkgClkBZKoXblNhlswIooc2N6pp7jUb//x/FpRbnt4JWwzv7eraQvfs/zby7tUEpKSkpKSkpKSkpKSkpKSkqKTsg30P8E+FIArJllqQaglMXQt6tPuhogGSlaLWFKKU2hEB33eqPRqDemRAlhRhdbVjwIBj8xogajhpBSkNH1dOJ37mYDt1mr2UCt1mwOZned7qQfjhxPVs0WovTpRIFFNkpIU42CSWfm2phnIzjHP+DLS9hutjuL4IqZUigC9yU/CWDBhBROOJkPbBxL4swKjDf/jEvBbXe4CMeiKixKEx0EAq03JbqeDJs4Ul9a7mE5AqqAazM/pJCb5JaAUmWa42nHBflYDf8y8WC4qznv9yRKZAUIRUKO+/Maz/J1+d8ugu0rK3kVoNSTVhDZr8v/WRGyQw8lC0KJMK989+/sVzXILiRNzmrACGXSC4Z2lsf2f08GN2lyHgJCLUn6bRw1/2dim+A9hIKiJMAQ6NOJu7f5a7r8B+u/7N7BAzMZBaBIkkkz0t83sfMsgDHsgN1BOybaFNvww2qblMgEUGKqi2aU/X3u2HZnHf8iuL4aO0S1PKDVQM54dBn0F50718bfq5CwOYBQIaaDVfd37MG91u5MwhER8WHQU8qC2wCEmFJefEYUrBdedGe15b4xQasAtaqXt/wh/W87W1679YNeCxQbjNCItTchBFheRErAmHEYb575ch/Qeuz9ByXpdHH2QX2wx4NuMBbSbJCfn3IJWZ4dndBvZ6Bytt949A8AbZjT6OHftQeDTHtx2VgebhFj6KfAmGisJaS46k+mj/4sELW/N+QP6UOIXf/Sqwq0p/F7okA8KU312BcAqmTf3k1/1Hx7HlgyskfsL96h7b3XMNCRcYQzz+KH9N3FSC57fxiYUTDOWLmAjgcjpBo2d9oPKxdv95Fs0UPGl5XPinWDVYqGwdBxYFQJH/Mdfc5nQUuyw77KYYXKm/ub09PzV/Xn5SNVAOJ/B/Hf0W8HwiQUHRTwf/2slM/nS6WbN/XjZIDK6534w8zv9r1In6GDUq6/y+VzMaVTdGYg7cDj38/wHX17YknQPzSGUb8p5U5icqX7ovaZkBFk+nw7/hx3epIdvPtAufIpf7Ikl39W0B0BRpToQPy32j8IZUPPW+xC8S0E4Afv6noLwGgL3WZ32u8roetbTqF4v1aA/JdKGWmEUc8ZgP/m0j+4riKKNFEoflwrQO6D1gQwKnrulj/mXUto048XgZV+/vQMaYQ5otfc8s/Wpprav5oFz5cRgHXwo85VgFHw55nN+Ld7UvMnPOP5y2elXMRJ6VzDA7DPH2e7XstBemHl+vubfAk4efGc6SsAo9542x9fVJH+D/lQgfrnF+fn9++KWv0bdHP+z3A7rFKC9MMMo1KsVIr1ssYHgFiqvemfdUemg45EuVAuFMpIH4SI4ZZ/2xEOQ8eCAUgjVHa3/G+txuN/Z/+vYE51suU/9NT/5G8GIL3uPxfsCfwf11fyrW1FgRiGTkna0vZpYHQUXRHdVZBhvCMorP7/V+3oyprgPiy2Dxk2HzA06TknpyHz19CjVfcpf9kj+6SBtqgcMPz/q/vPdPgwLP/DsCM1f2vTf7Ifap5/hYXQ/FGnX7S16LdABADc23oqVP91kYfgrU5b1GxKHSCo7tILzR/z9eJ8nliv0zqAMZ8ATEJfaP6+7jlj3CDlXpHVfsfnH+eyn4kMzMdGQRNO7fNkGEXbGTigBkDq1lZzU07BnaXzIab6LCMAuEEmdWcD8+ax9uNTckxFqyWxwKBgKXZrzerHtAbcPhFQ0R8oAExdChXADIt1Tz0KkGi9TjML1CBLqgA0YZGIFZhZqVNUtf9GCdBbF0IF4Be/vvQYz6pyxhRwH+QC4CpXoAgELvE6iKMtfwJLzv+5YU2iDasOR0MJMBdMgFsMK6ICrppGY+rELGAdhFpAYoXYgRdBRzsLUtB3L/z+7zpITFvHYhQAdorGyQudAdCuNe8qoJjVNgYAF0M+9iFbAe9tK2w4BKIIdVJ0CLASv7jeBFo7cBwCrxcgP1IAjEv5ALipwII1gmGGMR4A2uEB+blJK4x4E1kdZhQA5xYowPe58z3lwKfH199WbQRAc/LpuwPWu17k0qaFCnANAgHSvKJcZdMCxJtgOsQuKsexG2uCwMxa8O8aUa/axHZCe/OUZA42ag0Avqi5ll2nYSAaRQEbZI+NrbKwEFFYJURCiEcpqEE0aZOmBfH/f4PLQ+OEttwxLKg3jq5Or3TG9jyOJ/FjgSIGZvBRLhB1oFvi7/3X5CIDhZHodOLtfyyEXUlh0IGzyDoQM+rbGljFRNaE2ZOXj0MT3pALxGQo8v1z1ILRBb6+hTJoZgLvBoMYRjZAeALuv/v/hZCzeTxWRIu/iwEvbqQMmKcxUekwHqF/KQSo74OCVX8rCyQoC9C/QYBZENZTcYMlRkqjWFlVZfn9OWGXwcoDVFKewD+fo33v9AwQD3HGFqH5XsXHACWVA7BObfp+YyoL4BKpLvb+MuvBlVn1q03iwIONVNFy1jPUBvGyPOaGJT4GGOPAHd9v66bIuy7Pi3p5GKoTrYSdeRXaQrk7LD02P2Gbejv2FqrYdugFxgHM5ChBEFNpIn/czxaObdMJrcXP4Z94sdxZUGZmAZmA+7ws0im4a9oenFQsKg58uE8NhBgE43+LlBysa65FmvJweIppMzobsmJKWve+EFrMsUJ3+wEqGaUKPA9XkSYNhj0xUd8xYkbBsU516lnMhv+LFs1nKCX7BZYVjIUQZ8FC830PRjG6LnSqBzCSPcloP0U9IaLZhknntlynSGhOS+yV/bWuEla1EPwSONXdAc0VKYv4ZcyoWQBGEDp/2zdI/zyrYgfyR6CAL7nm18BC18pJFnlLhuUMsScgvs9CwjrXyOgCq/Q9yIQpBa0Q/DqW6+JoJSNX9AGNT4S2uezhx8B9kBvu2AZGjpQubwLRglHKLnX6Z7DodmgBQjDHkji7O3+MoFFZgITx+pLiMdiChL1G7DUL8DWQLBDPw3dGh5Yjn38YT+TuMrhuvy71HbGiGyzRAg8DVYQQzO49evYg7ArLiP7v82/7n3OcZ8u6F36+IzjfVCqivwkTetqNCHpP2nvdfS74PJTr7zH+NM9pTflPwTMbcN1YkgEwFcL7EXIddf85LQ1SrtZ8FsO6uh13w7Abt02nZ7tjbiuR1+2Xn2COYPxaCCM3+KCqQz86fnpDSgOkPQg+i/dtb8E6P/zUt8Vln+/pF4fVD7D103Gbz8B8cIbULeJlHXqLM2ZQZDHEuGMnpsF+m0Alpfk+pKmAtZdCJNf5wUGJYAervRB8eggotSH2SlAy2myBchi14VbCxKlzka+BScWCqofBUASYCbsVKAQzD65g7CbmEl9OCTQtocEm74ysiPsq6imhilLVxANyUfR2o9i0SN7YstH8DP+9db+DYcD/iFsgqnXWd02SXAc9CrLpx124yFd2w35HlQ4tEPCHxPwO9haY7oG1NbQbMnLPYPbw2YNIMYAlxeTIDlP+WP0axAUhTrGzefUXEeK+kXetvU3DUDQtqdxKSQwJG1romIbQSLWhfuChFRioG92rsP//c3AiwbErxfKxBMoFf/am5cyPc+899/hDkTOJHZ4IKMQQrC6irDZTh+YVa9VHlsbuyK6uEe7tINCdK9hVutGkUgL/S0pox5cEchPX2X9qrXVfuIQIoAcsDN2sj+yb5XuVU8JZlgkpZ+PMzMbhvG0AwKqfteh6O3VZbqL8J4tNhggAluxxBgaNEIK7A/BNWvkWC7DCV/X+3qsMU0+LkqiS75NyMUhD+LqqrjdT51TPlQeAVTZ11nXpW1nm1sDOWhA1blBBcGEincwV1crqwV7Vq6r0U8ZxiCEevONwtzaaKnGS6X3lCGRHSwaAuyzU4Uyr5tjaLv4wL6+cm3BbxwFw9pSujJsfowBY2UfAutHeyRftZGwXb4RxY2+XDQHAgQGAlblMHI382xeRABwnSicBpyDYjS/HADYILhiYFAMA6k8DUDgANCQAfue0bPy3AeC3QD48AGK2gHLOgJFwAKhDENfgvwkArkGGCH0SDcAuEeKp8MhQYcEAtFT4EU2Fn9nB0HvJAExQHEMwRIfDogFgw2GI7eGXIhkANyESlxITvQLc/2UwAO+cLILgW4BMikIg46TF01QwAGxaHOwBuoI9uQBwhRGMPbs09nouFwCo3fAlLG6GCooFAMVRrGVaXTUz5XGxAHjK44xAQioArUBiZgskYiUyUrcAKhygdDEiqT2xPACZDS6qSe2+y04hIROAFM5aSO6F2qe5pmxDAMBJivJCydFhqsiOK9SHhQLQNb/ahTHFycsglh7EFogB4IQUSyORsqT841Aay8aBxR7VqYlQHPfK33SysAUVwY/qzF/ZO5kRfKLljAkidJMfZaEPgJXVD+ubNnUZqL0yS0upwKAOWidW7ZY++UhSIRQxp79KmAvth8sIha5Q8VZJ0B6YdquFaZlBTjyl7UMQEQcXyG8fZ93TN+MHCJv75l4bzWQ3+RhlRI8A2UzGozpEdpvjgSDRYALh7TY6qS+PWpHvBcT9nmdizk+nmQHsNq+xAHoRuLkYt21k32qlQ/01D0es0gVUCIcAZUimdbG+u7z/XOP7PQgsiu395WpbNKUKaEKqNmbyeZFoNiEKOscrDHkf1bxpmz91GdZY2HWHhjWHlt3kRc6bS/I2IoijIkyadZ7nJTNZU5PpByHAAmhXvkgfGqXUACY77fOc5h2SeXRciTNQ2Gkef56oOAsNtF1KQwCRIN/9CxqFZII8E5WXFpdFiZeW2oNHyRrIhSAfGrMHUCUfrKN8yAI+oYyUkFK2HaVFW2khtR/rPzDal+UkZGjwzOMAwRSJkReScwyi5QGdEvxI2wqZSEdNeGryRNYl018dT9X/zlIzndt0eHR4MNSnVXyPgoAGR3tKYidJ8dOa4PRCTTD2eRl7CUyEmAqirIHqbuxveuOcAjIuApwAHjNFKqmC5lsZIdH8zGuuzp8mYJQCTgGo/FARix7KMSQzYzn8vAAU8gFGcPQS+DJ8AH4rndH8PqQ3S35yd2U7isNAMFHasWw/WcopQhRBIBICQsggJCIx/P9XrTMcDWbZY5YQs36Yh4EZXNXl7vJB3Hkjd7fCkCfc3/ZGbgh4zp5xwYbuBdBWGr00pF2OrT0E6p/sIH6V1uRHTANeDv1NE/j4rB1mFYMHgTYJsJtnrGORL1W9w107NA4/u+gqjL+cFXprU2+cbSvA828GxFKImwRmLpDiji6WwCdvsuDjOU1MA7iI+WzXBj4MmfFpQKuAeC7wOdss6n8afe8qjaUaqNdRWoeEPt1g4wPGpFkMUJKuIruDAaA/ahsToVmXr4NnYanq4GI4eq4waLKJZxADYF12MvFIEO3EZKPLTMxxhADo1ztK0zgtxIND3JhieKnTeKEEhacT4F9OHOB+qRkMXHZwcCOzgwxFv76IfKszMxgg4bqNDDa26cSs01hsmKMtDlj9X8La4sfAdHkvHn6vHhngtGcGAJT+EX+3RxnwDDV+GPf7rIYUQGQa/tyj3RFA063GwN4f98cAJT6f3HaIDaukO1FS8GCuMTCveGz10yhJvIWGP+rWolKSFkMtEw7LvuaGMa/yW/y208iO8GMxXEXslnRnE8LrUyEFIpqhht8edb5aRWNeawzYLJMvnxhQsMKZw16KHw2RzoC7iF+dCOJ0PGX2a/Hj0sNFA5gIPl4zDFD+KzX8dfzhoyh0zwCzP/nrREA8MQu0HtjOSHTeAcwDxcDVPt/d1iGQVygQiKx2rq1FIPh4BX7MA/G5AOEwCNZKBN3PjuJEbCLX0cZgVL90kY6SxFcW5E4EZegTq9N+ECssdszWyZ8X/DX4UYc+n+oydFx7SgR0Z4sogEzWgc684x6s9PV1GMS6DbsmguGMc9IRBUC4HM3d+w+d9jIlAxKOIi0R2A5z85HkHWRDCiQV5YIxR8PP7KWAfiblsSxyV++P6tDhQz5dBS38emLfhV9ZkKa/Q8xknKAdu04Fiw/OLfKssFCLAJf1xEH4PZpQ3ZBvMCdddcvejxLhE3hO8KnkzQ7hX8t/LfvdnwAiiz327IoCli9jwUFxQP8l9kBgLKzNvhX/Pc/zpo+JqD4M+NpBEVzlAjeaNqkYA4Hv00s8wetswJDj6/BPfQNOKlCAsN7+rIPtSMjXKy4SIH8rBGoBEPCkqGYHx8XMfx3+wUdombE9RzhfBg8ocIPDUnHAfULgr0JP1R8Vs13kovZvEq2TqfCbsC1xMkXFzsY46RxsPxuQioRWCQC/RA5AFPhUCL9cL6JW+j+Dz1rXTfuXPzaSiNEcY3XHgT3YLRvCheSeBQR5oKpdIQfLS6WQUM4mA8e9Qa/7TWPCf/FpfLwcIgU6B0zBGe6zWVklMlQ8jD2/BX0mg3pjLkUo07jcZIsWPEP0OvwgA9l78r9vBAT5jB5QcESjYDlRvpsuN01dES/lnEupfqQeVKtmtMx2+dBhJ/APmHSdaWGW+rERPyymAVKgtRMq5rYIg2g4z/P9YbFY7PN8PoyC4wuI/QH8yUokxDIu/Ofk7YVFFmllSyfhjJCxFvIXaqa99Ah+MKnF2KzBf0dBElbrAdNk8IAKbL9/txJIlK1EajT8Yzb0hTXb2pjC/7k5X55qvqzCxHT458mL4M10iDL4bsMSEuxGifDeAv5RBcBFPDsEWMq/H3vmOttlIbhFzKt8v5SBL/hquW85QBL+Xvmuk3+W/H2CfyuDccvBIrKxsP859jb0LNqvy1RweK/gYwMCiZDVKMsDdlLCr2m4vEWBD+bTTcFFCu8XfI0Dr53XjbL9yeRh/dNgo0+yo+10s1LcJW+O/ryo05IQ8ricZYt5pGg4Wr6bxo6/taP5YTprKh624AmYavn+urVgfC6F9KpSef7JYTtQ7jcInLYFyhcP8sMkW27KwudCcA/I+4f+Tgnn+a5CKCT3SVWs6ros63q1qgg9/do7vY3+L6H/0a4dqgAAg1AULYPBsjax+P//uA3TwuJAxj3RJiYf7xJ5rBVVLNzHcA8T7fkZl6iePpchSDvs8b9XBwAAAAAAqGQCc31B4/xqSwwAAAAASUVORK5CYII="},(function(){$l.world.addChild(new pc(Vc.getWidth()/2,Vc.getHeight()/2,{image:"melonjs_logo",framewidth:256,frameheight:256}),2)}))},e.prototype.onDestroyEvent=function(){cc.unload({name:"melonjs_logo",type:"image"})},e}(su),lu=-1,uu=-1,cu=!1,pu={},du={color:"",duration:0},fu=null,yu=null,gu=0;function vu(){-1===uu&&-1!==lu&&(uu=globalThis.requestAnimationFrame(mu))}function mu(t){var e=pu[lu].stage;$l.update(t,e),$l.draw(e),-1!==uu&&(uu=globalThis.requestAnimationFrame(mu))}function xu(){globalThis.cancelAnimationFrame(uu),uu=-1}function _u(t){xu(),pu[lu]&&pu[lu].stage.destroy(),pu[t]&&(pu[lu=t].stage.reset.apply(pu[lu].stage,yu),vu(),Wr(mr),fu&&fu(),$l.repaint())}qr(dr,(function(){bu.set(bu.LOADING,new hu),bu.set(bu.DEFAULT,new su),qr(xr,(function(){bu.change(bu.DEFAULT,!0)})),"function"==typeof globalThis.addEventListener&&(globalThis.addEventListener("blur",(function(){bu.pause(!0)}),!1),globalThis.addEventListener("focus",(function(){bu.resume(!0),aa()}),!1)),void 0!==globalThis.document&&"function"==typeof globalThis.document.addEventListener&&globalThis.document.addEventListener("visibilitychange",(function(){"visible"===globalThis.document.visibilityState?bu.resume(!0):bu.pause(!0)}),!1)}));var bu={LOADING:0,MENU:1,READY:2,PLAY:3,GAMEOVER:4,GAME_END:5,SCORE:6,CREDITS:7,SETTINGS:8,DEFAULT:9,USER:100,stop:function(t){void 0===t&&(t=!1),lu!==this.LOADING&&this.isRunning()&&(xu(),!0===t&&t(),gu=globalThis.performance.now(),Wr(gr))},pause:function(t){void 0===t&&(t=!1),lu===this.LOADING||this.isPaused()||(cu=!0,!0===t&&lh(),gu=globalThis.performance.now(),Wr(fr))},restart:function(t){void 0===t&&(t=!1),this.isRunning()||(vu(),!0===t&&uh(),gu=globalThis.performance.now()-gu,$l.repaint(),Wr(vr,gu))},resume:function(t){void 0===t&&(t=!1),this.isPaused()&&(cu&&-1!==lu&&(cu=!1),!0===t&&uh(),gu=globalThis.performance.now()-gu,Wr(yr,gu))},isRunning:function(){return-1!==uu},isPaused:function(){return cu},set:function(t,e,i){if(void 0===i&&(i=!1),!(e instanceof su))throw new Error(e+" is not an instance of me.Stage");pu[t]={},pu[t].stage=e,pu[t].transition=!0,!0===i&&this.change(t)},get:function(t){return void 0===t&&(t=lu),void 0!==pu[t]?pu[t].stage:void 0},current:function(){return this.get()},transition:function(t,e,i){"fade"===t&&(du.color=e,du.duration=i)},setTransition:function(t,e){pu[t].transition=e},change:function(t,e){if(void 0===pu[t])throw new Error("Undefined Stage for state '"+t+"'");this.isCurrent(t)||(yu=null,arguments.length>1&&(yu=Array.prototype.slice.call(arguments,1)),du.duration&&pu[t].transition?(fu=function(){$l.viewport.fadeOut(du.color,du.duration)},$l.viewport.fadeIn(du.color,du.duration,(function(){Xn(_u,this,t)}))):!0===e?_u(t):Xn(_u,this,t))},isCurrent:function(t){return lu===t}};function wu(t,e,i){var o;if("string"!=typeof i)return i;switch(e){case"int":case"float":i=Number(i);break;case"bool":i="true"===i;break;default:if(!i||yn(i))i=!i||"true"===i;else if(fn(i))i=Number(i);else if(0===i.search(/^json:/i)){o=i.split(/^json:/i)[1];try{i=JSON.parse(o)}catch(t){throw new Error("Unable to parse JSON: "+o)}}else if(0===i.search(/^eval:/i)){o=i.split(/^eval:/i)[1];try{i=Function("'use strict';return ("+o+")")()}catch(t){throw new Error("Unable to evaluate: "+o)}}else((o=i.match(/^#([\da-fA-F])([\da-fA-F]{3})$/))||(o=i.match(/^#([\da-fA-F]{2})([\da-fA-F]{6})$/)))&&(i="#"+o[2]+o[1]);0===t.search(/^(ratio|anchorPoint)$/)&&"number"==typeof i&&(i={x:i,y:i})}return i}function Tu(t,e,i){switch(i=i||"none",e=e||"none"){case"csv":return function(t){for(var e=t.replace("\n","").trim().split(","),i=[],o=0;o=0;--o)s[i]+=r.charCodeAt(i*e+o)<<(o<<3);return s}(t,4);return"none"===i?o:function(){throw new Error("GZIP/ZLIB compressed TMX Tile Map not supported!")}();case"none":return t;case"xml":throw new Error("XML encoding is deprecated, use base64 instead");default:throw new Error("Unknown layer encoding: "+e)}}function Au(t,e){var i=e.nodeName;switch(i){case"data":var o=Eu(e);o.text=o.text||o.chunk.text,o.encoding=o.encoding||"xml",t.data=Tu(o.text,o.encoding,o.compression),t.encoding="none";break;case"imagelayer":case"layer":case"objectgroup":case"group":var n=Eu(e);n.type="layer"===i?"tilelayer":i,n.image&&(n.image=n.image.source),t.layers=t.layers||[],t.layers.push(n);break;case"animation":t.animation=Eu(e).frames;break;case"frame":case"object":var r=i+"s";t[r]=t[r]||[],t[r].push(Eu(e));break;case"tile":var s=Eu(e);s.image&&(s.imagewidth=s.image.width,s.imageheight=s.image.height,s.image=s.image.source),t.tiles=t.tiles||{},t.tiles[s.id]=s;break;case"tileset":var a=Eu(e);a.image&&(a.imagewidth=a.image.width,a.imageheight=a.image.height,a.image=a.image.source),t.tilesets=t.tilesets||[],t.tilesets.push(a);break;case"polygon":case"polyline":t[i]=[];for(var h,l=Eu(e).points.split(" "),u=0;u0)for(var i=0;i0&&(this.maskLevel=0,this.getContext().restore())},e}($a);function Ou(t,e){var i=0;!function(t){t.layerData=new Array(t.cols);for(var e=0;e0,this.isAnimated&&(this.preRender=!1),this.getBounds().addBounds(this.getRenderer().getBounds(),!0),this.getBounds().shift(this.pos),!0!==this.preRender||this.canvasRenderer||(this.canvasRenderer=new Pu({canvas:jc(this.width,this.height),widht:this.width,heigth:this.height,transparent:!0}),function(t,e){for(var i=0;i=0&&o=0&&nthis.cols?this.cols:s.x,s.y=s.y>this.rows?this.rows:s.y,e.renderorder){case"right-up":s.y=r.y+(r.y=s.y)-s.y,n=-1;break;case"left-down":s.x=r.x+(r.x=s.x)-s.x,o=-1;break;case"left-up":s.x=r.x+(r.x=s.x)-s.x,s.y=r.y+(r.y=s.y)-s.y,o=-1,n=-1}for(var a=r.y;a!==s.y;a+=n)for(var h=r.x;h!==s.x;h+=o){var l=e.cellAt(h,a,!1);l&&this.drawTile(t,h,a,l)}qn.push(r),qn.push(s)},e}(ku),Bu=function(t){function e(e){t.call(this,e.cols,e.rows,e.tilewidth,e.tileheight),this.hTilewidth=this.tilewidth/2,this.hTileheight=this.tileheight/2,this.originX=this.rows*this.hTilewidth}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.canRender=function(e){return"isometric"===e.orientation&&t.prototype.canRender.call(this,e)},e.prototype.getBounds=function(t){var e=t instanceof Iu?qn.pull("Bounds"):this.bounds;return e.setMinMax(0,0,(this.cols+this.rows)*(this.tilewidth/2),(this.cols+this.rows)*(this.tileheight/2)),e},e.prototype.pixelToTileCoords=function(t,e,i){return(i||new Kn).set(e/this.tileheight+(t-this.originX)/this.tilewidth,e/this.tileheight-(t-this.originX)/this.tilewidth)},e.prototype.tileToPixelCoords=function(t,e,i){return(i||new Kn).set((t-e)*this.hTilewidth+this.originX,(t+e)*this.hTileheight)},e.prototype.adjustPosition=function(t){var e=t.x/this.hTilewidth,i=t.y/this.tileheight,o=qn.pull("Vector2d");this.tileToPixelCoords(e,i,o),t.x=o.x,t.y=o.y,qn.push(o)},e.prototype.drawTile=function(t,e,i,o){var n=o.tileset;n.drawTile(t,(this.cols-1)*n.tilewidth+(e-i)*n.tilewidth>>1,-n.tilewidth+(e+i)*n.tileheight>>2,o)},e.prototype.drawTileLayer=function(t,e,i){var o=e.tileset,n=this.pixelToTileCoords(i.pos.x-o.tilewidth,i.pos.y-o.tileheight,qn.pull("Vector2d")).floorSelf(),r=this.pixelToTileCoords(i.pos.x+i.width+o.tilewidth,i.pos.y+i.height+o.tileheight,qn.pull("Vector2d")).ceilSelf(),s=this.tileToPixelCoords(r.x,r.y,qn.pull("Vector2d")),a=this.tileToPixelCoords(n.x,n.y,qn.pull("Vector2d"));a.x-=this.hTilewidth,a.y+=this.tileheight;var h=a.y-i.pos.y>this.hTileheight,l=i.pos.x-a.x1&&(e.height+=this.rowheight)):(e.setMinMax(0,0,this.cols*(this.tilewidth+this.sidelengthx),this.rows*this.rowheight+this.sideoffsety),e.height>1&&(e.width+=this.columnwidth)),e},e.prototype.doStaggerX=function(t){return this.staggerX&&1&t^this.staggerEven},e.prototype.doStaggerY=function(t){return!this.staggerX&&1&t^this.staggerEven},e.prototype.topLeft=function(t,e,i){var o=i||new Kn;return this.staggerX?1&t^this.staggerEven?o.set(t-1,e):o.set(t-1,e-1):1&e^this.staggerEven?o.set(t,e-1):o.set(t-1,e-1),o},e.prototype.topRight=function(t,e,i){var o=i||new Kn;return this.staggerX?1&t^this.staggerEven?o.set(t+1,e):o.set(t+1,e-1):1&e^this.staggerEven?o.set(t+1,e-1):o.set(t,e-1),o},e.prototype.bottomLeft=function(t,e,i){var o=i||new Kn;return this.staggerX?1&t^this.staggerEven?o.set(t-1,e+1):o.set(t-1,e):1&e^this.staggerEven?o.set(t,e+1):o.set(t-1,e+1),o},e.prototype.bottomRight=function(t,e,i){var o=i||new Kn;return this.staggerX?1&t^this.staggerEven?o.set(t+1,e+1):o.set(t+1,e):1&e^this.staggerEven?o.set(t+1,e+1):o.set(t,e+1),o},e.prototype.pixelToTileCoords=function(t,e,i){var o=i||new Kn;this.staggerX?t-=this.staggerEven?this.tilewidth:this.sideoffsetx:e-=this.staggerEven?this.tileheight:this.sideoffsety;var n,r,s,a,h=qn.pull("Vector2d",Math.floor(t/(2*this.columnwidth)),Math.floor(e/(2*this.rowheight))),l=qn.pull("Vector2d",t-h.x*(2*this.columnwidth),e-h.y*(2*this.rowheight));this.staggerX?(h.x=2*h.x,this.staggerEven&&++h.x):(h.y=2*h.y,this.staggerEven&&++h.y),this.staggerX?(s=(n=this.sidelengthx/2)+this.columnwidth,a=this.tileheight/2,this.centers[0].set(n,a),this.centers[1].set(s,a-this.rowheight),this.centers[2].set(s,a+this.rowheight),this.centers[3].set(s+this.columnwidth,a)):(r=this.sidelengthy/2,s=this.tilewidth/2,a=r+this.rowheight,this.centers[0].set(s,r),this.centers[1].set(s-this.columnwidth,a),this.centers[2].set(s+this.columnwidth,a),this.centers[3].set(s,a+this.rowheight));for(var u=0,c=Number.MAX_VALUE,p=0;p<4;++p){var d=this.centers[p].sub(l).length2();da.y&&(s=this.topLeft(s.x,s.y,s)),-this.sideoffsety+h>a.y&&(s=this.topRight(s.x,s.y,s)),this.sideoffsety+h0;var h=t.tileoffset;h&&(this.tileoffset.x=+h.x,this.tileoffset.y=+h.y);var l=t.tileproperties;if(l)for(e in l)l.hasOwnProperty(e)&&this.setTileProperty(+e+this.firstgid,l[e]);if(!1===this.isCollection){if(this.image=cc.getImage(t.image),!this.image)throw new Error("melonJS: '"+t.image+"' file for tileset '"+this.name+"' not found!");this.texture=Vc.cache.get(this.image,{framewidth:this.tilewidth,frameheight:this.tileheight,margin:this.margin,spacing:this.spacing}),this.atlas=this.texture.getAtlas();var u=+t.columns||Math.round(this.image.width/(this.tilewidth+this.spacing)),c=Math.round(this.image.height/(this.tileheight+this.spacing));t.tilecount%u>0&&++c,this.lastgid=this.firstgid+(u*c-1||0),t.tilecount&&this.lastgid-this.firstgid+1!=+t.tilecount&&console.warn("Computed tilecount ("+(this.lastgid-this.firstgid+1)+") does not match expected tilecount ("+t.tilecount+")")}};Vu.prototype.getTileImage=function(t){return this.imageCollection[t]},Vu.prototype.setTileProperty=function(t,e){this.TileProperties[t]=e},Vu.prototype.contains=function(t){return t>=this.firstgid&&t<=this.lastgid},Vu.prototype.getViewTileId=function(t){var e=t-this.firstgid;return this.animations.has(e)?this.animations.get(e).cur.tileid:e},Vu.prototype.getTileProperties=function(t){return this.TileProperties[t]},Vu.prototype.update=function(t){var e=0,i=Kc.getTime(),o=!1;return this._lastUpdate!==i&&(this._lastUpdate=i,this.animations.forEach((function(i){for(i.dt+=t,e=i.cur.duration;i.dt>=e;)i.dt-=e,i.idx=(i.idx+1)%i.frames.length,i.cur=i.frames[i.idx],e=i.cur.duration,o=!0}))),o},Vu.prototype.drawTile=function(t,e,i,o){if(o.flipped&&(t.save(),t.translate(e,i),t.transform(o.currentTransform),e=i=0),!0===this.isCollection)t.drawImage(this.imageCollection[o.tileId],0,0,o.width,o.height,e,i,o.width,o.height);else{var n=this.atlas[this.getViewTileId(o.tileId)].offset;t.drawImage(this.image,n.x,n.y,this.tilewidth,this.tileheight,e,i,this.tilewidth+t.uvOffset,this.tileheight+t.uvOffset)}o.flipped&&t.restore()};var ju=function(){this.tilesets=[],this.length=0};ju.prototype.add=function(t){this.tilesets.push(t),this.length++},ju.prototype.getTilesetByIndex=function(t){return this.tilesets[t]},ju.prototype.getTilesetByGid=function(t){var e=-1;t&=536870911;for(var i=0,o=this.tilesets.length;i=this.tilesets[i].firstgid&&(e=i)}if(-1!==e)return this.tilesets[e];throw new Error("no matching tileset found for gid "+t)};var Uu=function(t,e,i){this.points=void 0,this.name=e.name,this.x=+e.x,this.y=+e.y,this.z=+i,this.width=+e.width||0,this.height=+e.height||0,this.gid=+e.gid||null,this.tintcolor=e.tintcolor,this.type=e.type,this.class=void 0!==e.class?e.class:e.type,this.text=void 0,this.rotation=On(+e.rotation||0),this.id=+e.id||void 0,this.orientation=t.orientation,this.shapes=void 0,this.isEllipse=!1,this.isPoint=!1,this.isPolygon=!1,this.isPolyLine=!1,"number"==typeof this.gid?this.setTile(t.tilesets):void 0!==e.ellipse?this.isEllipse=!0:void 0!==e.point?this.isPoint=!0:void 0!==e.polygon?(this.points=e.polygon,this.isPolygon=!0):void 0!==e.polyline&&(this.points=e.polyline,this.isPolyLine=!0),void 0!==e.text?(this.text=e.text,this.text.font=e.text.fontfamily||"sans-serif",this.text.size=e.text.pixelsize||16,this.text.fillStyle=e.text.color||"#000000",this.text.textAlign=e.text.halign||"left",this.text.textBaseline=e.text.valign||"top",this.text.width=this.width,this.text.height=this.height,Su(this.text,e)):(Su(this,e),this.shapes||(this.shapes=this.parseTMXShapes())),t.isEditor||t.getRenderer().adjustPosition(this)};Uu.prototype.setTile=function(t){var e=t.getTilesetByGid(this.gid);!1===e.isCollection&&(this.width=this.framewidth=e.tilewidth,this.height=this.frameheight=e.tileheight),this.tile=new Mu(this.x,this.y,this.gid,e)},Uu.prototype.parseTMXShapes=function(){var t=0,e=[];if(!0===this.isEllipse)e.push(qn.pull("Ellipse",this.width/2,this.height/2,this.width,this.height).rotate(this.rotation));else if(!0===this.isPoint)e.push(qn.pull("Point",this.x,this.y));else if(!0===this.isPolygon){var i=qn.pull("Polygon",0,0,this.points);if(!1===i.isConvex())throw new Error("collision polygones in Tiled should be defined as Convex");e.push(i.rotate(this.rotation))}else if(!0===this.isPolyLine){var o,n,r=this.points,s=r.length-1;for(t=0;t0&&(e.autoSort=!0,e.autoDepth=!0,i.push(e))}return i},Xu.prototype.getLayers=function(){return this.readMapObjects(this.data),this.layers},Xu.prototype.destroy=function(){this.tilesets=void 0,this.layers.length=0,this.objectGroups.length=0,this.initialized=!1};var Hu={},Yu=[],Wu=0;function qu(t,e,i){e.container.reset(),$l.reset(),Hu[Ku.getCurrentLevelId()]&&Hu[Ku.getCurrentLevelId()].destroy(),Wu=Yu.indexOf(t),function(t,e,i,o){var n=Hu[t];Yc.resetGUID(t,n.nextobjectid),e.anchorPoint.set(0,0),n.addTo(e,i,o)}(t,e.container,e.flatten,e.setViewportBounds),Wr(Cr,t),e.onLoaded(t),i&&bu.restart()}var Ku={add:function(t,e,i){if("tmx"===t)return null==Hu[e]&&(Hu[e]=new Xu(e,cc.getTMX(e)),Yu.push(e),i&&i(),!0);throw new Error("no level loader defined for format "+t)},load:function(t,e){if(e=Object.assign({container:$l.world,onLoaded:$l.onLevelLoaded,flatten:$l.mergeGroup,setViewportBounds:!0},e||{}),void 0===Hu[t])throw new Error("level "+t+" not found");if(!(Hu[t]instanceof Xu))throw new Error("no level loader defined");return bu.isRunning()?(bu.stop(),Yc.function.defer(qu,this,t,e,!0)):qu(t,e),!0},getCurrentLevelId:function(){return Yu[Wu]},getCurrentLevel:function(){return Hu[this.getCurrentLevelId()]},reload:function(t){return this.load(this.getCurrentLevelId(),t)},next:function(t){return Wu+1=0&&this.load(Yu[Wu-1],t)},levelCount:function(){return Yu.length}},Zu={},Qu={},Ju={},$u={},tc={},ec=0,ic=0,oc=0;function nc(t){if(ic===ec){if("function"!=typeof t&&!cc.onload)throw new Error("no load callback defined");clearTimeout(oc);var e=t||cc.onload;setTimeout((function(){e(),Wr(Mr)}),300)}else oc=setTimeout((function(){nc(t)}),100)}function rc(t,e,i){Zu[t.name]=new Image,"function"==typeof e&&(Zu[t.name].onload=e),"function"==typeof i&&(Zu[t.name].onerror=i),"string"==typeof cc.crossOrigin&&(Zu[t.name].crossOrigin=cc.crossOrigin),Zu[t.name].src=t.src+cc.nocache}function sc(t,e,i){!0===vn(t.src)&&(t.src.startsWith("url(")||(t.src="url("+t.src+")"));var o=new FontFace(t.name,t.src);o.load().then((function(){document.fonts.add(o),document.body.style.fontFamily=t.name,"function"==typeof e&&e()}),(function(){"function"==typeof i&&i(t.name)}))}function ac(t,e,i){function o(e){Qu[t.name]=e,"tmx"===t.type&&Ku.add(t.type,t.name)}if(t.data)return o(t.data),void("function"==typeof e&&e());var n=new XMLHttpRequest,r=Nn(t.src);n.overrideMimeType&&("json"===r?n.overrideMimeType("application/json"):n.overrideMimeType("text/xml")),n.open("GET",t.src+cc.nocache,!0),n.withCredentials=cc.withCredentials,n.ontimeout=i,n.onreadystatechange=function(){if(4===n.readyState)if(200===n.status||0===n.status&&n.responseText){var s=null;switch(r){case"xml":case"tmx":case"tsx":if(rs.match(/msie/i)||!n.responseXML){if(!globalThis.DOMParser)throw new Error("XML file format loading not supported, use the JSON file format instead");s=(new DOMParser).parseFromString(n.responseText,"text/xml")}else s=n.responseXML;var a=Eu(s);switch(r){case"tmx":s=a.map;break;case"tsx":s=a.tilesets[0]}break;case"json":s=JSON.parse(n.responseText);break;default:throw new Error("TMX file format "+r+"not supported !")}o(s),"function"==typeof e&&e()}else"function"==typeof i&&i(t.name)},n.send()}function hc(t,e,i){var o=new XMLHttpRequest;o.overrideMimeType&&o.overrideMimeType("application/json"),o.open("GET",t.src+cc.nocache,!0),o.withCredentials=cc.withCredentials,o.ontimeout=i,o.onreadystatechange=function(){4===o.readyState&&(200===o.status||0===o.status&&o.responseText?($u[t.name]=JSON.parse(o.responseText),"function"==typeof e&&e()):"function"==typeof i&&i(t.name))},o.send()}function lc(t,e,i){var o=new XMLHttpRequest;o.open("GET",t.src+cc.nocache,!0),o.withCredentials=cc.withCredentials,o.responseType="arraybuffer",o.onerror=i,o.onload=function(){var i=o.response;if(i){for(var n=new Uint8Array(i),r=[],s=0;s0){var i=this.getAnimationFrameObjectByIndex(this.current.idx).delay;for(this.dt+=e;this.dt>=i;){this.isDirty=!0,this.dt-=i;var o=this.current.length>1?this.current.idx+1:this.current.idx;if(this.setAnimationFrame(o),0===this.current.idx&&"function"==typeof this.resetAnim&&!1===this.resetAnim()){this.setAnimationFrame(this.current.length-1),this.dt%=i;break}i=this.getAnimationFrameObjectByIndex(this.current.idx).delay}}return this._flicker.isFlickering&&(this._flicker.duration-=e,this._flicker.duration<0&&("function"==typeof this._flicker.callback&&this._flicker.callback(),this.flicker(-1)),this.isDirty=!0),t.prototype.update.call(this,e)},e.prototype.destroy=function(){qn.push(this.offset),this.offset=void 0,t.prototype.destroy.call(this)},e.prototype.draw=function(t,e){if(!this._flicker.isFlickering||(this._flicker.state=!this._flicker.state,this._flicker.state)){var i=this.current,o=this.pos.x,n=this.pos.y,r=i.width,s=i.height,a=i.offset,h=this.offset;0!==i.angle&&(t.translate(-o,-n),t.rotate(i.angle),o-=s,r=i.height,s=i.width),t.drawImage(this.image,h.x+a.x,h.y+a.y,r,s,o,n,r,s)}},e}(Ml);function dc(t,e,i,o){return void 0===i&&(i="default"),void 0===o&&(o="no-repeat"),{meta:{app:"melonJS",size:{w:t,h:e},repeat:o,image:"default"},frames:[{filename:i,frame:{x:0,y:0,w:t,h:e}}]}}var fc=function(t,e,i){var o=this;if(this.format=null,this.sources=new Map,this.atlases=new Map,void 0!==t)for(var n in t=Array.isArray(t)?t:[t]){var r=t[n];if(void 0!==r.meta){if(r.meta.app.includes("texturepacker")||r.meta.app.includes("free-tex-packer")){if(this.format="texturepacker",void 0===e){var s=cc.getImage(r.meta.image);if(!s)throw new Error("Atlas texture '"+s+"' not found");this.sources.set(r.meta.image,s)}else this.sources.set(r.meta.image||"default","string"==typeof e?cc.getImage(e):e);this.repeat="no-repeat"}else if(r.meta.app.includes("ShoeBox")){if(!r.meta.exporter||!r.meta.exporter.includes("melonJS"))throw new Error("ShoeBox requires the JSON exporter : https://github.com/melonjs/melonJS/tree/master/media/shoebox_JSON_export.sbx");this.format="ShoeBox",this.repeat="no-repeat",this.sources.set("default","string"==typeof e?cc.getImage(e):e)}else r.meta.app.includes("melonJS")&&(this.format="melonJS",this.repeat=r.meta.repeat||"no-repeat",this.sources.set("default","string"==typeof e?cc.getImage(e):e));this.atlases.set(r.meta.image||"default",this.parse(r))}else void 0!==r.framewidth&&void 0!==r.frameheight&&(this.format="Spritesheet (fixed cell size)",this.repeat="no-repeat",void 0!==e&&(r.image="string"==typeof e?cc.getImage(e):e),this.atlases.set("default",this.parseFromSpriteSheet(r)),this.sources.set("default",r.image))}if(0===this.atlases.length)throw new Error("texture atlas format not supported");!1!==i&&this.sources.forEach((function(t){i instanceof Oc?i.set(t,o):Vc.cache.set(t,o)}))};fc.prototype.parse=function(t){var e=this,i={};return t.frames.forEach((function(o){if(o.hasOwnProperty("filename")){var n,r,s=o.frame,a=o.spriteSourceSize&&o.sourceSize&&o.pivot;a&&(n=o.sourceSize.w*o.pivot.x-(o.trimmed?o.spriteSourceSize.x:0),r=o.sourceSize.h*o.pivot.y-(o.trimmed?o.spriteSourceSize.y:0)),i[o.filename]={name:o.filename,texture:t.meta.image||"default",offset:new Kn(s.x,s.y),anchorPoint:a?new Kn(n/s.w,r/s.h):null,trimmed:!!o.trimmed,width:s.w,height:s.h,angle:!0===o.rotated?-Sn:0},e.addUVs(i,o.filename,t.meta.size.w,t.meta.size.h)}})),i},fc.prototype.parseFromSpriteSheet=function(t){var e={},i=t.image,o=t.spacing||0,n=t.margin||0,r=i.width,s=i.height,a=qn.pull("Vector2d",~~((r-n+o)/(t.framewidth+o)),~~((s-n+o)/(t.frameheight+o)));if(r%(t.framewidth+o)!=0||s%(t.frameheight+o)!=0){var h=a.x*(t.framewidth+o),l=a.y*(t.frameheight+o);h-r!==o&&l-s!==o&&(r=h,s=l,console.warn("Spritesheet Texture for image: "+i.src+" is not divisible by "+(t.framewidth+o)+"x"+(t.frameheight+o)+", truncating effective size to "+r+"x"+s))}for(var u=0,c=a.x*a.y;u0&&n[n.length-1])||6!==r[0]&&2!==r[0])){s=0;continue}if(3===r[0]&&(!n||r[1]>n[0]&&r[1]=t.length&&(t=void 0),{value:t&&t[o++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")},_c=e&&e.__read||function(t,e){var i="function"==typeof Symbol&&t[Symbol.iterator];if(!i)return t;var o,n,r=i.call(t),s=[];try{for(;(void 0===e||e-- >0)&&!(o=r.next()).done;)s.push(o.value)}catch(t){n={error:t}}finally{try{o&&!o.done&&(i=r.return)&&i.call(r)}finally{if(n)throw n.error}}return s};Object.defineProperty(vc,"__esModule",{value:!0}),vc.Multimap=void 0;var bc=function(){function t(t,e){var i,o;if(this.size_=0,this.map=new Map,this.operator=t,e)try{for(var n=xc(e),r=n.next();!r.done;r=n.next()){var s=_c(r.value,2),a=s[0],h=s[1];this.put(a,h)}}catch(t){i={error:t}}finally{try{r&&!r.done&&(o=n.return)&&o.call(n)}finally{if(i)throw i.error}}return this}return Object.defineProperty(t.prototype,"size",{get:function(){return this.size_},enumerable:!1,configurable:!0}),t.prototype.get=function(t){var e=this.map.get(t);return e?this.operator.clone(e):this.operator.create()},t.prototype.put=function(t,e){var i=this.map.get(t);return i||(i=this.operator.create()),!!this.operator.add(e,i)&&(this.map.set(t,i),this.size_++,!0)},t.prototype.putAll=function(e,i){var o,n,r,s,a=0;if(i){var h=e,l=i;try{for(var u=xc(l),c=u.next();!c.done;c=u.next()){var p=c.value;this.put(h,p),a++}}catch(t){o={error:t}}finally{try{c&&!c.done&&(n=u.return)&&n.call(u)}finally{if(o)throw o.error}}}else{if(!(e instanceof t))throw new TypeError("unexpected arguments");try{for(var d=xc(e.entries()),f=d.next();!f.done;f=d.next()){var y=_c(f.value,2);h=y[0],p=y[1];this.put(h,p),a++}}catch(t){r={error:t}}finally{try{f&&!f.done&&(s=d.return)&&s.call(d)}finally{if(r)throw r.error}}}return a>0},t.prototype.has=function(t){return this.map.has(t)},t.prototype.hasEntry=function(t,e){return this.operator.has(e,this.get(t))},t.prototype.delete=function(t){return this.size_-=this.operator.size(this.get(t)),this.map.delete(t)},t.prototype.deleteEntry=function(t,e){var i=this.get(t);return!!this.operator.delete(e,i)&&(this.map.set(t,i),this.size_--,!0)},t.prototype.clear=function(){this.map.clear(),this.size_=0},t.prototype.keys=function(){return this.map.keys()},t.prototype.entries=function(){var t=this;return function(){var e,i,o,n,r,s,a,h,l,u,c,p,d,f;return mc(this,(function(y){switch(y.label){case 0:y.trys.push([0,11,12,13]),e=xc(t.map.entries()),i=e.next(),y.label=1;case 1:if(i.done)return[3,10];o=_c(i.value,2),n=o[0],r=o[1],y.label=2;case 2:y.trys.push([2,7,8,9]),d=void 0,s=xc(r),a=s.next(),y.label=3;case 3:return a.done?[3,6]:(h=a.value,[4,[n,h]]);case 4:y.sent(),y.label=5;case 5:return a=s.next(),[3,3];case 6:return[3,9];case 7:return l=y.sent(),d={error:l},[3,9];case 8:try{a&&!a.done&&(f=s.return)&&f.call(s)}finally{if(d)throw d.error}return[7];case 9:return i=e.next(),[3,1];case 10:return[3,13];case 11:return u=y.sent(),c={error:u},[3,13];case 12:try{i&&!i.done&&(p=e.return)&&p.call(e)}finally{if(c)throw c.error}return[7];case 13:return[2]}}))}()},t.prototype.values=function(){var t=this;return function(){var e,i,o,n,r,s;return mc(this,(function(a){switch(a.label){case 0:a.trys.push([0,5,6,7]),e=xc(t.entries()),i=e.next(),a.label=1;case 1:return i.done?[3,4]:(o=_c(i.value,2),[4,o[1]]);case 2:a.sent(),a.label=3;case 3:return i=e.next(),[3,1];case 4:return[3,7];case 5:return n=a.sent(),r={error:n},[3,7];case 6:try{i&&!i.done&&(s=e.return)&&s.call(e)}finally{if(r)throw r.error}return[7];case 7:return[2]}}))}()},t.prototype.forEach=function(t,e){var i,o;try{for(var n=xc(this.entries()),r=n.next();!r.done;r=n.next()){var s=_c(r.value,2),a=s[0],h=s[1];t.call(void 0===e?this:e,h,a,this)}}catch(t){i={error:t}}finally{try{r&&!r.done&&(o=n.return)&&o.call(n)}finally{if(i)throw i.error}}},t.prototype[Symbol.iterator]=function(){return this.entries()},t.prototype.asMap=function(){var t,e,i=new Map;try{for(var o=xc(this.keys()),n=o.next();!n.done;n=o.next()){var r=n.value;i.set(r,this.operator.clone(this.get(r)))}}catch(e){t={error:e}}finally{try{n&&!n.done&&(e=o.return)&&e.call(o)}finally{if(t)throw t.error}}return i},t}();vc.Multimap=bc;var wc,Tc=e&&e.__extends||(wc=function(t,e){return wc=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])},wc(t,e)},function(t,e){function i(){this.constructor=t}wc(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)});Object.defineProperty(gc,"__esModule",{value:!0}),gc.ArrayMultimap=void 0;var Ac=function(t){function e(e){return t.call(this,new Ec,e)||this}return Tc(e,t),Object.defineProperty(e.prototype,Symbol.toStringTag,{get:function(){return"ArrayMultimap"},enumerable:!1,configurable:!0}),e}(vc.Multimap);gc.ArrayMultimap=Ac;var Ec=function(){function t(){}return t.prototype.create=function(){return[]},t.prototype.clone=function(t){return t.slice()},t.prototype.add=function(t,e){return e.push(t),!0},t.prototype.size=function(t){return t.length},t.prototype.delete=function(t,e){var i=e.indexOf(t);return i>-1&&(e.splice(i,1),!0)},t.prototype.has=function(t,e){return e.includes(t)},t}(),Sc={},Cc=e&&e.__extends||function(){var t=function(e,i){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])},t(e,i)};return function(e,i){function o(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(o.prototype=i.prototype,new o)}}();Object.defineProperty(Sc,"__esModule",{value:!0}),Sc.SetMultimap=void 0;var Mc=function(t){function e(e){return t.call(this,new Pc,e)||this}return Cc(e,t),Object.defineProperty(e.prototype,Symbol.toStringTag,{get:function(){return"SetMultimap"},enumerable:!1,configurable:!0}),e}(vc.Multimap);Sc.SetMultimap=Mc;var Pc=function(){function t(){}return t.prototype.create=function(){return new Set},t.prototype.clone=function(t){return new Set(t)},t.prototype.add=function(t,e){var i=e.size;return e.add(t),i!==e.size},t.prototype.size=function(t){return t.size},t.prototype.delete=function(t,e){return e.delete(t)},t.prototype.has=function(t,e){return e.has(t)},t}();!function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.SetMultimap=t.ArrayMultimap=void 0;var e=gc;Object.defineProperty(t,"ArrayMultimap",{enumerable:!0,get:function(){return e.ArrayMultimap}});var i=Sc;Object.defineProperty(t,"SetMultimap",{enumerable:!0,get:function(){return i.SetMultimap}})}(yc);var Oc=function(t){this.cache=new yc.ArrayMultimap,this.tinted=new Map,this.units=new Map,this.max_size=t||1/0,this.clear()};Oc.prototype.clear=function(){this.cache.clear(),this.tinted.clear(),this.units.clear(),this.length=0},Oc.prototype.validate=function(){if(this.length>=this.max_size)throw new Error("Texture cache overflow: "+this.max_size+" texture units available for this GPU.")},Oc.prototype.get=function(t,e){var i;return void 0===e?i=this.cache.get(t)[0]:this.cache.forEach((function(o,n){var r=o.getAtlas();n===t&&r[0].width===e.framewidth&&r[0].height===e.frameheight&&(i=o)})),void 0===i&&(e||(e=dc(t.width,t.height,t.src?Un(t.src):void 0)),i=new fc(e,t,!1),this.set(t,i)),i},Oc.prototype.delete=function(t){this.cache.has(t)||this.cache.delete(t)},Oc.prototype.tint=function(t,e){var i=this.tinted.get(t);return void 0===i&&(i=this.tinted.set(t,new Map)),i.has(e)||i.set(e,Vc.tint(t,e,"multiply")),i.get(e)},Oc.prototype.set=function(t,e){var i=t.width,o=t.height;if(!(1!==Vc.WebGLVersion||Mn(i)&&Mn(o))){var n=void 0!==t.src?t.src:t;console.warn("[Texture] "+n+" is not a POT texture ("+i+"x"+o+")")}return this.cache.put(t,e)},Oc.prototype.getUnit=function(t){return this.units.has(t)||(this.validate(),this.units.set(t,this.length++)),this.units.get(t)};var Ic=function(t){function e(e){var i=this;t.call(this,e),this.WebGLVersion=1,this.GPUVendor=null,this.GPURenderer=null,this.context=this.gl=this.getContextGL(this.getCanvas(),e.transparent),this.maxTextures=this.gl.getParameter(this.gl.MAX_TEXTURE_IMAGE_UNITS),this._colorStack=[],this._matrixStack=[],this._scissorStack=[],this._blendStack=[],this.currentTransform=new hr,this.currentCompositor=null,this.compositors=new Map;var o=new(this.settings.compositor||ga)(this);this.compositors.set("default",o),this.setCompositor(o),this.gl.disable(this.gl.DEPTH_TEST),this.gl.disable(this.gl.SCISSOR_TEST),this.gl.enable(this.gl.BLEND),this.setBlendMode(this.settings.blendMode);var n=this.gl.getExtension("WEBGL_debug_renderer_info");null!==n&&(this.GPUVendor=this.gl.getParameter(n.UNMASKED_VENDOR_WEBGL),this.GPURenderer=this.gl.getParameter(n.UNMASKED_RENDERER_WEBGL)),this.cache=new Oc(this.maxTextures),this.getCanvas().addEventListener("webglcontextlost",(function(t){t.preventDefault(),i.isContextValid=!1,Wr(Hr,i)}),!1),this.getCanvas().addEventListener("webglcontextrestored",(function(){i.reset(),i.isContextValid=!0,Wr(Yr,i)}),!1)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.reset=function(){var e=this;t.prototype.reset.call(this),this.compositors.forEach((function(t){!1===e.isContextValid?t.init(e):t.reset()})),this.gl.disable(this.gl.SCISSOR_TEST),void 0!==this.fontContext2D&&this.createFontTexture(this.cache)},e.prototype.setCompositor=function(t){if(void 0===t&&(t="default"),"string"==typeof t&&(t=this.compositors.get(t)),void 0===t)throw new Error("Invalid WebGL Compositor");this.currentCompositor!==t&&(null!==this.currentCompositor&&this.currentCompositor.flush(),this.currentCompositor=t)},e.prototype.resetTransform=function(){this.currentTransform.identity()},e.prototype.createFontTexture=function(t){if(void 0===this.fontTexture){var e=this.getCanvas(),i=e.width,o=e.height;1===this.WebGLVersion&&(Mn(i)||(i=Pn(e.width)),Mn(o)||(o=Pn(e.height)));var n=jc(i,o,!0);this.fontContext2D=this.getContext2d(n),this.fontTexture=new fc(dc(e.width,e.height,"fontTexture"),n,t),this.currentCompositor.uploadTexture(this.fontTexture,0,0,0)}else t.set(this.fontContext2D.canvas,this.fontTexture)},e.prototype.createPattern=function(t,e){if(!(1!==Vc.WebGLVersion||Mn(t.width)&&Mn(t.height))){var i=void 0!==t.src?t.src:t;throw new Error("[WebGL Renderer] "+i+" is not a POT texture ("+t.width+"x"+t.height+")")}var o=new fc(dc(t.width,t.height,"pattern",e),t);return this.currentCompositor.uploadTexture(o),o},e.prototype.flush=function(){this.currentCompositor.flush()},e.prototype.setProjection=function(e){t.prototype.setProjection.call(this,e),this.currentCompositor.setProjection(e)},e.prototype.clear=function(){this.currentCompositor.clear(this.settings.transparent?0:1)},e.prototype.clearColor=function(t,e){var i;if(void 0===t&&(t="#000000"),void 0===e&&(e=!1),t instanceof nr)i=t.toArray();else{var o=qn.pull("me.Color");i=o.parseCSS(t).toArray(),qn.push(o)}this.currentCompositor.clearColor(i[0],i[1],i[2],!0===e?1:i[3])},e.prototype.clearRect=function(t,e,i,o){this.save(),this.clipRect(t,e,i,o),this.clearColor(),this.restore()},e.prototype.drawFont=function(t){var e=this.getFontContext();this.currentCompositor.uploadTexture(this.fontTexture,0,0,0,!0);var i=this.fontTexture.getUVs(t.left+","+t.top+","+t.width+","+t.height);this.currentCompositor.addQuad(this.fontTexture,t.left,t.top,t.width,t.height,i[0],i[1],i[2],i[3],this.currentTint.toUint32(this.getGlobalAlpha())),e.clearRect(t.left,t.top,t.width,t.height)},e.prototype.drawImage=function(t,e,i,o,n,r,s,a,h){void 0===o?(o=a=t.width,n=h=t.height,r=e,s=i,e=0,i=0):void 0===r&&(r=e,s=i,a=o,h=n,o=t.width,n=t.height,e=0,i=0),!1===this.settings.subPixel&&(r|=0,s|=0);var l=this.cache.get(t),u=l.getUVs(e+","+i+","+o+","+n);this.currentCompositor.addQuad(l,r,s,a,h,u[0],u[1],u[2],u[3],this.currentTint.toUint32(this.getGlobalAlpha()))},e.prototype.drawPattern=function(t,e,i,o,n){var r=t.getUVs("0,0,"+o+","+n);this.currentCompositor.addQuad(t,e,i,o,n,r[0],r[1],r[2],r[3],this.currentTint.toUint32(this.getGlobalAlpha()))},e.prototype.getContextGL=function(t,e){if(void 0===e&&(e=!1),null==t)throw new Error("You must pass a canvas element in order to create a GL context");var i,o={alpha:e,antialias:this.settings.antiAlias,depth:!1,stencil:!0,preserveDrawingBuffer:!1,premultipliedAlpha:!!e&&this.settings.premultipliedAlpha,powerPreference:this.settings.powerPreference,failIfMajorPerformanceCaveat:this.settings.failIfMajorPerformanceCaveat};if(!1===this.settings.preferWebGL1&&(i=t.getContext("webgl2",o))&&(this.WebGLVersion=2),i||(this.WebGLVersion=1,i=t.getContext("webgl",o)||t.getContext("experimental-webgl",o)),!i)throw new Error("A WebGL context could not be created.");return i},e.prototype.getContext=function(){return this.gl},e.prototype.setBlendMode=function(t,e){if(void 0===t&&(t="normal"),void 0===e&&(e=this.gl),this.currentBlendMode!==t)switch(this.flush(),e.enable(e.BLEND),this.currentBlendMode=t,t){case"screen":e.blendFunc(e.ONE,e.ONE_MINUS_SRC_COLOR);break;case"lighter":case"additive":e.blendFunc(e.ONE,e.ONE);break;case"multiply":e.blendFunc(e.DST_COLOR,e.ONE_MINUS_SRC_ALPHA);break;default:e.blendFunc(e.ONE,e.ONE_MINUS_SRC_ALPHA),this.currentBlendMode="normal"}},e.prototype.getFontContext=function(){return void 0===this.fontContext2D&&(console.warn("[WebGL Renderer] WARNING : Using Standard me.Text with WebGL will severly impact performances !"),this.createFontTexture(this.cache)),this.fontContext2D},e.prototype.restore=function(){if(0!==this._matrixStack.length){var t=this._colorStack.pop(),e=this._matrixStack.pop();this.currentColor.copy(t),this.currentTransform.copy(e),this.setBlendMode(this._blendStack.pop()),qn.push(t),qn.push(e)}0!==this._scissorStack.length?this.currentScissor.set(this._scissorStack.pop()):(this.gl.disable(this.gl.SCISSOR_TEST),this.currentScissor[0]=0,this.currentScissor[1]=0,this.currentScissor[2]=this.getCanvas().width,this.currentScissor[3]=this.getCanvas().height)},e.prototype.save=function(){this._colorStack.push(this.currentColor.clone()),this._matrixStack.push(this.currentTransform.clone()),this.gl.isEnabled(this.gl.SCISSOR_TEST)&&this._scissorStack.push(this.currentScissor.slice()),this._blendStack.push(this.getBlendMode())},e.prototype.rotate=function(t){this.currentTransform.rotate(t)},e.prototype.scale=function(t,e){this.currentTransform.scale(t,e)},e.prototype.setAntiAlias=function(e,i){t.prototype.setAntiAlias.call(this,e,i)},e.prototype.setGlobalAlpha=function(t){this.currentColor.alpha=t},e.prototype.getGlobalAlpha=function(){return this.currentColor.alpha},e.prototype.setColor=function(t){var e=this.currentColor.alpha;this.currentColor.copy(t),this.currentColor.alpha*=e},e.prototype.setLineWidth=function(t){this.getContext().lineWidth(t)},e.prototype.strokeArc=function(t,e,i,o,n,r,s){void 0===r&&(r=!1),void 0===s&&(s=!1),this.getGlobalAlpha()<1/255||(this.path2D.beginPath(),this.path2D.arc(t,e,i,o,n,r),!1===s?this.currentCompositor.drawVertices(this.gl.LINE_STRIP,this.path2D.points):(this.path2D.closePath(),this.currentCompositor.drawVertices(this.gl.TRIANGLES,this.path2D.triangulatePath())))},e.prototype.fillArc=function(t,e,i,o,n,r){void 0===r&&(r=!1),this.strokeArc(t,e,i,o,n,r,!0)},e.prototype.strokeEllipse=function(t,e,i,o,n){void 0===n&&(n=!1),this.getGlobalAlpha()<1/255||(this.path2D.beginPath(),this.path2D.ellipse(t,e,i,o,0,0,360),this.path2D.closePath(),!1===n?this.currentCompositor.drawVertices(this.gl.LINE_LOOP,this.path2D.points):this.currentCompositor.drawVertices(this.gl.TRIANGLES,this.path2D.triangulatePath()))},e.prototype.fillEllipse=function(t,e,i,o){this.strokeEllipse(t,e,i,o,!1)},e.prototype.strokeLine=function(t,e,i,o){this.getGlobalAlpha()<1/255||(this.path2D.beginPath(),this.path2D.moveTo(t,e),this.path2D.lineTo(i,o),this.currentCompositor.drawVertices(this.gl.LINE_STRIP,this.path2D.points))},e.prototype.fillLine=function(t,e,i,o){this.strokeLine(t,e,i,o)},e.prototype.strokePolygon=function(t,e){if(void 0===e&&(e=!1),!(this.getGlobalAlpha()<1/255)){var i;this.translate(t.pos.x,t.pos.y),this.path2D.beginPath(),this.path2D.moveTo(t.points[0].x,t.points[0].y);for(var o=1;o0&&(this.flush(),this.maskLevel=0,this.gl.disable(this.gl.STENCIL_TEST))},e}($a),kc=1,Rc=0,Bc=0,Dc={parent:void 0,renderer:2,autoScale:!1,scale:1,scaleMethod:"manual",transparent:!1,premultipliedAlpha:!0,blendMode:"normal",antiAlias:!1,failIfMajorPerformanceCaveat:!0,subPixel:!1,preferWebGL1:!1,powerPreference:"default",verbose:!1,consoleHeader:!0};function Lc(){var t=Vc.settings,e=1,i=1;if(t.autoScale){var o=1/0,n=1/0;if(globalThis.getComputedStyle){var r=globalThis.getComputedStyle(Vc.getCanvas(),null);o=parseInt(r.maxWidth,10)||1/0,n=parseInt(r.maxHeight,10)||1/0}var s=na(Uc()),a=Math.min(o,s.width),h=Math.min(n,s.height),l=a/h;if("fill-min"===t.scaleMethod&&l>kc||"fill-max"===t.scaleMethod&&lkc||"flex-height"===t.scaleMethod){var c=Math.min(n,Rc*(h/a));e=i=h/c,Vc.resize(Rc,Math.floor(c))}else"flex"===t.scaleMethod?Vc.resize(Math.floor(a),Math.floor(h)):"stretch"===t.scaleMethod?(e=a/Rc,i=h/Bc):e=i=l0;)o[n]=arguments[n+3];return this.timers.push({fn:t,delay:e,elapsed:0,repeat:!1,timerId:++this.timerId,pauseable:!0===i||!0,args:o}),this.timerId},Wc.prototype.setInterval=function(t,e,i){for(var o=[],n=arguments.length-3;n-- >0;)o[n]=arguments[n+3];return this.timers.push({fn:t,delay:e,elapsed:0,repeat:!0,timerId:++this.timerId,pauseable:!0===i||!0,args:o}),this.timerId},Wc.prototype.clearTimeout=function(t){Yc.function.defer(this.clearTimer.bind(this),this,t)},Wc.prototype.clearInterval=function(t){Yc.function.defer(this.clearTimer.bind(this),this,t)},Wc.prototype.getTime=function(){return this.now},Wc.prototype.getDelta=function(){return this.delta},Wc.prototype.countFPS=function(){this.framecount++,this.framedelta+=this.delta,this.framecount%10==0&&(this.fps=In(Math.round(1e3*this.framecount/this.framedelta),0,this.maxfps),this.framedelta=0,this.framecount=0)},Wc.prototype.update=function(t){this.last=this.now,this.now=t,this.delta=this.now-this.last,this.delta<0&&(this.delta=0),this.tick=this.delta>this.minstep&&this.interpolation?this.delta/this.step:1,this.updateTimers()},Wc.prototype.clearTimer=function(t){for(var e=0,i=this.timers.length;e=i.delay&&(i.fn.apply(null,i.args),!0===i.repeat?i.elapsed-=i.delay:this.clearTimeout(i.timerId))}};var qc,Kc=new Wc,Zc=0,Qc=["ms","moz","webkit","o"],Jc=globalThis.requestAnimationFrame,$c=globalThis.cancelAnimationFrame;for(qc=0;qc2&&(i=Array.prototype.slice.call(arguments,1)),i[0]=t;var o=new(t.bind.apply(t,i));if(void 0===o||!(o instanceof ep.Base))throw new Error("Plugin should extend the me.plugin.Base Class !");if(Yc.checkVersion(o.version)>0)throw new Error("Plugin version mismatch, expected: "+o.version+", got: "+zp);tp[e]=o}},ip={Linear:{None:function(t){return t}},Quadratic:{In:function(t){return t*t},Out:function(t){return t*(2-t)},InOut:function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)}},Cubic:{In:function(t){return t*t*t},Out:function(t){return--t*t*t+1},InOut:function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)}},Quartic:{In:function(t){return t*t*t*t},Out:function(t){return 1- --t*t*t*t},InOut:function(t){return(t*=2)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)}},Quintic:{In:function(t){return t*t*t*t*t},Out:function(t){return--t*t*t*t*t+1},InOut:function(t){return(t*=2)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)}},Sinusoidal:{In:function(t){return 1-Math.cos(t*Math.PI/2)},Out:function(t){return Math.sin(t*Math.PI/2)},InOut:function(t){return.5*(1-Math.cos(Math.PI*t))}},Exponential:{In:function(t){return 0===t?0:Math.pow(1024,t-1)},Out:function(t){return 1===t?1:1-Math.pow(2,-10*t)},InOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(2-Math.pow(2,-10*(t-1)))}},Circular:{In:function(t){return 1-Math.sqrt(1-t*t)},Out:function(t){return Math.sqrt(1- --t*t)},InOut:function(t){return(t*=2)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)}},Elastic:{In:function(t){return 0===t?0:1===t?1:-Math.pow(2,10*(t-1))*Math.sin(5*(t-1.1)*Math.PI)},Out:function(t){return 0===t?0:1===t?1:Math.pow(2,-10*t)*Math.sin(5*(t-.1)*Math.PI)+1},InOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?-.5*Math.pow(2,10*(t-1))*Math.sin(5*(t-1.1)*Math.PI):.5*Math.pow(2,-10*(t-1))*Math.sin(5*(t-1.1)*Math.PI)+1}},Back:{In:function(t){var e=1.70158;return t*t*((e+1)*t-e)},Out:function(t){var e=1.70158;return--t*t*((e+1)*t+e)+1},InOut:function(t){var e=2.5949095;return(t*=2)<1?t*t*((e+1)*t-e)*.5:.5*((t-=2)*t*((e+1)*t+e)+2)}},Bounce:{In:function(t){return 1-ip.Bounce.Out(1-t)},Out:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},InOut:function(t){return t<.5?.5*ip.Bounce.In(2*t):.5*ip.Bounce.Out(2*t-1)+.5}}},op={Linear:function(t,e){var i=t.length-1,o=i*e,n=Math.floor(o),r=op.Utils.Linear;return e<0?r(t[0],t[1],o):e>1?r(t[i],t[i-1],i-o):r(t[n],t[n+1>i?i:n+1],o-n)},Bezier:function(t,e){var i,o=0,n=t.length-1,r=Math.pow,s=op.Utils.Bernstein;for(i=0;i<=n;i++)o+=r(1-e,n-i)*r(e,i)*t[i]*s(n,i);return o},CatmullRom:function(t,e){var i=t.length-1,o=i*e,n=Math.floor(o),r=op.Utils.CatmullRom;return t[0]===t[i]?(e<0&&(n=Math.floor(o=i*(1+e))),r(t[(n-1+i)%i],t[n],t[(n+1)%i],t[(n+2)%i],o-n)):e<0?t[0]-(r(t[0],t[0],t[1],t[1],-o)-t[0]):e>1?t[i]-(r(t[i],t[i],t[i-1],t[i-1],o-i)-t[i]):r(t[n?n-1:0],t[n],t[i1;i--)o*=i;return t[e]=o,o}}(),CatmullRom:function(t,e,i,o,n){var r=.5*(i-t),s=.5*(o-e),a=n*n;return(2*e-2*i+r+s)*(n*a)+(-3*e+3*i-2*r-s)*a+r*n+e}}},np=function(t){this.setProperties(t)},rp={Easing:{configurable:!0},Interpolation:{configurable:!0}};np.prototype.onResetEvent=function(t){this.setProperties(t)},np.prototype.setProperties=function(t){for(var e in this._object=t,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._repeat=0,this._yoyo=!1,this._reversed=!1,this._delayTime=0,this._startTime=null,this._easingFunction=ip.Linear.None,this._interpolationFunction=op.Linear,this._chainedTweens=[],this._onStartCallback=null,this._onStartCallbackFired=!1,this._onUpdateCallback=null,this._onCompleteCallback=null,this._tweenTimeTracker=$l.lastUpdate,this.isPersistent=!1,this.updateWhenPaused=!1,this.isRenderable=!1,t)"object"!=typeof t&&(this._valuesStart[e]=parseFloat(t[e]))},np.prototype._resumeCallback=function(t){this._startTime&&(this._startTime+=t)},np.prototype.onActivateEvent=function(){qr(yr,this._resumeCallback,this)},np.prototype.onDeactivateEvent=function(){Zr(yr,this._resumeCallback)},np.prototype.to=function(t,e){return this._valuesEnd=t,void 0!==e&&("number"==typeof e?this._duration=e:"object"==typeof e&&(e.duration&&(this._duration=e.duration),e.yoyo&&this.yoyo(e.yoyo),e.easing&&this.easing(e.easing),e.repeat&&this.repeat(e.repeat),e.delay&&this.delay(e.delay),e.interpolation&&this.interpolation(e.interpolation),e.autoStart&&this.start())),this},np.prototype.start=function(t){for(var e in void 0===t&&(t=Kc.getTime()),this._onStartCallbackFired=!1,$l.world.addChild(this),this._startTime=t+this._delayTime,this._valuesEnd){if(this._valuesEnd[e]instanceof Array){if(0===this._valuesEnd[e].length)continue;this._valuesEnd[e]=[this._object[e]].concat(this._valuesEnd[e])}this._valuesStart[e]=this._object[e],this._valuesStart[e]instanceof Array==!1&&(this._valuesStart[e]*=1),this._valuesStartRepeat[e]=this._valuesStart[e]||0}return this},np.prototype.stop=function(){return $l.world.removeChildNow(this),this},np.prototype.delay=function(t){return this._delayTime=t,this},np.prototype.repeat=function(t){return this._repeat=t,this},np.prototype.yoyo=function(t){return this._yoyo=t,this},np.prototype.easing=function(t){if("function"!=typeof t)throw new Error("invalid easing function for me.Tween.easing()");return this._easingFunction=t,this},np.prototype.interpolation=function(t){return this._interpolationFunction=t,this},np.prototype.chain=function(){return this._chainedTweens=arguments,this},np.prototype.onStart=function(t){return this._onStartCallback=t,this},np.prototype.onUpdate=function(t){return this._onUpdateCallback=t,this},np.prototype.onComplete=function(t){return this._onCompleteCallback=t,this},np.prototype.update=function(t){this._tweenTimeTracker=$l.lastUpdate>this._tweenTimeTracker?$l.lastUpdate:this._tweenTimeTracker+t;var e,i=this._tweenTimeTracker;if(i1?1:o;var n=this._easingFunction(o);for(e in this._valuesEnd){var r=this._valuesStart[e]||0,s=this._valuesEnd[e];s instanceof Array?this._object[e]=this._interpolationFunction(s,n):("string"==typeof s&&(s=r+parseFloat(s)),"number"==typeof s&&(this._object[e]=r+(s-r)*n))}if(null!==this._onUpdateCallback&&this._onUpdateCallback.call(this._object,n),1===o){if(this._repeat>0){for(e in isFinite(this._repeat)&&this._repeat--,this._valuesStartRepeat){if("string"==typeof this._valuesEnd[e]&&(this._valuesStartRepeat[e]=this._valuesStartRepeat[e]+parseFloat(this._valuesEnd[e])),this._yoyo){var a=this._valuesStartRepeat[e];this._valuesStartRepeat[e]=this._valuesEnd[e],this._valuesEnd[e]=a}this._valuesStart[e]=this._valuesStartRepeat[e]}return this._yoyo&&(this._reversed=!this._reversed),this._startTime=i+this._delayTime,!0}$l.world.removeChildNow(this),null!==this._onCompleteCallback&&this._onCompleteCallback.call(this._object);for(var h=0,l=this._chainedTweens.length;h0&&this.wordWrapWidth>0&&(this._text=this.metrics.wordWrap(this._text,this.wordWrapWidth,dp(Vc,this))),e.addBounds(this.metrics.measureText(this._text,dp(Vc,this)),!0),!0===this.offScreenCanvas){var i=Math.ceil(this.metrics.width),o=Math.ceil(this.metrics.height);Vc instanceof Ic&&(this.glTextureUnit=Vc.cache.getUnit(Vc.cache.get(this.canvasTexture.canvas)),Vc.currentCompositor.unbindTexture2D(null,this.glTextureUnit),1===Vc.WebGLVersion&&(i=Pn(this.metrics.width),o=Pn(this.metrics.height))),(this.canvasTexture.width0&&this.wordWrapWidth>0&&(this._text=this.metrics.wordWrap(this._text,this.wordWrapWidth)),this.getBounds().addBounds(this.metrics.measureText(this._text),!0),this},i.fillStyle.get=function(){return this.tint},i.fillStyle.set=function(t){t instanceof nr?this.tint.copy(t):this.tint.parseCSS(t)},e.prototype.resize=function(t){return this.fontScale.set(t,t),this.getBounds().addBounds(this.metrics.measureText(this._text),!0),this.isDirty=!0,this},e.prototype.measureText=function(t){return void 0===t&&(t=this._text),this.metrics.measureText(t)},e.prototype.draw=function(t,e,i,o){var n=t.globalAlpha();void 0===this.ancestor?(this.setText(e),t.setGlobalAlpha(n*this.getOpacity())):(i=this.pos.x,o=this.pos.y);for(var r=i,s=this.metrics.lineHeight(),a=0,h=0;h>>9];if(e)return e[511&t]||0}return 0},gp.prototype.setKerning=function(t,e){this.kerning||(this.kerning={});var i=this.kerning[t>>>9];void 0===i&&(this.kerning[t>>>9]={},i=this.kerning[t>>>9]),i[511&t]=e};var vp=["M","N","B","D","C","E","F","K","A","G","H","I","J","L","O","P","Q","R","S","T","U","V","W","X","Y","Z"];function mp(t,e){var i=t.match(e);if(!i)throw new Error("Could not find pattern "+e+" in string: "+t);return i[0].split("=")[1]}function xp(t){var e=" ".charCodeAt(0),i=t[e];i||((i=new gp).id=e,i.xadvance=function(t){for(var e=Object.keys(t),i=0;i32)return t[e[i]];return null}(t).xadvance,t[e]=i)}var _p=function(t){this.onResetEvent(t)};_p.prototype.onResetEvent=function(t){this.padTop=0,this.padRight=0,this.padBottom=0,this.padLeft=0,this.lineHeight=0,this.capHeight=1,this.descent=0,this.glyphs={},this.parse(t)},_p.prototype.parse=function(t){if(!t)throw new Error("File containing font data was empty, cannot load the bitmap font.");var e=t.split(/\r\n|\n/),i=t.match(/padding\=\d+,\d+,\d+,\d+/g);if(!i)throw new Error("Padding not found in first line");var o=i[0].split("=")[1].split(",");this.padTop=parseFloat(o[0]),this.padLeft=parseFloat(o[1]),this.padBottom=parseFloat(o[2]),this.padRight=parseFloat(o[3]),this.lineHeight=parseFloat(mp(e[1],/lineHeight\=\d+/g));var n,r=parseFloat(mp(e[1],/base\=\d+/g)),s=this.padTop+this.padBottom,a=null;for(n=4;n0&&a.height>0&&(this.descent=Math.min(r+a.yoffset,this.descent)),this.glyphs[d]=a}}this.descent+=this.padBottom,xp(this.glyphs);var f=null;for(n=0;n=u?(e=1,o=1,i=u/l,n=l/u,r=s.createRadialGradient(a,h*n,0,a,u*n,l)):(i=1,n=1,e=l/u,o=u/l,r=s.createRadialGradient(a*o,h,0,a*o,h,u)),r.addColorStop(0,t.color.toRGBA(t.intensity)),r.addColorStop(1,t.color.toRGBA(0)),s.fillStyle=r,s.setTransform(e,0,0,i,0,0),s.fillRect(0,0,t.texture.width*o,t.texture.height*n)}(this)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getVisibleArea=function(){return this.visibleArea.setShape(this.getBounds().centerX,this.getBounds().centerY,this.width,this.height)},e.prototype.draw=function(t,e){t.drawImage(this.texture.canvas,this.getBounds().x,this.getBounds().y)},e.prototype.destroy=function(){qn.push(this.color),this.color=void 0,qn.push(this.texture),this.texture=void 0,qn.push(this.visibleArea),this.visibleArea=void 0,t.prototype.destroy.call(this)},e}(Ml),Mp=function(t){function e(e,i,o,n){t.call(this,e,i,o,n),this.isKinematic=!1,this.dragging=!1,this.dragId=null,this.grabOffset=new Kn(0,0),this.initEvents()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initEvents=function(){var t=this;dl("pointerdown",this,(function(e){Wr(zr,e,t)})),dl("pointerup",this,(function(e){Wr(Fr,e,t)})),dl("pointercancel",this,(function(e){Wr(Fr,e,t)})),qr(Dr,this.dragMove.bind(this)),qr(zr,(function(e,i){i===t&&t.dragStart(e)})),qr(Fr,(function(e,i){i===t&&t.dragEnd(e)}))},e.prototype.dragStart=function(t){if(!1===this.dragging)return this.dragging=!0,this.grabOffset.set(t.gameX,t.gameY),this.grabOffset.sub(this.pos),!1},e.prototype.dragMove=function(t){!0===this.dragging&&(this.pos.set(t.gameX,t.gameY,this.pos.z),this.pos.sub(this.grabOffset))},e.prototype.dragEnd=function(){if(!0===this.dragging)return this.dragging=!1,!1},e.prototype.destroy=function(){Zr(Dr,this.dragMove),Zr(zr,this.dragStart),Zr(Fr,this.dragEnd),fl("pointerdown",this),fl("pointerup",this),fl("pointercancel",this),t.prototype.destroy.call(this)},e}(Ml),Pp=function(t){function e(e,i,o,n){t.call(this,e,i,o,n),this.isKinematic=!1,this.CHECKMETHOD_OVERLAP="overlaps",this.CHECKMETHOD_CONTAINS="contains",this.checkMethod=this.CHECKMETHOD_OVERLAP,qr(Fr,this.checkOnMe,this)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setCheckMethod=function(t){"function"==typeof this.getBounds()[this.checkMethod]&&(this.checkMethod=t)},e.prototype.checkOnMe=function(t,e){e&&this.getBounds()[this.checkMethod](e.getBounds())&&this.drop(e)},e.prototype.drop=function(t){},e.prototype.destroy=function(){Zr(Fr,this.checkOnMe),t.prototype.destroy.call(this)},e}(Ml),Op={width:1,height:1,image:void 0,textureSize:8,tint:"#fff",totalParticles:50,angle:Math.PI/2,angleVariation:0,minLife:1e3,maxLife:3e3,speed:2,speedVariation:1,minRotation:0,maxRotation:0,minStartScale:1,maxStartScale:1,minEndScale:0,maxEndScale:0,gravity:0,wind:0,followTrajectory:!1,textureAdditive:!1,blendMode:"normal",onlyInViewport:!0,floating:!1,maxParticles:10,frequency:100,duration:1/0,framesToSkip:0};var Ip=function(t){function e(e,i,o){void 0===o&&(o={}),t.call(this,e,i,1|o.width,1|o.height),this.settings={},this.centerOn(e,i),this._stream=!1,this._frequencyTimer=0,this._durationTimer=0,this._enabled=!1,this.alwaysUpdate=!0,this.autoSort=!1,this._updateCount=0,this._dt=0,this.reset(o)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.reset=function(t){void 0===t&&(t={}),Object.assign(this.settings,Op,t),void 0===this.settings.image&&(this._defaultParticle=function(t,e){void 0===t&&(t=8),void 0===e&&(e=8);var i=qn.pull("CanvasTexture",t,e,{offscreenCanvas:!0});return i.context.fillStyle="#fff",i.context.fillRect(0,0,t,e),i}(t.textureSize,t.textureSize),this.settings.image=this._defaultParticle.canvas),this.floating=this.settings.floating,this.isDirty=!0},e.prototype.getRandomPointX=function(){return Rn(0,this.getBounds().width)},e.prototype.getRandomPointY=function(){return Rn(0,this.getBounds().height)},e.prototype.addParticles=function(t){for(var e=0;ethis.settings.framesToSkip&&(this._updateCount=0),this._updateCount>0)return this._dt+=e,this.isDirty;if(e+=this._dt,this._dt=0,this.isDirty|=t.prototype.update.call(this,e),this._enabled&&this._stream){if(this._durationTimer!==1/0&&(this._durationTimer-=e,this._durationTimer<=0))return this.stopStream(),this.isDirty;this._frequencyTimer+=e;var i=this.children.length;i=this.settings.frequency&&(i+this.settings.maxParticles<=this.settings.totalParticles?this.addParticles(this.settings.maxParticles):this.addParticles(this.settings.totalParticles-i),this._frequencyTimer=0,this.isDirty=!0)}return this.isDirty},e.prototype.destroy=function(){t.prototype.destroy.call(this,arguments),void 0!==this._defaultParticle&&(qn.push(this._defaultParticle),this._defaultParticle=void 0),this.settings.image=void 0,this.settings=void 0},e}(Yl),kp=function(t){function e(e){t.call(this,e.getRandomPointX(),e.getRandomPointY(),e.settings.image.width,e.settings.image.height),this.onResetEvent(e,!0)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.onResetEvent=function(t,e){void 0===e&&(e=!1),!1===e?(this.pos.set(t.getRandomPointX(),t.getRandomPointY()),this.resize(t.settings.image.width,t.settings.image.height),this.currentTransform.identity()):this.vel=qn.pull("Vector2d"),this.image=t.settings.image,this.alwaysUpdate=!0,"string"==typeof t.settings.tint&&this.tint.parseCSS(t.settings.tint),!0===t.settings.textureAdditive&&(this.blendMode="additive"),"normal"!==t.settings.blendMode&&(this.blendMode=t.settings.blendMode);var i=t.settings.angle+(t.settings.angleVariation>0?(Rn(0,2)-1)*t.settings.angleVariation:0),o=t.settings.speed+(t.settings.speedVariation>0?(Rn(0,2)-1)*t.settings.speedVariation:0);this.vel.set(o*Math.cos(i),-o*Math.sin(i)),this.life=Rn(t.settings.minLife,t.settings.maxLife),this.startLife=this.life,this.startScale=In(Rn(t.settings.minStartScale,t.settings.maxStartScale),t.settings.minStartScale,t.settings.maxStartScale),this.endScale=In(Rn(t.settings.minEndScale,t.settings.maxEndScale),t.settings.minEndScale,t.settings.maxEndScale),this.gravity=t.settings.gravity,this.wind=t.settings.wind,this.followTrajectory=t.settings.followTrajectory,this.onlyInViewport=t.settings.onlyInViewport,this._deltaInv=Kc.maxfps/1e3,t.settings.followTrajectory||(this.angle=Rn(t.settings.minRotation,t.settings.maxRotation))},e.prototype.update=function(e){var i=e*this._deltaInv;if(this.life=this.life>e?this.life-e:0,this.life<=0)return this.ancestor.removeChild(this),!1;var o=this.life/this.startLife,n=this.startScale;this.startScale>this.endScale?n=(n*=o)this.endScale?this.endScale:n),this.alpha=o,this.vel.x+=this.wind*i,this.vel.y+=this.gravity*i;var r=this.followTrajectory?Math.atan2(this.vel.y,this.vel.x):this.angle;return this.pos.x+=this.vel.x*i,this.pos.y+=this.vel.y*i,this.currentTransform.setTransform(n,0,0,0,n,0,this.pos.x,this.pos.y,1).rotate(r),this.isDirty=this.inViewport||!this.onlyInViewport,t.prototype.update.call(this,e)},e.prototype.draw=function(t){var e=this.width,i=this.height;t.drawImage(this.image,0,0,e,i,-e/2,-i/2,e,i)},e}(Ml),Rp=function(t){function e(e,i,o){if("number"!=typeof o.width||"number"!=typeof o.height)throw new Error("height and width properties are mandatory when passing settings parameters to an object entity");t.call(this,e,i,o.width,o.height),this.children=[],o.image&&(o.framewidth=o.framewidth||o.width,o.frameheight=o.frameheight||o.height,this.renderable=new pc(0,0,o)),o.anchorPoint?this.anchorPoint.set(o.anchorPoint.x,o.anchorPoint.y):this.anchorPoint.set(0,0),"string"==typeof o.name&&(this.name=o.name),this.type=o.type||"",this.id=o.id||"",this.alive=!0,void 0===o.shapes&&(o.shapes=qn.pull("Polygon",0,0,[qn.pull("Vector2d",0,0),qn.pull("Vector2d",this.width,0),qn.pull("Vector2d",this.width,this.height),qn.pull("Vector2d",0,this.height)])),this.body=new Gl(this,o.shapes,this.onBodyUpdate.bind(this)),0===this.width&&0===this.height&&this.resize(this.body.getBounds().width,this.body.getBounds().height),this.body.setCollisionMask(o.collisionMask),this.body.setCollisionType(o.collisionType),this.autoTransform=!1}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var i={renderable:{configurable:!0}};return i.renderable.get=function(){return this.children[0]},i.renderable.set=function(e){if(!(e instanceof t))throw new Error(e+"should extend me.Renderable");this.children[0]=e,this.children[0].ancestor=this},e.prototype.update=function(e){return this.renderable&&(this.isDirty|=this.renderable.update(e)),t.prototype.update.call(this,e)},e.prototype.onBodyUpdate=function(t){this.getBounds().addBounds(t.getBounds(),!0),this.updateBoundsPos(this.pos.x,this.pos.y)},e.prototype.preDraw=function(e){e.save(),e.translate(this.pos.x+this.body.getBounds().x,this.pos.y+this.body.getBounds().y),this.renderable instanceof t&&e.translate(this.anchorPoint.x*this.body.getBounds().width,this.anchorPoint.y*this.body.getBounds().height)},e.prototype.draw=function(e,i){var o=this.renderable;o instanceof t&&(o.preDraw(e),o.draw(e,i),o.postDraw(e))},e.prototype.destroy=function(){this.renderable&&(this.renderable.destroy.apply(this.renderable,arguments),this.children.splice(0,1)),t.prototype.destroy.call(this,arguments)},e.prototype.onDeactivateEvent=function(){this.renderable&&this.renderable.onDeactivateEvent&&this.renderable.onDeactivateEvent()},Object.defineProperties(e.prototype,i),e}(Ml);function Bp(t,e,i){var o="melonJS: %s is deprecated since version %s, please use %s",n=(new Error).stack;console.groupCollapsed?console.groupCollapsed("%c"+o,"font-weight:normal;color:yellow;",t,i,e):console.warn(o,t,i,e),void 0!==n&&console.warn(n),console.groupCollapsed&&console.groupEnd()}Object.defineProperty($a.prototype,"Texture",{get:function(){return Bp("me.video.renderer.Texture","me.TextureAtlas","10.4.0"),fc}});var Dp=function(t){function e(e,i,o){Bp("DraggableEntity","Draggable","10.5.0"),t.call(this,e,i,o.width,o.height)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Mp),Lp=function(t){function e(e,i,o){Bp("DroptargetEntity","DropTarget","10.5.0"),t.call(this,e,i,o.width,o.height)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Pp);$a.prototype.getScreenCanvas=function(){return Bp("getScreenCanvas","getCanvas","13.1.0"),this.getCanvas()},$a.prototype.getScreenContext=function(){return Bp("getScreenContext","getContext","13.1.0"),this.getContext()};var zp="13.2.0";t.initialized=!1;function Fp(){!0!==t.initialized&&(qn.register("me.Entity",Rp),qn.register("me.Collectable",Ep),qn.register("me.Trigger",Sp),qn.register("me.Light2d",Cp),qn.register("me.Tween",np,!0),qn.register("me.Color",nr,!0),qn.register("me.Particle",kp,!0),qn.register("me.Sprite",pc),qn.register("me.NineSliceSprite",Tp),qn.register("me.Renderable",Ml),qn.register("me.Text",fp,!0),qn.register("me.BitmapText",yp),qn.register("me.BitmapTextData",_p,!0),qn.register("me.ImageLayer",wp),qn.register("me.ColorLayer",bp,!0),qn.register("me.Vector2d",Kn,!0),qn.register("me.Vector3d",mh,!0),qn.register("me.ObservableVector2d",vh,!0),qn.register("me.ObservableVector3d",xh,!0),qn.register("me.Matrix2d",hr,!0),qn.register("me.Matrix3d",sr,!0),qn.register("me.Rect",Ha,!0),qn.register("me.RoundRect",Ya,!0),qn.register("me.Polygon",Xa,!0),qn.register("me.Line",qa,!0),qn.register("me.Point",Ja,!0),qn.register("me.Ellipse",Wa,!0),qn.register("me.Bounds",Ka,!0),qn.register("Entity",Rp),qn.register("Collectable",Ep),qn.register("Trigger",Sp),qn.register("Light2d",Cp),qn.register("Tween",np,!0),qn.register("Color",nr,!0),qn.register("Particle",kp,!0),qn.register("Sprite",pc),qn.register("NineSliceSprite",Tp),qn.register("Renderable",Ml),qn.register("Text",fp,!0),qn.register("BitmapText",yp),qn.register("BitmapTextData",_p,!0),qn.register("ImageLayer",wp),qn.register("ColorLayer",bp,!0),qn.register("Vector2d",Kn,!0),qn.register("Vector3d",mh,!0),qn.register("ObservableVector2d",vh,!0),qn.register("ObservableVector3d",xh,!0),qn.register("Matrix2d",hr,!0),qn.register("Matrix3d",sr,!0),qn.register("Rect",Ha,!0),qn.register("RoundRect",Ya,!0),qn.register("Polygon",Xa,!0),qn.register("Line",qa,!0),qn.register("Point",Ja,!0),qn.register("Ellipse",Wa,!0),qn.register("Bounds",Ka,!0),qn.register("CanvasTexture",ap,!0),Wr(dr),cc.setNocache(Yc.getUriFragment().nocache||!1),Ph(),t.initialized=!0)}Qs((function(){Fp()})),t.BitmapText=yp,t.BitmapTextData=_p,t.Body=Gl,t.Bounds=Ka,t.Camera2d=nu,t.CanvasRenderer=Pu,t.Collectable=Ep,t.Color=nr,t.ColorLayer=bp,t.Container=Yl,t.Draggable=Mp,t.DraggableEntity=Dp,t.DropTarget=Pp,t.DroptargetEntity=Lp,t.Ellipse=Wa,t.Entity=Rp,t.GLShader=da,t.GUI_Object=Ap,t.ImageLayer=wp,t.Light2d=Cp,t.Line=qa,t.Math=Ln,t.Matrix2d=hr,t.Matrix3d=sr,t.NineSliceSprite=Tp,t.ObservableVector2d=vh,t.ObservableVector3d=xh,t.Particle=kp,t.ParticleEmitter=Ip,t.ParticleEmitterSettings=Op,t.Point=Ja,t.Pointer=Bh,t.Polygon=Xa,t.QuadTree=Zl,t.Rect=Ha,t.Renderable=Ml,t.Renderer=$a,t.RoundRect=Ya,t.Sprite=pc,t.Stage=su,t.TMXHexagonalRenderer=zu,t.TMXIsometricRenderer=Bu,t.TMXLayer=Iu,t.TMXOrthogonalRenderer=Ru,t.TMXRenderer=ku,t.TMXStaggeredRenderer=Fu,t.TMXTileMap=Xu,t.TMXTileset=Vu,t.TMXTilesetGroup=ju,t.Text=fp,t.TextureAtlas=fc,t.Tile=Mu,t.Trigger=Sp,t.Tween=np,t.Vector2d=Kn,t.Vector3d=mh,t.WebGLCompositor=ga,t.WebGLRenderer=Ic,t.World=Ql,t.audio=gh,t.boot=Fp,t.collision=Nl,t.device=ha,t.event=Qr,t.game=$l,t.input=Cl,t.level=Ku,t.loader=cc,t.plugin=ep,t.plugins=tp,t.pool=qn,t.save=es,t.skipAutoInit=!1,t.state=bu,t.timer=Kc,t.utils=Yc,t.version=zp,t.video=Gc,t.warning=Bp,Object.defineProperty(t,"__esModule",{value:!0})})); \ No newline at end of file diff --git a/dist/melonjs.module.d.ts b/dist/melonjs.module.d.ts index b29e30f728..49abc5d6b2 100644 --- a/dist/melonjs.module.d.ts +++ b/dist/melonjs.module.d.ts @@ -4893,6 +4893,30 @@ export class Point { public y: number; /** @ignore */ onResetEvent(x?: number, y?: number): void; + /** + * set the Point x and y properties to the given values + * @param {number} x + * @param {number} y + * @returns {Point} Reference to this object for method chaining + */ + set(x?: number, y?: number): Point; + /** + * return true if the two points are the same + * @name equals + * @memberof Point + * @method + * @param {Point} point + * @returns {boolean} + */ + /** + * return true if this point is equal to the given values + * @name equals + * @memberof Point + * @param {number} x + * @param {number} y + * @returns {boolean} + */ + equals(...args: any[]): boolean; /** * clone this Point * @name clone @@ -5812,17 +5836,6 @@ export class Renderable extends Rect { * ]); */ mask: Rect | RoundRect | Polygon | Line | Ellipse; - /** - * define a tint for this renderable. a (255, 255, 255) r, g, b value will remove the tint effect. - * @type {Color} - * @default (255, 255, 255) - * @example - * // add a red tint to this renderable - * this.tint.setColor(255, 128, 128); - * // remove the tint - * this.tint.setColor(255, 255, 255); - */ - tint: Color; /** * the blend mode to be applied to this renderable (see renderer setBlendMode for available blend mode) * @type {string} @@ -5860,6 +5873,19 @@ export class Renderable extends Rect { * @type {boolean} */ get isFloating(): boolean; + set tint(arg: Color); + /** + * define a tint for this renderable. a (255, 255, 255) r, g, b value will remove the tint effect. + * @type {Color} + * @default (255, 255, 255) + * @example + * // add a red tint to this renderable + * this.tint.setColor(255, 128, 128); + * // remove the tint + * this.tint.setColor(255, 255, 255); + */ + get tint(): Color; + _tint: any; set inViewport(arg: boolean); /** * Whether the renderable object is visible and within the viewport diff --git a/dist/melonjs.module.js b/dist/melonjs.module.js index ec60aa29cc..eecbe6411a 100644 --- a/dist/melonjs.module.js +++ b/dist/melonjs.module.js @@ -10087,8 +10087,49 @@ class Point { /** @ignore */ onResetEvent(x = 0, y = 0) { - this.x = x; - this.y = y; + this.set(x, y); + } + + /** + * set the Point x and y properties to the given values + * @param {number} x + * @param {number} y + * @returns {Point} Reference to this object for method chaining + */ + set(x = 0, y = 0) { + this.x = x; + this.y = y; + return this; + } + + /** + * return true if the two points are the same + * @name equals + * @memberof Point + * @method + * @param {Point} point + * @returns {boolean} + */ + /** + * return true if this point is equal to the given values + * @name equals + * @memberof Point + * @param {number} x + * @param {number} y + * @returns {boolean} + */ + equals() { + var _x, _y; + if (arguments.length === 2) { + // x, y + _x = arguments[0]; + _y = arguments[1]; + } else { + // point + _x = arguments[0].x; + _y = arguments[0].y; + } + return ((this.x === _x) && (this.y === _y)); } /** @@ -18162,18 +18203,6 @@ class Renderable extends Rect { */ this.mask = undefined; - /** - * define a tint for this renderable. a (255, 255, 255) r, g, b value will remove the tint effect. - * @type {Color} - * @default (255, 255, 255) - * @example - * // add a red tint to this renderable - * this.tint.setColor(255, 128, 128); - * // remove the tint - * this.tint.setColor(255, 255, 255); - */ - this.tint = pool.pull("Color", 255, 255, 255, 1.0); - /** * the blend mode to be applied to this renderable (see renderer setBlendMode for available blend mode) * @type {string} @@ -18230,6 +18259,34 @@ class Renderable extends Rect { return this.floating === true || (typeof this.ancestor !== "undefined" && this.ancestor.floating === true); } + /** + * define a tint for this renderable. a (255, 255, 255) r, g, b value will remove the tint effect. + * @type {Color} + * @default (255, 255, 255) + * @example + * // add a red tint to this renderable + * this.tint.setColor(255, 128, 128); + * // remove the tint + * this.tint.setColor(255, 255, 255); + */ + get tint() { + if (typeof this._tint === "undefined") { + this._tint = pool.pull("Color", 255, 255, 255, 1.0); + } + return this._tint; + } + set tint(value) { + if (typeof this._tint === "undefined") { + this._tint = pool.pull("Color", 255, 255, 255, 1.0); + } + if (value instanceof Color) { + this._tint.copy(value); + } else { + // string (#RGB, #ARGB, #RRGGBB, #AARRGGBB) + this._tint.parseCSS(value); + } + } + /** * Whether the renderable object is visible and within the viewport * @type {boolean} @@ -18679,9 +18736,9 @@ class Renderable extends Rect { this.mask = undefined; } - if (typeof this.tint !== "undefined") { - pool.push(this.tint); - this.tint = undefined; + if (typeof this._tint !== "undefined") { + pool.push(this._tint); + this._tint = undefined; } this.ancestor = undefined; @@ -29115,7 +29172,12 @@ class Sprite extends Renderable { } if (typeof (settings.tint) !== "undefined") { - this.tint.setColor(settings.tint); + if (settings.tint instanceof Color) { + this.tint.copy(settings.tint); + } else { + // string (#RGB, #ARGB, #RRGGBB, #AARRGGBB) + this.tint.parseCSS(settings.tint); + } } // set the sprite name if specified