UNPKG

phaser

Version:

A fast, free and fun HTML5 Game Framework for Desktop and Mobile web browsers.

1 lines 1.05 MB
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("Phaser",[],e):"object"==typeof exports?exports.Phaser=e():t.Phaser=e()}(window,function(){return n={},s.m=i=[function(t,e){function r(t,e,i,n){for(var s in e)if(e.hasOwnProperty(s)){var r=(l=e,u=s,f=d=void 0,f=(c=i)?l[u]:Object.getOwnPropertyDescriptor(l,u),!c&&f.value&&"object"==typeof f.value&&(f=f.value),!(!f||!((d=f).get&&"function"==typeof d.get||d.set&&"function"==typeof d.set))&&(void 0===f.enumerable&&(f.enumerable=!0),void 0===f.configurable&&(f.configurable=!0),f));if(!1!==r){if(o=(n||t).prototype,a=s,h=void 0,(h=Object.getOwnPropertyDescriptor(o,a))&&(h.value&&"object"==typeof h.value&&(h=h.value),!1===h.configurable)){if(p.ignoreFinals)continue;throw new Error("cannot override final property '"+s+"', set Class.ignoreFinals = true to skip")}Object.defineProperty(t.prototype,s,r)}else t.prototype[s]=e[s]}var o,a,h,l,u,c,d,f}function o(t,e){if(e){Array.isArray(e)||(e=[e]);for(var i=0;i<e.length;i++)r(t,e[i].prototype||e[i])}}function p(t){var e,i,n;if((t=t||{}).initialize){if("function"!=typeof t.initialize)throw new Error("initialize must be a function");n=t.initialize,delete t.initialize}else{n=t.Extends?(i=t.Extends,function(){i.apply(this,arguments)}):function(){}}t.Extends?(n.prototype=Object.create(t.Extends.prototype),n.prototype.constructor=n,e=t.Extends,delete t.Extends):n.prototype.constructor=n;var s=null;return t.Mixins&&(s=t.Mixins,delete t.Mixins),o(n,s),r(n,t,!0,e),n}p.extend=r,p.mixin=o,p.ignoreFinals=!1,t.exports=p},function(t,e){t.exports=function(){}},function(t,e){t.exports=function(t,e,i){var n=typeof t;return t&&"number"!=n&&"string"!=n&&t.hasOwnProperty(e)&&void 0!==t[e]?t[e]:i}},function(t,e,i){var n=i(0),s=i(105),r=new n({initialize:function(t,e){this.x=0,this.y=0,"object"==typeof t?(this.x=t.x||0,this.y=t.y||0):(void 0===e&&(e=t),this.x=t||0,this.y=e||0)},clone:function(){return new r(this.x,this.y)},copy:function(t){return this.x=t.x||0,this.y=t.y||0,this},setFromObject:function(t){return this.x=t.x||0,this.y=t.y||0,this},set:function(t,e){return void 0===e&&(e=t),this.x=t,this.y=e,this},setTo:function(t,e){return this.set(t,e)},setToPolar:function(t,e){return null==e&&(e=1),this.x=Math.cos(t)*e,this.y=Math.sin(t)*e,this},equals:function(t){return this.x===t.x&&this.y===t.y},fuzzyEquals:function(t,e){return s(this.x,t.x,e)&&s(this.y,t.y,e)},angle:function(){var t=Math.atan2(this.y,this.x);return t<0&&(t+=2*Math.PI),t},setAngle:function(t){return this.setToPolar(t,this.length())},add:function(t){return this.x+=t.x,this.y+=t.y,this},subtract:function(t){return this.x-=t.x,this.y-=t.y,this},multiply:function(t){return this.x*=t.x,this.y*=t.y,this},scale:function(t){return isFinite(t)?(this.x*=t,this.y*=t):(this.x=0,this.y=0),this},divide:function(t){return this.x/=t.x,this.y/=t.y,this},negate:function(){return this.x=-this.x,this.y=-this.y,this},distance:function(t){var e=t.x-this.x,i=t.y-this.y;return Math.sqrt(e*e+i*i)},distanceSq:function(t){var e=t.x-this.x,i=t.y-this.y;return e*e+i*i},length:function(){var t=this.x,e=this.y;return Math.sqrt(t*t+e*e)},setLength:function(t){return this.normalize().scale(t)},lengthSq:function(){var t=this.x,e=this.y;return t*t+e*e},normalize:function(){var t=this.x,e=this.y,i=t*t+e*e;return 0<i&&(i=1/Math.sqrt(i),this.x=t*i,this.y=e*i),this},normalizeRightHand:function(){var t=this.x;return this.x=-1*this.y,this.y=t,this},normalizeLeftHand:function(){var t=this.x;return this.x=this.y,this.y=-1*t,this},dot:function(t){return this.x*t.x+this.y*t.y},cross:function(t){return this.x*t.y-this.y*t.x},lerp:function(t,e){void 0===e&&(e=0);var i=this.x,n=this.y;return this.x=i+e*(t.x-i),this.y=n+e*(t.y-n),this},transformMat3:function(t){var e=this.x,i=this.y,n=t.val;return this.x=n[0]*e+n[3]*i+n[6],this.y=n[1]*e+n[4]*i+n[7],this},transformMat4:function(t){var e=this.x,i=this.y,n=t.val;return this.x=n[0]*e+n[4]*i+n[12],this.y=n[1]*e+n[5]*i+n[13],this},reset:function(){return this.x=0,this.y=0,this},limit:function(t){var e=this.length();return e&&t<e&&this.scale(t/e),this},reflect:function(t){return t=t.clone().normalize(),this.subtract(t.scale(2*this.dot(t)))},mirror:function(t){return this.reflect(t).negate()},rotate:function(t){var e=Math.cos(t),i=Math.sin(t);return this.set(e*this.x-i*this.y,i*this.x+e*this.y)}});r.ZERO=new r,r.RIGHT=new r(1,0),r.LEFT=new r(-1,0),r.UP=new r(0,-1),r.DOWN=new r(0,1),r.ONE=new r(1,1),t.exports=r},function(t,e,i){var n=i(0),s=i(60),r=new n({initialize:function(t,e){void 0===t&&(t=0),void 0===e&&(e=t),this.type=s.POINT,this.x=t,this.y=e},setTo:function(t,e){return void 0===t&&(t=0),void 0===e&&(e=t),this.x=t,this.y=e,this}});t.exports=r},function(t,e,i){var n=i(0),s=i(25),r=i(20),o=new n({initialize:function(t){this.scene=t,this.systems=t.sys,this.events=t.sys.events,this.displayList,this.updateList,this.events.once(r.BOOT,this.boot,this),this.events.on(r.START,this.start,this)},boot:function(){this.displayList=this.systems.displayList,this.updateList=this.systems.updateList,this.events.once(r.DESTROY,this.destroy,this)},start:function(){this.events.once(r.SHUTDOWN,this.shutdown,this)},existing:function(t){return(t.renderCanvas||t.renderWebGL)&&this.displayList.add(t),t.preUpdate&&this.updateList.add(t),t},shutdown:function(){this.events.off(r.SHUTDOWN,this.shutdown,this)},destroy:function(){this.shutdown(),this.events.off(r.START,this.start,this),this.scene=null,this.systems=null,this.events=null,this.displayList=null,this.updateList=null}});o.register=function(t,e){o.prototype.hasOwnProperty(t)||(o.prototype[t]=e)},o.remove=function(t){o.prototype.hasOwnProperty(t)&&delete o.prototype[t]},s.register("GameObjectFactory",o,"add"),t.exports=o},function(t,e){t.exports=function(t,e,i){if(t&&"number"!=typeof t){if(t.hasOwnProperty(e))return t[e];if(-1===e.indexOf("."))return i;for(var n=e.split("."),s=t,r=i,o=0;o<n.length;o++){if(!s.hasOwnProperty(n[o])){r=i;break}r=s[n[o]],s=s[n[o]]}return r}return i}},function(t,e){t.exports=function(t){if("object"!=typeof t||t.nodeType||t===t.window)return!1;try{if(t.constructor&&!{}.hasOwnProperty.call(t.constructor.prototype,"isPrototypeOf"))return!1}catch(t){return!1}return!0}},function(t,e){var i={},n={install:function(t){for(var e in i)t[e]=i[e]},register:function(t,e){i[t]=e},destroy:function(){i={}}};t.exports=n},function(t,e,i){"use strict";var n=Object.prototype.hasOwnProperty,f="~";function s(){}function a(t,e,i){this.fn=t,this.context=e,this.once=i||!1}function r(t,e,i,n,s){if("function"!=typeof i)throw new TypeError("The listener must be a function");var r=new a(i,n||t,s),o=f?f+e:e;return t._events[o]?t._events[o].fn?t._events[o]=[t._events[o],r]:t._events[o].push(r):(t._events[o]=r,t._eventsCount++),t}function l(t,e){0==--t._eventsCount?t._events=new s:delete t._events[e]}function o(){this._events=new s,this._eventsCount=0}Object.create&&(s.prototype=Object.create(null),(new s).__proto__||(f=!1)),o.prototype.eventNames=function(){var t,e,i=[];if(0===this._eventsCount)return i;for(e in t=this._events)n.call(t,e)&&i.push(f?e.slice(1):e);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(t)):i},o.prototype.listeners=function(t){var e=f?f+t:t,i=this._events[e];if(!i)return[];if(i.fn)return[i.fn];for(var n=0,s=i.length,r=new Array(s);n<s;n++)r[n]=i[n].fn;return r},o.prototype.listenerCount=function(t){var e=f?f+t:t,i=this._events[e];return i?i.fn?1:i.length:0},o.prototype.emit=function(t,e,i,n,s,r){var o=f?f+t:t;if(!this._events[o])return!1;var a,h=this._events[o],l=arguments.length;if(h.fn){switch(h.once&&this.removeListener(t,h.fn,void 0,!0),l){case 1:return h.fn.call(h.context),!0;case 2:return h.fn.call(h.context,e),!0;case 3:return h.fn.call(h.context,e,i),!0;case 4:return h.fn.call(h.context,e,i,n),!0;case 5:return h.fn.call(h.context,e,i,n,s),!0;case 6:return h.fn.call(h.context,e,i,n,s,r),!0}for(d=1,a=new Array(l-1);d<l;d++)a[d-1]=arguments[d];h.fn.apply(h.context,a)}else for(var u,c=h.length,d=0;d<c;d++)switch(h[d].once&&this.removeListener(t,h[d].fn,void 0,!0),l){case 1:h[d].fn.call(h[d].context);break;case 2:h[d].fn.call(h[d].context,e);break;case 3:h[d].fn.call(h[d].context,e,i);break;case 4:h[d].fn.call(h[d].context,e,i,n);break;default:if(!a)for(u=1,a=new Array(l-1);u<l;u++)a[u-1]=arguments[u];h[d].fn.apply(h[d].context,a)}return!0},o.prototype.on=function(t,e,i){return r(this,t,e,i,!1)},o.prototype.once=function(t,e,i){return r(this,t,e,i,!0)},o.prototype.removeListener=function(t,e,i,n){var s=f?f+t:t;if(!this._events[s])return this;if(!e)return l(this,s),this;var r=this._events[s];if(r.fn)r.fn!==e||n&&!r.once||i&&r.context!==i||l(this,s);else{for(var o=0,a=[],h=r.length;o<h;o++)(r[o].fn!==e||n&&!r[o].once||i&&r[o].context!==i)&&a.push(r[o]);a.length?this._events[s]=1===a.length?a[0]:a:l(this,s)}return this},o.prototype.removeAllListeners=function(t){var e;return t?(e=f?f+t:t,this._events[e]&&l(this,e)):(this._events=new s,this._eventsCount=0),this},o.prototype.off=o.prototype.removeListener,o.prototype.addListener=o.prototype.on,o.prefixed=f,o.EventEmitter=o,t.exports=o},function(t,e,i){var n=i(0),s=i(61),r=i(177),o=i(317),a=i(60),h=i(50),l=i(180),u=new n({initialize:function(t,e,i,n){void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=0),this.type=a.RECTANGLE,this.x=t,this.y=e,this.width=i,this.height=n},contains:function(t,e){return s(this,t,e)},getPoint:function(t,e){return r(this,t,e)},getPoints:function(t,e,i){return o(this,t,e,i)},getRandomPoint:function(t){return l(this,t)},setTo:function(t,e,i,n){return this.x=t,this.y=e,this.width=i,this.height=n,this},setEmpty:function(){return this.setTo(0,0,0,0)},setPosition:function(t,e){return void 0===e&&(e=t),this.x=t,this.y=e,this},setSize:function(t,e){return void 0===e&&(e=t),this.width=t,this.height=e,this},isEmpty:function(){return this.width<=0||this.height<=0},getLineA:function(t){return void 0===t&&(t=new h),t.setTo(this.x,this.y,this.right,this.y),t},getLineB:function(t){return void 0===t&&(t=new h),t.setTo(this.right,this.y,this.right,this.bottom),t},getLineC:function(t){return void 0===t&&(t=new h),t.setTo(this.right,this.bottom,this.x,this.bottom),t},getLineD:function(t){return void 0===t&&(t=new h),t.setTo(this.x,this.bottom,this.x,this.y),t},left:{get:function(){return this.x},set:function(t){t>=this.right?this.width=0:this.width=this.right-t,this.x=t}},right:{get:function(){return this.x+this.width},set:function(t){t<=this.x?this.width=0:this.width=t-this.x}},top:{get:function(){return this.y},set:function(t){t>=this.bottom?this.height=0:this.height=this.bottom-t,this.y=t}},bottom:{get:function(){return this.y+this.height},set:function(t){t<=this.y?this.height=0:this.height=t-this.y}},centerX:{get:function(){return this.x+this.width/2},set:function(t){this.x=t-this.width/2}},centerY:{get:function(){return this.y+this.height/2},set:function(t){this.y=t-this.height/2}}});t.exports=u},function(t,e,i){t.exports={Alpha:i(629),AlphaSingle:i(314),BlendMode:i(315),ComputedSize:i(630),Crop:i(631),Depth:i(316),Flip:i(632),GetBounds:i(633),Mask:i(320),Origin:i(654),PathFollower:i(655),Pipeline:i(136),ScrollFactor:i(323),Size:i(656),Texture:i(657),TextureCrop:i(658),Tint:i(659),ToJSON:i(182),Transform:i(324),TransformMatrix:i(26),Visible:i(325)}},function(t,e){t.exports={getTintFromFloats:function(t,e,i,n){return((255&(255*n|0))<<24|(255&(255*t|0))<<16|(255&(255*e|0))<<8|255&(255*i|0))>>>0},getTintAppendFloatAlpha:function(t,e){return((255&(255*e|0))<<24|t)>>>0},getTintAppendFloatAlphaAndSwap:function(t,e){return((255&(255*e|0))<<24|(255&(0|t))<<16|(255&(t>>8|0))<<8|255&(t>>16|0))>>>0},getFloatsFromUintRGB:function(t){return[(255&(t>>16|0))/255,(255&(t>>8|0))/255,(255&(0|t))/255]},checkShaderMax:function(t,e){e&&-1!==e||(e=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS));for(var i=t.createShader(t.FRAGMENT_SHADER),n=["precision mediump float;","void main(void){","float test = 0.1;","%forloop%","gl_FragColor = vec4(0.0);","}"].join("\n");;){var s=n.replace(/%forloop%/gi,function(t){for(var e="",i=0;i<t;++i)0<i&&(e+="\nelse "),i<t-1&&(e+="if(test == "+i+".0){}");return e}(e));if(t.shaderSource(i,s),t.compileShader(i),t.getShaderParameter(i,t.COMPILE_STATUS))break;e=e/2|0}return e},parseFragmentShaderMaxTextures:function(t,e){if(!t)return"";for(var i="",n=0;n<e;n++)0<n&&(i+="\n\telse "),n<e-1&&(i+="if (outTexId < "+n+".5)"),i+="\n\t{",i+="\n\t\ttexture = texture2D(uMainSampler["+n+"], outTexCoord);",i+="\n\t}";return(t=t.replace(/%count%/gi,e.toString())).replace(/%forloop%/gi,i)}}},function(t,e){var i={PI2:2*Math.PI,TAU:.5*Math.PI,EPSILON:1e-6,DEG_TO_RAD:Math.PI/180,RAD_TO_DEG:180/Math.PI,RND:null,MIN_SAFE_INTEGER:Number.MIN_SAFE_INTEGER||-9007199254740991,MAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER||9007199254740991};t.exports=i},function(t,e,i){var n=i(0),s=i(182),r=i(95),o=i(9),a=i(80),h=new n({Extends:o,initialize:function(t,e){o.call(this),this.scene=t,this.displayList=null,this.type=e,this.state=0,this.parentContainer=null,this.name="",this.active=!0,this.tabIndex=-1,this.data=null,this.renderFlags=15,this.cameraFilter=0,this.input=null,this.body=null,this.ignoreDestroy=!1,this.on(a.ADDED_TO_SCENE,this.addedToScene,this),this.on(a.REMOVED_FROM_SCENE,this.removedFromScene,this),t.sys.queueDepthSort()},setActive:function(t){return this.active=t,this},setName:function(t){return this.name=t,this},setState:function(t){return this.state=t,this},setDataEnabled:function(){return this.data||(this.data=new r(this)),this},setData:function(t,e){return this.data||(this.data=new r(this)),this.data.set(t,e),this},incData:function(t,e){return this.data||(this.data=new r(this)),this.data.inc(t,e),this},toggleData:function(t){return this.data||(this.data=new r(this)),this.data.toggle(t),this},getData:function(t){return this.data||(this.data=new r(this)),this.data.get(t)},setInteractive:function(t,e,i){return this.scene.sys.input.enable(this,t,e,i),this},disableInteractive:function(){return this.input&&(this.input.enabled=!1),this},removeInteractive:function(){return this.scene.sys.input.clear(this),this.input=void 0,this},addedToScene:function(){},removedFromScene:function(){},update:function(){},toJSON:function(){return s(this)},willRender:function(t){return!(h.RENDER_MASK!==this.renderFlags||0!==this.cameraFilter&&this.cameraFilter&t.id)},getIndexList:function(){for(var t=this,e=this.parentContainer,i=[];e&&(i.unshift(e.getIndex(t)),(t=e).parentContainer);)e=e.parentContainer;return i.unshift(this.displayList.getIndex(t)),i},destroy:function(){this.scene&&!this.ignoreDestroy&&(this.preDestroy&&this.preDestroy.call(this),this.emit(a.DESTROY,this),this.removeAllListeners(),this.postPipelines&&this.resetPostPipeline(!0),this.displayList&&(this.displayList.queueDepthSort(),this.displayList.remove(this)),this.input&&(this.scene.sys.input.clear(this),this.input=void 0),this.data&&(this.data.destroy(),this.data=void 0),this.body&&(this.body.destroy(),this.body=void 0),this.active=!1,this.visible=!1,this.scene=void 0,this.displayList=void 0,this.parentContainer=void 0)}});h.RENDER_MASK=15,t.exports=h},function(t,e,i){var s=i(201),r=i(6);t.exports=function(t,e,i){var n=r(t,e,null);if(null===n)return i;if(Array.isArray(n))return s.RND.pick(n);if("object"==typeof n){if(n.hasOwnProperty("randInt"))return s.RND.integerInRange(n.randInt[0],n.randInt[1]);if(n.hasOwnProperty("randFloat"))return s.RND.realInRange(n.randFloat[0],n.randFloat[1])}else if("function"==typeof n)return n(e);return n}},function(t,e,i){var n=i(0),s=i(25),r=i(20),o=new n({initialize:function(t){this.scene=t,this.systems=t.sys,this.events=t.sys.events,this.displayList,this.updateList,this.events.once(r.BOOT,this.boot,this),this.events.on(r.START,this.start,this)},boot:function(){this.displayList=this.systems.displayList,this.updateList=this.systems.updateList,this.events.once(r.DESTROY,this.destroy,this)},start:function(){this.events.once(r.SHUTDOWN,this.shutdown,this)},shutdown:function(){this.events.off(r.SHUTDOWN,this.shutdown,this)},destroy:function(){this.shutdown(),this.events.off(r.START,this.start,this),this.scene=null,this.systems=null,this.events=null,this.displayList=null,this.updateList=null}});o.register=function(t,e){o.prototype.hasOwnProperty(t)||(o.prototype[t]=e)},o.remove=function(t){o.prototype.hasOwnProperty(t)&&delete o.prototype[t]},s.register("GameObjectCreator",o,"make"),t.exports=o},function(t,e,i){var u=i(7),c=function(){var t,e,i,n,s,r,o=arguments[0]||{},a=1,h=arguments.length,l=!1;for("boolean"==typeof o&&(l=o,o=arguments[1]||{},a=2),h===a&&(o=this,--a);a<h;a++)if(null!=(t=arguments[a]))for(e in t)i=o[e],o!==(n=t[e])&&(l&&n&&(u(n)||(s=Array.isArray(n)))?(r=s?(s=!1,i&&Array.isArray(i)?i:[]):i&&u(i)?i:{},o[e]=c(l,r,n)):void 0!==n&&(o[e]=n));return o};t.exports=c},function(t,e){t.exports=function(t,e,i){return Math.max(e,Math.min(i,t))}},function(t,e,i){var n=i(26),o=new n,a=new n,h=new n,l={camera:o,sprite:a,calc:h};t.exports=function(t,e,i){var n=o,s=a,r=h;return s.applyITRS(t.x,t.y,t.rotation,t.scaleX,t.scaleY),n.copyFrom(e.matrix),i?(n.multiplyWithOffset(i,-e.scrollX*t.scrollFactorX,-e.scrollY*t.scrollFactorY),s.e=t.x,s.f=t.y):(s.e-=e.scrollX*t.scrollFactorX,s.f-=e.scrollY*t.scrollFactorY),n.multiply(s,r),l}},function(t,e,i){t.exports={ADDED_TO_SCENE:i(806),BOOT:i(807),CREATE:i(808),DESTROY:i(809),PAUSE:i(810),POST_UPDATE:i(811),PRE_UPDATE:i(812),READY:i(813),REMOVED_FROM_SCENE:i(814),RENDER:i(815),RESUME:i(816),SHUTDOWN:i(817),SLEEP:i(818),START:i(819),TRANSITION_COMPLETE:i(820),TRANSITION_INIT:i(821),TRANSITION_OUT:i(822),TRANSITION_START:i(823),TRANSITION_WAKE:i(824),UPDATE:i(825),WAKE:i(826)}},function(t,e){t.exports={LOADER_IDLE:0,LOADER_LOADING:1,LOADER_PROCESSING:2,LOADER_COMPLETE:3,LOADER_SHUTDOWN:4,LOADER_DESTROYED:5,FILE_PENDING:10,FILE_LOADING:11,FILE_LOADED:12,FILE_FAILED:13,FILE_PROCESSING:14,FILE_ERRORED:16,FILE_COMPLETE:17,FILE_DESTROYED:18,FILE_POPULATED:19}},function(t,e){var h={};t.exports=h,function(){h._nextId=0,h._seed=0,h._nowStartTime=+new Date,h.extend=function(t,e){for(var i,n="boolean"==typeof e?(i=2,e):(i=1,!0),s=i;s<arguments.length;s++){var r=arguments[s];if(r)for(var o in r)!n||!r[o]||r[o].constructor!==Object||t[o]&&t[o].constructor!==Object?t[o]=r[o]:(t[o]=t[o]||{},h.extend(t[o],n,r[o]))}return t},h.clone=function(t,e){return h.extend({},e,t)},h.keys=function(t){if(Object.keys)return Object.keys(t);var e=[];for(var i in t)e.push(i);return e},h.values=function(t){var e=[];if(Object.keys){for(var i=Object.keys(t),n=0;n<i.length;n++)e.push(t[i[n]]);return e}for(var s in t)e.push(t[s]);return e},h.get=function(t,e,i,n){e=e.split(".").slice(i,n);for(var s=0;s<e.length;s+=1)t=t[e[s]];return t},h.set=function(t,e,i,n,s){var r=e.split(".").slice(n,s);return h.get(t,e,0,-1)[r[r.length-1]]=i},h.shuffle=function(t){for(var e=t.length-1;0<e;e--){var i=Math.floor(h.random()*(e+1)),n=t[e];t[e]=t[i],t[i]=n}return t},h.choose=function(t){return t[Math.floor(h.random()*t.length)]},h.isElement=function(t){return"undefined"!=typeof HTMLElement?t instanceof HTMLElement:!!(t&&t.nodeType&&t.nodeName)},h.isArray=function(t){return"[object Array]"===Object.prototype.toString.call(t)},h.isFunction=function(t){return"function"==typeof t},h.isPlainObject=function(t){return"object"==typeof t&&t.constructor===Object},h.isString=function(t){return"[object String]"===Object.prototype.toString.call(t)},h.clamp=function(t,e,i){return t<e?e:i<t?i:t},h.sign=function(t){return t<0?-1:1},h.now=function(){if("undefined"!=typeof window&&window.performance){if(window.performance.now)return window.performance.now();if(window.performance.webkitNow)return window.performance.webkitNow()}return new Date-h._nowStartTime},h.random=function(t,e){return e=void 0!==e?e:1,(t=void 0!==t?t:0)+i()*(e-t)};var i=function(){return h._seed=(9301*h._seed+49297)%233280,h._seed/233280};h.colorToNumber=function(t){return 3==(t=t.replace("#","")).length&&(t=t.charAt(0)+t.charAt(0)+t.charAt(1)+t.charAt(1)+t.charAt(2)+t.charAt(2)),parseInt(t,16)},h.logLevel=1,h.log=function(){console&&0<h.logLevel&&h.logLevel<=3&&console.log.apply(console,["matter-js:"].concat(Array.prototype.slice.call(arguments)))},h.info=function(){console&&0<h.logLevel&&h.logLevel<=2&&console.info.apply(console,["matter-js:"].concat(Array.prototype.slice.call(arguments)))},h.warn=function(){console&&0<h.logLevel&&h.logLevel<=3&&console.warn.apply(console,["matter-js:"].concat(Array.prototype.slice.call(arguments)))},h.nextId=function(){return h._nextId++},h.indexOf=function(t,e){if(t.indexOf)return t.indexOf(e);for(var i=0;i<t.length;i++)if(t[i]===e)return i;return-1},h.map=function(t,e){if(t.map)return t.map(e);for(var i=[],n=0;n<t.length;n+=1)i.push(e(t[n]));return i},h.topologicalSort=function(t){var e=[],i=[],n=[];for(var s in t)i[s]||n[s]||h._topologicalSort(s,i,n,t,e);return e},h._topologicalSort=function(t,e,i,n,s){var r=n[t]||[];i[t]=!0;for(var o=0;o<r.length;o+=1){var a=r[o];i[a]||e[a]||h._topologicalSort(a,e,i,n,s)}i[t]=!1,e[t]=!0,s.push(t)},h.chain=function(){for(var r=[],t=0;t<arguments.length;t+=1){var e=arguments[t];e._chained?r.push.apply(r,e._chained):r.push(e)}function i(){for(var t,e=new Array(arguments.length),i=0,n=arguments.length;i<n;i++)e[i]=arguments[i];for(i=0;i<r.length;i+=1){var s=r[i].apply(t,e);void 0!==s&&(t=s)}return t}return i._chained=r,i},h.chainPathBefore=function(t,e,i){return h.set(t,e,h.chain(i,h.get(t,e)))},h.chainPathAfter=function(t,e,i){return h.set(t,e,h.chain(h.get(t,e),i))}}()},function(t,e,i){t.exports={BLUR:i(634),BOOT:i(635),CONTEXT_LOST:i(636),CONTEXT_RESTORED:i(637),DESTROY:i(638),FOCUS:i(639),HIDDEN:i(640),PAUSE:i(641),POST_RENDER:i(642),POST_STEP:i(643),PRE_RENDER:i(644),PRE_STEP:i(645),READY:i(646),RESUME:i(647),STEP:i(648),VISIBLE:i(649)}},function(t,e,i){var n=i(0),s=i(21),r=i(98),o=i(2),a=i(161),h=i(248),l=i(529),u=i(162),c=new n({initialize:function(t,e){this.loader=t,this.cache=o(e,"cache",!1),this.type=o(e,"type",!1),this.key=o(e,"key",!1);var i=this.key;if(t.prefix&&""!==t.prefix&&(this.key=t.prefix+i),!this.type||!this.key)throw new Error("Invalid Loader."+this.type+" key");var n=o(e,"url");void 0===n?n=t.path+i+"."+o(e,"extension",""):"string"!=typeof n||n.match(/^(?:blob:|data:|http:\/\/|https:\/\/|\/\/)/)||(n=t.path+n),this.url=n,this.src="",this.xhrSettings=u(o(e,"responseType",void 0)),o(e,"xhrSettings",!1)&&(this.xhrSettings=h(this.xhrSettings,o(e,"xhrSettings",{}))),this.xhrLoader=null,this.state="function"==typeof this.url?s.FILE_POPULATED:s.FILE_PENDING,this.bytesTotal=0,this.bytesLoaded=-1,this.percentComplete=-1,this.crossOrigin=void 0,this.data=void 0,this.config=o(e,"config",{}),this.multiFile,this.linkFile},setLink:function(t){(this.linkFile=t).linkFile=this},resetXHR:function(){this.xhrLoader&&(this.xhrLoader.onload=void 0,this.xhrLoader.onerror=void 0,this.xhrLoader.onprogress=void 0)},load:function(){this.state===s.FILE_POPULATED?this.loader.nextFile(this,!0):(this.state=s.FILE_LOADING,this.src=a(this,this.loader.baseURL),0===this.src.indexOf("data:")?console.warn("Local data URIs are not supported: "+this.key):this.xhrLoader=l(this,this.loader.xhr))},onLoad:function(t,e){var i=t.responseURL&&0===t.responseURL.indexOf("file://")&&0===e.target.status,n=!(e.target&&200!==e.target.status)||i;4===t.readyState&&400<=t.status&&t.status<=599&&(n=!1),this.state=s.FILE_LOADED,this.resetXHR(),this.loader.nextFile(this,n)},onError:function(){this.resetXHR(),this.loader.nextFile(this,!1)},onProgress:function(t){t.lengthComputable&&(this.bytesLoaded=t.loaded,this.bytesTotal=t.total,this.percentComplete=Math.min(this.bytesLoaded/this.bytesTotal,1),this.loader.emit(r.FILE_PROGRESS,this,this.percentComplete))},onProcess:function(){this.state=s.FILE_PROCESSING,this.onProcessComplete()},onProcessComplete:function(){this.state=s.FILE_COMPLETE,this.multiFile&&this.multiFile.onFileComplete(this),this.loader.fileProcessComplete(this)},onProcessError:function(){this.state=s.FILE_ERRORED,this.multiFile&&this.multiFile.onFileFailed(this),this.loader.fileProcessComplete(this)},hasCacheConflict:function(){return this.cache&&this.cache.exists(this.key)},addToCache:function(){this.cache&&this.cache.add(this.key,this.data),this.pendingDestroy()},pendingDestroy:function(t){void 0===t&&(t=this.data);var e=this.key,i=this.type;this.loader.emit(r.FILE_COMPLETE,e,i,t),this.loader.emit(r.FILE_KEY_COMPLETE+i+"-"+e,e,i,t),this.loader.flagForRemoval(this)},destroy:function(){this.loader=null,this.cache=null,this.xhrSettings=null,this.multiFile=null,this.linkFile=null,this.data=null}});c.createObjectURL=function(t,e,i){var n;"function"==typeof URL?t.src=URL.createObjectURL(e):((n=new FileReader).onload=function(){t.removeAttribute("crossOrigin"),t.src="data:"+(e.type||i)+";base64,"+n.result.split(",")[1]},n.onerror=t.onerror,n.readAsDataURL(e))},c.revokeObjectURL=function(t){"function"==typeof URL&&URL.revokeObjectURL(t.src)},t.exports=c},function(t,e){var s={},r={},i={register:function(t,e,i,n){void 0===n&&(n=!1),s[t]={plugin:e,mapping:i,custom:n}},registerCustom:function(t,e,i,n){r[t]={plugin:e,mapping:i,data:n}},hasCore:function(t){return s.hasOwnProperty(t)},hasCustom:function(t){return r.hasOwnProperty(t)},getCore:function(t){return s[t]},getCustom:function(t){return r[t]},getCustomClass:function(t){return r.hasOwnProperty(t)?r[t].plugin:null},remove:function(t){s.hasOwnProperty(t)&&delete s[t]},removeCustom:function(t){r.hasOwnProperty(t)&&delete r[t]},destroyCorePlugins:function(){for(var t in s)s.hasOwnProperty(t)&&delete s[t]},destroyCustomPlugins:function(){for(var t in r)r.hasOwnProperty(t)&&delete r[t]}};t.exports=i},function(t,e,i){var n=i(0),r=i(13),c=i(3),s=new n({initialize:function(t,e,i,n,s,r){void 0===t&&(t=1),void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=1),void 0===s&&(s=0),void 0===r&&(r=0),this.matrix=new Float32Array([t,e,i,n,s,r,0,0,1]),this.decomposedMatrix={translateX:0,translateY:0,scaleX:1,scaleY:1,rotation:0}},a:{get:function(){return this.matrix[0]},set:function(t){this.matrix[0]=t}},b:{get:function(){return this.matrix[1]},set:function(t){this.matrix[1]=t}},c:{get:function(){return this.matrix[2]},set:function(t){this.matrix[2]=t}},d:{get:function(){return this.matrix[3]},set:function(t){this.matrix[3]=t}},e:{get:function(){return this.matrix[4]},set:function(t){this.matrix[4]=t}},f:{get:function(){return this.matrix[5]},set:function(t){this.matrix[5]=t}},tx:{get:function(){return this.matrix[4]},set:function(t){this.matrix[4]=t}},ty:{get:function(){return this.matrix[5]},set:function(t){this.matrix[5]=t}},rotation:{get:function(){return Math.acos(this.a/this.scaleX)*(Math.atan(-this.c/this.a)<0?-1:1)}},rotationNormalized:{get:function(){var t=this.matrix,e=t[0],i=t[1],n=t[2],s=t[3];return e||i?0<i?Math.acos(e/this.scaleX):-Math.acos(e/this.scaleX):n||s?r.TAU-(0<s?Math.acos(-n/this.scaleY):-Math.acos(n/this.scaleY)):0}},scaleX:{get:function(){return Math.sqrt(this.a*this.a+this.b*this.b)}},scaleY:{get:function(){return Math.sqrt(this.c*this.c+this.d*this.d)}},loadIdentity:function(){var t=this.matrix;return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,this},translate:function(t,e){var i=this.matrix;return i[4]=i[0]*t+i[2]*e+i[4],i[5]=i[1]*t+i[3]*e+i[5],this},scale:function(t,e){var i=this.matrix;return i[0]*=t,i[1]*=t,i[2]*=e,i[3]*=e,this},rotate:function(t){var e=Math.sin(t),i=Math.cos(t),n=this.matrix,s=n[0],r=n[1],o=n[2],a=n[3];return n[0]=s*i+o*e,n[1]=r*i+a*e,n[2]=s*-e+o*i,n[3]=r*-e+a*i,this},multiply:function(t,e){var i=this.matrix,n=t.matrix,s=i[0],r=i[1],o=i[2],a=i[3],h=i[4],l=i[5],u=n[0],c=n[1],d=n[2],f=n[3],p=n[4],g=n[5],v=void 0===e?this:e;return v.a=u*s+c*o,v.b=u*r+c*a,v.c=d*s+f*o,v.d=d*r+f*a,v.e=p*s+g*o+h,v.f=p*r+g*a+l,v},multiplyWithOffset:function(t,e,i){var n=this.matrix,s=t.matrix,r=n[0],o=n[1],a=n[2],h=n[3],l=e*r+i*a+n[4],u=e*o+i*h+n[5],c=s[0],d=s[1],f=s[2],p=s[3],g=s[4],v=s[5];return n[0]=c*r+d*a,n[1]=c*o+d*h,n[2]=f*r+p*a,n[3]=f*o+p*h,n[4]=g*r+v*a+l,n[5]=g*o+v*h+u,this},transform:function(t,e,i,n,s,r){var o=this.matrix,a=o[0],h=o[1],l=o[2],u=o[3],c=o[4],d=o[5];return o[0]=t*a+e*l,o[1]=t*h+e*u,o[2]=i*a+n*l,o[3]=i*h+n*u,o[4]=s*a+r*l+c,o[5]=s*h+r*u+d,this},transformPoint:function(t,e,i){void 0===i&&(i={x:0,y:0});var n=this.matrix,s=n[0],r=n[1],o=n[2],a=n[3],h=n[4],l=n[5];return i.x=t*s+e*o+h,i.y=t*r+e*a+l,i},invert:function(){var t=this.matrix,e=t[0],i=t[1],n=t[2],s=t[3],r=t[4],o=t[5],a=e*s-i*n;return t[0]=s/a,t[1]=-i/a,t[2]=-n/a,t[3]=e/a,t[4]=(n*o-s*r)/a,t[5]=-(e*o-i*r)/a,this},copyFrom:function(t){var e=this.matrix;return e[0]=t.a,e[1]=t.b,e[2]=t.c,e[3]=t.d,e[4]=t.e,e[5]=t.f,this},copyFromArray:function(t){var e=this.matrix;return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],this},copyToContext:function(t){var e=this.matrix;return t.transform(e[0],e[1],e[2],e[3],e[4],e[5]),t},setToContext:function(t){var e=this.matrix;return t.setTransform(e[0],e[1],e[2],e[3],e[4],e[5]),t},copyToArray:function(t){var e=this.matrix;return void 0===t?t=[e[0],e[1],e[2],e[3],e[4],e[5]]:(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5]),t},setTransform:function(t,e,i,n,s,r){var o=this.matrix;return o[0]=t,o[1]=e,o[2]=i,o[3]=n,o[4]=s,o[5]=r,this},decomposeMatrix:function(){var t,e,i=this.decomposedMatrix,n=this.matrix,s=n[0],r=n[1],o=n[2],a=n[3],h=s*a-r*o;return i.translateX=n[4],i.translateY=n[5],s||r?(t=Math.sqrt(s*s+r*r),i.rotation=0<r?Math.acos(s/t):-Math.acos(s/t),i.scaleX=t,i.scaleY=h/t):o||a?(e=Math.sqrt(o*o+a*a),i.rotation=.5*Math.PI-(0<a?Math.acos(-o/e):-Math.acos(o/e)),i.scaleX=h/e,i.scaleY=e):(i.rotation=0,i.scaleX=0,i.scaleY=0),i},applyITRS:function(t,e,i,n,s){var r=this.matrix,o=Math.sin(i),a=Math.cos(i);return r[4]=t,r[5]=e,r[0]=a*n,r[1]=o*n,r[2]=-o*s,r[3]=a*s,this},applyInverse:function(t,e,i){void 0===i&&(i=new c);var n=this.matrix,s=n[0],r=n[1],o=n[2],a=n[3],h=n[4],l=n[5],u=1/(s*a+o*-r);return i.x=a*u*t+-o*u*e+(l*o-h*a)*u,i.y=s*u*e+-r*u*t+(-l*s+h*r)*u,i},getX:function(t,e){return t*this.a+e*this.c+this.e},getY:function(t,e){return t*this.b+e*this.d+this.f},getXRound:function(t,e,i){var n=this.getX(t,e);return i&&(n=Math.round(n)),n},getYRound:function(t,e,i){var n=this.getY(t,e);return i&&(n=Math.round(n)),n},getCSSMatrix:function(){var t=this.matrix;return"matrix("+t[0]+","+t[1]+","+t[2]+","+t[3]+","+t[4]+","+t[5]+")"},destroy:function(){this.matrix=null,this.decomposedMatrix=null}});t.exports=s},function(t,e,i){var f=i(2);t.exports=function(t,e,i,n,s,r){void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=r.width),void 0===n&&(n=r.height);var o=f(s=s||{},"isNotEmpty",!1),a=f(s,"isColliding",!1),h=f(s,"hasInterestingFace",!1);t<0&&(i+=t,t=0),e<0&&(n+=e,e=0),t+i>r.width&&(i=Math.max(r.width-t,0)),e+n>r.height&&(n=Math.max(r.height-e,0));for(var l=[],u=e;u<e+n;u++)for(var c=t;c<t+i;c++){var d=r.data[u][c];if(null!==d){if(o&&-1===d.index)continue;if(a&&!d.collides)continue;if(h&&!d.hasInterestingFace)continue;l.push(d)}}return l}},function(t,e,i){var p={};t.exports=p;var g=i(34),u=i(43),s=i(101),r=i(22),v=i(44),c=i(164);!function(){p._inertiaScale=4,p._nextCollidingGroupId=1,p._nextNonCollidingGroupId=-1,p._nextCategory=1,p.create=function(t){var e={id:r.nextId(),type:"body",label:"Body",parts:[],plugin:{},angle:0,vertices:null,position:{x:0,y:0},force:{x:0,y:0},torque:0,positionImpulse:{x:0,y:0},previousPositionImpulse:{x:0,y:0},constraintImpulse:{x:0,y:0,angle:0},totalContacts:0,speed:0,angularSpeed:0,velocity:{x:0,y:0},angularVelocity:0,isSensor:!1,isStatic:!1,isSleeping:!1,motion:0,sleepThreshold:60,density:.001,restitution:0,friction:.1,frictionStatic:.5,frictionAir:.01,collisionFilter:{category:1,mask:4294967295,group:0},slop:.05,timeScale:1,events:null,bounds:null,chamfer:null,circleRadius:0,positionPrev:null,anglePrev:0,parent:null,axes:null,area:0,mass:0,inverseMass:0,inertia:0,inverseInertia:0,_original:null,render:{visible:!0,opacity:1,sprite:{xOffset:0,yOffset:0},fillColor:null,fillOpacity:null,lineColor:null,lineOpacity:null,lineThickness:null},gameObject:null,scale:{x:1,y:1},centerOfMass:{x:0,y:0},centerOffset:{x:0,y:0},gravityScale:{x:1,y:1},ignoreGravity:!1,ignorePointer:!1,onCollideCallback:null,onCollideEndCallback:null,onCollideActiveCallback:null,onCollideWith:{}};!t.hasOwnProperty("position")&&t.hasOwnProperty("vertices")?t.position=g.centre(t.vertices):t.hasOwnProperty("vertices")||(e.vertices=g.fromPath("L 0 0 L 40 0 L 40 40 L 0 40"));var i=r.extend(e,t);return n(i,t),i.setOnCollideWith=function(t,e){return e?this.onCollideWith[t.id]=e:delete this.onCollideWith[t.id],this},i},p.nextGroup=function(t){return t?p._nextNonCollidingGroupId--:p._nextCollidingGroupId++},p.nextCategory=function(){return p._nextCategory=p._nextCategory<<1,p._nextCategory};var n=function(t,e){e=e||{},p.set(t,{bounds:t.bounds||v.create(t.vertices),positionPrev:t.positionPrev||u.clone(t.position),anglePrev:t.anglePrev||t.angle,vertices:t.vertices,parts:t.parts||[t],isStatic:t.isStatic,isSleeping:t.isSleeping,parent:t.parent||t});var i,n,s,r,o=t.bounds;g.rotate(t.vertices,t.angle,t.position),c.rotate(t.axes,t.angle),v.update(o,t.vertices,t.velocity),p.set(t,{axes:e.axes||t.axes,area:e.area||t.area,mass:e.mass||t.mass,inertia:e.inertia||t.inertia}),1===t.parts.length&&(i=t.centerOfMass,n=t.centerOffset,s=o.max.x-o.min.x,r=o.max.y-o.min.y,i.x=-(o.min.x-t.position.x)/s,i.y=-(o.min.y-t.position.y)/r,n.x=s*i.x,n.y=r*i.y)};p.set=function(t,e,i){var n;for(n in"string"==typeof e&&(n=e,(e={})[n]=i),e)if(Object.prototype.hasOwnProperty.call(e,n))switch(i=e[n],n){case"isStatic":p.setStatic(t,i);break;case"isSleeping":s.set(t,i);break;case"mass":p.setMass(t,i);break;case"density":p.setDensity(t,i);break;case"inertia":p.setInertia(t,i);break;case"vertices":p.setVertices(t,i);break;case"position":p.setPosition(t,i);break;case"angle":p.setAngle(t,i);break;case"velocity":p.setVelocity(t,i);break;case"angularVelocity":p.setAngularVelocity(t,i);break;case"parts":p.setParts(t,i);break;case"centre":p.setCentre(t,i);break;default:t[n]=i}},p.setStatic=function(t,e){for(var i=0;i<t.parts.length;i++){var n=t.parts[i];(n.isStatic=e)?(n._original={restitution:n.restitution,friction:n.friction,mass:n.mass,inertia:n.inertia,density:n.density,inverseMass:n.inverseMass,inverseInertia:n.inverseInertia},n.restitution=0,n.friction=1,n.mass=n.inertia=n.density=1/0,n.inverseMass=n.inverseInertia=0,n.positionPrev.x=n.position.x,n.positionPrev.y=n.position.y,n.anglePrev=n.angle,n.angularVelocity=0,n.speed=0,n.angularSpeed=0,n.motion=0):n._original&&(n.restitution=n._original.restitution,n.friction=n._original.friction,n.mass=n._original.mass,n.inertia=n._original.inertia,n.density=n._original.density,n.inverseMass=n._original.inverseMass,n.inverseInertia=n._original.inverseInertia,n._original=null)}},p.setMass=function(t,e){var i=t.inertia/(t.mass/6);t.inertia=e/6*i,t.inverseInertia=1/t.inertia,t.mass=e,t.inverseMass=1/t.mass,t.density=t.mass/t.area},p.setDensity=function(t,e){p.setMass(t,e*t.area),t.density=e},p.setInertia=function(t,e){t.inertia=e,t.inverseInertia=1/t.inertia},p.setVertices=function(t,e){e[0].body===t?t.vertices=e:t.vertices=g.create(e,t),t.axes=c.fromVertices(t.vertices),t.area=g.area(t.vertices),p.setMass(t,t.density*t.area);var i=g.centre(t.vertices);g.translate(t.vertices,i,-1),p.setInertia(t,p._inertiaScale*g.inertia(t.vertices,t.mass)),g.translate(t.vertices,t.position),v.update(t.bounds,t.vertices,t.velocity)},p.setParts=function(t,e,i){for(e=e.slice(0),t.parts.length=0,t.parts.push(t),t.parent=t,r=0;r<e.length;r++){var n=e[r];n!==t&&(n.parent=t).parts.push(n)}if(1!==t.parts.length){if(i=void 0===i||i){for(var s=[],r=0;r<e.length;r++)s=s.concat(e[r].vertices);g.clockwiseSort(s);var o=g.hull(s),a=g.centre(o);p.setVertices(t,o),g.translate(t.vertices,a)}var h=p._totalProperties(t),l=h.centre.x,u=h.centre.y,c=t.bounds,d=t.centerOfMass,f=t.centerOffset;v.update(c,t.vertices,t.velocity),d.x=-(c.min.x-l)/(c.max.x-c.min.x),d.y=-(c.min.y-u)/(c.max.y-c.min.y),f.x=l,f.y=u,t.area=h.area,(t.parent=t).position.x=l,t.position.y=u,t.positionPrev.x=l,t.positionPrev.y=u,p.setMass(t,h.mass),p.setInertia(t,h.inertia),p.setPosition(t,h.centre)}},p.setCentre=function(t,e,i){i?(t.positionPrev.x+=e.x,t.positionPrev.y+=e.y,t.position.x+=e.x,t.position.y+=e.y):(t.positionPrev.x=e.x-(t.position.x-t.positionPrev.x),t.positionPrev.y=e.y-(t.position.y-t.positionPrev.y),t.position.x=e.x,t.position.y=e.y)},p.setPosition=function(t,e){var i=u.sub(e,t.position);t.positionPrev.x+=i.x,t.positionPrev.y+=i.y;for(var n=0;n<t.parts.length;n++){var s=t.parts[n];s.position.x+=i.x,s.position.y+=i.y,g.translate(s.vertices,i),v.update(s.bounds,s.vertices,t.velocity)}},p.setAngle=function(t,e){var i=e-t.angle;t.anglePrev+=i;for(var n=0;n<t.parts.length;n++){var s=t.parts[n];s.angle+=i,g.rotate(s.vertices,i,t.position),c.rotate(s.axes,i),v.update(s.bounds,s.vertices,t.velocity),0<n&&u.rotateAbout(s.position,i,t.position,s.position)}},p.setVelocity=function(t,e){t.positionPrev.x=t.position.x-e.x,t.positionPrev.y=t.position.y-e.y,t.velocity.x=e.x,t.velocity.y=e.y,t.speed=u.magnitude(t.velocity)},p.setAngularVelocity=function(t,e){t.anglePrev=t.angle-e,t.angularVelocity=e,t.angularSpeed=Math.abs(t.angularVelocity)},p.translate=function(t,e){p.setPosition(t,u.add(t.position,e))},p.rotate=function(t,e,i){var n,s,r,o;i&&(n=Math.cos(e),s=Math.sin(e),r=t.position.x-i.x,o=t.position.y-i.y,p.setPosition(t,{x:i.x+(r*n-o*s),y:i.y+(r*s+o*n)})),p.setAngle(t,t.angle+e)},p.scale=function(t,e,i,n){var s=0,r=0;n=n||t.position;for(var o=0;o<t.parts.length;o++){var a=t.parts[o];a.scale.x=e,a.scale.y=i,g.scale(a.vertices,e,i,n),a.axes=c.fromVertices(a.vertices),a.area=g.area(a.vertices),p.setMass(a,t.density*a.area),g.translate(a.vertices,{x:-a.position.x,y:-a.position.y}),p.setInertia(a,p._inertiaScale*g.inertia(a.vertices,a.mass)),g.translate(a.vertices,{x:a.position.x,y:a.position.y}),0<o&&(s+=a.area,r+=a.inertia),a.position.x=n.x+(a.position.x-n.x)*e,a.position.y=n.y+(a.position.y-n.y)*i,v.update(a.bounds,a.vertices,t.velocity)}1<t.parts.length&&(t.area=s,t.isStatic||(p.setMass(t,t.density*s),p.setInertia(t,r))),t.circleRadius&&(e===i?t.circleRadius*=e:t.circleRadius=null)},p.update=function(t,e,i,n){var s=Math.pow(e*i*t.timeScale,2),r=1-t.frictionAir*i*t.timeScale,o=t.position.x-t.positionPrev.x,a=t.position.y-t.positionPrev.y;t.velocity.x=o*r*n+t.force.x/t.mass*s,t.velocity.y=a*r*n+t.force.y/t.mass*s,t.positionPrev.x=t.position.x,t.positionPrev.y=t.position.y,t.position.x+=t.velocity.x,t.position.y+=t.velocity.y,t.angularVelocity=(t.angle-t.anglePrev)*r*n+t.torque/t.inertia*s,t.anglePrev=t.angle,t.angle+=t.angularVelocity,t.speed=u.magnitude(t.velocity),t.angularSpeed=Math.abs(t.angularVelocity);for(var h=0;h<t.parts.length;h++){var l=t.parts[h];g.translate(l.vertices,t.velocity),0<h&&(l.position.x+=t.velocity.x,l.position.y+=t.velocity.y),0!==t.angularVelocity&&(g.rotate(l.vertices,t.angularVelocity,t.position),c.rotate(l.axes,t.angularVelocity),0<h&&u.rotateAbout(l.position,t.angularVelocity,t.position,l.position)),v.update(l.bounds,l.vertices,t.velocity)}},p.applyForce=function(t,e,i){t.force.x+=i.x,t.force.y+=i.y;var n=e.x-t.position.x,s=e.y-t.position.y;t.torque+=n*i.y-s*i.x},p._totalProperties=function(t){for(var e={mass:0,area:0,inertia:0,centre:{x:0,y:0}},i=1===t.parts.length?0:1;i<t.parts.length;i++){var n=t.parts[i],s=n.mass!==1/0?n.mass:1;e.mass+=s,e.area+=n.area,e.inertia+=n.inertia,e.centre=u.add(e.centre,u.mult(n.position,s))}return e.centre=u.div(e.centre,e.mass),e}}()},function(t,e){t.exports=function(t,e,i,n,s,r){var o;void 0===n&&(n=0),void 0===s&&(s=0),void 0===r&&(r=1);var a=0,h=t.length;if(1===r)for(o=s;o<h;o++)t[o][e]=i+a*n,a++;else for(o=s;0<=o;o--)t[o][e]=i+a*n,a++;return t}},function(t,e,i){var l=i(37),u=i(15);t.exports=function(t,e,i){e.x=u(i,"x",0),e.y=u(i,"y",0),e.depth=u(i,"depth",0),e.flipX=u(i,"flipX",!1),e.flipY=u(i,"flipY",!1);var n=u(i,"scale",null);"number"==typeof n?e.setScale(n):null!==n&&(e.scaleX=u(n,"x",1),e.scaleY=u(n,"y",1));var s=u(i,"scrollFactor",null);"number"==typeof s?e.setScrollFactor(s):null!==s&&(e.scrollFactorX=u(s,"x",1),e.scrollFactorY=u(s,"y",1)),e.rotation=u(i,"rotation",0);var r=u(i,"angle",null);null!==r&&(e.angle=r),e.alpha=u(i,"alpha",1);var o,a,h=u(i,"origin",null);return"number"==typeof h?e.setOrigin(h):null!==h&&(o=u(h,"x",.5),a=u(h,"y",.5),e.setOrigin(o,a)),e.blendMode=u(i,"blendMode",l.NORMAL),e.visible=u(i,"visible",!0),u(i,"add",!0)&&t.sys.displayList.add(e),e.preUpdate&&t.sys.updateList.add(e),e}},function(t,e){t.exports={ORTHOGONAL:0,ISOMETRIC:1,STAGGERED:2,HEXAGONAL:3}},function(t,e,i){var a=i(19);t.exports=function(t,e,i,n,s){var r=n.alpha*i.alpha;if(r<=0)return!1;var o=a(i,n,s).calc;return e.globalCompositeOperation=t.blendModes[i.blendMode],e.globalAlpha=r,e.save(),o.setToContext(e),e.imageSmoothingEnabled=!(!t.antialias||i.frame&&i.frame.source.scaleMode),!0}},function(t,e,i){var a,h=i(35),l=i(200),u=[],c=!1;function n(t,e,i,n,s){void 0===e&&(e=1),void 0===i&&(i=1),void 0===n&&(n=h.CANVAS),void 0===s&&(s=!1);var r=a(n),o=(null===r?(r={parent:t,canvas:document.createElement("canvas"),type:n},n===h.CANVAS&&u.push(r)):r.parent=t,r.canvas);return s&&(r.parent=o),o.width=e,o.height=i,c&&n===h.CANVAS&&l.disable(o.getContext("2d")),o}function s(){var e=0;return u.forEach(function(t){t.parent&&e++}),e}t.exports={create2D:function(t,e,i){return n(t,e,i,h.CANVAS)},create:n,createWebGL:function(t,e,i){return n(t,e,i,h.WEBGL)},disableSmoothing:function(){c=!0},enableSmoothing:function(){c=!1},first:a=function(t){if(void 0===t&&(t=h.CANVAS),t===h.WEBGL)return null;for(var e=0;e<u.length;e++){var i=u[e];if(!i.parent&&i.type===t)return i}return null},free:function(){return u.length-s()},pool:u,remove:function(e){var i=e instanceof HTMLCanvasElement;u.forEach(function(t){(i&&t.canvas===e||!i&&t.parent===e)&&(t.parent=null,t.canvas.width=1,t.canvas.height=1)})},total:s}},function(t,e,i){var a={};t.exports=a;var T=i(43),w=i(22);a.create=function(t,e){for(var i=[],n=0;n<t.length;n++){var s=t[n],r={x:s.x,y:s.y,index:n,body:e,isInternal:!1,contact:null,offset:null};r.contact={vertex:r,normalImpulse:0,tangentImpulse:0},i.push(r)}return i},a.fromPath=function(t,e){var n=[];return t.replace(/L?\s*([-\d.e]+)[\s,]*([-\d.e]+)*/gi,function(t,e,i){n.push({x:parseFloat(e),y:parseFloat(i)})}),a.create(n,e)},a.centre=function(t){for(var e,i,n,s=a.area(t,!0),r={x:0,y:0},o=0;o<t.length;o++)n=(o+1)%t.length,e=T.cross(t[o],t[n]),i=T.mult(T.add(t[o],t[n]),e),r=T.add(r,i);return T.div(r,6*s)},a.mean=function(t){for(var e={x:0,y:0},i=0;i<t.length;i++)e.x+=t[i].x,e.y+=t[i].y;return T.div(e,t.length)},a.area=function(t,e){for(var i=0,n=t.length-1,s=0;s<t.length;s++)i+=(t[n].x-t[s].x)*(t[n].y+t[s].y),n=s;return e?i/2:Math.abs(i)/2},a.inertia=function(t,e){for(var i,n,s=0,r=0,o=t,a=0;a<o.length;a++)n=(a+1)%o.length,s+=(i=Math.abs(T.cross(o[n],o[a])))*(T.dot(o[n],o[n])+T.dot(o[n],o[a])+T.dot(o[a],o[a])),r+=i;return e/6*(s/r)},a.translate=function(t,e,i){var n;if(i)for(n=0;n<t.length;n++)t[n].x+=e.x*i,t[n].y+=e.y*i;else for(n=0;n<t.length;n++)t[n].x+=e.x,t[n].y+=e.y;return t},a.rotate=function(t,e,i){if(0!==e){for(var n=Math.cos(e),s=Math.sin(e),r=0;r<t.length;r++){var o=t[r],a=o.x-i.x,h=o.y-i.y;o.x=i.x+(a*n-h*s),o.y=i.y+(a*s+h*n)}return t}},a.contains=function(t,e){for(var i=0;i<t.length;i++){var n=t[i],s=t[(i+1)%t.length];if(0<(e.x-n.x)*(s.y-n.y)+(e.y-n.y)*(n.x-s.x))return!1}return!0},a.scale=function(t,e,i,n){if(1===e&&1===i)return t;var s,r;n=n||a.centre(t);for(var o=0;o<t.length;o++)s=t[o],r=T.sub(s,n),t[o].x=n.x+r.x*e,t[o].y=n.y+r.y*i;return t},a.chamfer=function(t,e,i,n,s){e="number"==typeof e?[e]:e||[8],i=void 0!==i?i:-1,n=n||2,s=s||14;for(var r=[],o=0;o<t.length;o++){var a=t[0<=o-1?o-1:t.length-1],h=t[o],l=t[(o+1)%t.length],u=e[o<e.length?o:e.length-1];if(0!==u){var c=T.normalise({x:h.y-a.y,y:a.x-h.x}),d=T.normalise({x:l.y-h.y,y:h.x-l.x}),f=Math.sqrt(2*Math.pow(u,2)),p=T.mult(w.clone(c),u),g=T.normalise(T.mult(T.add(c,d),.5)),v=T.sub(h,T.mult(g,f)),m=i;-1===i&&(m=1.75*Math.pow(u,.32)),(m=w.clamp(m,n,s))%2==1&&(m+=1);for(var y=Math.acos(T.dot(c,d))/m,x=0;x<m;x++)r.push(T.add(T.rotate(p,y*x),v))}else r.push(h)}return r},a.clockwiseSort=function(t){var i=a.mean(t);return t.sort(function(t,e){return T.angle(i,t)-T.angle(i,e)}),t},a.isConvex=function(t){var e,i,n,s,r=0,o=t.length;if(o<3)return null;for(e=0;e<o;e++)if(n=(e+2)%o,s=(t[i=(e+1)%o].x-t[e].x)*(t[n].y-t[i].y),(s-=(t[i].y-t[e].y)*(t[n].x-t[i].x))<0?r|=1:0<s&&(r|=2),3===r)return!1;return 0!==r||null},a.hull=function(t){var e,i,n=[],s=[];for((t=t.slice(0)).sort(function(t,e){var i=t.x-e.x;return 0!=i?i:t.y-e.y}),i=0;i<t.length;i+=1){for(e=t[i];2<=s.length&&T.cross3(s[s.length-2],s[s.length-1],e)<=0;)s.pop();s.push(e)}for(i=t.length-1;0<=i;--i){for(e=t[i];2<=n.length&&T.cross3(n[n.length-2],n[n.length-1],e)<=0;)n.pop();n.push(e)}return n.pop(),s.pop(),n.concat(s)}},function(t,e,i){var n={VERSION:"3.51.0",BlendModes:i(37),ScaleModes:i(174),AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,FOREVER:-1,NONE:4,UP:5,DOWN:6,LEFT:7,RIGHT:8};t.exports=n},function(t,e,i){var n=i(0),s=i(11),r=i(14),o=i(50),a=i(70),h=new n({Extends:r,Mixins:[s.AlphaSingle,s.BlendMode,s.Depth,s.GetBounds,s.Mask,s.Origin,s.Pipeline,s.ScrollFactor,s.Transform,s.Visible],initialize:function(t,e,i){void 0===e&&(e="Shape"),r.call(this,t,e),this.geom=i,this.pathData=[],this.pathIndexes=[],this.fillColor=16777215,this.fillAlpha=1,this.strokeColor=16777215,this.strokeAlpha=1,this.lineWidth=1,this.isFilled=!1,this.isStroked=!1,this.closePath=!0,this._tempLine=new o,this.width=0,this.height=0,this.initPipeline(a.GRAPHICS_PIPELINE)},setFillStyle:function(t,e){return void 0===e&&(e=1),void 0===t?this.isFilled=!1:(this.fillColor=t,this.fillAlpha=e,this.isFilled=!0),this},setStrokeStyle:function(t,e,i){return void 0===i&&(i=1),void 0===t?this.isStroked=!1:(this.lineWidth=t,this.strokeColor=e,this.strokeAlpha=i,this.isStroked=!0),this},setClosePath:function(t){return this.closePath=t,this},setSize:function(t,e){return this.width=t,this.height=e,this},preDestroy:function(){this.geom=null,this._tempLine=null,this.pathData=[],this.pathIndexes=[]},displayWidth:{get:function(){return this.scaleX*this.width},set:function(t){this.scaleX=t/this.width}},displayHeight:{get:function(){return this.scaleY*this.height},set:function(t){this.scaleY=t/this.height}}});t.exports=h},function(t,e){t.exports={SKIP_CHECK:-1,NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16,ERASE:17,SOURCE_IN:18,SOURCE_OUT:19,SOURCE_ATOP:20,DESTINATION_OVER:21,DESTINATION_IN:22,DESTINATION_OUT:23,DESTINATION_ATOP:24,LIGHTER:25,COPY:26,XOR:27}},function(t,e,i){var n=i(13);t.exports=function(t){return t*n.DEG_TO_RAD}},function(t,e,i){t.exports={DESTROY:i(743),FADE_IN_COMPLETE:i(744),FADE_IN_START:i(745),FADE_OUT_COMPLETE:i(746),FADE_OUT_START:i(747),FLASH_COMPLETE:i(748),FLASH_START:i(749),FOLLOW_UPDATE:i(750),PAN_COMPLETE:i(751),PAN_START:i(752),POST_RENDER:i(753),PRE_RENDER:i(754),ROTATE_COMPLETE:i(755),ROTATE_START:i(756),SHAKE_COMPLETE:i(757),SHAKE_START:i(758),ZOOM_COMPLETE:i(759),ZOOM_START:i(760)}},function(t,e,i){var n=i(0),r=i(109),o=i(339),s=i(196),a=i(340),h=new n({initialize:function(t,e,i,n){void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=255),this.r=0,this.g=0,this.b=0,this.a=255,this._h=0,this._s=0,this._v=0,this._locked=!1,this.gl=[0,0,0,1],this._color=0,this._color32=0,this._rgba="",this.setTo(t,e,i,n)},transparent:function(){return this._locked=!0,this.red=0,this.green=0,this.blue=0,this.alpha=0,this._locked=!1,this.update(!0)},setTo:function(t,e,i,n,s){return void 0===n&&(n=255),void 0===s&&(s=!0),this._locked=!0,this.red=t,this.green=e,this.blue=i,this.alpha=n,this._locked=!1,this.update(s)},setGLTo:function(t,e,i,n){return void 0===n&&(n=1),this._locked=!0,this.redGL=t,this.greenGL=e,this.blueGL=i,this.alphaGL=n,this._locked=!1,this.update(!0)},setFromRGB:function(t){return this._locked=!0,this.red=t.r,this.green=t.g,this.blue=t.b,t.hasOwnProperty("a")&&(this.alpha=t.a),this._locked=!1,this.update(!0)},setFromHSV:function(t,e,i){return s(t,e,i,this)},update:function(t){if(void 0===t&&(t=!1),this._locked)return this;var e=this.r,i=this.g,n=this.b,s=this.a;return this._color=r(e,i,n),this._color32=o(e,i,n,s),this._rgba="rgba("+e+","+i+","+n+","+s/255+")",t&&a(e,i,n,this),this},updateHSV:function(){var t=this.r,e=this.g,i=this.b;return a(t,e,i,this),this},clone:function(){return new h(this.r,this.g,this.b,this.a)},gray:function(t){return this.setTo(t,t,t)},random:function(t,e){void 0===t&&(t=0),void 0===e&&(e=255);var i=Math.floor(t+Math.random()*(e-t)),n=Math.floor(t+Math.random()*(e-t)),s=Math.floor(t+Math.random()*(e-t));return this.setTo(i,n,s)},randomGray:function(t,e){void 0===t&&(t=0),void 0===e&&(e=255);var i=Math.floor(t+Math.random()*(e-t));return this.setTo(i,i,i)},saturate:function(t){return this.s+=t/100,this},desaturate:function(t){return this.s-=t/100,this},lighten:function(t){return this.v+=t/100,this},darken:function(t){return this.v-=t/100,this},brighten:function(t){var e=this.r,i=this.g,n=this.b,e=Math.max(0,Math.min(255,e-Math.round(-t/100*255))),i=Math.max(0,Math.min(255,i-Math.round(-t/100*255))),n=Math.max(0,Math.min(255,n-Math.round(-t/100*255)));return this.setTo(e,i,n)},color:{get:function(){return this._color}},color32:{get:function(){return this._color32}},rgba:{get:function(){return this._rgba}},redGL:{get:function(){return this.gl[0]},set:function(t){this.gl[0]=Math.min(Math.abs(t),1),this.r=Math.floor(255*this.gl[0]),this.update(!0)}},greenGL:{get:function(){return this.gl[1]},set:function(t){this.gl[1]=Math.min(Math.abs(t),1),this.g=Math.floor(255*this.gl[1]),this.update(!0)}},blueGL:{get:function(){return this.gl[2]},set:function(t){this.gl[2]=Math.min(Math.abs(t),1),this.b=Math.floor(255*this.gl[2]),this.update(!0)}},alphaGL:{get:function(){return this.gl[3]},set:function(t){this.gl[3]=Math.min(Math.abs(t),1),this.a=Math.floor(255*this.gl[3