!function(a){if("object"==typeofexports)module.exports=a();elseif("function"==typeofdefine,1){varb;"undefined"!=typeofwindow?b=window:"undefined"!=typeofglobal?b=global:"undefined"!=typeofself&&(b=self),b.p2=a()}elsedefine(a)}(function(){returnfunctiona(b,c,d){functione(g,h){if(!c[g]){if(!b[g]){vari="function"==typeofrequire&&require;if(!h&&i)returni(g,!0);if(f)returnf(g,!0);thrownewError("Cannot find module '"+g+"'")}varj=c[g]={exports:{}};b[g][0].call(j.exports,function(a){varc=b[g][1][a];returne(c?c:a)},j,j.exports,a,b,c,d)}returnc[g].exports}for(varf="function"==typeofrequire&&require,g=0;g<d.length;g++)e(d[g]);returne}({1:[function(a,b,c){functiond(){}vare=a("./Scalar");b.exports=d,d.lineInt=function(a,b,c){c=c||0;vard,f,g,h,i,j,k,l=[0,0];returnd=a[1][1]-a[0][1],f=a[0][0]-a[1][0],g=d*a[0][0]+f*a[0][1],h=b[1][1]-b[0][1],i=b[0][0]-b[1][0],j=h*b[0][0]+i*b[0][1],k=d*i-h*f,e.eq(k,0,c)||(l[0]=(i*g-f*j)/k,l[1]=(d*j-h*g)/k),l},d.segmentsIntersect=function(a,b,c,d){vare=b[0]-a[0],f=b[1]-a[1],g=d[0]-c[0],h=d[1]-c[1];if(g*f-h*e==0)return!1;vari=(e*(c[1]-a[1])+f*(a[0]-c[0]))/(g*f-h*e),j=(g*(a[1]-c[1])+h*(c[0]-a[0]))/(h*e-g*f);returni>=0&&i<=1&&j>=0&&j<=1}},{"./Scalar":4}],2:[function(a,b,c){functiond(){}b.exports=d,d.area=function(a,b,c){return(b[0]-a[0])*(c[1]-a[1])-(c[0]-a[0])*(b[1]-a[1])},d.left=function(a,b,c){returnd.area(a,b,c)>0},d.leftOn=function(a,b,c){returnd.area(a,b,c)>=0},d.right=function(a,b,c){returnd.area(a,b,c)<0},d.rightOn=function(a,b,c){returnd.area(a,b,c)<=0};vare=[],f=[];d.collinear=function(a,b,c,g){if(g){varh=e,i=f;h[0]=b[0]-a[0],h[1]=b[1]-a[1],i[0]=c[0]-b[0],i[1]=c[1]-b[1];varj=h[0]*i[0]+h[1]*i[1],k=Math.sqrt(h[0]*h[0]+h[1]*h[1]),l=Math.sqrt(i[0]*i[0]+i[1]*i[1]),m=Math.acos(j/(k*l));returnm<g}return0==d.area(a,b,c)},d.sqdist=function(a,b){varc=b[0]-a[0],d=b[1]-a[1];returnc*c+d*d}},{}],3:[function(a,b,c){functiond(){this.vertices=[]}functione(a,b,c,d,e){e=e||0;varf=b[1]-a[1],g=a[0]-b[0],i=f*a[0]+g*a[1],j=d[1]-c[1],k=c[0]-d[0],l=j*c[0]+k*c[1],m=f*k-j*g;returnh.eq(m,0,e)?[0,0]:[(k*i-g*l)/m,(f*l-j*i)/m]}varf=a("./Line"),g=a("./Point"),h=a("./Scalar");b.exports=d,d.prototype.at=function(a){varb=this.vertices,c=b.length;returnb[a<0?a%c+c:a%c]},d.prototype.first=function(){returnthis.vertices[0]},d.prototype.last=function(){returnthis.vertices[this.vertices.length-1]},d.prototype.clear=function(){this.vertices.length=0},d.prototype.append=function(a,b,c){if("undefined"==typeofb)thrownewError("From is not given!");if("undefined"==typeofc)thrownewError("To is not given!");if(c-1<b)thrownewError("lol1");if(c>a.vertices.length)thrownewError("lol2");if(b<0)thrownewError("lol3");for(vard=b;d<c;d++)this.vertices.push(a.vertices[d])},d.prototype.makeCCW=function(){for(vara=0,b=this.vertices,c=1;c<this.vertices.length;++c)(b[c][1]<b[a][1]||b[c][1]==b[a][1]&&b[c][0]>b[a][0])&&(a=c);g.left(this.at(a-1),this.at(a),this.at(a+1))||this.reverse()},d.prototype.reverse=function(){for(vara=[],b=0,c=this.vertices.length;b!==c;b++)a.push(this.vertices.pop());this.vertices=a},d.prototype.isReflex=function(a){returng.right(this.at(a-1),this.at(a),this.at(a+1))};vari=[],j=[];d.prototype.canSee=function(a,b){varc,d,e=i,h=j;if(g.leftOn(this.at(a+1),this.at(a),this.at(b))&&g.rightOn(this.at(a-1),this.at(a),this.at(b)))return!1;d=g.sqdist(this.at(a),this.at(b));for(vark=0;k!==this.vertices.length;++k)if((k+1)%this.vertices.length!==a&&k!==a&&g.leftOn(this.at(a),this.at(b),this.at(k+1))&&g.rightOn(this.at(a),this.at(b),this.at(k))&&(e[0]=this.at(a),e[1]=this.at(b),h[0]=this.at(k),h[1]=this.at(k+1),c=f.lineInt(e,h),g.sqdist(this.at(a),c)<d))return!1;return!0},d.prototype.copy=function(a,b,c){vare=c||newd;if(e.clear(),a<b)for(varf=a;f<=b;f++)e.vertices.push(this.vertices[f]);else{for(varf=0;f<=b;f++)e.vertices.push(this.vertices[f]);for(varf=a;f<this.vertices.length;f++)e.vertices.push(this.vertices[f])}returne},d.prototype.getCutEdges=function(){for(vara=[],b=[],c=[],e=newd,f=Number.MAX_VALUE,g=0;g<this.vertices.length;++g)if(this.isReflex(g))for(varh=0;h<thi
this.type=d.STATIC,"undefined"!=typeofa.type?this.type=a.type:a.mass?this.type=d.DYNAMIC:this.type=d.STATIC,this.boundingRadius=0,this.aabb=newj,this.aabbNeedsUpdate=!0,this.allowSleep=void0===a.allowSleep||a.allowSleep,this.wantsToSleep=!1,this.sleepState=d.AWAKE,this.sleepSpeedLimit=void0!==a.sleepSpeedLimit?a.sleepSpeedLimit:.2,this.sleepTimeLimit=void0!==a.sleepTimeLimit?a.sleepTimeLimit:1,this.gravityScale=void0!==a.gravityScale?a.gravityScale:1,this.collisionResponse=void0===a.collisionResponse||a.collisionResponse,this.idleTime=0,this.timeLastSleepy=0,this.ccdSpeedThreshold=void0!==a.ccdSpeedThreshold?a.ccdSpeedThreshold:-1,this.ccdIterations=void0!==a.ccdIterations?a.ccdIterations:10,this.concavePath=null,this._wakeUpAfterNarrowphase=!1,this.updateMassProperties()}vare=a("../math/vec2"),f=a("poly-decomp"),g=a("../shapes/Convex"),h=a("../collision/RaycastResult"),i=a("../collision/Ray"),j=a("../collision/AABB"),k=a("../events/EventEmitter");b.exports=d,d.prototype=newk,d.prototype.constructor=d,d._idCounter=0,d.prototype.updateSolveMassProperties=function(){this.sleepState===d.SLEEPING||this.type===d.KINEMATIC?(this.invMassSolve=0,this.invInertiaSolve=0):(this.invMassSolve=this.invMass,this.invInertiaSolve=this.invInertia)},d.prototype.setDensity=function(a){varb=this.getArea();this.mass=b*a,this.updateMassProperties()},d.prototype.getArea=function(){for(vara=0,b=0;b<this.shapes.length;b++)a+=this.shapes[b].area;returna},d.prototype.getAABB=function(){returnthis.aabbNeedsUpdate&&this.updateAABB(),this.aabb};varl=newj,m=e.create();d.prototype.updateAABB=function(){for(vara=this.shapes,b=a.length,c=m,d=this.angle,f=0;f!==b;f++){varg=a[f],h=g.angle+d;e.rotate(c,g.position,d),e.add(c,c,this.position),g.computeAABB(l,c,h),0===f?this.aabb.copy(l):this.aabb.extend(l)}this.aabbNeedsUpdate=!1},d.prototype.updateBoundingRadius=function(){for(vara=this.shapes,b=a.length,c=0,d=0;d!==b;d++){varf=a[d],g=e.length(f.position),h=f.boundingRadius;g+h>c&&(c=g+h)}this.boundingRadius=c},d.prototype.addShape=function(a,b,c){if(a.body)thrownewError("A shape can only be added to one body.");a.body=this,b?e.copy(a.position,b):e.set(a.position,0,0),a.angle=c||0,this.shapes.push(a),this.updateMassProperties(),this.updateBoundingRadius(),this.aabbNeedsUpdate=!0},d.prototype.removeShape=function(a){varb=this.shapes.indexOf(a);returnb!==-1&&(this.shapes.splice(b,1),this.aabbNeedsUpdate=!0,a.body=null,!0)},d.prototype.updateMassProperties=function(){if(this.type===d.STATIC||this.type===d.KINEMATIC)this.mass=Number.MAX_VALUE,this.invMass=0,this.inertia=Number.MAX_VALUE,this.invInertia=0;else{vara=this.shapes,b=a.length,c=this.mass/b,f=0;if(this.fixedRotation)this.inertia=Number.MAX_VALUE,this.invInertia=0;else{for(varg=0;g<b;g++){varh=a[g],i=e.squaredLength(h.position),j=h.computeMomentOfInertia(c);f+=j+c*i}this.inertia=f,this.invInertia=f>0?1/f:0}this.invMass=1/this.mass,e.set(this.massMultiplier,this.fixedX?0:1,this.fixedY?0:1)}};e.create();d.prototype.applyForce=function(a,b){if(e.add(this.force,this.force,a),b){varc=e.crossLength(b,a);this.angularForce+=c}};varn=e.create(),o=e.create(),p=e.create();d.prototype.applyForceLocal=function(a,b){b=b||p;varc=n,d=o;this.vectorToWorldFrame(c,a),this.vectorToWorldFrame(d,b),this.applyForce(c,d)};varq=e.create();d.prototype.applyImpulse=function(a,b){if(this.type===d.DYNAMIC){varc=q;if(e.scale(c,a,this.invMass),e.multiply(c,this.massMultiplier,c),e.add(this.velocity,c,this.velocity),b){varf=e.crossLength(b,a);f*=this.invInertia,this.angularVelocity+=f}}};varr=e.create(),s=e.create(),t=e.create();d.prototype.applyImpulseLocal=function(a,b){b=b||t;varc=r,d=s;this.vectorToWorldFrame(c,a),this.vectorToWorldFrame(d,b),this.applyImpulse(c,d)},d.prototype.toLocalFrame=function(a,b){e.toLocalFrame(a,b,this.position,this.angle)},d.prototype.toWorldFrame=function(a,b){e.toGlobalFrame(a,b,this.position,this.angle)},d.prototype.vectorToLocalFrame=function(a,b){e.vectorToLocalFrame(a,b,this.angle)},d.prototype.vectorToWorldFrame=function(a,b){e.vectorToGlobalFrame(a,b,this.angle
this.useZeroRHS=!1,this.frictionIterations=void0!==a.frictionIterations?0:a.frictionIterations,this.usedIterations=0}functione(a){for(varb=a.length;b--;)a[b]=0}varf=a("../math/vec2"),g=a("./Solver"),h=a("../utils/Utils"),i=a("../equations/FrictionEquation");b.exports=d,d.prototype=newg,d.prototype.constructor=d,d.prototype.solve=function(a,b){this.sortEquations();varc=0,g=this.iterations,j=this.frictionIterations,k=this.equations,l=k.length,m=Math.pow(this.tolerance*l,2),n=b.bodies,o=b.bodies.length,p=(f.add,f.set,this.useZeroRHS),q=this.lambda;if(this.usedIterations=0,l)for(varr=0;r!==o;r++){vars=n[r];s.updateSolveMassProperties()}q.length<l&&(q=this.lambda=newh.ARRAY_TYPE(l+this.arrayStep),this.Bs=newh.ARRAY_TYPE(l+this.arrayStep),this.invCs=newh.ARRAY_TYPE(l+this.arrayStep)),e(q);for(vart=this.invCs,u=this.Bs,q=this.lambda,r=0;r!==k.length;r++){varv=k[r];(v.timeStep!==a||v.needsUpdate)&&(v.timeStep=a,v.update()),u[r]=v.computeB(v.a,v.b,a),t[r]=v.computeInvC(v.epsilon)}varv,w,r,x;if(0!==l){for(r=0;r!==o;r++){vars=n[r];s.resetConstraintVelocity()}if(j){for(c=0;c!==j;c++){for(w=0,x=0;x!==l;x++){v=k[x];vary=d.iterateEquation(x,v,v.epsilon,u,t,q,p,a,c);w+=Math.abs(y)}if(this.usedIterations++,w*w<=m)break}for(d.updateMultipliers(k,q,1/a),x=0;x!==l;x++){varz=k[x];if(zinstanceofi){for(varA=0,B=0;B!==z.contactEquations.length;B++)A+=z.contactEquations[B].multiplier;A*=z.frictionCoefficient/z.contactEquations.length,z.maxForce=A,z.minForce=-A}}}for(c=0;c!==g;c++){for(w=0,x=0;x!==l;x++){v=k[x];vary=d.iterateEquation(x,v,v.epsilon,u,t,q,p,a,c);w+=Math.abs(y)}if(this.usedIterations++,w*w<=m)break}for(r=0;r!==o;r++)n[r].addConstraintVelocity();d.updateMultipliers(k,q,1/a)}},d.updateMultipliers=function(a,b,c){for(vard=a.length;d--;)a[d].multiplier=b[d]*c},d.iterateEquation=function(a,b,c,d,e,f,g,h,i){varj=d[a],k=e[a],l=f[a],m=b.computeGWlambda(),n=b.maxForce,o=b.minForce;g&&(j=0);varp=k*(j-m-c*l),q=l+p;returnq<o*h?p=o*h-l:q>n*h&&(p=n*h-l),f[a]+=p,b.addToWlambda(p),p}},{"../equations/FrictionEquation":23,"../math/vec2":30,"../utils/Utils":57,"./Solver":47}],47:[function(a,b,c){functiond(a,b){a=a||{},e.call(this),this.type=b,this.equations=[],this.equationSortFunction=a.equationSortFunction||!1}vare=(a("../utils/Utils"),a("../events/EventEmitter"));b.exports=d,d.prototype=newe,d.prototype.constructor=d,d.prototype.solve=function(a,b){thrownewError("Solver.solve should be implemented by subclasses!")};varf={bodies:[]};d.prototype.solveIsland=function(a,b){this.removeAllEquations(),b.equations.length&&(this.addEquations(b.equations),f.bodies.length=0,b.getBodies(f.bodies),f.bodies.length&&this.solve(a,f))},d.prototype.sortEquations=function(){this.equationSortFunction&&this.equations.sort(this.equationSortFunction)},d.prototype.addEquation=function(a){a.enabled&&this.equations.push(a)},d.prototype.addEquations=function(a){for(varb=0,c=a.length;b!==c;b++){vard=a[b];d.enabled&&this.equations.push(d)}},d.prototype.removeEquation=function(a){varb=this.equations.indexOf(a);b!==-1&&this.equations.splice(b,1)},d.prototype.removeAllEquations=function(){this.equations.length=0},d.GS=1,d.ISLAND=2},{"../events/EventEmitter":26,"../utils/Utils":57}],48:[function(a,b,c){functiond(){f.apply(this,arguments)}vare=a("../equations/ContactEquation"),f=a("./Pool");b.exports=d,d.prototype=newf,d.prototype.constructor=d,d.prototype.create=function(){returnnewe},d.prototype.destroy=function(a){returna.bodyA=a.bodyB=null,this}},{"../equations/ContactEquation":21,"./Pool":55}],49:[function(a,b,c){functiond(){f.apply(this,arguments)}vare=a("../equations/FrictionEquation"),f=a("./Pool");b.exports=d,d.prototype=newf,d.prototype.constructor=d,d.prototype.create=function(){returnnewe},d.prototype.destroy=function(a){returna.bodyA=a.bodyB=null,this}},{"../equations/FrictionEquation":23,"./Pool":55}],50:[function(a,b,c){functiond(){f.apply(this,arguments)}vare=a("../world/IslandNode"),f=a("./Pool");b.exports=d,d.prototype=newf,d.prototype.constructor=d,d.prototype.create=function(){returnnewe},d.prototype.destroy=fu
this.children.splice(b,0,a)},d.DisplayObjectContainer.prototype.getChildAt=function(a){if(a<0||a>=this.children.length)thrownewError("getChildAt: Supplied index "+a+" does not exist in the child list, or the supplied DisplayObject must be a child of the caller");returnthis.children[a]},d.DisplayObjectContainer.prototype.removeChild=function(a){varb=this.children.indexOf(a);if(b!==-1)returnthis.removeChildAt(b)},d.DisplayObjectContainer.prototype.removeChildAt=function(a){varb=this.getChildAt(a);returnb&&(b.parent=void0,this.children.splice(a,1)),b},d.DisplayObjectContainer.prototype.removeChildren=function(a,b){void0===a&&(a=0),void0===b&&(b=this.children.length);varc=b-a;if(c>0&&c<=b){for(vard=this.children.splice(a,c),e=0;e<d.length;e++){varf=d[e];f.parent=void0}returnd}if(0===c&&0===this.children.length)return[];thrownewError("removeChildren: Range Error, numeric values are outside the acceptable range")},d.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible&&(this.displayObjectUpdateTransform(),!this._cacheAsBitmap))for(vara=0;a<this.children.length;a++)this.children[a].updateTransform()},d.DisplayObjectContainer.prototype.displayObjectContainerUpdateTransform=d.DisplayObjectContainer.prototype.updateTransform,d.DisplayObjectContainer.prototype.getBounds=function(a){varb=a&&ainstanceofd.DisplayObject,c=!0;b?c=ainstanceofd.DisplayObjectContainer&&a.contains(this):a=this;vare;if(b){varf=a.worldTransform;for(a.worldTransform=d.identityMatrix,e=0;e<a.children.length;e++)a.children[e].updateTransform()}varg,h,i,j=1/0,k=1/0,l=-(1/0),m=-(1/0),n=!1;for(e=0;e<this.children.length;e++){varo=this.children[e];o.visible&&(n=!0,g=this.children[e].getBounds(),j=j<g.x?j:g.x,k=k<g.y?k:g.y,h=g.width+g.x,i=g.height+g.y,l=l>h?l:h,m=m>i?m:i)}varp=this._bounds;if(!n){p=newd.Rectangle;varq=p.x,r=p.width+p.x,s=p.y,t=p.height+p.y,u=this.worldTransform,v=u.a,w=u.b,x=u.c,y=u.d,z=u.tx,A=u.ty,B=v*r+x*t+z,C=y*t+w*r+A,D=v*q+x*t+z,E=y*t+w*q+A,F=v*q+x*s+z,G=y*s+w*q+A,H=v*r+x*s+z,I=y*s+w*r+A;l=B,m=C,j=B,k=C,j=D<j?D:j,j=F<j?F:j,j=H<j?H:j,k=E<k?E:k,k=G<k?G:k,k=I<k?I:k,l=D>l?D:l,l=F>l?F:l,l=H>l?H:l,m=E>m?E:m,m=G>m?G:m,m=I>m?I:m}if(p.x=j,p.y=k,p.width=l-j,p.height=m-k,b)for(a.worldTransform=f,e=0;e<a.children.length;e++)a.children[e].updateTransform();if(!c){varJ=a.getBounds();p.x-=J.x,p.y-=J.y}returnp},d.DisplayObjectContainer.prototype.getLocalBounds=function(){returnthis.getBounds(this)},d.DisplayObjectContainer.prototype.contains=function(a){return!!a&&(a===this||this.contains(a.parent))},d.DisplayObjectContainer.prototype._renderWebGL=function(a){if(this.visible&&!(this.alpha<=0)){if(this._cacheAsBitmap)returnvoidthis._renderCachedSprite(a);varb;if(this._mask||this._filters){for(this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),b=0;b<this.children.length;b++)this.children[b]._renderWebGL(a);a.spriteBatch.stop(),this._mask&&a.maskManager.popMask(this._mask,a),this._filters&&a.filterManager.popFilter(),a.spriteBatch.start()}elsefor(b=0;b<this.children.length;b++)this.children[b]._renderWebGL(a)}},d.DisplayObjectContainer.prototype._renderCanvas=function(a){if(this.visible!==!1&&0!==this.alpha){if(this._cacheAsBitmap)returnvoidthis._renderCachedSprite(a);this._mask&&a.maskManager.pushMask(this._mask,a);for(varb=0;b<this.children.length;b++)this.children[b]._renderCanvas(a);this._mask&&a.maskManager.popMask(a)}},Object.defineProperty(d.DisplayObjectContainer.prototype,"width",{get:function(){returnthis.getLocalBounds().width*this.scale.x},set:function(a){varb=this.getLocalBounds().width;0!==b?this.scale.x=a/b:this.scale.x=1,this._width=a}}),Object.defineProperty(d.DisplayObjectContainer.prototype,"height",{get:function(){returnthis.getLocalBounds().height*this.scale.y},set:function(a){varb=this.getLocalBounds().height;0!==b?this.scale.y=a/b:this.scale.y=1,this._height=a}}),d.Sprite=function(a){d.DisplayObjectContainer.call(this),this.anchor=newd.Point,this.te
context:this.context,maskManager:this.maskManager,scaleMode:null,smoothProperty:Phaser.Canvas.getSmoothingPrefix(this.context),roundPixels:!1},this.mapBlendModes(),this.resize(this.width,this.height)},d.CanvasRenderer.prototype.constructor=d.CanvasRenderer,d.CanvasRenderer.prototype.render=function(a){this.context.setTransform(1,0,0,1,0,0),this.context.globalAlpha=1,this.renderSession.currentBlendMode=0,this.renderSession.shakeX=this.game.camera._shake.x,this.renderSession.shakeY=this.game.camera._shake.y,this.context.globalCompositeOperation="source-over",navigator.isCocoonJS&&this.view.screencanvas&&(this.context.fillStyle="black",this.context.clear()),this.clearBeforeRender&&(this.transparent?this.context.clearRect(0,0,this.width,this.height):a._bgColor&&(this.context.fillStyle=a._bgColor.rgba,this.context.fillRect(0,0,this.width,this.height))),this.renderDisplayObject(a)},d.CanvasRenderer.prototype.setTexturePriority=function(a){},d.CanvasRenderer.prototype.destroy=function(a){void0===a&&(a=!0),a&&this.view.parent&&this.view.parent.removeChild(this.view),this.view=null,this.context=null,this.maskManager=null,this.renderSession=null},d.CanvasRenderer.prototype.resize=function(a,b){this.width=a*this.resolution,this.height=b*this.resolution,this.view.width=this.width,this.view.height=this.height,this.autoResize&&(this.view.style.width=this.width/this.resolution+"px",this.view.style.height=this.height/this.resolution+"px"),this.renderSession.smoothProperty&&(this.context[this.renderSession.smoothProperty]=this.renderSession.scaleMode===d.scaleModes.LINEAR)},d.CanvasRenderer.prototype.renderDisplayObject=function(a,b,c){this.renderSession.context=b||this.context,this.renderSession.resolution=this.resolution,a._renderCanvas(this.renderSession,c)},d.CanvasRenderer.prototype.mapBlendModes=function(){if(!d.blendModesCanvas){vara=[],b=d.blendModes,c=this.game.device.canUseMultiply;a[b.NORMAL]="source-over",a[b.ADD]="lighter",a[b.MULTIPLY]=c?"multiply":"source-over",a[b.SCREEN]=c?"screen":"source-over",a[b.OVERLAY]=c?"overlay":"source-over",a[b.DARKEN]=c?"darken":"source-over",a[b.LIGHTEN]=c?"lighten":"source-over",a[b.COLOR_DODGE]=c?"color-dodge":"source-over",a[b.COLOR_BURN]=c?"color-burn":"source-over",a[b.HARD_LIGHT]=c?"hard-light":"source-over",a[b.SOFT_LIGHT]=c?"soft-light":"source-over",a[b.DIFFERENCE]=c?"difference":"source-over",a[b.EXCLUSION]=c?"exclusion":"source-over",a[b.HUE]=c?"hue":"source-over",a[b.SATURATION]=c?"saturation":"source-over",a[b.COLOR]=c?"color":"source-over",a[b.LUMINOSITY]=c?"luminosity":"source-over",d.blendModesCanvas=a}},d.BaseTexture=function(a,b,c){this.resolution=c||1,this.width=100,this.height=100,this.scaleMode=b||d.scaleModes.DEFAULT,this.hasLoaded=!1,this.source=a,this.premultipliedAlpha=!0,this._glTextures=[],this.mipmap=!1,this.textureIndex=0,this._dirty=[!0,!0,!0,!0],a&&((this.source.complete||this.source.getContext)&&this.source.width&&this.source.height&&(this.hasLoaded=!0,this.width=this.source.naturalWidth||this.source.width,this.height=this.source.naturalHeight||this.source.height,this.dirty()),this.skipRender=!1,this._powerOf2=!1)},d.BaseTexture.prototype.constructor=d.BaseTexture,d.BaseTexture.prototype.forceLoaded=function(a,b){this.hasLoaded=!0,this.width=a,this.height=b,this.dirty()},d.BaseTexture.prototype.destroy=function(){this.source&&Phaser.CanvasPool.removeByCanvas(this.source),this.source=null,this.unloadFromGPU()},d.BaseTexture.prototype.updateSourceImage=function(a){console.warn("PIXI.BaseTexture.updateSourceImage is deprecated. Use Phaser.Sprite.loadTexture instead.")},d.BaseTexture.prototype.dirty=function(){for(vara=0;a<this._glTextures.length;a++)this._dirty[a]=!0},d.BaseTexture.prototype.unloadFromGPU=function(){this.dirty();for(vara=this._glTextures.length-1;a>=0;a--){varb=this._glTextures[a],c=d.glContexts[a];c&&b&&c.deleteTexture(b)}this._glTextures.length=0,this.dirty()},d.BaseTexture.fromCanvas=function(a,b,c){return0===a.width&&(a.width=1),0===a.height&&(a.height=1),c=c||1,newd.BaseTexture(a,b,c)},d.TextureSilentFail=!1,d.Texture=function(a,b,c,e
this.gamepad=null,this.resetLocked=!1,this.onDown=null,this.onUp=null,this.onTap=null,this.onHold=null,this.minPriorityID=0,this.interactiveItems=newc.ArraySet,this._localPoint=newc.Point,this._pollCounter=0,this._oldPosition=null,this._x=0,this._y=0},c.Input.MOUSE_OVERRIDES_TOUCH=0,c.Input.TOUCH_OVERRIDES_MOUSE=1,c.Input.MOUSE_TOUCH_COMBINE=2,c.Input.MAX_POINTERS=10,c.Input.prototype={boot:function(){this.mousePointer=newc.Pointer(this.game,0,c.PointerMode.CURSOR),this.addPointer(),this.addPointer(),this.mouse=newc.Mouse(this.game),this.touch=newc.Touch(this.game),this.mspointer=newc.MSPointer(this.game),c.Keyboard&&(this.keyboard=newc.Keyboard(this.game)),c.Gamepad&&(this.gamepad=newc.Gamepad(this.game)),this.onDown=newc.Signal,this.onUp=newc.Signal,this.onTap=newc.Signal,this.onHold=newc.Signal,this.scale=newc.Point(1,1),this.speed=newc.Point,this.position=newc.Point,this._oldPosition=newc.Point,this.circle=newc.Circle(0,0,44),this.activePointer=this.mousePointer,this.hitCanvas=c.CanvasPool.create(this,1,1),this.hitContext=this.hitCanvas.getContext("2d"),this.mouse.start(),this.touch.start(),this.mspointer.start(),this.mousePointer.active=!0,this.keyboard&&this.keyboard.start();vara=this;this._onClickTrampoline=function(b){a.onClickTrampoline(b)},this.game.canvas.addEventListener("click",this._onClickTrampoline,!1)},destroy:function(){this.mouse.stop(),this.touch.stop(),this.mspointer.stop(),this.keyboard&&this.keyboard.stop(),this.gamepad&&this.gamepad.stop(),this.moveCallbacks=[],c.CanvasPool.remove(this),this.game.canvas.removeEventListener("click",this._onClickTrampoline)},setInteractiveCandidateHandler:function(a,b){this.customCandidateHandler=a,this.customCandidateHandlerContext=b},addMoveCallback:function(a,b){this.moveCallbacks.push({callback:a,context:b})},deleteMoveCallback:function(a,b){for(varc=this.moveCallbacks.length;c--;)if(this.moveCallbacks[c].callback===a&&this.moveCallbacks[c].context===b)returnvoidthis.moveCallbacks.splice(c,1)},addPointer:function(){if(this.pointers.length>=c.Input.MAX_POINTERS)returnconsole.warn("Phaser.Input.addPointer: Maximum limit of "+c.Input.MAX_POINTERS+" pointers reached."),null;vara=this.pointers.length+1,b=newc.Pointer(this.game,a,c.PointerMode.TOUCH);returnthis.pointers.push(b),this["pointer"+a]=b,b},update:function(){if(this.keyboard&&this.keyboard.update(),this.pollRate>0&&this._pollCounter<this.pollRate)returnvoidthis._pollCounter++;this.speed.x=this.position.x-this._oldPosition.x,this.speed.y=this.position.y-this._oldPosition.y,this._oldPosition.copyFrom(this.position),this.mousePointer.update(),this.gamepad&&this.gamepad.active&&this.gamepad.update();for(vara=0;a<this.pointers.length;a++)this.pointers[a].update();this._pollCounter=0},reset:function(a){if(this.game.isBooted&&!this.resetLocked){void0===a&&(a=!1),this.mousePointer.reset(),this.keyboard&&this.keyboard.reset(a),this.gamepad&&this.gamepad.reset();for(varb=0;b<this.pointers.length;b++)this.pointers[b].reset();"none"!==this.game.canvas.style.cursor&&(this.game.canvas.style.cursor="inherit"),a&&(this.onDown.dispose(),this.onUp.dispose(),this.onTap.dispose(),this.onHold.dispose(),this.onDown=newc.Signal,this.onUp=newc.Signal,this.onTap=newc.Signal,this.onHold=newc.Signal,this.moveCallbacks=[]),this._pollCounter=0}},resetSpeed:function(a,b){this._oldPosition.setTo(a,b),this.speed.setTo(0,0)},startPointer:function(a){if(this.maxPointers>=0&&this.countActivePointers(this.maxPointers)>=this.maxPointers)returnnull;if(!this.pointer1.active)returnthis.pointer1.start(a);if(!this.pointer2.active)returnthis.pointer2.start(a);for(varb=2;b<this.pointers.length;b++){varc=this.pointers[b];if(!c.active)returnc.start(a)}returnnull},updatePointer:function(a){if(this.pointer1.active&&this.pointer1.identifier===a.identifier)returnthis.pointer1.move(a);if(this.pointer2.active&&this.pointer2.identifier===a.identifier)returnthis.pointer2.move(a);for(varb=2;b<this.pointers.length;b++){varc=this.pointers[b];if(c.active&&c.identifier===a.identifier)returnc.move(a)}returnnull},stopPoi
"Bounce.easeOut":c.Easing.Bounce.Out,"Quad.easeInOut":c.Easing.Quadratic.InOut,"Cubic.easeInOut":c.Easing.Cubic.InOut,"Quart.easeInOut":c.Easing.Quartic.InOut,"Quint.easeInOut":c.Easing.Quintic.InOut,"Sine.easeInOut":c.Easing.Sinusoidal.InOut,"Expo.easeInOut":c.Easing.Exponential.InOut,"Circ.easeInOut":c.Easing.Circular.InOut,"Elastic.easeInOut":c.Easing.Elastic.InOut,"Back.easeInOut":c.Easing.Back.InOut,"Bounce.easeInOut":c.Easing.Bounce.InOut},this.game.onPause.add(this._pauseAll,this),this.game.onResume.add(this._resumeAll,this)},c.TweenManager.prototype={getAll:function(){returnthis._tweens},removeAll:function(){for(vara=0;a<this._tweens.length;a++)this._tweens[a].pendingDelete=!0;this._add=[]},removeFrom:function(a,b){void0===b&&(b=!0);vard,e;if(Array.isArray(a))for(d=0,e=a.length;d<e;d++)this.removeFrom(a[d]);elseif(a.type===c.GROUP&&b)for(vard=0,e=a.children.length;d<e;d++)this.removeFrom(a.children[d]);else{for(d=0,e=this._tweens.length;d<e;d++)a===this._tweens[d].target&&this.remove(this._tweens[d]);for(d=0,e=this._add.length;d<e;d++)a===this._add[d].target&&this.remove(this._add[d])}},add:function(a){a._manager=this,this._add.push(a)},create:function(a){returnnewc.Tween(a,this.game,this)},remove:function(a){varb=this._tweens.indexOf(a);b!==-1?this._tweens[b].pendingDelete=!0:(b=this._add.indexOf(a),b!==-1&&(this._add[b].pendingDelete=!0))},update:function(){vara=this._add.length,b=this._tweens.length;if(0===b&&0===a)return!1;for(varc=0;c<b;)this._tweens[c].update(this.game.time.time)?c++:(this._tweens.splice(c,1),b--);returna>0&&(this._tweens=this._tweens.concat(this._add),this._add.length=0),!0},isTweening:function(a){returnthis._tweens.some(function(b){returnb.target===a})},_pauseAll:function(){for(vara=this._tweens.length-1;a>=0;a--)this._tweens[a]._pause()},_resumeAll:function(){for(vara=this._tweens.length-1;a>=0;a--)this._tweens[a]._resume()},pauseAll:function(){for(vara=this._tweens.length-1;a>=0;a--)this._tweens[a].pause()},resumeAll:function(){for(vara=this._tweens.length-1;a>=0;a--)this._tweens[a].resume(!0)}},c.TweenManager.prototype.constructor=c.TweenManager,c.Tween=function(a,b,d){this.game=b,this.target=a,this.manager=d,this.timeline=[],this.reverse=!1,this.timeScale=1,this.repeatCounter=0,this.pendingDelete=!1,this.onStart=newc.Signal,this.onLoop=newc.Signal,this.onRepeat=newc.Signal,this.onChildComplete=newc.Signal,this.onComplete=newc.Signal,this.isRunning=!1,this.current=0,this.properties={},this.chainedTween=null,this.isPaused=!1,this.frameBased=d.frameBased,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,this._pausedTime=0,this._codePaused=!1,this._hasStarted=!1},c.Tween.prototype={to:function(a,b,d,e,f,g,h){return(void0===b||b<=0)&&(b=1e3),void0!==d&&null!==d||(d=c.Easing.Default),void0===e&&(e=!1),void0===f&&(f=0),void0===g&&(g=0),void0===h&&(h=!1),"string"==typeofd&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.to cannot be called after Tween.start"),this):(this.timeline.push(newc.TweenData(this).to(a,b,d,f,g,h)),e&&this.start(),this)},from:function(a,b,d,e,f,g,h){returnvoid0===b&&(b=1e3),void0!==d&&null!==d||(d=c.Easing.Default),void0===e&&(e=!1),void0===f&&(f=0),void0===g&&(g=0),void0===h&&(h=!1),"string"==typeofd&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.from cannot be called after Tween.start"),this):(this.timeline.push(newc.TweenData(this).from(a,b,d,f,g,h)),e&&this.start(),this)},start:function(a){if(void0===a&&(a=0),null===this.game||null===this.target||0===this.timeline.length||this.isRunning)returnthis;for(varb=0;b<this.timeline.length;b++)for(varcinthis.timeline[b].vEnd)this.properties[c]=this.target[c]||0,Array.isArray(this.properties[c])||(this.properties[c]*=1);for(varb=0;b<this.timeline.length;b++)this.timeline[b].loadValues();returnthis.manager.add(this),this.isRunning=!0,(a<0||a>this.timeline.length-1)&&(a=0),this.current=a,this.timeline[this.current].start(),this},stop:function(a){returnvoid0===a&&(a=!1
break;case"atlasXML":this.atlasXML(e.key,e.textureURL,e.atlasURL,e.atlasData);break;case"atlas":this.atlas(e.key,e.textureURL,e.atlasURL,e.atlasData,c.Loader[e.format]);break;case"shader":this.shader(e.key,e.url,e.overwrite)}}},transformUrl:function(a,b){return!!a&&(a.match(/^(?:blob:|data:|http:\/\/|https:\/\/|\/\/)/)?a:this.baseURL+b.path+a)},loadFile:function(a){switch(a.type){case"packfile":this.xhrLoad(a,this.transformUrl(a.url,a),"text",this.fileComplete);break;case"image":case"spritesheet":case"textureatlas":case"bitmapfont":this.loadImageTag(a);break;case"audio":a.url=this.getAudioURL(a.url),a.url?this.game.sound.usingWebAudio?this.xhrLoad(a,this.transformUrl(a.url,a),"arraybuffer",this.fileComplete):this.game.sound.usingAudioTag&&this.loadAudioTag(a):this.fileError(a,null,"No supported audio URL specified or device does not have audio playback support");break;case"video":a.url=this.getVideoURL(a.url),a.url?a.asBlob?this.xhrLoad(a,this.transformUrl(a.url,a),"blob",this.fileComplete):this.loadVideoTag(a):this.fileError(a,null,"No supported video URL specified or device does not have video playback support");break;case"json":this.xhrLoad(a,this.transformUrl(a.url,a),"text",this.jsonLoadComplete);break;case"xml":this.xhrLoad(a,this.transformUrl(a.url,a),"text",this.xmlLoadComplete);break;case"tilemap":a.format===c.Tilemap.TILED_JSON?this.xhrLoad(a,this.transformUrl(a.url,a),"text",this.jsonLoadComplete):a.format===c.Tilemap.CSV?this.xhrLoad(a,this.transformUrl(a.url,a),"text",this.csvLoadComplete):this.asyncComplete(a,"invalid Tilemap format: "+a.format);break;case"text":case"script":case"shader":case"physics":this.xhrLoad(a,this.transformUrl(a.url,a),"text",this.fileComplete);break;case"texture":"truecolor"===a.key.split("_").pop()&&this.loadImageTag(a);break;case"binary":this.xhrLoad(a,this.transformUrl(a.url,a),"arraybuffer",this.fileComplete)}},loadImageTag:function(a){varb=this;a.data=newImage,a.data.name=a.key,this.crossOrigin&&(a.data.crossOrigin=this.crossOrigin),a.data.onload=function(){a.data.onload&&(a.data.onload=null,a.data.onerror=null,b.fileComplete(a))},a.data.onerror=function(){a.data.onload&&(a.data.onload=null,a.data.onerror=null,b.fileError(a))},a.data.src=this.transformUrl(a.url,a),a.data.complete&&a.data.width&&a.data.height&&(a.data.onload=null,a.data.onerror=null,this.fileComplete(a))},loadVideoTag:function(a){varb=this;a.data=document.createElement("video"),a.data.name=a.key,a.data.controls=!1,a.data.autoplay=!1;vard=function(){a.data.removeEventListener(a.loadEvent,d,!1),a.data.onerror=null,a.data.canplay=!0,c.GAMES[b.game.id].load.fileComplete(a)};a.data.onerror=function(){a.data.removeEventListener(a.loadEvent,d,!1),a.data.onerror=null,a.data.canplay=!1,b.fileError(a)},a.data.addEventListener(a.loadEvent,d,!1),a.data.src=this.transformUrl(a.url,a),a.data.load()},loadAudioTag:function(a){varb=this;if(this.game.sound.touchLocked)a.data=newAudio,a.data.name=a.key,a.data.preload="auto",a.data.src=this.transformUrl(a.url,a),this.fileComplete(a);else{a.data=newAudio,a.data.name=a.key;varc=function(){a.data.removeEventListener("canplaythrough",c,!1),a.data.onerror=null,b.fileComplete(a)};a.data.onerror=function(){a.data.removeEventListener("canplaythrough",c,!1),a.data.onerror=null,b.fileError(a)},a.data.preload="auto",a.data.src=this.transformUrl(a.url,a),a.data.addEventListener("canplaythrough",c,!1),a.data.load()}},xhrLoad:function(a,b,c,d,e){if(this.useXDomainRequest&&window.XDomainRequest)returnvoidthis.xhrLoadWithXDR(a,b,c,d,e);varf=newXMLHttpRequest;f.open("GET",b,!0),f.responseType=c,this.headers.requestedWith!==!1&&f.setRequestHeader("X-Requested-With",this.headers.requestedWith),this.headers[a.type]&&f.setRequestHeader("Accept",this.headers[a.type]),e=e||this.fileError;varg=this;f.onload=function(){try{return4===f.readyState&&f.status>=400&&f.status<=599?e.call(g,a,f):d.call(g,a,f)}catch(b){g.hasLoaded?window.console&&console.error(b):g.asyncComplete(a,b.message||"Exception")}},f.onerror=function(){try{returne.call(g,a,f)}catch(b){g.hasLoaded?window.console&&console.err
this.game.sound.onUnMute.remove(this.unsetMute,this)),this.game.onPause.remove(this.setPause,this),this.game.onResume.remove(this.setResume,this),this.isStreaming?(this.video.mozSrcObject?(this.video.mozSrcObject.stop(),this.video.src=null):(this.video.src="",this.videoStream.active?this.videoStream.active=!1:this.videoStream.getTracks?this.videoStream.getTracks().forEach(function(a){a.stop()}):this.videoStream.stop()),this.videoStream=null,this.isStreaming=!1):(this.video.removeEventListener("ended",this._endCallback,!0),this.video.removeEventListener("webkitendfullscreen",this._endCallback,!0),this.video.removeEventListener("playing",this._playCallback,!0),this.touchLocked?this._pending=!1:this.video.pause()),this},add:function(a){if(Array.isArray(a))for(varb=0;b<a.length;b++)a[b].loadTexture&&a[b].loadTexture(this);elsea.loadTexture(this);returnthis},addToWorld:function(a,b,c,d,e,f){e=e||1,f=f||1;varg=this.game.add.image(a,b,this);returng.anchor.set(c,d),g.scale.set(e,f),g},render:function(){!this.disableTextureUpload&&this.playing&&this.baseTexture.dirty()},setMute:function(){this._muted||(this._muted=!0,this.video.muted=!0)},unsetMute:function(){this._muted&&!this._codeMuted&&(this._muted=!1,this.video.muted=!1)},setPause:function(){this._paused||this.touchLocked||(this._paused=!0,this.video.pause())},setResume:function(){!this._paused||this._codePaused||this.touchLocked||(this._paused=!1,this.video.ended||this.video.play())},changeSource:function(a,b){returnvoid0===b&&(b=!0),this.texture.valid=!1,this.video.pause(),this._pendingChangeSource=!0,this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval),this.video.src=a,this.video.load(),this._autoplay=b,b||(this.paused=!0),this},checkVideoProgress:function(){4===this.video.readyState?(this._pendingChangeSource=!1,this.updateTexture()):(this.retry--,this.retry>0?this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval):console.warn("Phaser.Video: Unable to start downloading video in time",this.isStreaming))},setTouchLock:function(){this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0},unlock:function(){if(this.touchLocked=!1,this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate),this.key){vara=this.game.cache.getVideo(this.key);a&&!a.isBlob&&(a.locked=!1)}return!0},grab:function(a,b,c){returnvoid0===a&&(a=!1),void0===b&&(b=1),void0===c&&(c=null),null===this.snapshot?voidconsole.warn("Video.grab cannot run because Phaser.BitmapData is unavailable"):(a&&this.snapshot.cls(),this.snapshot.copy(this.video,0,0,this.width,this.height,0,0,this.width,this.height,0,0,0,1,1,b,c),this.snapshot)},removeVideoElement:function(){if(this.video){for(this.video.parentNode&&this.video.parentNode.removeChild(this.video);this.video.hasChildNodes();)this.video.removeChild(this.video.firstChild);this.video.removeAttribute("autoplay"),this.video.removeAttribute("src"),this.video=null}},destroy:function(){this.stop(),this.removeVideoElement(),this.touchLocked&&this.game.input.touch.removeTouchLockCallback(this.unlock,this),this._retryID&&window.clearTimeout(this._retryID)}},Object.defineProperty(c.Video.prototype,"currentTime",{get:function(){returnthis.video?this.video.currentTime:0},set:function(a){this.video.currentTime=a}}),Object.defineProperty(c.Video.prototype,"duration",{get:function(){returnthis.video?this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"progress",{get:function(){returnthis.video?this.video.currentTime/this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"mute",{get:function(){returnthis._muted},set:function(a){if(a=a||null){if(this._muted)return;this._codeMuted=!0,this.setMute()}else{if(!this._muted)return;this._codeMuted=!1,this.unsetMute()}}}),Object.defineProperty(c.Video.prototype,"paused",{get:function(){returnthis._paused},set:function(a){if(a=a||null,!this.touchLocked)if(a){if(this._paused)return;this._codePaused=!0,this.setPause()}else{if(!this._paused)return;this._codePaused=!1,this.setR